Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id AC818200C10 for ; Fri, 3 Feb 2017 16:57:16 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id AAF4F160B6B; Fri, 3 Feb 2017 15:57:16 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id B54A0160B3F for ; Fri, 3 Feb 2017 16:57:14 +0100 (CET) Received: (qmail 28498 invoked by uid 500); 3 Feb 2017 15:57:13 -0000 Mailing-List: contact commits-help@asterixdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@asterixdb.apache.org Delivered-To: mailing list commits@asterixdb.apache.org Received: (qmail 28489 invoked by uid 99); 3 Feb 2017 15:57:13 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Feb 2017 15:57:13 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id BA06FDFC40; Fri, 3 Feb 2017 15:57:13 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: amoudi@apache.org To: commits@asterixdb.apache.org Date: Fri, 03 Feb 2017 15:57:13 -0000 Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: [1/8] asterixdb git commit: Improve reading from and writing to Metadata pages archived-at: Fri, 03 Feb 2017 15:57:16 -0000 Repository: asterixdb Updated Branches: refs/heads/master a8d961db4 -> d718dc4a7 http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d718dc4a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java index bfaef38..e62ccdc 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java @@ -54,6 +54,7 @@ import org.apache.hyracks.storage.am.common.ophelpers.IndexOperation; import org.apache.hyracks.storage.am.common.ophelpers.MultiComparator; import org.apache.hyracks.storage.am.common.tuples.DualTupleReference; import org.apache.hyracks.storage.am.common.tuples.PermutingTupleReference; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMDiskComponent; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponentFilterFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponentFilterFrameFactory; @@ -61,7 +62,7 @@ import org.apache.hyracks.storage.am.lsm.common.api.ILSMHarness; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperation; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationScheduler; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessorInternal; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessor; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexFileManager; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexOperationContext; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicy; @@ -81,25 +82,26 @@ public class LSMRTree extends AbstractLSMRTree { protected int[] buddyBTreeFields; public LSMRTree(IIOManager ioManager, List virtualBufferCaches, - ITreeIndexFrameFactory rtreeInteriorFrameFactory, - ITreeIndexFrameFactory rtreeLeafFrameFactory, ITreeIndexFrameFactory btreeInteriorFrameFactory, - ITreeIndexFrameFactory btreeLeafFrameFactory, ILSMIndexFileManager fileNameManager, - TreeIndexFactory diskRTreeFactory, TreeIndexFactory diskBTreeFactory, - BloomFilterFactory bloomFilterFactory, ILSMComponentFilterFactory filterFactory, - ILSMComponentFilterFrameFactory filterFrameFactory, LSMComponentFilterManager filterManager, - double bloomFilterFalsePositiveRate, IFileMapProvider diskFileMapProvider, int fieldCount, - IBinaryComparatorFactory[] rtreeCmpFactories, IBinaryComparatorFactory[] btreeCmpFactories, - ILinearizeComparatorFactory linearizer, int[] comparatorFields, IBinaryComparatorFactory[] linearizerArray, - ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, - ILSMIOOperationCallback ioOpCallback, int[] rtreeFields, int[] buddyBTreeFields, int[] filterFields, - boolean durable, boolean isPointMBR) throws HyracksDataException { + ITreeIndexFrameFactory rtreeInteriorFrameFactory, ITreeIndexFrameFactory rtreeLeafFrameFactory, + ITreeIndexFrameFactory btreeInteriorFrameFactory, ITreeIndexFrameFactory btreeLeafFrameFactory, + ILSMIndexFileManager fileNameManager, TreeIndexFactory diskRTreeFactory, + TreeIndexFactory diskBTreeFactory, BloomFilterFactory bloomFilterFactory, + ILSMComponentFilterFactory filterFactory, ILSMComponentFilterFrameFactory filterFrameFactory, + LSMComponentFilterManager filterManager, double bloomFilterFalsePositiveRate, + IFileMapProvider diskFileMapProvider, int fieldCount, IBinaryComparatorFactory[] rtreeCmpFactories, + IBinaryComparatorFactory[] btreeCmpFactories, ILinearizeComparatorFactory linearizer, + int[] comparatorFields, IBinaryComparatorFactory[] linearizerArray, ILSMMergePolicy mergePolicy, + ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, + int[] rtreeFields, int[] buddyBTreeFields, int[] filterFields, boolean durable, boolean isPointMBR) + throws HyracksDataException { super(ioManager, virtualBufferCaches, rtreeInteriorFrameFactory, rtreeLeafFrameFactory, - btreeInteriorFrameFactory, - btreeLeafFrameFactory, fileNameManager, - new LSMRTreeDiskComponentFactory(diskRTreeFactory, diskBTreeFactory, bloomFilterFactory, filterFactory), + btreeInteriorFrameFactory, btreeLeafFrameFactory, fileNameManager, + new LSMRTreeDiskComponentFactory(diskRTreeFactory, diskBTreeFactory, bloomFilterFactory, + filterFactory), diskFileMapProvider, fieldCount, rtreeCmpFactories, btreeCmpFactories, linearizer, comparatorFields, linearizerArray, bloomFilterFalsePositiveRate, mergePolicy, opTracker, ioScheduler, ioOpCallback, - filterFactory, filterFrameFactory, filterManager, rtreeFields, filterFields, durable, isPointMBR); + filterFactory, filterFrameFactory, filterManager, rtreeFields, filterFields, durable, isPointMBR, + diskRTreeFactory.getBufferCache()); this.buddyBTreeFields = buddyBTreeFields; } @@ -107,35 +109,34 @@ public class LSMRTree extends AbstractLSMRTree { * For External indexes with no memory components */ public LSMRTree(IIOManager ioManager, ITreeIndexFrameFactory rtreeInteriorFrameFactory, - ITreeIndexFrameFactory rtreeLeafFrameFactory, - ITreeIndexFrameFactory btreeInteriorFrameFactory, ITreeIndexFrameFactory btreeLeafFrameFactory, - ILSMIndexFileManager fileNameManager, TreeIndexFactory diskRTreeFactory, - TreeIndexFactory diskBTreeFactory, BloomFilterFactory bloomFilterFactory, - double bloomFilterFalsePositiveRate, IFileMapProvider diskFileMapProvider, int fieldCount, - IBinaryComparatorFactory[] rtreeCmpFactories, IBinaryComparatorFactory[] btreeCmpFactories, - ILinearizeComparatorFactory linearizer, int[] comparatorFields, IBinaryComparatorFactory[] linearizerArray, - ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, - ILSMIOOperationCallback ioOpCallback, int[] buddyBTreeFields, boolean durable, boolean isPointMBR) { + ITreeIndexFrameFactory rtreeLeafFrameFactory, ITreeIndexFrameFactory btreeInteriorFrameFactory, + ITreeIndexFrameFactory btreeLeafFrameFactory, ILSMIndexFileManager fileNameManager, + TreeIndexFactory diskRTreeFactory, TreeIndexFactory diskBTreeFactory, + BloomFilterFactory bloomFilterFactory, double bloomFilterFalsePositiveRate, + IFileMapProvider diskFileMapProvider, IBinaryComparatorFactory[] rtreeCmpFactories, + IBinaryComparatorFactory[] btreeCmpFactories, ILinearizeComparatorFactory linearizer, + int[] comparatorFields, IBinaryComparatorFactory[] linearizerArray, ILSMMergePolicy mergePolicy, + ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, + int[] buddyBTreeFields, boolean durable, boolean isPointMBR) { super(ioManager, rtreeInteriorFrameFactory, rtreeLeafFrameFactory, btreeInteriorFrameFactory, - btreeLeafFrameFactory, - fileNameManager, + btreeLeafFrameFactory, fileNameManager, new LSMRTreeDiskComponentFactory(diskRTreeFactory, diskBTreeFactory, bloomFilterFactory, null), - diskFileMapProvider, fieldCount, rtreeCmpFactories, btreeCmpFactories, linearizer, comparatorFields, + diskFileMapProvider, rtreeCmpFactories, btreeCmpFactories, linearizer, comparatorFields, linearizerArray, bloomFilterFalsePositiveRate, mergePolicy, opTracker, ioScheduler, ioOpCallback, - durable, isPointMBR); + durable, isPointMBR, diskRTreeFactory.getBufferCache()); this.buddyBTreeFields = buddyBTreeFields; } /** * Opens LSMRTree, cleaning up invalid files from base dir, and registering * all valid files as on-disk RTrees and BTrees. - * + * * @throws HyracksDataException */ @Override public synchronized void activate() throws HyracksDataException { super.activate(); - List immutableComponents = diskComponents; + List immutableComponents = diskComponents; List validFileReferences; try { validFileReferences = fileManager.cleanupAndGetValidFiles(); @@ -146,10 +147,10 @@ public class LSMRTree extends AbstractLSMRTree { for (LSMComponentFileReferences lsmComonentFileReference : validFileReferences) { LSMRTreeDiskComponent component; try { - component = createDiskComponent(componentFactory, - lsmComonentFileReference.getInsertIndexFileReference(), - lsmComonentFileReference.getDeleteIndexFileReference(), - lsmComonentFileReference.getBloomFilterFileReference(), false); + component = + createDiskComponent(componentFactory, lsmComonentFileReference.getInsertIndexFileReference(), + lsmComonentFileReference.getDeleteIndexFileReference(), + lsmComonentFileReference.getBloomFilterFileReference(), false); } catch (IndexException e) { throw new HyracksDataException(e); } @@ -161,8 +162,8 @@ public class LSMRTree extends AbstractLSMRTree { @Override public synchronized void deactivate(boolean flushOnExit) throws HyracksDataException { super.deactivate(flushOnExit); - List immutableComponents = diskComponents; - for (ILSMComponent c : immutableComponents) { + List immutableComponents = diskComponents; + for (ILSMDiskComponent c : immutableComponents) { LSMRTreeDiskComponent component = (LSMRTreeDiskComponent) c; RTree rtree = component.getRTree(); BTree btree = component.getBTree(); @@ -182,8 +183,8 @@ public class LSMRTree extends AbstractLSMRTree { @Override public synchronized void destroy() throws HyracksDataException { super.destroy(); - List immutableComponents = diskComponents; - for (ILSMComponent c : immutableComponents) { + List immutableComponents = diskComponents; + for (ILSMDiskComponent c : immutableComponents) { LSMRTreeDiskComponent component = (LSMRTreeDiskComponent) c; component.getBTree().destroy(); component.getBloomFilter().destroy(); @@ -195,8 +196,8 @@ public class LSMRTree extends AbstractLSMRTree { @Override public synchronized void clear() throws HyracksDataException { super.clear(); - List immutableComponents = diskComponents; - for (ILSMComponent c : immutableComponents) { + List immutableComponents = diskComponents; + for (ILSMDiskComponent c : immutableComponents) { LSMRTreeDiskComponent component = (LSMRTreeDiskComponent) c; component.getBTree().deactivate(); component.getBloomFilter().deactivate(); @@ -213,8 +214,8 @@ public class LSMRTree extends AbstractLSMRTree { throws HyracksDataException { ILSMComponent flushingComponent = ctx.getComponentHolder().get(0); LSMComponentFileReferences componentFileRefs = fileManager.getRelFlushFileReference(); - ILSMIndexOperationContext rctx = createOpContext(NoOpOperationCallback.INSTANCE, - NoOpOperationCallback.INSTANCE); + ILSMIndexOperationContext rctx = + createOpContext(NoOpOperationCallback.INSTANCE, NoOpOperationCallback.INSTANCE); rctx.setOperation(IndexOperation.FLUSH); rctx.getComponentHolder().addAll(ctx.getComponentHolder()); LSMRTreeAccessor accessor = new LSMRTreeAccessor(lsmHarness, rctx); @@ -224,7 +225,7 @@ public class LSMRTree extends AbstractLSMRTree { } @Override - public ILSMComponent flush(ILSMIOOperation operation) throws HyracksDataException, IndexException { + public ILSMDiskComponent flush(ILSMIOOperation operation) throws HyracksDataException, IndexException { LSMRTreeFlushOperation flushOp = (LSMRTreeFlushOperation) operation; LSMRTreeMemoryComponent flushingComponent = (LSMRTreeMemoryComponent) flushOp.getFlushingComponent(); // Renaming order is critical because we use assume ordering when we @@ -297,8 +298,8 @@ public class LSMRTree extends AbstractLSMRTree { } int maxBucketsPerElement = BloomCalculations.maxBucketsPerElement(numBTreeTuples); - BloomFilterSpecification bloomFilterSpec = BloomCalculations.computeBloomSpec(maxBucketsPerElement, - bloomFilterFalsePositiveRate); + BloomFilterSpecification bloomFilterSpec = + BloomCalculations.computeBloomSpec(maxBucketsPerElement, bloomFilterFalsePositiveRate); IIndexCursor btreeScanCursor = memBTreeAccessor.createSearchCursor(false); memBTreeAccessor.search(btreeScanCursor, btreeNullPredicate); @@ -325,32 +326,32 @@ public class LSMRTree extends AbstractLSMRTree { List filterTuples = new ArrayList<>(); filterTuples.add(flushingComponent.getLSMComponentFilter().getMinTuple()); filterTuples.add(flushingComponent.getLSMComponentFilter().getMaxTuple()); - filterManager.updateFilterInfo(component.getLSMComponentFilter(), filterTuples); - filterManager.writeFilterInfo(component.getLSMComponentFilter(), component.getRTree()); + filterManager.updateFilter(component.getLSMComponentFilter(), filterTuples); + filterManager.writeFilter(component.getLSMComponentFilter(), component.getRTree()); } - + // Note. If we change the filter to write to metadata object, we don't need the if block above + flushingComponent.getMetadata().copy(component.getMetadata()); bTreeBulkloader.end(); - return component; } @Override public void scheduleMerge(ILSMIndexOperationContext ctx, ILSMIOOperationCallback callback) throws HyracksDataException, IndexException { - ILSMIndexOperationContext rctx = createOpContext(NoOpOperationCallback.INSTANCE, - NoOpOperationCallback.INSTANCE); + ILSMIndexOperationContext rctx = + createOpContext(NoOpOperationCallback.INSTANCE, NoOpOperationCallback.INSTANCE); rctx.setOperation(IndexOperation.MERGE); List mergingComponents = ctx.getComponentHolder(); ITreeIndexCursor cursor = new LSMRTreeSortedCursor(rctx, linearizer, buddyBTreeFields); LSMComponentFileReferences relMergeFileRefs = getMergeTargetFileName(mergingComponents); - ILSMIndexAccessorInternal accessor = new LSMRTreeAccessor(lsmHarness, rctx); + ILSMIndexAccessor accessor = new LSMRTreeAccessor(lsmHarness, rctx); ioScheduler.scheduleOperation(new LSMRTreeMergeOperation(accessor, mergingComponents, cursor, relMergeFileRefs.getInsertIndexFileReference(), relMergeFileRefs.getDeleteIndexFileReference(), relMergeFileRefs.getBloomFilterFileReference(), callback, fileManager.getBaseDir())); } @Override - public ILSMComponent merge(ILSMIOOperation operation) throws HyracksDataException, IndexException { + public ILSMDiskComponent merge(ILSMIOOperation operation) throws HyracksDataException, IndexException { LSMRTreeMergeOperation mergeOp = (LSMRTreeMergeOperation) operation; ITreeIndexCursor cursor = mergeOp.getCursor(); ISearchPredicate rtreeSearchPred = new SearchPredicate(null, null); @@ -379,8 +380,8 @@ public class LSMRTree extends AbstractLSMRTree { } int maxBucketsPerElement = BloomCalculations.maxBucketsPerElement(numElements); - BloomFilterSpecification bloomFilterSpec = BloomCalculations.computeBloomSpec(maxBucketsPerElement, - bloomFilterFalsePositiveRate); + BloomFilterSpecification bloomFilterSpec = + BloomCalculations.computeBloomSpec(maxBucketsPerElement, bloomFilterFalsePositiveRate); IIndexBulkLoader builder = mergedComponent.getBloomFilter().createBuilder(numElements, bloomFilterSpec.getNumHashes(), bloomFilterSpec.getNumBucketsPerElements()); @@ -403,8 +404,8 @@ public class LSMRTree extends AbstractLSMRTree { filterTuples.add(mergeOp.getMergingComponents().get(i).getLSMComponentFilter().getMinTuple()); filterTuples.add(mergeOp.getMergingComponents().get(i).getLSMComponentFilter().getMaxTuple()); } - filterManager.updateFilterInfo(mergedComponent.getLSMComponentFilter(), filterTuples); - filterManager.writeFilterInfo(mergedComponent.getLSMComponentFilter(), mergedComponent.getRTree()); + filterManager.updateFilter(mergedComponent.getLSMComponentFilter(), filterTuples); + filterManager.writeFilter(mergedComponent.getLSMComponentFilter(), mergedComponent.getRTree()); } btreeBulkLoader.end(); @@ -424,7 +425,7 @@ public class LSMRTree extends AbstractLSMRTree { } @Override - public ILSMIndexAccessorInternal createAccessor(IModificationOperationCallback modificationCallback, + public ILSMIndexAccessor createAccessor(IModificationOperationCallback modificationCallback, ISearchOperationCallback searchCallback) { return new LSMRTreeAccessor(lsmHarness, createOpContext(modificationCallback, searchCallback)); } @@ -469,10 +470,11 @@ public class LSMRTree extends AbstractLSMRTree { } } - protected ILSMComponent createBulkLoadTarget() throws HyracksDataException, IndexException { + protected ILSMDiskComponent createBulkLoadTarget() throws HyracksDataException, IndexException { LSMComponentFileReferences componentFileRefs = fileManager.getRelFlushFileReference(); return createDiskComponent(componentFactory, componentFileRefs.getInsertIndexFileReference(), - componentFileRefs.getDeleteIndexFileReference(), componentFileRefs.getBloomFilterFileReference(), true); + componentFileRefs.getDeleteIndexFileReference(), componentFileRefs.getBloomFilterFileReference(), + true); } @Override @@ -487,7 +489,8 @@ public class LSMRTree extends AbstractLSMRTree { // This function is modified for R-Trees without antimatter tuples to allow buddy B-Tree to have only primary keys @Override - public void modify(IIndexOperationContext ictx, ITupleReference tuple) throws HyracksDataException, IndexException { + public void modify(IIndexOperationContext ictx, ITupleReference tuple) + throws HyracksDataException, IndexException { LSMRTreeOpContext ctx = (LSMRTreeOpContext) ictx; if (ctx.getOperation() == IndexOperation.PHYSICALDELETE) { throw new UnsupportedOperationException("Physical delete not supported in the LSM-RTree"); @@ -523,7 +526,7 @@ public class LSMRTree extends AbstractLSMRTree { } public class LSMRTreeBulkLoader implements IIndexBulkLoader { - private final ILSMComponent component; + private final ILSMDiskComponent component; private final IIndexBulkLoader bulkLoader; private final IIndexBulkLoader buddyBTreeBulkloader; private boolean cleanedUpArtifacts = false; @@ -590,7 +593,7 @@ public class LSMRTree extends AbstractLSMRTree { if (!cleanedUpArtifacts) { if (component.getLSMComponentFilter() != null) { - filterManager.writeFilterInfo(component.getLSMComponentFilter(), + filterManager.writeFilter(component.getLSMComponentFilter(), ((LSMRTreeDiskComponent) component).getRTree()); } @@ -630,7 +633,7 @@ public class LSMRTree extends AbstractLSMRTree { } @Override - public void markAsValid(ILSMComponent lsmComponent) throws HyracksDataException { + public void markAsValid(ILSMDiskComponent lsmComponent) throws HyracksDataException { LSMRTreeDiskComponent component = (LSMRTreeDiskComponent) lsmComponent; markAsValidInternal(component.getBTree().getBufferCache(), component.getBloomFilter()); markAsValidInternal((component).getBTree()); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d718dc4a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeDiskComponent.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeDiskComponent.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeDiskComponent.java index 4e6952b..982f89b 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeDiskComponent.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeDiskComponent.java @@ -21,17 +21,18 @@ package org.apache.hyracks.storage.am.lsm.rtree.impls; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.storage.am.bloomfilter.impls.BloomFilter; import org.apache.hyracks.storage.am.btree.impls.BTree; +import org.apache.hyracks.storage.am.common.api.IMetadataPageManager; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponentFilter; -import org.apache.hyracks.storage.am.lsm.common.impls.AbstractDiskLSMComponent; +import org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMDiskComponent; import org.apache.hyracks.storage.am.rtree.impls.RTree; -public class LSMRTreeDiskComponent extends AbstractDiskLSMComponent { +public class LSMRTreeDiskComponent extends AbstractLSMDiskComponent { private final RTree rtree; private final BTree btree; private final BloomFilter bloomFilter; public LSMRTreeDiskComponent(RTree rtree, BTree btree, BloomFilter bloomFilter, ILSMComponentFilter filter) { - super(filter); + super((IMetadataPageManager) rtree.getPageManager(), filter); this.rtree = rtree; this.btree = btree; this.bloomFilter = bloomFilter; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d718dc4a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeDiskComponentFactory.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeDiskComponentFactory.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeDiskComponentFactory.java index a102ce5..2e457d9 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeDiskComponentFactory.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeDiskComponentFactory.java @@ -22,16 +22,13 @@ package org.apache.hyracks.storage.am.lsm.rtree.impls; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.storage.am.bloomfilter.impls.BloomFilterFactory; import org.apache.hyracks.storage.am.btree.impls.BTree; -import org.apache.hyracks.storage.am.common.api.IndexException; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponentFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponentFilterFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMDiskComponentFactory; import org.apache.hyracks.storage.am.lsm.common.impls.LSMComponentFileReferences; import org.apache.hyracks.storage.am.lsm.common.impls.TreeIndexFactory; import org.apache.hyracks.storage.am.rtree.impls.RTree; -import org.apache.hyracks.storage.common.buffercache.IBufferCache; -public class LSMRTreeDiskComponentFactory implements ILSMComponentFactory { +public class LSMRTreeDiskComponentFactory implements ILSMDiskComponentFactory { private final TreeIndexFactory rtreeFactory; private final TreeIndexFactory btreeFactory; private final BloomFilterFactory bloomFilterFactory; @@ -46,16 +43,10 @@ public class LSMRTreeDiskComponentFactory implements ILSMComponentFactory { } @Override - public ILSMComponent createLSMComponentInstance(LSMComponentFileReferences cfr) throws IndexException, - HyracksDataException { + public LSMRTreeDiskComponent createComponent(LSMComponentFileReferences cfr) throws HyracksDataException { return new LSMRTreeDiskComponent(rtreeFactory.createIndexInstance(cfr.getInsertIndexFileReference()), btreeFactory.createIndexInstance(cfr.getDeleteIndexFileReference()), bloomFilterFactory.createBloomFiltertInstance(cfr.getBloomFilterFileReference()), - filterFactory == null ? null : filterFactory.createLSMComponentFilter()); - } - - @Override - public IBufferCache getBufferCache() { - return rtreeFactory.getBufferCache(); + filterFactory == null ? null : filterFactory.createFilter()); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d718dc4a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFlushOperation.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFlushOperation.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFlushOperation.java index 31455ae..013821d 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFlushOperation.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFlushOperation.java @@ -29,11 +29,11 @@ import org.apache.hyracks.storage.am.common.api.IndexException; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperation; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessorInternal; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessor; public class LSMRTreeFlushOperation implements ILSMIOOperation, Comparable { - private final ILSMIndexAccessorInternal accessor; + private final ILSMIndexAccessor accessor; private final ILSMComponent flushingComponent; private final FileReference rtreeFlushTarget; private final FileReference btreeFlushTarget; @@ -41,7 +41,7 @@ public class LSMRTreeFlushOperation implements ILSMIOOperation, Comparable getWriteDevices() { - Set devs = new HashSet(); + Set devs = new HashSet<>(); devs.add(rtreeFlushTarget.getDeviceHandle()); if (btreeFlushTarget != null) { devs.add(btreeFlushTarget.getDeviceHandle()); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d718dc4a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeMemoryComponent.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeMemoryComponent.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeMemoryComponent.java index 339059f..957e2a9 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeMemoryComponent.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeMemoryComponent.java @@ -23,10 +23,10 @@ import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.storage.am.btree.impls.BTree; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponentFilter; import org.apache.hyracks.storage.am.lsm.common.api.IVirtualBufferCache; -import org.apache.hyracks.storage.am.lsm.common.impls.AbstractMemoryLSMComponent; +import org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMMemoryComponent; import org.apache.hyracks.storage.am.rtree.impls.RTree; -public class LSMRTreeMemoryComponent extends AbstractMemoryLSMComponent { +public class LSMRTreeMemoryComponent extends AbstractLSMMemoryComponent { private final RTree rtree; private final BTree btree; @@ -47,7 +47,7 @@ public class LSMRTreeMemoryComponent extends AbstractMemoryLSMComponent { } @Override - protected void reset() throws HyracksDataException { + public void reset() throws HyracksDataException { super.reset(); rtree.deactivate(); rtree.destroy(); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d718dc4a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeMergeOperation.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeMergeOperation.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeMergeOperation.java index 12b47b4..6a12ab2 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeMergeOperation.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeMergeOperation.java @@ -30,10 +30,10 @@ import org.apache.hyracks.storage.am.common.api.IndexException; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperation; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessorInternal; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessor; public class LSMRTreeMergeOperation implements ILSMIOOperation { - private final ILSMIndexAccessorInternal accessor; + private final ILSMIndexAccessor accessor; private final List mergingComponents; private final ITreeIndexCursor cursor; private final FileReference rtreeMergeTarget; @@ -43,7 +43,7 @@ public class LSMRTreeMergeOperation implements ILSMIOOperation { private final String indexIdentifier; private boolean keepDeletedTuples; - public LSMRTreeMergeOperation(ILSMIndexAccessorInternal accessor, List mergingComponents, + public LSMRTreeMergeOperation(ILSMIndexAccessor accessor, List mergingComponents, ITreeIndexCursor cursor, FileReference rtreeMergeTarget, FileReference btreeMergeTarget, FileReference bloomFilterMergeTarget, ILSMIOOperationCallback callback, String indexIdentifier) { this.accessor = accessor; @@ -58,7 +58,7 @@ public class LSMRTreeMergeOperation implements ILSMIOOperation { @Override public Set getReadDevices() { - Set devs = new HashSet(); + Set devs = new HashSet<>(); for (ILSMComponent o : mergingComponents) { LSMRTreeDiskComponent component = (LSMRTreeDiskComponent) o; devs.add(component.getRTree().getFileReference().getDeviceHandle()); @@ -72,7 +72,7 @@ public class LSMRTreeMergeOperation implements ILSMIOOperation { @Override public Set getWriteDevices() { - Set devs = new HashSet(); + Set devs = new HashSet<>(); devs.add(rtreeMergeTarget.getDeviceHandle()); if (btreeMergeTarget != null) { devs.add(btreeMergeTarget.getDeviceHandle()); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d718dc4a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeOpContext.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeOpContext.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeOpContext.java index 62f572f..433d99d 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeOpContext.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeOpContext.java @@ -33,8 +33,10 @@ import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallback; import org.apache.hyracks.storage.am.common.ophelpers.IndexOperation; import org.apache.hyracks.storage.am.common.ophelpers.MultiComparator; import org.apache.hyracks.storage.am.common.tuples.PermutingTupleReference; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMDiskComponent; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent; import org.apache.hyracks.storage.am.lsm.common.api.ILSMHarness; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMMemoryComponent; import org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMIndexOperationContext; import org.apache.hyracks.storage.am.rtree.impls.RTree; import org.apache.hyracks.storage.am.rtree.impls.RTreeOpContext; @@ -53,8 +55,8 @@ public final class LSMRTreeOpContext extends AbstractLSMIndexOperationContext { private IndexOperation op; public final List componentHolder; - private final List componentsToBeMerged; - private final List componentsToBeReplicated; + private final List componentsToBeMerged; + private final List componentsToBeReplicated; private IModificationOperationCallback modificationCallback; private ISearchOperationCallback searchCallback; public final PermutingTupleReference indexTuple; @@ -63,12 +65,11 @@ public final class LSMRTreeOpContext extends AbstractLSMIndexOperationContext { public ISearchPredicate searchPredicate; public LSMRTreeCursorInitialState searchInitialState; - public LSMRTreeOpContext(List mutableComponents, ITreeIndexFrameFactory rtreeLeafFrameFactory, + public LSMRTreeOpContext(List mutableComponents, ITreeIndexFrameFactory rtreeLeafFrameFactory, ITreeIndexFrameFactory rtreeInteriorFrameFactory, ITreeIndexFrameFactory btreeLeafFrameFactory, - ITreeIndexFrameFactory btreeInteriorFrameFactory, IBinaryComparatorFactory[] rtreeCmpFactories, - IBinaryComparatorFactory[] btreeCmpFactories, IModificationOperationCallback modificationCallback, - ISearchOperationCallback searchCallback, int[] rtreeFields, int[] filterFields, ILSMHarness lsmHarness, - int[] comparatorFields, IBinaryComparatorFactory[] linearizerArray) { + IModificationOperationCallback modificationCallback, ISearchOperationCallback searchCallback, + int[] rtreeFields, int[] filterFields, ILSMHarness lsmHarness, int[] comparatorFields, + IBinaryComparatorFactory[] linearizerArray) { mutableRTreeAccessors = new RTree.RTreeAccessor[mutableComponents.size()]; mutableBTreeAccessors = new BTree.BTreeAccessor[mutableComponents.size()]; rtreeOpContexts = new RTreeOpContext[mutableComponents.size()]; @@ -90,9 +91,9 @@ public final class LSMRTreeOpContext extends AbstractLSMIndexOperationContext { assert mutableComponents.size() > 0; currentRTreeOpContext = rtreeOpContexts[0]; currentBTreeOpContext = btreeOpContexts[0]; - this.componentHolder = new LinkedList(); - this.componentsToBeMerged = new LinkedList(); - this.componentsToBeReplicated = new LinkedList(); + this.componentHolder = new LinkedList<>(); + this.componentsToBeMerged = new LinkedList<>(); + this.componentsToBeReplicated = new LinkedList<>(); this.modificationCallback = modificationCallback; this.searchCallback = searchCallback; @@ -161,7 +162,7 @@ public final class LSMRTreeOpContext extends AbstractLSMIndexOperationContext { } @Override - public List getComponentsToBeMerged() { + public List getComponentsToBeMerged() { return componentsToBeMerged; } @@ -176,7 +177,7 @@ public final class LSMRTreeOpContext extends AbstractLSMIndexOperationContext { } @Override - public List getComponentsToBeReplicated() { + public List getComponentsToBeReplicated() { return componentsToBeReplicated; } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d718dc4a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeWithAntiMatterTuples.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeWithAntiMatterTuples.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeWithAntiMatterTuples.java index 6b67494..179865a 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeWithAntiMatterTuples.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeWithAntiMatterTuples.java @@ -44,15 +44,16 @@ import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallback; import org.apache.hyracks.storage.am.common.ophelpers.IndexOperation; import org.apache.hyracks.storage.am.common.ophelpers.MultiComparator; import org.apache.hyracks.storage.am.common.tuples.PermutingTupleReference; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMDiskComponent; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMDiskComponentFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponentFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponentFilterFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponentFilterFrameFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMHarness; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperation; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationScheduler; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessorInternal; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessor; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexFileManager; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexOperationContext; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicy; @@ -73,7 +74,7 @@ public class LSMRTreeWithAntiMatterTuples extends AbstractLSMRTree { // On-disk components. // For creating RTree's used in bulk load. Different from diskRTreeFactory // because it should have a different tuple writer in it's leaf frames. - private final ILSMComponentFactory bulkLoaComponentFactory; + private final ILSMDiskComponentFactory bulkLoaComponentFactory; public LSMRTreeWithAntiMatterTuples(IIOManager ioManager, List virtualBufferCaches, ITreeIndexFrameFactory rtreeInteriorFrameFactory, ITreeIndexFrameFactory rtreeLeafFrameFactory, @@ -87,20 +88,20 @@ public class LSMRTreeWithAntiMatterTuples extends AbstractLSMRTree { ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, int[] rtreeFields, int[] filterFields, boolean durable, boolean isPointMBR) throws HyracksDataException { super(ioManager, virtualBufferCaches, rtreeInteriorFrameFactory, rtreeLeafFrameFactory, - btreeInteriorFrameFactory, - btreeLeafFrameFactory, fileManager, + btreeInteriorFrameFactory, btreeLeafFrameFactory, fileManager, new LSMRTreeWithAntiMatterTuplesDiskComponentFactory(diskRTreeFactory, filterFactory), diskFileMapProvider, fieldCount, rtreeCmpFactories, btreeCmpFactories, linearizer, comparatorFields, linearizerArray, 0, mergePolicy, opTracker, ioScheduler, ioOpCallback, filterFactory, - filterFrameFactory, filterManager, rtreeFields, filterFields, durable, isPointMBR); - bulkLoaComponentFactory = new LSMRTreeWithAntiMatterTuplesDiskComponentFactory(bulkLoadRTreeFactory, - filterFactory); + filterFrameFactory, filterManager, rtreeFields, filterFields, durable, isPointMBR, + diskRTreeFactory.getBufferCache()); + bulkLoaComponentFactory = + new LSMRTreeWithAntiMatterTuplesDiskComponentFactory(bulkLoadRTreeFactory, filterFactory); } @Override public synchronized void activate() throws HyracksDataException { super.activate(); - List immutableComponents = diskComponents; + List immutableComponents = diskComponents; immutableComponents.clear(); List validFileReferences; try { @@ -124,8 +125,8 @@ public class LSMRTreeWithAntiMatterTuples extends AbstractLSMRTree { @Override public synchronized void deactivate(boolean flushOnExit) throws HyracksDataException { super.deactivate(flushOnExit); - List immutableComponents = diskComponents; - for (ILSMComponent c : immutableComponents) { + List immutableComponents = diskComponents; + for (ILSMDiskComponent c : immutableComponents) { RTree rtree = ((LSMRTreeDiskComponent) c).getRTree(); rtree.deactivateCloseHandle(); } @@ -140,8 +141,8 @@ public class LSMRTreeWithAntiMatterTuples extends AbstractLSMRTree { @Override public synchronized void destroy() throws HyracksDataException { super.destroy(); - List immutableComponents = diskComponents; - for (ILSMComponent c : immutableComponents) { + List immutableComponents = diskComponents; + for (ILSMDiskComponent c : immutableComponents) { RTree rtree = ((LSMRTreeDiskComponent) c).getRTree(); rtree.destroy(); } @@ -151,8 +152,8 @@ public class LSMRTreeWithAntiMatterTuples extends AbstractLSMRTree { @Override public synchronized void clear() throws HyracksDataException { super.clear(); - List immutableComponents = diskComponents; - for (ILSMComponent c : immutableComponents) { + List immutableComponents = diskComponents; + for (ILSMDiskComponent c : immutableComponents) { RTree rtree = ((LSMRTreeDiskComponent) c).getRTree(); rtree.deactivate(); rtree.destroy(); @@ -168,13 +169,13 @@ public class LSMRTreeWithAntiMatterTuples extends AbstractLSMRTree { LSMComponentFileReferences relFlushFileRefs = fileManager.getRelFlushFileReference(); opCtx.setOperation(IndexOperation.FLUSH); opCtx.getComponentHolder().add(flushingComponent); - ILSMIndexAccessorInternal accessor = new LSMRTreeWithAntiMatterTuplesAccessor(lsmHarness, opCtx); + ILSMIndexAccessor accessor = new LSMRTreeWithAntiMatterTuplesAccessor(lsmHarness, opCtx); ioScheduler.scheduleOperation(new LSMRTreeFlushOperation(accessor, flushingComponent, relFlushFileRefs.getInsertIndexFileReference(), null, null, callback, fileManager.getBaseDir())); } @Override - public ILSMComponent flush(ILSMIOOperation operation) throws HyracksDataException, IndexException { + public ILSMDiskComponent flush(ILSMIOOperation operation) throws HyracksDataException, IndexException { LSMRTreeFlushOperation flushOp = (LSMRTreeFlushOperation) operation; // Renaming order is critical because we use assume ordering when we // read the file names when we open the tree. @@ -185,8 +186,8 @@ public class LSMRTreeWithAntiMatterTuples extends AbstractLSMRTree { RTreeSearchCursor rtreeScanCursor = (RTreeSearchCursor) memRTreeAccessor.createSearchCursor(false); SearchPredicate rtreeNullPredicate = new SearchPredicate(null, null); memRTreeAccessor.search(rtreeScanCursor, rtreeNullPredicate); - LSMRTreeDiskComponent component = createDiskComponent(componentFactory, flushOp.getRTreeFlushTarget(), null, - null, true); + LSMRTreeDiskComponent component = + createDiskComponent(componentFactory, flushOp.getRTreeFlushTarget(), null, null, true); RTree diskRTree = component.getRTree(); // scan the memory BTree @@ -256,9 +257,10 @@ public class LSMRTreeWithAntiMatterTuples extends AbstractLSMRTree { List filterTuples = new ArrayList<>(); filterTuples.add(flushingComponent.getLSMComponentFilter().getMinTuple()); filterTuples.add(flushingComponent.getLSMComponentFilter().getMaxTuple()); - filterManager.updateFilterInfo(component.getLSMComponentFilter(), filterTuples); - filterManager.writeFilterInfo(component.getLSMComponentFilter(), component.getRTree()); + filterManager.updateFilter(component.getLSMComponentFilter(), filterTuples); + filterManager.writeFilter(component.getLSMComponentFilter(), component.getRTree()); } + flushingComponent.getMetadata().copy(component.getMetadata()); rTreeBulkloader.end(); return component; @@ -277,13 +279,13 @@ public class LSMRTreeWithAntiMatterTuples extends AbstractLSMRTree { } ITreeIndexCursor cursor = new LSMRTreeWithAntiMatterTuplesSearchCursor(rctx, returnDeletedTuples); LSMComponentFileReferences relMergeFileRefs = getMergeTargetFileName(mergingComponents); - ILSMIndexAccessorInternal accessor = new LSMRTreeWithAntiMatterTuplesAccessor(lsmHarness, rctx); + ILSMIndexAccessor accessor = new LSMRTreeWithAntiMatterTuplesAccessor(lsmHarness, rctx); ioScheduler.scheduleOperation(new LSMRTreeMergeOperation(accessor, mergingComponents, cursor, relMergeFileRefs.getInsertIndexFileReference(), null, null, callback, fileManager.getBaseDir())); } @Override - public ILSMComponent merge(ILSMIOOperation operation) throws HyracksDataException, IndexException { + public ILSMDiskComponent merge(ILSMIOOperation operation) throws HyracksDataException, IndexException { LSMRTreeMergeOperation mergeOp = (LSMRTreeMergeOperation) operation; ITreeIndexCursor cursor = mergeOp.getCursor(); ISearchPredicate rtreeSearchPred = new SearchPredicate(null, null); @@ -292,8 +294,8 @@ public class LSMRTreeWithAntiMatterTuples extends AbstractLSMRTree { search(opCtx, cursor, rtreeSearchPred); // Bulk load the tuples from all on-disk RTrees into the new RTree. - LSMRTreeDiskComponent component = createDiskComponent(componentFactory, mergeOp.getRTreeMergeTarget(), null, - null, true); + LSMRTreeDiskComponent component = + createDiskComponent(componentFactory, mergeOp.getRTreeMergeTarget(), null, null, true); RTree mergedRTree = component.getRTree(); IIndexBulkLoader bulkloader = mergedRTree.createBulkLoader(1.0f, false, 0L, false); try { @@ -311,8 +313,8 @@ public class LSMRTreeWithAntiMatterTuples extends AbstractLSMRTree { filterTuples.add(mergeOp.getMergingComponents().get(i).getLSMComponentFilter().getMinTuple()); filterTuples.add(mergeOp.getMergingComponents().get(i).getLSMComponentFilter().getMaxTuple()); } - filterManager.updateFilterInfo(component.getLSMComponentFilter(), filterTuples); - filterManager.writeFilterInfo(component.getLSMComponentFilter(), component.getRTree()); + filterManager.updateFilter(component.getLSMComponentFilter(), filterTuples); + filterManager.writeFilter(component.getLSMComponentFilter(), component.getRTree()); } bulkloader.end(); @@ -320,7 +322,7 @@ public class LSMRTreeWithAntiMatterTuples extends AbstractLSMRTree { } @Override - public ILSMIndexAccessorInternal createAccessor(IModificationOperationCallback modificationCallback, + public ILSMIndexAccessor createAccessor(IModificationOperationCallback modificationCallback, ISearchOperationCallback searchCallback) { return new LSMRTreeWithAntiMatterTuplesAccessor(lsmHarness, createOpContext(modificationCallback, searchCallback)); @@ -353,14 +355,8 @@ public class LSMRTreeWithAntiMatterTuples extends AbstractLSMRTree { } } - private ILSMComponent createBulkLoadTarget() throws HyracksDataException, IndexException { - LSMComponentFileReferences relFlushFileRefs = fileManager.getRelFlushFileReference(); - return createDiskComponent(bulkLoaComponentFactory, relFlushFileRefs.getInsertIndexFileReference(), null, null, - true); - } - public class LSMRTreeWithAntiMatterTuplesBulkLoader implements IIndexBulkLoader { - private final ILSMComponent component; + private final ILSMDiskComponent component; private final IIndexBulkLoader bulkLoader; private boolean cleanedUpArtifacts = false; private boolean isEmptyComponent = true; @@ -426,7 +422,7 @@ public class LSMRTreeWithAntiMatterTuples extends AbstractLSMRTree { if (!cleanedUpArtifacts) { if (component.getLSMComponentFilter() != null) { - filterManager.writeFilterInfo(component.getLSMComponentFilter(), + filterManager.writeFilter(component.getLSMComponentFilter(), ((LSMRTreeDiskComponent) component).getRTree()); } bulkLoader.end(); @@ -455,10 +451,16 @@ public class LSMRTreeWithAntiMatterTuples extends AbstractLSMRTree { } } + private ILSMDiskComponent createBulkLoadTarget() throws HyracksDataException, IndexException { + LSMComponentFileReferences relFlushFileRefs = fileManager.getRelFlushFileReference(); + return createDiskComponent(bulkLoaComponentFactory, relFlushFileRefs.getInsertIndexFileReference(), null, + null, true); + } + } @Override - public void markAsValid(ILSMComponent lsmComponent) throws HyracksDataException { + public void markAsValid(ILSMDiskComponent lsmComponent) throws HyracksDataException { RTree rtree = ((LSMRTreeDiskComponent) lsmComponent).getRTree(); markAsValidInternal(rtree); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d718dc4a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeWithAntiMatterTuplesDiskComponentFactory.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeWithAntiMatterTuplesDiskComponentFactory.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeWithAntiMatterTuplesDiskComponentFactory.java index 1e96fc6..f1af5a1 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeWithAntiMatterTuplesDiskComponentFactory.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeWithAntiMatterTuplesDiskComponentFactory.java @@ -20,16 +20,13 @@ package org.apache.hyracks.storage.am.lsm.rtree.impls; import org.apache.hyracks.api.exceptions.HyracksDataException; -import org.apache.hyracks.storage.am.common.api.IndexException; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponentFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponentFilterFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMDiskComponentFactory; import org.apache.hyracks.storage.am.lsm.common.impls.LSMComponentFileReferences; import org.apache.hyracks.storage.am.lsm.common.impls.TreeIndexFactory; import org.apache.hyracks.storage.am.rtree.impls.RTree; -import org.apache.hyracks.storage.common.buffercache.IBufferCache; -public class LSMRTreeWithAntiMatterTuplesDiskComponentFactory implements ILSMComponentFactory { +public class LSMRTreeWithAntiMatterTuplesDiskComponentFactory implements ILSMDiskComponentFactory { private final TreeIndexFactory rtreeFactory; private final ILSMComponentFilterFactory filterFactory; @@ -40,14 +37,8 @@ public class LSMRTreeWithAntiMatterTuplesDiskComponentFactory implements ILSMCom } @Override - public ILSMComponent createLSMComponentInstance(LSMComponentFileReferences cfr) throws IndexException, - HyracksDataException { + public LSMRTreeDiskComponent createComponent(LSMComponentFileReferences cfr) throws HyracksDataException { return new LSMRTreeDiskComponent(rtreeFactory.createIndexInstance(cfr.getInsertIndexFileReference()), null, - null, filterFactory == null ? null : filterFactory.createLSMComponentFilter()); - } - - @Override - public IBufferCache getBufferCache() { - return rtreeFactory.getBufferCache(); + null, filterFactory == null ? null : filterFactory.createFilter()); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d718dc4a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/RTreeFactory.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/RTreeFactory.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/RTreeFactory.java index 91fa813..8901c86 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/RTreeFactory.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/RTreeFactory.java @@ -24,7 +24,6 @@ import org.apache.hyracks.api.io.FileReference; import org.apache.hyracks.api.io.IIOManager; import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory; import org.apache.hyracks.storage.am.common.api.ITreeIndexFrameFactory; -import org.apache.hyracks.storage.am.common.api.IndexException; import org.apache.hyracks.storage.am.lsm.common.impls.TreeIndexFactory; import org.apache.hyracks.storage.am.rtree.impls.RTree; import org.apache.hyracks.storage.common.buffercache.IBufferCache; @@ -44,7 +43,7 @@ public class RTreeFactory extends TreeIndexFactory { } @Override - public RTree createIndexInstance(FileReference file) throws IndexException { + public RTree createIndexInstance(FileReference file) { return new RTree(bufferCache, fileMapProvider, freePageManagerFactory.createPageManager(bufferCache), interiorFrameFactory, leafFrameFactory, cmpFactories, fieldCount, file, isPointMBR); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d718dc4a/hyracks-fullstack/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/buffercache/IBufferCache.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/buffercache/IBufferCache.java b/hyracks-fullstack/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/buffercache/IBufferCache.java index 90273f4..a3fc0e2 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/buffercache/IBufferCache.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/buffercache/IBufferCache.java @@ -24,53 +24,53 @@ import org.apache.hyracks.api.replication.IIOReplicationManager; public interface IBufferCache { - long INVALID_DPID = -1l; + long INVALID_DPID = -1L; int INVALID_PAGEID = -1; int RESERVED_HEADER_BYTES = 8; - public void createFile(FileReference fileRef) throws HyracksDataException; + void createFile(FileReference fileRef) throws HyracksDataException; - public void openFile(int fileId) throws HyracksDataException; + void openFile(int fileId) throws HyracksDataException; - public void closeFile(int fileId) throws HyracksDataException; + void closeFile(int fileId) throws HyracksDataException; - public void deleteFile(int fileId, boolean flushDirtyPages) throws HyracksDataException; + void deleteFile(int fileId, boolean flushDirtyPages) throws HyracksDataException; - public ICachedPage tryPin(long dpid) throws HyracksDataException; + ICachedPage tryPin(long dpid) throws HyracksDataException; - public ICachedPage pin(long dpid, boolean newPage) throws HyracksDataException; + ICachedPage pin(long dpid, boolean newPage) throws HyracksDataException; - public void unpin(ICachedPage page) throws HyracksDataException; + void unpin(ICachedPage page) throws HyracksDataException; - public void flushDirtyPage(ICachedPage page) throws HyracksDataException; + void flushDirtyPage(ICachedPage page) throws HyracksDataException; - public void adviseWontNeed(ICachedPage page); + void adviseWontNeed(ICachedPage page); - public ICachedPage confiscatePage(long dpid) throws HyracksDataException; + ICachedPage confiscatePage(long dpid) throws HyracksDataException; - public ICachedPage confiscateLargePage(long dpid, int multiplier, int extraBlockPageId) throws HyracksDataException; + ICachedPage confiscateLargePage(long dpid, int multiplier, int extraBlockPageId) throws HyracksDataException; - public void returnPage(ICachedPage page); + void returnPage(ICachedPage page); - public void returnPage(ICachedPage page, boolean reinsert); + void returnPage(ICachedPage page, boolean reinsert); - public void force(int fileId, boolean metadata) throws HyracksDataException; + void force(int fileId, boolean metadata) throws HyracksDataException; int getPageSize(); int getPageSizeWithHeader(); - public int getNumPages(); + int getNumPages(); - public int getNumPagesOfFile(int fileId) throws HyracksDataException; + int getNumPagesOfFile(int fileId) throws HyracksDataException; - public int getFileReferenceCount(int fileId); + int getFileReferenceCount(int fileId); - public void close() throws HyracksDataException; + void close() throws HyracksDataException; - public IFIFOPageQueue createFIFOQueue(); + IFIFOPageQueue createFIFOQueue(); - public void finishQueue(); + void finishQueue(); void setPageDiskId(ICachedPage page, long dpid); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d718dc4a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/BTreeExamplesTest.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/BTreeExamplesTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/BTreeExamplesTest.java index dd4dbbb..6c6161f 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/BTreeExamplesTest.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/BTreeExamplesTest.java @@ -27,7 +27,6 @@ import org.apache.hyracks.storage.am.btree.util.BTreeTestHarness; import org.apache.hyracks.storage.am.btree.util.BTreeUtils; import org.apache.hyracks.storage.am.common.api.ITreeIndex; import org.apache.hyracks.storage.am.common.api.ITreeIndexMetadataFrameFactory; -import org.apache.hyracks.storage.am.common.api.TreeIndexException; import org.apache.hyracks.storage.am.common.frames.LIFOMetaDataFrameFactory; import org.apache.hyracks.storage.am.common.freepage.LinkedMetaDataPageManager; import org.junit.After; @@ -49,10 +48,10 @@ public class BTreeExamplesTest extends OrderedIndexExamplesTest { @Override protected ITreeIndex createTreeIndex(ITypeTraits[] typeTraits, IBinaryComparatorFactory[] cmpFactories, int[] bloomFilterKeyFields, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, - int[] btreeFields, int[] filterFields) throws TreeIndexException { + int[] btreeFields, int[] filterFields) throws HyracksDataException { ITreeIndexMetadataFrameFactory metaFrameFactory = new LIFOMetaDataFrameFactory(); - LinkedMetaDataPageManager freePageManager = new LinkedMetaDataPageManager(harness.getBufferCache(), - metaFrameFactory); + LinkedMetaDataPageManager freePageManager = + new LinkedMetaDataPageManager(harness.getBufferCache(), metaFrameFactory); return BTreeUtils.createBTree(harness.getBufferCache(), harness.getFileMapProvider(), typeTraits, cmpFactories, BTreeLeafFrameType.REGULAR_NSM, harness.getFileReference(), freePageManager); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d718dc4a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/multithread/BTreeMultiThreadTest.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/multithread/BTreeMultiThreadTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/multithread/BTreeMultiThreadTest.java index dcf7f09..fdc5e95 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/multithread/BTreeMultiThreadTest.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/multithread/BTreeMultiThreadTest.java @@ -32,7 +32,6 @@ import org.apache.hyracks.storage.am.common.IIndexTestWorkerFactory; import org.apache.hyracks.storage.am.common.TestOperationSelector.TestOperation; import org.apache.hyracks.storage.am.common.TestWorkloadConf; import org.apache.hyracks.storage.am.common.api.ITreeIndex; -import org.apache.hyracks.storage.am.common.api.TreeIndexException; import org.apache.hyracks.storage.am.common.datagen.ProbabilityHelper; public class BTreeMultiThreadTest extends OrderedIndexMultiThreadTest { @@ -52,10 +51,10 @@ public class BTreeMultiThreadTest extends OrderedIndexMultiThreadTest { @Override protected ITreeIndex createIndex(ITypeTraits[] typeTraits, IBinaryComparatorFactory[] cmpFactories, - int[] bloomFilterKeyFields) throws TreeIndexException { + int[] bloomFilterKeyFields) throws HyracksDataException { return BTreeUtils.createBTree(harness.getBufferCache(), harness.getFileMapProvider(), typeTraits, cmpFactories, - BTreeLeafFrameType.REGULAR_NSM, harness.getFileReference(), harness.getPageManagerFactory() - .createPageManager(harness.getBufferCache())); + BTreeLeafFrameType.REGULAR_NSM, harness.getFileReference(), + harness.getPageManagerFactory().createPageManager(harness.getBufferCache())); } @Override @@ -69,20 +68,20 @@ public class BTreeMultiThreadTest extends OrderedIndexMultiThreadTest { // Insert only workload. TestOperation[] insertOnlyOps = new TestOperation[] { TestOperation.INSERT }; - workloadConfs.add(new TestWorkloadConf(insertOnlyOps, ProbabilityHelper - .getUniformProbDist(insertOnlyOps.length))); + workloadConfs + .add(new TestWorkloadConf(insertOnlyOps, ProbabilityHelper.getUniformProbDist(insertOnlyOps.length))); // Inserts mixed with point searches and scans. TestOperation[] insertSearchOnlyOps = new TestOperation[] { TestOperation.INSERT, TestOperation.POINT_SEARCH, TestOperation.SCAN, TestOperation.DISKORDER_SCAN }; - workloadConfs.add(new TestWorkloadConf(insertSearchOnlyOps, ProbabilityHelper - .getUniformProbDist(insertSearchOnlyOps.length))); + workloadConfs.add(new TestWorkloadConf(insertSearchOnlyOps, + ProbabilityHelper.getUniformProbDist(insertSearchOnlyOps.length))); // Inserts, updates, deletes, and upserts. TestOperation[] insertDeleteUpdateUpsertOps = new TestOperation[] { TestOperation.INSERT, TestOperation.DELETE, TestOperation.UPDATE, TestOperation.UPSERT }; - workloadConfs.add(new TestWorkloadConf(insertDeleteUpdateUpsertOps, ProbabilityHelper - .getUniformProbDist(insertDeleteUpdateUpsertOps.length))); + workloadConfs.add(new TestWorkloadConf(insertDeleteUpdateUpsertOps, + ProbabilityHelper.getUniformProbDist(insertDeleteUpdateUpsertOps.length))); // All operations mixed. TestOperation[] allOps = new TestOperation[] { TestOperation.INSERT, TestOperation.DELETE, http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d718dc4a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-common-test/src/test/java/org/apache/hyracks/storage/am/lsm/common/DummyTreeFactory.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-common-test/src/test/java/org/apache/hyracks/storage/am/lsm/common/DummyTreeFactory.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-common-test/src/test/java/org/apache/hyracks/storage/am/lsm/common/DummyTreeFactory.java index e1810e3..dafd6b9 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-common-test/src/test/java/org/apache/hyracks/storage/am/lsm/common/DummyTreeFactory.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-common-test/src/test/java/org/apache/hyracks/storage/am/lsm/common/DummyTreeFactory.java @@ -21,7 +21,6 @@ package org.apache.hyracks.storage.am.lsm.common; import org.apache.hyracks.api.io.FileReference; import org.apache.hyracks.storage.am.common.api.ITreeIndex; -import org.apache.hyracks.storage.am.common.api.IndexException; import org.apache.hyracks.storage.am.lsm.common.impls.TreeIndexFactory; public class DummyTreeFactory extends TreeIndexFactory { @@ -31,7 +30,7 @@ public class DummyTreeFactory extends TreeIndexFactory { } @Override - public ITreeIndex createIndexInstance(FileReference file) throws IndexException { + public ITreeIndex createIndexInstance(FileReference file) { return null; }