分区器的选择会给我的 Cassandra 吞吐量和延迟带来什么差异?我已经检查了所有三个分区,我注意到的一件事是ByteOrdered
分区器有开销,所以我不使用它。现在我有点分裂Random
and Murmur3
分区器。
两者之间的主要区别在于各自如何生成令牌哈希值。随机分区器使用 JDK 原生 MD5 哈希(因为它既方便开发人员又是所有 JDK 的标准)。但由于 Cassandra 确实不需要加密哈希,因此该函数花费的时间比实际需要的时间要长得多。
使用 Murmur3 分区器,令牌哈希仅执行 Cassandra 需要它执行的操作。其中,是生成一个令牌,确保在节点之间均匀分配。这使得令牌哈希性能提高了 3 到 5 倍,这最终转化为 Carlo 上面提到的 10% 的总体增益。
还应该注意的是,DataStax 会警告分区程序不兼容。这意味着,一旦您从一个分区器开始,您就无法(轻松)转换到另一个分区器。因此,我会选择更新、速度稍快的 Murmur3 分区程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)