private void addMatterTuple(ITupleReference tuple) throws HyracksDataException { sourceTuple.reset(tuple); componentBulkLoader.add(sourceTuple); }
private void endCurrentComponent() throws HyracksDataException { if (componentBulkLoader != null) { componentBulkLoader.end(); componentBulkLoader = null; } }
@Override public void end() throws HyracksDataException { try { presistComponentToDisk(); } catch (Throwable th) { // NOSONAR must cleanup in case of any failure fail(th); throw th; } finally { lsmIndex.getIOOperationCallback().completed(opCtx.getIoOperation()); } }
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); }
private void presistComponentToDisk() throws HyracksDataException { try { lsmIndex.getIOOperationCallback().afterOperation(opCtx.getIoOperation()); componentBulkLoader.end(); } catch (Throwable th) { // NOSONAR Must not call afterFinalize without setting failure fail(th); throw th; } finally { lsmIndex.getIOOperationCallback().afterFinalize(opCtx.getIoOperation()); } if (opCtx.getIoOperation().getStatus() == LSMIOOperationStatus.SUCCESS && opCtx.getIoOperation().getNewComponent().getComponentSize() > 0) { lsmIndex.getHarness().addBulkLoadedComponent(opCtx.getIoOperation()); } }