文件名称:NoSQL数据库tiger.zip
文件大小:162KB
文件格式:ZIP
更新时间:2022-08-08 12:19:10
开源项目
erlang开发的开源高可靠性nosql数据库tiger介绍可靠性: 写:对于n=2f 1 机器集群,在f台机器宕机的情况下可写 读:只要是没有宕机的机器都是可读的一致性: 强一致性扩展性: 读的能力可以线性扩展 功能: 目前实现了key/value的get set 和delete功能: 基于memcached协议和leveldb的持久数据库 基于redis协议和redis存储引擎的内存数据库,宕机后数据重放到内存 性能: 单机跑3个实例: 双核,Pentium(R) Dual-Core CPU E6600 @ 3.06GHz centos 5.6 erlang R15b 2G 内存 基于memcached协议的接口: set接口: 91.49% <= 12 milliseconds,5387.93 requests per second get 接口: 100.00% <= 13 milliseconds 18177.54 requests per second 基于redis协议的接口: set接口: 100.00% <= 60 milliseconds 3954.13 requests per second get 接口: 13477.09 requests per second 测试程序使用:mc-benchmark,redis-benchmark,因为3个实例在一个机器上,所以写的性能影响比较大, 部署的时候建议分开到不同物理机部署。 主要技术: erlang:用于socket和通讯层 Zab(Zookeeper Atomic Broadcast):实现消息的原子广播 存储引擎:leveldb,redis存储引擎 架构实现:zab_engine介绍:将zab协议实现为erlang的api,如果使用erlang开发项目,可以嵌入zab_engine,实现多master的架构变得非常简单 引擎实现功能:1:2阶段提交2:恢复 a.follow恢复 b.leader恢复 c.在线加入和恢复架构: 使用说明:1.实现gen_zab_server 回调函数2.对于须同步数据,实现handle_commit3.对于只读数据,实现handle_call 标签:tiger NoSQL数据库
【文件预览】:
zab_engine-master
----LICENCE(1KB)
----test()
--------elect2_SUITE.erl(2KB)
--------follow_online_recover_SUITE.erl(3KB)
--------follow_down_SUITE.erl(3KB)
--------zabe_proposal_leveldb_backend_SUITE.erl(4KB)
--------zabe_fast_elect_SUITE.erl(2KB)
--------leader_down_SUITE.erl(3KB)
--------t.erl(584B)
--------zabe_util_SUITE.erl(2KB)
--------recover1_SUITE.erl(3KB)
--------zabe_learn_leveldb_SUITE.erl(3KB)
----rebar.config(541B)
----rebar(133KB)
----include()
--------zabe_main.hrl(1KB)
----src()
--------eleveldb_util.erl(2KB)
--------zabe_learn_leveldb.erl(5KB)
--------zab_engine.app.src(224B)
--------zab_engine_util.erl(233B)
--------zab_engine_app.erl(365B)
--------zabe_fast_elect.erl(15KB)
--------zabe_proposal_backend.erl(948B)
--------zabe_util.erl(2KB)
--------zabe_proposal_leveldb_backend.erl(9KB)
--------zab_engine_sup.erl(1KB)
--------gen_zab_server.erl(37KB)
--------zabe_fast_leader_test.erl(5KB)
----README(178B)