http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/utils/LSMBTreeUtil.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/utils/LSMBTreeUtil.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/utils/LSMBTreeUtil.java new file mode 100644 index 0000000..0bc8b8d --- /dev/null +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/utils/LSMBTreeUtil.java @@ -0,0 +1,218 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.hyracks.storage.am.lsm.btree.utils; + +import java.util.List; + +import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory; +import org.apache.hyracks.api.dataflow.value.ITypeTraits; +import org.apache.hyracks.api.exceptions.HyracksDataException; +import org.apache.hyracks.api.io.FileReference; +import org.apache.hyracks.api.io.IIOManager; +import org.apache.hyracks.storage.am.bloomfilter.impls.BloomFilterFactory; +import org.apache.hyracks.storage.am.btree.frames.BTreeNSMInteriorFrameFactory; +import org.apache.hyracks.storage.am.btree.frames.BTreeNSMLeafFrameFactory; +import org.apache.hyracks.storage.am.btree.impls.BTree; +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.tuples.TypeAwareTupleWriterFactory; +import org.apache.hyracks.storage.am.lsm.btree.impls.ExternalBTree; +import org.apache.hyracks.storage.am.lsm.btree.impls.ExternalBTreeWithBuddy; +import org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTree; +import org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTreeFileManager; +import org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTreeWithBuddyFileManager; +import org.apache.hyracks.storage.am.lsm.btree.tuples.LSMBTreeCopyTupleWriterFactory; +import org.apache.hyracks.storage.am.lsm.btree.tuples.LSMBTreeRefrencingTupleWriterFactory; +import org.apache.hyracks.storage.am.lsm.btree.tuples.LSMBTreeTupleWriterFactory; +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.ILSMIndexFileManager; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicy; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTracker; +import org.apache.hyracks.storage.am.lsm.common.api.IVirtualBufferCache; +import org.apache.hyracks.storage.am.lsm.common.frames.LSMComponentFilterFrameFactory; +import org.apache.hyracks.storage.am.lsm.common.impls.BTreeFactory; +import org.apache.hyracks.storage.am.lsm.common.impls.LSMComponentFilterFactory; +import org.apache.hyracks.storage.am.lsm.common.impls.LSMComponentFilterManager; +import org.apache.hyracks.storage.am.lsm.common.impls.TreeIndexFactory; +import org.apache.hyracks.storage.common.buffercache.IBufferCache; +import org.apache.hyracks.storage.common.file.IFileMapProvider; + +public class LSMBTreeUtil { + + private LSMBTreeUtil() { + } + + public static LSMBTree createLSMTree(IIOManager ioManager, List<IVirtualBufferCache> virtualBufferCaches, + FileReference file, IBufferCache diskBufferCache, IFileMapProvider diskFileMapProvider, + ITypeTraits[] typeTraits, IBinaryComparatorFactory[] cmpFactories, int[] bloomFilterKeyFields, + double bloomFilterFalsePositiveRate, ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, + ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, boolean needKeyDupCheck, + ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] btreeFields, + int[] filterFields, boolean durable, IMetadataPageManagerFactory freePageManagerFactory) + throws HyracksDataException { + LSMBTreeTupleWriterFactory insertTupleWriterFactory = + new LSMBTreeTupleWriterFactory(typeTraits, cmpFactories.length, false); + LSMBTreeTupleWriterFactory deleteTupleWriterFactory = + new LSMBTreeTupleWriterFactory(typeTraits, cmpFactories.length, true); + LSMBTreeCopyTupleWriterFactory copyTupleWriterFactory = + new LSMBTreeCopyTupleWriterFactory(typeTraits, cmpFactories.length); + ITreeIndexFrameFactory insertLeafFrameFactory = new BTreeNSMLeafFrameFactory(insertTupleWriterFactory); + ITreeIndexFrameFactory copyTupleLeafFrameFactory = new BTreeNSMLeafFrameFactory(copyTupleWriterFactory); + ITreeIndexFrameFactory deleteLeafFrameFactory = new BTreeNSMLeafFrameFactory(deleteTupleWriterFactory); + ITreeIndexFrameFactory interiorFrameFactory = new BTreeNSMInteriorFrameFactory(insertTupleWriterFactory); + + TreeIndexFactory<BTree> diskBTreeFactory = + new BTreeFactory(ioManager, diskBufferCache, diskFileMapProvider, freePageManagerFactory, + interiorFrameFactory, copyTupleLeafFrameFactory, cmpFactories, typeTraits.length); + TreeIndexFactory<BTree> bulkLoadBTreeFactory = + new BTreeFactory(ioManager, diskBufferCache, diskFileMapProvider, freePageManagerFactory, + interiorFrameFactory, insertLeafFrameFactory, cmpFactories, typeTraits.length); + + BloomFilterFactory bloomFilterFactory = needKeyDupCheck + ? new BloomFilterFactory(diskBufferCache, diskFileMapProvider, bloomFilterKeyFields) : null; + + LSMComponentFilterFactory filterFactory = null; + LSMComponentFilterFrameFactory filterFrameFactory = null; + LSMComponentFilterManager filterManager = null; + if (filterCmpFactories != null) { + TypeAwareTupleWriterFactory filterTupleWriterFactory = new TypeAwareTupleWriterFactory(filterTypeTraits); + filterFactory = new LSMComponentFilterFactory(filterTupleWriterFactory, filterCmpFactories); + filterFrameFactory = new LSMComponentFilterFrameFactory(filterTupleWriterFactory); + filterManager = new LSMComponentFilterManager(filterFrameFactory); + } + + //Primary LSMBTree index has a BloomFilter. + ILSMIndexFileManager fileNameManager = + new LSMBTreeFileManager(ioManager, diskFileMapProvider, file, diskBTreeFactory, needKeyDupCheck); + + LSMBTree lsmTree = new LSMBTree(ioManager, virtualBufferCaches, interiorFrameFactory, insertLeafFrameFactory, + deleteLeafFrameFactory, fileNameManager, diskBTreeFactory, bulkLoadBTreeFactory, bloomFilterFactory, + filterFactory, filterFrameFactory, filterManager, bloomFilterFalsePositiveRate, diskFileMapProvider, + typeTraits.length, cmpFactories, mergePolicy, opTracker, ioScheduler, ioOpCallback, needKeyDupCheck, + btreeFields, filterFields, durable); + return lsmTree; + } + + public static ExternalBTree createExternalBTree(IIOManager ioManager, FileReference file, + IBufferCache diskBufferCache, IFileMapProvider diskFileMapProvider, ITypeTraits[] typeTraits, + IBinaryComparatorFactory[] cmpFactories, int[] bloomFilterKeyFields, double bloomFilterFalsePositiveRate, + ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, + ILSMIOOperationCallback ioOpCallback, int startWithVersion, boolean durable, + IMetadataPageManagerFactory freePageManagerFactory) { + LSMBTreeTupleWriterFactory insertTupleWriterFactory = + new LSMBTreeTupleWriterFactory(typeTraits, cmpFactories.length, false); + LSMBTreeTupleWriterFactory deleteTupleWriterFactory = + new LSMBTreeTupleWriterFactory(typeTraits, cmpFactories.length, true); + LSMBTreeCopyTupleWriterFactory copyTupleWriterFactory = + new LSMBTreeCopyTupleWriterFactory(typeTraits, cmpFactories.length); + ITreeIndexFrameFactory insertLeafFrameFactory = new BTreeNSMLeafFrameFactory(insertTupleWriterFactory); + ITreeIndexFrameFactory copyTupleLeafFrameFactory = new BTreeNSMLeafFrameFactory(copyTupleWriterFactory); + ITreeIndexFrameFactory deleteLeafFrameFactory = new BTreeNSMLeafFrameFactory(deleteTupleWriterFactory); + ITreeIndexFrameFactory interiorFrameFactory = new BTreeNSMInteriorFrameFactory(insertTupleWriterFactory); + // This is the tuple writer that can do both inserts and deletes + LSMBTreeRefrencingTupleWriterFactory referencingTupleWriterFactory = + new LSMBTreeRefrencingTupleWriterFactory(typeTraits, cmpFactories.length, false); + // This is the leaf frame factory for transaction components since it + // can be used for both inserts and deletes + ITreeIndexFrameFactory dualLeafFrameFactory = new BTreeNSMLeafFrameFactory(referencingTupleWriterFactory); + + TreeIndexFactory<BTree> diskBTreeFactory = + new BTreeFactory(ioManager, diskBufferCache, diskFileMapProvider, freePageManagerFactory, + interiorFrameFactory, copyTupleLeafFrameFactory, cmpFactories, typeTraits.length); + TreeIndexFactory<BTree> bulkLoadBTreeFactory = + new BTreeFactory(ioManager, diskBufferCache, diskFileMapProvider, freePageManagerFactory, + interiorFrameFactory, insertLeafFrameFactory, cmpFactories, typeTraits.length); + + BloomFilterFactory bloomFilterFactory = + new BloomFilterFactory(diskBufferCache, diskFileMapProvider, bloomFilterKeyFields); + + // This is the component factory for transactions + TreeIndexFactory<BTree> transactionBTreeFactory = + new BTreeFactory(ioManager, diskBufferCache, diskFileMapProvider, freePageManagerFactory, + interiorFrameFactory, dualLeafFrameFactory, cmpFactories, typeTraits.length); + //TODO remove BloomFilter from external dataset's secondary LSMBTree index + ILSMIndexFileManager fileNameManager = + new LSMBTreeFileManager(ioManager, diskFileMapProvider, file, diskBTreeFactory, true); + // the disk only index uses an empty ArrayList for virtual buffer caches + ExternalBTree lsmTree = new ExternalBTree(ioManager, interiorFrameFactory, insertLeafFrameFactory, + deleteLeafFrameFactory, fileNameManager, diskBTreeFactory, bulkLoadBTreeFactory, bloomFilterFactory, + bloomFilterFalsePositiveRate, diskFileMapProvider, typeTraits.length, cmpFactories, mergePolicy, + opTracker, ioScheduler, ioOpCallback, transactionBTreeFactory, startWithVersion, durable); + return lsmTree; + } + + public static ExternalBTreeWithBuddy createExternalBTreeWithBuddy(IIOManager ioManager, FileReference file, + IBufferCache diskBufferCache, IFileMapProvider diskFileMapProvider, ITypeTraits[] typeTraits, + IBinaryComparatorFactory[] cmpFactories, double bloomFilterFalsePositiveRate, ILSMMergePolicy mergePolicy, + ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, + int[] buddyBTreeFields, int startWithVersion, boolean durable, + IMetadataPageManagerFactory freePageManagerFactory) { + ITypeTraits[] buddyBtreeTypeTraits = new ITypeTraits[buddyBTreeFields.length]; + IBinaryComparatorFactory[] buddyBtreeCmpFactories = new IBinaryComparatorFactory[buddyBTreeFields.length]; + for (int i = 0; i < buddyBtreeTypeTraits.length; i++) { + buddyBtreeTypeTraits[i] = typeTraits[buddyBTreeFields[i]]; + buddyBtreeCmpFactories[i] = cmpFactories[buddyBTreeFields[i]]; + } + TypeAwareTupleWriterFactory buddyBtreeTupleWriterFactory = + new TypeAwareTupleWriterFactory(buddyBtreeTypeTraits); + ITreeIndexFrameFactory buddyBtreeInteriorFrameFactory = + new BTreeNSMInteriorFrameFactory(buddyBtreeTupleWriterFactory); + ITreeIndexFrameFactory buddyBtreeLeafFrameFactory = new BTreeNSMLeafFrameFactory(buddyBtreeTupleWriterFactory); + + LSMBTreeTupleWriterFactory insertTupleWriterFactory = + new LSMBTreeTupleWriterFactory(typeTraits, cmpFactories.length, false); + LSMBTreeCopyTupleWriterFactory copyTupleWriterFactory = + new LSMBTreeCopyTupleWriterFactory(typeTraits, cmpFactories.length); + ITreeIndexFrameFactory insertLeafFrameFactory = new BTreeNSMLeafFrameFactory(insertTupleWriterFactory); + ITreeIndexFrameFactory copyTupleLeafFrameFactory = new BTreeNSMLeafFrameFactory(copyTupleWriterFactory); + ITreeIndexFrameFactory interiorFrameFactory = new BTreeNSMInteriorFrameFactory(insertTupleWriterFactory); + TreeIndexFactory<BTree> diskBTreeFactory = + new BTreeFactory(ioManager, diskBufferCache, diskFileMapProvider, freePageManagerFactory, + interiorFrameFactory, copyTupleLeafFrameFactory, cmpFactories, typeTraits.length); + + TreeIndexFactory<BTree> bulkLoadBTreeFactory = + new BTreeFactory(ioManager, diskBufferCache, diskFileMapProvider, freePageManagerFactory, + interiorFrameFactory, insertLeafFrameFactory, cmpFactories, typeTraits.length); + + int[] bloomFilterKeyFields = new int[buddyBtreeCmpFactories.length]; + for (int i = 0; i < buddyBtreeCmpFactories.length; i++) { + bloomFilterKeyFields[i] = i; + } + BloomFilterFactory bloomFilterFactory = + new BloomFilterFactory(diskBufferCache, diskFileMapProvider, bloomFilterKeyFields); + + // buddy b-tree factory + TreeIndexFactory<BTree> diskBuddyBTreeFactory = new BTreeFactory(ioManager, diskBufferCache, + diskFileMapProvider, freePageManagerFactory, buddyBtreeInteriorFrameFactory, + buddyBtreeLeafFrameFactory, buddyBtreeCmpFactories, buddyBtreeTypeTraits.length); + + ILSMIndexFileManager fileNameManager = new LSMBTreeWithBuddyFileManager(ioManager, diskFileMapProvider, file, + diskBTreeFactory, diskBuddyBTreeFactory); + + // the disk only index uses an empty ArrayList for virtual buffer caches + ExternalBTreeWithBuddy lsmTree = new ExternalBTreeWithBuddy(ioManager, interiorFrameFactory, + insertLeafFrameFactory, buddyBtreeLeafFrameFactory, diskBufferCache, fileNameManager, + bulkLoadBTreeFactory, diskBTreeFactory, diskBuddyBTreeFactory, bloomFilterFactory, diskFileMapProvider, + bloomFilterFalsePositiveRate, mergePolicy, opTracker, ioScheduler, ioOpCallback, cmpFactories, + buddyBtreeCmpFactories, buddyBTreeFields, startWithVersion, durable); + return lsmTree; + } +}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationCallbackFactory.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationCallbackFactory.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationCallbackFactory.java index cfb795c..c91fa8b 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationCallbackFactory.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationCallbackFactory.java @@ -20,6 +20,7 @@ package org.apache.hyracks.storage.am.lsm.common.api; import java.io.Serializable; +@FunctionalInterface public interface ILSMIOOperationCallbackFactory extends Serializable { - public ILSMIOOperationCallback createIOOperationCallback(); + ILSMIOOperationCallback createIOOperationCallback(); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationScheduler.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationScheduler.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationScheduler.java index a808e70..57a3483 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationScheduler.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationScheduler.java @@ -20,6 +20,10 @@ package org.apache.hyracks.storage.am.lsm.common.api; import org.apache.hyracks.api.exceptions.HyracksDataException; +/** + * Schedules IO operations for LSM indexes + */ +@FunctionalInterface public interface ILSMIOOperationScheduler { - public void scheduleOperation(ILSMIOOperation operation) throws HyracksDataException; + void scheduleOperation(ILSMIOOperation operation) throws HyracksDataException; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationSchedulerProvider.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationSchedulerProvider.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationSchedulerProvider.java index bf10a91..9a7ce57 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationSchedulerProvider.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationSchedulerProvider.java @@ -22,6 +22,10 @@ import java.io.Serializable; import org.apache.hyracks.api.context.IHyracksTaskContext; +/** + * Provides the {@link ILSMIOOperationScheduler} for the application + */ +@FunctionalInterface public interface ILSMIOOperationSchedulerProvider extends Serializable { - public ILSMIOOperationScheduler getIOScheduler(IHyracksTaskContext ctx); + ILSMIOOperationScheduler getIOScheduler(IHyracksTaskContext ctx); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMOperationTrackerFactory.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMOperationTrackerFactory.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMOperationTrackerFactory.java new file mode 100644 index 0000000..133d450 --- /dev/null +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMOperationTrackerFactory.java @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.hyracks.storage.am.lsm.common.api; + +import java.io.Serializable; + +import org.apache.hyracks.api.application.INCApplicationContext; + +@FunctionalInterface +public interface ILSMOperationTrackerFactory extends Serializable { + ILSMOperationTracker getOperationTracker(INCApplicationContext ctx); +} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMOperationTrackerProvider.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMOperationTrackerProvider.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMOperationTrackerProvider.java deleted file mode 100644 index 403b7b1..0000000 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMOperationTrackerProvider.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.hyracks.storage.am.lsm.common.api; - -import java.io.Serializable; - -import org.apache.hyracks.api.context.IHyracksTaskContext; - -public interface ILSMOperationTrackerProvider extends Serializable { - public ILSMOperationTracker getOperationTracker(IHyracksTaskContext ctx); -} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/AbstractLSMIndexDataflowHelper.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/AbstractLSMIndexDataflowHelper.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/AbstractLSMIndexDataflowHelper.java index fa5b623..f219c12 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/AbstractLSMIndexDataflowHelper.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/AbstractLSMIndexDataflowHelper.java @@ -30,7 +30,7 @@ import org.apache.hyracks.storage.am.common.dataflow.IndexDataflowHelper; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationScheduler; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicy; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerProvider; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; import org.apache.hyracks.storage.am.lsm.common.api.IVirtualBufferCache; public abstract class AbstractLSMIndexDataflowHelper extends IndexDataflowHelper { @@ -42,7 +42,7 @@ public abstract class AbstractLSMIndexDataflowHelper extends IndexDataflowHelper protected final List<IVirtualBufferCache> virtualBufferCaches; protected final ILSMMergePolicy mergePolicy; protected final ILSMIOOperationScheduler ioScheduler; - protected final ILSMOperationTrackerProvider opTrackerFactory; + protected final ILSMOperationTrackerFactory opTrackerFactory; protected final ILSMIOOperationCallbackFactory ioOpCallbackFactory; protected final ITypeTraits[] filterTypeTraits; protected final IBinaryComparatorFactory[] filterCmpFactories; @@ -50,7 +50,7 @@ public abstract class AbstractLSMIndexDataflowHelper extends IndexDataflowHelper public AbstractLSMIndexDataflowHelper(IIndexOperatorDescriptor opDesc, IHyracksTaskContext ctx, int partition, List<IVirtualBufferCache> virtualBufferCaches, ILSMMergePolicy mergePolicy, - ILSMOperationTrackerProvider opTrackerFactory, ILSMIOOperationScheduler ioScheduler, + ILSMOperationTrackerFactory opTrackerFactory, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallbackFactory ioOpCallbackFactory, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] filterFields, boolean durable) throws HyracksDataException { @@ -61,7 +61,7 @@ public abstract class AbstractLSMIndexDataflowHelper extends IndexDataflowHelper public AbstractLSMIndexDataflowHelper(IIndexOperatorDescriptor opDesc, IHyracksTaskContext ctx, int partition, List<IVirtualBufferCache> virtualBufferCaches, double bloomFilterFalsePositiveRate, - ILSMMergePolicy mergePolicy, ILSMOperationTrackerProvider opTrackerFactory, + ILSMMergePolicy mergePolicy, ILSMOperationTrackerFactory opTrackerFactory, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallbackFactory ioOpCallbackFactory, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] filterFields, boolean durable) throws HyracksDataException { http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/AbstractLSMIndexDataflowHelperFactory.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/AbstractLSMIndexDataflowHelperFactory.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/AbstractLSMIndexDataflowHelperFactory.java index a0affa3..a95574d 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/AbstractLSMIndexDataflowHelperFactory.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/AbstractLSMIndexDataflowHelperFactory.java @@ -27,7 +27,7 @@ import org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationSchedulerProvider; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerProvider; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; import org.apache.hyracks.storage.am.lsm.common.api.IVirtualBufferCacheProvider; public abstract class AbstractLSMIndexDataflowHelperFactory implements IIndexDataflowHelperFactory { @@ -36,7 +36,7 @@ public abstract class AbstractLSMIndexDataflowHelperFactory implements IIndexDat protected final IVirtualBufferCacheProvider virtualBufferCacheProvider; protected final ILSMMergePolicyFactory mergePolicyFactory; protected final Map<String, String> mergePolicyProperties; - protected final ILSMOperationTrackerProvider opTrackerFactory; + protected final ILSMOperationTrackerFactory opTrackerFactory; protected final ILSMIOOperationSchedulerProvider ioSchedulerProvider; protected final ILSMIOOperationCallbackFactory ioOpCallbackFactory; protected final double bloomFilterFalsePositiveRate; @@ -47,7 +47,7 @@ public abstract class AbstractLSMIndexDataflowHelperFactory implements IIndexDat public AbstractLSMIndexDataflowHelperFactory(IVirtualBufferCacheProvider virtualBufferCacheProvider, ILSMMergePolicyFactory mergePolicyFactory, Map<String, String> mergePolicyProperties, - ILSMOperationTrackerProvider opTrackerFactory, ILSMIOOperationSchedulerProvider ioSchedulerProvider, + ILSMOperationTrackerFactory opTrackerFactory, ILSMIOOperationSchedulerProvider ioSchedulerProvider, ILSMIOOperationCallbackFactory ioOpCallbackFactory, double bloomFilterFalsePositiveRate, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] filterFields, boolean durable) { http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/LSMTreeIndexCompactOperatorDescriptor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/LSMTreeIndexCompactOperatorDescriptor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/LSMTreeIndexCompactOperatorDescriptor.java index f009db9..9311599 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/LSMTreeIndexCompactOperatorDescriptor.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/LSMTreeIndexCompactOperatorDescriptor.java @@ -33,7 +33,7 @@ import org.apache.hyracks.storage.am.common.api.IPageManagerFactory; import org.apache.hyracks.storage.am.common.dataflow.AbstractTreeIndexOperatorDescriptor; import org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory; import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallbackFactory; -import org.apache.hyracks.storage.common.IStorageManagerInterface; +import org.apache.hyracks.storage.common.IStorageManager; import org.apache.hyracks.storage.common.file.NoOpLocalResourceFactoryProvider; public class LSMTreeIndexCompactOperatorDescriptor extends AbstractTreeIndexOperatorDescriptor { @@ -41,7 +41,7 @@ public class LSMTreeIndexCompactOperatorDescriptor extends AbstractTreeIndexOper private static final long serialVersionUID = 1L; public LSMTreeIndexCompactOperatorDescriptor(IOperatorDescriptorRegistry spec, - IStorageManagerInterface storageManager, IIndexLifecycleManagerProvider lifecycleManagerProvider, + IStorageManager storageManager, IIndexLifecycleManagerProvider lifecycleManagerProvider, IFileSplitProvider fileSplitProvider, ITypeTraits[] typeTraits, IBinaryComparatorFactory[] comparatorFactories, int[] bloomFilterKeyFields, IIndexDataflowHelperFactory dataflowHelperFactory, http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/LSMTreeIndexInsertUpdateDeleteOperatorDescriptor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/LSMTreeIndexInsertUpdateDeleteOperatorDescriptor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/LSMTreeIndexInsertUpdateDeleteOperatorDescriptor.java index 5403e79..f0a5352 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/LSMTreeIndexInsertUpdateDeleteOperatorDescriptor.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/dataflow/LSMTreeIndexInsertUpdateDeleteOperatorDescriptor.java @@ -37,7 +37,7 @@ import org.apache.hyracks.storage.am.common.api.ITupleFilterFactory; import org.apache.hyracks.storage.am.common.dataflow.AbstractTreeIndexOperatorDescriptor; import org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory; import org.apache.hyracks.storage.am.common.ophelpers.IndexOperation; -import org.apache.hyracks.storage.common.IStorageManagerInterface; +import org.apache.hyracks.storage.common.IStorageManager; import org.apache.hyracks.storage.common.file.NoOpLocalResourceFactoryProvider; public class LSMTreeIndexInsertUpdateDeleteOperatorDescriptor extends AbstractTreeIndexOperatorDescriptor { @@ -48,7 +48,7 @@ public class LSMTreeIndexInsertUpdateDeleteOperatorDescriptor extends AbstractTr protected final IndexOperation op; public LSMTreeIndexInsertUpdateDeleteOperatorDescriptor(IOperatorDescriptorRegistry spec, RecordDescriptor recDesc, - IStorageManagerInterface storageManager, IIndexLifecycleManagerProvider lifecycleManagerProvider, + IStorageManager storageManager, IIndexLifecycleManagerProvider lifecycleManagerProvider, IFileSplitProvider fileSplitProvider, ITypeTraits[] typeTraits, IBinaryComparatorFactory[] comparatorFactories, int[] bloomFilterKeyFields, int[] fieldPermutation, IndexOperation op, IIndexDataflowHelperFactory dataflowHelperFactory, http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/NoOpOperationTrackerFactory.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/NoOpOperationTrackerFactory.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/NoOpOperationTrackerFactory.java new file mode 100644 index 0000000..97e6978 --- /dev/null +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/NoOpOperationTrackerFactory.java @@ -0,0 +1,70 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.hyracks.storage.am.lsm.common.impls; + +import org.apache.hyracks.api.application.INCApplicationContext; +import org.apache.hyracks.api.exceptions.HyracksDataException; +import org.apache.hyracks.storage.am.common.api.IModificationOperationCallback; +import org.apache.hyracks.storage.am.common.api.ISearchOperationCallback; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndex; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTracker; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; +import org.apache.hyracks.storage.am.lsm.common.api.LSMOperationType; + +/** + * Operation tracker that does nothing. + * WARNING: This op tracker should only be used for specific testing purposes. + * It is assumed than an op tracker cooperates with an lsm index to synchronize flushes with + * regular operations, and this implementation does no such tracking at all. + */ +public class NoOpOperationTrackerFactory implements ILSMOperationTrackerFactory { + private static final long serialVersionUID = 1L; + public static final NoOpOperationTrackerFactory INSTANCE = new NoOpOperationTrackerFactory(); + private static final NoOpOperationTracker tracker = new NoOpOperationTracker(); + + // Enforce singleton. + private NoOpOperationTrackerFactory() { + } + + @Override + public ILSMOperationTracker getOperationTracker(INCApplicationContext ctx) { + return tracker; + } + + private static final class NoOpOperationTracker implements ILSMOperationTracker { + + @Override + public void beforeOperation(ILSMIndex index, LSMOperationType opType, ISearchOperationCallback searchCallback, + IModificationOperationCallback modificationCallback) throws HyracksDataException { + // No Op + } + + @Override + public void afterOperation(ILSMIndex index, LSMOperationType opType, ISearchOperationCallback searchCallback, + IModificationOperationCallback modificationCallback) throws HyracksDataException { + // No Op + } + + @Override + public void completeOperation(ILSMIndex index, LSMOperationType opType, ISearchOperationCallback searchCallback, + IModificationOperationCallback modificationCallback) throws HyracksDataException { + // No Op + } + } +} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/NoOpOperationTrackerProvider.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/NoOpOperationTrackerProvider.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/NoOpOperationTrackerProvider.java deleted file mode 100644 index fd7c1f2..0000000 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/NoOpOperationTrackerProvider.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.hyracks.storage.am.lsm.common.impls; - -import org.apache.hyracks.api.context.IHyracksTaskContext; -import org.apache.hyracks.api.exceptions.HyracksDataException; -import org.apache.hyracks.storage.am.common.api.IModificationOperationCallback; -import org.apache.hyracks.storage.am.common.api.ISearchOperationCallback; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndex; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTracker; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerProvider; -import org.apache.hyracks.storage.am.lsm.common.api.LSMOperationType; - -/** - * Operation tracker that does nothing. - * WARNING: This op tracker should only be used for specific testing purposes. - * It is assumed than an op tracker cooperates with an lsm index to synchronize flushes with - * regular operations, and this implementation does no such tracking at all. - */ -public class NoOpOperationTrackerProvider implements ILSMOperationTrackerProvider { - private static final long serialVersionUID = 1L; - - public static NoOpOperationTrackerProvider INSTANCE = new NoOpOperationTrackerProvider(); - - @Override - public ILSMOperationTracker getOperationTracker(IHyracksTaskContext ctx) { - return new ILSMOperationTracker() { - - @Override - public void completeOperation(ILSMIndex index, LSMOperationType opType, - ISearchOperationCallback searchCallback, IModificationOperationCallback modificationCallback) - throws HyracksDataException { - // Do nothing. - } - - @Override - public void beforeOperation(ILSMIndex index, LSMOperationType opType, - ISearchOperationCallback searchCallback, IModificationOperationCallback modificationCallback) - throws HyracksDataException { - } - - @Override - public void afterOperation(ILSMIndex index, LSMOperationType opType, - ISearchOperationCallback searchCallback, IModificationOperationCallback modificationCallback) - throws HyracksDataException { - // Do nothing. - } - }; - } - - // Enforce singleton. - private NoOpOperationTrackerProvider() { - } - -}; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/ThreadCountingOperationTrackerFactory.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/ThreadCountingOperationTrackerFactory.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/ThreadCountingOperationTrackerFactory.java new file mode 100644 index 0000000..a9ccc42 --- /dev/null +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/ThreadCountingOperationTrackerFactory.java @@ -0,0 +1,38 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.hyracks.storage.am.lsm.common.impls; + +import org.apache.hyracks.api.application.INCApplicationContext; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTracker; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; + +public class ThreadCountingOperationTrackerFactory implements ILSMOperationTrackerFactory { + + private static final long serialVersionUID = 1L; + public static final ThreadCountingOperationTrackerFactory INSTANCE = new ThreadCountingOperationTrackerFactory(); + + // Enforce singleton. + private ThreadCountingOperationTrackerFactory() { + } + + @Override + public ILSMOperationTracker getOperationTracker(INCApplicationContext ctx) { + return new ThreadCountingTracker(); + } +} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/ThreadCountingOperationTrackerProvider.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/ThreadCountingOperationTrackerProvider.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/ThreadCountingOperationTrackerProvider.java deleted file mode 100644 index f17d1bc..0000000 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/ThreadCountingOperationTrackerProvider.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.hyracks.storage.am.lsm.common.impls; - -import org.apache.hyracks.api.context.IHyracksTaskContext; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTracker; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerProvider; - -public class ThreadCountingOperationTrackerProvider implements ILSMOperationTrackerProvider { - - private static final long serialVersionUID = 1L; - - public static ThreadCountingOperationTrackerProvider INSTANCE = new ThreadCountingOperationTrackerProvider(); - - @Override - public ILSMOperationTracker getOperationTracker(IHyracksTaskContext ctx) { - return new ThreadCountingTracker(); - } - - // Enforce singleton. - private ThreadCountingOperationTrackerProvider() { - } -} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/AbstractLSMInvertedIndexOperatorDescriptor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/AbstractLSMInvertedIndexOperatorDescriptor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/AbstractLSMInvertedIndexOperatorDescriptor.java index 84a3267..a39d8e9 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/AbstractLSMInvertedIndexOperatorDescriptor.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/AbstractLSMInvertedIndexOperatorDescriptor.java @@ -34,7 +34,7 @@ import org.apache.hyracks.storage.am.common.dataflow.AbstractIndexOperatorDescri import org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory; import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndexOperatorDescriptor; import org.apache.hyracks.storage.am.lsm.invertedindex.tokenizers.IBinaryTokenizerFactory; -import org.apache.hyracks.storage.common.IStorageManagerInterface; +import org.apache.hyracks.storage.common.IStorageManager; import org.apache.hyracks.storage.common.file.ILocalResourceFactoryProvider; public abstract class AbstractLSMInvertedIndexOperatorDescriptor extends AbstractIndexOperatorDescriptor implements @@ -49,7 +49,7 @@ public abstract class AbstractLSMInvertedIndexOperatorDescriptor extends Abstrac protected final IBinaryTokenizerFactory tokenizerFactory; public AbstractLSMInvertedIndexOperatorDescriptor(IOperatorDescriptorRegistry spec, int inputArity, - int outputArity, RecordDescriptor recDesc, IStorageManagerInterface storageManager, + int outputArity, RecordDescriptor recDesc, IStorageManager storageManager, IFileSplitProvider fileSplitProvider, IIndexLifecycleManagerProvider lifecycleManagerProvider, ITypeTraits[] tokenTypeTraits, IBinaryComparatorFactory[] tokenComparatorFactories, ITypeTraits[] invListsTypeTraits, IBinaryComparatorFactory[] invListComparatorFactories, http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexBulkLoadOperatorDescriptor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexBulkLoadOperatorDescriptor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexBulkLoadOperatorDescriptor.java index 163439f..121c121 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexBulkLoadOperatorDescriptor.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexBulkLoadOperatorDescriptor.java @@ -34,7 +34,7 @@ import org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory import org.apache.hyracks.storage.am.common.dataflow.IndexBulkLoadOperatorNodePushable; import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.invertedindex.tokenizers.IBinaryTokenizerFactory; -import org.apache.hyracks.storage.common.IStorageManagerInterface; +import org.apache.hyracks.storage.common.IStorageManager; import org.apache.hyracks.storage.common.file.NoOpLocalResourceFactoryProvider; public class LSMInvertedIndexBulkLoadOperatorDescriptor extends AbstractLSMInvertedIndexOperatorDescriptor { @@ -48,7 +48,7 @@ public class LSMInvertedIndexBulkLoadOperatorDescriptor extends AbstractLSMInver public LSMInvertedIndexBulkLoadOperatorDescriptor(IOperatorDescriptorRegistry spec, RecordDescriptor recDesc, int[] fieldPermutation, boolean verifyInput, long numElementsHint, boolean checkIfEmptyIndex, - IStorageManagerInterface storageManager, IFileSplitProvider fileSplitProvider, + IStorageManager storageManager, IFileSplitProvider fileSplitProvider, IIndexLifecycleManagerProvider lifecycleManagerProvider, ITypeTraits[] tokenTypeTraits, IBinaryComparatorFactory[] tokenComparatorFactories, ITypeTraits[] invListsTypeTraits, IBinaryComparatorFactory[] invListComparatorFactories, IBinaryTokenizerFactory tokenizerFactory, http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexCompactOperator.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexCompactOperator.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexCompactOperator.java index def8e71..08724e9 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexCompactOperator.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexCompactOperator.java @@ -34,14 +34,14 @@ import org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.dataflow.LSMIndexCompactOperatorNodePushable; import org.apache.hyracks.storage.am.lsm.invertedindex.tokenizers.IBinaryTokenizerFactory; -import org.apache.hyracks.storage.common.IStorageManagerInterface; +import org.apache.hyracks.storage.common.IStorageManager; import org.apache.hyracks.storage.common.file.NoOpLocalResourceFactoryProvider; public class LSMInvertedIndexCompactOperator extends AbstractLSMInvertedIndexOperatorDescriptor { private static final long serialVersionUID = 1L; - public LSMInvertedIndexCompactOperator(IOperatorDescriptorRegistry spec, IStorageManagerInterface storageManager, + public LSMInvertedIndexCompactOperator(IOperatorDescriptorRegistry spec, IStorageManager storageManager, IFileSplitProvider fileSplitProvider, IIndexLifecycleManagerProvider lifecycleManagerProvider, ITypeTraits[] tokenTypeTraits, IBinaryComparatorFactory[] tokenComparatorFactories, ITypeTraits[] invListsTypeTraits, IBinaryComparatorFactory[] invListComparatorFactories, http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexCreateOperatorDescriptor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexCreateOperatorDescriptor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexCreateOperatorDescriptor.java index 1151318..7a09649 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexCreateOperatorDescriptor.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexCreateOperatorDescriptor.java @@ -34,7 +34,7 @@ import org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory import org.apache.hyracks.storage.am.common.dataflow.IndexCreateOperatorNodePushable; import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.invertedindex.tokenizers.IBinaryTokenizerFactory; -import org.apache.hyracks.storage.common.IStorageManagerInterface; +import org.apache.hyracks.storage.common.IStorageManager; import org.apache.hyracks.storage.common.file.ILocalResourceFactoryProvider; public class LSMInvertedIndexCreateOperatorDescriptor extends AbstractLSMInvertedIndexOperatorDescriptor { @@ -42,7 +42,7 @@ public class LSMInvertedIndexCreateOperatorDescriptor extends AbstractLSMInverte private static final long serialVersionUID = 1L; public LSMInvertedIndexCreateOperatorDescriptor(IOperatorDescriptorRegistry spec, - IStorageManagerInterface storageManager, IFileSplitProvider fileSplitProvider, + IStorageManager storageManager, IFileSplitProvider fileSplitProvider, IIndexLifecycleManagerProvider lifecycleManagerProvider, ITypeTraits[] tokenTypeTraits, IBinaryComparatorFactory[] tokenComparatorFactories, ITypeTraits[] invListsTypeTraits, IBinaryComparatorFactory[] invListComparatorFactories, IBinaryTokenizerFactory tokenizerFactory, http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexDataflowHelper.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexDataflowHelper.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexDataflowHelper.java index 237b567..28cfadf 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexDataflowHelper.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexDataflowHelper.java @@ -33,7 +33,7 @@ import org.apache.hyracks.storage.am.common.util.IndexFileNameUtil; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationScheduler; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicy; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerProvider; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; import org.apache.hyracks.storage.am.lsm.common.api.IVirtualBufferCache; import org.apache.hyracks.storage.am.lsm.common.dataflow.AbstractLSMIndexDataflowHelper; import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndexOperatorDescriptor; @@ -50,7 +50,7 @@ public final class LSMInvertedIndexDataflowHelper extends AbstractLSMIndexDatafl public LSMInvertedIndexDataflowHelper(IIndexOperatorDescriptor opDesc, IHyracksTaskContext ctx, int partition, List<IVirtualBufferCache> virtualBufferCaches, ILSMMergePolicy mergePolicy, - ILSMOperationTrackerProvider opTrackerFactory, ILSMIOOperationScheduler ioScheduler, + ILSMOperationTrackerFactory opTrackerFactory, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallbackFactory ioOpCallbackFactory, int[] invertedIndexFields, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] filterFields, int[] filterFieldsForNonBulkLoadOps, int[] invertedIndexFieldsForNonBulkLoadOps, boolean durable) @@ -63,7 +63,7 @@ public final class LSMInvertedIndexDataflowHelper extends AbstractLSMIndexDatafl public LSMInvertedIndexDataflowHelper(IIndexOperatorDescriptor opDesc, IHyracksTaskContext ctx, int partition, List<IVirtualBufferCache> virtualBufferCaches, double bloomFilterFalsePositiveRate, - ILSMMergePolicy mergePolicy, ILSMOperationTrackerProvider opTrackerFactory, + ILSMMergePolicy mergePolicy, ILSMOperationTrackerFactory opTrackerFactory, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallbackFactory ioOpCallbackFactory, int[] invertedIndexFields, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] filterFields, int[] filterFieldsForNonBulkLoadOps, int[] invertedIndexFieldsForNonBulkLoadOps, @@ -89,7 +89,7 @@ public final class LSMInvertedIndexDataflowHelper extends AbstractLSMIndexDatafl invIndexOpDesc.getInvListsComparatorFactories(), invIndexOpDesc.getTokenTypeTraits(), invIndexOpDesc.getTokenComparatorFactories(), invIndexOpDesc.getTokenizerFactory(), diskBufferCache, fileRef.getFile().getAbsolutePath(), bloomFilterFalsePositiveRate, mergePolicy, - opTrackerFactory.getOperationTracker(ctx), ioScheduler, + opTrackerFactory.getOperationTracker(ctx.getJobletContext().getApplicationContext()), ioScheduler, ioOpCallbackFactory.createIOOperationCallback(), invertedIndexFields, filterTypeTraits, filterCmpFactories, filterFields, filterFieldsForNonBulkLoadOps, invertedIndexFieldsForNonBulkLoadOps, durable, (IMetadataPageManagerFactory) opDesc http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexDataflowHelperFactory.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexDataflowHelperFactory.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexDataflowHelperFactory.java index f1cc153..f621bae 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexDataflowHelperFactory.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexDataflowHelperFactory.java @@ -30,7 +30,7 @@ import org.apache.hyracks.storage.am.common.dataflow.IndexDataflowHelper; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationSchedulerProvider; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerProvider; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; import org.apache.hyracks.storage.am.lsm.common.api.IVirtualBufferCacheProvider; import org.apache.hyracks.storage.am.lsm.common.dataflow.AbstractLSMIndexDataflowHelperFactory; @@ -43,7 +43,7 @@ public class LSMInvertedIndexDataflowHelperFactory extends AbstractLSMIndexDataf public LSMInvertedIndexDataflowHelperFactory(IVirtualBufferCacheProvider virtualBufferCacheProvider, ILSMMergePolicyFactory mergePolicyFactory, Map<String, String> mergePolicyProperties, - ILSMOperationTrackerProvider opTrackerProvider, ILSMIOOperationSchedulerProvider ioSchedulerProvider, + ILSMOperationTrackerFactory opTrackerProvider, ILSMIOOperationSchedulerProvider ioSchedulerProvider, ILSMIOOperationCallbackFactory ioOpCallbackFactory, double bloomFilterFalsePositiveRate, int[] invertedIndexFields, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] filterFields, int[] filterFieldsForNonBulkLoadOps, int[] invertedIndexFieldsForNonBulkLoadOps, http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexInsertUpdateDeleteOperator.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexInsertUpdateDeleteOperator.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexInsertUpdateDeleteOperator.java index 0ae65b7..46201d5 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexInsertUpdateDeleteOperator.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexInsertUpdateDeleteOperator.java @@ -37,7 +37,7 @@ import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallbackFactory; import org.apache.hyracks.storage.am.common.ophelpers.IndexOperation; import org.apache.hyracks.storage.am.lsm.common.dataflow.LSMIndexInsertUpdateDeleteOperatorNodePushable; import org.apache.hyracks.storage.am.lsm.invertedindex.tokenizers.IBinaryTokenizerFactory; -import org.apache.hyracks.storage.common.IStorageManagerInterface; +import org.apache.hyracks.storage.common.IStorageManager; import org.apache.hyracks.storage.common.file.NoOpLocalResourceFactoryProvider; public class LSMInvertedIndexInsertUpdateDeleteOperator extends AbstractLSMInvertedIndexOperatorDescriptor { @@ -48,7 +48,7 @@ public class LSMInvertedIndexInsertUpdateDeleteOperator extends AbstractLSMInver protected final IndexOperation op; public LSMInvertedIndexInsertUpdateDeleteOperator(IOperatorDescriptorRegistry spec, RecordDescriptor recDesc, - IStorageManagerInterface storageManager, IFileSplitProvider fileSplitProvider, + IStorageManager storageManager, IFileSplitProvider fileSplitProvider, IIndexLifecycleManagerProvider lifecycleManagerProvider, ITypeTraits[] tokenTypeTraits, IBinaryComparatorFactory[] tokenComparatorFactories, ITypeTraits[] invListsTypeTraits, IBinaryComparatorFactory[] invListComparatorFactories, IBinaryTokenizerFactory tokenizerFactory, http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexSearchOperatorDescriptor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexSearchOperatorDescriptor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexSearchOperatorDescriptor.java index 7c21c38..f628e76 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexSearchOperatorDescriptor.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexSearchOperatorDescriptor.java @@ -37,7 +37,7 @@ import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndexSearchModifier; import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndexSearchModifierFactory; import org.apache.hyracks.storage.am.lsm.invertedindex.tokenizers.IBinaryTokenizerFactory; -import org.apache.hyracks.storage.common.IStorageManagerInterface; +import org.apache.hyracks.storage.common.IStorageManager; import org.apache.hyracks.storage.common.file.NoOpLocalResourceFactoryProvider; public class LSMInvertedIndexSearchOperatorDescriptor extends AbstractLSMInvertedIndexOperatorDescriptor { @@ -50,7 +50,7 @@ public class LSMInvertedIndexSearchOperatorDescriptor extends AbstractLSMInverte private final boolean isFullTextSearchQuery; public LSMInvertedIndexSearchOperatorDescriptor(IOperatorDescriptorRegistry spec, int queryField, - IStorageManagerInterface storageManager, IFileSplitProvider fileSplitProvider, + IStorageManager storageManager, IFileSplitProvider fileSplitProvider, IIndexLifecycleManagerProvider lifecycleManagerProvider, ITypeTraits[] tokenTypeTraits, IBinaryComparatorFactory[] tokenComparatorFactories, ITypeTraits[] invListsTypeTraits, IBinaryComparatorFactory[] invListComparatorFactories, http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/PartitionedLSMInvertedIndexDataflowHelper.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/PartitionedLSMInvertedIndexDataflowHelper.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/PartitionedLSMInvertedIndexDataflowHelper.java index 3e8b634..5138642 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/PartitionedLSMInvertedIndexDataflowHelper.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/PartitionedLSMInvertedIndexDataflowHelper.java @@ -32,7 +32,7 @@ import org.apache.hyracks.storage.am.common.util.IndexFileNameUtil; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationScheduler; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicy; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerProvider; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; import org.apache.hyracks.storage.am.lsm.common.api.IVirtualBufferCache; import org.apache.hyracks.storage.am.lsm.common.dataflow.AbstractLSMIndexDataflowHelper; import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndexOperatorDescriptor; @@ -49,7 +49,7 @@ public final class PartitionedLSMInvertedIndexDataflowHelper extends AbstractLSM public PartitionedLSMInvertedIndexDataflowHelper(IIndexOperatorDescriptor opDesc, IHyracksTaskContext ctx, int partition, List<IVirtualBufferCache> virtualBufferCache, ILSMMergePolicy mergePolicy, - ILSMOperationTrackerProvider opTrackerFactory, ILSMIOOperationScheduler ioScheduler, + ILSMOperationTrackerFactory opTrackerFactory, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallbackFactory ioOpCallbackFactory, int[] invertedIndexFields, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] filterFields, int[] filterFieldsForNonBulkLoadOps, int[] invertedIndexFieldsForNonBulkLoadOps, boolean durable) @@ -62,7 +62,7 @@ public final class PartitionedLSMInvertedIndexDataflowHelper extends AbstractLSM public PartitionedLSMInvertedIndexDataflowHelper(IIndexOperatorDescriptor opDesc, IHyracksTaskContext ctx, int partition, List<IVirtualBufferCache> virtualBufferCaches, double bloomFilterFalsePositiveRate, - ILSMMergePolicy mergePolicy, ILSMOperationTrackerProvider opTrackerFactory, + ILSMMergePolicy mergePolicy, ILSMOperationTrackerFactory opTrackerFactory, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallbackFactory ioOpCallbackFactory, int[] invertedIndexFields, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] filterFields, int[] filterFieldsForNonBulkLoadOps, int[] invertedIndexFieldsForNonBulkLoadOps, @@ -88,7 +88,7 @@ public final class PartitionedLSMInvertedIndexDataflowHelper extends AbstractLSM invIndexOpDesc.getInvListsComparatorFactories(), invIndexOpDesc.getTokenTypeTraits(), invIndexOpDesc.getTokenComparatorFactories(), invIndexOpDesc.getTokenizerFactory(), diskBufferCache, fileRef.getFile().getAbsolutePath(), bloomFilterFalsePositiveRate, mergePolicy, - opTrackerFactory.getOperationTracker(ctx), ioScheduler, + opTrackerFactory.getOperationTracker(ctx.getJobletContext().getApplicationContext()), ioScheduler, ioOpCallbackFactory.createIOOperationCallback(), invertedIndexFields, filterTypeTraits, filterCmpFactories, filterFields, filterFieldsForNonBulkLoadOps, invertedIndexFieldsForNonBulkLoadOps, durable, opDesc.getPageManagerFactory()); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/PartitionedLSMInvertedIndexDataflowHelperFactory.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/PartitionedLSMInvertedIndexDataflowHelperFactory.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/PartitionedLSMInvertedIndexDataflowHelperFactory.java index bc1fc5b..8f4f2d9 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/PartitionedLSMInvertedIndexDataflowHelperFactory.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/PartitionedLSMInvertedIndexDataflowHelperFactory.java @@ -30,7 +30,7 @@ import org.apache.hyracks.storage.am.common.dataflow.IndexDataflowHelper; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationSchedulerProvider; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerProvider; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; import org.apache.hyracks.storage.am.lsm.common.api.IVirtualBufferCacheProvider; import org.apache.hyracks.storage.am.lsm.common.dataflow.AbstractLSMIndexDataflowHelperFactory; @@ -43,7 +43,7 @@ public class PartitionedLSMInvertedIndexDataflowHelperFactory extends AbstractLS public PartitionedLSMInvertedIndexDataflowHelperFactory(IVirtualBufferCacheProvider virtualBufferCacheProvider, ILSMMergePolicyFactory mergePolicyFactory, Map<String, String> mergePolicyProperties, - ILSMOperationTrackerProvider opTrackerProvider, ILSMIOOperationSchedulerProvider ioSchedulerProvider, + ILSMOperationTrackerFactory opTrackerProvider, ILSMIOOperationSchedulerProvider ioSchedulerProvider, ILSMIOOperationCallbackFactory ioOpCallbackFactory, double bloomFilterFalsePositiveRate, int[] invertedIndexFields, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] filterFields, int[] filterFieldsForNonBulkLoadOps, int[] invertedIndexFieldsForNonBulkLoadOps, http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedListCursor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedListCursor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedListCursor.java index be5358c..9299620 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedListCursor.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedListCursor.java @@ -29,7 +29,7 @@ import org.apache.hyracks.dataflow.common.comm.io.ArrayTupleBuilder; import org.apache.hyracks.dataflow.common.comm.io.ArrayTupleReference; import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference; import org.apache.hyracks.dataflow.common.data.marshalling.IntegerSerializerDeserializer; -import org.apache.hyracks.dataflow.common.util.TupleUtils; +import org.apache.hyracks.dataflow.common.utils.TupleUtils; import org.apache.hyracks.storage.am.btree.impls.BTree.BTreeAccessor; import org.apache.hyracks.storage.am.btree.impls.RangePredicate; import org.apache.hyracks.storage.am.common.api.IIndexCursor; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/OnDiskInvertedIndex.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/OnDiskInvertedIndex.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/OnDiskInvertedIndex.java index e27edf5..4884190 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/OnDiskInvertedIndex.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/OnDiskInvertedIndex.java @@ -33,7 +33,7 @@ import org.apache.hyracks.data.std.primitive.IntegerPointable; import org.apache.hyracks.dataflow.common.comm.io.ArrayTupleBuilder; import org.apache.hyracks.dataflow.common.comm.io.ArrayTupleReference; import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference; -import org.apache.hyracks.dataflow.common.util.TupleUtils; +import org.apache.hyracks.dataflow.common.utils.TupleUtils; import org.apache.hyracks.storage.am.btree.frames.BTreeLeafFrameType; import org.apache.hyracks.storage.am.btree.impls.BTree; import org.apache.hyracks.storage.am.btree.impls.RangePredicate; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/AbstractLSMRTreeDataflowHelper.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/AbstractLSMRTreeDataflowHelper.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/AbstractLSMRTreeDataflowHelper.java index abd11b1..00a2e3f 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/AbstractLSMRTreeDataflowHelper.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/AbstractLSMRTreeDataflowHelper.java @@ -36,7 +36,7 @@ import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFacto import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationScheduler; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicy; import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTracker; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerProvider; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; import org.apache.hyracks.storage.am.lsm.common.api.IVirtualBufferCache; import org.apache.hyracks.storage.am.lsm.common.dataflow.AbstractLSMIndexDataflowHelper; import org.apache.hyracks.storage.am.rtree.frames.RTreePolicyType; @@ -55,7 +55,7 @@ public abstract class AbstractLSMRTreeDataflowHelper extends AbstractLSMIndexDat public AbstractLSMRTreeDataflowHelper(IIndexOperatorDescriptor opDesc, IHyracksTaskContext ctx, int partition, List<IVirtualBufferCache> virtualBufferCaches, IBinaryComparatorFactory[] btreeComparatorFactories, IPrimitiveValueProviderFactory[] valueProviderFactories, RTreePolicyType rtreePolicyType, - ILSMMergePolicy mergePolicy, ILSMOperationTrackerProvider opTrackerFactory, + ILSMMergePolicy mergePolicy, ILSMOperationTrackerFactory opTrackerFactory, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallbackFactory ioOpCallbackFactory, ILinearizeComparatorFactory linearizeCmpFactory, int[] rtreeFields, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] filterFields, boolean durable, boolean isPointMBR) @@ -70,7 +70,7 @@ public abstract class AbstractLSMRTreeDataflowHelper extends AbstractLSMIndexDat List<IVirtualBufferCache> virtualBufferCaches, double bloomFilterFalsePositiveRate, IBinaryComparatorFactory[] btreeComparatorFactories, IPrimitiveValueProviderFactory[] valueProviderFactories, RTreePolicyType rtreePolicyType, - ILSMMergePolicy mergePolicy, ILSMOperationTrackerProvider opTrackerFactory, + ILSMMergePolicy mergePolicy, ILSMOperationTrackerFactory opTrackerFactory, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallbackFactory ioOpCallbackFactory, ILinearizeComparatorFactory linearizeCmpFactory, int[] rtreeFields, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] filterFields, boolean durable, boolean isPointMBR) @@ -93,7 +93,8 @@ public abstract class AbstractLSMRTreeDataflowHelper extends AbstractLSMIndexDat return createLSMTree(virtualBufferCaches, fileRef, opDesc.getStorageManager().getBufferCache(ctx), opDesc.getStorageManager().getFileMapProvider(ctx), treeOpDesc.getTreeIndexTypeTraits(), treeOpDesc.getTreeIndexComparatorFactories(), btreeComparatorFactories, - opTrackerFactory.getOperationTracker(ctx), valueProviderFactories, rtreePolicyType, linearizeCmpFactory, + opTrackerFactory.getOperationTracker(ctx.getJobletContext().getApplicationContext()), + valueProviderFactories, rtreePolicyType, linearizeCmpFactory, rtreeFields, filterTypeTraits, filterCmpFactories, filterFields); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeDataflowHelper.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeDataflowHelper.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeDataflowHelper.java index b4fc496..7c57bed 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeDataflowHelper.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeDataflowHelper.java @@ -36,7 +36,7 @@ import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFacto import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationScheduler; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicy; import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTracker; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerProvider; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; import org.apache.hyracks.storage.am.lsm.common.api.IVirtualBufferCache; import org.apache.hyracks.storage.am.lsm.rtree.utils.LSMRTreeUtils; import org.apache.hyracks.storage.am.rtree.frames.RTreePolicyType; @@ -50,7 +50,7 @@ public class ExternalRTreeDataflowHelper extends LSMRTreeDataflowHelper { public ExternalRTreeDataflowHelper(IIndexOperatorDescriptor opDesc, IHyracksTaskContext ctx, int partition, IBinaryComparatorFactory[] btreeComparatorFactories, IPrimitiveValueProviderFactory[] valueProviderFactories, RTreePolicyType rtreePolicyType, - ILSMMergePolicy mergePolicy, ILSMOperationTrackerProvider opTrackerFactory, + ILSMMergePolicy mergePolicy, ILSMOperationTrackerFactory opTrackerFactory, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallbackFactory ioOpCallbackFactory, ILinearizeComparatorFactory linearizeCmpFactory, int[] btreeFields, int version, boolean durable, boolean isPointMBR) throws HyracksDataException { @@ -63,7 +63,7 @@ public class ExternalRTreeDataflowHelper extends LSMRTreeDataflowHelper { public ExternalRTreeDataflowHelper(IIndexOperatorDescriptor opDesc, IHyracksTaskContext ctx, int partition, double bloomFilterFalsePositiveRate, IBinaryComparatorFactory[] btreeComparatorFactories, IPrimitiveValueProviderFactory[] valueProviderFactories, RTreePolicyType rtreePolicyType, - ILSMMergePolicy mergePolicy, ILSMOperationTrackerProvider opTrackerFactory, + ILSMMergePolicy mergePolicy, ILSMOperationTrackerFactory opTrackerFactory, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallbackFactory ioOpCallbackFactory, ILinearizeComparatorFactory linearizeCmpFactory, int[] btreeFields, int version, boolean durable, boolean isPointMBR) throws HyracksDataException {
