2

我正在考虑一种优化子句的方法,例如(1,2,3,....)中的 id?

  • 掌握 Murmur3Partitioner 散列函数
  • 按产生相同散列的值分组 in-clause,例如“id in (x1, x3, ...)”,其中 x1 和 x3 具有相同的散列。
  • 将该查询传递给驱动程序,驱动程序应该能够转到分区所有者节点吗?

那么,如何获取 Cassandra 的 Murmur3Partitioner 散列函数,以便计算代码中的散列值?

这个理论适用于 Cassandra 吗?

4

1 回答 1

2

如果使用令牌感知负载平衡策略,驱动程序已经这样做了。值得注意的是,您不太可能拥有多个具有相同令牌的 id,尽管它们可能是相同的协调者。

一般来说,尝试批量处理这样的请求是个坏主意。除非你有一个不寻常的场景,否则最好只在每个场景上使用 executeAsyncid并在所有场景上执行。它将更好地在集群中分配和并行化协调负载,并且需要更少的自定义工作。我强烈建议不要过早优化,而是专注于拥有正确的数据模型。如果您需要批量工作,请使用 spark loader/reader 或查看它以获取有效执行此操作的好例子。

于 2018-10-03T01:08:10.393 回答