@Override public IOperatorNodePushable createPushRuntime(IHyracksTaskContext ctx, IRecordDescriptorProvider recordDescProvider, int partition, int nPartitions) throws HyracksDataException { return new LSMIndexInsertUpdateDeleteOperatorNodePushable(ctx, partition, indexHelperFactory, fieldPermutation, recordDescProvider.getInputRecordDescriptor(getActivityId(), 0), op, modCallbackFactory, tupleFilterFactory); } }
@Override public void open() throws HyracksDataException { super.open(); frameTuple = new FrameTupleReference(); abstractModCallback = (AbstractIndexModificationOperationCallback) modCallback; }
case INSERT: { if (!lsmAccessor.tryInsert(tuple)) { flushPartialFrame(nextFlushTupleIndex, i); nextFlushTupleIndex = i; lsmAccessor.insert(tuple); flushPartialFrame(nextFlushTupleIndex, i); nextFlushTupleIndex = i; lsmAccessor.delete(tuple); flushPartialFrame(nextFlushTupleIndex, i); nextFlushTupleIndex = i; lsmAccessor.upsert(tuple); flushPartialFrame(nextFlushTupleIndex, i); nextFlushTupleIndex = i; lsmAccessor.update(tuple); } else { flushPartialFrame(nextFlushTupleIndex, tupleCount);
if (!tryLockSucceed) { operatorNodePushable.flushPartialFrame();