public void mark() throws IOException { // We read one KV pair in advance in hasNext. // If hasNext has read the next KV pair from a new segment, but the // user has not called next() for that KV, then reset the readSegmentIndex // to the previous segment if (nextKVOffset == 0) { assert (readSegmentIndex != 0); assert (currentKVOffset != 0); readSegmentIndex --; } // just drop segments before the current active segment int i = 0; Iterator<Segment<K,V>> itr = segmentList.iterator(); while (itr.hasNext()) { Segment<K,V> s = itr.next(); if (i == readSegmentIndex) { break; } s.close(); itr.remove(); i++; LOG.debug("Dropping a segment"); } // FirstSegmentOffset is the offset in the current segment from where we // need to start reading on the next reset firstSegmentOffset = currentKVOffset; readSegmentIndex = 0; LOG.debug("Setting the FirsSegmentOffset to " + currentKVOffset); }
private void clearSegmentList() throws IOException { for (Segment<K,V> segment: segmentList) { long len = segment.getLength(); segment.close(); if (segment.inMemory()) { memCache.unreserve(len); } } segmentList.clear(); }
private void clearSegmentList() throws IOException { for (Segment<K,V> segment: segmentList) { long len = segment.getLength(); segment.close(); if (segment.inMemory()) { memCache.unreserve(len); } } segmentList.clear(); }
private void adjustPriorityQueue(Segment<K, V> reader) throws IOException{ long startPos = reader.getPosition(); boolean hasNext = reader.next(); long endPos = reader.getPosition(); totalBytesProcessed += endPos - startPos; mergeProgress.set(totalBytesProcessed * progPerByte); if (hasNext) { adjustTop(); } else { pop(); // each time we finished processing one segment, check if the // totalBytesProcessed is larger than totalBytesExpected(the // one we used to calculate progPerByte) if(totalBytesProcessed > totalBytesExpected && LOG.isDebugEnabled()) { LOG.debug("totalBytesProcessed: " + totalBytesProcessed + " is larger than totalBytesExpected: " + totalBytesExpected); } reader.close(); } }
private void adjustPriorityQueue(Segment<K, V> reader) throws IOException{ long startPos = reader.getReader().bytesRead; boolean hasNext = reader.nextRawKey(); long endPos = reader.getReader().bytesRead; totalBytesProcessed += endPos - startPos; mergeProgress.set(Math.min(1.0f, totalBytesProcessed * progPerByte)); if (hasNext) { adjustTop(); } else { pop(); reader.close(); } }
private void adjustPriorityQueue(Segment<K, V> reader) throws IOException{ long startPos = reader.getPosition(); boolean hasNext = reader.nextRawKey(); long endPos = reader.getPosition(); totalBytesProcessed += endPos - startPos; mergeProgress.set(totalBytesProcessed * progPerByte); if (hasNext) { adjustTop(); } else { pop(); reader.close(); } }
private void adjustPriorityQueue(Segment<K, V> reader) throws IOException{ long startPos = reader.getReader().bytesRead; boolean hasNext = reader.nextRawKey(); long endPos = reader.getReader().bytesRead; totalBytesProcessed += endPos - startPos; mergeProgress.set(totalBytesProcessed * progPerByte); if (hasNext) { adjustTop(); } else { pop(); reader.close(); } }
private void adjustPriorityQueue(Segment<K, V> reader) throws IOException{ long startPos = reader.getReader().bytesRead; boolean hasNext = reader.nextRawKey(); long endPos = reader.getReader().bytesRead; totalBytesProcessed += endPos - startPos; mergeProgress.set(totalBytesProcessed * progPerByte); if (hasNext) { adjustTop(); } else { pop(); reader.close(); } }
private void adjustPriorityQueue(Segment<K, V> reader) throws IOException{ long startPos = reader.getPosition(); boolean hasNext = reader.next(); long endPos = reader.getPosition(); totalBytesProcessed += endPos - startPos; mergeProgress.set(totalBytesProcessed * progPerByte); if (hasNext) { adjustTop(); } else { pop(); reader.close(); } }
private void adjustPriorityQueue(Segment<K, V> reader) throws IOException{ long startPos = reader.getReader().bytesRead; boolean hasNext = reader.nextRawKey(); long endPos = reader.getReader().bytesRead; totalBytesProcessed += endPos - startPos; mergeProgress.set(totalBytesProcessed * progPerByte); if (hasNext) { adjustTop(); } else { pop(); reader.close(); } }
private void clearSegmentList() throws IOException { for (Segment<K,V> segment: segmentList) { long len = segment.getLength(); segment.close(); if (segment.inMemory()) { memCache.unreserve(len); } } segmentList.clear(); }
private void clearSegmentList() throws IOException { for (Segment<K,V> segment: segmentList) { long len = segment.getLength(); segment.close(); if (segment.inMemory()) { memCache.unreserve(len); } } segmentList.clear(); }
public void close() throws IOException { Segment<K, V> segment; while((segment = pop()) != null) { segment.close(); } }
private void clearSegmentList() throws IOException { for (Segment<K,V> segment: segmentList) { long len = segment.getLength(); segment.close(); if (segment.inMemory()) { memCache.unreserve(len); } } segmentList.clear(); }
public void close() throws IOException { Segment<K, V> segment; while((segment = pop()) != null) { segment.close(); } }
public void close() throws IOException { Segment<K, V> segment; while((segment = pop()) != null) { segment.close(); } }
public void close() throws IOException { Segment<K, V> segment; while((segment = pop()) != null) { segment.close(); } }
public void close() throws IOException { Segment<K, V> segment; while((segment = pop()) != null) { segment.close(); } }
public void close() throws IOException { Segment<K, V> segment; while((segment = pop()) != null) { segment.close(); } }
public void close() throws IOException { Segment<K, V> segment; while((segment = pop()) != null) { segment.close(); } }