|
@@ -537,6 +537,8 @@ public class Merger {
|
|
|
}
|
|
|
}
|
|
|
minSegment = top();
|
|
|
+ long startPos = minSegment.getPosition();
|
|
|
+ key = minSegment.getKey();
|
|
|
if (!minSegment.inMemory()) {
|
|
|
//When we load the value from an inmemory segment, we reset
|
|
|
//the "value" DIB in this class to the inmem segment's byte[].
|
|
@@ -547,11 +549,11 @@ public class Merger {
|
|
|
//segment, we reset the "value" DIB to the byte[] in that (so
|
|
|
//we reuse the disk segment DIB whenever we consider
|
|
|
//a disk segment).
|
|
|
+ minSegment.getValue(diskIFileValue);
|
|
|
value.reset(diskIFileValue.getData(), diskIFileValue.getLength());
|
|
|
+ } else {
|
|
|
+ minSegment.getValue(value);
|
|
|
}
|
|
|
- long startPos = minSegment.getPosition();
|
|
|
- key = minSegment.getKey();
|
|
|
- minSegment.getValue(value);
|
|
|
long endPos = minSegment.getPosition();
|
|
|
totalBytesProcessed += endPos - startPos;
|
|
|
mergeProgress.set(totalBytesProcessed * progPerByte);
|