VoltDB,一个
内存数据库,提供了 NoSQL 数据库的可伸缩性和传统
关系数据库系统的 ACID 一致性。我们将设计数据库表并对其进行分区,使用
Java™ 代码编写的
存储过程来存储和检索数据。我们还将了解 VoltCache,这是一种构建于 VoltDB 之上的键值存储。
简介
VoltDB是一个内存中的开源OLTP
SQL数据库,能够保证事务的完整性(ACID)。它是Postgres和
Ingres联合创始人Mike Stonebraker领导开发的下一代开源
数据库管理系统。它能在现有的廉价
服务器集群上实现每秒数百万次数据处理。
系统特点
VoltDB大幅降低了服务器资源 开销,单节点每秒数据处理远远高于其它
数据库管理系统。不同于
NoSQL的
key-value储存,VoltDB能使用SQL存取,支持
传统数据库的 ACID模型。VoltDB代码采用GPLv3授权,支持订阅费用从15,000美元起步。
特征
为了获得最大化吞吐量,数据保存在内存中(而不是在硬盘),这样可以有效消除缓冲区管理。VoltDB通过SQL引擎把数据分发给
集群服务器的每个CPU进行处理。 每个单线程分区自主执行,消除锁定和闩锁的需求。 VoltDB可以通过简单的在集群中增加附加节点的方式实现性能的线性增加。
版本
VoltDB 有两个版本:一个
开源社区版本和一个付费企业版本。
付费企业版本除包含了所有开源社区版的功能,还有些其他特点:
竞争
1.VoltDB在单节点上可以每秒处理53000个事务请求(TPS),其他DBMS在相同的硬件环境下只能处理1155个。VoltDB的扩展是近似线性的──在12个节点的VoltDB集群上进行同样测试,可以处理560,000 TPS。
2.基准案例:某个客户的在线游戏在12个节点的VoltDB集群上处理了130万 TPS。 3.VoltDB还针对NoSQL的键-值存储方式作了
基准测试,VoltDB在处理各种键-值存储负载的情况下获得了相同或更好的性能。 4.除了它的性能,VoltDB的主要优势是可以与SQL用户进行交流,这些SQL用户是很好的资源。
要求
VoltDB 需要一个基于 64 位 Linux 的操作系统;此要求也适用于 Mac OSX 10.6。您还需要安装 Java 开发工具包 (JDK 6)。可以使用 Eclipse 来编辑
源代码。
Amazon EC2 和 VMware 映像也可供下载,下载它们之后就可以立即正常使用它们。
VoltDB 以 tar 压缩文件的形式分发,所以在下载它之后,可以使用以下命令解压:$ tar -zxvf voltdb-2.5.tar.gz -C ~/。
在此实例中,我选择将它安装在我的主目录中,这非常适用于开发用途,您还可以将它解压到您选择的目录中。
解压之后,将 bin 目录添加到您的路径中:$ export PATH=:~/voltdb-2.5/bin。
bin 目录包含一些命令,这些命令在您部署示例应用程序时会很有用。
接下来,下载本文配套的源代码。将它解压到您选择的目录中。示例应用程序主要处理一家虚构公司 Acme Inc 的员工。
一个典型的 VoltDB 应用程序由以下文件组成:
本文将更详细地介绍每个文件。
要将项目导入 Eclipse 中,请打开 Eclipse,然后执行以下操作:
如果希望创建您自己的应用程序,VoltDB 提供了一个工具来为您生成框架项目;该项目用于生成本文中附带的应用程序的文件夹结构。