@Override public DiskRangeList createCacheChunk(MemoryBuffer buffer, long offset, long end) { return new CacheChunk(buffer, offset, end); } };
@Override public DiskRangeList createCacheChunk(MemoryBuffer buffer, long offset, long end) { return new CacheChunk(buffer, offset, end); } };
@Override public DiskRangeList createCacheChunk( MemoryBuffer buffer, long startOffset, long endOffset) { return new CacheChunk(buffer, startOffset, endOffset); } }, gotAllData);
@Override public CacheChunk create() { return new CacheChunk(); } @Override
public DiskRangeList createCacheChunk(MemoryBuffer buffer, long offset, long end) { return new CacheChunk(buffer, offset, end); } };
private CacheChunk copyAndReplaceCandidateToNonCached( UncompressedCacheChunk candidateCached, long partOffset, long candidateEnd, DataCache cacheWrapper, MemoryBuffer[] singleAlloc) { // We thought we had the entire part to cache, but we don't; convert start to // non-cached. Since we are at the first gap, the previous stuff must be contiguous. singleAlloc[0] = null; trace.logPartialUncompressedData(partOffset, candidateEnd, true); allocateMultiple(singleAlloc, (int)(candidateEnd - partOffset)); MemoryBuffer buffer = singleAlloc[0]; cacheWrapper.reuseBuffer(buffer); ByteBuffer dest = buffer.getByteBufferRaw(); CacheChunk tcc = new CacheChunk(buffer, partOffset, candidateEnd); copyAndReplaceUncompressedChunks(candidateCached, dest, tcc, false); return tcc; }
private CacheChunk copyAndReplaceUncompressedToNonCached( BufferChunk bc, DataCache cacheWrapper, MemoryBuffer[] singleAlloc) { singleAlloc[0] = null; trace.logPartialUncompressedData(bc.getOffset(), bc.getEnd(), false); allocateMultiple(singleAlloc, bc.getLength()); MemoryBuffer buffer = singleAlloc[0]; cacheWrapper.reuseBuffer(buffer); ByteBuffer dest = buffer.getByteBufferRaw(); CacheChunk tcc = new CacheChunk(buffer, bc.getOffset(), bc.getEnd()); copyUncompressedChunk(bc.getChunk(), dest); bc.replaceSelfWith(tcc); return tcc; }
@Override public DiskRangeList createCacheChunk(MemoryBuffer buffer, long offset, long end) { return new CacheChunk(buffer, offset, end); } };