Package org.apache.solr.handler
Class ReplicationHandler
- java.lang.Object
-
- org.apache.solr.handler.RequestHandlerBase
-
- org.apache.solr.handler.ReplicationHandler
-
- All Implemented Interfaces:
AutoCloseable,ApiSupport,SolrInfoBean,NestedRequestHandler,SolrMetricProducer,SolrRequestHandler,PermissionNameProvider,SolrCoreAware
public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAware
A Handler which provides a REST API for replication and serves replication requests from Followers.When running on the leader, it provides the following commands
- Get the current replicable index version (command=indexversion)
- Get the list of files for a given index version (command=filelist&indexversion=<VERSION>)
- Get full or a part (chunk) of a given index or a config file (command=filecontent&file=<FILE_NAME>) You can optionally specify an offset and length to get that chunk of the file. You can request a configuration file by using "cf" parameter instead of the "file" parameter.
- Get status/statistics (command=details)
When running on the follower, it provides the following commands
- Perform an index fetch now (command=snappull)
- Get status/statistics (command=details)
- Abort an index fetch (command=abort)
- Enable/Disable polling the leader for new versions (command=enablepoll or command=disablepoll)
- Since:
- solr 1.4
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceReplicationHandler.PollListener-
Nested classes/interfaces inherited from class org.apache.solr.handler.RequestHandlerBase
RequestHandlerBase.HandlerMetrics
-
Nested classes/interfaces inherited from interface org.apache.solr.security.PermissionNameProvider
PermissionNameProvider.Name
-
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, metrics, solrMetricsContext
-
Fields inherited from interface org.apache.solr.security.PermissionNameProvider
ANY, NULL, values
-
Fields inherited from interface org.apache.solr.request.SolrRequestHandler
TYPE
-
-
Constructor Summary
Constructors Constructor Description ReplicationHandler()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanabortFetch()IndexFetcher.IndexFetchResultdoFetch(SolrParams solrParams, boolean forceReplication)SolrInfoBean.CategorygetCategory()Category of this componentStringgetDescription()Simple one or two line descriptionstatic <T> TgetObjectWithBackwardCompatibility(NamedList<?> params, String preferredKey, String alternativeKey)PermissionNameProvider.NamegetPermissionName(AuthorizationContext request)voidhandleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp)voidinform(SolrCore core)voidinitializeMetrics(SolrMetricsContext parentContext, String scope)Initialize metrics specific to this producer.booleanisFollower()voidsetPollListener(ReplicationHandler.PollListener pollListener)voidshutdown()-
Methods inherited from class org.apache.solr.handler.RequestHandlerBase
getApis, getInitArgs, getMetricsForThisRequest, getName, getPluginInfo, getRequestHandler, getSolrMetricsContext, getSolrParamsFromNamedList, getSubHandler, handleRequest, init, 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.metrics.SolrMetricProducer
close
-
-
-
-
Field Detail
-
PATH
public static final String PATH
- See Also:
- Constant Field Values
-
LEADER_URL
public static final String LEADER_URL
- See Also:
- Constant Field Values
-
LEGACY_LEADER_URL
@Deprecated public static final String LEGACY_LEADER_URL
Deprecated.- See Also:
- Constant Field Values
-
FETCH_FROM_LEADER
public static final String FETCH_FROM_LEADER
- See Also:
- Constant Field Values
-
SKIP_COMMIT_ON_LEADER_VERSION_ZERO
public static final String SKIP_COMMIT_ON_LEADER_VERSION_ZERO
- See Also:
- Constant Field Values
-
LEGACY_SKIP_COMMIT_ON_LEADER_VERSION_ZERO
@Deprecated public static final String LEGACY_SKIP_COMMIT_ON_LEADER_VERSION_ZERO
Deprecated.- See Also:
- Constant Field Values
-
STATUS
public static final String STATUS
- See Also:
- Constant Field Values
-
MESSAGE
public static final String MESSAGE
- See Also:
- Constant Field Values
-
COMMAND
public static final String COMMAND
- See Also:
- Constant Field Values
-
CMD_DETAILS
public static final String CMD_DETAILS
- See Also:
- Constant Field Values
-
CMD_BACKUP
public static final String CMD_BACKUP
- See Also:
- Constant Field Values
-
CMD_RESTORE
public static final String CMD_RESTORE
- See Also:
- Constant Field Values
-
CMD_RESTORE_STATUS
public static final String CMD_RESTORE_STATUS
- See Also:
- Constant Field Values
-
CMD_FETCH_INDEX
public static final String CMD_FETCH_INDEX
- See Also:
- Constant Field Values
-
CMD_ABORT_FETCH
public static final String CMD_ABORT_FETCH
- See Also:
- Constant Field Values
-
CMD_GET_FILE_LIST
public static final String CMD_GET_FILE_LIST
- See Also:
- Constant Field Values
-
CMD_GET_FILE
public static final String CMD_GET_FILE
- See Also:
- Constant Field Values
-
CMD_DISABLE_POLL
public static final String CMD_DISABLE_POLL
- See Also:
- Constant Field Values
-
CMD_DISABLE_REPL
public static final String CMD_DISABLE_REPL
- See Also:
- Constant Field Values
-
CMD_ENABLE_REPL
public static final String CMD_ENABLE_REPL
- See Also:
- Constant Field Values
-
CMD_ENABLE_POLL
public static final String CMD_ENABLE_POLL
- See Also:
- Constant Field Values
-
CMD_INDEX_VERSION
public static final String CMD_INDEX_VERSION
- See Also:
- Constant Field Values
-
CMD_SHOW_COMMITS
public static final String CMD_SHOW_COMMITS
- See Also:
- Constant Field Values
-
CMD_DELETE_BACKUP
public static final String CMD_DELETE_BACKUP
- See Also:
- Constant Field Values
-
GENERATION
public static final String GENERATION
- See Also:
- Constant Field Values
-
OFFSET
public static final String OFFSET
- See Also:
- Constant Field Values
-
LEN
public static final String LEN
- See Also:
- Constant Field Values
-
FILE
public static final String FILE
- See Also:
- Constant Field Values
-
SIZE
public static final String SIZE
- See Also:
- Constant Field Values
-
MAX_WRITE_PER_SECOND
public static final String MAX_WRITE_PER_SECOND
- See Also:
- Constant Field Values
-
CONF_FILE_SHORT
public static final String CONF_FILE_SHORT
- See Also:
- Constant Field Values
-
TLOG_FILE
public static final String TLOG_FILE
- See Also:
- Constant Field Values
-
CHECKSUM
public static final String CHECKSUM
- See Also:
- Constant Field Values
-
ALIAS
public static final String ALIAS
- See Also:
- Constant Field Values
-
CONF_CHECKSUM
public static final String CONF_CHECKSUM
- See Also:
- Constant Field Values
-
CONF_FILES
public static final String CONF_FILES
- See Also:
- Constant Field Values
-
REPLICATE_AFTER
public static final String REPLICATE_AFTER
- See Also:
- Constant Field Values
-
FILE_STREAM
public static final String FILE_STREAM
- See Also:
- Constant Field Values
-
POLL_INTERVAL
public static final String POLL_INTERVAL
- See Also:
- Constant Field Values
-
INTERVAL_ERR_MSG
public static final String INTERVAL_ERR_MSG
- See Also:
- Constant Field Values
-
PACKET_SZ
public static final int PACKET_SZ
- See Also:
- Constant Field Values
-
RESERVE
public static final String RESERVE
- See Also:
- Constant Field Values
-
COMPRESSION
public static final String COMPRESSION
- See Also:
- Constant Field Values
-
EXTERNAL
public static final String EXTERNAL
- See Also:
- Constant Field Values
-
INTERNAL
public static final String INTERNAL
- See Also:
- Constant Field Values
-
ERR_STATUS
public static final String ERR_STATUS
- See Also:
- Constant Field Values
-
OK_STATUS
public static final String OK_STATUS
- See Also:
- Constant Field Values
-
NEXT_EXECUTION_AT
public static final String NEXT_EXECUTION_AT
- See Also:
- Constant Field Values
-
NUMBER_BACKUPS_TO_KEEP_REQUEST_PARAM
public static final String NUMBER_BACKUPS_TO_KEEP_REQUEST_PARAM
- See Also:
- Constant Field Values
-
NUMBER_BACKUPS_TO_KEEP_INIT_PARAM
public static final String NUMBER_BACKUPS_TO_KEEP_INIT_PARAM
- See Also:
- Constant Field Values
-
WAIT
public static final String WAIT
Boolean param for tests that can be specified when usingCMD_FETCH_INDEXto force the current request to block until the fetch is complete. NOTE: This param is not advised for non-test code, since the duration of the fetch for non-trivial indexes will likeley cause the request to time out.- See Also:
- Constant Field Values
- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
-
-
Method Detail
-
getPermissionName
public PermissionNameProvider.Name getPermissionName(AuthorizationContext request)
- Specified by:
getPermissionNamein interfacePermissionNameProvider
-
setPollListener
public void setPollListener(ReplicationHandler.PollListener pollListener)
-
isFollower
public boolean isFollower()
-
handleRequestBody
public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception
- Specified by:
handleRequestBodyin classRequestHandlerBase- Throws:
Exception
-
getObjectWithBackwardCompatibility
public static <T> T getObjectWithBackwardCompatibility(NamedList<?> params, String preferredKey, String alternativeKey)
-
abortFetch
public boolean abortFetch()
-
doFetch
public IndexFetcher.IndexFetchResult doFetch(SolrParams solrParams, boolean forceReplication)
-
getCategory
public SolrInfoBean.Category getCategory()
Description copied from interface:SolrInfoBeanCategory of this component- Specified by:
getCategoryin interfaceSolrInfoBean- Overrides:
getCategoryin classRequestHandlerBase
-
getDescription
public String getDescription()
Description copied from interface:SolrInfoBeanSimple one or two line description- Specified by:
getDescriptionin interfaceSolrInfoBean- Specified by:
getDescriptionin classRequestHandlerBase
-
initializeMetrics
public void initializeMetrics(SolrMetricsContext parentContext, String scope)
Description copied from interface:SolrMetricProducerInitialize metrics specific to this producer.- Specified by:
initializeMetricsin interfaceSolrMetricProducer- Overrides:
initializeMetricsin classRequestHandlerBase- Parameters:
parentContext- parent metrics context. If this component has the same life-cycle as the parent it can simply use the parent context, otherwise it should obtain a child context usingSolrMetricsContext.getChildContext(Object)passingthisas the child object.scope- component scope
-
inform
public void inform(SolrCore core)
- Specified by:
informin interfaceSolrCoreAware
-
shutdown
public void shutdown()
-
-