暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

NewSQL数据库

原创 辛西娅 2022-02-27
1671

传统的RDBMS有很强的ACID支持,但可扩展性不好。NoSQL系统则相反,有很好的可扩展性,但大都以牺牲一致性为代价[1]。随着互联网技术的发展,人们希望鱼和熊掌兼得,即既有ACID的好处,又有很好的可扩展性,这样的数据库系统就是NewSQL系统——一种关系型数据库与NoSQL数据库技术的融合方案。与运行在RDBMS上的应用所需支持的事务不同,运行在NewSQL系统上的事务一般都有下面的特点。持续时间短。只涉及很小一部分数据(通过主键的索引访问)。很少进行全表扫描和JOIN操作。反复执行简单的操作。NewSQL系统具有以下技术特点。SQL作为与应用程序交互的主要方式。支持事务的ACID属性。使用非阻塞的并发锁(多为MVCC的变种),这样读者不会与写者竞争。与传统的RDBMS相比,单节点的硬件配置要高出许多(大内存、SSD的大量使用)。水平扩展、无共享架构。常用的NewSQL系统分类如下。

新架构系统(novel system):重新设计的全新系统。采用分片的中间件系统:本质上还是数据库访问的中间件,因为应用对数据库的访问都通过中间件进行,中间件就有机会将数据分散到多个库中存储,并在查询时聚合来自多个库的结果。采用分片(sharding)的中间件系统(如MariaDB MaxScale),大都是基于开源的MySQL/MariaDB代理技术,参见第5章。数据库即服务(Database-as-a-Service,Daas)系统:这是由云提供商提供的仅在云里的应用才能享用的数据库服务,即所谓的关系型数据库服务(relational database service,RDS)。无论是采用新架构的NewSQL系统,还是采用分片的NewSQL系统,其配置和维护都是非常复杂和耗力的,因此就有了亚马逊的Aurora和ClearDB这样的基于云的数据库系统,即“数据库即服务”系统。DaaS的使用方法与工作原理也与前两种NewSQL系统类似,只不过DaaS运行在托管的云环境中,由其服务提供者部署和运维,这样就极大地降低了用户的初期成本。新的MySQL存储引擎:因为MySQL默认的InnoDB引擎近些年有很大的进步,这种类型的系统已淡出。


摘自《分布式系统实践》

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论