Package com.arcadedb.index.lsm
Class LSMTreeIndexCompacted
- java.lang.Object
-
- com.arcadedb.engine.Component
-
- com.arcadedb.engine.PaginatedComponent
-
- com.arcadedb.index.lsm.LSMTreeIndexAbstract
-
- com.arcadedb.index.lsm.LSMTreeIndexCompacted
-
public class LSMTreeIndexCompacted extends LSMTreeIndexAbstract
The first page (main page) contains the total pages under the fields "compactedPageNumberOfSeries". This is to avoid concurrent read/write while compaction.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.arcadedb.index.lsm.LSMTreeIndexAbstract
LSMTreeIndexAbstract.LookupResult, LSMTreeIndexAbstract.NULL_STRATEGY
-
-
Field Summary
Fields Modifier and Type Field Description static String
NOTUNIQUE_INDEX_EXT
static String
UNIQUE_INDEX_EXT
-
Fields inherited from class com.arcadedb.index.lsm.LSMTreeIndexAbstract
binaryKeyTypes, comparator, DEF_PAGE_SIZE, HIGHER, keyTypes, LOWER, mainIndex, nullStrategy, REMOVED_ENTRY_RID, serializer, TEMP_EXT, unique, valueType
-
Fields inherited from class com.arcadedb.engine.PaginatedComponent
file, pageCount, pageSize
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
LSMTreeIndexCompacted(LSMTreeIndex mainIndex, DatabaseInternal database, String name, boolean unique, String filePath, int id, ComponentFile.MODE mode, int pageSize, int version)
Called at load time (1st page only).LSMTreeIndexCompacted(LSMTreeIndex mainIndex, DatabaseInternal database, String name, boolean unique, String filePath, Type[] keyTypes, byte[] binaryKeyTypes, int pageSize)
Called at cloning time.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MutablePage
appendDuringCompaction(Binary keyValueContent, MutablePage currentPage, TrackableBinary currentPageBuffer, int compactedPageNumberOfSeries, Object[] keys, RID[] rids)
protected LSMTreeIndexAbstract.LookupResult
compareKey(Binary currentPageBuffer, int startIndexArray, Object[] convertedKeys, int mid, int count, int purpose)
protected MutablePage
createNewPage(int compactedPageNumberOfSeries)
Set<IndexCursorEntry>
get(Object[] keys, int limit)
List<LSMTreeIndexUnderlyingCompactedSeriesCursor>
newIterators(boolean ascendingOrder, Object[] fromKeys, Object[] toKeys)
protected void
searchInCompactedIndex(Object[] originalKeys, Object[] convertedKeys, int limit, Set<IndexCursorEntry> set, Set<RID> removedRIDs)
protected MutablePage
setCompactedTotalPages()
-
Methods inherited from class com.arcadedb.index.lsm.LSMTreeIndexAbstract
checkForNulls, compareKey, compareKeys, convertKeys, drop, getBinaryKeyTypes, getCount, getFileId, getHeaderSize, getKeyInPagePosition, getKeyTypes, getMainComponent, getNullStrategy, getOriginalRID, getPageKeyRange, getPaginatedComponent, getSerializedKeySize, getStats, getValuesFreePosition, isDeletedEntry, isKeyNull, isMutable, isUnique, lookupInPage, lookupInPageAndAddInResultset, readEntryValues, removeTempSuffix, setCount, setMutable, setValuesFreePosition, toString, writeEntry, writeEntry
-
Methods inherited from class com.arcadedb.engine.PaginatedComponent
close, getComponentFile, getOSFile, getPageSize, getTotalPages, setPageCount
-
Methods inherited from class com.arcadedb.engine.Component
getDatabase, getName, getVersion, onAfterCommit, onAfterLoad, onAfterSchemaLoad
-
-
-
-
Field Detail
-
UNIQUE_INDEX_EXT
public static final String UNIQUE_INDEX_EXT
- See Also:
- Constant Field Values
-
NOTUNIQUE_INDEX_EXT
public static final String NOTUNIQUE_INDEX_EXT
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
LSMTreeIndexCompacted
public LSMTreeIndexCompacted(LSMTreeIndex mainIndex, DatabaseInternal database, String name, boolean unique, String filePath, Type[] keyTypes, byte[] binaryKeyTypes, int pageSize) throws IOException
Called at cloning time.- Throws:
IOException
-
LSMTreeIndexCompacted
protected LSMTreeIndexCompacted(LSMTreeIndex mainIndex, DatabaseInternal database, String name, boolean unique, String filePath, int id, ComponentFile.MODE mode, int pageSize, int version) throws IOException
Called at load time (1st page only).- Throws:
IOException
-
-
Method Detail
-
get
public Set<IndexCursorEntry> get(Object[] keys, int limit)
-
appendDuringCompaction
public MutablePage appendDuringCompaction(Binary keyValueContent, MutablePage currentPage, TrackableBinary currentPageBuffer, int compactedPageNumberOfSeries, Object[] keys, RID[] rids) throws IOException, InterruptedException
- Throws:
IOException
InterruptedException
-
compareKey
protected LSMTreeIndexAbstract.LookupResult compareKey(Binary currentPageBuffer, int startIndexArray, Object[] convertedKeys, int mid, int count, int purpose)
- Specified by:
compareKey
in classLSMTreeIndexAbstract
purpose
- 0 = exists, 1 = retrieve, 2 = ascending iterator, 3 = descending iterator
-
createNewPage
protected MutablePage createNewPage(int compactedPageNumberOfSeries)
-
newIterators
public List<LSMTreeIndexUnderlyingCompactedSeriesCursor> newIterators(boolean ascendingOrder, Object[] fromKeys, Object[] toKeys) throws IOException
- Throws:
IOException
-
searchInCompactedIndex
protected void searchInCompactedIndex(Object[] originalKeys, Object[] convertedKeys, int limit, Set<IndexCursorEntry> set, Set<RID> removedRIDs) throws IOException
- Throws:
IOException
-
setCompactedTotalPages
protected MutablePage setCompactedTotalPages() throws IOException
- Throws:
IOException
-
-