/** * Allows sub-class extend this method to use specialized bulkloader for merge */ protected IChainedComponentBulkLoader createMergeIndexBulkLoader(float fillFactor, boolean verifyInput, long numElementsHint, boolean checkIfEmptyIndex) throws HyracksDataException { return this.createIndexBulkLoader(fillFactor, verifyInput, numElementsHint, checkIfEmptyIndex); }
@Override public final void deactivateAndPurge() throws HyracksDataException { deactivate(); purge(); }
@Override public final void deactivateAndDestroy() throws HyracksDataException { deactivateAndPurge(); destroy(); }
@Override public void activate(boolean createNewComponent) throws HyracksDataException { if (createNewComponent) { getIndex().create(); } getIndex().activate(); if (getLSMComponentFilter() != null && !createNewComponent) { getLsmIndex().getFilterManager().readFilter(getLSMComponentFilter(), getMetadataHolder()); } }
@Override public ChainedLSMDiskComponentBulkLoader createBulkLoader(ILSMIOOperation operation, float fillFactor, boolean verifyInput, long numElementsHint, boolean checkIfEmptyIndex, boolean withFilter, boolean cleanupEmptyComponent) throws HyracksDataException { ChainedLSMDiskComponentBulkLoader chainedBulkLoader = new ChainedLSMDiskComponentBulkLoader(operation, this, cleanupEmptyComponent); if (withFilter && getLsmIndex().getFilterFields() != null) { chainedBulkLoader.addBulkLoader(createFilterBulkLoader()); } IChainedComponentBulkLoader indexBulkloader = operation.getIOOpertionType() == LSMIOOperationType.MERGE ? createMergeIndexBulkLoader(fillFactor, verifyInput, numElementsHint, checkIfEmptyIndex) : createIndexBulkLoader(fillFactor, verifyInput, numElementsHint, checkIfEmptyIndex); chainedBulkLoader.addBulkLoader(indexBulkloader); return chainedBulkLoader; }
/** * Mark the component as valid * * @param persist * whether the call should force data to disk before returning * @throws HyracksDataException */ @Override public void markAsValid(boolean persist, IPageWriteFailureCallback callback) throws HyracksDataException { ComponentUtils.markAsValid(getMetadataHolder(), persist, callback); if (LOGGER.isDebugEnabled()) { LOGGER.debug("Marked as valid component with id: " + getId()); } }
@Override public String toString() { return "{\"class\":" + getClass().getSimpleName() + "\", \"index\":" + getIndex().toString() + "}"; } }
@Override public void deactivate() throws HyracksDataException { super.deactivate(); getBloomFilter().deactivate(); }
@Override public void destroy() throws HyracksDataException { super.destroy(); getBloomFilter().destroy(); }
@Override public ChainedLSMDiskComponentBulkLoader createBulkLoader(ILSMIOOperation operation, float fillFactor, boolean verifyInput, long numElementsHint, boolean checkIfEmptyIndex, boolean withFilter, boolean cleanupEmptyComponent) throws HyracksDataException { ChainedLSMDiskComponentBulkLoader chainedBulkLoader = super.createBulkLoader(operation, fillFactor, verifyInput, numElementsHint, checkIfEmptyIndex, withFilter, cleanupEmptyComponent); if (numElementsHint > 0) { chainedBulkLoader.addBulkLoader(createBloomFilterBulkLoader(numElementsHint)); } return chainedBulkLoader; } }
@Override public void activate(boolean createNewComponent) throws HyracksDataException { super.activate(createNewComponent); if (createNewComponent) { getBloomFilter().create(); } getBloomFilter().activate(); }
@Override public void validate() throws HyracksDataException { getIndex().validate(); }
@Override public void destroy() throws HyracksDataException { getIndex().destroy(); }
protected void purge() throws HyracksDataException { getIndex().purge(); }
@Override public void deactivate() throws HyracksDataException { getIndex().deactivate(); }
@Override public IChainedComponentBulkLoader createIndexBulkLoader(float fillFactor, boolean verifyInput, long numElementsHint, boolean checkIfEmptyIndex) throws HyracksDataException { return new LSMIndexBulkLoader( getIndex().createBulkLoader(fillFactor, verifyInput, numElementsHint, checkIfEmptyIndex)); }