10MB分区大小的想法从何而来?

时间:2019-11-27 10:42:36

标签: cassandra cql

我正在为Cassandra中的时间序列数据做一些数据建模,并且我决定实现存储桶以调节分区大小并在群集上保持合理的分布。

我决定进行存储分区,以使分区的大小不超过10MB,因为我已经看到很多资料都指出这是理想的分区大小,但是我找不到关于为什么选择10MB的任何信息。最重要的是,我从DataStax或Apache中找不到任何提及此10MB软限制的东西。

可以长时间请求我们的数据,这意味着如果分区大小保持在10MB,则需要大量分区来满足1个请求。我宁愿增加分区的大小,并减少处理这些请求所需的分区。

10MB分区大小的想法从何而来?仍然有意义吗?如果我的分区大小为20MB,那会有什么不好呢?甚至50MB?

在很多地方都引用了10MB,我觉得这里一定有东西。任何信息,将不胜感激。干杯。

1 个答案:

答案 0 :(得分:3)

我认为其中许多建议来自旧时,当时对宽分区的支持不是很好-当我们读取数据时,这对堆造成了很大的压力等。自Cassandra 3.0以来,情况大为改善,但仍建议将磁盘大小保持在100Mb以下。

例如,DataStax planning guide在“估计分区大小”部分中说:

  

一个好的经验法则是将最大行数保持在100,000个以下,并将磁盘大小保持在100 MB以下

在最新版本的Cassandra中,我们可以超越此建议,但仍然不建议这样做,尽管它在很大程度上取决于访问模式。您可以在following blog postthis video中找到更多信息。

我已经看到具有60 + Gb分区的用户-系统仍然可以工作,但是数据分配并不理想,因此节点变得“热”,并且性能可能会受到损害。