我计划评估Riak的生产,但我对Bitcask引擎感到困惑。文档说,将所有密钥保存在内存中,那么当密钥总大小超过RAM时会发生什么? Riak崩溃?或者它开始交换?还有什么方法可以计算RAM中适合的密钥数量吗?
答案 0 :(得分:2)
Bitcask stores all keys in memory以及有关对象在磁盘上的确切位置的信息,它允许根据单个磁盘搜索查找对象的值。因此非常快。然而,只有与存储在特定节点上的对象相关的密钥保存在那里的存储器中,这意味着可以通过向上扩展和向外扩展来增加存储容量。可用于确定Bitcask将消耗多少内存的计算器here。
由于建议在swappiness设置为0的情况下运行Riak,Riak将在内存不足时崩溃。因此,Bitcask通常最适合于有界数据集,您可以在其中控制系统中的密钥数量。如果你有一个无限制的数据集,那么考虑使用LevelDB后端可能是值得的。