commit | 4663e4a83d4c3f8a016f441a27e565190497ba48 | [log] [tgz] |
---|---|---|
author | alexander.behm <alexander.behm@123451ca-8445-de46-9d55-352943316053> | Sat Feb 04 07:22:33 2012 +0000 |
committer | alexander.behm <alexander.behm@123451ca-8445-de46-9d55-352943316053> | Sat Feb 04 07:22:33 2012 +0000 |
tree | 42453f04afe48f11a70ce5b7085c8dba7cb9529d | |
parent | 44d7c0785ec22262cc33647ac449c93b9304a67a [diff] |
Fixed a minor bug in LSMBTree merge. git-svn-id: https://hyracks.googlecode.com/svn/branches/hyracks_lsm_tree@1144 123451ca-8445-de46-9d55-352943316053
diff --git a/hyracks-storage-am-lsm-btree/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/btree/impls/LSMBTree.java b/hyracks-storage-am-lsm-btree/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/btree/impls/LSMBTree.java index cec8f76..ace9bf3 100644 --- a/hyracks-storage-am-lsm-btree/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/btree/impls/LSMBTree.java +++ b/hyracks-storage-am-lsm-btree/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/btree/impls/LSMBTree.java
@@ -357,6 +357,11 @@ List<Object> mergingDiskBTrees = lsmHarness.search(cursor, (RangePredicate) rangePred, ctx, false); mergedComponents.addAll(mergingDiskBTrees); + // Nothing to merge. + if (mergedComponents.isEmpty()) { + return null; + } + // Bulk load the tuples from all on-disk BTrees into the new BTree. BTree mergedBTree = createMergeTargetBTree(mergedComponents); IIndexBulkLoadContext bulkLoadCtx = mergedBTree.beginBulkLoad(1.0f);
diff --git a/hyracks-storage-am-lsm-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/common/impls/LSMHarness.java b/hyracks-storage-am-lsm-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/common/impls/LSMHarness.java index afacc1f..033e68c 100644 --- a/hyracks-storage-am-lsm-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/common/impls/LSMHarness.java +++ b/hyracks-storage-am-lsm-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/common/impls/LSMHarness.java
@@ -180,6 +180,10 @@ List<Object> mergedComponents = new ArrayList<Object>(); Object newComponent = lsmTree.merge(mergedComponents); + // No merge happened. + if (newComponent == null) { + return; + } // Remove the old Trees from the list, and add the new merged Tree(s). // Also, swap the searchRefCount.