我在考虑一种优化in子句的方法,比如id in(1,2,3,…)?
获得一个杂音3partitioner哈希函数
按值分组in子句,这些值产生相同的散列,如“id in(x1,x3,…”,其中x1和x3具有相同的散列。
将该查询传递给驱动程序,驱动程序应该能够转到分区所有者节点?
那么,如何获得cassandra的multirre3partitioner散列函数,以便在代码中计算散列呢?
这个理论对Cassandra有用吗?
我在考虑一种优化in子句的方法,比如id in(1,2,3,…)?
获得一个杂音3partitioner哈希函数
按值分组in子句,这些值产生相同的散列,如“id in(x1,x3,…”,其中x1和x3具有相同的散列。
将该查询传递给驱动程序,驱动程序应该能够转到分区所有者节点?
那么,如何获得cassandra的multirre3partitioner散列函数,以便在代码中计算散列呢?
这个理论对Cassandra有用吗?
1条答案
按热度按时间but5z9lq1#
如果使用令牌感知负载平衡策略,驱动程序已经这样做了。值得注意的是,您不太可能拥有具有相同令牌的多个ID,尽管它们可能是相同的。
一般来说,尝试这样批量处理请求是个坏主意。除非您有一个不寻常的场景,否则最好只在每个场景上使用executesync
id
对他们都做一个测试。它将更好地跨集群分布和并行化协调负载,并且需要更少的定制工作。我强烈建议不要过早地进行优化,而应该专注于拥有一个正确的数据模型。如果您需要批量工作,请使用spark loader/reader或查看它,以获得高效工作的好示例。