BeansDB设计与实现

继续预热Qcon Beijing 2011,下面是豆瓣的Key-value存储BeansDB,作者是刘洪清,详情请参照Qcon Beijing 2011。

这里有一个作者发布的slide:http://www.slideshare.net/DaviesLiu/inside-beansdb

简介

BeansDB 是一个主要针对大数据量、高可用性的分布式KeyValue存储系统,采用HashTree和简化的版本号来快速同步保证最终一致性(弱),一个简化版的Dynamo。

它采用类似memcached的去中心化结构,在客户端实现数据路由。目前只提供了Python版本的客户端,其它语言的客户端可以由memcached的客户端稍加改造得到。

Google Group:?http://groups.google.com/group/beandb/

优雅的Bitcask

Bitcask是一个日志型的基于hash表结构和key-value存储模型,我了解到他也就几天时间,但是其简洁有效的设计思路,让我的某种技术癖好得到了极大满足,于是酝酿出这篇东西。

Bitcask模型指导下的存储系统有Riak和豆瓣的beansdb新版本(beansdb新版本信息,参见这里),下面就简单的介绍一下Bitcask模型:

弃用TokyoCabinet、libevent、增加proxy层:豆瓣beansdb卷土重来

豆瓣的beansdb可以算是豆瓣存储上的一大利器,是国内NoSQL中的杰出代表。历经一年的线上磨练,新发布的0.5.2版本(上一个版本是0.3.0)在网络层和数据存储引擎上都做了很大改变: