與ZooKeeper相似的項目BookKeeper介紹
Apache的項目ZooKeeper有了一個兄弟項目: BookKeeper。
BookKeeper是一個可靠地記錄日志流的一個系統, 它是被設計來記錄Write Ahead Log的(操作具體數據結構之前先記錄日志),Write Ahead Log在數據庫里面很常見, 實際上BookKeeper的創意來自于hadoop里面的NameNode,NameNode在把數據寫入內存之前先寫入磁盤日志,但是寫入本地磁盤有個問題:如果這臺機器的磁盤壞了, 那么數據還是恢復不了。BookKeeper就是為了彌補這個缺陷的,這樣之后NameNode不用寫入自己的本地磁盤,而是寫入BookKeeper系統,而可靠性則由BookKeeper來保證。雖然BookKeeper是為hadoop設計的,但是對于任何需要這種可靠性的日志的系統并且系統里面只有個線程寫日志的話,那么都可以用這個系統。
BookKeeper里面的服務器叫做: bookies, 日志流叫做ledgers, BookKeeper被設計成高可靠性的, 即使有寫bookie掛掉了,只要有足夠數量的bookie還在正常工作的話,那么整個BookKeeper集群就可以正常工作。
跟大多數可靠性系統一樣,BookKeeper為把同一份數據存多份在各個bookie上面。
BookKeeper的數據模型是一個扁平的結構,每個ledger由一個long型的key唯一確定。ledgers只支持append操作,而且同時只能有一個單線程來寫。
本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!