Luo Chen has uploaded a new change for review.
https://asterix-gerrit.ics.uci.edu/2300
Change subject: [ASTERIXDB-2250] Clean up files after failed flush/merge
......................................................................
[ASTERIXDB-2250] Clean up files after failed flush/merge
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
- Currently we didn't clean up component files if the flush/merge
operation fails. As a result, when a failure happens, the subsequent
retries must fail as well because the fails already exist.
- This patch clean up component files when there is exception thrown
during flush/merge operation
- Added a test case on failed merge
Change-Id: I94630613cfe68de9d5784e022ca3834de959aa02
---
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeFlushOperation.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeMergeOperation.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyMergeOperation.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperation.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/FlushOperation.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMComponentFileReferences.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/MergeOperation.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/TracedIOOperation.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFlushOperation.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexMergeOperation.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFlushOperation.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeMergeOperation.java
13 files changed, 120 insertions(+), 10 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/00/2300/1
diff --git
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeFlushOperation.java
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeFlushOperation.java
index e3424e5..7acc59f 100644
---
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeFlushOperation.java
+++
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeFlushOperation.java
@@ -22,6 +22,7 @@
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessor;
import org.apache.hyracks.storage.am.lsm.common.impls.FlushOperation;
+import
org.apache.hyracks.storage.am.lsm.common.impls.LSMComponentFileReferences;
public class LSMBTreeFlushOperation extends FlushOperation {
private final FileReference bloomFilterFlushTarget;
@@ -35,4 +36,9 @@
public FileReference getBloomFilterTarget() {
return bloomFilterFlushTarget;
}
+
+ @Override
+ public LSMComponentFileReferences getComponentFiles() {
+ return new LSMComponentFileReferences(target, null,
bloomFilterFlushTarget);
+ }
}
diff --git
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeMergeOperation.java
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeMergeOperation.java
index edfa7e1..3aef4c2 100644
---
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeMergeOperation.java
+++
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeMergeOperation.java
@@ -22,6 +22,7 @@
import org.apache.hyracks.api.io.FileReference;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessor;
+import
org.apache.hyracks.storage.am.lsm.common.impls.LSMComponentFileReferences;
import org.apache.hyracks.storage.am.lsm.common.impls.MergeOperation;
import org.apache.hyracks.storage.common.IIndexCursor;
@@ -38,4 +39,9 @@
public FileReference getBloomFilterTarget() {
return bloomFilterMergeTarget;
}
+
+ @Override
+ public LSMComponentFileReferences getComponentFiles() {
+ return new LSMComponentFileReferences(target, null,
bloomFilterMergeTarget);
+ }
}
diff --git
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyMergeOperation.java
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyMergeOperation.java
index 14cf778..dd4fcf5 100644
---
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyMergeOperation.java
+++
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeWithBuddyMergeOperation.java
@@ -21,6 +21,7 @@
import org.apache.hyracks.api.io.FileReference;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessor;
+import
org.apache.hyracks.storage.am.lsm.common.impls.LSMComponentFileReferences;
import org.apache.hyracks.storage.am.lsm.common.impls.MergeOperation;
import org.apache.hyracks.storage.common.IIndexCursor;
@@ -51,4 +52,8 @@
return keepDeletedTuples;
}
+ @Override
+ public LSMComponentFileReferences getComponentFiles() {
+ return new LSMComponentFileReferences(target, buddyBtreeMergeTarget,
bloomFilterMergeTarget);
+ }
}
diff --git
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperation.java
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperation.java
index ff32628..9551bdd 100644
---
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperation.java
+++
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperation.java
@@ -23,6 +23,7 @@
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.lsm.common.impls.LSMComponentFileReferences;
public interface ILSMIOOperation extends Callable<Boolean> {
@@ -67,4 +68,6 @@
* @return the accessor of the operation
*/
ILSMIndexAccessor getAccessor();
+
+ LSMComponentFileReferences getComponentFiles();
}
diff --git
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java
index e9f410d..34b4544 100644
---
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java
+++
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java
@@ -694,21 +694,77 @@
ILSMIndexOperationContext opCtx = accessor.getOpContext();
if (opCtx.getOperation() == IndexOperation.DELETE_MEMORY_COMPONENT) {
return EmptyComponent.INSTANCE;
- } else {
- if (LOGGER.isInfoEnabled()) {
- FlushOperation flushOp = (FlushOperation) operation;
- LOGGER.log(Level.INFO, "Flushing component with id: " +
flushOp.getFlushingComponent().getId());
- }
- return doFlush(operation);
}
+ if (LOGGER.isInfoEnabled()) {
+ FlushOperation flushOp = (FlushOperation) operation;
+ LOGGER.log(Level.INFO, "Flushing component with id: " +
flushOp.getFlushingComponent().getId());
+ }
+ ILSMDiskComponent component = null;
+ try {
+ component = doFlush(operation);
+ return component;
+ } catch (Exception e) {
+ LOGGER.error("Fail to execute flush " + this, e);
+ // clean up component
+ try {
+ cleanUpFiles(operation);
+ } catch (HyracksDataException e1) {
+ e.addSuppressed(e1);
+ }
+ throw HyracksDataException.create(e);
+ }
+
}
@Override
public final ILSMDiskComponent merge(ILSMIOOperation operation) throws
HyracksDataException {
ILSMIndexAccessor accessor = operation.getAccessor();
ILSMIndexOperationContext opCtx = accessor.getOpContext();
- return opCtx.getOperation() == IndexOperation.DELETE_DISK_COMPONENTS ?
EmptyComponent.INSTANCE
- : doMerge(operation);
+ ILSMDiskComponent component = null;
+ try {
+ component = opCtx.getOperation() ==
IndexOperation.DELETE_DISK_COMPONENTS ? EmptyComponent.INSTANCE
+ : doMerge(operation);
+ return component;
+ } catch (Exception e) {
+ LOGGER.error("Fail to execute merge " + this, e);
+ // clean up component
+ try {
+ cleanUpFiles(operation);
+ } catch (HyracksDataException e1) {
+ e.addSuppressed(e1);
+ }
+ throw HyracksDataException.create(e);
+ }
+
+ }
+
+ protected void cleanUpFiles(ILSMIOOperation operation) throws
HyracksDataException {
+ LSMComponentFileReferences componentFiles =
operation.getComponentFiles();
+ if (componentFiles == null) {
+ return;
+ }
+ FileReference[] files = componentFiles.getFileReferences();
+ HyracksDataException exception = null;
+ for (FileReference file : files) {
+ try {
+ cleanUpFile(file);
+ } catch (HyracksDataException e) {
+ if (exception == null) {
+ exception = e;
+ } else {
+ exception.addSuppressed(e);
+ }
+ }
+ }
+ if (exception != null) {
+ throw exception;
+ }
+ }
+
+ protected void cleanUpFile(FileReference file) throws HyracksDataException
{
+ if (file != null) {
+ diskBufferCache.deleteFile(file);
+ }
}
protected abstract LSMComponentFileReferences
getMergeFileReferences(ILSMDiskComponent firstComponent,
diff --git
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/FlushOperation.java
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/FlushOperation.java
index e809925..d835021 100644
---
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/FlushOperation.java
+++
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/FlushOperation.java
@@ -27,7 +27,7 @@
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessor;
-public class FlushOperation extends AbstractIoOperation implements
Comparable<ILSMIOOperation> {
+public abstract class FlushOperation extends AbstractIoOperation implements
Comparable<ILSMIOOperation> {
public FlushOperation(ILSMIndexAccessor accessor, FileReference target,
ILSMIOOperationCallback callback,
String indexIdentifier) {
diff --git
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMComponentFileReferences.java
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMComponentFileReferences.java
index 8e98087..4dd57eb 100644
---
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMComponentFileReferences.java
+++
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMComponentFileReferences.java
@@ -49,4 +49,8 @@
public FileReference getBloomFilterFileReference() {
return bloomFilterFileReference;
}
+
+ public FileReference[] getFileReferences() {
+ return new FileReference[] { insertIndexFileReference,
deleteIndexFileReference, bloomFilterFileReference };
+ }
}
diff --git
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/MergeOperation.java
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/MergeOperation.java
index e16da5b..ec2305d 100644
---
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/MergeOperation.java
+++
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/MergeOperation.java
@@ -27,7 +27,7 @@
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessor;
import org.apache.hyracks.storage.common.IIndexCursor;
-public class MergeOperation extends AbstractIoOperation {
+public abstract class MergeOperation extends AbstractIoOperation {
protected final IIndexCursor cursor;
public MergeOperation(ILSMIndexAccessor accessor, FileReference target,
ILSMIOOperationCallback callback,
diff --git
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/TracedIOOperation.java
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/TracedIOOperation.java
index 5fa6b4f..572e05c 100644
---
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/TracedIOOperation.java
+++
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/TracedIOOperation.java
@@ -104,6 +104,11 @@
public ILSMIndexAccessor getAccessor() {
return ioOp.getAccessor();
}
+
+ @Override
+ public LSMComponentFileReferences getComponentFiles() {
+ return ioOp.getComponentFiles();
+ }
}
class ComparableTracedIOOperation extends TracedIOOperation implements
Comparable<ILSMIOOperation> {
@@ -132,4 +137,5 @@
+ other.getClass().getSimpleName() + " in " +
getClass().getSimpleName());
return Integer.signum(hashCode() - other.hashCode());
}
+
}
\ No newline at end of file
diff --git
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFlushOperation.java
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFlushOperation.java
index 2106f6a..5b272ee 100644
---
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFlushOperation.java
+++
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexFlushOperation.java
@@ -23,6 +23,7 @@
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessor;
import org.apache.hyracks.storage.am.lsm.common.impls.FlushOperation;
+import
org.apache.hyracks.storage.am.lsm.common.impls.LSMComponentFileReferences;
public class LSMInvertedIndexFlushOperation extends FlushOperation {
private final FileReference deletedKeysBTreeFlushTarget;
@@ -43,4 +44,9 @@
public FileReference getBloomFilterTarget() {
return bloomFilterFlushTarget;
}
+
+ @Override
+ public LSMComponentFileReferences getComponentFiles() {
+ return new LSMComponentFileReferences(target,
deletedKeysBTreeFlushTarget, bloomFilterFlushTarget);
+ }
}
diff --git
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexMergeOperation.java
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexMergeOperation.java
index 2c1db0f..408d9bb 100644
---
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexMergeOperation.java
+++
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexMergeOperation.java
@@ -22,6 +22,7 @@
import org.apache.hyracks.api.io.FileReference;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessor;
+import
org.apache.hyracks.storage.am.lsm.common.impls.LSMComponentFileReferences;
import org.apache.hyracks.storage.am.lsm.common.impls.MergeOperation;
import org.apache.hyracks.storage.common.IIndexCursor;
@@ -44,4 +45,9 @@
public FileReference getBloomFilterTarget() {
return bloomFilterMergeTarget;
}
+
+ @Override
+ public LSMComponentFileReferences getComponentFiles() {
+ return new LSMComponentFileReferences(target,
deletedKeysBTreeMergeTarget, bloomFilterMergeTarget);
+ }
}
diff --git
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFlushOperation.java
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFlushOperation.java
index 6991c56..2306ebd 100644
---
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFlushOperation.java
+++
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeFlushOperation.java
@@ -22,6 +22,7 @@
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessor;
import org.apache.hyracks.storage.am.lsm.common.impls.FlushOperation;
+import
org.apache.hyracks.storage.am.lsm.common.impls.LSMComponentFileReferences;
public class LSMRTreeFlushOperation extends FlushOperation {
@@ -42,4 +43,9 @@
public FileReference getBloomFilterTarget() {
return bloomFilterFlushTarget;
}
+
+ @Override
+ public LSMComponentFileReferences getComponentFiles() {
+ return new LSMComponentFileReferences(target, btreeFlushTarget,
bloomFilterFlushTarget);
+ }
}
diff --git
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeMergeOperation.java
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeMergeOperation.java
index 572ff01..aed5981 100644
---
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeMergeOperation.java
+++
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeMergeOperation.java
@@ -21,6 +21,7 @@
import org.apache.hyracks.api.io.FileReference;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessor;
+import
org.apache.hyracks.storage.am.lsm.common.impls.LSMComponentFileReferences;
import org.apache.hyracks.storage.am.lsm.common.impls.MergeOperation;
import org.apache.hyracks.storage.common.IIndexCursor;
@@ -43,4 +44,9 @@
public FileReference getBloomFilterTarget() {
return bloomFilterMergeTarget;
}
+
+ @Override
+ public LSMComponentFileReferences getComponentFiles() {
+ return new LSMComponentFileReferences(btreeMergeTarget, null,
bloomFilterMergeTarget);
+ }
}
--
To view, visit https://asterix-gerrit.ics.uci.edu/2300
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I94630613cfe68de9d5784e022ca3834de959aa02
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Luo Chen <[email protected]>