【问题标题】:Solrcloud write operation behind the sceneSolrcloud 后台写操作
【发布时间】:2016-01-01 10:12:46
【问题描述】:

想详细了解SolrCloud的写操作,对架构有几个疑问:

  1. Zookeeper 是否向所有领导者发送文档写入请求?

    solrwiki:每个分片可以存在多个副本;同一分片的这些副本称为副本。分片中的副本之一是领导者,由领导者选举过程指定。

  2. 云有领导者和副本,所以所有领导者在索引文档之前是否都运行下面描述的散列过程,还是由特定领导者负责?

    Solr Wiki: 文档 ID 用于计算 Solr 用于确定文档发送到哪个分片以进行索引的哈希值。

  3. 如果文档索引由于某种原因失败(leader 宕机),那么从节点是否会尝试重新索引该文档或什么是故障转移机制?

  4. 只有当一个分片中的所有副本都成功地为文档建立索引时,才认为写操作已完成。 是真是假

【问题讨论】:

    标签: solr lucene apache-zookeeper solrcloud


    【解决方案1】:

    这是我的理解

    1) ZooKeeper 不会向 SolrCloud 写入任何文档。 ZooKeeper 是每个 SolrCloud 节点用来存储共享配置和跟踪每个节点的共享状态以帮助选举领导者和监控副本状态的资源。 ZooKeeper 不参与对任何集合或任何更新的任何查询。 另见https://stackoverflow.com/a/19628852/277023

    2) 至少对于 SolrJ 客户端而言,将节点写入哪个分片的选择是由客户端而不是领导者完成的 请参阅here 并参阅https://lucene.apache.org/solr/guide/7_0/shards-and-indexing-data-in-solrcloud.html 了解更多详情

    3) 我不知道那个问题的答案

    4) 如下认为写操作成功

    事务日志是 Solr4 数据保证不可或缺的一部分,也是人们遇到麻烦的地方,所以让我们稍微谈谈它们。 SolrCloud中的索引流程如下: 传入的文档由节点接收并转发给适当的领导者。 从领导者那里,它们被发送到相关分片的所有副本。 副本响应他们的领导者。 领导者响应始发节点。 在所有领导者都响应后,始发节点回复客户端。 至此,集群中所有节点的所有文档都已经刷到tlog了!

    来自

    https://lucidworks.com/2013/08/23/understanding-transaction-logs-softcommit-and-commit-in-sorlcloud/

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-21
      • 1970-01-01
      • 2013-09-29
      • 2013-04-09
      • 1970-01-01
      • 2014-01-22
      • 1970-01-01
      相关资源
      最近更新 更多