Class OIndexManagerShared
java.lang.Object
com.orientechnologies.orient.core.index.OIndexManagerShared
- All Implemented Interfaces:
OCloseable,OIndexManagerAbstract
- Direct Known Subclasses:
OIndexManagerDistributed
Manages indexes at database level. A single instance is shared among multiple databases.
Contentions are managed by r/w locks.
- Author:
- Luca Garulli (l.garulli--(at)--orientdb.com), Artem Orobets added composite index managemement
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Stringprotected ORIDprotected final ReadWriteLockprotected Stringprotected final AtomicIntegerFields inherited from interface com.orientechnologies.orient.core.index.OIndexManagerAbstract
CONFIG_INDEXES, DICTIONARY_NAME -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidvoidaddClusterToIndex(ODatabaseDocumentInternal database, String clusterName, String indexName) booleanareIndexed(String className, String... fields) booleanareIndexed(String className, Collection<String> fields) booleanvoidclose()Closes resources inside of call of OStorage#close().voidcreate(ODatabaseDocumentInternal database) createIndex(ODatabaseDocumentInternal database, String iName, String iType, OIndexDefinition indexDefinition, int[] clusterIdsToIndex, OProgressListener progressListener, ODocument metadata) Create a new index with default algorithm.createIndex(ODatabaseDocumentInternal database, String iName, String type, OIndexDefinition indexDefinition, int[] clusterIdsToIndex, OProgressListener progressListener, ODocument metadata, String algorithm) Create a new index.voiddropIndex(ODatabaseDocumentInternal database, String iIndexName) booleanexistsIndex(String iName) protected booleanfromStream(ODocument document) getClassAutoShardingIndex(ODatabaseDocumentInternal database, String className) getClassIndex(ODatabaseDocumentInternal database, String className, String indexName) getClassIndexes(ODatabaseDocumentInternal database, String className) voidgetClassIndexes(ODatabaseDocumentInternal database, String className, Collection<OIndex> indexes) getClassInvolvedIndexes(ODatabaseDocumentInternal database, String className, String... fields) getClassInvolvedIndexes(ODatabaseDocumentInternal database, String className, Collection<String> fields) voidgetClassRawIndexes(String className, Collection<OIndex> indexes) getClassUniqueIndex(String className) getDictionary(ODatabaseDocumentInternal database) getIndex(ODatabaseDocumentInternal database, String iName) Collection<? extends OIndex>getIndexes(ODatabaseDocumentInternal database) getRawIndex(String iName) protected OStoragevoidload(ODatabaseDocumentInternal database) preProcessBeforeReturn(ODatabaseDocumentInternal database, OIndex index) voidrecreateIndexes(ODatabaseDocumentInternal database) protected voidprotected voidreleaseExclusiveLock(ODatabaseDocumentInternal database, boolean save) voidreload(ODatabaseDocumentInternal database) voidvoidremoveClusterFromIndex(ODatabaseDocumentInternal database, String clusterName, String indexName) voidsave(ODatabaseDocumentInternal database) voidsetDefaultClusterName(ODatabaseDocumentInternal database, String defaultClusterName) toStream()Binds POJO to ODocument.voidMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.orientechnologies.orient.core.index.OIndexManagerAbstract
create
-
Field Details
-
classPropertyIndex
-
indexes
-
defaultClusterName
-
manualClusterName
-
writeLockNesting
-
lock
-
identity
-
-
Constructor Details
-
OIndexManagerShared
-
-
Method Details
-
load
- Specified by:
loadin interfaceOIndexManagerAbstract
-
reload
- Specified by:
reloadin interfaceOIndexManagerAbstract
-
save
- Specified by:
savein interfaceOIndexManagerAbstract
-
addClusterToIndex
public void addClusterToIndex(ODatabaseDocumentInternal database, String clusterName, String indexName) - Specified by:
addClusterToIndexin interfaceOIndexManagerAbstract
-
removeClusterFromIndex
public void removeClusterFromIndex(ODatabaseDocumentInternal database, String clusterName, String indexName) - Specified by:
removeClusterFromIndexin interfaceOIndexManagerAbstract
-
create
- Specified by:
createin interfaceOIndexManagerAbstract
-
getIndexes
- Specified by:
getIndexesin interfaceOIndexManagerAbstract
-
getRawIndex
- Specified by:
getRawIndexin interfaceOIndexManagerAbstract
-
getIndex
- Specified by:
getIndexin interfaceOIndexManagerAbstract
-
existsIndex
- Specified by:
existsIndexin interfaceOIndexManagerAbstract
-
getDefaultClusterName
- Specified by:
getDefaultClusterNamein interfaceOIndexManagerAbstract
-
setDefaultClusterName
- Specified by:
setDefaultClusterNamein interfaceOIndexManagerAbstract
-
getDictionary
- Specified by:
getDictionaryin interfaceOIndexManagerAbstract
-
getConfiguration
- Specified by:
getConfigurationin interfaceOIndexManagerAbstract
-
close
public void close()Description copied from interface:OCloseableCloses resources inside of call of OStorage#close(). So do not use locks when you call this method or you may have deadlock during storage close. This method is completely house keeping method and plays role of Object#finalize() in case of you need to clean up resources after storage is closed.- Specified by:
closein interfaceOCloseable
-
getClassInvolvedIndexes
public Set<OIndex> getClassInvolvedIndexes(ODatabaseDocumentInternal database, String className, Collection<String> fields) - Specified by:
getClassInvolvedIndexesin interfaceOIndexManagerAbstract
-
getClassInvolvedIndexes
public Set<OIndex> getClassInvolvedIndexes(ODatabaseDocumentInternal database, String className, String... fields) - Specified by:
getClassInvolvedIndexesin interfaceOIndexManagerAbstract
-
areIndexed
- Specified by:
areIndexedin interfaceOIndexManagerAbstract
-
areIndexed
- Specified by:
areIndexedin interfaceOIndexManagerAbstract
-
getClassIndexes
- Specified by:
getClassIndexesin interfaceOIndexManagerAbstract
-
getClassIndexes
public void getClassIndexes(ODatabaseDocumentInternal database, String className, Collection<OIndex> indexes) - Specified by:
getClassIndexesin interfaceOIndexManagerAbstract
-
getClassRawIndexes
- Specified by:
getClassRawIndexesin interfaceOIndexManagerAbstract
-
getClassUniqueIndex
- Specified by:
getClassUniqueIndexin interfaceOIndexManagerAbstract
-
getClassIndex
- Specified by:
getClassIndexin interfaceOIndexManagerAbstract
-
getClassAutoShardingIndex
- Specified by:
getClassAutoShardingIndexin interfaceOIndexManagerAbstract
-
acquireExclusiveLock
protected void acquireExclusiveLock() -
releaseExclusiveLock
protected void releaseExclusiveLock() -
releaseExclusiveLock
-
createIndex
public OIndex createIndex(ODatabaseDocumentInternal database, String iName, String iType, OIndexDefinition indexDefinition, int[] clusterIdsToIndex, OProgressListener progressListener, ODocument metadata) Create a new index with default algorithm.- Specified by:
createIndexin interfaceOIndexManagerAbstract- Parameters:
iName- - name of indexiType- - index type. Specified by plugged index factories.indexDefinition- metadata that describes index structureclusterIdsToIndex- ids of clusters that index should track for changes.progressListener- listener to track task progress.metadata- document with additional properties that can be used by index engine.- Returns:
- a newly created index instance
-
createIndex
public OIndex createIndex(ODatabaseDocumentInternal database, String iName, String type, OIndexDefinition indexDefinition, int[] clusterIdsToIndex, OProgressListener progressListener, ODocument metadata, String algorithm) Create a new index.May require quite a long time if big amount of data should be indexed.
- Specified by:
createIndexin interfaceOIndexManagerAbstract- Parameters:
iName- name of indextype- index type. Specified by plugged index factories.indexDefinition- metadata that describes index structureclusterIdsToIndex- ids of clusters that index should track for changes.progressListener- listener to track task progress.metadata- document with additional properties that can be used by index engine.algorithm- tip to an index factory what algorithm to use- Returns:
- a newly created index instance
-
dropIndex
- Specified by:
dropIndexin interfaceOIndexManagerAbstract
-
toStream
Binds POJO to ODocument.- Specified by:
toStreamin interfaceOIndexManagerAbstract
-
recreateIndexes
- Specified by:
recreateIndexesin interfaceOIndexManagerAbstract
-
waitTillIndexRestore
public void waitTillIndexRestore()- Specified by:
waitTillIndexRestorein interfaceOIndexManagerAbstract
-
autoRecreateIndexesAfterCrash
- Specified by:
autoRecreateIndexesAfterCrashin interfaceOIndexManagerAbstract
-
fromStream
-
removeClassPropertyIndex
- Specified by:
removeClassPropertyIndexin interfaceOIndexManagerAbstract
-
toNetworkStream
-
preProcessBeforeReturn
- Specified by:
preProcessBeforeReturnin interfaceOIndexManagerAbstract
-
getStorage
-
getDocument
- Specified by:
getDocumentin interfaceOIndexManagerAbstract
-