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