protected String getNextComponentSequence(FilenameFilter filenameFilter) throws HyracksDataException { if (lastUsedComponentSeq == UNINITALIZED_COMPONENT_SEQ) { lastUsedComponentSeq = getOnDiskLastUsedComponentSequence(filenameFilter); } return IndexComponentFileReference.getFlushSequence(++lastUsedComponentSeq); }
@Override public LSMComponentFileReferences getComponentFiles() { return new LSMComponentFileReferences(btreeMergeTarget, null, bloomFilterMergeTarget); } }
public IIndexBulkLoader createBulkLoader(float fillLevel, boolean verifyInput, long numElementsHint, Map<String, Object> parameters) throws HyracksDataException { AbstractLSMIndexOperationContext opCtx = createOpContext(NoOpIndexAccessParameters.INSTANCE); opCtx.setParameters(parameters); LSMComponentFileReferences componentFileRefs = fileManager.getRelFlushFileReference(); LoadOperation loadOp = new LoadOperation(componentFileRefs, ioOpCallback, getIndexIdentifier(), parameters); loadOp.setNewComponent(createDiskComponent(bulkLoadComponentFactory, componentFileRefs.getInsertIndexFileReference(), componentFileRefs.getDeleteIndexFileReference(), componentFileRefs.getBloomFilterFileReference(), true)); ioOpCallback.scheduled(loadOp); opCtx.setIoOperation(loadOp); return new LSMIndexDiskComponentBulkLoader(this, opCtx, fillLevel, verifyInput, numElementsHint); }
@Override public void activate(boolean createNewComponent) throws HyracksDataException { if (createNewComponent) { getIndex().create(); } getIndex().activate(); if (getLSMComponentFilter() != null && !createNewComponent) { getLsmIndex().getFilterManager().readFilter(getLSMComponentFilter(), getMetadataHolder()); } }
public LoadOperation(LSMComponentFileReferences fileReferences, ILSMIOOperationCallback callback, String indexIdentifier, Map<String, Object> parameters) { super(null, fileReferences.getInsertIndexFileReference(), callback, indexIdentifier); this.fileReferences = fileReferences; this.parameters = parameters; }
protected void setPriorityQueueComparator() { if (pqCmp == null || cmp != pqCmp.getMultiComparator()) { pqCmp = new PriorityQueueComparator(cmp); } }
@Override public synchronized void refresh() { final long nextId = ++lastUsedId; componentId = new LSMComponentId(nextId, nextId); currentComponentIndex = (currentComponentIndex + 1) % numComponents; }
@Override public void doClose() throws HyracksDataException { super.doClose(); canCallProceed = true; }
@SuppressWarnings("squid:S1172") // unused parameter public static IJsonSerializable fromJson(IPersistedResourceRegistry registry, JsonNode json) { return new NoMergePolicyFactory(); } }
protected FilenameFilter getTransactionFileFilter(boolean inclusive) throws HyracksDataException { String[] files = listDirFiles(baseDir, txnFileNameFilter); if (files.length == 0) { return dummyFilter; } else { return createTransactionFilter(files[0], inclusive); } }
@Override public ILSMOperationTracker getOperationTracker(INCServiceContext ctx, IResource resource) { return new ThreadCountingTracker(); } }
@SuppressWarnings("squid:S1172") // unused parameter public static IJsonSerializable fromJson(IPersistedResourceRegistry registry, JsonNode json) { return new PrefixMergePolicyFactory(); } }
@Override public final void deactivateAndPurge() throws HyracksDataException { deactivate(); purge(); }
@Override public void afterOperation(ILSMIndex index, LSMOperationType opType, ISearchOperationCallback searchCallback, IModificationOperationCallback modificationCallback) throws HyracksDataException { // The operation is considered inactive, immediately after leaving the index. completeOperation(index, opType, searchCallback, modificationCallback); }
@Override public final IIndexBulkLoader createBulkLoader(float fillLevel, boolean verifyInput, long numElementsHint, boolean checkIfEmptyIndex) throws HyracksDataException { return createBulkLoader(fillLevel, verifyInput, numElementsHint, checkIfEmptyIndex, null); }
@Override public String toString() { return "{\"type\" : \"" + (isFlush() ? "flush" : "merge") + "\", \"start\" : \"" + sequenceStart + "\", \"end\" : \"" + sequenceEnd + "\"}"; }
@Override public Throwable getFailure() { return loadOp.getFailure(); } }
@Override public void forceModify(ILSMIndexOperationContext ctx, ITupleReference tuple) throws HyracksDataException { LSMOperationType opType = LSMOperationType.FORCE_MODIFICATION; modify(ctx, false, tuple, opType); }
@Override public LSMComponentFileReferences getComponentFiles() { return new LSMComponentFileReferences(target, buddyBtreeMergeTarget, bloomFilterMergeTarget); } }