/ 中存储网

NewSQL数据库入门篇之NewSQL介绍及架构原理

2014-12-24 23:15:53 来源:中存储网

数据的海量增长,对数据库的存储及运行能力都提出了更高的要求,一时间,传统关系型数据库如oracle、MS sql server等绝对垄断的地位遭到了挑战,NoSQL数据库和NewSQL数据库出现了。顾名思义,NoSQL数据库中的No表明它不要SQL了,但是NewSQL数据库的New说明了它是对传统基于SQL数据库的创新。

先来看什么是NewSQL数据库?

NewSQL数据库是开源软件产品,相较于传统关系型数据库,NewSQL取消了耗费资源的缓冲池,直接在内存中运行整个数据库;它还摈弃了单线程服务的锁机制,也通过使用冗余机器来实现复制和故障恢复,取代原有的昂贵的恢复操作。这种可扩展、高性能的SQL数据库被称为NewSQL。

所谓NewSQL数据库,是一系列这种新数据库的统称,其典型代表有Google Spanner, VoltDB, Clustrix, NuoDB等,NewSQL是既拥有传统SQL数据库血统,又能够适应云计算时代分布式扩展的产品,主要包括两类:拥有关系型数据库产品和服务,并将关系模型的好处带到分布式架构上;或者提高关系数据库的性能,使之达到不用考虑水平扩展问题的程度。前一类NewSQL包括Clustrix、GenieDB、ScalArc、ScaleBase、NimbusDB,也包括带有NDB的MySQL集群、Drizzle等。后一类NewSQL包括Tokutek、JustOne DB。还有一些"NewSQL即服务",包括Amazon的关系数据库服务、Microsoft的SQL Azure、FathomDB等。

概括其特点:NewSQL能够提供SQL数据库的质量保证,也能提供NoSQL数据库的可扩展性。

典型代表之一 NuoDB

NuoDB

NuoDB是一家数据库初创公司,成立于2008年,2011年改名NuoDB,其创始人兼CEO Barry Morris认为:“即使在NoSQL环境中,也有很多人在用类SQL技术。”NuoDB的数据库产品是云基础的NewSQL数据库。

NuoDB重新定义了关系型数据库技术,它是针对弹性云系统而非单机系统设计的,因此可以将其看作是一个多用户、弹性、按需的分布式关系型数据库管理系统。NuoDB的特点包括:拥有任意增减廉价主机的功能,能够实现按需共享资源,提供不同的业务连续性、性能以及配置方法,极大程度地降低数据库运维成本。

NuoDB将其异步的对等数据库升级到2.0.2版本。NuoDB宣布该版本提升了跨地域操作的网络处理速度,简化了某些SQL函数。这两者正是NuoDB重点支持的领域。

Morris认为云计算和地理分布数据集的发展会影响数据库未来发展的方向。他说“无论Oracle,DB2还是MongoDB或者CouchDB,它们的核心架构其实都一样,也就是说都在一块硬盘上来管理数据,这势必会造成并发访问和扩展性的限制。而NuoDB是从零开始设计的,我们摒弃了集中控制的概念。”

典型代表之二 VoltDB

Home

VoltDB是NewSQL的实现之一,是一个内存数据库,其开发公司的CTO宣称,它们的系统使用NewSQL的方法处理事务的速度比传统数据库系统快45倍。VoltDB可以扩展到39个机器上,在300个CPU内核中每分钟处理1600万事务,其所需的机器数比Hadoop集群要少很多。

SQL未死

NoSQL的出现一度让人以为“SQL已死”,事实上,SQL技术非但没有消失,反而在大数据时代发挥了更重要的作用。  NoSQL运动的兴起让我们了解到,一个分布式,高容错,基于云的集群化数据库服务并不是天方夜谭。最早吃过NoSQL这个螃蟹的公司都是些不计代价来实现扩展性的公司,他们必须牺牲一定的互动性从而满足扩展需求。更关键的是,他们没有其他选择。当然,早期的用户没有多少有勇气做这种牺牲的。数据库市场需要一股新的力量,来帮助用户实现这一目标:能够快速地扩展从而获得驾驭快数据流的能力,提供实时的分析和实时的决策,具备云计算的能力,支持关键业务系统,还能够在更廉价的硬件设备上对历史数据分析性能提升100倍。

然而,实现这些目标并不需要我们重新定义已经成熟的SQL语言。NewSQL就是答案:它能够使用SQL语句来查询数据,同时具备现代化,分布式,高容错,基于云的集群架构。NewSQL结合了SQL丰富灵活的数据互动能力,以及针对大数据和快数据的实时扩展能力。

NewSQL与NoSQL的交叉

NewSQL和NoSQL也有交叉的地方,例如,RethinkDB可以看作NoSQL数据库中键/值存储的高速缓存系统,也可以当作NewSQL数据库中MySQL的存储引擎。现在许多NewSQL提供商使用自己的数据库为没有固定模式的数据提供存储服务,同时一些NoSQL数据库开始支持SQL查询和ACID事务特性。