简单说明:
1:beansdb是豆瓣的key-value分布式系统,类似memcache之类的。
2:beansdb可以部署在多个节点上。由proxy集中管理。方便简单。
beansdb结构:
Hstore{
(节点)0 ~ (节点E);
每个节点默认16开,即0~F号biscask;
每个biscask有一个hash tree做索引;
}
(
ps:
上面的是简单的默认结构。
实际可以这样:
height = 1,path下有16个子目录:0~f,每个目录下一个bitcask,共16个bitcask
height = 2,path下有2级子目录:0/0~f/f,共256个bitcask
height = 3, path下有3级子目录:0/0/0~f/f/f,共16*16*16个bitcask
每个bitcask最多对应256个bucket,每个bitcask有一个htree
)
想清楚了解结构的情况。可以看源码的main函数和hs_open函数。
(谢谢网友Songsong Lei的指正)
补充
bucket: 一个 bucket 是 beansdb 中的一个哈希区间,在服务器端存储时会是一个目录,里面是一个bitcask,内存中会有一棵哈希树。
数据路由 : 数据路由是可以在客户端实现(就不需要代理了),也可以在中间代理层实现,根据需要来调整部署。代理层的好处是可以简化配置管理。