Class CdcrRequestHandler
- java.lang.Object
-
- org.apache.solr.handler.RequestHandlerBase
-
- org.apache.solr.handler.CdcrRequestHandler
-
- All Implemented Interfaces:
ApiSupport
,SolrInfoBean
,NestedRequestHandler
,SolrMetricProducer
,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
andCdcrProcessStateManager
to synchronise the state of the CDCR across all the nodes.The CDCR process can be either
CdcrParams.ProcessState.STOPPED
orCdcrParams.ProcessState.STARTED
by using the actionsCdcrParams.CdcrAction.STOP
andCdcrParams.CdcrAction.START
respectively. If a node is leader and the process state isCdcrParams.ProcessState.STARTED
, theCdcrReplicatorManager
will start theCdcrReplicator
threads. If a node becomes non-leader or if the process state becomesCdcrParams.ProcessState.STOPPED
, theCdcrReplicator
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
andCdcrParams.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.SolrInfoBean
SolrInfoBean.Category, SolrInfoBean.Group
-
-
Field Summary
-
Fields inherited from class org.apache.solr.handler.RequestHandlerBase
appends, defaults, httpCaching, initArgs, invariants, metricManager, registryName
-
Fields inherited from interface org.apache.solr.request.SolrRequestHandler
TYPE
-
-
Constructor Summary
Constructors Constructor Description CdcrRequestHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SolrInfoBean.Category
getCategory()
Category of this componentString
getDescription()
Simple one or two line descriptionvoid
handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp)
void
inform(SolrCore core)
void
init(NamedList args)
Initializes theSolrRequestHandler
by creating threeSolrParams
named.-
Methods inherited from class org.apache.solr.handler.RequestHandlerBase
getApis, getInitArgs, getMetricNames, getMetricRegistry, getName, getPluginInfo, getRequestHandler, getSolrParamsFromNamedList, getSubHandler, handleRequest, initializeMetrics, setPluginInfo
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.solr.api.ApiSupport
registerV1, registerV2
-
Methods inherited from interface org.apache.solr.core.SolrInfoBean
getMetricsSnapshot, registerMetricName
-
-
-
-
Method Detail
-
init
public void init(NamedList args)
Description copied from class:RequestHandlerBase
Initializes theSolrRequestHandler
by creating threeSolrParams
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". <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 interfaceSolrRequestHandler
- Overrides:
init
in classRequestHandlerBase
- Parameters:
args
- TheNamedList
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 classRequestHandlerBase
- Throws:
Exception
-
inform
public void inform(SolrCore core)
- Specified by:
inform
in interfaceSolrCoreAware
-
getDescription
public String getDescription()
Description copied from interface:SolrInfoBean
Simple one or two line description- Specified by:
getDescription
in interfaceSolrInfoBean
- Specified by:
getDescription
in classRequestHandlerBase
-
getCategory
public SolrInfoBean.Category getCategory()
Description copied from interface:SolrInfoBean
Category of this component- Specified by:
getCategory
in interfaceSolrInfoBean
- Overrides:
getCategory
in classRequestHandlerBase
-
-