@Override public final void readFully(long position, byte[] buffer) throws IOException { readFully(position, buffer, 0, buffer.length); }
@Override public void load(long position, SliceBufferReference bufferReference, int length) { try { readFully(diskRange.getOffset() + position, bufferReference.getBuffer(), 0, length); } catch (IOException e) { throw new UncheckedIOException(e); } }
private void load() { if (bufferSlice != null) { return; } try { byte[] buffer = new byte[diskRange.getLength()]; readFully(diskRange.getOffset(), buffer); bufferSlice = Slices.wrappedBuffer(buffer); } catch (IOException e) { throw new UncheckedIOException(e); } } }
readFully(mergedRange.getOffset(), buffer); buffers.put(mergedRange, buffer);
@Override public final void readFully(long position, byte[] buffer) throws IOException { readFully(position, buffer, 0, buffer.length); }
@Override public final void readFully(long position, byte[] buffer) throws IOException { readFully(position, buffer, 0, buffer.length); }
@Override public void load(long position, SliceBufferReference bufferReference, int length) { try { readFully(diskRange.getOffset() + position, bufferReference.getBuffer(), 0, length); } catch (IOException e) { throw new UncheckedIOException(e); } }
private <K> Map<K, FixedLengthSliceInput> readSmallDiskRanges(Map<K, DiskRange> diskRanges) throws IOException { if (diskRanges.isEmpty()) { return ImmutableMap.of(); } Iterable<DiskRange> mergedRanges = mergeAdjacentDiskRanges(diskRanges.values(), maxMergeDistance, maxBufferSize); // read ranges Map<DiskRange, byte[]> buffers = new LinkedHashMap<>(); for (DiskRange mergedRange : mergedRanges) { // read full range in one request byte[] buffer = new byte[mergedRange.getLength()]; readFully(mergedRange.getOffset(), buffer); buffers.put(mergedRange, buffer); } ImmutableMap.Builder<K, FixedLengthSliceInput> slices = ImmutableMap.builder(); for (Entry<K, DiskRange> entry : diskRanges.entrySet()) { slices.put(entry.getKey(), getDiskRangeSlice(entry.getValue(), buffers).getInput()); } return slices.build(); }
private void load() { if (bufferSlice != null) { return; } try { byte[] buffer = new byte[diskRange.getLength()]; readFully(diskRange.getOffset(), buffer); bufferSlice = Slices.wrappedBuffer(buffer); } catch (IOException e) { throw new UncheckedIOException(e); } } }
@Override public void load(long position, SliceBufferReference bufferReference, int length) { try { readFully(diskRange.getOffset() + position, bufferReference.getBuffer(), 0, length); } catch (IOException e) { throw new RuntimeIOException(e); } }
readFully(mergedRange.getOffset(), buffer); buffers.put(mergedRange, buffer);