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 6E5C9200C7C for ; Sat, 15 Apr 2017 23:44:50 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 6C12D160B8B; Sat, 15 Apr 2017 21:44:50 +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 33E31160BB3 for ; Sat, 15 Apr 2017 23:44:48 +0200 (CEST) Received: (qmail 41333 invoked by uid 500); 15 Apr 2017 21:44:47 -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 40912 invoked by uid 99); 15 Apr 2017 21:44:45 -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; Sat, 15 Apr 2017 21:44:45 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 2025EE0779; Sat, 15 Apr 2017 21:44:45 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: amoudi@apache.org To: commits@asterixdb.apache.org Date: Sat, 15 Apr 2017 21:44:50 -0000 Message-Id: <387aa279ceaa433c9d530ced3486bef8@git.apache.org> In-Reply-To: <04cfd80b44fd4ddea8b1c9219b10a5e9@git.apache.org> References: <04cfd80b44fd4ddea8b1c9219b10a5e9@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [07/13] asterixdb git commit: Cleanup storage exceptions archived-at: Sat, 15 Apr 2017 21:44:50 -0000 http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/PrefixMergePolicy.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/PrefixMergePolicy.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/PrefixMergePolicy.java index 5f36339..23646b9 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/PrefixMergePolicy.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/PrefixMergePolicy.java @@ -25,11 +25,10 @@ import java.util.List; import java.util.Map; import org.apache.hyracks.api.exceptions.HyracksDataException; -import org.apache.hyracks.storage.am.common.api.IndexException; import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallback; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMDiskComponent; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent.ComponentState; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMDiskComponent; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndex; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessor; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicy; @@ -40,8 +39,7 @@ public class PrefixMergePolicy implements ILSMMergePolicy { private int maxToleranceComponentCount; @Override - public void diskComponentAdded(final ILSMIndex index, boolean fullMergeIsRequested) - throws HyracksDataException, IndexException { + public void diskComponentAdded(final ILSMIndex index, boolean fullMergeIsRequested) throws HyracksDataException { ArrayList immutableComponents = new ArrayList<>(index.getImmutableComponents()); @@ -66,7 +64,7 @@ public class PrefixMergePolicy implements ILSMMergePolicy { } @Override - public boolean isMergeLagging(ILSMIndex index) throws HyracksDataException, IndexException { + public boolean isMergeLagging(ILSMIndex index) throws HyracksDataException { /** * [for flow-control purpose] @@ -221,7 +219,7 @@ public class PrefixMergePolicy implements ILSMMergePolicy { * @throws HyracksDataException * @throws IndexException */ - private boolean scheduleMerge(final ILSMIndex index) throws HyracksDataException, IndexException { + private boolean scheduleMerge(final ILSMIndex index) throws HyracksDataException { // 1. Look at the candidate components for merging in oldest-first order. If one exists, identify the prefix of the sequence of // all such components for which the sum of their sizes exceeds MaxMrgCompSz. Schedule a merge of those components into a new component. // 2. If a merge from 1 doesn't happen, see if the set of candidate components for merging exceeds MaxTolCompCnt. If so, schedule http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedIndex.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedIndex.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedIndex.java index 449c8f9..3a368d4 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedIndex.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedIndex.java @@ -25,13 +25,12 @@ import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference; import org.apache.hyracks.storage.am.common.api.IIndex; import org.apache.hyracks.storage.am.common.api.IIndexOperationContext; -import org.apache.hyracks.storage.am.common.api.IndexException; public interface IInvertedIndex extends IIndex { IInvertedListCursor createInvertedListCursor(); void openInvertedListCursor(IInvertedListCursor listCursor, ITupleReference searchKey, IIndexOperationContext ictx) - throws HyracksDataException, IndexException; + throws HyracksDataException; ITypeTraits[] getInvListTypeTraits(); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedIndexAccessor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedIndexAccessor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedIndexAccessor.java index 0d15986..f78eda9 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedIndexAccessor.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedIndexAccessor.java @@ -24,16 +24,14 @@ import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference; import org.apache.hyracks.storage.am.common.api.IIndexAccessor; import org.apache.hyracks.storage.am.common.api.IIndexCursor; import org.apache.hyracks.storage.am.common.api.ISearchPredicate; -import org.apache.hyracks.storage.am.common.api.IndexException; public interface IInvertedIndexAccessor extends IIndexAccessor { public IInvertedListCursor createInvertedListCursor(); public void openInvertedListCursor(IInvertedListCursor listCursor, ITupleReference searchKey) - throws HyracksDataException, IndexException; + throws HyracksDataException; public IIndexCursor createRangeSearchCursor(); - public void rangeSearch(IIndexCursor cursor, ISearchPredicate searchPred) throws IndexException, - HyracksDataException; + public void rangeSearch(IIndexCursor cursor, ISearchPredicate searchPred) throws HyracksDataException; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedIndexSearcher.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedIndexSearcher.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedIndexSearcher.java index c426927..17e8ad2 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedIndexSearcher.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedIndexSearcher.java @@ -26,13 +26,12 @@ import org.apache.hyracks.api.comm.IFrameTupleAccessor; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference; import org.apache.hyracks.storage.am.common.api.IIndexOperationContext; -import org.apache.hyracks.storage.am.common.api.IndexException; import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.OnDiskInvertedIndexSearchCursor; import org.apache.hyracks.storage.am.lsm.invertedindex.search.InvertedIndexSearchPredicate; public interface IInvertedIndexSearcher { - public void search(OnDiskInvertedIndexSearchCursor resultCursor, InvertedIndexSearchPredicate searchPred, IIndexOperationContext ictx) - throws HyracksDataException, IndexException; + public void search(OnDiskInvertedIndexSearchCursor resultCursor, InvertedIndexSearchPredicate searchPred, + IIndexOperationContext ictx) throws HyracksDataException; public IFrameTupleAccessor createResultFrameTupleAccessor(); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListCursor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListCursor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListCursor.java index 9ec22d6..6ab6933 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListCursor.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListCursor.java @@ -22,17 +22,16 @@ package org.apache.hyracks.storage.am.lsm.invertedindex.api; import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference; -import org.apache.hyracks.storage.am.common.api.IndexException; import org.apache.hyracks.storage.am.common.ophelpers.MultiComparator; public interface IInvertedListCursor extends Comparable { public void reset(int startPageId, int endPageId, int startOff, int numElements); - public void pinPages() throws HyracksDataException, IndexException; + public void pinPages() throws HyracksDataException; public void unpinPages() throws HyracksDataException; - public boolean hasNext() throws HyracksDataException, IndexException; + public boolean hasNext() throws HyracksDataException; public void next() throws HyracksDataException; @@ -47,11 +46,11 @@ public interface IInvertedListCursor extends Comparable { public int getStartOff(); - public boolean containsKey(ITupleReference searchTuple, MultiComparator invListCmp) throws HyracksDataException, IndexException; + public boolean containsKey(ITupleReference searchTuple, MultiComparator invListCmp) throws HyracksDataException; // for debugging @SuppressWarnings("rawtypes") - public String printInvList(ISerializerDeserializer[] serdes) throws HyracksDataException, IndexException; + public String printInvList(ISerializerDeserializer[] serdes) throws HyracksDataException; @SuppressWarnings("rawtypes") public String printCurrentElement(ISerializerDeserializer[] serdes) throws HyracksDataException; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IPartitionedInvertedIndex.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IPartitionedInvertedIndex.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IPartitionedInvertedIndex.java index b7bada3..df8e6f0 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IPartitionedInvertedIndex.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IPartitionedInvertedIndex.java @@ -19,17 +19,16 @@ package org.apache.hyracks.storage.am.lsm.invertedindex.api; -import java.util.ArrayList; +import java.util.List; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.storage.am.common.api.IIndexOperationContext; -import org.apache.hyracks.storage.am.common.api.IndexException; import org.apache.hyracks.storage.am.lsm.invertedindex.search.InvertedListPartitions; public interface IPartitionedInvertedIndex { public boolean openInvertedListPartitionCursors(IInvertedIndexSearcher searcher, IIndexOperationContext ictx, short numTokensLowerBound, short numTokensUpperBound, InvertedListPartitions invListPartitions, - ArrayList cursorsOrderedByTokens) throws HyracksDataException, IndexException; + List cursorsOrderedByTokens) throws HyracksDataException; public boolean isEmpty(); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/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 fe5e94e..95010cc 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 @@ -27,7 +27,6 @@ import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.api.io.FileReference; import org.apache.hyracks.storage.am.common.api.IIndex; import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory; -import org.apache.hyracks.storage.am.common.api.IndexException; import org.apache.hyracks.storage.am.common.dataflow.IIndexOperatorDescriptor; import org.apache.hyracks.storage.am.common.util.IndexFileNameUtil; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; @@ -78,25 +77,19 @@ public final class LSMInvertedIndexDataflowHelper extends AbstractLSMIndexDatafl @Override public IIndex createIndexInstance() throws HyracksDataException { IInvertedIndexOperatorDescriptor invIndexOpDesc = (IInvertedIndexOperatorDescriptor) opDesc; - try { - IBufferCache diskBufferCache = opDesc.getStorageManager().getBufferCache(ctx); - IFileMapProvider diskFileMapProvider = opDesc.getStorageManager().getFileMapProvider(ctx); - FileReference fileRef = IndexFileNameUtil.getIndexAbsoluteFileRef(invIndexOpDesc, ctx.getTaskAttemptId() - .getTaskId().getPartition(), ctx.getIOManager()); - LSMInvertedIndex invIndex = InvertedIndexUtils.createLSMInvertedIndex(ctx.getIOManager(), - virtualBufferCaches, - diskFileMapProvider, invIndexOpDesc.getInvListsTypeTraits(), - invIndexOpDesc.getInvListsComparatorFactories(), invIndexOpDesc.getTokenTypeTraits(), - invIndexOpDesc.getTokenComparatorFactories(), invIndexOpDesc.getTokenizerFactory(), - diskBufferCache, fileRef.getFile().getAbsolutePath(), bloomFilterFalsePositiveRate, mergePolicy, - opTrackerFactory.getOperationTracker(ctx.getJobletContext().getServiceContext()), ioScheduler, - ioOpCallbackFactory.createIoOpCallback(), invertedIndexFields, filterTypeTraits, - filterCmpFactories, filterFields, filterFieldsForNonBulkLoadOps, - invertedIndexFieldsForNonBulkLoadOps, durable, (IMetadataPageManagerFactory) opDesc - .getPageManagerFactory()); - return invIndex; - } catch (IndexException e) { - throw new HyracksDataException(e); - } + IBufferCache diskBufferCache = opDesc.getStorageManager().getBufferCache(ctx); + IFileMapProvider diskFileMapProvider = opDesc.getStorageManager().getFileMapProvider(ctx); + FileReference fileRef = IndexFileNameUtil.getIndexAbsoluteFileRef(invIndexOpDesc, + ctx.getTaskAttemptId().getTaskId().getPartition(), ctx.getIOManager()); + LSMInvertedIndex invIndex = InvertedIndexUtils.createLSMInvertedIndex(ctx.getIOManager(), virtualBufferCaches, + diskFileMapProvider, invIndexOpDesc.getInvListsTypeTraits(), + invIndexOpDesc.getInvListsComparatorFactories(), invIndexOpDesc.getTokenTypeTraits(), + invIndexOpDesc.getTokenComparatorFactories(), invIndexOpDesc.getTokenizerFactory(), diskBufferCache, + fileRef.getFile().getAbsolutePath(), bloomFilterFalsePositiveRate, mergePolicy, + opTrackerFactory.getOperationTracker(ctx.getJobletContext().getServiceContext()), ioScheduler, + ioOpCallbackFactory.createIoOpCallback(), invertedIndexFields, filterTypeTraits, filterCmpFactories, + filterFields, filterFieldsForNonBulkLoadOps, invertedIndexFieldsForNonBulkLoadOps, durable, + (IMetadataPageManagerFactory) opDesc.getPageManagerFactory()); + return invIndex; } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/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 34c5810..07ca516 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 @@ -26,7 +26,6 @@ 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.storage.am.common.api.IIndex; -import org.apache.hyracks.storage.am.common.api.IndexException; import org.apache.hyracks.storage.am.common.dataflow.IIndexOperatorDescriptor; import org.apache.hyracks.storage.am.common.util.IndexFileNameUtil; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; @@ -77,24 +76,19 @@ public final class PartitionedLSMInvertedIndexDataflowHelper extends AbstractLSM @Override public IIndex createIndexInstance() throws HyracksDataException { IInvertedIndexOperatorDescriptor invIndexOpDesc = (IInvertedIndexOperatorDescriptor) opDesc; - try { - IBufferCache diskBufferCache = opDesc.getStorageManager().getBufferCache(ctx); - IFileMapProvider diskFileMapProvider = opDesc.getStorageManager().getFileMapProvider(ctx); - FileReference fileRef = IndexFileNameUtil.getIndexAbsoluteFileRef(invIndexOpDesc, ctx.getTaskAttemptId() - .getTaskId().getPartition(), ctx.getIOManager()); - PartitionedLSMInvertedIndex invIndex = InvertedIndexUtils.createPartitionedLSMInvertedIndex(ctx - .getIOManager(), - virtualBufferCaches, diskFileMapProvider, invIndexOpDesc.getInvListsTypeTraits(), - invIndexOpDesc.getInvListsComparatorFactories(), invIndexOpDesc.getTokenTypeTraits(), - invIndexOpDesc.getTokenComparatorFactories(), invIndexOpDesc.getTokenizerFactory(), - diskBufferCache, fileRef.getFile().getAbsolutePath(), bloomFilterFalsePositiveRate, mergePolicy, - opTrackerFactory.getOperationTracker(ctx.getJobletContext().getServiceContext()), ioScheduler, - ioOpCallbackFactory.createIoOpCallback(), invertedIndexFields, filterTypeTraits, - filterCmpFactories, filterFields, filterFieldsForNonBulkLoadOps, - invertedIndexFieldsForNonBulkLoadOps, durable, opDesc.getPageManagerFactory()); - return invIndex; - } catch (IndexException e) { - throw new HyracksDataException(e); - } + IBufferCache diskBufferCache = opDesc.getStorageManager().getBufferCache(ctx); + IFileMapProvider diskFileMapProvider = opDesc.getStorageManager().getFileMapProvider(ctx); + FileReference fileRef = IndexFileNameUtil.getIndexAbsoluteFileRef(invIndexOpDesc, + ctx.getTaskAttemptId().getTaskId().getPartition(), ctx.getIOManager()); + PartitionedLSMInvertedIndex invIndex = InvertedIndexUtils.createPartitionedLSMInvertedIndex(ctx.getIOManager(), + virtualBufferCaches, diskFileMapProvider, invIndexOpDesc.getInvListsTypeTraits(), + invIndexOpDesc.getInvListsComparatorFactories(), invIndexOpDesc.getTokenTypeTraits(), + invIndexOpDesc.getTokenComparatorFactories(), invIndexOpDesc.getTokenizerFactory(), diskBufferCache, + fileRef.getFile().getAbsolutePath(), bloomFilterFalsePositiveRate, mergePolicy, + opTrackerFactory.getOperationTracker(ctx.getJobletContext().getServiceContext()), ioScheduler, + ioOpCallbackFactory.createIoOpCallback(), invertedIndexFields, filterTypeTraits, filterCmpFactories, + filterFields, filterFieldsForNonBulkLoadOps, invertedIndexFieldsForNonBulkLoadOps, durable, + opDesc.getPageManagerFactory()); + return invIndex; } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/exceptions/InvertedIndexException.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/exceptions/InvertedIndexException.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/exceptions/InvertedIndexException.java deleted file mode 100644 index 14187f6..0000000 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/exceptions/InvertedIndexException.java +++ /dev/null @@ -1,34 +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.invertedindex.exceptions; - -import org.apache.hyracks.storage.am.common.api.IndexException; - -public class InvertedIndexException extends IndexException { - private static final long serialVersionUID = 1L; - - public InvertedIndexException(Exception e) { - super(e); - } - - public InvertedIndexException(String msg) { - super(msg); - } -} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/exceptions/OccurrenceThresholdPanicException.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/exceptions/OccurrenceThresholdPanicException.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/exceptions/OccurrenceThresholdPanicException.java deleted file mode 100644 index 86a0287..0000000 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/exceptions/OccurrenceThresholdPanicException.java +++ /dev/null @@ -1,30 +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.invertedindex.exceptions; - - - -public class OccurrenceThresholdPanicException extends InvertedIndexException { - private static final long serialVersionUID = 1L; - - public OccurrenceThresholdPanicException(String msg) { - super(msg); - } -} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndex.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndex.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndex.java index fc0e4ec..cc2e7fb 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndex.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndex.java @@ -22,9 +22,12 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.logging.Level; +import java.util.logging.Logger; import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory; import org.apache.hyracks.api.dataflow.value.ITypeTraits; +import org.apache.hyracks.api.exceptions.ErrorCode; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.api.io.FileReference; import org.apache.hyracks.api.io.IIOManager; @@ -46,8 +49,6 @@ import org.apache.hyracks.storage.am.common.api.IIndexOperationContext; import org.apache.hyracks.storage.am.common.api.IModificationOperationCallback; import org.apache.hyracks.storage.am.common.api.ISearchOperationCallback; import org.apache.hyracks.storage.am.common.api.ISearchPredicate; -import org.apache.hyracks.storage.am.common.api.IndexException; -import org.apache.hyracks.storage.am.common.exceptions.TreeIndexDuplicateKeyException; import org.apache.hyracks.storage.am.common.impls.AbstractSearchPredicate; import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallback; import org.apache.hyracks.storage.am.common.ophelpers.IndexOperation; @@ -89,6 +90,7 @@ import org.apache.hyracks.storage.common.buffercache.IBufferCache; import org.apache.hyracks.storage.common.file.IFileMapProvider; public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex { + private static final Logger LOGGER = Logger.getLogger(LSMInvertedIndex.class.getName()); protected final IBinaryTokenizerFactory tokenizerFactory; @@ -109,14 +111,13 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex OnDiskInvertedIndexFactory diskInvIndexFactory, BTreeFactory deletedKeysBTreeFactory, BloomFilterFactory bloomFilterFactory, ILSMComponentFilterFactory filterFactory, ILSMComponentFilterFrameFactory filterFrameFactory, LSMComponentFilterManager filterManager, - double bloomFilterFalsePositiveRate, ILSMIndexFileManager fileManager, - IFileMapProvider diskFileMapProvider, ITypeTraits[] invListTypeTraits, - IBinaryComparatorFactory[] invListCmpFactories, ITypeTraits[] tokenTypeTraits, - IBinaryComparatorFactory[] tokenCmpFactories, IBinaryTokenizerFactory tokenizerFactory, - ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, - ILSMIOOperationCallback ioOpCallback, int[] invertedIndexFields, int[] filterFields, - int[] filterFieldsForNonBulkLoadOps, int[] invertedIndexFieldsForNonBulkLoadOps, boolean durable) - throws IndexException, HyracksDataException { + double bloomFilterFalsePositiveRate, ILSMIndexFileManager fileManager, IFileMapProvider diskFileMapProvider, + ITypeTraits[] invListTypeTraits, IBinaryComparatorFactory[] invListCmpFactories, + ITypeTraits[] tokenTypeTraits, IBinaryComparatorFactory[] tokenCmpFactories, + IBinaryTokenizerFactory tokenizerFactory, ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, + ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, int[] invertedIndexFields, + int[] filterFields, int[] filterFieldsForNonBulkLoadOps, int[] invertedIndexFieldsForNonBulkLoadOps, + boolean durable) throws HyracksDataException { super(ioManager, virtualBufferCaches, diskInvIndexFactory.getBufferCache(), fileManager, diskFileMapProvider, bloomFilterFalsePositiveRate, mergePolicy, opTracker, ioScheduler, ioOpCallback, filterFrameFactory, filterManager, filterFields, durable); @@ -165,27 +166,18 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex if (isActivated) { throw new HyracksDataException("Failed to activate the index since it is already activated."); } - - try { - List immutableComponents = diskComponents; - immutableComponents.clear(); - List validFileReferences = fileManager.cleanupAndGetValidFiles(); - for (LSMComponentFileReferences lsmComonentFileReference : validFileReferences) { - LSMInvertedIndexDiskComponent component; - try { - component = createDiskInvIndexComponent(componentFactory, - lsmComonentFileReference.getInsertIndexFileReference(), - lsmComonentFileReference.getDeleteIndexFileReference(), - lsmComonentFileReference.getBloomFilterFileReference(), false); - } catch (IndexException e) { - throw new HyracksDataException(e); - } - immutableComponents.add(component); - } - isActivated = true; - } catch (IndexException e) { - throw new HyracksDataException(e); + List immutableComponents = diskComponents; + immutableComponents.clear(); + List validFileReferences = fileManager.cleanupAndGetValidFiles(); + for (LSMComponentFileReferences lsmComonentFileReference : validFileReferences) { + LSMInvertedIndexDiskComponent component; + component = createDiskInvIndexComponent(componentFactory, + lsmComonentFileReference.getInsertIndexFileReference(), + lsmComonentFileReference.getDeleteIndexFileReference(), + lsmComonentFileReference.getBloomFilterFileReference(), false); + immutableComponents.add(component); } + isActivated = true; } @Override @@ -215,8 +207,7 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex } if (flushOnExit) { BlockingIOOperationCallbackWrapper cb = new BlockingIOOperationCallbackWrapper(ioOpCallback); - ILSMIndexAccessor accessor = - createAccessor(NoOpOperationCallback.INSTANCE, NoOpOperationCallback.INSTANCE); + ILSMIndexAccessor accessor = createAccessor(NoOpOperationCallback.INSTANCE, NoOpOperationCallback.INSTANCE); accessor.scheduleFlush(cb); try { cb.waitForIO(); @@ -322,8 +313,7 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex * - Insert key into deleted-keys BTree. */ @Override - public void modify(IIndexOperationContext ictx, ITupleReference tuple) - throws HyracksDataException, IndexException { + public void modify(IIndexOperationContext ictx, ITupleReference tuple) throws HyracksDataException { LSMInvertedIndexOpContext ctx = (LSMInvertedIndexOpContext) ictx; // TODO: This is a hack to support logging properly in ASTERIX. // The proper undo operations are only dependent on the after image so @@ -355,8 +345,12 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex ctx.keysOnlyTuple.reset(indexTuple); try { ctx.currentDeletedKeysBTreeAccessors.insert(ctx.keysOnlyTuple); - } catch (TreeIndexDuplicateKeyException e) { - // Key has already been deleted. + } catch (HyracksDataException e) { + if (e.getErrorCode() != ErrorCode.DUPLICATE_KEY) { + // Key has already been deleted. + LOGGER.log(Level.WARNING, "Failure during index delete operation", e); + throw e; + } } break; } @@ -373,7 +367,7 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex @Override public void search(ILSMIndexOperationContext ictx, IIndexCursor cursor, ISearchPredicate pred) - throws HyracksDataException, IndexException { + throws HyracksDataException { List operationalComponents = ictx.getComponentHolder(); int numComponents = operationalComponents.size(); boolean includeMutableComponent = false; @@ -387,9 +381,8 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex IIndexAccessor invIndexAccessor = ((LSMInvertedIndexMemoryComponent) component).getInvIndex() .createAccessor(NoOpOperationCallback.INSTANCE, NoOpOperationCallback.INSTANCE); indexAccessors.add(invIndexAccessor); - IIndexAccessor deletedKeysAccessor = - ((LSMInvertedIndexMemoryComponent) component).getDeletedKeysBTree() - .createAccessor(NoOpOperationCallback.INSTANCE, NoOpOperationCallback.INSTANCE); + IIndexAccessor deletedKeysAccessor = ((LSMInvertedIndexMemoryComponent) component).getDeletedKeysBTree() + .createAccessor(NoOpOperationCallback.INSTANCE, NoOpOperationCallback.INSTANCE); deletedKeysBTreeAccessors.add(deletedKeysAccessor); } else { IIndexAccessor invIndexAccessor = ((LSMInvertedIndexDiskComponent) component).getInvIndex() @@ -465,7 +458,7 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex } @Override - public ILSMDiskComponent flush(ILSMIOOperation operation) throws HyracksDataException, IndexException { + public ILSMDiskComponent flush(ILSMIOOperation operation) throws HyracksDataException { LSMInvertedIndexFlushOperation flushOp = (LSMInvertedIndexFlushOperation) operation; // Create an inverted index instance to be bulk loaded. @@ -553,7 +546,7 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex @Override public void scheduleMerge(ILSMIndexOperationContext ctx, ILSMIOOperationCallback callback) - throws HyracksDataException, IndexException { + throws HyracksDataException { LSMInvertedIndexOpContext ictx = createOpContext(NoOpOperationCallback.INSTANCE, NoOpOperationCallback.INSTANCE); ictx.setOperation(IndexOperation.MERGE); @@ -569,8 +562,7 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex OnDiskInvertedIndex lastInvIndex = (OnDiskInvertedIndex) lastComponent.getInvIndex(); String lastFileName = lastInvIndex.getBTree().getFileReference().getFile().getName(); - LSMComponentFileReferences relMergeFileRefs = - fileManager.getRelMergeFileReference(firstFileName, lastFileName); + LSMComponentFileReferences relMergeFileRefs = fileManager.getRelMergeFileReference(firstFileName, lastFileName); ILSMIndexAccessor accessor = new LSMInvertedIndexAccessor(lsmHarness, ctx); ioScheduler.scheduleOperation(new LSMInvertedIndexMergeOperation(accessor, mergingComponents, cursor, relMergeFileRefs.getInsertIndexFileReference(), relMergeFileRefs.getDeleteIndexFileReference(), @@ -578,7 +570,7 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex } @Override - public ILSMDiskComponent merge(ILSMIOOperation operation) throws HyracksDataException, IndexException { + public ILSMDiskComponent merge(ILSMIOOperation operation) throws HyracksDataException { LSMInvertedIndexMergeOperation mergeOp = (LSMInvertedIndexMergeOperation) operation; IIndexCursor cursor = mergeOp.getCursor(); @@ -670,12 +662,8 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex @Override public IIndexBulkLoader createBulkLoader(float fillFactor, boolean verifyInput, long numElementsHint, - boolean checkIfEmptyIndex) throws IndexException { - try { - return new LSMInvertedIndexBulkLoader(fillFactor, verifyInput, numElementsHint, checkIfEmptyIndex); - } catch (HyracksDataException e) { - throw new IndexException(e); - } + boolean checkIfEmptyIndex) throws HyracksDataException { + return new LSMInvertedIndexBulkLoader(fillFactor, verifyInput, numElementsHint, checkIfEmptyIndex); } public class LSMInvertedIndexBulkLoader implements IIndexBulkLoader { @@ -689,17 +677,13 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex public final MultiComparator filterCmp; public LSMInvertedIndexBulkLoader(float fillFactor, boolean verifyInput, long numElementsHint, - boolean checkIfEmptyIndex) throws IndexException, HyracksDataException { + boolean checkIfEmptyIndex) throws HyracksDataException { if (checkIfEmptyIndex && !isEmptyIndex()) { - throw new IndexException("Cannot load an index that is not empty"); + throw HyracksDataException.create(ErrorCode.LOAD_NON_EMPTY_INDEX); } // Note that by using a flush target file name, we state that the // new bulk loaded tree is "newer" than any other merged tree. - try { - component = createBulkLoadTarget(); - } catch (HyracksDataException | IndexException e) { - throw new IndexException(e); - } + component = createBulkLoadTarget(); invIndexBulkLoader = ((LSMInvertedIndexDiskComponent) component).getInvIndex().createBulkLoader(fillFactor, verifyInput, numElementsHint, false); @@ -719,7 +703,7 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex } @Override - public void add(ITupleReference tuple) throws IndexException, HyracksDataException { + public void add(ITupleReference tuple) throws HyracksDataException { try { ITupleReference t; if (indexTuple != null) { @@ -736,7 +720,7 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex component.getLSMComponentFilter().update(filterTuple, filterCmp); } - } catch (IndexException | HyracksDataException | RuntimeException e) { + } catch (Exception e) { cleanupArtifacts(); throw e; } @@ -758,7 +742,7 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex } @Override - public void end() throws IndexException, HyracksDataException { + public void end() throws HyracksDataException { if (!cleanedUpArtifacts) { if (component.getLSMComponentFilter() != null) { filterManager.writeFilter(component.getLSMComponentFilter(), @@ -788,7 +772,7 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex } } - private ILSMDiskComponent createBulkLoadTarget() throws HyracksDataException, IndexException { + private ILSMDiskComponent createBulkLoadTarget() throws HyracksDataException { LSMComponentFileReferences componentFileRefs = fileManager.getRelFlushFileReference(); return createDiskInvIndexComponent(componentFactory, componentFileRefs.getInsertIndexFileReference(), componentFileRefs.getDeleteIndexFileReference(), componentFileRefs.getBloomFilterFileReference(), @@ -797,7 +781,7 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex } protected InMemoryInvertedIndex createInMemoryInvertedIndex(IVirtualBufferCache virtualBufferCache, - VirtualFreePageManager virtualFreePageManager, int id) throws IndexException, HyracksDataException { + VirtualFreePageManager virtualFreePageManager, int id) throws HyracksDataException { return InvertedIndexUtils.createInMemoryBTreeInvertedindex(virtualBufferCache, virtualFreePageManager, invListTypeTraits, invListCmpFactories, tokenTypeTraits, tokenCmpFactories, tokenizerFactory, ioManager.resolveAbsolutePath(fileManager.getBaseDir() + "_virtual_vocab_" + id)); @@ -805,7 +789,7 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex protected LSMInvertedIndexDiskComponent createDiskInvIndexComponent(ILSMDiskComponentFactory factory, FileReference dictBTreeFileRef, FileReference btreeFileRef, FileReference bloomFilterFileRef, - boolean create) throws HyracksDataException, IndexException { + boolean create) throws HyracksDataException { LSMInvertedIndexDiskComponent component = (LSMInvertedIndexDiskComponent) factory .createComponent(new LSMComponentFileReferences(dictBTreeFileRef, btreeFileRef, bloomFilterFileRef)); if (create) { @@ -843,7 +827,7 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex @Override public void openInvertedListCursor(IInvertedListCursor listCursor, ITupleReference searchKey, - IIndexOperationContext ictx) throws HyracksDataException, IndexException { + IIndexOperationContext ictx) throws HyracksDataException { throw new UnsupportedOperationException("Cannot open inverted list cursor on lsm inverted index."); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexAccessor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexAccessor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexAccessor.java index 604a57c..ec869fa 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexAccessor.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexAccessor.java @@ -25,7 +25,6 @@ import org.apache.hyracks.data.std.api.IValueReference; import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference; import org.apache.hyracks.storage.am.common.api.IIndexCursor; import org.apache.hyracks.storage.am.common.api.ISearchPredicate; -import org.apache.hyracks.storage.am.common.api.IndexException; import org.apache.hyracks.storage.am.common.ophelpers.IndexOperation; import org.apache.hyracks.storage.am.lsm.common.api.ILSMDiskComponent; import org.apache.hyracks.storage.am.lsm.common.api.ILSMHarness; @@ -48,31 +47,31 @@ public class LSMInvertedIndexAccessor implements ILSMIndexAccessor, IInvertedInd } @Override - public void insert(ITupleReference tuple) throws HyracksDataException, IndexException { + public void insert(ITupleReference tuple) throws HyracksDataException { ctx.setOperation(IndexOperation.INSERT); lsmHarness.modify(ctx, false, tuple); } @Override - public void delete(ITupleReference tuple) throws HyracksDataException, IndexException { + public void delete(ITupleReference tuple) throws HyracksDataException { ctx.setOperation(IndexOperation.DELETE); lsmHarness.modify(ctx, false, tuple); } @Override - public boolean tryInsert(ITupleReference tuple) throws HyracksDataException, IndexException { + public boolean tryInsert(ITupleReference tuple) throws HyracksDataException { ctx.setOperation(IndexOperation.INSERT); return lsmHarness.modify(ctx, true, tuple); } @Override - public boolean tryDelete(ITupleReference tuple) throws HyracksDataException, IndexException { + public boolean tryDelete(ITupleReference tuple) throws HyracksDataException { ctx.setOperation(IndexOperation.DELETE); return lsmHarness.modify(ctx, true, tuple); } @Override - public void search(IIndexCursor cursor, ISearchPredicate searchPred) throws HyracksDataException, IndexException { + public void search(IIndexCursor cursor, ISearchPredicate searchPred) throws HyracksDataException { ctx.setOperation(IndexOperation.SEARCH); lsmHarness.search(ctx, cursor, searchPred); } @@ -89,13 +88,13 @@ public class LSMInvertedIndexAccessor implements ILSMIndexAccessor, IInvertedInd } @Override - public void flush(ILSMIOOperation operation) throws HyracksDataException, IndexException { + public void flush(ILSMIOOperation operation) throws HyracksDataException { lsmHarness.flush(ctx, operation); } @Override public void scheduleMerge(ILSMIOOperationCallback callback, List components) - throws HyracksDataException, IndexException { + throws HyracksDataException { ctx.setOperation(IndexOperation.MERGE); ctx.getComponentsToBeMerged().clear(); ctx.getComponentsToBeMerged().addAll(components); @@ -112,13 +111,13 @@ public class LSMInvertedIndexAccessor implements ILSMIndexAccessor, IInvertedInd } @Override - public void scheduleFullMerge(ILSMIOOperationCallback callback) throws HyracksDataException, IndexException { + public void scheduleFullMerge(ILSMIOOperationCallback callback) throws HyracksDataException { ctx.setOperation(IndexOperation.FULL_MERGE); lsmHarness.scheduleFullMerge(ctx, callback); } @Override - public void merge(ILSMIOOperation operation) throws HyracksDataException, IndexException { + public void merge(ILSMIOOperation operation) throws HyracksDataException { lsmHarness.merge(ctx, operation); } @@ -128,50 +127,49 @@ public class LSMInvertedIndexAccessor implements ILSMIndexAccessor, IInvertedInd } @Override - public void rangeSearch(IIndexCursor cursor, ISearchPredicate searchPred) - throws IndexException, HyracksDataException { + public void rangeSearch(IIndexCursor cursor, ISearchPredicate searchPred) throws HyracksDataException { search(cursor, searchPred); } @Override - public void forcePhysicalDelete(ITupleReference tuple) throws HyracksDataException, IndexException { + public void forcePhysicalDelete(ITupleReference tuple) throws HyracksDataException { throw new UnsupportedOperationException("Physical delete not supported by lsm inverted index."); } @Override - public void forceInsert(ITupleReference tuple) throws HyracksDataException, IndexException { + public void forceInsert(ITupleReference tuple) throws HyracksDataException { ctx.setOperation(IndexOperation.INSERT); lsmHarness.forceModify(ctx, tuple); } @Override - public void forceDelete(ITupleReference tuple) throws HyracksDataException, IndexException { + public void forceDelete(ITupleReference tuple) throws HyracksDataException { ctx.setOperation(IndexOperation.DELETE); lsmHarness.forceModify(ctx, tuple); } @Override - public void physicalDelete(ITupleReference tuple) throws HyracksDataException, IndexException { + public void physicalDelete(ITupleReference tuple) throws HyracksDataException { throw new UnsupportedOperationException("Physical delete not supported by lsm inverted index."); } @Override - public void update(ITupleReference tuple) throws HyracksDataException, IndexException { + public void update(ITupleReference tuple) throws HyracksDataException { throw new UnsupportedOperationException("Update not supported by lsm inverted index."); } @Override - public void upsert(ITupleReference tuple) throws HyracksDataException, IndexException { + public void upsert(ITupleReference tuple) throws HyracksDataException { throw new UnsupportedOperationException("Upsert not supported by lsm inverted index."); } @Override - public boolean tryUpdate(ITupleReference tuple) throws HyracksDataException, IndexException { + public boolean tryUpdate(ITupleReference tuple) throws HyracksDataException { throw new UnsupportedOperationException("Update not supported by lsm inverted index."); } @Override - public boolean tryUpsert(ITupleReference tuple) throws HyracksDataException, IndexException { + public boolean tryUpsert(ITupleReference tuple) throws HyracksDataException { throw new UnsupportedOperationException("Upsert not supported by lsm inverted index."); } @@ -182,7 +180,7 @@ public class LSMInvertedIndexAccessor implements ILSMIndexAccessor, IInvertedInd @Override public void openInvertedListCursor(IInvertedListCursor listCursor, ITupleReference searchKey) - throws HyracksDataException, IndexException { + throws HyracksDataException { throw new UnsupportedOperationException("Cannot open inverted list cursor on lsm inverted index."); } @@ -201,7 +199,7 @@ public class LSMInvertedIndexAccessor implements ILSMIndexAccessor, IInvertedInd } @Override - public void forceUpsert(ITupleReference tuple) throws HyracksDataException, IndexException { + public void forceUpsert(ITupleReference tuple) throws HyracksDataException { throw new UnsupportedOperationException("Upsert not supported by lsm inverted index."); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexDeletedKeysBTreeMergeCursor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexDeletedKeysBTreeMergeCursor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexDeletedKeysBTreeMergeCursor.java index 4ebabdb..6a875a0 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexDeletedKeysBTreeMergeCursor.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexDeletedKeysBTreeMergeCursor.java @@ -27,7 +27,6 @@ import org.apache.hyracks.storage.am.common.api.ICursorInitialState; import org.apache.hyracks.storage.am.common.api.IIndexAccessor; import org.apache.hyracks.storage.am.common.api.IIndexCursor; import org.apache.hyracks.storage.am.common.api.ISearchPredicate; -import org.apache.hyracks.storage.am.common.api.IndexException; import org.apache.hyracks.storage.am.common.ophelpers.MultiComparator; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexOperationContext; import org.apache.hyracks.storage.am.lsm.common.impls.LSMIndexSearchCursor; @@ -39,14 +38,14 @@ public class LSMInvertedIndexDeletedKeysBTreeMergeCursor extends LSMIndexSearchC } @Override - protected boolean isDeleted(PriorityQueueElement checkElement) throws HyracksDataException, IndexException { + protected boolean isDeleted(PriorityQueueElement checkElement) throws HyracksDataException { return false; } @Override - public void open(ICursorInitialState initialState, ISearchPredicate searchPred) throws HyracksDataException, - IndexException { - LSMInvertedIndexRangeSearchCursorInitialState lsmInitialState = (LSMInvertedIndexRangeSearchCursorInitialState) initialState; + public void open(ICursorInitialState initialState, ISearchPredicate searchPred) throws HyracksDataException { + LSMInvertedIndexRangeSearchCursorInitialState lsmInitialState = + (LSMInvertedIndexRangeSearchCursorInitialState) initialState; cmp = lsmInitialState.getOriginalKeyComparator(); operationalComponents = lsmInitialState.getOperationalComponents(); // We intentionally set the lsmHarness to null so that we don't call lsmHarness.endSearch() because we already do that when we merge the inverted indexes. http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFileManager.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFileManager.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFileManager.java index 97255f6..aeb1e16 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFileManager.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFileManager.java @@ -30,7 +30,6 @@ import java.util.List; 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.common.api.IndexException; import org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMIndexFileManager; import org.apache.hyracks.storage.am.lsm.common.impls.BTreeFactory; import org.apache.hyracks.storage.am.lsm.common.impls.LSMComponentFileReferences; @@ -79,8 +78,8 @@ public class LSMInvertedIndexFileManager extends AbstractLSMIndexFileManager imp String baseName = baseDir + ts + SPLIT_STRING + ts; // Begin timestamp and end timestamp are identical since it is a flush return new LSMComponentFileReferences(createFlushFile(baseName + SPLIT_STRING + DICT_BTREE_SUFFIX), - createFlushFile(baseName + SPLIT_STRING + DELETED_KEYS_BTREE_SUFFIX), createFlushFile(baseName - + SPLIT_STRING + BLOOM_FILTER_STRING)); + createFlushFile(baseName + SPLIT_STRING + DELETED_KEYS_BTREE_SUFFIX), + createFlushFile(baseName + SPLIT_STRING + BLOOM_FILTER_STRING)); } @Override @@ -92,12 +91,12 @@ public class LSMInvertedIndexFileManager extends AbstractLSMIndexFileManager imp String baseName = baseDir + firstTimestampRange[0] + SPLIT_STRING + lastTimestampRange[1]; // Get the range of timestamps by taking the earliest and the latest timestamps return new LSMComponentFileReferences(createMergeFile(baseName + SPLIT_STRING + DICT_BTREE_SUFFIX), - createMergeFile(baseName + SPLIT_STRING + DELETED_KEYS_BTREE_SUFFIX), createMergeFile(baseName - + SPLIT_STRING + BLOOM_FILTER_STRING)); + createMergeFile(baseName + SPLIT_STRING + DELETED_KEYS_BTREE_SUFFIX), + createMergeFile(baseName + SPLIT_STRING + BLOOM_FILTER_STRING)); } @Override - public List cleanupAndGetValidFiles() throws HyracksDataException, IndexException { + public List cleanupAndGetValidFiles() throws HyracksDataException { List validFiles = new ArrayList<>(); ArrayList allDictBTreeFiles = new ArrayList<>(); ArrayList allInvListsFiles = new ArrayList<>(); @@ -133,8 +132,8 @@ public class LSMInvertedIndexFileManager extends AbstractLSMIndexFileManager imp if (allDictBTreeFiles.size() == 1 && allInvListsFiles.size() == 1 && allDeletedKeysBTreeFiles.size() == 1 && allBloomFilterFiles.size() == 1) { - validFiles.add(new LSMComponentFileReferences(allDictBTreeFiles.get(0).fileRef, allDeletedKeysBTreeFiles - .get(0).fileRef, allBloomFilterFiles.get(0).fileRef)); + validFiles.add(new LSMComponentFileReferences(allDictBTreeFiles.get(0).fileRef, + allDeletedKeysBTreeFiles.get(0).fileRef, allBloomFilterFiles.get(0).fileRef)); return validFiles; } @@ -184,7 +183,8 @@ public class LSMInvertedIndexFileManager extends AbstractLSMIndexFileManager imp invalidBloomFilterFile.delete(); } else { // This scenario should not be possible. - throw new HyracksDataException("Found LSM files with overlapping but not contained timetamp intervals."); + throw new HyracksDataException( + "Found LSM files with overlapping but not contained timetamp intervals."); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFlushOperation.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFlushOperation.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFlushOperation.java index 03ba304..26eed04 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFlushOperation.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFlushOperation.java @@ -26,7 +26,6 @@ import java.util.Set; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.api.io.FileReference; import org.apache.hyracks.api.io.IODeviceHandle; -import org.apache.hyracks.storage.am.common.api.IndexException; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperation; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback; @@ -69,7 +68,7 @@ public class LSMInvertedIndexFlushOperation implements ILSMIOOperation, Comparab } @Override - public Boolean call() throws HyracksDataException, IndexException { + public Boolean call() throws HyracksDataException { accessor.flush(this); return true; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexMergeOperation.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexMergeOperation.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexMergeOperation.java index c22af32..ffc1e8e 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexMergeOperation.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexMergeOperation.java @@ -27,7 +27,6 @@ import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.api.io.FileReference; import org.apache.hyracks.api.io.IODeviceHandle; import org.apache.hyracks.storage.am.common.api.IIndexCursor; -import org.apache.hyracks.storage.am.common.api.IndexException; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperation; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback; @@ -80,7 +79,7 @@ public class LSMInvertedIndexMergeOperation implements ILSMIOOperation { } @Override - public Boolean call() throws HyracksDataException, IndexException { + public Boolean call() throws HyracksDataException { accessor.merge(this); return true; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexRangeSearchCursor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexRangeSearchCursor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexRangeSearchCursor.java index 358317c..0d37056 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexRangeSearchCursor.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexRangeSearchCursor.java @@ -28,7 +28,6 @@ import org.apache.hyracks.storage.am.common.api.ICursorInitialState; import org.apache.hyracks.storage.am.common.api.IIndexAccessor; import org.apache.hyracks.storage.am.common.api.IIndexCursor; import org.apache.hyracks.storage.am.common.api.ISearchPredicate; -import org.apache.hyracks.storage.am.common.api.IndexException; import org.apache.hyracks.storage.am.common.ophelpers.MultiComparator; import org.apache.hyracks.storage.am.common.tuples.PermutingTupleReference; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent; @@ -56,9 +55,9 @@ public class LSMInvertedIndexRangeSearchCursor extends LSMIndexSearchCursor { } @Override - public void open(ICursorInitialState initState, ISearchPredicate searchPred) throws IndexException, - HyracksDataException { - LSMInvertedIndexRangeSearchCursorInitialState lsmInitState = (LSMInvertedIndexRangeSearchCursorInitialState) initState; + public void open(ICursorInitialState initState, ISearchPredicate searchPred) throws HyracksDataException { + LSMInvertedIndexRangeSearchCursorInitialState lsmInitState = + (LSMInvertedIndexRangeSearchCursorInitialState) initState; cmp = lsmInitState.getOriginalKeyComparator(); int numComponents = lsmInitState.getNumComponents(); rangeCursors = new IIndexCursor[numComponents]; @@ -100,7 +99,7 @@ public class LSMInvertedIndexRangeSearchCursor extends LSMIndexSearchCursor { * Check deleted-keys BTrees whether they contain the key in the checkElement's tuple. */ @Override - protected boolean isDeleted(PriorityQueueElement checkElement) throws HyracksDataException, IndexException { + protected boolean isDeleted(PriorityQueueElement checkElement) throws HyracksDataException { keysOnlyTuple.reset(checkElement.getTuple()); int end = checkElement.getCursorIndex(); for (int i = 0; i < end; i++) { @@ -110,8 +109,6 @@ public class LSMInvertedIndexRangeSearchCursor extends LSMIndexSearchCursor { if (deletedKeysBTreeCursors[i].hasNext()) { return true; } - } catch (IndexException e) { - throw new HyracksDataException(e); } finally { deletedKeysBTreeCursors[i].close(); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexSearchCursor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexSearchCursor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexSearchCursor.java index 521d81d..607f957 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexSearchCursor.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexSearchCursor.java @@ -29,14 +29,12 @@ import org.apache.hyracks.storage.am.common.api.IIndexAccessor; import org.apache.hyracks.storage.am.common.api.IIndexCursor; import org.apache.hyracks.storage.am.common.api.ISearchOperationCallback; import org.apache.hyracks.storage.am.common.api.ISearchPredicate; -import org.apache.hyracks.storage.am.common.api.IndexException; import org.apache.hyracks.storage.am.common.ophelpers.MultiComparator; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent.LSMComponentType; import org.apache.hyracks.storage.am.lsm.common.api.ILSMHarness; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexOperationContext; import org.apache.hyracks.storage.am.lsm.common.impls.BloomFilterAwareBTreePointSearchCursor; -import org.apache.hyracks.storage.am.lsm.invertedindex.exceptions.OccurrenceThresholdPanicException; /** * Searches the components one-by-one, completely consuming a cursor before moving on to the next one. @@ -82,8 +80,8 @@ public class LSMInvertedIndexSearchCursor implements IIndexCursor { // No need for a bloom filter for the in-memory BTree. deletedKeysBTreeCursors[i] = deletedKeysBTreeAccessors.get(i).createSearchCursor(false); } else { - deletedKeysBTreeCursors[i] = new BloomFilterAwareBTreePointSearchCursor((IBTreeLeafFrame) lsmInitState - .getgetDeletedKeysBTreeLeafFrameFactory().createFrame(), false, + deletedKeysBTreeCursors[i] = new BloomFilterAwareBTreePointSearchCursor( + (IBTreeLeafFrame) lsmInitState.getgetDeletedKeysBTreeLeafFrameFactory().createFrame(), false, ((LSMInvertedIndexDiskComponent) operationalComponents.get(i)).getBloomFilter()); } } @@ -92,7 +90,7 @@ public class LSMInvertedIndexSearchCursor implements IIndexCursor { keySearchPred = new RangePredicate(null, null, true, true, keyCmp, keyCmp); } - protected boolean isDeleted(ITupleReference key) throws HyracksDataException, IndexException { + protected boolean isDeleted(ITupleReference key) throws HyracksDataException { keySearchPred.setLowKey(key, true); keySearchPred.setHighKey(key, true); for (int i = 0; i < accessorIndex; i++) { @@ -102,8 +100,6 @@ public class LSMInvertedIndexSearchCursor implements IIndexCursor { if (deletedKeysBTreeCursors[i].hasNext()) { return true; } - } catch (IndexException e) { - throw new HyracksDataException(e); } finally { deletedKeysBTreeCursors[i].close(); } @@ -112,7 +108,7 @@ public class LSMInvertedIndexSearchCursor implements IIndexCursor { } // Move to the next tuple that has not been deleted. - private boolean nextValidTuple() throws HyracksDataException, IndexException { + private boolean nextValidTuple() throws HyracksDataException { while (currentCursor.hasNext()) { currentCursor.next(); if (!isDeleted(currentCursor.getTuple())) { @@ -124,7 +120,7 @@ public class LSMInvertedIndexSearchCursor implements IIndexCursor { } @Override - public boolean hasNext() throws HyracksDataException, IndexException { + public boolean hasNext() throws HyracksDataException { if (!tupleConsumed) { return true; } @@ -139,13 +135,7 @@ public class LSMInvertedIndexSearchCursor implements IIndexCursor { // Current cursor has been exhausted, switch to next accessor/cursor. currentAccessor = indexAccessors.get(accessorIndex); currentCursor = currentAccessor.createSearchCursor(false); - try { - currentAccessor.search(currentCursor, searchPred); - } catch (OccurrenceThresholdPanicException e) { - throw e; - } catch (IndexException e) { - throw new HyracksDataException(e); - } + currentAccessor.search(currentCursor, searchPred); if (nextValidTuple()) { return true; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/PartitionedLSMInvertedIndex.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/PartitionedLSMInvertedIndex.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/PartitionedLSMInvertedIndex.java index 0cd19c9..8cd45dc 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/PartitionedLSMInvertedIndex.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/PartitionedLSMInvertedIndex.java @@ -26,7 +26,6 @@ import org.apache.hyracks.api.dataflow.value.ITypeTraits; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.api.io.IIOManager; import org.apache.hyracks.storage.am.bloomfilter.impls.BloomFilterFactory; -import org.apache.hyracks.storage.am.common.api.IndexException; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponentFilterFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponentFilterFrameFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback; @@ -50,25 +49,23 @@ public class PartitionedLSMInvertedIndex extends LSMInvertedIndex { OnDiskInvertedIndexFactory diskInvIndexFactory, BTreeFactory deletedKeysBTreeFactory, BloomFilterFactory bloomFilterFactory, ILSMComponentFilterFactory filterFactory, ILSMComponentFilterFrameFactory filterFrameFactory, LSMComponentFilterManager filterManager, - double bloomFilterFalsePositiveRate, ILSMIndexFileManager fileManager, - IFileMapProvider diskFileMapProvider, ITypeTraits[] invListTypeTraits, - IBinaryComparatorFactory[] invListCmpFactories, ITypeTraits[] tokenTypeTraits, - IBinaryComparatorFactory[] tokenCmpFactories, IBinaryTokenizerFactory tokenizerFactory, - ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, - ILSMIOOperationCallback ioOpCallback, int[] invertedIndexFields, int[] filterFields, - int[] filterFieldsForNonBulkLoadOps, int[] invertedIndexFieldsForNonBulkLoadOps, boolean durable) - throws IndexException, HyracksDataException { + double bloomFilterFalsePositiveRate, ILSMIndexFileManager fileManager, IFileMapProvider diskFileMapProvider, + ITypeTraits[] invListTypeTraits, IBinaryComparatorFactory[] invListCmpFactories, + ITypeTraits[] tokenTypeTraits, IBinaryComparatorFactory[] tokenCmpFactories, + IBinaryTokenizerFactory tokenizerFactory, ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, + ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, int[] invertedIndexFields, + int[] filterFields, int[] filterFieldsForNonBulkLoadOps, int[] invertedIndexFieldsForNonBulkLoadOps, + boolean durable) throws HyracksDataException { super(ioManager, virtualBufferCaches, diskInvIndexFactory, deletedKeysBTreeFactory, bloomFilterFactory, - filterFactory, - filterFrameFactory, filterManager, bloomFilterFalsePositiveRate, fileManager, diskFileMapProvider, - invListTypeTraits, invListCmpFactories, tokenTypeTraits, tokenCmpFactories, tokenizerFactory, - mergePolicy, opTracker, ioScheduler, ioOpCallback, invertedIndexFields, filterFields, + filterFactory, filterFrameFactory, filterManager, bloomFilterFalsePositiveRate, fileManager, + diskFileMapProvider, invListTypeTraits, invListCmpFactories, tokenTypeTraits, tokenCmpFactories, + tokenizerFactory, mergePolicy, opTracker, ioScheduler, ioOpCallback, invertedIndexFields, filterFields, filterFieldsForNonBulkLoadOps, invertedIndexFieldsForNonBulkLoadOps, durable); } @Override protected InMemoryInvertedIndex createInMemoryInvertedIndex(IVirtualBufferCache virtualBufferCache, - VirtualFreePageManager virtualFreePageManager, int id) throws IndexException, HyracksDataException { + VirtualFreePageManager virtualFreePageManager, int id) throws HyracksDataException { return InvertedIndexUtils.createPartitionedInMemoryBTreeInvertedindex(virtualBufferCache, virtualFreePageManager, invListTypeTraits, invListCmpFactories, tokenTypeTraits, tokenCmpFactories, tokenizerFactory, ioManager.resolveAbsolutePath(fileManager.getBaseDir() + "_virtual_vocab_" + id)); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedIndex.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedIndex.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedIndex.java index 583c5f4..1b33e79 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedIndex.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedIndex.java @@ -20,6 +20,7 @@ package org.apache.hyracks.storage.am.lsm.invertedindex.inmemory; import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory; import org.apache.hyracks.api.dataflow.value.ITypeTraits; +import org.apache.hyracks.api.exceptions.ErrorCode; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.api.io.FileReference; import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference; @@ -33,9 +34,6 @@ import org.apache.hyracks.storage.am.common.api.IIndexOperationContext; import org.apache.hyracks.storage.am.common.api.IModificationOperationCallback; import org.apache.hyracks.storage.am.common.api.IPageManager; import org.apache.hyracks.storage.am.common.api.ISearchOperationCallback; -import org.apache.hyracks.storage.am.common.api.IndexException; -import org.apache.hyracks.storage.am.common.exceptions.TreeIndexDuplicateKeyException; -import org.apache.hyracks.storage.am.common.exceptions.TreeIndexNonExistentKeyException; import org.apache.hyracks.storage.am.common.ophelpers.IndexOperation; import org.apache.hyracks.storage.am.lsm.common.api.IVirtualBufferCache; import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndex; @@ -112,7 +110,7 @@ public class InMemoryInvertedIndex implements IInvertedIndex { } public void insert(ITupleReference tuple, BTreeAccessor btreeAccessor, IIndexOperationContext ictx) - throws HyracksDataException, IndexException { + throws HyracksDataException { InMemoryInvertedIndexOpContext ctx = (InMemoryInvertedIndexOpContext) ictx; ctx.tupleIter.reset(tuple); while (ctx.tupleIter.hasNext()) { @@ -120,16 +118,19 @@ public class InMemoryInvertedIndex implements IInvertedIndex { ITupleReference insertTuple = ctx.tupleIter.getTuple(); try { btreeAccessor.insert(insertTuple); - } catch (TreeIndexDuplicateKeyException e) { - // This exception may be caused by duplicate tokens in the same insert "document". - // We ignore such duplicate tokens in all inverted-index implementations, hence - // we can safely ignore this exception. + } catch (HyracksDataException e) { + if (e.getErrorCode() != ErrorCode.DUPLICATE_KEY) { + // This exception may be caused by duplicate tokens in the same insert "document". + // We ignore such duplicate tokens in all inverted-index implementations, hence + // we can safely ignore this exception. + throw e; + } } } } public void delete(ITupleReference tuple, BTreeAccessor btreeAccessor, IIndexOperationContext ictx) - throws HyracksDataException, IndexException { + throws HyracksDataException { InMemoryInvertedIndexOpContext ctx = (InMemoryInvertedIndexOpContext) ictx; ctx.tupleIter.reset(tuple); while (ctx.tupleIter.hasNext()) { @@ -137,8 +138,11 @@ public class InMemoryInvertedIndex implements IInvertedIndex { ITupleReference deleteTuple = ctx.tupleIter.getTuple(); try { btreeAccessor.delete(deleteTuple); - } catch (TreeIndexNonExistentKeyException e) { - // Ignore this exception, since a document may have duplicate tokens. + } catch (HyracksDataException e) { + if (e.getErrorCode() != ErrorCode.UPDATE_OR_DELETE_NON_EXISTENT_KEY) { + // Ignore this exception, since a document may have duplicate tokens. + throw e; + } } } } @@ -156,7 +160,7 @@ public class InMemoryInvertedIndex implements IInvertedIndex { @Override public void openInvertedListCursor(IInvertedListCursor listCursor, ITupleReference searchKey, - IIndexOperationContext ictx) throws HyracksDataException, IndexException { + IIndexOperationContext ictx) throws HyracksDataException { InMemoryInvertedIndexOpContext ctx = (InMemoryInvertedIndexOpContext) ictx; ctx.setOperation(IndexOperation.SEARCH); InMemoryInvertedListCursor inMemListCursor = (InMemoryInvertedListCursor) listCursor; @@ -192,7 +196,7 @@ public class InMemoryInvertedIndex implements IInvertedIndex { @Override public IIndexBulkLoader createBulkLoader(float fillFactor, boolean verifyInput, long numElementsHint, - boolean checkIfEmptyIndex) throws IndexException { + boolean checkIfEmptyIndex) throws HyracksDataException { throw new UnsupportedOperationException("Bulk load not supported by in-memory inverted index."); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3b3319a9/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedIndexAccessor.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedIndexAccessor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedIndexAccessor.java index ffe5259..26fa40a 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedIndexAccessor.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedIndexAccessor.java @@ -28,7 +28,6 @@ import org.apache.hyracks.storage.am.btree.impls.BTreeRangeSearchCursor; import org.apache.hyracks.storage.am.common.api.IIndexCursor; import org.apache.hyracks.storage.am.common.api.IIndexOperationContext; import org.apache.hyracks.storage.am.common.api.ISearchPredicate; -import org.apache.hyracks.storage.am.common.api.IndexException; import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallback; import org.apache.hyracks.storage.am.common.ophelpers.IndexOperation; import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndexAccessor; @@ -57,13 +56,13 @@ public class InMemoryInvertedIndexAccessor implements IInvertedIndexAccessor { } @Override - public void insert(ITupleReference tuple) throws HyracksDataException, IndexException { + public void insert(ITupleReference tuple) throws HyracksDataException { opCtx.setOperation(IndexOperation.INSERT); index.insert(tuple, btreeAccessor, opCtx); } @Override - public void delete(ITupleReference tuple) throws HyracksDataException, IndexException { + public void delete(ITupleReference tuple) throws HyracksDataException { opCtx.setOperation(IndexOperation.DELETE); index.delete(tuple, btreeAccessor, opCtx); } @@ -74,7 +73,7 @@ public class InMemoryInvertedIndexAccessor implements IInvertedIndexAccessor { } @Override - public void search(IIndexCursor cursor, ISearchPredicate searchPred) throws HyracksDataException, IndexException { + public void search(IIndexCursor cursor, ISearchPredicate searchPred) throws HyracksDataException { searcher.search((OnDiskInvertedIndexSearchCursor) cursor, (InvertedIndexSearchPredicate) searchPred, opCtx); } @@ -85,7 +84,7 @@ public class InMemoryInvertedIndexAccessor implements IInvertedIndexAccessor { @Override public void openInvertedListCursor(IInvertedListCursor listCursor, ITupleReference searchKey) - throws HyracksDataException, IndexException { + throws HyracksDataException { index.openInvertedListCursor(listCursor, searchKey, opCtx); } @@ -96,8 +95,7 @@ public class InMemoryInvertedIndexAccessor implements IInvertedIndexAccessor { } @Override - public void rangeSearch(IIndexCursor cursor, ISearchPredicate searchPred) throws IndexException, - HyracksDataException { + public void rangeSearch(IIndexCursor cursor, ISearchPredicate searchPred) throws HyracksDataException { btreeAccessor.search(cursor, searchPred); } @@ -106,12 +104,12 @@ public class InMemoryInvertedIndexAccessor implements IInvertedIndexAccessor { } @Override - public void update(ITupleReference tuple) throws HyracksDataException, IndexException { + public void update(ITupleReference tuple) throws HyracksDataException { throw new UnsupportedOperationException("Update not supported by in-memory inverted index."); } @Override - public void upsert(ITupleReference tuple) throws HyracksDataException, IndexException { + public void upsert(ITupleReference tuple) throws HyracksDataException { throw new UnsupportedOperationException("Upsert not supported by in-memory inverted index."); }