You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Ildar Absalyamov (Code Review)" <do...@asterixdb.incubator.apache.org> on 2015/10/15 08:03:56 UTC
Change in hyracks[master]: Fixed m2e lifecycle mapping pom issues
Ildar Absalyamov has uploaded a new change for review.
https://asterix-gerrit.ics.uci.edu/453
Change subject: Fixed m2e lifecycle mapping pom issues
......................................................................
Fixed m2e lifecycle mapping pom issues
Change-Id: Ifc8927a7fe90577d787c3d30c371ea95dd4aa24e
---
M hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/api/INumeric.java
M hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTree.java
M hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTreeWithBuddy.java
M hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTree.java
M hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeDiskComponent.java
M hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeFileManager.java
M hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeFlushOperation.java
M hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeMergeOperation.java
M hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreePointSearchCursor.java
M hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyDiskComponent.java
M hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyFileManager.java
M hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyMergeOperation.java
M hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractDiskLSMComponent.java
M hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndexFileManager.java
M hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMComponentFileReferences.java
M hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndex.java
M hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexDiskComponent.java
M hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFileManager.java
M hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFlushOperation.java
M hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexMergeOperation.java
M hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java
M hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java
M hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeDiskComponent.java
M hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFileManager.java
M hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFlushOperation.java
M hyracks/pom.xml
26 files changed, 345 insertions(+), 584 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/hyracks refs/changes/53/453/1
diff --git a/hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/api/INumeric.java b/hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/api/INumeric.java
index 7be6680..a740d1a 100644
--- a/hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/api/INumeric.java
+++ b/hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/api/INumeric.java
@@ -30,4 +30,6 @@
public float floatValue();
public double doubleValue();
+
+ // public void shiftRight(int pos);
}
\ No newline at end of file
diff --git a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTree.java b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTree.java
index 3ade4fa..246ea7a 100644
--- a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTree.java
+++ b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTree.java
@@ -59,6 +59,7 @@
import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTracker;
import org.apache.hyracks.storage.am.lsm.common.api.ITwoPCIndex;
import org.apache.hyracks.storage.am.lsm.common.api.LSMOperationType;
+import org.apache.hyracks.storage.am.lsm.common.impls.AbstractDiskLSMComponent;
import org.apache.hyracks.storage.am.lsm.common.impls.BlockingIOOperationCallbackWrapper;
import org.apache.hyracks.storage.am.lsm.common.impls.ExternalIndexHarness;
import org.apache.hyracks.storage.am.lsm.common.impls.LSMComponentFileReferences;
@@ -97,10 +98,10 @@
ILSMIOOperationCallback ioOpCallback, TreeIndexFactory<BTree> transactionBTreeFactory, int version,
boolean durable) {
super(interiorFrameFactory, insertLeafFrameFactory, deleteLeafFrameFactory, fileManager, diskBTreeFactory,
- bulkLoadBTreeFactory, bloomFilterFactory, bloomFilterFalsePositiveRate, diskFileMapProvider,
- fieldCount, cmpFactories, mergePolicy, opTracker, ioScheduler, ioOpCallback, false, durable);
- this.transactionComponentFactory = new LSMBTreeDiskComponentFactory(transactionBTreeFactory,
- bloomFilterFactory, null);
+ bulkLoadBTreeFactory, bloomFilterFactory, bloomFilterFalsePositiveRate, diskFileMapProvider, fieldCount,
+ cmpFactories, mergePolicy, opTracker, ioScheduler, ioOpCallback, false, durable);
+ this.transactionComponentFactory = new LSMBTreeDiskComponentFactory(transactionBTreeFactory, bloomFilterFactory,
+ null);
this.secondDiskComponents = new LinkedList<ILSMComponent>();
this.interiorFrameFactory = interiorFrameFactory;
this.version = version;
@@ -116,7 +117,7 @@
throw new HyracksDataException("Failed to create transaction components", e);
}
return createDiskComponent(transactionComponentFactory, componentFileRefs.getInsertIndexFileReference(),
- componentFileRefs.getBloomFilterFileReference(), true);
+ componentFileRefs.getBloomFilterFileReference(), componentFileRefs.getStatisticsFileReference(), true);
}
// The subsume merged components is overridden to account for:
@@ -180,8 +181,8 @@
List<ILSMComponent> mergingComponents = ctx.getComponentHolder();
boolean returnDeletedTuples = false;
if (version == 0) {
- if (ctx.getComponentHolder().get(ctx.getComponentHolder().size() - 1) != diskComponents.get(diskComponents
- .size() - 1)) {
+ if (ctx.getComponentHolder().get(ctx.getComponentHolder().size() - 1) != diskComponents
+ .get(diskComponents.size() - 1)) {
returnDeletedTuples = true;
}
} else {
@@ -195,12 +196,12 @@
BTree lastBTree = ((LSMBTreeDiskComponent) mergingComponents.get(mergingComponents.size() - 1)).getBTree();
FileReference firstFile = diskFileMapProvider.lookupFileName(firstBTree.getFileId());
FileReference lastFile = diskFileMapProvider.lookupFileName(lastBTree.getFileId());
- LSMComponentFileReferences relMergeFileRefs = fileManager.getRelMergeFileReference(firstFile.getFile()
- .getName(), lastFile.getFile().getName());
+ LSMComponentFileReferences relMergeFileRefs = fileManager
+ .getRelMergeFileReference(firstFile.getFile().getName(), lastFile.getFile().getName());
ILSMIndexAccessorInternal accessor = new LSMBTreeAccessor(lsmHarness, opCtx);
- ioScheduler.scheduleOperation(new LSMBTreeMergeOperation(accessor, mergingComponents, cursor, relMergeFileRefs
- .getInsertIndexFileReference(), relMergeFileRefs.getBloomFilterFileReference(), callback, fileManager
- .getBaseDir()));
+ ioScheduler.scheduleOperation(new LSMBTreeMergeOperation(accessor, mergingComponents, cursor,
+ relMergeFileRefs.getInsertIndexFileReference(), relMergeFileRefs.getBloomFilterFileReference(),
+ relMergeFileRefs.getStatisticsFileReference(), callback, fileManager.getBaseDir()));
}
// This function should only be used when a transaction fail. it doesn't
@@ -260,11 +261,12 @@
throw new HyracksDataException(e);
}
for (LSMComponentFileReferences lsmComonentFileReference : validFileReferences) {
- LSMBTreeDiskComponent component;
+ AbstractDiskLSMComponent component;
try {
component = createDiskComponent(componentFactory,
lsmComonentFileReference.getInsertIndexFileReference(),
- lsmComonentFileReference.getBloomFilterFileReference(), false);
+ lsmComonentFileReference.getBloomFilterFileReference(),
+ lsmComonentFileReference.getStatisticsFileReference(), false);
} catch (IndexException e) {
throw new HyracksDataException(e);
}
@@ -515,7 +517,7 @@
int maxBucketsPerElement = BloomCalculations.maxBucketsPerElement(numElementsHint);
BloomFilterSpecification bloomFilterSpec = BloomCalculations.computeBloomSpec(maxBucketsPerElement,
bloomFilterFalsePositiveRate);
- builder = ((LSMBTreeDiskComponent) component).getBloomFilter().createBuilder(numElementsHint,
+ builder = ((AbstractDiskLSMComponent) component).getBloomFilter().createBuilder(numElementsHint,
bloomFilterSpec.getNumHashes(), bloomFilterSpec.getNumBucketsPerElements());
}
@@ -552,11 +554,11 @@
}
((LSMBTreeDiskComponent) component).getBTree().destroy();
try {
- ((LSMBTreeDiskComponent) component).getBloomFilter().deactivate();
+ ((AbstractDiskLSMComponent) component).getBloomFilter().deactivate();
} catch (HyracksDataException e) {
// Do nothing.. this could've bee
}
- ((LSMBTreeDiskComponent) component).getBloomFilter().destroy();
+ ((AbstractDiskLSMComponent) component).getBloomFilter().destroy();
}
}
@@ -575,7 +577,7 @@
// deactivate. it could later be added or deleted
markAsValid(component);
BTree btree = ((LSMBTreeDiskComponent) component).getBTree();
- BloomFilter bloomFilter = ((LSMBTreeDiskComponent) component).getBloomFilter();
+ BloomFilter bloomFilter = ((AbstractDiskLSMComponent) component).getBloomFilter();
btree.deactivate();
bloomFilter.deactivate();
} else {
@@ -678,11 +680,12 @@
@Override
public void commitTransaction() throws TreeIndexException, HyracksDataException, IndexException {
- LSMComponentFileReferences componentFileRefrences = fileManager.getTransactionFileReferenceForCommit();
- LSMBTreeDiskComponent component = null;
- if (componentFileRefrences != null) {
- component = createDiskComponent(componentFactory, componentFileRefrences.getInsertIndexFileReference(),
- componentFileRefrences.getBloomFilterFileReference(), false);
+ LSMComponentFileReferences componentFileReferences = fileManager.getTransactionFileReferenceForCommit();
+ AbstractDiskLSMComponent component = null;
+ if (componentFileReferences != null) {
+ component = createDiskComponent(componentFactory, componentFileReferences.getInsertIndexFileReference(),
+ componentFileReferences.getBloomFilterFileReference(),
+ componentFileReferences.getStatisticsFileReference(), false);
}
((ExternalIndexHarness) lsmHarness).addTransactionComponents(component);
}
diff --git a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTreeWithBuddy.java b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTreeWithBuddy.java
index 343f690..88a6eb4 100644
--- a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTreeWithBuddy.java
+++ b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTreeWithBuddy.java
@@ -150,7 +150,8 @@
component = createDiskComponent(componentFactory,
lsmComonentFileReference.getInsertIndexFileReference(),
lsmComonentFileReference.getDeleteIndexFileReference(),
- lsmComonentFileReference.getBloomFilterFileReference(), false);
+ lsmComonentFileReference.getBloomFilterFileReference(),
+ lsmComonentFileReference.getStatisticsFileReference(), false);
} catch (IndexException e) {
throw new HyracksDataException(e);
}
@@ -374,8 +375,8 @@
// which list to check against and we need to synchronize for this
boolean keepDeleteTuples = false;
if (version == 0) {
- keepDeleteTuples = mergingComponents.get(mergingComponents.size() - 1) != diskComponents.get(diskComponents
- .size() - 1);
+ keepDeleteTuples = mergingComponents.get(mergingComponents.size() - 1) != diskComponents
+ .get(diskComponents.size() - 1);
} else {
keepDeleteTuples = mergingComponents.get(mergingComponents.size() - 1) != secondDiskComponents
.get(secondDiskComponents.size() - 1);
@@ -383,7 +384,8 @@
ioScheduler.scheduleOperation(new LSMBTreeWithBuddyMergeOperation(accessor, mergingComponents, cursor,
relMergeFileRefs.getInsertIndexFileReference(), relMergeFileRefs.getDeleteIndexFileReference(),
- relMergeFileRefs.getBloomFilterFileReference(), callback, fileManager.getBaseDir(), keepDeleteTuples));
+ relMergeFileRefs.getBloomFilterFileReference(), relMergeFileRefs.getStatisticsFileReference(), callback,
+ fileManager.getBaseDir(), keepDeleteTuples));
}
// This method creates the appropriate opContext for the targeted version
@@ -402,8 +404,8 @@
search(opCtx, cursor, btreeSearchPred);
LSMBTreeWithBuddyDiskComponent mergedComponent = createDiskComponent(componentFactory,
- mergeOp.getBTreeMergeTarget(), mergeOp.getBuddyBTreeMergeTarget(), mergeOp.getBloomFilterMergeTarget(),
- true);
+ mergeOp.getBTreeMergeTarget(), mergeOp.getBuddyBTreeMergeTarget(), mergeOp.getBloomFilterTarget(),
+ mergeOp.getStatisticsMergeTarget(), true);
// In case we must keep the deleted-keys BuddyBTrees, then they must be
// merged *before* merging the b-trees so that
@@ -421,8 +423,8 @@
long numElements = 0L;
for (int i = 0; i < mergeOp.getMergingComponents().size(); ++i) {
- numElements += ((LSMBTreeWithBuddyDiskComponent) mergeOp.getMergingComponents().get(i))
- .getBloomFilter().getNumElements();
+ numElements += ((LSMBTreeWithBuddyDiskComponent) mergeOp.getMergingComponents().get(i)).getBloomFilter()
+ .getNumElements();
}
int maxBucketsPerElement = BloomCalculations.maxBucketsPerElement(numElements);
@@ -619,11 +621,10 @@
private LSMBTreeWithBuddyDiskComponent createDiskComponent(ILSMComponentFactory factory,
FileReference insertFileRef, FileReference deleteFileRef, FileReference bloomFilterFileRef,
- boolean createComponent) throws HyracksDataException, IndexException {
+ FileReference statisticsFileRef, boolean createComponent) throws HyracksDataException, IndexException {
// Create new instance.
- LSMBTreeWithBuddyDiskComponent component = (LSMBTreeWithBuddyDiskComponent) factory
- .createLSMComponentInstance(new LSMComponentFileReferences(insertFileRef, deleteFileRef,
- bloomFilterFileRef));
+ LSMBTreeWithBuddyDiskComponent component = (LSMBTreeWithBuddyDiskComponent) factory.createLSMComponentInstance(
+ new LSMComponentFileReferences(insertFileRef, deleteFileRef, bloomFilterFileRef, statisticsFileRef));
if (createComponent) {
component.getBTree().create();
component.getBuddyBTree().create();
@@ -798,7 +799,8 @@
protected ILSMComponent createBulkLoadTarget() throws HyracksDataException, IndexException {
LSMComponentFileReferences componentFileRefs = fileManager.getRelFlushFileReference();
return createDiskComponent(bulkComponentFactory, componentFileRefs.getInsertIndexFileReference(),
- componentFileRefs.getDeleteIndexFileReference(), componentFileRefs.getBloomFilterFileReference(), true);
+ componentFileRefs.getDeleteIndexFileReference(), componentFileRefs.getBloomFilterFileReference(),
+ componentFileRefs.getStatisticsFileReference(), true);
}
// This method is used to create a target for a bulk modify operation. This
@@ -811,7 +813,8 @@
throw new HyracksDataException("Failed to create transaction components", e);
}
return createDiskComponent(bulkComponentFactory, componentFileRefs.getInsertIndexFileReference(),
- componentFileRefs.getDeleteIndexFileReference(), componentFileRefs.getBloomFilterFileReference(), true);
+ componentFileRefs.getDeleteIndexFileReference(), componentFileRefs.getBloomFilterFileReference(),
+ componentFileRefs.getStatisticsFileReference(), true);
}
@Override
@@ -849,12 +852,13 @@
@Override
public void commitTransaction() throws HyracksDataException, IndexException {
- LSMComponentFileReferences componentFileRefrences = fileManager.getTransactionFileReferenceForCommit();
+ LSMComponentFileReferences componentFileReferences = fileManager.getTransactionFileReferenceForCommit();
LSMBTreeWithBuddyDiskComponent component = null;
- if (componentFileRefrences != null) {
- component = createDiskComponent(componentFactory, componentFileRefrences.getInsertIndexFileReference(),
- componentFileRefrences.getDeleteIndexFileReference(),
- componentFileRefrences.getBloomFilterFileReference(), false);
+ if (componentFileReferences != null) {
+ component = createDiskComponent(componentFactory, componentFileReferences.getInsertIndexFileReference(),
+ componentFileReferences.getDeleteIndexFileReference(),
+ componentFileReferences.getBloomFilterFileReference(),
+ componentFileReferences.getStatisticsFileReference(), false);
}
((ExternalIndexHarness) lsmHarness).addTransactionComponents(component);
}
@@ -886,7 +890,7 @@
public boolean isPrimaryIndex() {
return false;
}
-
+
@Override
public Set<String> getLSMComponentPhysicalFiles(ILSMComponent lsmComponent) {
Set<String> files = new HashSet<String>();
diff --git a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTree.java b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTree.java
index 663d2f7..d94072b 100644
--- a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTree.java
+++ b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTree.java
@@ -74,6 +74,7 @@
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.freepage.VirtualFreePageManager;
+import org.apache.hyracks.storage.am.lsm.common.impls.AbstractDiskLSMComponent;
import org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMIndex;
import org.apache.hyracks.storage.am.lsm.common.impls.BlockingIOOperationCallbackWrapper;
import org.apache.hyracks.storage.am.lsm.common.impls.LSMComponentFileReferences;
@@ -115,12 +116,13 @@
filterManager, filterFields, durable);
int i = 0;
for (IVirtualBufferCache virtualBufferCache : virtualBufferCaches) {
- LSMBTreeMemoryComponent mutableComponent = new LSMBTreeMemoryComponent(new BTree(virtualBufferCache,
- virtualBufferCache.getFileMapProvider(), new VirtualFreePageManager(
- virtualBufferCache.getNumPages()), interiorFrameFactory, insertLeafFrameFactory,
- cmpFactories, fieldCount, new FileReference(new File(fileManager.getBaseDir() + "_virtual_" + i))),
- virtualBufferCache, i == 0 ? true : false, filterFactory == null ? null
- : filterFactory.createLSMComponentFilter());
+ LSMBTreeMemoryComponent mutableComponent = new LSMBTreeMemoryComponent(
+ new BTree(virtualBufferCache, virtualBufferCache.getFileMapProvider(),
+ new VirtualFreePageManager(virtualBufferCache.getNumPages()), interiorFrameFactory,
+ insertLeafFrameFactory, cmpFactories, fieldCount,
+ new FileReference(new File(fileManager.getBaseDir() + "_virtual_" + i))),
+ virtualBufferCache, i == 0 ? true : false,
+ filterFactory == null ? null : filterFactory.createLSMComponentFilter());
memoryComponents.add(mutableComponent);
++i;
}
@@ -185,11 +187,12 @@
throw new HyracksDataException(e);
}
for (LSMComponentFileReferences lsmComonentFileReference : validFileReferences) {
- LSMBTreeDiskComponent component;
+ AbstractDiskLSMComponent component;
try {
component = createDiskComponent(componentFactory,
lsmComonentFileReference.getInsertIndexFileReference(),
- lsmComonentFileReference.getBloomFilterFileReference(), false);
+ lsmComonentFileReference.getBloomFilterFileReference(),
+ lsmComonentFileReference.getStatisticsFileReference(), false);
} catch (IndexException e) {
throw new HyracksDataException(e);
}
@@ -371,8 +374,8 @@
}
if (ctx.filterTuple != null) {
ctx.filterTuple.reset(tuple);
- memoryComponents.get(currentMutableComponentId.get()).getLSMComponentFilter()
- .update(ctx.filterTuple, ctx.filterCmp);
+ memoryComponents.get(currentMutableComponentId.get()).getLSMComponentFilter().update(ctx.filterTuple,
+ ctx.filterCmp);
}
}
@@ -450,9 +453,9 @@
opCtx.setOperation(IndexOperation.FLUSH);
opCtx.getComponentHolder().add(flushingComponent);
ILSMIndexAccessorInternal flushAccessor = new LSMBTreeAccessor(lsmHarness, opCtx);
- ioScheduler.scheduleOperation(new LSMBTreeFlushOperation(flushAccessor, flushingComponent, componentFileRefs
- .getInsertIndexFileReference(), componentFileRefs.getBloomFilterFileReference(), callback, fileManager
- .getBaseDir()));
+ ioScheduler.scheduleOperation(new LSMBTreeFlushOperation(flushAccessor, flushingComponent,
+ componentFileRefs.getInsertIndexFileReference(), componentFileRefs.getBloomFilterFileReference(),
+ componentFileRefs.getStatisticsFileReference(), callback, fileManager.getBaseDir()));
}
@Override
@@ -481,10 +484,10 @@
bloomFilterFalsePositiveRate);
LSMBTreeDiskComponent component = createDiskComponent(componentFactory, flushOp.getBTreeFlushTarget(),
- flushOp.getBloomFilterFlushTarget(), true);
+ flushOp.getBloomFilterTarget(), flushOp.getStatisticsTarget(), true);
IIndexBulkLoader bulkLoader = component.getBTree().createBulkLoader(1.0f, false, numElements, false);
- IIndexBulkLoader builder = component.getBloomFilter().createBuilder(numElements,
- bloomFilterSpec.getNumHashes(), bloomFilterSpec.getNumBucketsPerElements());
+ IIndexBulkLoader builder = component.getBloomFilter().createBuilder(numElements, bloomFilterSpec.getNumHashes(),
+ bloomFilterSpec.getNumBucketsPerElements());
IIndexCursor scanCursor = accessor.createSearchCursor(false);
accessor.search(scanCursor, nullPred);
@@ -517,8 +520,8 @@
opCtx.setOperation(IndexOperation.MERGE);
List<ILSMComponent> mergingComponents = ctx.getComponentHolder();
boolean returnDeletedTuples = false;
- if (ctx.getComponentHolder().get(ctx.getComponentHolder().size() - 1) != diskComponents.get(diskComponents
- .size() - 1)) {
+ if (ctx.getComponentHolder().get(ctx.getComponentHolder().size() - 1) != diskComponents
+ .get(diskComponents.size() - 1)) {
returnDeletedTuples = true;
}
ITreeIndexCursor cursor = new LSMBTreeRangeSearchCursor(opCtx, returnDeletedTuples);
@@ -526,12 +529,12 @@
BTree lastBTree = ((LSMBTreeDiskComponent) mergingComponents.get(mergingComponents.size() - 1)).getBTree();
FileReference firstFile = diskFileMapProvider.lookupFileName(firstBTree.getFileId());
FileReference lastFile = diskFileMapProvider.lookupFileName(lastBTree.getFileId());
- LSMComponentFileReferences relMergeFileRefs = fileManager.getRelMergeFileReference(firstFile.getFile()
- .getName(), lastFile.getFile().getName());
+ LSMComponentFileReferences relMergeFileRefs = fileManager
+ .getRelMergeFileReference(firstFile.getFile().getName(), lastFile.getFile().getName());
ILSMIndexAccessorInternal accessor = new LSMBTreeAccessor(lsmHarness, opCtx);
- ioScheduler.scheduleOperation(new LSMBTreeMergeOperation(accessor, mergingComponents, cursor, relMergeFileRefs
- .getInsertIndexFileReference(), relMergeFileRefs.getBloomFilterFileReference(), callback, fileManager
- .getBaseDir()));
+ ioScheduler.scheduleOperation(new LSMBTreeMergeOperation(accessor, mergingComponents, cursor,
+ relMergeFileRefs.getInsertIndexFileReference(), relMergeFileRefs.getBloomFilterFileReference(),
+ relMergeFileRefs.getStatisticsFileReference(), callback, fileManager.getBaseDir()));
}
@Override
@@ -546,14 +549,14 @@
long numElements = 0L;
for (int i = 0; i < mergedComponents.size(); ++i) {
- numElements += ((LSMBTreeDiskComponent) mergedComponents.get(i)).getBloomFilter().getNumElements();
+ numElements += ((AbstractDiskLSMComponent) mergedComponents.get(i)).getBloomFilter().getNumElements();
}
int maxBucketsPerElement = BloomCalculations.maxBucketsPerElement(numElements);
BloomFilterSpecification bloomFilterSpec = BloomCalculations.computeBloomSpec(maxBucketsPerElement,
bloomFilterFalsePositiveRate);
LSMBTreeDiskComponent mergedComponent = createDiskComponent(componentFactory, mergeOp.getBTreeMergeTarget(),
- mergeOp.getBloomFilterMergeTarget(), true);
+ mergeOp.getBloomFilterTarget(), mergeOp.getStatisticsMergeTarget(), true);
IIndexBulkLoader bulkLoader = mergedComponent.getBTree().createBulkLoader(1.0f, false, numElements, false);
IIndexBulkLoader builder = mergedComponent.getBloomFilter().createBuilder(numElements,
@@ -585,11 +588,11 @@
}
protected LSMBTreeDiskComponent createDiskComponent(LSMBTreeDiskComponentFactory factory,
- FileReference btreeFileRef, FileReference bloomFilterFileRef, boolean createComponent)
- throws HyracksDataException, IndexException {
+ FileReference btreeFileRef, FileReference bloomFilterFileRef, FileReference statisticsFileReference,
+ boolean createComponent) throws HyracksDataException, IndexException {
// Create new BTree instance.
- LSMBTreeDiskComponent component = (LSMBTreeDiskComponent) factory
- .createLSMComponentInstance(new LSMComponentFileReferences(btreeFileRef, null, bloomFilterFileRef));
+ LSMBTreeDiskComponent component = (LSMBTreeDiskComponent) factory.createLSMComponentInstance(
+ new LSMComponentFileReferences(btreeFileRef, null, bloomFilterFileRef, statisticsFileReference));
if (createComponent) {
component.getBTree().create();
component.getBloomFilter().create();
@@ -616,7 +619,7 @@
protected ILSMComponent createBulkLoadTarget() throws HyracksDataException, IndexException {
LSMComponentFileReferences componentFileRefs = fileManager.getRelFlushFileReference();
return createDiskComponent(bulkLoadComponentFactory, componentFileRefs.getInsertIndexFileReference(),
- componentFileRefs.getBloomFilterFileReference(), true);
+ componentFileRefs.getBloomFilterFileReference(), componentFileRefs.getStatisticsFileReference(), true);
}
@Override
@@ -645,8 +648,8 @@
public final PermutingTupleReference filterTuple;
public final MultiComparator filterCmp;
- public LSMBTreeBulkLoader(float fillFactor, boolean verifyInput, long numElementsHint, boolean checkIfEmptyIndex)
- throws TreeIndexException, HyracksDataException {
+ public LSMBTreeBulkLoader(float fillFactor, boolean verifyInput, long numElementsHint,
+ boolean checkIfEmptyIndex) throws TreeIndexException, HyracksDataException {
if (checkIfEmptyIndex && !isEmptyIndex()) {
throw new TreeIndexException("Cannot load an index that is not empty");
}
@@ -661,7 +664,7 @@
int maxBucketsPerElement = BloomCalculations.maxBucketsPerElement(numElementsHint);
BloomFilterSpecification bloomFilterSpec = BloomCalculations.computeBloomSpec(maxBucketsPerElement,
bloomFilterFalsePositiveRate);
- builder = ((LSMBTreeDiskComponent) component).getBloomFilter().createBuilder(numElementsHint,
+ builder = ((AbstractDiskLSMComponent) component).getBloomFilter().createBuilder(numElementsHint,
bloomFilterSpec.getNumHashes(), bloomFilterSpec.getNumBucketsPerElements());
if (filterFields != null) {
@@ -712,8 +715,8 @@
}
((LSMBTreeDiskComponent) component).getBTree().deactivate();
((LSMBTreeDiskComponent) component).getBTree().destroy();
- ((LSMBTreeDiskComponent) component).getBloomFilter().deactivate();
- ((LSMBTreeDiskComponent) component).getBloomFilter().destroy();
+ ((AbstractDiskLSMComponent) component).getBloomFilter().deactivate();
+ ((AbstractDiskLSMComponent) component).getBloomFilter().destroy();
}
}
@@ -863,7 +866,7 @@
files.add(component.getBTree().getFileReference().toString());
files.add(component.getBloomFilter().getFileReference().toString());
-
+
return files;
}
}
diff --git a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeDiskComponent.java b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeDiskComponent.java
index f553368..0be3213 100644
--- a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeDiskComponent.java
+++ b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeDiskComponent.java
@@ -26,28 +26,21 @@
public class LSMBTreeDiskComponent extends AbstractDiskLSMComponent {
private final BTree btree;
- private final BloomFilter bloomFilter;
public LSMBTreeDiskComponent(BTree btree, BloomFilter bloomFilter, ILSMComponentFilter filter) {
- super(filter);
+ super(bloomFilter, filter);
this.btree = btree;
- this.bloomFilter = bloomFilter;
}
@Override
public void destroy() throws HyracksDataException {
btree.deactivate();
btree.destroy();
- bloomFilter.deactivate();
- bloomFilter.destroy();
+ super.destroy();
}
public BTree getBTree() {
return btree;
- }
-
- public BloomFilter getBloomFilter() {
- return bloomFilter;
}
@Override
diff --git a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeFileManager.java b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeFileManager.java
index 2be4e4a..2eaf792 100644
--- a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeFileManager.java
+++ b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeFileManager.java
@@ -56,7 +56,8 @@
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 + BTREE_STRING), null,
- createFlushFile(baseName + SPLIT_STRING + BLOOM_FILTER_STRING));
+ createFlushFile(baseName + SPLIT_STRING + BLOOM_FILTER_STRING),
+ createFlushFile(baseName + SPLIT_STRING + STATISTICS_STRING));
}
@Override
@@ -68,7 +69,8 @@
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 + BTREE_STRING), null,
- createMergeFile(baseName + SPLIT_STRING + BLOOM_FILTER_STRING));
+ createMergeFile(baseName + SPLIT_STRING + BLOOM_FILTER_STRING),
+ createFlushFile(baseName + SPLIT_STRING + STATISTICS_STRING));
}
private static FilenameFilter btreeFilter = new FilenameFilter() {
@@ -96,7 +98,8 @@
int index = cmpFileName.fileName.lastIndexOf(SPLIT_STRING);
btreeFilesSet.add(cmpFileName.fileName.substring(0, index));
}
- validateFiles(btreeFilesSet, allBloomFilterFiles, getCompoundFilter(transactionFilter, bloomFilterFilter), null);
+ validateFiles(btreeFilesSet, allBloomFilterFiles, getCompoundFilter(transactionFilter, bloomFilterFilter),
+ null);
// Sanity check.
if (allBTreeFiles.size() != allBloomFilterFiles.size()) {
@@ -110,8 +113,8 @@
}
if (allBTreeFiles.size() == 1 && allBloomFilterFiles.size() == 1) {
- validFiles.add(new LSMComponentFileReferences(allBTreeFiles.get(0).fileRef, null, allBloomFilterFiles
- .get(0).fileRef));
+ validFiles.add(new LSMComponentFileReferences(allBTreeFiles.get(0).fileRef, null,
+ allBloomFilterFiles.get(0).fileRef, null));
return validFiles;
}
@@ -148,7 +151,8 @@
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.");
}
}
@@ -163,7 +167,7 @@
ComparableFileName cmpBTreeFileName = btreeFileIter.next();
ComparableFileName cmpBloomFilterFileName = bloomFilterFileIter.next();
validFiles.add(new LSMComponentFileReferences(cmpBTreeFileName.fileRef, null,
- cmpBloomFilterFileName.fileRef));
+ cmpBloomFilterFileName.fileRef, null));
}
return validFiles;
@@ -178,7 +182,7 @@
String baseName = baseDir + ts + SPLIT_STRING + ts;
// Begin timestamp and end timestamp are identical since it is a transaction
return new LSMComponentFileReferences(createFlushFile(baseName + SPLIT_STRING + BTREE_STRING), null,
- createFlushFile(baseName + SPLIT_STRING + BLOOM_FILTER_STRING));
+ createFlushFile(baseName + SPLIT_STRING + BLOOM_FILTER_STRING), null);
}
@Override
@@ -220,6 +224,6 @@
FileReference bTreeFileRef = new FileReference(bTreeFile);
FileReference bloomFilterFileRef = new FileReference(bloomFilterFile);
- return new LSMComponentFileReferences(bTreeFileRef, null, bloomFilterFileRef);
+ return new LSMComponentFileReferences(bTreeFileRef, null, bloomFilterFileRef, null);
}
}
diff --git a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeFlushOperation.java b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeFlushOperation.java
index c56293f..9035c07 100644
--- a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeFlushOperation.java
+++ b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeFlushOperation.java
@@ -18,87 +18,42 @@
*/
package org.apache.hyracks.storage.am.lsm.btree.impls;
-import java.util.Collections;
-import java.util.HashSet;
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;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessorInternal;
+import org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMFlushOperation;
-public class LSMBTreeFlushOperation implements ILSMIOOperation, Comparable<LSMBTreeFlushOperation> {
+public class LSMBTreeFlushOperation extends AbstractLSMFlushOperation implements Comparable<LSMBTreeFlushOperation> {
- private final ILSMIndexAccessorInternal accessor;
- private final ILSMComponent flushingComponent;
private final FileReference btreeFlushTarget;
- private final FileReference bloomFilterFlushTarget;
- private final ILSMIOOperationCallback callback;
- private final String indexIdentifier;
+ private final FileReference statisticsFlushTarget;
public LSMBTreeFlushOperation(ILSMIndexAccessorInternal accessor, ILSMComponent flushingComponent,
- FileReference btreeFlushTarget, FileReference bloomFilterFlushTarget, ILSMIOOperationCallback callback,
- String indexIdentifier) {
- this.accessor = accessor;
- this.flushingComponent = flushingComponent;
+ FileReference btreeFlushTarget, FileReference bloomFilterFlushTarget, FileReference statisticsFlushTarget,
+ ILSMIOOperationCallback callback, String indexIdentifier) {
+ super(accessor, flushingComponent, bloomFilterFlushTarget, callback, indexIdentifier);
this.btreeFlushTarget = btreeFlushTarget;
- this.bloomFilterFlushTarget = bloomFilterFlushTarget;
- this.callback = callback;
- this.indexIdentifier = indexIdentifier;
- }
-
- @Override
- public Set<IODeviceHandle> getReadDevices() {
- return Collections.emptySet();
+ this.statisticsFlushTarget = statisticsFlushTarget;
}
@Override
public Set<IODeviceHandle> getWriteDevices() {
- Set<IODeviceHandle> devs = new HashSet<IODeviceHandle>();
+ Set<IODeviceHandle> devs = super.getWriteDevices();
devs.add(btreeFlushTarget.getDeviceHandle());
- devs.add(bloomFilterFlushTarget.getDeviceHandle());
+ devs.add(statisticsFlushTarget.getDeviceHandle());
return devs;
- }
-
- @Override
- public Boolean call() throws HyracksDataException, IndexException {
- accessor.flush(this);
- return true;
- }
-
- @Override
- public ILSMIOOperationCallback getCallback() {
- return callback;
}
public FileReference getBTreeFlushTarget() {
return btreeFlushTarget;
}
- public FileReference getBloomFilterFlushTarget() {
- return bloomFilterFlushTarget;
- }
-
- public ILSMIndexAccessorInternal getAccessor() {
- return accessor;
- }
-
- public ILSMComponent getFlushingComponent() {
- return flushingComponent;
- }
-
- @Override
- public String getIndexUniqueIdentifier() {
- return indexIdentifier;
- }
-
- @Override
- public LSMIOOpertionType getIOOpertionType() {
- return LSMIOOpertionType.FLUSH;
+ public FileReference getStatisticsTarget() {
+ return statisticsFlushTarget;
}
@Override
diff --git a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeMergeOperation.java b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeMergeOperation.java
index f69a77f..6b69021 100644
--- a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeMergeOperation.java
+++ b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeMergeOperation.java
@@ -19,95 +19,54 @@
package org.apache.hyracks.storage.am.lsm.btree.impls;
-import java.util.HashSet;
import java.util.List;
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.ITreeIndexCursor;
-import org.apache.hyracks.storage.am.common.api.IndexException;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperation;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessorInternal;
+import org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMMergeOperation;
-public class LSMBTreeMergeOperation implements ILSMIOOperation {
+public class LSMBTreeMergeOperation extends AbstractLSMMergeOperation implements ILSMIOOperation {
- private final ILSMIndexAccessorInternal accessor;
- private final List<ILSMComponent> mergingComponents;
- private final ITreeIndexCursor cursor;
private final FileReference btreeMergeTarget;
- private final FileReference bloomFilterMergeTarget;
- private final ILSMIOOperationCallback callback;
- private final String indexIdentifier;
+ private final FileReference statisticsMergeTarget;
public LSMBTreeMergeOperation(ILSMIndexAccessorInternal accessor, List<ILSMComponent> mergingComponents,
ITreeIndexCursor cursor, FileReference btreeMergeTarget, FileReference bloomFilterMergeTarget,
- ILSMIOOperationCallback callback, String indexIdentifier) {
- this.accessor = accessor;
- this.mergingComponents = mergingComponents;
- this.cursor = cursor;
+ FileReference statisticsMergeTarget, ILSMIOOperationCallback callback, String indexIdentifier) {
+ super(accessor, mergingComponents, cursor, bloomFilterMergeTarget, callback, indexIdentifier);
this.btreeMergeTarget = btreeMergeTarget;
- this.bloomFilterMergeTarget = bloomFilterMergeTarget;
- this.callback = callback;
- this.indexIdentifier = indexIdentifier;
+ this.statisticsMergeTarget = statisticsMergeTarget;
}
@Override
public Set<IODeviceHandle> getReadDevices() {
- Set<IODeviceHandle> devs = new HashSet<IODeviceHandle>();
+ Set<IODeviceHandle> devs = super.getReadDevices();
for (ILSMComponent o : mergingComponents) {
LSMBTreeDiskComponent component = (LSMBTreeDiskComponent) o;
devs.add(component.getBTree().getFileReference().getDeviceHandle());
- devs.add(component.getBloomFilter().getFileReference().getDeviceHandle());
}
return devs;
}
@Override
public Set<IODeviceHandle> getWriteDevices() {
- Set<IODeviceHandle> devs = new HashSet<IODeviceHandle>();
+ Set<IODeviceHandle> devs = super.getWriteDevices();
devs.add(btreeMergeTarget.getDeviceHandle());
- devs.add(bloomFilterMergeTarget.getDeviceHandle());
+ devs.add(statisticsMergeTarget.getDeviceHandle());
return devs;
- }
-
- @Override
- public Boolean call() throws HyracksDataException, IndexException {
- accessor.merge(this);
- return true;
- }
-
- @Override
- public ILSMIOOperationCallback getCallback() {
- return callback;
}
public FileReference getBTreeMergeTarget() {
return btreeMergeTarget;
}
- public FileReference getBloomFilterMergeTarget() {
- return bloomFilterMergeTarget;
- }
-
- public ITreeIndexCursor getCursor() {
- return cursor;
- }
-
- public List<ILSMComponent> getMergingComponents() {
- return mergingComponents;
- }
-
- @Override
- public String getIndexUniqueIdentifier() {
- return indexIdentifier;
- }
-
- @Override
- public LSMIOOpertionType getIOOpertionType() {
- return LSMIOOpertionType.MERGE;
+ public FileReference getStatisticsMergeTarget() {
+ return statisticsMergeTarget;
}
}
diff --git a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreePointSearchCursor.java b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreePointSearchCursor.java
index 8d442d6..41cabea 100644
--- a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreePointSearchCursor.java
+++ b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreePointSearchCursor.java
@@ -40,6 +40,7 @@
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.api.ILSMTreeTupleReference;
+import org.apache.hyracks.storage.am.lsm.common.impls.AbstractDiskLSMComponent;
import org.apache.hyracks.storage.am.lsm.common.impls.BloomFilterAwareBTreePointSearchCursor;
import org.apache.hyracks.storage.common.buffercache.IBufferCache;
import org.apache.hyracks.storage.common.buffercache.ICachedPage;
@@ -166,7 +167,7 @@
btree = (BTree) ((LSMBTreeMemoryComponent) component).getBTree();
} else {
rangeCursors[i] = new BloomFilterAwareBTreePointSearchCursor(leafFrame, false,
- ((LSMBTreeDiskComponent) component).getBloomFilter());
+ ((AbstractDiskLSMComponent) component).getBloomFilter());
btree = (BTree) ((LSMBTreeDiskComponent) component).getBTree();
}
btreeAccessors[i] = btree.createAccessor(NoOpOperationCallback.INSTANCE, NoOpOperationCallback.INSTANCE);
diff --git a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyDiskComponent.java b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyDiskComponent.java
index 3845740..a9ea547 100644
--- a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyDiskComponent.java
+++ b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyDiskComponent.java
@@ -27,12 +27,11 @@
private final BTree btree;
private final BTree buddyBtree;
- private final BloomFilter bloomFilter;
public LSMBTreeWithBuddyDiskComponent(BTree btree, BTree buddyBtree, BloomFilter bloomFilter) {
+ super(bloomFilter, null);
this.btree = btree;
this.buddyBtree = buddyBtree;
- this.bloomFilter = bloomFilter;
}
@Override
@@ -41,8 +40,7 @@
btree.destroy();
buddyBtree.deactivate();
buddyBtree.destroy();
- bloomFilter.deactivate();
- bloomFilter.destroy();
+ super.destroy();
}
public BTree getBTree() {
@@ -53,15 +51,11 @@
return buddyBtree;
}
- public BloomFilter getBloomFilter() {
- return bloomFilter;
- }
-
@Override
public long getComponentSize() {
- long size = btree.getFileReference().getFile().length();
+ long size = super.getComponentSize();
+ size = btree.getFileReference().getFile().length();
size += buddyBtree.getFileReference().getFile().length();
- size += bloomFilter.getFileReference().getFile().length();
return size;
}
diff --git a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyFileManager.java b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyFileManager.java
index ed39630..5d45f08 100644
--- a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyFileManager.java
+++ b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyFileManager.java
@@ -73,8 +73,9 @@
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 + BTREE_STRING),
- createFlushFile(baseName + SPLIT_STRING + BUDDY_BTREE_STRING), createFlushFile(baseName + SPLIT_STRING
- + BLOOM_FILTER_STRING));
+ createFlushFile(baseName + SPLIT_STRING + BUDDY_BTREE_STRING),
+ createFlushFile(baseName + SPLIT_STRING + BLOOM_FILTER_STRING),
+ createFlushFile(baseName + SPLIT_STRING + STATISTICS_STRING));
}
@Override
@@ -87,8 +88,9 @@
// Get the range of timestamps by taking the earliest and the latest
// timestamps
return new LSMComponentFileReferences(createMergeFile(baseName + SPLIT_STRING + BTREE_STRING),
- createMergeFile(baseName + SPLIT_STRING + BUDDY_BTREE_STRING), createMergeFile(baseName + SPLIT_STRING
- + BLOOM_FILTER_STRING));
+ createMergeFile(baseName + SPLIT_STRING + BUDDY_BTREE_STRING),
+ createMergeFile(baseName + SPLIT_STRING + BLOOM_FILTER_STRING),
+ createFlushFile(baseName + SPLIT_STRING + STATISTICS_STRING));
}
@Override
@@ -127,7 +129,7 @@
if (allBTreeFiles.size() == 1 && allBuddyBTreeFiles.size() == 1 && allBloomFilterFiles.size() == 1) {
validFiles.add(new LSMComponentFileReferences(allBTreeFiles.get(0).fileRef,
- allBuddyBTreeFiles.get(0).fileRef, allBloomFilterFiles.get(0).fileRef));
+ allBuddyBTreeFiles.get(0).fileRef, allBloomFilterFiles.get(0).fileRef, null));
return validFiles;
}
@@ -177,7 +179,8 @@
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.");
}
}
@@ -195,7 +198,7 @@
ComparableFileName cmpBuddyBTreeFileName = buddyBtreeFileIter.next();
ComparableFileName cmpBloomFilterFileName = bloomFilterFileIter.next();
validFiles.add(new LSMComponentFileReferences(cmpBTreeFileName.fileRef, cmpBuddyBTreeFileName.fileRef,
- cmpBloomFilterFileName.fileRef));
+ cmpBloomFilterFileName.fileRef, null));
}
return validFiles;
@@ -209,8 +212,8 @@
String baseName = baseDir + ts + SPLIT_STRING + ts;
return new LSMComponentFileReferences(createFlushFile(baseName + SPLIT_STRING + BTREE_STRING),
- createFlushFile(baseName + SPLIT_STRING + BUDDY_BTREE_STRING), createFlushFile(baseName + SPLIT_STRING
- + BLOOM_FILTER_STRING));
+ createFlushFile(baseName + SPLIT_STRING + BUDDY_BTREE_STRING),
+ createFlushFile(baseName + SPLIT_STRING + BLOOM_FILTER_STRING), null);
}
@Override
@@ -229,8 +232,8 @@
// get the actual transaction files
files = dir.list(transactionFilter);
if (files.length < 3) {
- throw new HyracksDataException("LSM Btree with buddy transaction has less than 3 files :"
- + files.length);
+ throw new HyracksDataException(
+ "LSM Btree with buddy transaction has less than 3 files :" + files.length);
}
try {
Files.delete(Paths.get(txnFileName));
@@ -255,7 +258,7 @@
FileReference bTreeFileRef = new FileReference(bTreeFile);
FileReference buddyBTreeFileRef = new FileReference(buddyBTreeFile);
FileReference bloomFilterFileRef = new FileReference(bloomFilterFile);
- return new LSMComponentFileReferences(bTreeFileRef, buddyBTreeFileRef, bloomFilterFileRef);
+ return new LSMComponentFileReferences(bTreeFileRef, buddyBTreeFileRef, bloomFilterFileRef, null);
}
}
diff --git a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyMergeOperation.java b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyMergeOperation.java
index 61f68fb..c5fcc23 100644
--- a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyMergeOperation.java
+++ b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyMergeOperation.java
@@ -22,115 +22,55 @@
import java.util.List;
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.ITreeIndexCursor;
-import org.apache.hyracks.storage.am.common.api.IndexException;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent;
-import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperation;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessorInternal;
-public class LSMBTreeWithBuddyMergeOperation implements ILSMIOOperation {
+public class LSMBTreeWithBuddyMergeOperation extends LSMBTreeMergeOperation {
- private final ILSMIndexAccessorInternal accessor;
- private final List<ILSMComponent> mergingComponents;
- private final ITreeIndexCursor cursor;
- private final FileReference btreeMergeTarget;
- private final FileReference buddyBtreeMergeTarget;
- private final FileReference bloomFilterMergeTarget;
- private final ILSMIOOperationCallback callback;
- private final String indexIdentifier;
- private final boolean keepDeletedTuples;
+ private final FileReference buddyBtreeMergeTarget;
+ private final boolean keepDeletedTuples;
- public LSMBTreeWithBuddyMergeOperation(ILSMIndexAccessorInternal accessor,
- List<ILSMComponent> mergingComponents, ITreeIndexCursor cursor,
- FileReference btreeMergeTarget,
- FileReference buddyBtreeMergeTarget,
- FileReference bloomFilterMergeTarget,
- ILSMIOOperationCallback callback, String indexIdentifier, boolean keepDeletedTuples) {
- this.accessor = accessor;
- this.mergingComponents = mergingComponents;
- this.cursor = cursor;
- this.btreeMergeTarget = btreeMergeTarget;
- this.buddyBtreeMergeTarget = buddyBtreeMergeTarget;
- this.bloomFilterMergeTarget = bloomFilterMergeTarget;
- this.callback = callback;
- this.indexIdentifier = indexIdentifier;
- this.keepDeletedTuples = keepDeletedTuples;
- }
+ public LSMBTreeWithBuddyMergeOperation(ILSMIndexAccessorInternal accessor, List<ILSMComponent> mergingComponents,
+ ITreeIndexCursor cursor, FileReference btreeMergeTarget, FileReference buddyBtreeMergeTarget,
+ FileReference bloomFilterMergeTarget, FileReference statisticsMergeTarget, ILSMIOOperationCallback callback,
+ String indexIdentifier, boolean keepDeletedTuples) {
+ super(accessor, mergingComponents, cursor, btreeMergeTarget, bloomFilterMergeTarget, statisticsMergeTarget,
+ callback, indexIdentifier);
+ this.buddyBtreeMergeTarget = buddyBtreeMergeTarget;
+ this.keepDeletedTuples = keepDeletedTuples;
+ }
- @Override
- public Set<IODeviceHandle> getReadDevices() {
- Set<IODeviceHandle> devs = new HashSet<IODeviceHandle>();
- for (ILSMComponent o : mergingComponents) {
- LSMBTreeWithBuddyDiskComponent component = (LSMBTreeWithBuddyDiskComponent) o;
- devs.add(component.getBTree().getFileReference().getDeviceHandle());
+ @Override
+ public Set<IODeviceHandle> getReadDevices() {
+ Set<IODeviceHandle> devs = new HashSet<IODeviceHandle>();
+ for (ILSMComponent o : mergingComponents) {
+ LSMBTreeWithBuddyDiskComponent component = (LSMBTreeWithBuddyDiskComponent) o;
+ devs.add(component.getBTree().getFileReference().getDeviceHandle());
- devs.add(component.getBuddyBTree().getFileReference()
- .getDeviceHandle());
- devs.add(component.getBloomFilter().getFileReference()
- .getDeviceHandle());
+ devs.add(component.getBuddyBTree().getFileReference().getDeviceHandle());
+ devs.add(component.getBloomFilter().getFileReference().getDeviceHandle());
- }
- return devs;
- }
+ }
+ return devs;
+ }
- @Override
- public Set<IODeviceHandle> getWriteDevices() {
- Set<IODeviceHandle> devs = new HashSet<IODeviceHandle>();
- devs.add(btreeMergeTarget.getDeviceHandle());
+ @Override
+ public Set<IODeviceHandle> getWriteDevices() {
+ Set<IODeviceHandle> devs = super.getWriteDevices();
+ devs.add(buddyBtreeMergeTarget.getDeviceHandle());
+ return devs;
+ }
- devs.add(buddyBtreeMergeTarget.getDeviceHandle());
- devs.add(bloomFilterMergeTarget.getDeviceHandle());
+ public FileReference getBuddyBTreeMergeTarget() {
+ return buddyBtreeMergeTarget;
+ }
- return devs;
- }
-
- @Override
- public Boolean call() throws HyracksDataException, IndexException {
- accessor.merge(this);
- return true;
- }
-
- @Override
- public ILSMIOOperationCallback getCallback() {
- return callback;
- }
-
- @Override
- public String getIndexUniqueIdentifier() {
- return indexIdentifier;
- }
-
- @Override
- public LSMIOOpertionType getIOOpertionType() {
- return LSMIOOpertionType.MERGE;
- }
-
- public FileReference getBTreeMergeTarget() {
- return btreeMergeTarget;
- }
-
- public FileReference getBuddyBTreeMergeTarget() {
- return buddyBtreeMergeTarget;
- }
-
- public FileReference getBloomFilterMergeTarget() {
- return bloomFilterMergeTarget;
- }
-
- public ITreeIndexCursor getCursor() {
- return cursor;
- }
-
- public List<ILSMComponent> getMergingComponents() {
- return mergingComponents;
- }
-
- public boolean isKeepDeletedTuples() {
- return keepDeletedTuples;
- }
+ public boolean isKeepDeletedTuples() {
+ return keepDeletedTuples;
+ }
}
diff --git a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractDiskLSMComponent.java b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractDiskLSMComponent.java
index 54ec029..952440c 100644
--- a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractDiskLSMComponent.java
+++ b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractDiskLSMComponent.java
@@ -19,18 +19,22 @@
package org.apache.hyracks.storage.am.lsm.common.impls;
import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.am.bloomfilter.impls.BloomFilter;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponentFilter;
import org.apache.hyracks.storage.am.lsm.common.api.LSMOperationType;
public abstract class AbstractDiskLSMComponent extends AbstractLSMComponent {
- public AbstractDiskLSMComponent(ILSMComponentFilter filter) {
+ protected final BloomFilter bloomFilter;
+
+ public AbstractDiskLSMComponent(BloomFilter bloomFilter, ILSMComponentFilter filter) {
super(filter);
+ this.bloomFilter = bloomFilter;
state = ComponentState.READABLE_UNWRITABLE;
}
public AbstractDiskLSMComponent() {
- this(null);
+ this(null, null);
}
@Override
@@ -100,9 +104,18 @@
return state;
}
- protected abstract void destroy() throws HyracksDataException;
+ public BloomFilter getBloomFilter() {
+ return bloomFilter;
+ }
- public abstract long getComponentSize();
+ protected void destroy() throws HyracksDataException {
+ bloomFilter.deactivate();
+ bloomFilter.destroy();
+ }
+
+ public long getComponentSize() {
+ return bloomFilter.getFileReference().getFile().length();
+ }
public abstract int getFileReferenceCount();
diff --git a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndexFileManager.java b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndexFileManager.java
index 3ad1396..39ff3d0 100644
--- a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndexFileManager.java
+++ b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndexFileManager.java
@@ -49,6 +49,7 @@
public static final String SPLIT_STRING = "_";
protected static final String BLOOM_FILTER_STRING = "f";
protected static final String TRANSACTION_PREFIX = ".T";
+ protected static final String STATISTICS_STRING = "s";
protected final IFileMapProvider fileMapProvider;
@@ -117,8 +118,8 @@
}
protected void validateFiles(HashSet<String> groundTruth, ArrayList<ComparableFileName> validFiles,
- FilenameFilter filter, TreeIndexFactory<? extends ITreeIndex> treeFactory) throws HyracksDataException,
- IndexException {
+ FilenameFilter filter, TreeIndexFactory<? extends ITreeIndex> treeFactory)
+ throws HyracksDataException, IndexException {
ArrayList<ComparableFileName> tmpAllInvListsFiles = new ArrayList<ComparableFileName>();
cleanupAndGetValidFilesInternal(filter, treeFactory, tmpAllInvListsFiles);
for (ComparableFileName cmpFileName : tmpAllInvListsFiles) {
@@ -173,7 +174,7 @@
public LSMComponentFileReferences getRelFlushFileReference() {
String ts = getCurrentTimestamp();
// Begin timestamp and end timestamp are identical since it is a flush
- return new LSMComponentFileReferences(createFlushFile(baseDir + ts + SPLIT_STRING + ts), null, null);
+ return new LSMComponentFileReferences(createFlushFile(baseDir + ts + SPLIT_STRING + ts), null, null, null);
}
@Override
@@ -182,8 +183,9 @@
String[] firstTimestampRange = firstFileName.split(SPLIT_STRING);
String[] lastTimestampRange = lastFileName.split(SPLIT_STRING);
// Get the range of timestamps by taking the earliest and the latest timestamps
- return new LSMComponentFileReferences(createMergeFile(baseDir + firstTimestampRange[0] + SPLIT_STRING
- + lastTimestampRange[1]), null, null);
+ return new LSMComponentFileReferences(
+ createMergeFile(baseDir + firstTimestampRange[0] + SPLIT_STRING + lastTimestampRange[1]), null, null,
+ null);
}
@Override
@@ -203,7 +205,7 @@
}
if (allFiles.size() == 1) {
- validFiles.add(new LSMComponentFileReferences(allFiles.get(0).fileRef, null, null));
+ validFiles.add(new LSMComponentFileReferences(allFiles.get(0).fileRef, null, null, null));
return validFiles;
}
@@ -235,7 +237,7 @@
// Sort valid files in reverse lexicographical order, such that newer files come first.
Collections.sort(validComparableFiles, recencyCmp);
for (ComparableFileName cmpFileName : validComparableFiles) {
- validFiles.add(new LSMComponentFileReferences(cmpFileName.fileRef, null, null));
+ validFiles.add(new LSMComponentFileReferences(cmpFileName.fileRef, null, null, null));
}
return validFiles;
@@ -375,8 +377,8 @@
};
protected static FilenameFilter createTransactionFilter(String transactionFileName, final boolean inclusive) {
- final String timeStamp = transactionFileName.substring(transactionFileName.indexOf(TRANSACTION_PREFIX)
- + TRANSACTION_PREFIX.length());
+ final String timeStamp = transactionFileName
+ .substring(transactionFileName.indexOf(TRANSACTION_PREFIX) + TRANSACTION_PREFIX.length());
return new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
diff --git a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMComponentFileReferences.java b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMComponentFileReferences.java
index 95fddfc..baebf65 100644
--- a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMComponentFileReferences.java
+++ b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMComponentFileReferences.java
@@ -30,12 +30,15 @@
// This FileReference for the bloom filter (if any).
private final FileReference bloomFilterFileReference;
+ // This FileReference for the component statistics (if any).
+ private final FileReference statisticsFileReference;
public LSMComponentFileReferences(FileReference insertIndexFileReference, FileReference deleteIndexFileReference,
- FileReference bloomFilterFileReference) {
+ FileReference bloomFilterFileReference, FileReference statisticsFileReference) {
this.insertIndexFileReference = insertIndexFileReference;
this.deleteIndexFileReference = deleteIndexFileReference;
this.bloomFilterFileReference = bloomFilterFileReference;
+ this.statisticsFileReference = statisticsFileReference;
}
public FileReference getInsertIndexFileReference() {
@@ -49,4 +52,8 @@
public FileReference getBloomFilterFileReference() {
return bloomFilterFileReference;
}
+
+ public FileReference getStatisticsFileReference() {
+ return statisticsFileReference;
+ }
}
diff --git a/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndex.java b/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndex.java
index 28b96db..ad41c4e 100644
--- a/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndex.java
+++ b/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndex.java
@@ -46,6 +46,7 @@
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.ITreeIndexCursor;
import org.apache.hyracks.storage.am.common.api.IVirtualFreePageManager;
import org.apache.hyracks.storage.am.common.api.IndexException;
import org.apache.hyracks.storage.am.common.exceptions.TreeIndexDuplicateKeyException;
@@ -109,14 +110,13 @@
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 {
+ 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 {
super(virtualBufferCaches, diskInvIndexFactory.getBufferCache(), fileManager, diskFileMapProvider,
bloomFilterFalsePositiveRate, mergePolicy, opTracker, ioScheduler, ioOpCallback, filterFrameFactory,
filterManager, filterFields, durable);
@@ -137,13 +137,14 @@
for (IVirtualBufferCache virtualBufferCache : virtualBufferCaches) {
InMemoryInvertedIndex memInvIndex = createInMemoryInvertedIndex(virtualBufferCache,
new VirtualFreePageManager(virtualBufferCache.getNumPages()), i);
- BTree deleteKeysBTree = BTreeUtils.createBTree(virtualBufferCache, new VirtualFreePageManager(
- virtualBufferCache.getNumPages()), virtualBufferCache.getFileMapProvider(), invListTypeTraits,
- invListCmpFactories, BTreeLeafFrameType.REGULAR_NSM,
+ BTree deleteKeysBTree = BTreeUtils.createBTree(virtualBufferCache,
+ new VirtualFreePageManager(virtualBufferCache.getNumPages()),
+ virtualBufferCache.getFileMapProvider(), invListTypeTraits, invListCmpFactories,
+ BTreeLeafFrameType.REGULAR_NSM,
new FileReference(new File(fileManager.getBaseDir() + "_virtual_del_" + i)));
LSMInvertedIndexMemoryComponent mutableComponent = new LSMInvertedIndexMemoryComponent(memInvIndex,
- deleteKeysBTree, virtualBufferCache, i == 0 ? true : false, filterFactory == null ? null
- : filterFactory.createLSMComponentFilter());
+ deleteKeysBTree, virtualBufferCache, i == 0 ? true : false,
+ filterFactory == null ? null : filterFactory.createLSMComponentFilter());
memoryComponents.add(mutableComponent);
++i;
}
@@ -396,8 +397,8 @@
}
if (ctx.filterTuple != null) {
ctx.filterTuple.reset(tuple);
- memoryComponents.get(currentMutableComponentId.get()).getLSMComponentFilter()
- .update(ctx.filterTuple, ctx.filterCmp);
+ memoryComponents.get(currentMutableComponentId.get()).getLSMComponentFilter().update(ctx.filterTuple,
+ ctx.filterCmp);
}
}
@@ -418,9 +419,8 @@
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()
@@ -450,8 +450,8 @@
initState = new LSMInvertedIndexSearchCursorInitialState(keyCmp, keysOnlyTuple, indexAccessors,
deletedKeysBTreeAccessors,
((LSMInvertedIndexMemoryComponent) memoryComponents.get(currentMutableComponentId.get()))
- .getDeletedKeysBTree().getLeafFrameFactory(), ictx, includeMutableComponent, lsmHarness,
- operationalComponents);
+ .getDeletedKeysBTree().getLeafFrameFactory(),
+ ictx, includeMutableComponent, lsmHarness, operationalComponents);
} else {
LSMInvertedIndexMemoryComponent mutableComponent = (LSMInvertedIndexMemoryComponent) memoryComponents
.get(currentMutableComponentId.get());
@@ -459,8 +459,9 @@
MultiComparator tokensAndKeysCmp = MultiComparator.create(memInvIndex.getBTree().getComparatorFactories());
initState = new LSMInvertedIndexRangeSearchCursorInitialState(tokensAndKeysCmp, keyCmp, keysOnlyTuple,
((LSMInvertedIndexMemoryComponent) memoryComponents.get(currentMutableComponentId.get()))
- .getDeletedKeysBTree().getLeafFrameFactory(), includeMutableComponent, lsmHarness,
- indexAccessors, deletedKeysBTreeAccessors, pred, operationalComponents);
+ .getDeletedKeysBTree().getLeafFrameFactory(),
+ includeMutableComponent, lsmHarness, indexAccessors, deletedKeysBTreeAccessors, pred,
+ operationalComponents);
}
return initState;
}
@@ -488,8 +489,8 @@
opCtx.setOperation(IndexOperation.FLUSH);
opCtx.getComponentHolder().add(flushingComponent);
ioScheduler.scheduleOperation(new LSMInvertedIndexFlushOperation(
- new LSMInvertedIndexAccessor(lsmHarness, opCtx), flushingComponent, componentFileRefs
- .getInsertIndexFileReference(), componentFileRefs.getDeleteIndexFileReference(),
+ new LSMInvertedIndexAccessor(lsmHarness, opCtx), flushingComponent,
+ componentFileRefs.getInsertIndexFileReference(), componentFileRefs.getDeleteIndexFileReference(),
componentFileRefs.getBloomFilterFileReference(), callback, fileManager.getBaseDir()));
}
@@ -500,7 +501,7 @@
// Create an inverted index instance to be bulk loaded.
LSMInvertedIndexDiskComponent component = createDiskInvIndexComponent(componentFactory,
flushOp.getDictBTreeFlushTarget(), flushOp.getDeletedKeysBTreeFlushTarget(),
- flushOp.getBloomFilterFlushTarget(), true);
+ flushOp.getBloomFilterTarget(), true);
IInvertedIndex diskInvertedIndex = component.getInvIndex();
// Create a scan cursor on the BTree underlying the in-memory inverted index.
@@ -525,8 +526,8 @@
}
invIndexBulkLoader.end();
- IIndexAccessor deletedKeysBTreeAccessor = flushingComponent.getDeletedKeysBTree().createAccessor(
- NoOpOperationCallback.INSTANCE, NoOpOperationCallback.INSTANCE);
+ IIndexAccessor deletedKeysBTreeAccessor = flushingComponent.getDeletedKeysBTree()
+ .createAccessor(NoOpOperationCallback.INSTANCE, NoOpOperationCallback.INSTANCE);
IIndexCursor btreeCountingCursor = ((BTreeAccessor) deletedKeysBTreeAccessor).createCountingSearchCursor();
deletedKeysBTreeAccessor.search(btreeCountingCursor, nullPred);
long numBTreeTuples = 0L;
@@ -585,10 +586,11 @@
@Override
public void scheduleMerge(ILSMIndexOperationContext ctx, ILSMIOOperationCallback callback)
throws HyracksDataException, IndexException {
- LSMInvertedIndexOpContext ictx = createOpContext(NoOpOperationCallback.INSTANCE, NoOpOperationCallback.INSTANCE);
+ LSMInvertedIndexOpContext ictx = createOpContext(NoOpOperationCallback.INSTANCE,
+ NoOpOperationCallback.INSTANCE);
ictx.setOperation(IndexOperation.MERGE);
List<ILSMComponent> mergingComponents = ctx.getComponentHolder();
- IIndexCursor cursor = new LSMInvertedIndexRangeSearchCursor(ictx);
+ ITreeIndexCursor cursor = new LSMInvertedIndexRangeSearchCursor(ictx);
LSMInvertedIndexDiskComponent firstComponent = (LSMInvertedIndexDiskComponent) mergingComponents.get(0);
OnDiskInvertedIndex firstInvIndex = (OnDiskInvertedIndex) firstComponent.getInvIndex();
@@ -620,7 +622,7 @@
// Create an inverted index instance.
LSMInvertedIndexDiskComponent component = createDiskInvIndexComponent(componentFactory,
mergeOp.getDictBTreeMergeTarget(), mergeOp.getDeletedKeysBTreeMergeTarget(),
- mergeOp.getBloomFilterMergeTarget(), true);
+ mergeOp.getBloomFilterTarget(), true);
IInvertedIndex mergedDiskInvertedIndex = component.getInvIndex();
@@ -806,11 +808,10 @@
}
protected LSMInvertedIndexDiskComponent createDiskInvIndexComponent(ILSMComponentFactory factory,
- FileReference dictBTreeFileRef, FileReference btreeFileRef, FileReference bloomFilterFileRef, boolean create)
- throws HyracksDataException, IndexException {
- LSMInvertedIndexDiskComponent component = (LSMInvertedIndexDiskComponent) factory
- .createLSMComponentInstance(new LSMComponentFileReferences(dictBTreeFileRef, btreeFileRef,
- bloomFilterFileRef));
+ FileReference dictBTreeFileRef, FileReference btreeFileRef, FileReference bloomFilterFileRef,
+ boolean create) throws HyracksDataException, IndexException {
+ LSMInvertedIndexDiskComponent component = (LSMInvertedIndexDiskComponent) factory.createLSMComponentInstance(
+ new LSMComponentFileReferences(dictBTreeFileRef, btreeFileRef, bloomFilterFileRef, null));
if (create) {
component.getInvIndex().create();
component.getDeletedKeysBTree().create();
diff --git a/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexDiskComponent.java b/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexDiskComponent.java
index 799a3da..0539c0a 100644
--- a/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexDiskComponent.java
+++ b/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexDiskComponent.java
@@ -30,14 +30,12 @@
private final IInvertedIndex invIndex;
private final BTree deletedKeysBTree;
- private final BloomFilter bloomFilter;
public LSMInvertedIndexDiskComponent(IInvertedIndex invIndex, BTree deletedKeysBTree, BloomFilter bloomFilter,
ILSMComponentFilter filter) {
- super(filter);
+ super(bloomFilter, filter);
this.invIndex = invIndex;
this.deletedKeysBTree = deletedKeysBTree;
- this.bloomFilter = bloomFilter;
}
@Override
@@ -46,8 +44,7 @@
invIndex.destroy();
deletedKeysBTree.deactivate();
deletedKeysBTree.destroy();
- bloomFilter.deactivate();
- bloomFilter.destroy();
+ super.destroy();
}
public IInvertedIndex getInvIndex() {
@@ -58,16 +55,11 @@
return deletedKeysBTree;
}
- public BloomFilter getBloomFilter() {
- return bloomFilter;
- }
-
@Override
public long getComponentSize() {
- return ((OnDiskInvertedIndex) invIndex).getInvListsFile().getFile().length()
+ return super.getComponentSize() + ((OnDiskInvertedIndex) invIndex).getInvListsFile().getFile().length()
+ ((OnDiskInvertedIndex) invIndex).getBTree().getFileReference().getFile().length()
- + deletedKeysBTree.getFileReference().getFile().length()
- + bloomFilter.getFileReference().getFile().length();
+ + deletedKeysBTree.getFileReference().getFile().length();
}
@Override
diff --git a/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFileManager.java b/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFileManager.java
index 6c699da..f0c047f 100644
--- a/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFileManager.java
+++ b/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFileManager.java
@@ -66,7 +66,8 @@
}
};
- public LSMInvertedIndexFileManager(IFileMapProvider fileMapProvider, FileReference file, BTreeFactory btreeFactory) {
+ public LSMInvertedIndexFileManager(IFileMapProvider fileMapProvider, FileReference file,
+ BTreeFactory btreeFactory) {
super(fileMapProvider, file, null);
this.btreeFactory = btreeFactory;
}
@@ -77,8 +78,8 @@
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), null);
}
@Override
@@ -90,8 +91,8 @@
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), null);
}
@Override
@@ -131,8 +132,8 @@
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, null));
return validFiles;
}
@@ -182,7 +183,8 @@
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.");
}
}
@@ -200,7 +202,7 @@
ComparableFileName cmpDeletedKeysBTreeFile = deletedKeysBTreeIter.next();
ComparableFileName cmpBloomFilterFileName = bloomFilterFileIter.next();
validFiles.add(new LSMComponentFileReferences(cmpDictBTreeFile.fileRef, cmpDeletedKeysBTreeFile.fileRef,
- cmpBloomFilterFileName.fileRef));
+ cmpBloomFilterFileName.fileRef, null));
}
return validFiles;
diff --git a/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFlushOperation.java b/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFlushOperation.java
index b38d23a..5aff65d 100644
--- a/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFlushOperation.java
+++ b/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFlushOperation.java
@@ -19,64 +19,36 @@
package org.apache.hyracks.storage.am.lsm.invertedindex.impls;
-import java.util.Collections;
-import java.util.HashSet;
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;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessorInternal;
+import org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMFlushOperation;
-public class LSMInvertedIndexFlushOperation implements ILSMIOOperation, Comparable<LSMInvertedIndexFlushOperation> {
- private final ILSMIndexAccessorInternal accessor;
- private final ILSMComponent flushingComponent;
+public class LSMInvertedIndexFlushOperation extends AbstractLSMFlushOperation
+ implements Comparable<LSMInvertedIndexFlushOperation> {
+
private final FileReference dictBTreeFlushTarget;
private final FileReference deletedKeysBTreeFlushTarget;
- private final FileReference bloomFilterFlushTarget;
- private final ILSMIOOperationCallback callback;
- private final String indexIdentifier;
public LSMInvertedIndexFlushOperation(ILSMIndexAccessorInternal accessor, ILSMComponent flushingComponent,
FileReference dictBTreeFlushTarget, FileReference deletedKeysBTreeFlushTarget,
FileReference bloomFilterFlushTarget, ILSMIOOperationCallback callback, String indexIdentifier) {
- this.accessor = accessor;
- this.flushingComponent = flushingComponent;
+ super(accessor, flushingComponent, bloomFilterFlushTarget, callback, indexIdentifier);
this.dictBTreeFlushTarget = dictBTreeFlushTarget;
this.deletedKeysBTreeFlushTarget = deletedKeysBTreeFlushTarget;
- this.bloomFilterFlushTarget = bloomFilterFlushTarget;
- this.callback = callback;
- this.indexIdentifier = indexIdentifier;
- }
-
- @Override
- public Set<IODeviceHandle> getReadDevices() {
- return Collections.emptySet();
}
@Override
public Set<IODeviceHandle> getWriteDevices() {
- Set<IODeviceHandle> devs = new HashSet<IODeviceHandle>();
+ Set<IODeviceHandle> devs = super.getWriteDevices();
devs.add(dictBTreeFlushTarget.getDeviceHandle());
devs.add(deletedKeysBTreeFlushTarget.getDeviceHandle());
- devs.add(bloomFilterFlushTarget.getDeviceHandle());
return devs;
- }
-
- @Override
- public Boolean call() throws HyracksDataException, IndexException {
- accessor.flush(this);
- return true;
- }
-
- @Override
- public ILSMIOOperationCallback getCallback() {
- return callback;
}
public FileReference getDictBTreeFlushTarget() {
@@ -85,24 +57,6 @@
public FileReference getDeletedKeysBTreeFlushTarget() {
return deletedKeysBTreeFlushTarget;
- }
-
- public FileReference getBloomFilterFlushTarget() {
- return bloomFilterFlushTarget;
- }
-
- public ILSMComponent getFlushingComponent() {
- return flushingComponent;
- }
-
- @Override
- public String getIndexUniqueIdentifier() {
- return indexIdentifier;
- }
-
- @Override
- public LSMIOOpertionType getIOOpertionType() {
- return LSMIOOpertionType.FLUSH;
}
@Override
diff --git a/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexMergeOperation.java b/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexMergeOperation.java
index 0a368c6..2abd0a0 100644
--- a/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexMergeOperation.java
+++ b/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexMergeOperation.java
@@ -19,75 +19,48 @@
package org.apache.hyracks.storage.am.lsm.invertedindex.impls;
-import java.util.HashSet;
import java.util.List;
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.IIndexCursor;
-import org.apache.hyracks.storage.am.common.api.IndexException;
+import org.apache.hyracks.storage.am.common.api.ITreeIndexCursor;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent;
-import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperation;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessorInternal;
+import org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMMergeOperation;
import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.OnDiskInvertedIndex;
-public class LSMInvertedIndexMergeOperation implements ILSMIOOperation {
- private final ILSMIndexAccessorInternal accessor;
- private final List<ILSMComponent> mergingComponents;
- private final IIndexCursor cursor;
+public class LSMInvertedIndexMergeOperation extends AbstractLSMMergeOperation {
private final FileReference dictBTreeMergeTarget;
private final FileReference deletedKeysBTreeMergeTarget;
- private final FileReference bloomFilterMergeTarget;
- private final ILSMIOOperationCallback callback;
- private final String indexIdentifier;
public LSMInvertedIndexMergeOperation(ILSMIndexAccessorInternal accessor, List<ILSMComponent> mergingComponents,
- IIndexCursor cursor, FileReference dictBTreeMergeTarget, FileReference deletedKeysBTreeMergeTarget,
+ ITreeIndexCursor cursor, FileReference dictBTreeMergeTarget, FileReference deletedKeysBTreeMergeTarget,
FileReference bloomFilterMergeTarget, ILSMIOOperationCallback callback, String indexIdentifier) {
- this.accessor = accessor;
- this.mergingComponents = mergingComponents;
- this.cursor = cursor;
+ super(accessor, mergingComponents, cursor, bloomFilterMergeTarget, callback, indexIdentifier);
this.dictBTreeMergeTarget = dictBTreeMergeTarget;
this.deletedKeysBTreeMergeTarget = deletedKeysBTreeMergeTarget;
- this.bloomFilterMergeTarget = bloomFilterMergeTarget;
- this.callback = callback;
- this.indexIdentifier = indexIdentifier;
}
@Override
public Set<IODeviceHandle> getReadDevices() {
- Set<IODeviceHandle> devs = new HashSet<IODeviceHandle>();
+ Set<IODeviceHandle> devs = super.getReadDevices();
for (Object o : mergingComponents) {
LSMInvertedIndexDiskComponent component = (LSMInvertedIndexDiskComponent) o;
OnDiskInvertedIndex invIndex = (OnDiskInvertedIndex) component.getInvIndex();
devs.add(invIndex.getBTree().getFileReference().getDeviceHandle());
devs.add(component.getDeletedKeysBTree().getFileReference().getDeviceHandle());
- devs.add(component.getBloomFilter().getFileReference().getDeviceHandle());
}
return devs;
}
@Override
public Set<IODeviceHandle> getWriteDevices() {
- Set<IODeviceHandle> devs = new HashSet<IODeviceHandle>();
+ Set<IODeviceHandle> devs = super.getWriteDevices();
devs.add(dictBTreeMergeTarget.getDeviceHandle());
devs.add(deletedKeysBTreeMergeTarget.getDeviceHandle());
- devs.add(bloomFilterMergeTarget.getDeviceHandle());
return devs;
- }
-
- @Override
- public Boolean call() throws HyracksDataException, IndexException {
- accessor.merge(this);
- return true;
- }
-
- @Override
- public ILSMIOOperationCallback getCallback() {
- return callback;
}
public FileReference getDictBTreeMergeTarget() {
@@ -98,25 +71,4 @@
return deletedKeysBTreeMergeTarget;
}
- public FileReference getBloomFilterMergeTarget() {
- return bloomFilterMergeTarget;
- }
-
- public IIndexCursor getCursor() {
- return cursor;
- }
-
- public List<ILSMComponent> getMergingComponents() {
- return mergingComponents;
- }
-
- @Override
- public String getIndexUniqueIdentifier() {
- return indexIdentifier;
- }
-
- @Override
- public LSMIOOpertionType getIOOpertionType() {
- return LSMIOOpertionType.MERGE;
- }
}
\ No newline at end of file
diff --git a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java
index 533dfac..540ac0f 100644
--- a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java
+++ b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java
@@ -101,15 +101,15 @@
for (IVirtualBufferCache virtualBufferCache : virtualBufferCaches) {
RTree memRTree = new RTree(virtualBufferCache, virtualBufferCache.getFileMapProvider(),
new VirtualFreePageManager(virtualBufferCache.getNumPages()), rtreeInteriorFrameFactory,
- rtreeLeafFrameFactory, rtreeCmpFactories, fieldCount, new FileReference(new File(
- fileManager.getBaseDir() + "_virtual_r_" + i)));
+ rtreeLeafFrameFactory, rtreeCmpFactories, fieldCount,
+ new FileReference(new File(fileManager.getBaseDir() + "_virtual_r_" + i)));
BTree memBTree = new BTree(virtualBufferCache, virtualBufferCache.getFileMapProvider(),
new VirtualFreePageManager(virtualBufferCache.getNumPages()), btreeInteriorFrameFactory,
- btreeLeafFrameFactory, btreeCmpFactories, btreeCmpFactories.length, new FileReference(new File(
- fileManager.getBaseDir() + "_virtual_b_" + i)));
+ btreeLeafFrameFactory, btreeCmpFactories, btreeCmpFactories.length,
+ new FileReference(new File(fileManager.getBaseDir() + "_virtual_b_" + i)));
LSMRTreeMemoryComponent mutableComponent = new LSMRTreeMemoryComponent(memRTree, memBTree,
- virtualBufferCache, i == 0 ? true : false, filterFactory == null ? null
- : filterFactory.createLSMComponentFilter());
+ virtualBufferCache, i == 0 ? true : false,
+ filterFactory == null ? null : filterFactory.createLSMComponentFilter());
memoryComponents.add(mutableComponent);
++i;
}
@@ -309,11 +309,10 @@
protected LSMRTreeDiskComponent createDiskComponent(ILSMComponentFactory factory, FileReference insertFileRef,
FileReference deleteFileRef, FileReference bloomFilterFileRef, boolean createComponent)
- throws HyracksDataException, IndexException {
+ throws HyracksDataException, IndexException {
// Create new tree instance.
- LSMRTreeDiskComponent component = (LSMRTreeDiskComponent) factory
- .createLSMComponentInstance(new LSMComponentFileReferences(insertFileRef, deleteFileRef,
- bloomFilterFileRef));
+ LSMRTreeDiskComponent component = (LSMRTreeDiskComponent) factory.createLSMComponentInstance(
+ new LSMComponentFileReferences(insertFileRef, deleteFileRef, bloomFilterFileRef, null));
if (createComponent) {
component.getRTree().create();
if (component.getBTree() != null) {
@@ -407,8 +406,8 @@
}
if (ctx.filterTuple != null) {
ctx.filterTuple.reset(tuple);
- memoryComponents.get(currentMutableComponentId.get()).getLSMComponentFilter()
- .update(ctx.filterTuple, ctx.filterCmp);
+ memoryComponents.get(currentMutableComponentId.get()).getLSMComponentFilter().update(ctx.filterTuple,
+ ctx.filterCmp);
}
}
diff --git a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java
index f5be6c8..d963a54 100644
--- a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java
+++ b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java
@@ -233,7 +233,7 @@
SearchPredicate rtreeNullPredicate = new SearchPredicate(null, null);
memRTreeAccessor.search(rtreeScanCursor, rtreeNullPredicate);
LSMRTreeDiskComponent component = createDiskComponent(componentFactory, flushOp.getRTreeFlushTarget(),
- flushOp.getBTreeFlushTarget(), flushOp.getBloomFilterFlushTarget(), true);
+ flushOp.getBTreeFlushTarget(), flushOp.getBloomFilterTarget(), true);
RTree diskRTree = component.getRTree();
IIndexBulkLoader rTreeBulkloader;
ITreeIndexCursor cursor;
diff --git a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeDiskComponent.java b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeDiskComponent.java
index 4e6952b..b839b2c 100644
--- a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeDiskComponent.java
+++ b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeDiskComponent.java
@@ -28,13 +28,11 @@
public class LSMRTreeDiskComponent extends AbstractDiskLSMComponent {
private final RTree rtree;
private final BTree btree;
- private final BloomFilter bloomFilter;
public LSMRTreeDiskComponent(RTree rtree, BTree btree, BloomFilter bloomFilter, ILSMComponentFilter filter) {
- super(filter);
+ super(bloomFilter, filter);
this.rtree = rtree;
this.btree = btree;
- this.bloomFilter = bloomFilter;
}
@Override
@@ -44,8 +42,7 @@
if (btree != null) {
btree.deactivate();
btree.destroy();
- bloomFilter.deactivate();
- bloomFilter.destroy();
+ super.destroy();
}
}
@@ -57,16 +54,12 @@
return btree;
}
- public BloomFilter getBloomFilter() {
- return bloomFilter;
- }
-
@Override
public long getComponentSize() {
long size = rtree.getFileReference().getFile().length();
if (btree != null) {
size += btree.getFileReference().getFile().length();
- size += bloomFilter.getFileReference().getFile().length();
+ size += super.getComponentSize();
}
return size;
}
diff --git a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFileManager.java b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFileManager.java
index 4f50980..5eda83f 100644
--- a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFileManager.java
+++ b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFileManager.java
@@ -73,8 +73,8 @@
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 + RTREE_STRING),
- createFlushFile(baseName + SPLIT_STRING + BTREE_STRING), createFlushFile(baseName + SPLIT_STRING
- + BLOOM_FILTER_STRING));
+ createFlushFile(baseName + SPLIT_STRING + BTREE_STRING),
+ createFlushFile(baseName + SPLIT_STRING + BLOOM_FILTER_STRING), null);
}
@Override
@@ -87,8 +87,8 @@
// Get the range of timestamps by taking the earliest and the latest
// timestamps
return new LSMComponentFileReferences(createMergeFile(baseName + SPLIT_STRING + RTREE_STRING),
- createMergeFile(baseName + SPLIT_STRING + BTREE_STRING), createMergeFile(baseName + SPLIT_STRING
- + BLOOM_FILTER_STRING));
+ createMergeFile(baseName + SPLIT_STRING + BTREE_STRING),
+ createMergeFile(baseName + SPLIT_STRING + BLOOM_FILTER_STRING), null);
}
@Override
@@ -109,7 +109,8 @@
btreeFilesSet.add(cmpFileName.fileName.substring(0, index));
}
validateFiles(btreeFilesSet, allRTreeFiles, getCompoundFilter(transactionFilter, rtreeFilter), rtreeFactory);
- validateFiles(btreeFilesSet, allBloomFilterFiles, getCompoundFilter(transactionFilter, bloomFilterFilter), null);
+ validateFiles(btreeFilesSet, allBloomFilterFiles, getCompoundFilter(transactionFilter, bloomFilterFilter),
+ null);
// Sanity check.
if (allRTreeFiles.size() != allBTreeFiles.size() || allBTreeFiles.size() != allBloomFilterFiles.size()) {
@@ -124,7 +125,7 @@
if (allRTreeFiles.size() == 1 && allBTreeFiles.size() == 1 && allBloomFilterFiles.size() == 1) {
validFiles.add(new LSMComponentFileReferences(allRTreeFiles.get(0).fileRef, allBTreeFiles.get(0).fileRef,
- allBloomFilterFiles.get(0).fileRef));
+ allBloomFilterFiles.get(0).fileRef, null));
return validFiles;
}
@@ -174,7 +175,8 @@
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.");
}
}
@@ -192,7 +194,7 @@
ComparableFileName cmpBTreeFileName = btreeFileIter.next();
ComparableFileName cmpBloomFilterFileName = bloomFilterFileIter.next();
validFiles.add(new LSMComponentFileReferences(cmpRTreeFileName.fileRef, cmpBTreeFileName.fileRef,
- cmpBloomFilterFileName.fileRef));
+ cmpBloomFilterFileName.fileRef, null));
}
return validFiles;
}
@@ -205,8 +207,8 @@
String baseName = baseDir + ts + SPLIT_STRING + ts;
return new LSMComponentFileReferences(createFlushFile(baseName + SPLIT_STRING + RTREE_STRING),
- createFlushFile(baseName + SPLIT_STRING + BTREE_STRING), createFlushFile(baseName + SPLIT_STRING
- + BLOOM_FILTER_STRING));
+ createFlushFile(baseName + SPLIT_STRING + BTREE_STRING),
+ createFlushFile(baseName + SPLIT_STRING + BLOOM_FILTER_STRING), null);
}
@Override
@@ -250,6 +252,6 @@
FileReference rTreeFileRef = new FileReference(rTreeFile);
FileReference bTreeFileRef = new FileReference(bTreeFile);
FileReference bloomFilterFileRef = new FileReference(bloomFilterFile);
- return new LSMComponentFileReferences(rTreeFileRef, bTreeFileRef, bloomFilterFileRef);
+ return new LSMComponentFileReferences(rTreeFileRef, bTreeFileRef, bloomFilterFileRef, null);
}
}
diff --git a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFlushOperation.java b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFlushOperation.java
index 31455ae..09abf66 100644
--- a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFlushOperation.java
+++ b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFlushOperation.java
@@ -18,44 +18,27 @@
*/
package org.apache.hyracks.storage.am.lsm.rtree.impls;
-import java.util.Collections;
import java.util.HashSet;
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;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessorInternal;
+import org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMFlushOperation;
-public class LSMRTreeFlushOperation implements ILSMIOOperation, Comparable<LSMRTreeFlushOperation> {
+public class LSMRTreeFlushOperation extends AbstractLSMFlushOperation implements Comparable<LSMRTreeFlushOperation> {
- private final ILSMIndexAccessorInternal accessor;
- private final ILSMComponent flushingComponent;
private final FileReference rtreeFlushTarget;
private final FileReference btreeFlushTarget;
- private final FileReference bloomFilterFlushTarget;
- private final ILSMIOOperationCallback callback;
- private final String indexIdentifier;
public LSMRTreeFlushOperation(ILSMIndexAccessorInternal accessor, ILSMComponent flushingComponent,
FileReference rtreeFlushTarget, FileReference btreeFlushTarget, FileReference bloomFilterFlushTarget,
ILSMIOOperationCallback callback, String indexIdentifier) {
- this.accessor = accessor;
- this.flushingComponent = flushingComponent;
+ super(accessor, flushingComponent, bloomFilterFlushTarget, callback, indexIdentifier);
this.rtreeFlushTarget = rtreeFlushTarget;
this.btreeFlushTarget = btreeFlushTarget;
- this.bloomFilterFlushTarget = bloomFilterFlushTarget;
- this.callback = callback;
- this.indexIdentifier = indexIdentifier;
- }
-
- @Override
- public Set<IODeviceHandle> getReadDevices() {
- return Collections.emptySet();
}
@Override
@@ -64,20 +47,9 @@
devs.add(rtreeFlushTarget.getDeviceHandle());
if (btreeFlushTarget != null) {
devs.add(btreeFlushTarget.getDeviceHandle());
- devs.add(bloomFilterFlushTarget.getDeviceHandle());
+ devs.add(bloomFilterTarget.getDeviceHandle());
}
return devs;
- }
-
- @Override
- public Boolean call() throws HyracksDataException, IndexException {
- accessor.flush(this);
- return true;
- }
-
- @Override
- public ILSMIOOperationCallback getCallback() {
- return callback;
}
public FileReference getRTreeFlushTarget() {
@@ -86,24 +58,6 @@
public FileReference getBTreeFlushTarget() {
return btreeFlushTarget;
- }
-
- public FileReference getBloomFilterFlushTarget() {
- return bloomFilterFlushTarget;
- }
-
- public ILSMComponent getFlushingComponent() {
- return flushingComponent;
- }
-
- @Override
- public String getIndexUniqueIdentifier() {
- return indexIdentifier;
- }
-
- @Override
- public LSMIOOpertionType getIOOpertionType() {
- return LSMIOOpertionType.FLUSH;
}
@Override
diff --git a/hyracks/pom.xml b/hyracks/pom.xml
index 6ed530a..f427b2c 100644
--- a/hyracks/pom.xml
+++ b/hyracks/pom.xml
@@ -40,6 +40,35 @@
<version>1.2</version>
</plugin>
</plugins>
+ <pluginManagement>
+ <plugins>
+ <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+ <plugin>
+ <groupId>org.eclipse.m2e</groupId>
+ <artifactId>lifecycle-mapping</artifactId>
+ <version>1.0.0</version>
+ <configuration>
+ <lifecycleMappingMetadata>
+ <pluginExecutions>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-plugin-plugin</artifactId>
+ <versionRange>[3.4,)</versionRange>
+ <goals>
+ <goal>descriptor</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore></ignore>
+ </action>
+ </pluginExecution>
+ </pluginExecutions>
+ </lifecycleMappingMetadata>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
</build>
<repositories>
--
To view, visit https://asterix-gerrit.ics.uci.edu/453
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifc8927a7fe90577d787c3d30c371ea95dd4aa24e
Gerrit-PatchSet: 1
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Ildar Absalyamov <il...@gmail.com>
Change in hyracks[master]: Fixed m2e lifecycle mapping pom issues
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Fixed m2e lifecycle mapping pom issues
......................................................................
Patch Set 3:
Build Started https://asterix-jenkins.ics.uci.edu/job/hyracks-gerrit/510/
--
To view, visit https://asterix-gerrit.ics.uci.edu/453
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: Ifc8927a7fe90577d787c3d30c371ea95dd4aa24e
Gerrit-PatchSet: 3
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Ildar Absalyamov <il...@gmail.com>
Gerrit-Reviewer: Chris Hillery <ce...@lambda.nu>
Gerrit-Reviewer: Ian Maxon <im...@apache.org>
Gerrit-Reviewer: Ildar Absalyamov <il...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in hyracks[master]: Fixed m2e lifecycle mapping pom issues
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Fixed m2e lifecycle mapping pom issues
......................................................................
Patch Set 2:
Build Started https://asterix-jenkins.ics.uci.edu/job/hyracks-gerrit/507/
--
To view, visit https://asterix-gerrit.ics.uci.edu/453
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: Ifc8927a7fe90577d787c3d30c371ea95dd4aa24e
Gerrit-PatchSet: 2
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Ildar Absalyamov <il...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in hyracks[master]: Fixed m2e lifecycle mapping pom issues
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Fixed m2e lifecycle mapping pom issues
......................................................................
Patch Set 3: Verified+1
Build Successful
https://asterix-jenkins.ics.uci.edu/job/hyracks-gerrit/510/ : SUCCESS
--
To view, visit https://asterix-gerrit.ics.uci.edu/453
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: Ifc8927a7fe90577d787c3d30c371ea95dd4aa24e
Gerrit-PatchSet: 3
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Ildar Absalyamov <il...@gmail.com>
Gerrit-Reviewer: Chris Hillery <ce...@lambda.nu>
Gerrit-Reviewer: Ian Maxon <im...@apache.org>
Gerrit-Reviewer: Ildar Absalyamov <il...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in hyracks[master]: Fixed m2e lifecycle mapping pom issues
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Fixed m2e lifecycle mapping pom issues
......................................................................
Patch Set 2: Verified+1
Build Successful
https://asterix-jenkins.ics.uci.edu/job/hyracks-gerrit/507/ : SUCCESS
--
To view, visit https://asterix-gerrit.ics.uci.edu/453
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: Ifc8927a7fe90577d787c3d30c371ea95dd4aa24e
Gerrit-PatchSet: 2
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Ildar Absalyamov <il...@gmail.com>
Gerrit-Reviewer: Chris Hillery <ce...@lambda.nu>
Gerrit-Reviewer: Ian Maxon <im...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in hyracks[master]: Fixed m2e lifecycle mapping pom issues
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Fixed m2e lifecycle mapping pom issues
......................................................................
Patch Set 1: Verified-1
Build Failed
https://asterix-jenkins.ics.uci.edu/job/hyracks-gerrit/506/ : FAILURE
--
To view, visit https://asterix-gerrit.ics.uci.edu/453
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: Ifc8927a7fe90577d787c3d30c371ea95dd4aa24e
Gerrit-PatchSet: 1
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Ildar Absalyamov <il...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in hyracks[master]: Fixed m2e lifecycle mapping pom issues
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Fixed m2e lifecycle mapping pom issues
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/hyracks-gerrit/506/
--
To view, visit https://asterix-gerrit.ics.uci.edu/453
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: Ifc8927a7fe90577d787c3d30c371ea95dd4aa24e
Gerrit-PatchSet: 1
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Ildar Absalyamov <il...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in hyracks[master]: Fixed m2e lifecycle mapping pom issues
Posted by "Ildar Absalyamov (Code Review)" <do...@asterixdb.incubator.apache.org>.
Hello Jenkins,
I'd like you to reexamine a change. Please visit
https://asterix-gerrit.ics.uci.edu/453
to look at the new patch set (#2).
Change subject: Fixed m2e lifecycle mapping pom issues
......................................................................
Fixed m2e lifecycle mapping pom issues
Change-Id: Ifc8927a7fe90577d787c3d30c371ea95dd4aa24e
---
M hyracks/pom.xml
1 file changed, 29 insertions(+), 0 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/hyracks refs/changes/53/453/2
--
To view, visit https://asterix-gerrit.ics.uci.edu/453
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ifc8927a7fe90577d787c3d30c371ea95dd4aa24e
Gerrit-PatchSet: 2
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Ildar Absalyamov <il...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Change in hyracks[master]: Fixed m2e lifecycle mapping pom issues
Posted by "Ildar Absalyamov (Code Review)" <do...@asterixdb.incubator.apache.org>.
Hello Ian Maxon, Jenkins,
I'd like you to reexamine a change. Please visit
https://asterix-gerrit.ics.uci.edu/453
to look at the new patch set (#3).
Change subject: Fixed m2e lifecycle mapping pom issues
......................................................................
Fixed m2e lifecycle mapping pom issues
Change-Id: Ifc8927a7fe90577d787c3d30c371ea95dd4aa24e
---
M hyracks/pom.xml
1 file changed, 29 insertions(+), 0 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/hyracks refs/changes/53/453/3
--
To view, visit https://asterix-gerrit.ics.uci.edu/453
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ifc8927a7fe90577d787c3d30c371ea95dd4aa24e
Gerrit-PatchSet: 3
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Ildar Absalyamov <il...@gmail.com>
Gerrit-Reviewer: Chris Hillery <ce...@lambda.nu>
Gerrit-Reviewer: Ian Maxon <im...@apache.org>
Gerrit-Reviewer: Ildar Absalyamov <il...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Change in hyracks[master]: Fixed m2e lifecycle mapping pom issues
Posted by "Ian Maxon (Code Review)" <do...@asterixdb.incubator.apache.org>.
Ian Maxon has posted comments on this change.
Change subject: Fixed m2e lifecycle mapping pom issues
......................................................................
Patch Set 3: Code-Review+2
--
To view, visit https://asterix-gerrit.ics.uci.edu/453
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: Ifc8927a7fe90577d787c3d30c371ea95dd4aa24e
Gerrit-PatchSet: 3
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Ildar Absalyamov <il...@gmail.com>
Gerrit-Reviewer: Chris Hillery <ce...@lambda.nu>
Gerrit-Reviewer: Ian Maxon <im...@apache.org>
Gerrit-Reviewer: Ildar Absalyamov <il...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in hyracks[master]: Fixed m2e lifecycle mapping pom issues
Posted by "Ildar Absalyamov (Code Review)" <do...@asterixdb.incubator.apache.org>.
Ildar Absalyamov has submitted this change and it was merged.
Change subject: Fixed m2e lifecycle mapping pom issues
......................................................................
Fixed m2e lifecycle mapping pom issues
Change-Id: Ifc8927a7fe90577d787c3d30c371ea95dd4aa24e
Reviewed-on: https://asterix-gerrit.ics.uci.edu/453
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Ian Maxon <im...@apache.org>
---
M hyracks/pom.xml
1 file changed, 29 insertions(+), 0 deletions(-)
Approvals:
Ian Maxon: Looks good to me, approved
Jenkins: Verified
diff --git a/hyracks/pom.xml b/hyracks/pom.xml
index 86b1551..c1af7b9 100644
--- a/hyracks/pom.xml
+++ b/hyracks/pom.xml
@@ -39,6 +39,35 @@
<version>1.2</version>
</plugin>
</plugins>
+ <pluginManagement>
+ <plugins>
+ <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+ <plugin>
+ <groupId>org.eclipse.m2e</groupId>
+ <artifactId>lifecycle-mapping</artifactId>
+ <version>1.0.0</version>
+ <configuration>
+ <lifecycleMappingMetadata>
+ <pluginExecutions>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-plugin-plugin</artifactId>
+ <versionRange>[3.4,)</versionRange>
+ <goals>
+ <goal>descriptor</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore></ignore>
+ </action>
+ </pluginExecution>
+ </pluginExecutions>
+ </lifecycleMappingMetadata>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
</build>
<repositories>
--
To view, visit https://asterix-gerrit.ics.uci.edu/453
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ifc8927a7fe90577d787c3d30c371ea95dd4aa24e
Gerrit-PatchSet: 4
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Ildar Absalyamov <il...@gmail.com>
Gerrit-Reviewer: Chris Hillery <ce...@lambda.nu>
Gerrit-Reviewer: Ian Maxon <im...@apache.org>
Gerrit-Reviewer: Ildar Absalyamov <il...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Change in hyracks[master]: Fixed m2e lifecycle mapping pom issues
Posted by "Ian Maxon (Code Review)" <do...@asterixdb.incubator.apache.org>.
Ian Maxon has posted comments on this change.
Change subject: Fixed m2e lifecycle mapping pom issues
......................................................................
Patch Set 2: Code-Review+2
--
To view, visit https://asterix-gerrit.ics.uci.edu/453
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: Ifc8927a7fe90577d787c3d30c371ea95dd4aa24e
Gerrit-PatchSet: 2
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Ildar Absalyamov <il...@gmail.com>
Gerrit-Reviewer: Chris Hillery <ce...@lambda.nu>
Gerrit-Reviewer: Ian Maxon <im...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No