我正在cassandra中为时间序列数据做一些数据建模,我决定实现bucket来调节分区大小并在集群上保持合理的分布。
我决定使用bucketise,这样我的分区就不会超过10mb的大小,因为我已经看到很多资料表明这是一个理想的分区大小,但我找不到任何关于为什么选择10mb的信息。除此之外,我从datastax或apache中找不到任何提到10mb软限制的内容。
我们的数据可以被请求很长一段时间,这意味着如果分区大小保持在10mb,那么需要很多分区来服务1个请求。我更愿意增加分区的大小,并且需要更少的分区来服务这些请求。
10mb分区大小的概念从何而来?还相关吗?如果我的分区大小是20mb,那会有什么不好呢?甚至50mb?
这么多地方引用了10mb,我觉得肯定有什么东西。如有任何信息,我们将不胜感激。干杯。
1条答案
按热度按时间of1yzvn41#
我认为这些建议中的许多都来自于旧时代,那时对宽分区的支持不是很好——当我们读取数据时,堆承受了很大的压力,等等。。自从Cassandra3.0以来,情况有了很大的改善,但仍然建议将磁盘大小控制在100mb以下。
例如,税务规划指南在“估计分区大小”一节中说:
一个好的经验法则是将最大行数保持在100000项以下,磁盘大小保持在100MB以下
在cassandra的最新版本中,我们可以超越这个建议,但是仍然不建议这样做,尽管这在很大程度上取决于访问模式。你可以在下面的博客文章和视频中找到更多信息。
我见过有60+gb分区的用户-系统仍然工作,但数据分布不理想,因此节点变得“热”,性能可能会受到影响。