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

2022年中国数据库行业年度分析报告:NewSQL

原创 云尧科技 2023-02-24
578

从数据库与数据应用需求相适应的角度切入,我们可以将众多不同类型的数据库按演进过程划分为SQL、NoSQL与NewSQL三类。

最初的数据库系统是为了解决基于文件系统的数据应用面临的各种困难和挑战而诞生的。主要面对的是数据应用对于共享、可靠、一致、高效、安全、低冗余的数据访问需求。这一时期,在关系模型基础上,支持事务机制,提供SQL访问接口的关系型集中式数据库纷纷涌现,典型的如Oracle、DB2等商业数据库产品以及MySQL和PostgreSQL等开源系统。狭义来说,SQL是关系型数据库提供的极具用户粘性的查询语言,但是在此上下文中,用SQL特指传统的集中式关系型数据库。此类数据库成为这一时期数据管理软件中one-size-fit-all的最终形态。但是,随着无线互联环境的日趋成熟,大数据浪潮随之而来,各种大数据应用纷纷出现。大规模高速并发流量不断累积海量数据,加之大数据应用对不同类型数据的高速处理需求,使得集中式数据库难以有效应对。因此,这些新型数据应用亟需分布式的系统解决方案,也对数据库系统在高可扩展、高可用等特性上提出了新的需求。这一时期的数据库都是分布式形态,除了在支持的数据类型(如键值、文档、图模型等)以及分布式特性上需要“加法”,由于其主要面对的是互联网应用,因此在严格事务语义、SQL接口等特性上也采取了部分“减法”。数据库内部降低了对复杂数据业务的支撑能力,将诸如维护访问一致性的困难转移到了应用开发层面。但是由于释放了传统关系型数据库的诸多约束,这一时期的数据管理系统呈现爆发式的发展态势,该时期涌现的数据管理产品统称为NoSQL数据库,典型的如键值数据库Redis、文档数据库MongoDB、图数据库Neo4j等。

之后,随着大数据生态的日益完善和在不同应用领域的深入使用,特别是在关键业务领域,在满足高扩展和高可用的前提下,数据应用对于数据强一致性和既有应用透明对接的需求愈发强烈。在这一时期的初期,传统关系数据库系统也通过分库分表以及具有分布式服务能力的中间件等方案,尽力适应新的数据应用需求,典型的如PostgreSQL XC项目等。但是此类方案并非数据库原生的分布式解决方案,特别当集群规模不断增大时,开发与运维的复杂度都呈现指数级增长趋势。因此,虽然类似PostgreSQL XC项目的方案具有与既有应用和成熟生态高度兼容的优势,但是,从架构先进性上来看,此类方案存在结构性限制,其各方面的天花板都受到底层技术的制约,属于一种过渡性技术方案。

所谓原生的分布式数据库解决方案是指在数据库系统设计时,采用存储与计算分离的设计思想,在其内部实现对数据分片、强一致多副本复制、严格事务、SQL接口、高可用、高可扩展等功能和特性的支持,此类原生分布式数据库被称之为NewSQL数据库。以Spanner为代表的Share-nothing架构以及以Aurora为代表的share-storage架构是New SQL类数据库目前最主要的两种架构形式。这两种形式都支持存算分离,但是在扩展能力上有所差异。

Share-storage架构的系统大多只提供共享存储层的水平扩展能力,而由单一读写实例和若干只读实例构成的计算引擎层则不具备写并发能力。针对此问题,很多系统在后期通过引入Multi-Master多主架构,在一定程度上为写引擎提供了写并发能力。有的核心设计思想是借助无锁的共享写节点的异步写方式,推动多写计算节点的事务完成,计算节点之间需要协调和回滚发生冲突的事务。有的则是基于共享缓存层以及多版本一致性模型和锁机制完成冲突事务的解决。但是,上述改进目前还存在冲突检测互斥粒度过大、极致的水平写扩展能力有限等架构性难题。

Share-nothing架构则在扩展性上具有良好的表现能力,计算引擎和存储引擎理论上都可以线性的水平扩展。这种架构下,对用户完全透明的分区必然会引入分布式事务,也是影响系统性能的重要因素。除了在两阶段提交协议上进行各种优化,有的系统也给用户提供了可定制的分区规则,业务端可以根据应用场景和数据特征,将特定访问所需的数据划分在特定的单分区内,利用规则约束分布式事务的发生。但是这种方式无疑也提高了数据应用开发的门槛,需要业务层做仔细谨慎的设计,否则就可能产生不可预估的性能问题。总体来说,从NoSQL全新迭代设计的share-nothing的NewSQL数据库,系统组件层次清晰,耦合程度低,但是与既有应用的兼容和生态的建设需要不断的打磨。这种全新架构的产品具有很高的上限,还需要更多的成长时间。此外,share-storage架构的数据库天然和云具有亲和性,但是又存在被某一厂商绑定的潜在问题,Share-nothing架构的数据库则有更灵活和独立的部署策略。

客观来说,除了具有完整理论支持的SQL关系型数据库外,NoSQL和NewSQL数据库其实并没有严格意义上的定义。它们代表一种数据管理系统随数据应用需求而演化的阶段性分类。特别是对于NewSQL类系统,它们既存在一些公认的特征,而不同系统又都基于不同的设计假设和偏好场景,具有独特的技术特性和优势。例如,Spanner利用独有的物理时钟系统TrueTime实现了分布式事务,解决了全球级跨区域的数据一致问题;TiDB在承载spanner设计哲学的基础上,利用开源方式进化成为HTAP数据库;Aurora基于“网络是数据库瓶颈”的假设,提出了log is database的设计哲学;PolarDB则根据网络环境变化的事实观察,认为瓶颈将由网络转向软件栈,利用新硬件驱动的用户态设计模式提出了一系列关键技术;OceanBase在不断强调水平扩展的设计目标下,又回头重新审视极致的单机性能的重要性,提出单机分布式一体化的演化思想;YaoBase则在读写分离架构下,通过内存计算加速的增量聚集系统架构实现了高性能事务。目前各种NewSQL类系统“道”相似而“术”不同,而不同的技术路线必然会导致此类系统在系统性能、适用部署模式(On-Promise与On-Cloud)、研发和维护成本、使用者代价以及可靠性与稳定性上都存在差异,任何一个系统都不是“银弹”,需要结合应用的实际需求进行考量。

下载 (1)

图1:TiDB的HTAP架构

下载 (2)

图2:PolarDB新硬件赋能的架构

下载 (3)

图3:OceanBase单机分布式一体化架构

下载 (4)

图4:YaoBase内存计算加速的增量聚集架构

我们认为,应用需求的驱动是数据库演化的最直接动力,不同阶段的数据库也在通过螺旋式的迭代演化,不断融合最核心的功能。现阶段来看,NewSQL是具有架构先进性的,基础架构决定了上层功能,不同具体产品形态又各具特色并在不同场景中彰显不同优势,NewSQL数据库也正在试图将以往阶段数据库系统的重要特征不断吸收交汇,试图再次以one-size-fit-all的姿态独领数据管理领域。当然,未来是百花齐放还是一枝独秀,还有待市场、技术和时间的相互验证。

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

评论