2014-03-07 25 views
1

我计划评估Riak的生产,但我对Bitcask引擎感到困惑。文档说,所有的密钥都保存在内存中,所以当密钥总大小超过RAM时会发生什么? Riak崩溃?或者它开始交换?还有什么方法可以计算RAM中有多少个键?Riak Bitcask崩溃时超过内存限制?

回答

2

Bitcask stores all keys in memory连同有关物体在磁盘上的确切位置的信息,这允许基于单个磁盘查找来查找对象的值。因此速度非常快。然而,只有与存储在特定节点上的对象相关的密钥才保存在内存中,这意味着存储容量可以通过放大和缩小来增加。一个可用于确定Bitcask将消耗多少内存的计算器可用于here

由于建议运行Riak swappiness设置为0,Riak将在内存不足时崩溃。 Bitcask因此通常最适合于有限的数据集,您可以控制系统中的键数。如果你有一个无限的数据集,那么考虑LevelDB后端可能是值得的。