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 C0134200CD2 for ; Wed, 21 Jun 2017 17:23:31 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id BEE0C160BD0; Wed, 21 Jun 2017 15:23:31 +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 CE04D160BF7 for ; Wed, 21 Jun 2017 17:23:29 +0200 (CEST) Received: (qmail 55103 invoked by uid 500); 21 Jun 2017 15:23:29 -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 54956 invoked by uid 99); 21 Jun 2017 15:23:28 -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; Wed, 21 Jun 2017 15:23:28 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id B4EDEDFF9F; Wed, 21 Jun 2017 15:23:28 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: buyingyi@apache.org To: commits@asterixdb.apache.org Date: Wed, 21 Jun 2017 15:23:31 -0000 Message-Id: <6b4105cdf24b41d4a1b6c4454b489c97@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [4/7] asterixdb git commit: [ASTERIXDB-1945][STO] Cleanup Buffer Cache API archived-at: Wed, 21 Jun 2017 15:23:31 -0000 http://git-wip-us.apache.org/repos/asf/asterixdb/blob/198ffbca/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/util/InvertedIndexUtils.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/util/InvertedIndexUtils.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/util/InvertedIndexUtils.java index 8a36f61..540e100 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/util/InvertedIndexUtils.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/util/InvertedIndexUtils.java @@ -59,7 +59,6 @@ import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.PartitionedOnDiskI import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.PartitionedOnDiskInvertedIndexFactory; import org.apache.hyracks.storage.am.lsm.invertedindex.tokenizers.IBinaryTokenizerFactory; import org.apache.hyracks.storage.common.buffercache.IBufferCache; -import org.apache.hyracks.storage.common.file.IFileMapProvider; public class InvertedIndexUtils { @@ -82,25 +81,23 @@ public class InvertedIndexUtils { } public static OnDiskInvertedIndex createOnDiskInvertedIndex(IIOManager ioManager, IBufferCache bufferCache, - IFileMapProvider fileMapProvider, ITypeTraits[] invListTypeTraits, - IBinaryComparatorFactory[] invListCmpFactories, ITypeTraits[] tokenTypeTraits, - IBinaryComparatorFactory[] tokenCmpFactories, FileReference invListsFile, + ITypeTraits[] invListTypeTraits, IBinaryComparatorFactory[] invListCmpFactories, + ITypeTraits[] tokenTypeTraits, IBinaryComparatorFactory[] tokenCmpFactories, FileReference invListsFile, IPageManagerFactory pageManagerFactory) throws HyracksDataException { IInvertedListBuilder builder = new FixedSizeElementInvertedListBuilder(invListTypeTraits); FileReference btreeFile = getBTreeFile(ioManager, invListsFile); - return new OnDiskInvertedIndex(bufferCache, fileMapProvider, builder, invListTypeTraits, invListCmpFactories, - tokenTypeTraits, tokenCmpFactories, btreeFile, invListsFile, pageManagerFactory); + return new OnDiskInvertedIndex(bufferCache, builder, invListTypeTraits, invListCmpFactories, tokenTypeTraits, + tokenCmpFactories, btreeFile, invListsFile, pageManagerFactory); } public static PartitionedOnDiskInvertedIndex createPartitionedOnDiskInvertedIndex(IIOManager ioManager, - IBufferCache bufferCache, IFileMapProvider fileMapProvider, ITypeTraits[] invListTypeTraits, - IBinaryComparatorFactory[] invListCmpFactories, ITypeTraits[] tokenTypeTraits, - IBinaryComparatorFactory[] tokenCmpFactories, FileReference invListsFile, + IBufferCache bufferCache, ITypeTraits[] invListTypeTraits, IBinaryComparatorFactory[] invListCmpFactories, + ITypeTraits[] tokenTypeTraits, IBinaryComparatorFactory[] tokenCmpFactories, FileReference invListsFile, IPageManagerFactory pageManagerFactory) throws HyracksDataException { IInvertedListBuilder builder = new FixedSizeElementInvertedListBuilder(invListTypeTraits); FileReference btreeFile = getBTreeFile(ioManager, invListsFile); - return new PartitionedOnDiskInvertedIndex(bufferCache, fileMapProvider, builder, invListTypeTraits, - invListCmpFactories, tokenTypeTraits, tokenCmpFactories, btreeFile, invListsFile, pageManagerFactory); + return new PartitionedOnDiskInvertedIndex(bufferCache, builder, invListTypeTraits, invListCmpFactories, + tokenTypeTraits, tokenCmpFactories, btreeFile, invListsFile, pageManagerFactory); } public static FileReference getBTreeFile(IIOManager ioManager, FileReference invListsFile) @@ -108,49 +105,46 @@ public class InvertedIndexUtils { return ioManager.resolveAbsolutePath(invListsFile.getFile().getPath() + "_btree"); } - public static BTreeFactory createDeletedKeysBTreeFactory(IIOManager ioManager, IFileMapProvider diskFileMapProvider, - ITypeTraits[] invListTypeTraits, IBinaryComparatorFactory[] invListCmpFactories, - IBufferCache diskBufferCache, IPageManagerFactory freePageManagerFactory) throws HyracksDataException { + public static BTreeFactory createDeletedKeysBTreeFactory(IIOManager ioManager, ITypeTraits[] invListTypeTraits, + IBinaryComparatorFactory[] invListCmpFactories, IBufferCache diskBufferCache, + IPageManagerFactory freePageManagerFactory) throws HyracksDataException { TypeAwareTupleWriterFactory tupleWriterFactory = new TypeAwareTupleWriterFactory(invListTypeTraits); ITreeIndexFrameFactory leafFrameFactory = BTreeUtils.getLeafFrameFactory(tupleWriterFactory, BTreeLeafFrameType.REGULAR_NSM); ITreeIndexFrameFactory interiorFrameFactory = new BTreeNSMInteriorFrameFactory(tupleWriterFactory); - BTreeFactory deletedKeysBTreeFactory = - new BTreeFactory(ioManager, diskBufferCache, diskFileMapProvider, freePageManagerFactory, - interiorFrameFactory, leafFrameFactory, invListCmpFactories, invListCmpFactories.length); - return deletedKeysBTreeFactory; + return new BTreeFactory(ioManager, diskBufferCache, freePageManagerFactory, interiorFrameFactory, + leafFrameFactory, invListCmpFactories, invListCmpFactories.length); } public static LSMInvertedIndex createLSMInvertedIndex(IIOManager ioManager, - List virtualBufferCaches, IFileMapProvider diskFileMapProvider, - ITypeTraits[] invListTypeTraits, IBinaryComparatorFactory[] invListCmpFactories, - ITypeTraits[] tokenTypeTraits, IBinaryComparatorFactory[] tokenCmpFactories, - IBinaryTokenizerFactory tokenizerFactory, IBufferCache diskBufferCache, String absoluteOnDiskDir, - double bloomFilterFalsePositiveRate, ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, - ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, int[] invertedIndexFields, - ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] filterFields, - int[] filterFieldsForNonBulkLoadOps, int[] invertedIndexFieldsForNonBulkLoadOps, boolean durable, - IMetadataPageManagerFactory pageManagerFactory) throws HyracksDataException { + List virtualBufferCaches, ITypeTraits[] invListTypeTraits, + IBinaryComparatorFactory[] invListCmpFactories, ITypeTraits[] tokenTypeTraits, + IBinaryComparatorFactory[] tokenCmpFactories, IBinaryTokenizerFactory tokenizerFactory, + IBufferCache diskBufferCache, String absoluteOnDiskDir, double bloomFilterFalsePositiveRate, + ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, + ILSMIOOperationCallback ioOpCallback, int[] invertedIndexFields, ITypeTraits[] filterTypeTraits, + IBinaryComparatorFactory[] filterCmpFactories, int[] filterFields, int[] filterFieldsForNonBulkLoadOps, + int[] invertedIndexFieldsForNonBulkLoadOps, boolean durable, IMetadataPageManagerFactory pageManagerFactory) + throws HyracksDataException { - BTreeFactory deletedKeysBTreeFactory = createDeletedKeysBTreeFactory(ioManager, diskFileMapProvider, - invListTypeTraits, invListCmpFactories, diskBufferCache, pageManagerFactory); + BTreeFactory deletedKeysBTreeFactory = createDeletedKeysBTreeFactory(ioManager, invListTypeTraits, + invListCmpFactories, diskBufferCache, pageManagerFactory); int[] bloomFilterKeyFields = new int[invListCmpFactories.length]; for (int i = 0; i < invListCmpFactories.length; i++) { bloomFilterKeyFields[i] = i; } - BloomFilterFactory bloomFilterFactory = - new BloomFilterFactory(diskBufferCache, diskFileMapProvider, bloomFilterKeyFields); + BloomFilterFactory bloomFilterFactory = new BloomFilterFactory(diskBufferCache, bloomFilterKeyFields); FileReference onDiskDirFileRef = ioManager.resolveAbsolutePath(absoluteOnDiskDir); - LSMInvertedIndexFileManager fileManager = new LSMInvertedIndexFileManager(ioManager, diskFileMapProvider, - onDiskDirFileRef, deletedKeysBTreeFactory); + LSMInvertedIndexFileManager fileManager = + new LSMInvertedIndexFileManager(ioManager, onDiskDirFileRef, deletedKeysBTreeFactory); IInvertedListBuilderFactory invListBuilderFactory = new FixedSizeElementInvertedListBuilderFactory(invListTypeTraits); - OnDiskInvertedIndexFactory invIndexFactory = new OnDiskInvertedIndexFactory(ioManager, diskBufferCache, - diskFileMapProvider, invListBuilderFactory, invListTypeTraits, invListCmpFactories, tokenTypeTraits, - tokenCmpFactories, fileManager, pageManagerFactory); + OnDiskInvertedIndexFactory invIndexFactory = + new OnDiskInvertedIndexFactory(ioManager, diskBufferCache, invListBuilderFactory, invListTypeTraits, + invListCmpFactories, tokenTypeTraits, tokenCmpFactories, fileManager, pageManagerFactory); ComponentFilterHelper filterHelper = null; LSMComponentFilterFrameFactory filterFrameFactory = null; @@ -163,42 +157,40 @@ public class InvertedIndexUtils { } return new LSMInvertedIndex(ioManager, virtualBufferCaches, invIndexFactory, deletedKeysBTreeFactory, bloomFilterFactory, filterHelper, filterFrameFactory, filterManager, bloomFilterFalsePositiveRate, - fileManager, diskFileMapProvider, invListTypeTraits, invListCmpFactories, tokenTypeTraits, - tokenCmpFactories, tokenizerFactory, mergePolicy, opTracker, ioScheduler, ioOpCallback, - invertedIndexFields, filterFields, filterFieldsForNonBulkLoadOps, invertedIndexFieldsForNonBulkLoadOps, - durable); + fileManager, invListTypeTraits, invListCmpFactories, tokenTypeTraits, tokenCmpFactories, + tokenizerFactory, mergePolicy, opTracker, ioScheduler, ioOpCallback, invertedIndexFields, filterFields, + filterFieldsForNonBulkLoadOps, invertedIndexFieldsForNonBulkLoadOps, durable); } public static PartitionedLSMInvertedIndex createPartitionedLSMInvertedIndex(IIOManager ioManager, - List virtualBufferCaches, IFileMapProvider diskFileMapProvider, - ITypeTraits[] invListTypeTraits, IBinaryComparatorFactory[] invListCmpFactories, - ITypeTraits[] tokenTypeTraits, IBinaryComparatorFactory[] tokenCmpFactories, - IBinaryTokenizerFactory tokenizerFactory, IBufferCache diskBufferCache, String absoluteOnDiskDir, - double bloomFilterFalsePositiveRate, ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, - ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, int[] invertedIndexFields, - ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] filterFields, - int[] filterFieldsForNonBulkLoadOps, int[] invertedIndexFieldsForNonBulkLoadOps, boolean durable, - IPageManagerFactory pageManagerFactory) throws HyracksDataException { + List virtualBufferCaches, ITypeTraits[] invListTypeTraits, + IBinaryComparatorFactory[] invListCmpFactories, ITypeTraits[] tokenTypeTraits, + IBinaryComparatorFactory[] tokenCmpFactories, IBinaryTokenizerFactory tokenizerFactory, + IBufferCache diskBufferCache, String absoluteOnDiskDir, double bloomFilterFalsePositiveRate, + ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, + ILSMIOOperationCallback ioOpCallback, int[] invertedIndexFields, ITypeTraits[] filterTypeTraits, + IBinaryComparatorFactory[] filterCmpFactories, int[] filterFields, int[] filterFieldsForNonBulkLoadOps, + int[] invertedIndexFieldsForNonBulkLoadOps, boolean durable, IPageManagerFactory pageManagerFactory) + throws HyracksDataException { - BTreeFactory deletedKeysBTreeFactory = createDeletedKeysBTreeFactory(ioManager, diskFileMapProvider, - invListTypeTraits, invListCmpFactories, diskBufferCache, pageManagerFactory); + BTreeFactory deletedKeysBTreeFactory = createDeletedKeysBTreeFactory(ioManager, invListTypeTraits, + invListCmpFactories, diskBufferCache, pageManagerFactory); int[] bloomFilterKeyFields = new int[invListCmpFactories.length]; for (int i = 0; i < invListCmpFactories.length; i++) { bloomFilterKeyFields[i] = i; } - BloomFilterFactory bloomFilterFactory = - new BloomFilterFactory(diskBufferCache, diskFileMapProvider, bloomFilterKeyFields); + BloomFilterFactory bloomFilterFactory = new BloomFilterFactory(diskBufferCache, bloomFilterKeyFields); FileReference onDiskDirFileRef = ioManager.resolveAbsolutePath(absoluteOnDiskDir); - LSMInvertedIndexFileManager fileManager = new LSMInvertedIndexFileManager(ioManager, diskFileMapProvider, - onDiskDirFileRef, deletedKeysBTreeFactory); + LSMInvertedIndexFileManager fileManager = + new LSMInvertedIndexFileManager(ioManager, onDiskDirFileRef, deletedKeysBTreeFactory); IInvertedListBuilderFactory invListBuilderFactory = new FixedSizeElementInvertedListBuilderFactory(invListTypeTraits); PartitionedOnDiskInvertedIndexFactory invIndexFactory = new PartitionedOnDiskInvertedIndexFactory(ioManager, - diskBufferCache, diskFileMapProvider, invListBuilderFactory, invListTypeTraits, invListCmpFactories, - tokenTypeTraits, tokenCmpFactories, fileManager, pageManagerFactory); + diskBufferCache, invListBuilderFactory, invListTypeTraits, invListCmpFactories, tokenTypeTraits, + tokenCmpFactories, fileManager, pageManagerFactory); ComponentFilterHelper filterHelper = null; LSMComponentFilterFrameFactory filterFrameFactory = null; @@ -211,9 +203,8 @@ public class InvertedIndexUtils { } return new PartitionedLSMInvertedIndex(ioManager, virtualBufferCaches, invIndexFactory, deletedKeysBTreeFactory, bloomFilterFactory, filterHelper, filterFrameFactory, filterManager, bloomFilterFalsePositiveRate, - fileManager, diskFileMapProvider, invListTypeTraits, invListCmpFactories, tokenTypeTraits, - tokenCmpFactories, tokenizerFactory, mergePolicy, opTracker, ioScheduler, ioOpCallback, - invertedIndexFields, filterFields, filterFieldsForNonBulkLoadOps, invertedIndexFieldsForNonBulkLoadOps, - durable); + fileManager, invListTypeTraits, invListCmpFactories, tokenTypeTraits, tokenCmpFactories, + tokenizerFactory, mergePolicy, opTracker, ioScheduler, ioOpCallback, invertedIndexFields, filterFields, + filterFieldsForNonBulkLoadOps, invertedIndexFieldsForNonBulkLoadOps, durable); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/198ffbca/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeLocalResource.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeLocalResource.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeLocalResource.java index 6139420..3acfe92 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeLocalResource.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeLocalResource.java @@ -67,9 +67,8 @@ public class ExternalRTreeLocalResource extends LSMRTreeLocalResource { IIOManager ioManager = ncServiceCtx.getIoManager(); FileReference fileRef = ioManager.resolve(path); return LSMRTreeUtils.createExternalRTree(ioManager, fileRef, storageManager.getBufferCache(ncServiceCtx), - storageManager.getFileMapProvider(ncServiceCtx), typeTraits, cmpFactories, btreeCmpFactories, - valueProviderFactories, rtreePolicyType, bloomFilterFalsePositiveRate, - mergePolicyFactory.createMergePolicy(mergePolicyProperties, ncServiceCtx), + typeTraits, cmpFactories, btreeCmpFactories, valueProviderFactories, rtreePolicyType, + bloomFilterFalsePositiveRate, mergePolicyFactory.createMergePolicy(mergePolicyProperties, ncServiceCtx), opTrackerProvider.getOperationTracker(ncServiceCtx), ioSchedulerProvider.getIoScheduler(ncServiceCtx), ioOpCallbackFactory.createIoOpCallback(), linearizeCmpFactory, buddyBTreeFields, durable, isPointMBR, metadataPageManagerFactory); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/198ffbca/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeLocalResource.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeLocalResource.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeLocalResource.java index 2eecb30..b272dbe 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeLocalResource.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeLocalResource.java @@ -84,9 +84,9 @@ public class LSMRTreeLocalResource extends LsmResource { FileReference fileRef = ioManager.resolve(path); List virtualBufferCaches = vbcProvider.getVirtualBufferCaches(ncServiceCtx, fileRef); return LSMRTreeUtils.createLSMTree(ioManager, virtualBufferCaches, fileRef, - storageManager.getBufferCache(ncServiceCtx), storageManager.getFileMapProvider(ncServiceCtx), - typeTraits, cmpFactories, btreeCmpFactories, valueProviderFactories, rtreePolicyType, - bloomFilterFalsePositiveRate, mergePolicyFactory.createMergePolicy(mergePolicyProperties, ncServiceCtx), + storageManager.getBufferCache(ncServiceCtx), typeTraits, cmpFactories, btreeCmpFactories, + valueProviderFactories, rtreePolicyType, bloomFilterFalsePositiveRate, + mergePolicyFactory.createMergePolicy(mergePolicyProperties, ncServiceCtx), opTrackerProvider.getOperationTracker(ncServiceCtx), ioSchedulerProvider.getIoScheduler(ncServiceCtx), ioOpCallbackFactory.createIoOpCallback(), linearizeCmpFactory, rtreeFields, buddyBTreeFields, filterTypeTraits, filterCmpFactories, filterFields, durable, isPointMBR, metadataPageManagerFactory); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/198ffbca/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeWithAntiMatterLocalResource.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeWithAntiMatterLocalResource.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeWithAntiMatterLocalResource.java index 429a1cd..78f1fd0 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeWithAntiMatterLocalResource.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeWithAntiMatterLocalResource.java @@ -79,8 +79,8 @@ public class LSMRTreeWithAntiMatterLocalResource extends LsmResource { FileReference file = ioManager.resolve(path); List virtualBufferCaches = vbcProvider.getVirtualBufferCaches(serviceCtx, file); return LSMRTreeUtils.createLSMTreeWithAntiMatterTuples(ioManager, virtualBufferCaches, file, - storageManager.getBufferCache(serviceCtx), storageManager.getFileMapProvider(serviceCtx), typeTraits, - cmpFactories, btreeComparatorFactories, valueProviderFactories, rtreePolicyType, + storageManager.getBufferCache(serviceCtx), typeTraits, cmpFactories, btreeComparatorFactories, + valueProviderFactories, rtreePolicyType, mergePolicyFactory.createMergePolicy(mergePolicyProperties, serviceCtx), opTrackerProvider.getOperationTracker(serviceCtx), ioSchedulerProvider.getIoScheduler(serviceCtx), ioOpCallbackFactory.createIoOpCallback(), linearizeCmpFactory, rtreeFields, filterTypeTraits, http://git-wip-us.apache.org/repos/asf/asterixdb/blob/198ffbca/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java index 444fd9d..4f29c89 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java @@ -56,7 +56,6 @@ import org.apache.hyracks.storage.common.IModificationOperationCallback; import org.apache.hyracks.storage.common.ISearchOperationCallback; import org.apache.hyracks.storage.common.ISearchPredicate; import org.apache.hyracks.storage.common.buffercache.IBufferCache; -import org.apache.hyracks.storage.common.file.IFileMapProvider; public abstract class AbstractLSMRTree extends AbstractLSMIndex implements ITreeIndex { @@ -81,27 +80,24 @@ public abstract class AbstractLSMRTree extends AbstractLSMIndex implements ITree public AbstractLSMRTree(IIOManager ioManager, List virtualBufferCaches, ITreeIndexFrameFactory rtreeInteriorFrameFactory, ITreeIndexFrameFactory rtreeLeafFrameFactory, ITreeIndexFrameFactory btreeInteriorFrameFactory, ITreeIndexFrameFactory btreeLeafFrameFactory, - ILSMIndexFileManager fileManager, ILSMDiskComponentFactory componentFactory, - IFileMapProvider diskFileMapProvider, int fieldCount, IBinaryComparatorFactory[] rtreeCmpFactories, - IBinaryComparatorFactory[] btreeCmpFactories, ILinearizeComparatorFactory linearizer, - int[] comparatorFields, IBinaryComparatorFactory[] linearizerArray, double bloomFilterFalsePositiveRate, - ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, - ILSMIOOperationCallback ioOpCallback, IComponentFilterHelper filterHelper, - ILSMComponentFilterFrameFactory filterFrameFactory, LSMComponentFilterManager filterManager, - int[] rtreeFields, int[] filterFields, boolean durable, boolean isPointMBR, IBufferCache diskBufferCache) - throws HyracksDataException { - super(ioManager, virtualBufferCaches, diskBufferCache, fileManager, diskFileMapProvider, - bloomFilterFalsePositiveRate, mergePolicy, opTracker, ioScheduler, ioOpCallback, filterFrameFactory, - filterManager, filterFields, durable, filterHelper, rtreeFields); + ILSMIndexFileManager fileManager, ILSMDiskComponentFactory componentFactory, int fieldCount, + IBinaryComparatorFactory[] rtreeCmpFactories, IBinaryComparatorFactory[] btreeCmpFactories, + ILinearizeComparatorFactory linearizer, int[] comparatorFields, IBinaryComparatorFactory[] linearizerArray, + double bloomFilterFalsePositiveRate, ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, + ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, + IComponentFilterHelper filterHelper, ILSMComponentFilterFrameFactory filterFrameFactory, + LSMComponentFilterManager filterManager, int[] rtreeFields, int[] filterFields, boolean durable, + boolean isPointMBR, IBufferCache diskBufferCache) throws HyracksDataException { + super(ioManager, virtualBufferCaches, diskBufferCache, fileManager, bloomFilterFalsePositiveRate, mergePolicy, + opTracker, ioScheduler, ioOpCallback, filterFrameFactory, filterManager, filterFields, durable, + filterHelper, rtreeFields); int i = 0; for (IVirtualBufferCache virtualBufferCache : virtualBufferCaches) { - RTree memRTree = new RTree(virtualBufferCache, virtualBufferCache.getFileMapProvider(), - new VirtualFreePageManager(virtualBufferCache), rtreeInteriorFrameFactory, rtreeLeafFrameFactory, - rtreeCmpFactories, fieldCount, + RTree memRTree = new RTree(virtualBufferCache, new VirtualFreePageManager(virtualBufferCache), + rtreeInteriorFrameFactory, rtreeLeafFrameFactory, rtreeCmpFactories, fieldCount, ioManager.resolveAbsolutePath(fileManager.getBaseDir() + "_virtual_r_" + i), isPointMBR); - BTree memBTree = new BTree(virtualBufferCache, virtualBufferCache.getFileMapProvider(), - new VirtualFreePageManager(virtualBufferCache), btreeInteriorFrameFactory, btreeLeafFrameFactory, - btreeCmpFactories, btreeCmpFactories.length, + BTree memBTree = new BTree(virtualBufferCache, new VirtualFreePageManager(virtualBufferCache), + btreeInteriorFrameFactory, btreeLeafFrameFactory, btreeCmpFactories, btreeCmpFactories.length, ioManager.resolveAbsolutePath(fileManager.getBaseDir() + "_virtual_b_" + i)); LSMRTreeMemoryComponent mutableComponent = new LSMRTreeMemoryComponent(memRTree, memBTree, virtualBufferCache, i == 0 ? true : false, @@ -129,14 +125,13 @@ public abstract class AbstractLSMRTree extends AbstractLSMIndex implements ITree public AbstractLSMRTree(IIOManager ioManager, ITreeIndexFrameFactory rtreeInteriorFrameFactory, ITreeIndexFrameFactory rtreeLeafFrameFactory, ITreeIndexFrameFactory btreeInteriorFrameFactory, ITreeIndexFrameFactory btreeLeafFrameFactory, ILSMIndexFileManager fileManager, - ILSMDiskComponentFactory componentFactory, IFileMapProvider diskFileMapProvider, - IBinaryComparatorFactory[] rtreeCmpFactories, IBinaryComparatorFactory[] btreeCmpFactories, - ILinearizeComparatorFactory linearizer, int[] comparatorFields, IBinaryComparatorFactory[] linearizerArray, - double bloomFilterFalsePositiveRate, ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, - ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, boolean durable, - boolean isPointMBR, IBufferCache diskBufferCache) { - super(ioManager, diskBufferCache, fileManager, diskFileMapProvider, bloomFilterFalsePositiveRate, mergePolicy, - opTracker, ioScheduler, ioOpCallback, durable); + ILSMDiskComponentFactory componentFactory, IBinaryComparatorFactory[] rtreeCmpFactories, + IBinaryComparatorFactory[] btreeCmpFactories, ILinearizeComparatorFactory linearizer, + int[] comparatorFields, IBinaryComparatorFactory[] linearizerArray, double bloomFilterFalsePositiveRate, + ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, + ILSMIOOperationCallback ioOpCallback, boolean durable, boolean isPointMBR, IBufferCache diskBufferCache) { + super(ioManager, diskBufferCache, fileManager, bloomFilterFalsePositiveRate, mergePolicy, opTracker, + ioScheduler, ioOpCallback, durable); this.rtreeInteriorFrameFactory = rtreeInteriorFrameFactory; this.rtreeLeafFrameFactory = rtreeLeafFrameFactory; this.btreeInteriorFrameFactory = btreeInteriorFrameFactory; @@ -329,13 +324,6 @@ public abstract class AbstractLSMRTree extends AbstractLSMIndex implements ITree } @Override - protected void destroyMemoryComponent(ILSMMemoryComponent c) throws HyracksDataException { - LSMRTreeMemoryComponent mutableComponent = (LSMRTreeMemoryComponent) c; - mutableComponent.getRTree().destroy(); - mutableComponent.getBTree().destroy(); - } - - @Override protected LSMComponentFileReferences getMergeFileReferences(ILSMDiskComponent firstComponent, ILSMDiskComponent lastComponent) throws HyracksDataException { RTree firstTree = ((LSMRTreeDiskComponent) firstComponent).getRTree(); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/198ffbca/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/ExternalRTree.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/ExternalRTree.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/ExternalRTree.java index 987aec7..512e35c 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/ExternalRTree.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/ExternalRTree.java @@ -62,7 +62,6 @@ import org.apache.hyracks.storage.common.IIndexCursor; import org.apache.hyracks.storage.common.IModificationOperationCallback; import org.apache.hyracks.storage.common.ISearchOperationCallback; import org.apache.hyracks.storage.common.ISearchPredicate; -import org.apache.hyracks.storage.common.file.IFileMapProvider; /** * This is an lsm r-tree that does not have memory component and is modified @@ -86,17 +85,16 @@ public class ExternalRTree extends LSMRTree implements ITwoPCIndex { 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) { + BloomFilterFactory bloomFilterFactory, double bloomFilterFalsePositiveRate, 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) { super(ioManager, rtreeInteriorFrameFactory, rtreeLeafFrameFactory, btreeInteriorFrameFactory, btreeLeafFrameFactory, fileNameManager, diskRTreeFactory, diskBTreeFactory, bloomFilterFactory, - bloomFilterFalsePositiveRate, diskFileMapProvider, rtreeCmpFactories, btreeCmpFactories, linearizer, - comparatorFields, linearizerArray, mergePolicy, opTracker, ioScheduler, ioOpCallback, buddyBTreeFields, - durable, isPointMBR); + bloomFilterFalsePositiveRate, rtreeCmpFactories, btreeCmpFactories, linearizer, comparatorFields, + linearizerArray, mergePolicy, opTracker, ioScheduler, ioOpCallback, buddyBTreeFields, durable, + isPointMBR); this.secondDiskComponents = new LinkedList<>(); this.fieldCount = fieldCount; } @@ -345,25 +343,12 @@ public class ExternalRTree extends LSMRTree implements ITwoPCIndex { cb.afterFinalize(LSMOperationType.FLUSH, null); } - for (ILSMComponent c : diskComponents) { - LSMRTreeDiskComponent component = (LSMRTreeDiskComponent) c; - RTree rtree = component.getRTree(); - BTree btree = component.getBTree(); - BloomFilter bloomFilter = component.getBloomFilter(); - rtree.deactivateCloseHandle(); - btree.deactivateCloseHandle(); - bloomFilter.deactivate(); + for (ILSMDiskComponent c : diskComponents) { + deactivateDiskComponent(c); } - for (ILSMComponent c : secondDiskComponents) { - // Only deactivate non shared components + for (ILSMDiskComponent c : secondDiskComponents) { if (!diskComponents.contains(c)) { - LSMRTreeDiskComponent component = (LSMRTreeDiskComponent) c; - RTree rtree = component.getRTree(); - BTree btree = component.getBTree(); - BloomFilter bloomFilter = component.getBloomFilter(); - rtree.deactivateCloseHandle(); - btree.deactivateCloseHandle(); - bloomFilter.deactivate(); + deactivateDiskComponent(c); } } isActive = false; @@ -410,19 +395,13 @@ public class ExternalRTree extends LSMRTree implements ITwoPCIndex { if (isActive) { throw new HyracksDataException("Failed to destroy the index since it is activated."); } - for (ILSMComponent c : diskComponents) { - LSMRTreeDiskComponent component = (LSMRTreeDiskComponent) c; - component.getRTree().destroy(); - component.getBTree().destroy(); - component.getBloomFilter().destroy(); + for (ILSMDiskComponent c : diskComponents) { + destroyDiskComponent(c); // Remove from second list to avoid destroying twice secondDiskComponents.remove(c); } - for (ILSMComponent c : secondDiskComponents) { - LSMRTreeDiskComponent component = (LSMRTreeDiskComponent) c; - component.getRTree().destroy(); - component.getBTree().destroy(); - component.getBloomFilter().destroy(); + for (ILSMDiskComponent c : secondDiskComponents) { + destroyDiskComponent(c); } diskComponents.clear(); secondDiskComponents.clear(); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/198ffbca/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 f295f5b..07d48de 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 @@ -73,7 +73,6 @@ import org.apache.hyracks.storage.common.IModificationOperationCallback; import org.apache.hyracks.storage.common.ISearchOperationCallback; import org.apache.hyracks.storage.common.ISearchPredicate; import org.apache.hyracks.storage.common.MultiComparator; -import org.apache.hyracks.storage.common.file.IFileMapProvider; public class LSMRTree extends AbstractLSMRTree { protected final int[] buddyBTreeFields; @@ -84,19 +83,18 @@ public class LSMRTree extends AbstractLSMRTree { ILSMIndexFileManager fileNameManager, TreeIndexFactory diskRTreeFactory, TreeIndexFactory diskBTreeFactory, BloomFilterFactory bloomFilterFactory, IComponentFilterHelper filterHelper, 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 { + LSMComponentFilterManager filterManager, double bloomFilterFalsePositiveRate, 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, filterHelper), - diskFileMapProvider, fieldCount, rtreeCmpFactories, btreeCmpFactories, linearizer, comparatorFields, - linearizerArray, bloomFilterFalsePositiveRate, mergePolicy, opTracker, ioScheduler, ioOpCallback, - filterHelper, filterFrameFactory, filterManager, rtreeFields, filterFields, durable, isPointMBR, + fieldCount, rtreeCmpFactories, btreeCmpFactories, linearizer, comparatorFields, linearizerArray, + bloomFilterFalsePositiveRate, mergePolicy, opTracker, ioScheduler, ioOpCallback, filterHelper, + filterFrameFactory, filterManager, rtreeFields, filterFields, durable, isPointMBR, diskRTreeFactory.getBufferCache()); this.buddyBTreeFields = buddyBTreeFields; } @@ -109,17 +107,16 @@ public class LSMRTree extends AbstractLSMRTree { 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) { + 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, new LSMRTreeDiskComponentFactory(diskRTreeFactory, diskBTreeFactory, bloomFilterFactory, null), - diskFileMapProvider, rtreeCmpFactories, btreeCmpFactories, linearizer, comparatorFields, - linearizerArray, bloomFilterFalsePositiveRate, mergePolicy, opTracker, ioScheduler, ioOpCallback, - durable, isPointMBR, diskRTreeFactory.getBufferCache()); + rtreeCmpFactories, btreeCmpFactories, linearizer, comparatorFields, linearizerArray, + bloomFilterFalsePositiveRate, mergePolicy, opTracker, ioScheduler, ioOpCallback, durable, isPointMBR, + diskRTreeFactory.getBufferCache()); this.buddyBTreeFields = buddyBTreeFields; } @@ -137,9 +134,12 @@ public class LSMRTree extends AbstractLSMRTree { RTree rtree = component.getRTree(); BTree btree = component.getBTree(); BloomFilter bloomFilter = component.getBloomFilter(); - rtree.deactivateCloseHandle(); - btree.deactivateCloseHandle(); + rtree.deactivate(); + btree.deactivate(); bloomFilter.deactivate(); + rtree.purge(); + btree.purge(); + bloomFilter.purge(); } @Override http://git-wip-us.apache.org/repos/asf/asterixdb/blob/198ffbca/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFileManager.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFileManager.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFileManager.java index f9ee5c9..4d5eb5b 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFileManager.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFileManager.java @@ -37,11 +37,8 @@ import org.apache.hyracks.storage.am.common.api.ITreeIndex; import org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMIndexFileManager; 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.common.file.IFileMapProvider; public class LSMRTreeFileManager extends AbstractLSMIndexFileManager { - public static final String RTREE_STRING = "r"; - public static final String BTREE_STRING = "b"; private final TreeIndexFactory rtreeFactory; private final TreeIndexFactory btreeFactory; @@ -49,20 +46,20 @@ public class LSMRTreeFileManager extends AbstractLSMIndexFileManager { private static FilenameFilter btreeFilter = new FilenameFilter() { @Override public boolean accept(File dir, String name) { - return !name.startsWith(".") && name.endsWith(BTREE_STRING); + return !name.startsWith(".") && name.endsWith(BTREE_SUFFIX); } }; private static FilenameFilter rtreeFilter = new FilenameFilter() { @Override public boolean accept(File dir, String name) { - return !name.startsWith(".") && name.endsWith(RTREE_STRING); + return !name.startsWith(".") && name.endsWith(RTREE_SUFFIX); } }; - public LSMRTreeFileManager(IIOManager ioManager, IFileMapProvider fileMapProvider, FileReference file, + public LSMRTreeFileManager(IIOManager ioManager, FileReference file, TreeIndexFactory rtreeFactory, TreeIndexFactory btreeFactory) { - super(ioManager, fileMapProvider, file, null); + super(ioManager, file, null); this.rtreeFactory = rtreeFactory; this.btreeFactory = btreeFactory; } @@ -70,25 +67,25 @@ public class LSMRTreeFileManager extends AbstractLSMIndexFileManager { @Override public LSMComponentFileReferences getRelFlushFileReference() throws HyracksDataException { String ts = getCurrentTimestamp(); - String baseName = baseDir + ts + SPLIT_STRING + ts; + String baseName = baseDir + ts + DELIMITER + ts; // Begin timestamp and end timestamp are identical since it is a flush - return new LSMComponentFileReferences(createFlushFile(baseName + SPLIT_STRING + RTREE_STRING), - createFlushFile(baseName + SPLIT_STRING + BTREE_STRING), - createFlushFile(baseName + SPLIT_STRING + BLOOM_FILTER_STRING)); + return new LSMComponentFileReferences(createFlushFile(baseName + DELIMITER + RTREE_SUFFIX), + createFlushFile(baseName + DELIMITER + BTREE_SUFFIX), + createFlushFile(baseName + DELIMITER + BLOOM_FILTER_SUFFIX)); } @Override public LSMComponentFileReferences getRelMergeFileReference(String firstFileName, String lastFileName) throws HyracksDataException { - String[] firstTimestampRange = firstFileName.split(SPLIT_STRING); - String[] lastTimestampRange = lastFileName.split(SPLIT_STRING); + String[] firstTimestampRange = firstFileName.split(DELIMITER); + String[] lastTimestampRange = lastFileName.split(DELIMITER); - String baseName = baseDir + firstTimestampRange[0] + SPLIT_STRING + lastTimestampRange[1]; + String baseName = baseDir + firstTimestampRange[0] + DELIMITER + lastTimestampRange[1]; // Get the range of timestamps by taking the earliest and the latest // timestamps - return new LSMComponentFileReferences(createMergeFile(baseName + SPLIT_STRING + RTREE_STRING), - createMergeFile(baseName + SPLIT_STRING + BTREE_STRING), - createMergeFile(baseName + SPLIT_STRING + BLOOM_FILTER_STRING)); + return new LSMComponentFileReferences(createMergeFile(baseName + DELIMITER + RTREE_SUFFIX), + createMergeFile(baseName + DELIMITER + BTREE_SUFFIX), + createMergeFile(baseName + DELIMITER + BLOOM_FILTER_SUFFIX)); } @Override @@ -105,7 +102,7 @@ public class LSMRTreeFileManager extends AbstractLSMIndexFileManager { cleanupAndGetValidFilesInternal(getCompoundFilter(transactionFilter, btreeFilter), btreeFactory, allBTreeFiles); HashSet btreeFilesSet = new HashSet<>(); for (ComparableFileName cmpFileName : allBTreeFiles) { - int index = cmpFileName.fileName.lastIndexOf(SPLIT_STRING); + int index = cmpFileName.fileName.lastIndexOf(DELIMITER); btreeFilesSet.add(cmpFileName.fileName.substring(0, index)); } validateFiles(btreeFilesSet, allRTreeFiles, getCompoundFilter(transactionFilter, rtreeFilter), rtreeFactory); @@ -203,19 +200,19 @@ public class LSMRTreeFileManager extends AbstractLSMIndexFileManager { public LSMComponentFileReferences getNewTransactionFileReference() throws IOException { String ts = getCurrentTimestamp(); // Create transaction lock file - Files.createFile(Paths.get(baseDir + TRANSACTION_PREFIX + ts)); + Files.createFile(Paths.get(baseDir + TXN_PREFIX + ts)); - String baseName = baseDir + ts + SPLIT_STRING + ts; - return new LSMComponentFileReferences(createFlushFile(baseName + SPLIT_STRING + RTREE_STRING), - createFlushFile(baseName + SPLIT_STRING + BTREE_STRING), - createFlushFile(baseName + SPLIT_STRING + BLOOM_FILTER_STRING)); + String baseName = baseDir + ts + DELIMITER + ts; + return new LSMComponentFileReferences(createFlushFile(baseName + DELIMITER + RTREE_SUFFIX), + createFlushFile(baseName + DELIMITER + BTREE_SUFFIX), + createFlushFile(baseName + DELIMITER + BLOOM_FILTER_SUFFIX)); } @Override public LSMComponentFileReferences getTransactionFileReferenceForCommit() throws HyracksDataException { FilenameFilter transactionFilter; File dir = new File(baseDir); - String[] files = dir.list(transactionFileNameFilter); + String[] files = dir.list(txnFileNameFilter); if (files.length == 0) { return null; } @@ -239,11 +236,11 @@ public class LSMRTreeFileManager extends AbstractLSMIndexFileManager { File bTreeFile = null; File bloomFilterFile = null; for (String fileName : files) { - if (fileName.endsWith(BTREE_STRING)) { + if (fileName.endsWith(BTREE_SUFFIX)) { bTreeFile = new File(dir.getPath() + File.separator + fileName); - } else if (fileName.endsWith(RTREE_STRING)) { + } else if (fileName.endsWith(RTREE_SUFFIX)) { rTreeFile = new File(dir.getPath() + File.separator + fileName); - } else if (fileName.endsWith(BLOOM_FILTER_STRING)) { + } else if (fileName.endsWith(BLOOM_FILTER_SUFFIX)) { bloomFilterFile = new File(dir.getPath() + File.separator + fileName); } else { throw new HyracksDataException("unrecognized file found = " + fileName); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/198ffbca/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 19f0ca0..2b61f1e 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 @@ -69,7 +69,6 @@ import org.apache.hyracks.storage.common.IModificationOperationCallback; import org.apache.hyracks.storage.common.ISearchOperationCallback; import org.apache.hyracks.storage.common.ISearchPredicate; import org.apache.hyracks.storage.common.MultiComparator; -import org.apache.hyracks.storage.common.file.IFileMapProvider; public class LSMRTreeWithAntiMatterTuples extends AbstractLSMRTree { private static final ICursorFactory cursorFactory = opCtx -> new LSMRTreeWithAntiMatterTuplesSearchCursor(opCtx); @@ -83,19 +82,18 @@ public class LSMRTreeWithAntiMatterTuples extends AbstractLSMRTree { ITreeIndexFrameFactory btreeInteriorFrameFactory, ITreeIndexFrameFactory btreeLeafFrameFactory, ILSMIndexFileManager fileManager, TreeIndexFactory diskRTreeFactory, TreeIndexFactory bulkLoadRTreeFactory, IComponentFilterHelper filterHelper, - ILSMComponentFilterFrameFactory filterFrameFactory, LSMComponentFilterManager filterManager, - IFileMapProvider diskFileMapProvider, int fieldCount, IBinaryComparatorFactory[] rtreeCmpFactories, - IBinaryComparatorFactory[] btreeComparatorFactories, ILinearizeComparatorFactory linearizer, - int[] comparatorFields, IBinaryComparatorFactory[] linearizerArray, ILSMMergePolicy mergePolicy, - ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, - int[] rtreeFields, int[] filterFields, boolean durable, boolean isPointMBR) throws HyracksDataException { + ILSMComponentFilterFrameFactory filterFrameFactory, LSMComponentFilterManager filterManager, int fieldCount, + IBinaryComparatorFactory[] rtreeCmpFactories, IBinaryComparatorFactory[] btreeComparatorFactories, + ILinearizeComparatorFactory linearizer, int[] comparatorFields, IBinaryComparatorFactory[] linearizerArray, + ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, + ILSMIOOperationCallback ioOpCallback, int[] rtreeFields, int[] filterFields, boolean durable, + boolean isPointMBR) throws HyracksDataException { super(ioManager, virtualBufferCaches, rtreeInteriorFrameFactory, rtreeLeafFrameFactory, btreeInteriorFrameFactory, btreeLeafFrameFactory, fileManager, - new LSMRTreeWithAntiMatterTuplesDiskComponentFactory(diskRTreeFactory, filterHelper), - diskFileMapProvider, fieldCount, rtreeCmpFactories, btreeComparatorFactories, linearizer, - comparatorFields, linearizerArray, 0, mergePolicy, opTracker, ioScheduler, ioOpCallback, filterHelper, - filterFrameFactory, filterManager, rtreeFields, filterFields, durable, isPointMBR, - diskRTreeFactory.getBufferCache()); + new LSMRTreeWithAntiMatterTuplesDiskComponentFactory(diskRTreeFactory, filterHelper), fieldCount, + rtreeCmpFactories, btreeComparatorFactories, linearizer, comparatorFields, linearizerArray, 0, + mergePolicy, opTracker, ioScheduler, ioOpCallback, filterHelper, filterFrameFactory, filterManager, + rtreeFields, filterFields, durable, isPointMBR, diskRTreeFactory.getBufferCache()); bulkLoaComponentFactory = new LSMRTreeWithAntiMatterTuplesDiskComponentFactory(bulkLoadRTreeFactory, filterHelper); } @@ -108,7 +106,8 @@ public class LSMRTreeWithAntiMatterTuples extends AbstractLSMRTree { @Override protected void deactivateDiskComponent(ILSMDiskComponent c) throws HyracksDataException { RTree rtree = ((LSMRTreeDiskComponent) c).getRTree(); - rtree.deactivateCloseHandle(); + rtree.deactivate(); + rtree.purge(); } @Override http://git-wip-us.apache.org/repos/asf/asterixdb/blob/198ffbca/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeWithAntiMatterTuplesFileManager.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeWithAntiMatterTuplesFileManager.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeWithAntiMatterTuplesFileManager.java index fd1aa71..e39033f 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeWithAntiMatterTuplesFileManager.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeWithAntiMatterTuplesFileManager.java @@ -24,13 +24,11 @@ import org.apache.hyracks.api.io.IIOManager; import org.apache.hyracks.storage.am.common.api.ITreeIndex; import org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMIndexFileManager; import org.apache.hyracks.storage.am.lsm.common.impls.TreeIndexFactory; -import org.apache.hyracks.storage.common.file.IFileMapProvider; public class LSMRTreeWithAntiMatterTuplesFileManager extends AbstractLSMIndexFileManager { - public LSMRTreeWithAntiMatterTuplesFileManager(IIOManager ioManager, IFileMapProvider fileMapProvider, - FileReference file, + public LSMRTreeWithAntiMatterTuplesFileManager(IIOManager ioManager, FileReference file, TreeIndexFactory rtreeFactory) { - super(ioManager, fileMapProvider, file, rtreeFactory); + super(ioManager, file, rtreeFactory); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/198ffbca/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 8901c86..55e70b2 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 @@ -27,25 +27,24 @@ import org.apache.hyracks.storage.am.common.api.ITreeIndexFrameFactory; 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; -import org.apache.hyracks.storage.common.file.IFileMapProvider; public class RTreeFactory extends TreeIndexFactory { private final boolean isPointMBR; - public RTreeFactory(IIOManager ioManager, IBufferCache bufferCache, IFileMapProvider fileMapProvider, + public RTreeFactory(IIOManager ioManager, IBufferCache bufferCache, IMetadataPageManagerFactory freePageManagerFactory, ITreeIndexFrameFactory interiorFrameFactory, ITreeIndexFrameFactory leafFrameFactory, IBinaryComparatorFactory[] cmpFactories, int fieldCount, boolean isPointMBR) { - super(ioManager, bufferCache, fileMapProvider, freePageManagerFactory, interiorFrameFactory, leafFrameFactory, - cmpFactories, fieldCount); + super(ioManager, bufferCache, freePageManagerFactory, interiorFrameFactory, leafFrameFactory, cmpFactories, + fieldCount); this.isPointMBR = isPointMBR; } @Override public RTree createIndexInstance(FileReference file) { - return new RTree(bufferCache, fileMapProvider, freePageManagerFactory.createPageManager(bufferCache), - interiorFrameFactory, leafFrameFactory, cmpFactories, fieldCount, file, isPointMBR); + return new RTree(bufferCache, freePageManagerFactory.createPageManager(bufferCache), interiorFrameFactory, + leafFrameFactory, cmpFactories, fieldCount, file, isPointMBR); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/198ffbca/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/utils/LSMRTreeUtils.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/utils/LSMRTreeUtils.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/utils/LSMRTreeUtils.java index e37fa4a..48cd589 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/utils/LSMRTreeUtils.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/utils/LSMRTreeUtils.java @@ -68,15 +68,14 @@ import org.apache.hyracks.storage.am.rtree.linearize.HilbertDoubleComparatorFact import org.apache.hyracks.storage.am.rtree.linearize.ZCurveDoubleComparatorFactory; import org.apache.hyracks.storage.am.rtree.linearize.ZCurveIntComparatorFactory; import org.apache.hyracks.storage.common.buffercache.IBufferCache; -import org.apache.hyracks.storage.common.file.IFileMapProvider; public class LSMRTreeUtils { public static LSMRTree createLSMTree(IIOManager ioManager, List virtualBufferCaches, - FileReference file, IBufferCache diskBufferCache, IFileMapProvider diskFileMapProvider, - ITypeTraits[] typeTraits, IBinaryComparatorFactory[] rtreeCmpFactories, - IBinaryComparatorFactory[] btreeCmpFactories, IPrimitiveValueProviderFactory[] valueProviderFactories, - RTreePolicyType rtreePolicyType, double bloomFilterFalsePositiveRate, ILSMMergePolicy mergePolicy, - ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, + FileReference file, IBufferCache diskBufferCache, ITypeTraits[] typeTraits, + IBinaryComparatorFactory[] rtreeCmpFactories, IBinaryComparatorFactory[] btreeCmpFactories, + IPrimitiveValueProviderFactory[] valueProviderFactories, RTreePolicyType rtreePolicyType, + double bloomFilterFalsePositiveRate, ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, + ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, ILinearizeComparatorFactory linearizeCmpFactory, int[] rtreeFields, int[] buddyBTreeFields, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] filterFields, boolean durable, boolean isPointMBR, IMetadataPageManagerFactory freePageManagerFactory) @@ -104,12 +103,10 @@ public class LSMRTreeUtils { valueProviderFactories, rtreePolicyType, isPointMBR); ITreeIndexFrameFactory btreeInteriorFrameFactory = new BTreeNSMInteriorFrameFactory(btreeTupleWriterFactory); ITreeIndexFrameFactory btreeLeafFrameFactory = new BTreeNSMLeafFrameFactory(btreeTupleWriterFactory); - TreeIndexFactory diskRTreeFactory = new RTreeFactory(ioManager, diskBufferCache, diskFileMapProvider, - freePageManagerFactory, rtreeInteriorFrameFactory, rtreeLeafFrameFactory, rtreeCmpFactories, - typeTraits.length, isPointMBR); - TreeIndexFactory diskBTreeFactory = - new BTreeFactory(ioManager, diskBufferCache, diskFileMapProvider, freePageManagerFactory, - btreeInteriorFrameFactory, btreeLeafFrameFactory, btreeCmpFactories, btreeTypeTraits.length); + TreeIndexFactory diskRTreeFactory = new RTreeFactory(ioManager, diskBufferCache, freePageManagerFactory, + rtreeInteriorFrameFactory, rtreeLeafFrameFactory, rtreeCmpFactories, typeTraits.length, isPointMBR); + TreeIndexFactory diskBTreeFactory = new BTreeFactory(ioManager, diskBufferCache, freePageManagerFactory, + btreeInteriorFrameFactory, btreeLeafFrameFactory, btreeCmpFactories, btreeTypeTraits.length); int[] comparatorFields = { 0 }; IBinaryComparatorFactory[] linearizerArray = { linearizeCmpFactory }; @@ -118,8 +115,7 @@ public class LSMRTreeUtils { for (int i = 0; i < btreeCmpFactories.length; i++) { bloomFilterKeyFields[i] = i; } - BloomFilterFactory bloomFilterFactory = - new BloomFilterFactory(diskBufferCache, diskFileMapProvider, bloomFilterKeyFields); + BloomFilterFactory bloomFilterFactory = new BloomFilterFactory(diskBufferCache, bloomFilterKeyFields); ComponentFilterHelper filterHelper = null; LSMComponentFilterFrameFactory filterFrameFactory = null; @@ -131,19 +127,19 @@ public class LSMRTreeUtils { filterManager = new LSMComponentFilterManager(filterFrameFactory); } ILSMIndexFileManager fileNameManager = - new LSMRTreeFileManager(ioManager, diskFileMapProvider, file, diskRTreeFactory, diskBTreeFactory); + new LSMRTreeFileManager(ioManager, file, diskRTreeFactory, diskBTreeFactory); return new LSMRTree(ioManager, virtualBufferCaches, rtreeInteriorFrameFactory, rtreeLeafFrameFactory, btreeInteriorFrameFactory, btreeLeafFrameFactory, fileNameManager, diskRTreeFactory, diskBTreeFactory, bloomFilterFactory, filterHelper, filterFrameFactory, filterManager, bloomFilterFalsePositiveRate, - diskFileMapProvider, typeTraits.length, rtreeCmpFactories, btreeCmpFactories, linearizeCmpFactory, - comparatorFields, linearizerArray, mergePolicy, opTracker, ioScheduler, ioOpCallback, rtreeFields, - buddyBTreeFields, filterFields, durable, isPointMBR); + typeTraits.length, rtreeCmpFactories, btreeCmpFactories, linearizeCmpFactory, comparatorFields, + linearizerArray, mergePolicy, opTracker, ioScheduler, ioOpCallback, rtreeFields, buddyBTreeFields, + filterFields, durable, isPointMBR); } public static LSMRTreeWithAntiMatterTuples createLSMTreeWithAntiMatterTuples(IIOManager ioManager, List virtualBufferCaches, FileReference file, IBufferCache diskBufferCache, - IFileMapProvider diskFileMapProvider, ITypeTraits[] typeTraits, - IBinaryComparatorFactory[] rtreeCmpFactories, IBinaryComparatorFactory[] btreeComparatorFactories, + ITypeTraits[] typeTraits, IBinaryComparatorFactory[] rtreeCmpFactories, + IBinaryComparatorFactory[] btreeComparatorFactories, IPrimitiveValueProviderFactory[] valueProviderFactories, RTreePolicyType rtreePolicyType, ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, ILinearizeComparatorFactory linearizerCmpFactory, int[] rtreeFields, @@ -184,13 +180,12 @@ public class LSMRTreeUtils { ITreeIndexFrameFactory copyTupleLeafFrameFactory = new RTreeNSMLeafFrameFactory( rtreeLeafFrameCopyTupleWriterFactory, valueProviderFactories, rtreePolicyType, isPointMBR); - TreeIndexFactory diskRTreeFactory = new RTreeFactory(ioManager, diskBufferCache, diskFileMapProvider, - freePageManagerFactory, rtreeInteriorFrameFactory, copyTupleLeafFrameFactory, rtreeCmpFactories, - typeTraits.length, isPointMBR); + TreeIndexFactory diskRTreeFactory = new RTreeFactory(ioManager, diskBufferCache, freePageManagerFactory, + rtreeInteriorFrameFactory, copyTupleLeafFrameFactory, rtreeCmpFactories, typeTraits.length, isPointMBR); - TreeIndexFactory bulkLoadRTreeFactory = new RTreeFactory(ioManager, diskBufferCache, diskFileMapProvider, - freePageManagerFactory, rtreeInteriorFrameFactory, rtreeLeafFrameBulkLoadFactory, rtreeCmpFactories, - typeTraits.length, isPointMBR); + TreeIndexFactory bulkLoadRTreeFactory = + new RTreeFactory(ioManager, diskBufferCache, freePageManagerFactory, rtreeInteriorFrameFactory, + rtreeLeafFrameBulkLoadFactory, rtreeCmpFactories, typeTraits.length, isPointMBR); // The first field is for the sorted curve (e.g. Hilbert curve), and the // second field is for the primary key. @@ -219,21 +214,20 @@ public class LSMRTreeUtils { filterManager = new LSMComponentFilterManager(filterFrameFactory); } ILSMIndexFileManager fileNameManager = - new LSMRTreeWithAntiMatterTuplesFileManager(ioManager, diskFileMapProvider, file, diskRTreeFactory); + new LSMRTreeWithAntiMatterTuplesFileManager(ioManager, file, diskRTreeFactory); return new LSMRTreeWithAntiMatterTuples(ioManager, virtualBufferCaches, rtreeInteriorFrameFactory, rtreeLeafFrameFactory, btreeInteriorFrameFactory, btreeLeafFrameFactory, fileNameManager, diskRTreeFactory, bulkLoadRTreeFactory, filterHelper, filterFrameFactory, filterManager, - diskFileMapProvider, typeTraits.length, rtreeCmpFactories, btreeComparatorFactories, - linearizerCmpFactory, comparatorFields, linearizerArray, mergePolicy, opTracker, ioScheduler, - ioOpCallback, rtreeFields, filterFields, durable, isPointMBR); + typeTraits.length, rtreeCmpFactories, btreeComparatorFactories, linearizerCmpFactory, comparatorFields, + linearizerArray, mergePolicy, opTracker, ioScheduler, ioOpCallback, rtreeFields, filterFields, durable, + isPointMBR); } public static ExternalRTree createExternalRTree(IIOManager ioManager, FileReference file, - IBufferCache diskBufferCache, IFileMapProvider diskFileMapProvider, ITypeTraits[] typeTraits, - IBinaryComparatorFactory[] rtreeCmpFactories, IBinaryComparatorFactory[] btreeCmpFactories, - IPrimitiveValueProviderFactory[] valueProviderFactories, RTreePolicyType rtreePolicyType, - double bloomFilterFalsePositiveRate, ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, - ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, + IBufferCache diskBufferCache, ITypeTraits[] typeTraits, IBinaryComparatorFactory[] rtreeCmpFactories, + IBinaryComparatorFactory[] btreeCmpFactories, IPrimitiveValueProviderFactory[] valueProviderFactories, + RTreePolicyType rtreePolicyType, double bloomFilterFalsePositiveRate, ILSMMergePolicy mergePolicy, + ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, ILinearizeComparatorFactory linearizeCmpFactory, int[] buddyBTreeFields, boolean durable, boolean isPointMBR, IMetadataPageManagerFactory freePageManagerFactory) throws HyracksDataException { @@ -260,12 +254,10 @@ public class LSMRTreeUtils { valueProviderFactories, rtreePolicyType, isPointMBR); ITreeIndexFrameFactory btreeInteriorFrameFactory = new BTreeNSMInteriorFrameFactory(btreeTupleWriterFactory); ITreeIndexFrameFactory btreeLeafFrameFactory = new BTreeNSMLeafFrameFactory(btreeTupleWriterFactory); - TreeIndexFactory diskRTreeFactory = new RTreeFactory(ioManager, diskBufferCache, diskFileMapProvider, - freePageManagerFactory, rtreeInteriorFrameFactory, rtreeLeafFrameFactory, rtreeCmpFactories, - typeTraits.length, isPointMBR); - TreeIndexFactory diskBTreeFactory = - new BTreeFactory(ioManager, diskBufferCache, diskFileMapProvider, freePageManagerFactory, - btreeInteriorFrameFactory, btreeLeafFrameFactory, btreeCmpFactories, btreeTypeTraits.length); + TreeIndexFactory diskRTreeFactory = new RTreeFactory(ioManager, diskBufferCache, freePageManagerFactory, + rtreeInteriorFrameFactory, rtreeLeafFrameFactory, rtreeCmpFactories, typeTraits.length, isPointMBR); + TreeIndexFactory diskBTreeFactory = new BTreeFactory(ioManager, diskBufferCache, freePageManagerFactory, + btreeInteriorFrameFactory, btreeLeafFrameFactory, btreeCmpFactories, btreeTypeTraits.length); int[] comparatorFields = { 0 }; IBinaryComparatorFactory[] linearizerArray = { linearizeCmpFactory }; @@ -273,17 +265,15 @@ public class LSMRTreeUtils { for (int i = 0; i < btreeCmpFactories.length; i++) { bloomFilterKeyFields[i] = i; } - BloomFilterFactory bloomFilterFactory = - new BloomFilterFactory(diskBufferCache, diskFileMapProvider, bloomFilterKeyFields); + BloomFilterFactory bloomFilterFactory = new BloomFilterFactory(diskBufferCache, bloomFilterKeyFields); ILSMIndexFileManager fileNameManager = - new LSMRTreeFileManager(ioManager, diskFileMapProvider, file, diskRTreeFactory, diskBTreeFactory); - ExternalRTree lsmTree = new ExternalRTree(ioManager, rtreeInteriorFrameFactory, rtreeLeafFrameFactory, - btreeInteriorFrameFactory, btreeLeafFrameFactory, fileNameManager, diskRTreeFactory, diskBTreeFactory, - bloomFilterFactory, bloomFilterFalsePositiveRate, diskFileMapProvider, typeTraits.length, - rtreeCmpFactories, btreeCmpFactories, linearizeCmpFactory, comparatorFields, linearizerArray, - mergePolicy, opTracker, ioScheduler, ioOpCallback, buddyBTreeFields, durable, isPointMBR); - return lsmTree; + new LSMRTreeFileManager(ioManager, file, diskRTreeFactory, diskBTreeFactory); + return new ExternalRTree(ioManager, rtreeInteriorFrameFactory, rtreeLeafFrameFactory, btreeInteriorFrameFactory, + btreeLeafFrameFactory, fileNameManager, diskRTreeFactory, diskBTreeFactory, bloomFilterFactory, + bloomFilterFalsePositiveRate, typeTraits.length, rtreeCmpFactories, btreeCmpFactories, + linearizeCmpFactory, comparatorFields, linearizerArray, mergePolicy, opTracker, ioScheduler, + ioOpCallback, buddyBTreeFields, durable, isPointMBR); } public static ILinearizeComparatorFactory proposeBestLinearizer(ITypeTraits[] typeTraits, int numKeyFields) http://git-wip-us.apache.org/repos/asf/asterixdb/blob/198ffbca/hyracks-fullstack/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/dataflow/RTreeResource.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/dataflow/RTreeResource.java b/hyracks-fullstack/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/dataflow/RTreeResource.java index 5dc0a4e..df4fbf2 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/dataflow/RTreeResource.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/dataflow/RTreeResource.java @@ -59,9 +59,8 @@ public class RTreeResource implements IResource { public IIndex createInstance(INCServiceContext ctx) throws HyracksDataException { IIOManager ioManager = ctx.getIoManager(); FileReference resourceRef = ioManager.resolve(path); - return RTreeUtils.createRTree(storageManager.getBufferCache(ctx), storageManager.getFileMapProvider(ctx), - typeTraits, valueProviderFactories, comparatorFactories, rtreePolicyType, resourceRef, false, - pageManagerFactory); + return RTreeUtils.createRTree(storageManager.getBufferCache(ctx), typeTraits, valueProviderFactories, + comparatorFactories, rtreePolicyType, resourceRef, false, pageManagerFactory); } @Override http://git-wip-us.apache.org/repos/asf/asterixdb/blob/198ffbca/hyracks-fullstack/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/impls/RTree.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/impls/RTree.java b/hyracks-fullstack/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/impls/RTree.java index 1160da7..1750067 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/impls/RTree.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/impls/RTree.java @@ -60,7 +60,6 @@ import org.apache.hyracks.storage.common.buffercache.BufferCache; import org.apache.hyracks.storage.common.buffercache.IBufferCache; import org.apache.hyracks.storage.common.buffercache.ICachedPage; import org.apache.hyracks.storage.common.file.BufferedFileHandle; -import org.apache.hyracks.storage.common.file.IFileMapProvider; public class RTree extends AbstractTreeIndex { @@ -70,11 +69,10 @@ public class RTree extends AbstractTreeIndex { private final int maxTupleSize; private final boolean isPointMBR; // used for reducing storage space to store point objects. - public RTree(IBufferCache bufferCache, IFileMapProvider fileMapProvider, IPageManager freePageManager, - ITreeIndexFrameFactory interiorFrameFactory, ITreeIndexFrameFactory leafFrameFactory, - IBinaryComparatorFactory[] cmpFactories, int fieldCount, FileReference file, boolean isPointMBR) { - super(bufferCache, fileMapProvider, freePageManager, interiorFrameFactory, leafFrameFactory, cmpFactories, - fieldCount, file); + public RTree(IBufferCache bufferCache, IPageManager freePageManager, ITreeIndexFrameFactory interiorFrameFactory, + ITreeIndexFrameFactory leafFrameFactory, IBinaryComparatorFactory[] cmpFactories, int fieldCount, + FileReference file, boolean isPointMBR) { + super(bufferCache, freePageManager, interiorFrameFactory, leafFrameFactory, cmpFactories, fieldCount, file); globalNsn = new AtomicLong(); ITreeIndexFrame leafFrame = leafFrameFactory.createFrame(); ITreeIndexFrame interiorFrame = interiorFrameFactory.createFrame(); @@ -101,7 +99,7 @@ public class RTree extends AbstractTreeIndex { public void printTree(int pageId, ICachedPage parent, boolean unpin, IRTreeLeafFrame leafFrame, IRTreeInteriorFrame interiorFrame, byte treeHeight, ISerializerDeserializer[] keySerdes, StringBuilder strBuilder, MultiComparator cmp) throws Exception { - ICachedPage node = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, pageId), false); + ICachedPage node = bufferCache.pin(BufferedFileHandle.getDiskPageId(getFileId(), pageId), false); node.acquireReadLatch(); try { if (parent != null && unpin == true) { @@ -171,7 +169,7 @@ public class RTree extends AbstractTreeIndex { while (true) { if (!writeLatched) { - node = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, pageId), false); + node = bufferCache.pin(BufferedFileHandle.getDiskPageId(getFileId(), pageId), false); ctx.getInteriorFrame().setPage(node); isLeaf = ctx.getInteriorFrame().isLeaf(); if (isLeaf) { @@ -229,7 +227,7 @@ public class RTree extends AbstractTreeIndex { readLatched = false; bufferCache.unpin(node); - node = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, pageId), false); + node = bufferCache.pin(BufferedFileHandle.getDiskPageId(getFileId(), pageId), false); node.acquireWriteLatch(); writeLatched = true; ctx.getInteriorFrame().setPage(node); @@ -345,7 +343,8 @@ public class RTree extends AbstractTreeIndex { case INSUFFICIENT_SPACE: { int rightPageId = freePageManager.takePage(ctx.getMetaFrame()); - ICachedPage rightNode = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, rightPageId), true); + ICachedPage rightNode = + bufferCache.pin(BufferedFileHandle.getDiskPageId(getFileId(), rightPageId), true); rightNode.acquireWriteLatch(); try { @@ -390,7 +389,7 @@ public class RTree extends AbstractTreeIndex { if (pageId == rootPage) { int newLeftId = freePageManager.takePage(ctx.getMetaFrame()); ICachedPage newLeftNode = - bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, newLeftId), true); + bufferCache.pin(BufferedFileHandle.getDiskPageId(getFileId(), newLeftId), true); newLeftNode.acquireWriteLatch(); succeeded = false; try { @@ -448,7 +447,7 @@ public class RTree extends AbstractTreeIndex { boolean succeeded = false; boolean writeLatched = false; int parentId = ctx.getPathList().getLastPageId(); - ICachedPage parentNode = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, parentId), false); + ICachedPage parentNode = bufferCache.pin(BufferedFileHandle.getDiskPageId(getFileId(), parentId), false); parentNode.acquireWriteLatch(); writeLatched = true; ctx.getInteriorFrame().setPage(parentNode); @@ -474,7 +473,7 @@ public class RTree extends AbstractTreeIndex { } parentId = rightPage; - parentNode = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, parentId), false); + parentNode = bufferCache.pin(BufferedFileHandle.getDiskPageId(getFileId(), parentId), false); parentNode.acquireWriteLatch(); writeLatched = true; ctx.getInteriorFrame().setPage(parentNode); @@ -528,7 +527,7 @@ public class RTree extends AbstractTreeIndex { pageId = ctx.getTraverseList().getFirstPageId(); parentIndex = ctx.getTraverseList().getFirstPageIndex(); - node = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, pageId), false); + node = bufferCache.pin(BufferedFileHandle.getDiskPageId(getFileId(), pageId), false); node.acquireReadLatch(); readLatched = true; ctx.getInteriorFrame().setPage(node); @@ -611,7 +610,7 @@ public class RTree extends AbstractTreeIndex { int pageId = ctx.getPathList().getLastPageId(); long parentLsn = ctx.getPathList().getLastPageLsn(); ctx.getPathList().moveLast(); - node = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, pageId), false); + node = bufferCache.pin(BufferedFileHandle.getDiskPageId(getFileId(), pageId), false); node.acquireReadLatch(); readLatched = true; ctx.getInteriorFrame().setPage(node); @@ -644,7 +643,7 @@ public class RTree extends AbstractTreeIndex { readLatched = false; bufferCache.unpin(node); - node = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, pageId), false); + node = bufferCache.pin(BufferedFileHandle.getDiskPageId(getFileId(), pageId), false); node.acquireWriteLatch(); writeLatched = true; ctx.getLeafFrame().setPage(node); @@ -714,7 +713,7 @@ public class RTree extends AbstractTreeIndex { ctx.setCursor(cursor); cursor.setBufferCache(bufferCache); - cursor.setFileId(fileId); + cursor.setFileId(getFileId()); ctx.getCursorInitialState().setRootPage(rootPage); ctx.getCursor().open(ctx.getCursorInitialState(), searchPred); } @@ -733,11 +732,11 @@ public class RTree extends AbstractTreeIndex { int currentPageId = bulkloadLeafStart; int maxPageId = freePageManager.getMaxPageId(ctx.getMetaFrame()); - ICachedPage page = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, currentPageId), false); + ICachedPage page = bufferCache.pin(BufferedFileHandle.getDiskPageId(getFileId(), currentPageId), false); page.acquireReadLatch(); try { cursor.setBufferCache(bufferCache); - cursor.setFileId(fileId); + cursor.setFileId(getFileId()); cursor.setCurrentPageId(currentPageId); cursor.setMaxPageId(maxPageId); ctx.getCursorInitialState().setOriginialKeyComparator(ctx.getCmp()); @@ -938,8 +937,8 @@ public class RTree extends AbstractTreeIndex { } pagesToWrite.clear(); - leafFrontier.page = - bufferCache.confiscatePage(BufferedFileHandle.getDiskPageId(fileId, leafFrontier.pageId)); + leafFrontier.page = bufferCache + .confiscatePage(BufferedFileHandle.getDiskPageId(getFileId(), leafFrontier.pageId)); leafFrame.setPage(leafFrontier.page); leafFrame.initBuffer((byte) 0); @@ -992,7 +991,7 @@ public class RTree extends AbstractTreeIndex { int finalPageId = freePageManager.takePage(metaFrame); n.pageId = finalPageId; - bufferCache.setPageDiskId(n.page, BufferedFileHandle.getDiskPageId(fileId, finalPageId)); + bufferCache.setPageDiskId(n.page, BufferedFileHandle.getDiskPageId(getFileId(), finalPageId)); //else we are looking at a leaf } //set next guide MBR @@ -1055,7 +1054,7 @@ public class RTree extends AbstractTreeIndex { } else { prevNodeFrontierPages.set(level, finalPageId); } - bufferCache.setPageDiskId(frontier.page, BufferedFileHandle.getDiskPageId(fileId, finalPageId)); + bufferCache.setPageDiskId(frontier.page, BufferedFileHandle.getDiskPageId(getFileId(), finalPageId)); pagesToWrite.add(frontier.page); lowerFrame = prevInteriorFrame;