You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by cp...@apache.org on 2017/05/25 17:55:16 UTC

[07/44] lucene-solr:jira/solr-8668: Ref Guide: fix note for atomic updates after SOLR-9530

Ref Guide: fix note for atomic updates after SOLR-9530


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/31e02e93
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/31e02e93
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/31e02e93

Branch: refs/heads/jira/solr-8668
Commit: 31e02e93a5712d8fa2cafff3b13ce329563c6579
Parents: 73aa53b
Author: Cassandra Targett <ct...@apache.org>
Authored: Tue May 23 11:05:18 2017 -0500
Committer: Cassandra Targett <ct...@apache.org>
Committed: Tue May 23 11:05:53 2017 -0500

----------------------------------------------------------------------
 .../src/update-request-processors.adoc          | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/31e02e93/solr/solr-ref-guide/src/update-request-processors.adoc
----------------------------------------------------------------------
diff --git a/solr/solr-ref-guide/src/update-request-processors.adoc b/solr/solr-ref-guide/src/update-request-processors.adoc
index 22d14ed..eb69d3b 100644
--- a/solr/solr-ref-guide/src/update-request-processors.adoc
+++ b/solr/solr-ref-guide/src/update-request-processors.adoc
@@ -90,7 +90,7 @@ Do not forget to add `RunUpdateProcessorFactory` at the end of any chains you de
 
 Update request processors can also be configured independent of a chain in `solrconfig.xml`.
 
-.updateProcessor
+.updateProcessor Configuration
 [source,xml]
 ----
 <updateProcessor class="solr.processor.SignatureUpdateProcessorFactory" name="signature">
@@ -105,7 +105,7 @@ Update request processors can also be configured independent of a chain in `solr
 
 In this case, an instance of `SignatureUpdateProcessorFactory` is configured with the name "signature" and a `RemoveBlankFieldUpdateProcessorFactory` is defined with the name "remove_blanks". Once the above has been specified in `solrconfig.xml`, we can be refer to them in update request processor chains in `solrconfig.xml` as follows:
 
-.updateRequestProcessorChains and updateProcessors
+.updateRequestProcessorChain Configuration
 [source,xml]
 ----
 <updateProcessorChain name="custom" processor="remove_blanks,signature">
@@ -135,7 +135,7 @@ In summary:
 
 In the previous section, we saw that the `updateRequestProcessorChain` was configured with `processor="remove_blanks, signature"`. This means that such processors are of the #1 kind and are run only on the forwarding nodes. Similarly, we can configure them as the #2 kind by specifying with the attribute "post-processor" as follows:
 
-.post-processors
+.post-processor Configuration
 [source,xml]
 ----
 <updateProcessorChain name="custom" processor="signature" post-processor="remove_blanks">
@@ -145,19 +145,19 @@ In the previous section, we saw that the `updateRequestProcessorChain` was confi
 
 However executing a processor only on the forwarding nodes is a great way of distributing an expensive computation such as de-duplication across a SolrCloud cluster by sending requests randomly via a load balancer. Otherwise the expensive computation is repeated on both the leader and replica nodes.
 
-// TODO 6.6 I think this can be removed after SOLR-9530 -CT
-.Pre-processors and Atomic Updates
-[WARNING]
-====
-Because `DistributedUpdateProcessor` is responsible for processing <<updating-parts-of-documents.adoc#updating-parts-of-documents,Atomic Updates>> into full documents on the leader node, this means that pre-processors which are executed only on the forwarding nodes can only operate on the partial document. If you have a processor which must process a full document then the only choice is to specify it as a post-processor.
-====
-
 .Custom update chain post-processors may never be invoked on a recovering replica
 [WARNING]
 ====
 While a replica is in <<read-and-write-side-fault-tolerance.adoc#ReadandWriteSideFaultTolerance-WriteSideFaultTolerance,recovery>>, inbound update requests are buffered to the transaction log. After recovery has completed successfully, those buffered update requests are replayed. As of this writing, however, custom update chain post-processors are never invoked for buffered update requests. See https://issues.apache.org/jira/browse/SOLR-8030[SOLR-8030]. To work around this problem until SOLR-8030 has been fixed, *avoid specifying post-processors in custom update chains*.
 ====
 
+=== Atomic Updates
+
+If the `AtomicUpdateProcessorFactory` is in the update chain before the `DistributedUpdateProcessor`, the incoming document to the chain will be a partial document.
+
+Because `DistributedUpdateProcessor` is responsible for processing <<updating-parts-of-documents.adoc#updating-parts-of-documents,Atomic Updates>> into full documents on the leader node, this means that pre-processors which are executed only on the forwarding nodes can only operate on the partial document. If you have a processor which must process a full document then the only choice is to specify it as a post-processor.
+
+
 [[UpdateRequestProcessors-UsingCustomChains]]
 == Using Custom Chains