2

看看compose.com 上对 Scylla 的描述,它说:

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

然而,查看已发布的架构,它似乎不需要与刷新到磁盘的总数据大小一样多的 RAM:

Scylla 将数据保存在磁盘上。对 Scylla 的写入最初在内存表中累积在 RAM 中,在某些时候会刷新到磁盘上的 sstable 并从 RAM 中删除。

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

我想知道是不是所有东西都需要适合内存,或者只有当它都适合内存时才能获得基准测试结果,或者 compose.com 完全错误(或过时)?

不幸的是,谷歌搜索这个问题并没有给出明确的答案,所以我认为关于 SO 的问题可以防止其他人混淆。

4

3 回答 3

5

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

让我们看一下我们通常在其上运行的当前 AWS 实例

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

这大约是 30:1 的比例。

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

于 2018-11-29T19:32:40.430 回答
4

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

事实上,Scylla 是一个基于磁盘的系统,专注于具有非常高的磁盘:内存比率的密集节点,因此您不需要像数据集一样多的 RAM。

于 2018-11-29T19:24:09.313 回答
3

我们可以尝试在 Compose 的网站上解释错误,但这是一个错误 - Scylla不需要与数据大小一样多的 RAM。当然,尽可能多的 RAM 是好的,任何未使用的 RAM 都将用于缓存数据,但这不是必需的,甚至不是建议。同一页上的其他声明甚至推荐了 10:1 的磁盘:RAM 比例,这与推荐 1:1 的比例当然有很大不同。

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

于 2018-12-04T08:51:38.027 回答