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. -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescription<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) getAvailableNodeNotLocalNames(String databaseName) intgetAvailableNodes(String iDatabaseName) 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) getOnlineDatabaseConfiguration(String databaseName) getOnlineNodes(String iDatabaseName) getOnlineNodesNotLocal(String iDatabaseName) getRemoteServer(String nodeName) Returns the task factory manager.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 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, boolean canCreateNewClusters) voidremoveServer(String nodeLeftName, boolean removeOnlyDynamicServers) sendRequest(String iDatabaseName, Collection<String> iTargetNodeNames, ORemoteTask iTask) Sends a distributed request against multiple servers.sendRequest(String iDatabaseName, Collection<String> iTargetNodeNames, ORemoteTask iTask, ODistributedRequestId messageId, Object localResult, ODistributedResponseManagerFactory responseManagerFactory) sendSingleRequest(String iDatabaseName, String node, ORemoteTask iTask) Sends a distributed request against multiple servers.voidsetDatabaseStatus(String iNode, String iDatabaseName, ODistributedServerManager.DB_STATUS iStatus) voidsetDistributedStrategy(ODistributedStrategy streatgy) voidsetNodeStatus(NODE_STATUS iStatus) booleanupdateCachedDatabaseConfiguration(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
-
getAvailableNodeNotLocalNames
-
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
NODE_STATUS getNodeStatus() -
setNodeStatus
-
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() -
updateLastClusterChange
void updateLastClusterChange() -
reassignClustersOwnership
-
isNodeAvailable
Available means not OFFLINE, so ONLINE or SYNCHRONIZING. -
isNodeOnline
Returns true if the node status is ONLINE. -
getAvailableNodes
-
isOffline
boolean isOffline() -
getLocalNodeId
int getLocalNodeId() -
getLocalNodeName
String getLocalNodeName() -
getClusterConfiguration
OClusterConfiguration getClusterConfiguration() -
getNodeNameById
-
getNodeIdByName
-
getNodeConfigurationByUuid
-
getLocalNodeConfiguration
ONodeConfig getLocalNodeConfiguration() -
getDatabaseConfiguration
-
sendRequest
ODistributedResponse sendRequest(String iDatabaseName, Collection<String> iTargetNodeNames, ORemoteTask iTask) Sends a distributed request against multiple servers.- Parameters:
iDatabaseName-iTargetNodeNames-iTask-- Returns:
-
sendSingleRequest
Sends a distributed request against multiple servers.- Parameters:
iDatabaseName-node-iTask-- Returns:
-
sendRequest
ODistributedResponse sendRequest(String iDatabaseName, Collection<String> iTargetNodeNames, ORemoteTask iTask, ODistributedRequestId messageId, Object localResult, ODistributedResponseManagerFactory responseManagerFactory) -
getOnlineNodes
-
getOnlineNodesNotLocal
-
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
-
getActiveServerNotLocal
-
getDefaultDatabaseConfigFile
File getDefaultDatabaseConfigFile() -
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
-
messageBeforeOp
-
messageAfterOp
-
messageCurrentPayload
-
messageProcessStart
-
messageProcessEnd
-
getOnlineDatabaseConfiguration
-
getDatabases
-
isSyncronizing
-
nextRequestId
ODistributedRequestId nextRequestId()
-