cassandra Elassandra搜索复制数据

qvtsj1bj  于 2022-11-05  发布在  Cassandra
关注(0)|答案(2)|浏览(142)

在Elassandra中,如何在将查询分发到节点时确定token_range
在Elassandra节点之间复制数据时会发生什么情况?
如何过滤重复的结果?

ws51t4hk

ws51t4hk1#

我的理解是,查询以类似于Cassandra的方式围绕集群进行。
Elasticsearch并不关心数据复制。他们创建自己的表来创建搜索信息,这些表通过标准的Cassandra机制进行复制。如果你了解Cassandra复制的工作原理,那么Elasticsearch的数据也会做同样的事情。
发生 * 过滤 * 是因为每个搜索节点都被给予了一个不重叠的令牌范围来处理。换句话说,一个节点被要求返回1、2、3的结果,下一个节点返回4、5、6的结果,第三个节点返回7、8、9的结果。因此,不会有重叠,也不会发生实际的过滤。

kiayqfof

kiayqfof2#

Elassandra根据目标索引的search_strategy_class将查询分发到节点,有两种策略:PrimaryFirstSearchStrategy(预设值)和RandomSearchStrategy

主要优先搜索策略

每个节点都参与查询,作为主节点负责返回自己拥有的文档,当一个节点宕机时,下一个副本将作为替代。

随机搜索策略

当RF〉1时,整个环只需要一个节点子集就可以到达,随机搜索策略利用了这一点,通过随机选择这样一个节点子集来提高搜索效率。
这两种策略都根据上述行为向每个子查询添加token_range过滤器。因此,过滤发生在本地,而不是在协调器节点中。

相关问题