【问题标题】:Elassandra Search for Replicated DataElassandra 搜索复制数据
【发布时间】:2018-11-14 06:59:45
【问题描述】:

token_range 在将查询分发到节点时如何在 Elassandra 中决定?

跨 Elassandra 节点复制数据时会发生什么?

如何过滤重复结果?

【问题讨论】:

    标签: elasticsearch-5 cassandra-3.0 elassandra


    【解决方案1】:

    我的理解是,查询以类似于 Cassandra 其他方式的方式在集群中传播。

    数据复制不是 Elasticsearch 方面的问题。他们创建自己的表来创建搜索信息,这些表通过标准 Cassandra 机制进行复制。如果您了解 Cassandra 复制的工作原理,那么 Elasticsearch 数据也会做同样的事情。

    过滤的发生是因为每个搜索节点都有一个不重叠的令牌范围来处理。换句话说,要求一个节点返回 1、2、3 的结果,下一个节点返回 4、5、6 的结果,第三个节点返回 7、8、9 的结果。因此不会有重叠和没有进行实际过滤。

    【讨论】:

      【解决方案2】:

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

      主要优先搜索策略

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

      随机搜索策略

      当 RF > 1 时,只有一部分节点可以到达完整的环。随机搜索策略利用了这一点,通过随机选择这样一个节点子集来提高搜索效率。

      两种策略都根据上述行为向每个子查询添加token_range 过滤器。因此,过滤发生在本地,而不是在协调节点中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-29
        • 1970-01-01
        • 1970-01-01
        • 2013-06-11
        • 2010-11-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多