我是 Cassandra 的新手,我有一个有 6 个节点的 cassandra 集群。我正在尝试查找分区大小,
尝试使用这个基本命令获取它
<块引用>nodetool tablehistograms keyspace.tablename
现在,我想知道它是如何计算的,为什么结果只有 min、max 以外的 5 条记录,而节点数是 6。节点大小和表的分区数有关系吗?
>从根本上说,我所知道的是分区键用于散列和分发要跨各个节点持久化的数据
我们应该在什么时候进行分桶?我假设 Cassandra 有一个分区器来处理跨节点的分布式持久性。
答案 0 :(得分:1)
此列的条目数与节点数无关。它显示了值的分布 - 您有 min、max 和 percentiles (50/75/95/98/99)。
大多数 nodetool
命令不显示其他节点的任何信息 - 它们是仅提供有关当前节点信息的工具。
附言此 document 将有助于解释如何解释此信息。
答案 1 :(得分:1)
顾名思义,tablehistograms
报告节点所持有分区的元数据分布。
为了补充 Alex Ott 已经说过的内容,百分位数(不是百分比)提供了对元数据值范围的洞察。例如:
这些元数据与集群中的分区数量或节点数量没有任何关联。
您是正确的,分区键被散列,结果值决定了分区(及其相关行)的存储位置(分布在集群中的节点之间)。如果您有兴趣,我在这篇博文中用一些示例进行了更详细的解释 -- https://community.datastax.com/questions/5944/。
就分桶而言,您通常会这样做以减少分区中的行数,从而减小其大小。一般建议是将您的分区大小保持在 100MB 以下以获得最佳性能,但这不是硬性规定 - 只要您了解权衡,您可以拥有更大的分区。
在你的情况下,larges 分区只有 455KB,所以大小不是问题。干杯!