DiskRangeList.MutateHelper toRead = new DiskRangeList.MutateHelper(listToRead.get()); if (/*isTracingEnabled && */LOG.isInfoEnabled()) { LOG.info("Resulting disk ranges to read (file " + fileKey + "): "
DiskRangeList prev = range.prev; if (prev == null) { prev = new DiskRangeList.MutateHelper(range);
DiskRangeList prev = range.prev; if (prev == null) { prev = new DiskRangeList.MutateHelper(range);
DiskRangeList prev = range.prev; if (prev == null) { prev = new DiskRangeList.MutateHelper(range);
prev = new MutateHelper(ranges);
DiskRangeList prev = range.prev; if (prev == null) { prev = new MutateHelper(range);
public DiskRangeList getIncompleteCbs( DiskRangeList ranges, long baseOffset, BooleanRef gotAllData) { DiskRangeList prev = ranges.prev; if (prev == null) { prev = new MutateHelper(ranges); } DiskRangeList current = ranges; gotAllData.value = true; // Assume by default that we would find everything. while (current != null) { // We assume ranges in "ranges" are non-overlapping; thus, we will save next in advance. DiskRangeList check = current; current = current.next; if (check.hasData()) continue; Integer badLength = cache.get(Long.valueOf(check.getOffset() + baseOffset)); if (badLength == null || badLength < check.getLength()) { gotAllData.value = false; continue; } // We could just remove here and handle the missing tail during read, but that can be // dangerous; let's explicitly add an incomplete CB. check.replaceSelfWith(new IncompleteCb(check.getOffset(), check.getEnd())); } return prev.next; }
prev = new MutateHelper(ranges);
private DiskRangeList.MutateHelper getDataFromCacheAndDisk(DiskRangeList listToRead, long stripeOffset, boolean hasFileId, IdentityHashMap<ByteBuffer, Boolean> toRelease) throws IOException { DiskRangeList.MutateHelper toRead = new DiskRangeList.MutateHelper(listToRead); if (LOG.isInfoEnabled()) { LOG.info("Resulting disk ranges to read (file " + fileKey + "): "
public DiskRangeList getIncompleteCbs( DiskRangeList ranges, long baseOffset, BooleanRef gotAllData) { DiskRangeList prev = ranges.prev; if (prev == null) { prev = new MutateHelper(ranges); } DiskRangeList current = ranges; gotAllData.value = true; // Assume by default that we would find everything. while (current != null) { // We assume ranges in "ranges" are non-overlapping; thus, we will save next in advance. DiskRangeList check = current; current = current.next; if (check.hasData()) continue; Integer badLength = cache.get(Long.valueOf(check.getOffset() + baseOffset)); if (badLength == null || badLength < check.getLength()) { gotAllData.value = false; continue; } // We could just remove here and handle the missing tail during read, but that can be // dangerous; let's explicitly add an incomplete CB. check.replaceSelfWith(new IncompleteCb(check.getOffset(), check.getEnd())); } return prev.next; }