[ 
https://issues.apache.org/jira/browse/SOLR-12934?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Amrit Sarkar updated SOLR-12934:
--------------------------------
    Description: 
While setting up CDCR in {{solrconfig.xml}} at {{target}} cluster, we need to 
make default update processor chain with {{CdcrUpdateProcessorFactory}} like:
{code}
<updateRequestProcessorChain name="cdcr-processor-chain">
  <processor class="solr.CdcrUpdateProcessorFactory"/>
  <processor class="solr.RunUpdateProcessorFactory"/>
</updateRequestProcessorChain>
{code}
{code}
<requestHandler name="/update" class="solr.UpdateRequestHandler">
  <lst name="defaults">
    <str name="update.chain">cdcr-processor-chain</str>
  </lst>
</requestHandler>
{code}
The motivation having a default update processor chain with no other but 
{{CdcrUpdateProcessorFactory}} is to NOT MODIFY already processed and 
transformed data at source. And it works perfectly.

In {{Bidirectional}} scenario, we need to set this default chain at both 
clusters, source & target. And while sending documents from application side; 
we need to EXPLICITLY SET 
[update.chain|https://lucene.apache.org/solr/guide/6_6/update-request-processors.html#UpdateRequestProcessors-CustomUpdateRequestProcessorChain]
 with each batch at the primary/source cluster. This introduces an extra 
activity/effort at the application end.

It would be great if we can make Update Request Processors CDCR aware; i.e. 
skip and don't process the doc batches which are CDCR forwarded ones and treat 
the others as default. 



  was:
While setting up CDCR in {{solrconfig.xml}} at {{target}} cluster, we need to 
make default update processor chain with {{CdcrUpdateProcessorFactory}} like:
{code}
<updateRequestProcessorChain name="cdcr-processor-chain">
  <processor class="solr.CdcrUpdateProcessorFactory"/>
  <processor class="solr.RunUpdateProcessorFactory"/>
</updateRequestProcessorChain>
{code}
{code}
<requestHandler name="/update" class="solr.UpdateRequestHandler">
  <lst name="defaults">
    <str name="update.chain">cdcr-processor-chain</str>
  </lst>
</requestHandler>
{code}
The motivation having a default update processor chain with no other but 
{{CdcrUpdateProcessorFactory}} is to NOT MODIFY already processed and 
transformed data at source. And it works perfectly.

In {{Bidirectional}} scenario, we need to set this default chain at both 
clusters, source & target. And while sending documents from application side; 
we need to EXPLICITLY SET {{update.chain}} [default 
chain|https://lucene.apache.org/solr/guide/6_6/update-request-processors.html#UpdateRequestProcessors-CustomUpdateRequestProcessorChain]
 with each batch at the primary/source cluster. This introduces an extra 
activity/effort at the application end.

It would be great if we can make Update Request Processors CDCR aware; i.e. 
skip and don't process the doc batches which are CDCR forwarded ones and treat 
the others as default. 




> Make Update Request Processors CDCR aware (i.e. skip process if CDCR 
> forwarded update)
> --------------------------------------------------------------------------------------
>
>                 Key: SOLR-12934
>                 URL: https://issues.apache.org/jira/browse/SOLR-12934
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: CDCR, UpdateRequestProcessors
>            Reporter: Amrit Sarkar
>            Priority: Major
>
> While setting up CDCR in {{solrconfig.xml}} at {{target}} cluster, we need to 
> make default update processor chain with {{CdcrUpdateProcessorFactory}} like:
> {code}
> <updateRequestProcessorChain name="cdcr-processor-chain">
>   <processor class="solr.CdcrUpdateProcessorFactory"/>
>   <processor class="solr.RunUpdateProcessorFactory"/>
> </updateRequestProcessorChain>
> {code}
> {code}
> <requestHandler name="/update" class="solr.UpdateRequestHandler">
>   <lst name="defaults">
>     <str name="update.chain">cdcr-processor-chain</str>
>   </lst>
> </requestHandler>
> {code}
> The motivation having a default update processor chain with no other but 
> {{CdcrUpdateProcessorFactory}} is to NOT MODIFY already processed and 
> transformed data at source. And it works perfectly.
> In {{Bidirectional}} scenario, we need to set this default chain at both 
> clusters, source & target. And while sending documents from application side; 
> we need to EXPLICITLY SET 
> [update.chain|https://lucene.apache.org/solr/guide/6_6/update-request-processors.html#UpdateRequestProcessors-CustomUpdateRequestProcessorChain]
>  with each batch at the primary/source cluster. This introduces an extra 
> activity/effort at the application end.
> It would be great if we can make Update Request Processors CDCR aware; i.e. 
> skip and don't process the doc batches which are CDCR forwarded ones and 
> treat the others as default. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to