Solrcloud在场景后面编写操作

时间:2016-01-01 10:12:47

标签: solr lucene apache-zookeeper solrcloud

我想了解SolrCloud的详细写入操作,并对架构提出了一些问题:

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

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

  2. 云有领导者和副本,所以所有领导者在索引文档之前都会运行下面描述的哈希过程,或者是负责该文档的特定领导者?

    Solr Wiki文档ID用于计算Solr用于确定将文档发送到索引的分片的哈希值。

  3. 如果文档索引由于某种原因(领导者关闭)失败,那么slave节点是否尝试重新索引该文档或什么是故障转移机制?

  4. 仅当分片中的所有副本成功为文档编制索引时,才认为写入操作已完成。 是或否

1 个答案:

答案 0 :(得分:1)

这是我的理解

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

2)至少对于SolrJ客户端,将节点写入哪个碎片的选择是由客户端而不是由领导者完成的 有关更多详细信息,请参见herehttps://lucene.apache.org/solr/guide/7_0/shards-and-indexing-data-in-solrcloud.html

3)我不知道该问题的答案

4)认为写入操作成功

  

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

来自

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

我希望对您有帮助