Minor changes based on Zack's code review.
git-svn-id: https://hyracks.googlecode.com/svn/branches/hyracks_lsm_tree@2942 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/LSMBTreePointSearchCursor.java b/hyracks-storage-am-lsm-btree/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/btree/impls/LSMBTreePointSearchCursor.java
index 13cf23a..0204833 100644
--- a/hyracks-storage-am-lsm-btree/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/btree/impls/LSMBTreePointSearchCursor.java
+++ b/hyracks-storage-am-lsm-btree/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/btree/impls/LSMBTreePointSearchCursor.java
@@ -16,7 +16,6 @@
package edu.uci.ics.hyracks.storage.am.lsm.btree.impls;
import java.util.ListIterator;
-import java.util.concurrent.atomic.AtomicInteger;
import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
import edu.uci.ics.hyracks.dataflow.common.data.accessors.ITupleReference;
@@ -50,7 +49,6 @@
private boolean includeMemComponent;
private int numBTrees;
private IIndexAccessor[] bTreeAccessors;
- private AtomicInteger searcherRefCount;
private ILSMHarness lsmHarness;
private boolean nextHasBeenCalled;
private boolean foundTuple;
@@ -72,6 +70,7 @@
bTreeAccessors[i].search(rangeCursors[i], predicate);
if (rangeCursors[i].hasNext()) {
rangeCursors[i].next();
+ // We use the predicate's to lock the key instead of the tuple that we get from cursor to avoid copying the tuple when we do the "unlatch dance"
if (reconciled || searchCallback.proceed(predicate.getLowKey())) {
// if proceed is successful, then there's no need for doing the "unlatch dance"
if (((ILSMTreeTupleReference) rangeCursors[i].getTuple()).isAntimatter()) {
@@ -129,9 +128,6 @@
rangeCursors = null;
nextHasBeenCalled = false;
foundTuple = false;
- if (searcherRefCount != null) {
- lsmHarness.endSearch(opCtx);
- }
}
@Override
diff --git a/hyracks-storage-am-lsm-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/common/impls/LSMIndexSearchCursor.java b/hyracks-storage-am-lsm-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/common/impls/LSMIndexSearchCursor.java
index 9fc351a..13f7465 100644
--- a/hyracks-storage-am-lsm-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/common/impls/LSMIndexSearchCursor.java
+++ b/hyracks-storage-am-lsm-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/common/impls/LSMIndexSearchCursor.java
@@ -18,7 +18,6 @@
import java.util.Comparator;
import java.util.List;
import java.util.PriorityQueue;
-import java.util.concurrent.atomic.AtomicInteger;
import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
import edu.uci.ics.hyracks.dataflow.common.data.accessors.ITupleReference;
@@ -41,7 +40,6 @@
protected MultiComparator cmp;
protected boolean needPush;
protected boolean includeMemComponent;
- protected AtomicInteger searcherRefCount;
protected ILSMHarness lsmHarness;
protected final ILSMIndexOperationContext opCtx;
@@ -81,10 +79,6 @@
}
}
rangeCursors = null;
-
- if (searcherRefCount != null) {
- lsmHarness.endSearch(opCtx);
- }
}
@Override
diff --git a/hyracks-storage-am-lsm-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/rtree/impls/LSMRTreeAbstractCursor.java b/hyracks-storage-am-lsm-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/rtree/impls/LSMRTreeAbstractCursor.java
index 289c904..5a72f29 100644
--- a/hyracks-storage-am-lsm-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/rtree/impls/LSMRTreeAbstractCursor.java
+++ b/hyracks-storage-am-lsm-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/rtree/impls/LSMRTreeAbstractCursor.java
@@ -1,7 +1,6 @@
package edu.uci.ics.hyracks.storage.am.lsm.rtree.impls;
import java.util.List;
-import java.util.concurrent.atomic.AtomicInteger;
import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
import edu.uci.ics.hyracks.dataflow.common.data.accessors.ITupleReference;
@@ -36,7 +35,6 @@
protected SearchPredicate rtreeSearchPredicate;
protected RangePredicate btreeRangePredicate;
protected ITupleReference frameTuple;
- protected AtomicInteger searcherRefCount;
protected boolean includeMemRTree;
protected ILSMHarness lsmHarness;
protected boolean foundNext;