nosql數據庫 tiger

jopen 12年前發布 | 19K 次閱讀 NoSQL數據庫 NOSQL
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存儲引擎
架構實現:

nosql數據庫 tiger

zab_engine介紹:
將zab協議實現為erlang的api,如果使用erlang開發項目,可以嵌入zab_engine,實現多master的架構變得非常簡單
引擎實現功能:
1:2階段提交
2:恢復
   a.follow恢復
   b.leader恢復
   c.在線加入和恢復
架構:
nosql數據庫 tiger


使用說明:
1.實現gen_zab_server 回調函數
2.對于須同步數據,實現handle_commit
3.對于只讀數據,實現handle_call

項目主頁:http://www.baiduhome.net/lib/view/home/1341822841072

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!