You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Amrit Sarkar (JIRA)" <ji...@apache.org> on 2018/10/28 10:57:00 UTC

[jira] [Updated] (SOLR-12934) Make Update Request Processors CDCR aware (i.e. skip process if CDCR forwarded update)

     [ 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: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org