Class ODistributedPlugin
java.lang.Object
com.orientechnologies.orient.server.plugin.OServerPluginAbstract
com.orientechnologies.orient.server.distributed.impl.ODistributedPlugin
- All Implemented Interfaces:
OService,ODistributedServerManager,OServerPlugin
- Direct Known Subclasses:
OHazelcastPlugin
Plugin to manage the distributed environment.
- Author:
- Luca Garulli (l.garulli--at--orientechnologies.com)
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.orientechnologies.orient.server.distributed.ODistributedServerManager
ODistributedServerManager.DB_STATUS -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Fileprotected static final intprotected List<ODistributedLifecycleListener> protected static final Stringprotected static final Stringprotected ODistributedStrategyprotected OSignalHandler.OSignalListenerFields inherited from class com.orientechnologies.orient.server.plugin.OServerPluginAbstract
enabledFields inherited from interface com.orientechnologies.orient.server.distributed.ODistributedServerManager
FILE_DISTRIBUTED_DB_CONFIG -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidprotected intcalculateQuorum(OCommandDistributedReplicateRequest.QUORUM_TYPE quorumType, ODistributedConfiguration cfg, int totalServers, int totalMasterServers, int onlineMasters, boolean checkNodesAreOnline, String localNodeName) protected voidcheckForServerOnline(ODistributedRequest iRequest) voidcloseRemoteServer(String node) voidconfig(OServer oServer, OServerParameterConfiguration[] iParams) Configures the handler.voidconnectToAllNodes(Set<String> clusterNodes) voidAvoids to dump the same configuration twice if it's unchanged since the last time.protected voidgetDatabase(String name) getDatabaseConfiguration(String iDatabaseName) getDatabaseStatus(String iNode, String iDatabaseName) com.hazelcast.core.HazelcastInstancelongstatic StringgetName()longgetNodeConfigurationByUuid(String iNode, boolean useCache) getRemoteServer(String rNodeName) voidinvokeOnDatabaseStatusChange(String node, String databaseName, ODistributedServerManager.DB_STATUS status) booleanvoidnotifyClients(String databaseName) voidnotifyNodeJoined(String joinedNodeName) voidnotifyNodeLeft(String joinedNodeName) voidonDatabaseEvent(String nodeName, String databaseName, ODistributedServerManager.DB_STATUS status) voidonNodeJoined(String joinedNodeName, String url, com.hazelcast.core.Member member) voidonServerRemoved(String nodeName) send2Nodes(ODistributedRequest iRequest, Collection<String> iNodes, ODistributedRequest.EXECUTION_MODE iExecutionMode, Object localResult) send2Nodes(ODistributedRequest iRequest, Collection<String> iNodes, ODistributedRequest.EXECUTION_MODE iExecutionMode, Object localResult, ODistributedResponseManagerFactory responseManagerFactory) sendRequest(String iDatabaseName, Collection<String> iTargetNodes, ORemoteTask iTask) Sends a distributed request against multiple servers.sendRequest(String iDatabaseName, Collection<String> iTargetNodes, ORemoteTask iTask, ODistributedRequestId reqId, Object localResult, ODistributedResponseManagerFactory responseManagerFactory) voidsendSingleRequest(String databaseName, String node, ORemoteTask iTask) Sends a distributed request against multiple servers.voidvoidsetDistributedStrategy(ODistributedStrategy streatgy) voidshutdown()voidstartup()toString()voidprotected booleanwaitForLocalNode(ODistributedConfiguration cfg, Collection<String> iNodes) protected ODistributedResponsewaitForResponse(ODistributedRequest iRequest, ODistributedResponseManager currentResponseMgr) Methods inherited from class com.orientechnologies.orient.server.plugin.OServerPluginAbstract
getContent, onAfterClientRequest, onBeforeClientRequest, onClientConnection, onClientDisconnection, onClientErrorMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.orientechnologies.orient.server.plugin.OServerPlugin
onSocketAccepted, onSocketDestroyed
-
Field Details
-
PAR_DEF_DISTRIB_DB_CONFIG
- See Also:
-
NODE_NAME_ENV
- See Also:
-
defaultDatabaseConfigFile
-
listeners
-
DEPLOY_DB_MAX_RETRIES
protected static final int DEPLOY_DB_MAX_RETRIES- See Also:
-
installingDatabases
-
responseManagerFactory
-
signalListener
-
-
Constructor Details
-
ODistributedPlugin
public ODistributedPlugin()
-
-
Method Details
-
config
Description copied from interface:OServerPluginConfigures the handler. Called at startup.- Specified by:
configin interfaceOServerPlugin- Overrides:
configin classOServerPluginAbstract
-
getDefaultDatabaseConfigFile
- Specified by:
getDefaultDatabaseConfigFilein interfaceODistributedServerManager
-
setDefaultDatabaseConfigFile
-
startup
public void startup()- Specified by:
startupin interfaceOService- Overrides:
startupin classOServerPluginAbstract
-
registerLifecycleListener
- Specified by:
registerLifecycleListenerin interfaceODistributedServerManager
-
unregisterLifecycleListener
- Specified by:
unregisterLifecycleListenerin interfaceODistributedServerManager
-
shutdown
public void shutdown()- Specified by:
shutdownin interfaceOService- Overrides:
shutdownin classOServerPluginAbstract
-
getName
-
sendShutdown
public void sendShutdown()- Specified by:
sendShutdownin interfaceOServerPlugin- Overrides:
sendShutdownin classOServerPluginAbstract
-
getServerInstance
- Specified by:
getServerInstancein interfaceODistributedServerManager
-
getLocalNodeConfiguration
- Specified by:
getLocalNodeConfigurationin interfaceODistributedServerManager
-
getDatabaseConfiguration
- Specified by:
getDatabaseConfigurationin interfaceODistributedServerManager
-
isEnabled
public boolean isEnabled()- Specified by:
isEnabledin interfaceODistributedServerManager
-
sendRequest
public ODistributedResponse sendRequest(String iDatabaseName, Collection<String> iTargetNodes, ORemoteTask iTask) Description copied from interface:ODistributedServerManagerSends a distributed request against multiple servers.- Specified by:
sendRequestin interfaceODistributedServerManager- Parameters:
iDatabaseName-iTargetNodes-iTask-- Returns:
-
sendSingleRequest
Description copied from interface:ODistributedServerManagerSends a distributed request against multiple servers.- Specified by:
sendSingleRequestin interfaceODistributedServerManager- Parameters:
databaseName-node-iTask-- Returns:
-
sendRequest
public ODistributedResponse sendRequest(String iDatabaseName, Collection<String> iTargetNodes, ORemoteTask iTask, ODistributedRequestId reqId, Object localResult, ODistributedResponseManagerFactory responseManagerFactory) - Specified by:
sendRequestin interfaceODistributedServerManager
-
checkForServerOnline
- Throws:
ODistributedException
-
send2Nodes
public ODistributedResponse send2Nodes(ODistributedRequest iRequest, Collection<String> iNodes, ODistributedRequest.EXECUTION_MODE iExecutionMode, Object localResult, ODistributedResponseManagerFactory responseManagerFactory) -
waitForResponse
protected ODistributedResponse waitForResponse(ODistributedRequest iRequest, ODistributedResponseManager currentResponseMgr) throws InterruptedException - Throws:
InterruptedException
-
calculateQuorum
protected int calculateQuorum(OCommandDistributedReplicateRequest.QUORUM_TYPE quorumType, ODistributedConfiguration cfg, int totalServers, int totalMasterServers, int onlineMasters, boolean checkNodesAreOnline, String localNodeName) -
send2Nodes
public ODistributedResponse send2Nodes(ODistributedRequest iRequest, Collection<String> iNodes, ODistributedRequest.EXECUTION_MODE iExecutionMode, Object localResult) -
waitForLocalNode
-
getLocalNodeName
- Specified by:
getLocalNodeNamein interfaceODistributedServerManager
-
toString
-
getMessageService
- Specified by:
getMessageServicein interfaceODistributedServerManager
-
getActiveServers
- Specified by:
getActiveServersin interfaceODistributedServerManager
-
getDistributedStrategy
- Specified by:
getDistributedStrategyin interfaceODistributedServerManager
-
setDistributedStrategy
- Specified by:
setDistributedStrategyin interfaceODistributedServerManager
-
notifyClients
- Specified by:
notifyClientsin interfaceODistributedServerManager
-
onDatabaseEvent
public void onDatabaseEvent(String nodeName, String databaseName, ODistributedServerManager.DB_STATUS status) -
invokeOnDatabaseStatusChange
public void invokeOnDatabaseStatusChange(String node, String databaseName, ODistributedServerManager.DB_STATUS status) -
assignNodeName
protected void assignNodeName() -
nextRequestId
- Specified by:
nextRequestIdin interfaceODistributedServerManager
-
getNextMessageIdCounter
public long getNextMessageIdCounter()- Specified by:
getNextMessageIdCounterin interfaceODistributedServerManager
-
updateLastClusterChange
public void updateLastClusterChange()- Specified by:
updateLastClusterChangein interfaceODistributedServerManager
-
closeRemoteServer
-
dumpServersStatus
public void dumpServersStatus()Avoids to dump the same configuration twice if it's unchanged since the last time. -
getListeningBinaryAddress
-
dumpStats
protected void dumpStats() -
getRemoteServer
- Specified by:
getRemoteServerin interfaceODistributedServerManager- Throws:
IOException
-
getLastClusterChangeOn
public long getLastClusterChangeOn()- Specified by:
getLastClusterChangeOnin interfaceODistributedServerManager
-
onNodeJoined
-
notifyNodeJoined
-
notifyNodeLeft
-
connectToAllNodes
- Throws:
IOException
-
getDatabaseStatus
- Specified by:
getDatabaseStatusin interfaceODistributedServerManager
-
onServerRemoved
-
getClusterConfiguration
- Specified by:
getClusterConfigurationin interfaceODistributedServerManager
-
getNodeConfigurationByUuid
- Specified by:
getNodeConfigurationByUuidin interfaceODistributedServerManager
-
getHazelcastInstance
public com.hazelcast.core.HazelcastInstance getHazelcastInstance() -
getDatabase
- Specified by:
getDatabasein interfaceODistributedServerManager
-