豆瓣網開源數據庫BeansDB發布 采用分布式鍵值存儲
原創【51CTO快報】2009年12月31日消息,國內著名SNS網站豆瓣網于昨日在Google Code上發布了其自主開發的數據庫存儲系統BeansDB。
BeansDB是一個針對大數據量、高可用性的分布式存儲系統,其最具特色的是使用Key - Value(鍵 - 值)存儲模式;BeansDB采用HashTree和簡化的版本號來快速同步保證最終一致性;并采用類似memcached的去中心化結構,在客戶端實現數據路由。
據悉,豆瓣網是以New BSD許可證發布的BeansDB,目前只提供了Python版本的客戶端,其它語言的客戶端可以由memcached的客戶端稍加改造得到。BeansDB的Key Value存儲系統之前在亞馬遜公司開發的Dynamo數據庫中被廣泛使用,一些BeansDB的測試者稱BeansDB更像是Dynamo的一個簡化版。
關于豆瓣網技術架構方面的更多報道請參考51CTO.com視頻專題:《大型網站架構技術專家談》
BeansDB特性一覽:
◆高可用:通過多個可讀寫的用于備份實現高可用
◆最終一致性:通過哈希樹實現快速完整數據同步(短時間內數據可能不一致)
◆容易擴展:可以在不中斷服務的情況下進行容量擴展
◆高性能:異步IO和高性能的KeyValue數據TokyoCabinet
◆可配置的可用性和一致性:通過N,W,R進行配置
◆簡單協議:Memcache兼容協議,大量可用客戶端
客戶端
目前只提供了Python版本的客戶端,在python目錄中,該目錄中各文件的左右如下:
◆dbclient.py BeansDB的客戶端,由memcached的客戶端簡單封裝而成
◆status.py 查看BeansDB的狀態,各個節點的數據分布,以及同步狀態
◆sync.py 同步各節點
◆httpd.py HTTP方式訪問BeansDB的內容(目前只有GET方式)
◆store.pyx, dbserver.py test.py setup.py
◆Python 版本的BeansDB,核心部分是C實現
BeansDB的一些性能測試
下面兩幅圖片是BeansDB在Google Code上性能測試截圖,BeansDB的表現相當不錯。
在小數據集上,它跟memcached一樣快:
BeansDB實際部署情況下的性能(客戶端測量):
【編輯推薦】