Class OrientDBDistributed
java.lang.Object
com.orientechnologies.orient.core.db.OrientDBEmbedded
com.orientechnologies.orient.distributed.db.OrientDBDistributed
- All Implemented Interfaces:
OrientDBInternal,OSchedulerInternal,ODatabaseStateChangeListener,OOperationContext,ONetworkDiscover,OServerAware,AutoCloseable
public class OrientDBDistributed
extends OrientDBEmbedded
implements OServerAware, ODatabaseStateChangeListener, OOperationContext, ONetworkDiscover
Created by tglman on 08/08/17.
-
Nested Class Summary
Nested classes/interfaces inherited from class com.orientechnologies.orient.core.db.OrientDBEmbedded
OrientDBEmbedded.DatabaseFound -
Field Summary
FieldsFields inherited from class com.orientechnologies.orient.core.db.OrientDBEmbedded
allGroups, basePath, bootTime, cachedPoolFactory, orient, pools, sharedContexts, threadsGroup -
Constructor Summary
ConstructorsConstructorDescriptionOrientDBDistributed(String directoryPath, OrientDBConfig config, Orient instance) -
Method Summary
Modifier and TypeMethodDescriptionvoidacceptSync(OSyncId syncId, OSyncMode mode) voidvoidvoidvoidcanSync(ONodeId sender, OSyncId syncId, OCanSyncAccept canSync) voidcheckNodeIsMaster(ONodeId localNodeId, String name, String operation) voidclose()Close the factory with all related databases and pools.voidcloseRemoteServer(ONodeId node) voidcloseRemoteServer(String node) <T> TconfigOp(ODistributedConfigurationManager cm, String database, com.orientechnologies.orient.distributed.db.OrientDBDistributed.ConfigOp<T> op) voidconnectRemoteServer(ONodeId node, String url) voidcoordinatedOperation(OOperationMessage operation, OCompleteExecution execution) voidcreate(String name, String user, String password, ODatabaseType type, ODatabaseId id, OrientDBConfig config, ODatabaseTask<Void> createOps) protected OSharedContextEmbeddedcreateSharedContext(OStorage storage) voiddeclareDatabase(OTransactionIdPromise promise, ODatabaseId dbId, String database, Set<OAddNodeInfo> partecipants, int minimumQuorum) declareDatabaseFlow(String name, ODatabaseId dbId) booleandeltaSync(String dbName, InputStream backupStream, OrientDBConfig config) voiddisconnected(ONodeId node) voiddistributedDrop(ODatabaseId dbId, OVersion version, OTransactionIdPromise promise) voidvoidDrop a databasestatic voiddropStorageFiles(OStorage storage) voidvoidestablish(OGroupId groupId, Set<ONodeId> candidates, OTransactionIdPromise promise) voidfirstConnect(ONodeId nodeId, ONodeStateNetwork state, boolean merge, ONodeInfo info) intgetAvailableNodeNames(String name) getConfigurationManager(String database) getDatabase(String iDatabaseName) getDatabaseState(ODatabaseId dbId, ONodeId node) getDatabaseStatus(ONodeId nodeId, String dbName) getDatabaseStatus(String dbName) getDatabaseStatus(String node, String dbName) getDefaultDistributedConfiguration(String database) getDistributedConfiguration(String database) getExistingDistributedConfiguration(String database) longintgetNodesWithStatus(Collection<String> iNodes, String databaseName, ODistributedServerManager.DB_STATUS... statuses) Returns the nodes with the requested status.intgetOnlineMasters(String databaseName) getOnlineNodesNotLocal(String dbName) getOps()getOrInitConfigurationManager(String database) getRemoteServer(ONodeId nodeId) getRemoteServer(String rNodeName) getSharedDatabaseContext(String database) voidvoidvoidinitDistributed(ONodeConfiguration config) voidinitDistributed(String nodeName, String groupIdPar, int miminumQuorum, String password) installDatabase(String databaseName, boolean force, boolean tryWithDeltaFirst) voidinternalDrop(String name) booleanisDatabaseOnline(String dbName) protected booleanbooleanisDistributedDisabled(String storage) booleanbooleanisNodeAvailable(String targetNode, String databaseName) booleanisNodeMaster(String node, String databaseName) booleanisNodeOnline(String targetNode, String databaseName) voidvoidmergeNode(ONodeId node, ONodeStateNetwork state, ONodeStateNetwork original, OTransactionIdPromise promise) voidmergeNodeResult(ONodeId node, OTransactionIdPromise promise, Optional<OAcceptResult> accepted) voidmergeToNetwork(OTransactionIdPromise promise) newCompleteAction(OOperationMessage operation, OCompleteExecution execution) protected ODatabaseDocumentEmbeddednewCreateSessionInstance(OStorage storage, OrientDBConfig config) protected ODatabaseDocumentEmbeddednewPooledSessionInstance(ODatabasePoolInternal pool, String name) newRecoordinateAction(OOperationMessage operation) protected ODatabaseDocumentEmbeddednewSessionInstance(String database, OrientDBConfig config) voidnextBuffer(OSyncId syncId, boolean close) booleannonBlockingSync(String name, ODatabaseId databaseId, InputStream backupStream, OrientDBConfig config) protected ODatabaseDocumentEmbeddedvoidonStateChange(ODatabaseId dbId, ONodeId nodeId, ODatabaseState state) Open a database specified by name using the username and password if neededopen(String name, String user, String password, OrientDBConfig config) Open a database specified by name using the username and password if needed, with specific configurationvoidvoidreceivePing(ONodeId nodeId, OTransactionSequenceStatus status) voidbooleanreceiveSync(String dbName, OSyncState state, InputStream inputStream, OrientDBConfig conf) voidreceiveSyncData(OSyncId syncId, byte[] data, long sequential, boolean finished) voidvoidrecoordinateOperation(OTransactionIdPromise promise, OOperationMessage op) voidregisterNode(ONodeId node, OVersion version, OTransactionIdPromise promise) booleanremoveDatabaseMember(ODatabaseId databaseId, ONodeId node) voidrequestNext(OSyncState state, boolean close) voidrestartNode(String iNode) voidretryExecution(ORetryOperation operation, OCompleteExecution exec, int delay, Optional<OAcceptResult> result) voidretryMergeOperationMessages(ONodeId mergeNode, ONodeStateNetwork mergedState, ONodeStateNetwork original, OOperationMessage operation, OCompleteAction action, int delay) voidretryOperation(OOperationMessage operation, OCompleteAction action, int delay) retryOperation(ORetryOperation operation) voidsaveDatabaseConfiguration(String database) voidsendBuffer(OSyncState state, byte[] data, long sequential, boolean finished) voidsendDatabase(OSyncId syncId, OCanSyncAccept mode) voidsendEstablish(OGroupId groupId, Set<ONodeId> candidates, OCompleteExecution execution) voidsendFirstConnects(Set<ONodeId> nodes) voidsendMergeNodeAction(ONodeId node, ONodeStateNetwork state, OCompleteExecution execution) voidsendMergeOperation(ONodeId requestToMerge, OCompleteExecution execution) voidsendMessage(ONodeId node, OStructuralMessage op) voidsendMessage(Set<ONodeId> set, OStructuralMessage op) voidsendTopologyTransactions(ONodeId nodeId, List<OTransactionId> transactions) setDatabaseNodeRole(ODatabaseId databaseId, String serverName, String role) setDatabaseQuorum(ODatabaseId databaseId, int newQuorum) voidsetDatabaseStatus(ONodeId nodeId, String dbName, ODistributedServerManager.DB_STATUS status) voidsetDatabaseStatus(String dbName, ODistributedServerManager.DB_STATUS status) voidsetDistributedConfiguration(String database, OModifiableDistributedConfiguration distributedConfiguration) voidsetPlugin(ODistributedPlugin plugin) voidvoidsyncBackup(String name, OSyncState state, OutputStream output) booleanunregisterDatabase(String iDatabaseName) voidvalidateDatabaseStatus(String databaseName, OTransactionSequenceStatus status) voidvalidateMergeToNetwork(OGroupId group, ONodeStateNetwork state, ONodeStateNetwork original, OTransactionIdPromise promise) booleanwaitOnline(String database) Methods inherited from class com.orientechnologies.orient.core.db.OrientDBEmbedded
buildName, cachedPool, cachedPool, checkDatabaseName, checkOpen, create, create, createCachedDatabasePoolFactory, createSharedContext, delayExecute, endCommand, excutorBaseSize, excutorMaxSize, execute, execute, execute, executeNoAuthorization, executeNoAuthorizationOnActive, executeNoDb, executeServerStatement, executeServerStatement, exists, forceDatabaseClose, getBasePath, getBoolConfig, getConfigurations, getConnectionUrl, getDatabasePath, getDefaultEngine, getEngine, getIntConfig, getIoExecutor, getLongConfig, getOrCreateSharedContext, getScriptManager, getSecuritySystem, getStorage, getStorages, getSystemDatabase, initAutoClose, initCustomStorage, initEngines, internalClose, internalCreate, isEmbedded, isMemoryOnly, isOpen, listDatabases, listLodadedDatabases, networkRestore, open, openNoAuthenticate, openNoAuthorization, openPool, openPool, periodicExecute, poolOpen, preClose, removePool, removeShutdownHook, restore, restore, runOnThread, schedule, scheduleExecuteFrom, scheduleOnce, solveConfig, startCommandMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.orientechnologies.orient.core.db.OrientDBInternal
newOrientDB, newOrientDBNoCloseMethods inherited from interface com.orientechnologies.orient.core.db.OSchedulerInternal
delayExecute, scheduleFrom
-
Field Details
-
localMessageIdCounter
-
-
Constructor Details
-
OrientDBDistributed
-
-
Method Details
-
init
- Specified by:
initin interfaceOServerAware
-
initDistributed
-
initDistributed
-
reconciliateState
public void reconciliateState() -
onStateChange
- Specified by:
onStateChangein interfaceODatabaseStateChangeListener
-
dumpNodeInfo
public void dumpNodeInfo() -
autoAssignAllocation
-
loadAllDatabases
public void loadAllDatabases()- Specified by:
loadAllDatabasesin interfaceOrientDBInternal- Overrides:
loadAllDatabasesin classOrientDBEmbedded
-
getPlugin
-
newSessionInstance
- Overrides:
newSessionInstancein classOrientDBEmbedded
-
isDistributedDisabled
-
isDistributedDisabled
protected boolean isDistributedDisabled() -
newCreateSessionInstance
protected ODatabaseDocumentEmbedded newCreateSessionInstance(OStorage storage, OrientDBConfig config) - Overrides:
newCreateSessionInstancein classOrientDBEmbedded
-
onlyOpenNoAuthorization
- Overrides:
onlyOpenNoAuthorizationin classOrientDBEmbedded
-
newPooledSessionInstance
protected ODatabaseDocumentEmbedded newPooledSessionInstance(ODatabasePoolInternal pool, String name) - Overrides:
newPooledSessionInstancein classOrientDBEmbedded
-
setPlugin
-
nonBlockingSync
public boolean nonBlockingSync(String name, ODatabaseId databaseId, InputStream backupStream, OrientDBConfig config) -
internalDrop
- Specified by:
internalDropin interfaceOrientDBInternal- Overrides:
internalDropin classOrientDBEmbedded
-
drop
Description copied from interface:OrientDBInternalDrop a database- Specified by:
dropin interfaceOrientDBInternal- Overrides:
dropin classOrientDBEmbedded- Parameters:
name- database nameuser- the username of a user allowed to drop a database, in case of remote is a server user for embedded it can be left emptypassword- the password relative to the user
-
sendMessage
-
sendMessage
-
receiveMessage
-
open
Description copied from interface:OrientDBInternalOpen a database specified by name using the username and password if needed- Specified by:
openin interfaceOrientDBInternal- Overrides:
openin classOrientDBEmbedded- Parameters:
name- of the database to openuser- the username allowed to open the databasepassword- related to the specified username- Returns:
- the opened database
-
open
public ODatabaseDocumentInternal open(String name, String user, String password, OrientDBConfig config) Description copied from interface:OrientDBInternalOpen a database specified by name using the username and password if needed, with specific configuration- Specified by:
openin interfaceOrientDBInternal- Overrides:
openin classOrientDBEmbedded- Parameters:
name- of the database to openuser- the username allowed to open the databasepassword- related to the specified usernameconfig- database specific configuration that override the factory global settings where needed.- Returns:
- the opened database
-
dropStorageFiles
-
getDistributedManager
- Specified by:
getDistributedManagerin interfaceOServerAware
-
deltaSync
- Specified by:
deltaSyncin interfaceOrientDBInternal
-
getNodeName
-
getDatabase
-
unregisterDatabase
-
create
public void create(String name, String user, String password, ODatabaseType type, ODatabaseId id, OrientDBConfig config, ODatabaseTask<Void> createOps) - Specified by:
createin interfaceOrientDBInternal- Overrides:
createin classOrientDBEmbedded
-
declareDatabaseFlow
-
retryOperation
-
retryExecution
public void retryExecution(ORetryOperation operation, OCompleteExecution exec, int delay, Optional<OAcceptResult> result) -
getDatabaseState
-
isDatabaseOnline
-
getActiveDatabases
-
getDistributedDatabases
-
getOrInitDistributedConfiguration
-
getOrInitConfigurationManager
-
getConfigurationManager
-
configOp
public <T> T configOp(ODistributedConfigurationManager cm, String database, com.orientechnologies.orient.distributed.db.OrientDBDistributed.ConfigOp<T> op) -
getExistingDistributedConfiguration
-
getDefaultDistributedConfiguration
-
getDistributedConfiguration
-
setDistributedConfiguration
public void setDistributedConfiguration(String database, OModifiableDistributedConfiguration distributedConfiguration) -
saveDatabaseConfiguration
-
tryUpdatingDatabaseConfigurationLocally
public boolean tryUpdatingDatabaseConfigurationLocally(String database, OModifiableDistributedConfiguration cfg) -
close
public void close()Description copied from interface:OrientDBInternalClose the factory with all related databases and pools.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceOrientDBInternal- Overrides:
closein classOrientDBEmbedded
-
getActiveDatabaseCount
public int getActiveDatabaseCount() -
getMessageService
-
newCompleteAction
public OStandardCompleteAction newCompleteAction(OOperationMessage operation, OCompleteExecution execution) -
newRecoordinateAction
-
newRetryInfo
-
retryOperation
-
coordinatedOperation
-
getNodeState
-
getOps
- Specified by:
getOpsin interfaceOOperationContext
-
newNetworkMessage
- Specified by:
newNetworkMessagein interfaceOrientDBInternal
-
firstConnect
-
connected
- Specified by:
connectedin interfaceONetworkDiscover
-
registerNode
- Specified by:
registerNodein interfaceOOperationContext
-
declareDatabase
public void declareDatabase(OTransactionIdPromise promise, ODatabaseId dbId, String database, Set<OAddNodeInfo> partecipants, int minimumQuorum) - Specified by:
declareDatabasein interfaceOOperationContext
-
acceptSync
-
canSync
-
receiveSync
public boolean receiveSync(String dbName, OSyncState state, InputStream inputStream, OrientDBConfig conf) -
sendDatabase
-
syncBackup
-
sendBuffer
-
receiveSyncData
-
requestNext
-
nextBuffer
-
getNodeId
- Specified by:
getNodeIdin interfaceOrientDBInternal- Overrides:
getNodeIdin classOrientDBEmbedded
-
closeRemoteServer
-
closeRemoteServer
-
getRemoteServer
-
getRemoteServer
-
connectRemoteServer
- Throws:
IOException
-
setDatabaseStatus
public void setDatabaseStatus(ONodeId nodeId, String dbName, ODistributedServerManager.DB_STATUS status) -
setDatabaseStatus
-
getDatabaseStatus
-
getDatabaseStatus
-
getDatabaseStatus
-
getServer
-
getNextMessageIdCounter
public long getNextMessageIdCounter() -
installDatabase
-
getAvailableNodeNotLocalNames
-
getAvailableNodeNames
-
getOnlineMasters
-
establish
- Specified by:
establishin interfaceOOperationContext
-
sendFirstConnects
-
getOnlineNodesNotLocal
-
getNodesWithStatus
public int getNodesWithStatus(Collection<String> iNodes, String databaseName, ODistributedServerManager.DB_STATUS... statuses) Returns the nodes with the requested status. -
isNodeOnline
-
isNodeAvailable
-
sendMergeOperation
-
autoDeployIfNeed
public void autoDeployIfNeed() -
sendEstablish
-
sendMergeNodeAction
public void sendMergeNodeAction(ONodeId node, ONodeStateNetwork state, OCompleteExecution execution) -
retryMergeOperationMessages
public void retryMergeOperationMessages(ONodeId mergeNode, ONodeStateNetwork mergedState, ONodeStateNetwork original, OOperationMessage operation, OCompleteAction action, int delay) -
validateMergeToNetwork
public void validateMergeToNetwork(OGroupId group, ONodeStateNetwork state, ONodeStateNetwork original, OTransactionIdPromise promise) -
cancelMergeToNetwork
-
mergeToNetwork
-
mergeNodeResult
public void mergeNodeResult(ONodeId node, OTransactionIdPromise promise, Optional<OAcceptResult> accepted) -
disconnected
-
recoordinateOperation
- Specified by:
recoordinateOperationin interfaceOOperationContext
-
receivePing
-
checkNodeIsMaster
-
isNodeMaster
-
removeDatabaseMember
-
distributedDrop
- Specified by:
distributedDropin interfaceOOperationContext
-
waitOnline
- Specified by:
waitOnlinein interfaceOrientDBInternal- Throws:
InterruptedException
-
mergeNode
public void mergeNode(ONodeId node, ONodeStateNetwork state, ONodeStateNetwork original, OTransactionIdPromise promise) - Specified by:
mergeNodein interfaceOOperationContext
-
setDatabaseNodeRole
public Future<Optional<OAcceptResult>> setDatabaseNodeRole(ODatabaseId databaseId, String serverName, String role) -
setDatabaseQuorum
-
gracefulWaitFullStartup
- Specified by:
gracefulWaitFullStartupin interfaceOrientDBInternal- Throws:
InterruptedException
-
isDistributedOnline
public boolean isDistributedOnline()- Specified by:
isDistributedOnlinein interfaceOrientDBInternal
-
getNodeInfo
-
getClusterConfiguration
-
getLocalNodeConfiguration
-
newNetworkMessageRequest
- Specified by:
newNetworkMessageRequestin interfaceOrientDBInternal
-
newNetworkMessageResponse
- Specified by:
newNetworkMessageResponsein interfaceOrientDBInternal
-
validateDatabaseStatus
-
sendTopologyTransactions
-
receiveRecovery
-
nextRequestId
-
stopNode
-
restartNode
-
getTaskFactoryManager
-