分区器的选择会给我的Cassandra吞吐量和延迟带来什么不同?我已经检查了所有三个分区程序,我注意到ByteOrdered分区程序有开销,所以我不使用它。现在我在Random和Murmur3分区器之间有点分裂。
ByteOrdered
Random
Murmur3
kzipqqlq1#
两者之间的主要区别在于各自如何生成令牌哈希值。Random partitioner使用JDK本机MD5哈希(因为它对开发人员来说很方便,而且在所有JDK中都是标准的)。但由于Cassandra确实不需要加密散列,因此该函数花费的时间比所需的要长得多。使用Murmur3分区器,令牌哈希只做Cassandra需要它做的事情。这是为了生成一个令牌,确保在节点之间均匀分布。这导致令牌哈希性能提高了3到5倍,最终转化为Carlo上面提到的总体10%的增益。还应注意,DataStax警告分区器不兼容。这意味着,一旦开始使用一个分区器,就无法(轻松地)转换到另一个分区。因此,我会选择更新、稍快的Murmur3分区器。
vsdwdz232#
新的默认分区器是杂音3。它应该比无负面影响的随机分区器提供大约10%的性能增强
2条答案
按热度按时间kzipqqlq1#
两者之间的主要区别在于各自如何生成令牌哈希值。Random partitioner使用JDK本机MD5哈希(因为它对开发人员来说很方便,而且在所有JDK中都是标准的)。但由于Cassandra确实不需要加密散列,因此该函数花费的时间比所需的要长得多。
使用Murmur3分区器,令牌哈希只做Cassandra需要它做的事情。这是为了生成一个令牌,确保在节点之间均匀分布。这导致令牌哈希性能提高了3到5倍,最终转化为Carlo上面提到的总体10%的增益。
还应注意,DataStax警告分区器不兼容。这意味着,一旦开始使用一个分区器,就无法(轻松地)转换到另一个分区。因此,我会选择更新、稍快的Murmur3分区器。
vsdwdz232#
新的默认分区器是杂音3。它应该比无负面影响的随机分区器提供大约10%的性能增强