Scylladb需要和数据集一样多的内存吗



看看"锡拉"在compose.com上的描述,它说:

"锡拉"需要快速的IO和与总数据大小一样多的RAM。

然而,从已发布的体系结构来看,它在刷新到磁盘时似乎不需要与总数据大小一样多的RAM:

"锡拉"将数据保存在磁盘上。最初写入"锡拉"存储在内存表中的RAM中,在某个时刻会被刷新到sstable在磁盘上,并从RAM中删除。

对于那些标榜极致性能的项目来说,似乎传统的做法是不提及获得该性能所需的任何调整(例如,通过关闭基准测试的这些功能来牺牲数据安全,或者不提及必须将所有内容都放入RAM才能实现已发布的结果(。

我想知道是所有东西都需要放入ram,还是只有当所有东西都放入ram时才能获得基准测试结果,或者compose.com根本错误(或过时(?

不幸的是,在谷歌上搜索这个问题并不能给出明确的答案,所以我认为在so上提问可以防止其他人感到困惑。

根据Scylla文档,一个节点的内存可能在64GB-256GB之间,但最高可达10TB。

让我们看看我们通常运行的当前AWS实例:

i3.8xl:244 GiB内存,7.6 TB磁盘

这个比例大约是30:1。

这在很大程度上取决于您的用例和YMMV,但这是一个典型的部署节点。

我认为他们的意思是"锡拉"将使用系统中所有可用的内存(除非另有说明(。

事实上,"锡拉"是一个基于磁盘的系统,专门处理磁盘与内存比率非常高的密集节点,因此您不需要拥有与数据集一样多的RAM。

我们可以尝试解释Compose网站上的错误,但这是一个错误-"锡拉"是否需要与数据大小一样多的RAM。当然,拥有尽可能多的RAM是好的,任何未使用的RAM都将用于缓存数据,但这不是要求,甚至不是建议。同一页上的其他语句甚至建议使用10:1的磁盘:RAM比率,这当然与建议使用1:1的比率非常不同。

应该通知Compose他们的文档中有一个错误。

相关内容

最新更新