public AbstractIndexTestWorker(DataGenThread dataGen, TestOperationSelector opSelector, IIndex index, int numBatches) throws HyracksDataException { this.dataGen = dataGen; this.opSelector = opSelector; this.numBatches = numBatches; this.rnd = new Random(); IndexAccessParameters actx = new IndexAccessParameters(TestOperationCallback.INSTANCE, TestOperationCallback.INSTANCE); this.indexAccessor = index.createAccessor(actx); }
public InsertionTask() throws HyracksDataException { this.accessor = index.createAccessor(NoOpIndexAccessParameters.INSTANCE); this.builder = new ArrayTupleBuilder(NUM_KEY_FIELDS); this.tuple = new ArrayTupleReference(); }
public IndexTestContext(ISerializerDeserializer[] fieldSerdes, IIndex index, boolean filtered) throws HyracksDataException { this.fieldSerdes = fieldSerdes; this.index = index; IndexAccessParameters actx = new IndexAccessParameters(TestOperationCallback.INSTANCE, TestOperationCallback.INSTANCE); this.indexAccessor = index.createAccessor(actx); this.tupleBuilder = filtered ? new ArrayTupleBuilder(fieldSerdes.length + 1) : new ArrayTupleBuilder(fieldSerdes.length); }
@Override public void search(ILSMIndexOperationContext ictx, IIndexCursor cursor, ISearchPredicate pred) throws HyracksDataException { LSMInvertedIndexOpContext ctx = (LSMInvertedIndexOpContext) ictx; List<ILSMComponent> operationalComponents = ictx.getComponentHolder(); int numComponents = operationalComponents.size(); boolean includeMutableComponent = false; ArrayList<IIndexAccessor> indexAccessors = new ArrayList<>(numComponents); ArrayList<IIndexAccessor> deletedKeysBTreeAccessors = new ArrayList<>(numComponents); for (int i = 0; i < operationalComponents.size(); i++) { ILSMComponent component = operationalComponents.get(i); if (component.getType() == LSMComponentType.MEMORY) { includeMutableComponent = true; IIndexAccessor invIndexAccessor = component.getIndex().createAccessor(ctx.getIndexAccessParameters()); indexAccessors.add(invIndexAccessor); IIndexAccessor deletedKeysAccessor = ((LSMInvertedIndexMemoryComponent) component).getBuddyIndex() .createAccessor(NoOpIndexAccessParameters.INSTANCE); deletedKeysBTreeAccessors.add(deletedKeysAccessor); } else { IIndexAccessor invIndexAccessor = component.getIndex().createAccessor(ctx.getIndexAccessParameters()); indexAccessors.add(invIndexAccessor); IIndexAccessor deletedKeysAccessor = ((LSMInvertedIndexDiskComponent) component).getBuddyIndex() .createAccessor(NoOpIndexAccessParameters.INSTANCE); deletedKeysBTreeAccessors.add(deletedKeysAccessor); } } ICursorInitialState initState = createCursorInitialState(pred, ictx, includeMutableComponent, indexAccessors, deletedKeysBTreeAccessors, operationalComponents); cursor.open(initState, pred); }
private ILSMIOOperation scheduleFlush(OrderedIndexTestContext ctx) throws HyracksDataException, InterruptedException { ILSMIndexAccessor accessor = (ILSMIndexAccessor) ctx.getIndex().createAccessor(NoOpIndexAccessParameters.INSTANCE); return accessor.scheduleFlush(); }
public InsertionTask() throws HyracksDataException { this.accessor = index.createAccessor(NoOpIndexAccessParameters.INSTANCE); this.builder = new ArrayTupleBuilder(NUM_KEY_FIELDS); this.tuple = new ArrayTupleReference(); }
public SearchTask() throws HyracksDataException { this.cb = new SynchronizingSearchOperationCallback(); IndexAccessParameters actx = new IndexAccessParameters(NoOpOperationCallback.INSTANCE, cb); this.accessor = index.createAccessor(actx); this.cursor = accessor.createSearchCursor(false); this.predicate = new RangePredicate(); this.builder = new ArrayTupleBuilder(NUM_KEY_FIELDS); this.tuple = new ArrayTupleReference(); this.blockOnHigh = false; this.blockingValue = -1; this.expectedAfterBlock = -1; }
@Override @Before public void setup() throws Exception { harness.setUp(); super.setup(); IndexAccessParameters actx = new IndexAccessParameters(cb, NoOpOperationCallback.INSTANCE); accessor = index.createAccessor(actx); }
@Test public void modificationCallbackTest() throws Exception { IndexAccessParameters actx = new IndexAccessParameters(cb, NoOpOperationCallback.INSTANCE); IIndexAccessor accessor = index.createAccessor(actx); isFoundNull = true; for (int i = 0; i < AccessMethodTestsConfig.BTREE_NUM_TUPLES_TO_INSERT; i++) { TupleUtils.createIntegerTuple(builder, tuple, i); accessor.insert(tuple); } isFoundNull = false; for (int i = 0; i < AccessMethodTestsConfig.BTREE_NUM_TUPLES_TO_INSERT; i++) { TupleUtils.createIntegerTuple(builder, tuple, i); accessor.upsert(tuple); } isFoundNull = false; for (int i = 0; i < AccessMethodTestsConfig.BTREE_NUM_TUPLES_TO_INSERT; i++) { TupleUtils.createIntegerTuple(builder, tuple, i); accessor.delete(tuple); } }
@Override public void open() throws HyracksDataException { accessor = new FrameTupleAccessor(inputRecDesc); writeBuffer = new VSizeFrame(ctx); indexHelper.open(); index = indexHelper.getIndexInstance(); try { writer.open(); LocalResource resource = indexHelper.getResource(); modCallback = modOpCallbackFactory.createModificationOperationCallback(resource, ctx, this); IIndexAccessParameters iap = new IndexAccessParameters(modCallback, NoOpOperationCallback.INSTANCE); indexAccessor = index.createAccessor(iap); if (tupleFilterFactory != null) { tupleFilter = tupleFilterFactory.createTupleFilter(ctx); frameTuple = new FrameTupleReference(); } } catch (Exception e) { throw HyracksDataException.create(e); } }
IIndex indexInstance = datasetLifecycleManager.get(resourceName); datasetLifecycleManager.open(resourceName); IIndexAccessor indexAccessor = indexInstance.createAccessor(NoOpIndexAccessParameters.INSTANCE); IIndexCursor rangeCursor = indexAccessor.createSearchCursor(false); try { indexInstance = datasetLifecycleManager.get(resourceName); datasetLifecycleManager.open(resourceName); indexAccessor = indexInstance.createAccessor(NoOpIndexAccessParameters.INSTANCE); rangeCursor = indexAccessor.createSearchCursor(false); rangePred = new RangePredicate(null, null, true, true, null, null); indexInstance = datasetLifecycleManager.get(resourceName); datasetLifecycleManager.open(resourceName); indexAccessor = indexInstance.createAccessor(NoOpIndexAccessParameters.INSTANCE); rangeCursor = indexAccessor.createSearchCursor(false); rangePred = new RangePredicate(null, null, true, true, null, null);
RangePredicate rangePred = new RangePredicate(null, null, true, true, null, null); int mostRecentDatasetId = MetadataIndexImmutableProperties.FIRST_AVAILABLE_USER_DATASET_ID; IIndexAccessor indexAccessor = indexInstance.createAccessor(NoOpIndexAccessParameters.INSTANCE); try { IIndexCursor rangeCursor = indexAccessor.createSearchCursor(false);
private <T> void searchIndex(TxnId txnId, IMetadataIndex index, ITupleReference searchKey, IValueExtractor<T> valueExtractor, List<T> results) throws AlgebricksException, HyracksDataException, RemoteException { IBinaryComparatorFactory[] comparatorFactories = index.getKeyBinaryComparatorFactory(); if (index.getFile() == null) { throw new AlgebricksException("No file for Index " + index.getDataverseName() + "." + index.getIndexName()); } String resourceName = index.getFile().getRelativePath(); IIndex indexInstance = datasetLifecycleManager.get(resourceName); datasetLifecycleManager.open(resourceName); IIndexAccessor indexAccessor = indexInstance.createAccessor(NoOpIndexAccessParameters.INSTANCE); try { IBinaryComparator[] searchCmps = null; MultiComparator searchCmp = null; if (searchKey != null) { searchCmps = new IBinaryComparator[searchKey.getFieldCount()]; for (int i = 0; i < searchKey.getFieldCount(); i++) { searchCmps[i] = comparatorFactories[i].createBinaryComparator(); } searchCmp = new MultiComparator(searchCmps); } RangePredicate rangePred = new RangePredicate(searchKey, searchKey, true, true, searchCmp, searchCmp); search(indexAccessor, rangePred, results, valueExtractor, txnId); } finally { indexAccessor.destroy(); } datasetLifecycleManager.close(resourceName); }
public SearchTask() throws HyracksDataException { this.cb = new SynchronizingSearchOperationCallback(); IndexAccessParameters actx = new IndexAccessParameters(NoOpOperationCallback.INSTANCE, cb); this.accessor = index.createAccessor(actx); this.cursor = accessor.createSearchCursor(false); this.predicate = new RangePredicate(); this.builder = new ArrayTupleBuilder(NUM_KEY_FIELDS); this.tuple = new ArrayTupleReference(); this.expectedTupleToBeLockedBuilder = new ArrayTupleBuilder(NUM_KEY_FIELDS); this.expectedTupleToBeLocked = new ArrayTupleReference(); this.expectedTupleToBeCanceledBuilder = new ArrayTupleBuilder(NUM_KEY_FIELDS); this.expectedTupleToBeCanceled = new ArrayTupleReference(); this.blockOnHigh = false; this.expectedAfterBlock = -1; this.expectedTupleToBeLockedValue = -1; }
IIndexAccessParameters iap = new IndexAccessParameters(NoOpOperationCallback.INSTANCE, searchCallback); addAdditionalIndexAccessorParams(iap); indexAccessor = index.createAccessor(iap); cursor = createCursor(); if (retainInput) {
public void modificationCallbackTest() throws Exception { IndexAccessParameters actx = new IndexAccessParameters(cb, NoOpOperationCallback.INSTANCE); ILSMIndexAccessor accessor = (ILSMIndexAccessor) index.createAccessor(actx);
.createSearchOperationCallback(indexHelper.getResource().getId(), ctx, this); IIndexAccessParameters iap = new IndexAccessParameters(abstractModCallback, searchCallback); indexAccessor = index.createAccessor(iap); lsmAccessor = (LSMTreeIndexAccessor) indexAccessor; cursor = indexAccessor.createSearchCursor(false);