org.apache.solr.handler

## Class CdcrRequestHandler

- java.lang.Object
- - org.apache.solr.handler.RequestHandlerBase
  - - org.apache.solr.handler.CdcrRequestHandler

- All Implemented Interfaces:
    SolrInfoMBean, NestedRequestHandler, SolrRequestHandler, SolrCoreAware

      public class CdcrRequestHandler
      extends RequestHandlerBase
      implements SolrCoreAware

  This request handler implements the CDCR API and is responsible of the execution of the `CdcrReplicator` threads.

  It relies on three classes, `CdcrLeaderStateManager`, `CdcrBufferStateManager` and `CdcrProcessStateManager` to synchronise the state of the CDCR across all the nodes.

  The CDCR process can be either `CdcrParams.ProcessState.STOPPED` or `CdcrParams.ProcessState.STARTED` by using the actions `CdcrParams.CdcrAction.STOP` and `CdcrParams.CdcrAction.START` respectively. If a node is leader and the process state is `CdcrParams.ProcessState.STARTED`, the `CdcrReplicatorManager` will start the `CdcrReplicator` threads. If a node becomes non-leader or if the process state becomes `CdcrParams.ProcessState.STOPPED`, the `CdcrReplicator` threads are stopped.

  The CDCR can be switched to a "buffering" mode, in which the update log will never delete old transaction log files. Such a mode can be enabled or disabled using the action `CdcrParams.CdcrAction.ENABLEBUFFER` and `CdcrParams.CdcrAction.DISABLEBUFFER` respectively.

  Known limitations: The source and target clusters must have the same topology. Replication between clusters with a different number of shards will likely results in an inconsistent index.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.solr.core.SolrInfoMBean

      `SolrInfoMBean.Category`

  - ### Field Summary

    - ### Fields inherited from class org.apache.solr.handler.RequestHandlerBase

      `appends, defaults, httpCaching, initArgs, invariants`

    - ### Fields inherited from interface org.apache.solr.request.SolrRequestHandler

      `TYPE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CdcrRequestHandler()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getDescription()` Simple one or two line description
    `void` | `handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp)`
    `void` | `inform(SolrCore core)`
    `void` | `init(NamedList args)` Initializes the `SolrRequestHandler` by creating three `SolrParams` named.

    - ### Methods inherited from class org.apache.solr.handler.RequestHandlerBase

      `getCategory, getDocs, getInitArgs, getName, getPluginInfo, getRequestHandler, getSolrParamsFromNamedList, getSource, getStatistics, getSubHandler, getVersion, handleRequest, setPluginInfo`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### CdcrRequestHandler

          public CdcrRequestHandler()

  - ### Method Detail

    - #### init

          public void init(NamedList args)

      Description copied from class: `RequestHandlerBase`
      Initializes the `SolrRequestHandler` by creating three `SolrParams` named.

      Name | Description
      --- | ---
      defaults | Contains all of the named arguments contained within the list element named "defaults".
      appends | Contains all of the named arguments contained within the list element named "appends".
      invariants | Contains all of the named arguments contained within the list element named "invariants".

      Example:

           <lst name="defaults">
           <str name="echoParams">explicit</str>
           <str name="qf">text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0</str>
           <str name="mm">2<-1 5<-2 6<90%</str>
           <str name="bq">incubationdate_dt:[* TO NOW/DAY-1MONTH]^2.2</str>
           </lst>
           <lst name="appends">
           <str name="fq">inStock:true</str>
           </lst>

           <lst name="invariants">
           <str name="facet.field">cat</str>
           <str name="facet.field">manu_exact</str>
           <str name="facet.query">price:[* TO 500]</str>
           <str name="facet.query">price:[500 TO *]</str>
           </lst>

      Specified by:
        `init` in interface `SolrRequestHandler`
      Overrides:
        `init` in class `RequestHandlerBase`
      Parameters:
        `args` - The `NamedList` to initialize from
      See Also:
        `RequestHandlerBase.handleRequest(org.apache.solr.request.SolrQueryRequest, org.apache.solr.response.SolrQueryResponse)`, `RequestHandlerBase.handleRequestBody(org.apache.solr.request.SolrQueryRequest, org.apache.solr.response.SolrQueryResponse)`, `SolrPluginUtils.setDefaults(org.apache.solr.request.SolrQueryRequest, org.apache.solr.common.params.SolrParams, org.apache.solr.common.params.SolrParams, org.apache.solr.common.params.SolrParams)`, `See also the example solrconfig.xml located in the Solr codebase (example/solr/conf).`

    - #### handleRequestBody

          public void handleRequestBody(SolrQueryRequest req,
                                        SolrQueryResponse rsp)
                                 throws Exception

      Specified by:
        `handleRequestBody` in class `RequestHandlerBase`
      Throws:
        `Exception`

    - #### inform

          public void inform(SolrCore core)

      Specified by:
        `inform` in interface `SolrCoreAware`

    - #### getDescription

          public String getDescription()

      Description copied from interface: `SolrInfoMBean`
      Simple one or two line description
      Specified by:
        `getDescription` in interface `SolrInfoMBean`
      Specified by:
        `getDescription` in class `RequestHandlerBase`

Copyright © 2000-2016 Apache Software Foundation. All Rights Reserved.