@Override public void destroy() throws HyracksDataException { if (destroyed) { return; } destroyed = true; try { btreeAccessor.destroy(); } finally { btreeCursor.destroy(); } }
protected void destroy(IIndexAccessor accessor) throws HyracksDataException { accessor.destroy(); }
@Override public void validate() throws HyracksDataException { btree.validate(); // Scan the btree and validate the order of elements in each inverted-list. IIndexAccessor btreeAccessor = btree.createAccessor(NoOpIndexAccessParameters.INSTANCE); try { MultiComparator btreeCmp = MultiComparator.create(btree.getComparatorFactories()); RangePredicate rangePred = new RangePredicate(null, null, true, true, btreeCmp, btreeCmp); IIndexCursor btreeCursor = btreeAccessor.createSearchCursor(false); try { btreeAccessor.search(btreeCursor, rangePred); try { doValidate(btreeCursor); } finally { btreeCursor.close(); } } finally { btreeCursor.destroy(); } } finally { btreeAccessor.destroy(); } }
public static void insertData(ITreeIndex lsmBtree) throws HyracksDataException { ArrayTupleBuilder tb = new ArrayTupleBuilder(FIELD_COUNT); ArrayTupleReference tuple = new ArrayTupleReference(); IndexAccessParameters actx = new IndexAccessParameters(TestOperationCallback.INSTANCE, TestOperationCallback.INSTANCE); IIndexAccessor indexAccessor = lsmBtree.createAccessor(actx); try { int numInserts = 10000; for (int i = 0; i < numInserts; i++) { int f0 = RND.nextInt() % numInserts; int f1 = 5; TupleUtils.createIntegerTuple(tb, tuple, f0, f1); try { indexAccessor.insert(tuple); } catch (HyracksDataException e) { if (e.getErrorCode() != ErrorCode.DUPLICATE_KEY) { e.printStackTrace(); throw e; } } catch (Exception e) { e.printStackTrace(); throw e; } } } finally { indexAccessor.destroy(); } } }
indexAccessor.destroy();
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); }
accessor.destroy();