nosql数据库 tiger
                 jopen
                 13年前
            
                    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协议的接口:
  基于redis协议的接口:
     set接口: 
       100.00% <= 60 milliseconds 3954.13 requests per second 
        get 接口:  
13477.09 requests per second
  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_commit