1.什么是VoltDB?
是一个优化吞吐率的高性能集群开源SQLRDBMS(Database Management System),它是一个内存关系型数据库,既获得了nosql的良好可扩展性,高吞吐量的数据处理,又没有放弃原传统关系型数据库的事务支持--ACID
从硬件上来看,VoltDB基于PC+以太网+本地存储,从体系结构来看其内部是一个ShareNothing()的内存数据库,通过并行单线程来保证事务的一致性和高性能,所有事务被实现为java存储过程,所有存储过程(事务)都全局有序,由于避免了锁的使用,因此可以保证每个事务在所有分区上并行执行完成后才继续执行下一个事务,事务不会乱序执行。存储过程内部支持分组,多路join,聚合,函数等等,
VoltDB---自动数据分区,数据表会自动分配到集群节点,可以看成是传统sharding的升级整合版本。
---自动快照,意味着一个事务内部无需进行IO操作,可在微秒级别完成事务,
---异步事务提交,从某种意义上看,VoltDB是一个共享内存的集群(?),支持多节点并行事务处理,理论上不存在节点上限
2.VoltDB部署安装环境
voltdb的代码以及系统构建都是在64位的linux/OS X之上的,它的编译需要如下环境:
- java 1.8
- Apache 1.7 或者更高版本
- 一个支持C++11的编译器
- 2.6 或者更高版本
- 2.8 或者更高版本
安装ant:
tar -xzvf apache-ant-1.9.13-bin.tar.gz# 配置环境变量vi /etc/profileexport ANT_HOME=/data/webserver/apache-ant-1.9.13export PATH=$ANT_HOME/bin:$PATH
VoltDB安装:
unzip voltdb-voltdb-9.0.zipcd voltdb-voltdb-9.0ant cleanant
配置VoltDB环境变量:
export VOLTDB_PATH=/data/webserver/voltdb-voltdb-9.0export PATH=$VOLTDB_PATH/bin:$PATHexport CLASSPATH=.:$VOLTDB_PATH/lib/*:$VOLTDB_PATH/voltdb/*:$CLASSPATH
初始化VoltDB并启动:
voltdb initvoltdb start
启动成功后,通过浏览器http://localhost:8080访问VoltDB管理控制台: