Interface ODistributedServerManager
- All Known Implementing Classes:
ODistributedPlugin,OHazelcastPlugin
public interface ODistributedServerManager
Server cluster interface to abstract cluster behavior.
- Author:
- Luca Garulli (l.garulli--at--orientdb.com)
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic enumDatabase status.static enumServer status. -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionbooleanconvertException(Throwable original) <T> TexecuteInDistributedDatabaseLock(String databaseName, long timeoutLocking, OModifiableDistributedConfiguration lastCfg, OCallable<T, OModifiableDistributedConfiguration> iCallback) Executes an operation protected by a distributed lock (one per database).executeOnLocalNode(ODistributedRequestId reqId, ORemoteTask task, ODatabaseDocumentInternal database) voidgetAvailableNodeNames(String databaseName) intgetAvailableNodes(String iDatabaseName) intgetAvailableNodes(Collection<String> iNodes, String databaseName) longReturns the cluster-wide time in milliseconds.Deprecated.getDatabase(String name) getDatabaseConfiguration(String iDatabaseName) getDatabaseStatus(String iNode, String iDatabaseName) longintlonggetNodeConfigurationByUuid(String iNode, boolean useCache) intgetNodeIdByName(String node) getNodeNameById(int id) intgetNodesWithStatus(Collection<String> iNodes, String databaseName, ODistributedServerManager.DB_STATUS... statuses) getNodeUuidByName(String name) getOnlineDatabaseConfiguration(String databaseName) getOnlineNodes(String iDatabaseName) getRemoteServer(String nodeName) getStats()Returns the task factory manager.intgetTotalNodes(String iDatabaseName) booleaninstallDatabase(boolean iStartup, String databaseName, boolean forceDeployment, boolean tryWithDeltaFirst) booleanbooleanisNodeAvailable(String iNodeName) booleanisNodeAvailable(String iNodeName, String databaseName) Available means not OFFLINE, so ONLINE or SYNCHRONIZING.booleanisNodeOnline(String iNodeName, String databaseName) Returns true if the node status is ONLINE.booleanisNodeStatusEqualsTo(String iNodeName, String iDatabaseName, ODistributedServerManager.DB_STATUS... statuses) Checks the node status if it's one of the statuses received as argument.booleanbooleanisSyncronizing(String databaseName) booleanisWriteQuorumPresent(String databaseName) Returns true if the quorum is present in terms of number of available nodes for full replication only.default voidmessageAfterOp(String op, ODistributedRequestId requestId) default voidmessageBeforeOp(String op, ODistributedRequestId requestId) default voidmessageCurrentPayload(ODistributedRequestId requestId, Object responsePayload) default voidmessagePartitionCalculate(ODistributedRequest request, Set<Integer> involvedWorkerQueues) default voidmessageProcessEnd(ODistributedRequest iRequest, Object responsePayload) default voidmessageProcessStart(ODistributedRequest message) default voidmessageReceived(ODistributedRequest request) voidnotifyClients(String databaseName) voidpublishDistributedConfiguration(String iDatabaseName, ODistributedConfiguration cfg) voidreassignClustersOwnership(String iNode, String databaseName, OModifiableDistributedConfiguration cfg, boolean canCreateNewClusters) voidremoveServer(String nodeLeftName, boolean removeOnlyDynamicServers) sendRequest(String iDatabaseName, Collection<String> iClusterNames, Collection<String> iTargetNodeNames, ORemoteTask iTask, long messageId, ODistributedRequest.EXECUTION_MODE iExecutionMode, Object localResult) Sends a distributed request against multiple servers.sendRequest(String iDatabaseName, Collection<String> iClusterNames, Collection<String> iTargetNodeNames, ORemoteTask iTask, long messageId, ODistributedRequest.EXECUTION_MODE iExecutionMode, Object localResult, ODistributedResponseManagerFactory responseManagerFactory) voidsetDatabaseStatus(String iNode, String iDatabaseName, ODistributedServerManager.DB_STATUS iStatus) voidsetDistributedStrategy(ODistributedStrategy streatgy) voidbooleanupdateCachedDatabaseConfiguration(String iDatabaseName, OModifiableDistributedConfiguration cfg) voidvoidvoidwaitUntilNodeOnline(String nodeName, String databaseName)
-
Field Details
-
FILE_DISTRIBUTED_DB_CONFIG
- See Also:
-
-
Method Details
-
isNodeStatusEqualsTo
boolean isNodeStatusEqualsTo(String iNodeName, String iDatabaseName, ODistributedServerManager.DB_STATUS... statuses) Checks the node status if it's one of the statuses received as argument.- Parameters:
iNodeName- Node nameiDatabaseName- Database namestatuses- vararg of statuses- Returns:
- true if the node's status is equals to one of the passed statuses, otherwise false
-
isNodeAvailable
-
getAvailableNodeNames
-
getCoordinatorServer
Deprecated. -
waitUntilNodeOnline
- Throws:
InterruptedException
-
waitUntilNodeOnline
- Throws:
InterruptedException
-
getServerInstance
OServer getServerInstance() -
isEnabled
boolean isEnabled() -
registerLifecycleListener
-
unregisterLifecycleListener
-
executeOnLocalNode
Object executeOnLocalNode(ODistributedRequestId reqId, ORemoteTask task, ODatabaseDocumentInternal database) -
executeOnLocalNodeFromRemote
-
getRemoteServer
- Throws:
IOException
-
getLastClusterChangeOn
long getLastClusterChangeOn() -
getNodeStatus
ODistributedServerManager.NODE_STATUS getNodeStatus() -
setNodeStatus
-
checkNodeStatus
-
removeServer
-
getDatabaseStatus
-
setDatabaseStatus
void setDatabaseStatus(String iNode, String iDatabaseName, ODistributedServerManager.DB_STATUS iStatus) -
getNodesWithStatus
int getNodesWithStatus(Collection<String> iNodes, String databaseName, ODistributedServerManager.DB_STATUS... statuses) -
getMessageService
ODistributedMessageService getMessageService() -
getDatabase
-
getDistributedStrategy
ODistributedStrategy getDistributedStrategy() -
setDistributedStrategy
-
updateCachedDatabaseConfiguration
boolean updateCachedDatabaseConfiguration(String iDatabaseName, OModifiableDistributedConfiguration cfg) -
publishDistributedConfiguration
-
getNextMessageIdCounter
long getNextMessageIdCounter() -
getNodeUuidByName
-
updateLastClusterChange
void updateLastClusterChange() -
reassignClustersOwnership
void reassignClustersOwnership(String iNode, String databaseName, OModifiableDistributedConfiguration cfg, boolean canCreateNewClusters) -
isNodeAvailable
Available means not OFFLINE, so ONLINE or SYNCHRONIZING. -
isNodeOnline
Returns true if the node status is ONLINE. -
getTotalNodes
-
getAvailableNodes
-
getAvailableNodes
-
isOffline
boolean isOffline() -
getLocalNodeId
int getLocalNodeId() -
getLocalNodeName
String getLocalNodeName() -
getClusterConfiguration
ODocument getClusterConfiguration() -
getNodeNameById
-
getNodeIdByName
-
getNodeConfigurationByUuid
-
getLocalNodeConfiguration
ODocument getLocalNodeConfiguration() -
getDatabaseConfiguration
-
sendRequest
ODistributedResponse sendRequest(String iDatabaseName, Collection<String> iClusterNames, Collection<String> iTargetNodeNames, ORemoteTask iTask, long messageId, ODistributedRequest.EXECUTION_MODE iExecutionMode, Object localResult) Sends a distributed request against multiple servers.- Parameters:
iDatabaseName-iClusterNames-iTargetNodeNames-iTask-messageId- Message Id as longiExecutionMode-localResult- It's the result of the request executed locally- Returns:
-
sendRequest
ODistributedResponse sendRequest(String iDatabaseName, Collection<String> iClusterNames, Collection<String> iTargetNodeNames, ORemoteTask iTask, long messageId, ODistributedRequest.EXECUTION_MODE iExecutionMode, Object localResult, ODistributedResponseManagerFactory responseManagerFactory) -
getStats
ODocument getStats() -
convertException
-
getOnlineNodes
-
installDatabase
boolean installDatabase(boolean iStartup, String databaseName, boolean forceDeployment, boolean tryWithDeltaFirst) -
getTaskFactoryManager
ORemoteTaskFactoryManager getTaskFactoryManager()Returns the task factory manager. During first connect the minor version of the protocol is used. -
getActiveServers
-
getClusterTime
long getClusterTime()Returns the cluster-wide time in milliseconds.Cluster tries to keep a cluster-wide time which might be different than the member's own system time. Cluster-wide time is -almost- the same on all members of the cluster.
-
getDefaultDatabaseConfigFile
File getDefaultDatabaseConfigFile() -
getLockManagerRequester
ODistributedLockManager getLockManagerRequester() -
getLockManagerExecutor
ODistributedLockManager getLockManagerExecutor() -
executeInDistributedDatabaseLock
<T> T executeInDistributedDatabaseLock(String databaseName, long timeoutLocking, OModifiableDistributedConfiguration lastCfg, OCallable<T, OModifiableDistributedConfiguration> iCallback) Executes an operation protected by a distributed lock (one per database).- Type Parameters:
T- Return type- Parameters:
databaseName- Database nametimeoutLocking-iCallback- Operation @return The operation's result of type T
-
isWriteQuorumPresent
Returns true if the quorum is present in terms of number of available nodes for full replication only. With sharding, instead, the quorum may depend on the involved clusters.- Returns:
-
notifyClients
-
messageReceived
-
messagePartitionCalculate
default void messagePartitionCalculate(ODistributedRequest request, Set<Integer> involvedWorkerQueues) -
messageBeforeOp
-
messageAfterOp
-
messageCurrentPayload
-
messageProcessStart
-
messageProcessEnd
-
getOnlineDatabaseConfiguration
-
getDatabases
-
isSyncronizing
-