private void updateState(CompressionMetadata metadata) { long offset = 0; long lastSegmentOffset = 0; long segmentSize = 0; while (offset < metadata.dataLength) { CompressionMetadata.Chunk chunk = metadata.chunkFor(offset); //Reached a new mmap boundary if (segmentSize + chunk.length + 4 > MAX_SEGMENT_SIZE) { if (segmentSize > 0) { state.add(lastSegmentOffset, segmentSize); lastSegmentOffset += segmentSize; segmentSize = 0; } } segmentSize += chunk.length + 4; //checksum offset += metadata.chunkLength(); } if (segmentSize > 0) state.add(lastSegmentOffset, segmentSize); state.length = lastSegmentOffset + segmentSize; }
private void updateState(CompressionMetadata metadata) { long offset = 0; long lastSegmentOffset = 0; long segmentSize = 0; while (offset < metadata.dataLength) { CompressionMetadata.Chunk chunk = metadata.chunkFor(offset); //Reached a new mmap boundary if (segmentSize + chunk.length + 4 > MAX_SEGMENT_SIZE) { if (segmentSize > 0) { state.add(lastSegmentOffset, segmentSize); lastSegmentOffset += segmentSize; segmentSize = 0; } } segmentSize += chunk.length + 4; //checksum offset += metadata.chunkLength(); } if (segmentSize > 0) state.add(lastSegmentOffset, segmentSize); state.length = lastSegmentOffset + segmentSize; }
private void updateState(CompressionMetadata metadata) { long offset = 0; long lastSegmentOffset = 0; long segmentSize = 0; while (offset < metadata.dataLength) { CompressionMetadata.Chunk chunk = metadata.chunkFor(offset); //Reached a new mmap boundary if (segmentSize + chunk.length + 4 > MAX_SEGMENT_SIZE) { if (segmentSize > 0) { state.add(lastSegmentOffset, segmentSize); lastSegmentOffset += segmentSize; segmentSize = 0; } } segmentSize += chunk.length + 4; //checksum offset += metadata.chunkLength(); } if (segmentSize > 0) state.add(lastSegmentOffset, segmentSize); state.length = lastSegmentOffset + segmentSize; }
public void dropPageCache(long before) { if (before >= metadata.dataLength) super.dropPageCache(0); super.dropPageCache(metadata.chunkFor(before).offset); }
public void dropPageCache(long before) { if (before >= metadata.dataLength) super.dropPageCache(0); super.dropPageCache(metadata.chunkFor(before).offset); }
/** * Drop page cache from start to given {@code before}. * * @param before uncompressed position from start of the file to be dropped from cache. if 0, to end of file. */ public void dropPageCache(long before) { long position = compressionMetadata.map(metadata -> { if (before >= metadata.dataLength) return 0L; else return metadata.chunkFor(before).offset; }).orElse(before); NativeLibrary.trySkipCache(channel.getFileDescriptor(), 0, position, path()); }
/** * Drop page cache from start to given {@code before}. * * @param before uncompressed position from start of the file to be dropped from cache. if 0, to end of file. */ public void dropPageCache(long before) { long position = compressionMetadata.map(metadata -> { if (before >= metadata.dataLength) return 0L; else return metadata.chunkFor(before).offset; }).orElse(before); NativeLibrary.trySkipCache(channel.getFileDescriptor(), 0, position, path()); }
/** * Drop page cache from start to given {@code before}. * * @param before uncompressed position from start of the file to be dropped from cache. if 0, to end of file. */ public void dropPageCache(long before) { long position = compressionMetadata.map(metadata -> { if (before >= metadata.dataLength) return 0L; else return metadata.chunkFor(before).offset; }).orElse(before); NativeLibrary.trySkipCache(channel.getFileDescriptor(), 0, position, path()); }
assert position <= fileLength; CompressionMetadata.Chunk chunk = metadata.chunkFor(position); ByteBuffer compressed = compressedHolder.get();
assert position <= fileLength; CompressionMetadata.Chunk chunk = metadata.chunkFor(position); ByteBuffer compressed = compressedHolder.get();
assert position <= fileLength; CompressionMetadata.Chunk chunk = metadata.chunkFor(position);
assert position <= fileLength; CompressionMetadata.Chunk chunk = metadata.chunkFor(position);
assert position <= fileLength; CompressionMetadata.Chunk chunk = metadata.chunkFor(position); ByteBuffer compressed = compressedHolder.get();
assert position <= fileLength; CompressionMetadata.Chunk chunk = metadata.chunkFor(position);
assert position <= fileLength; CompressionMetadata.Chunk chunk = metadata.chunkFor(position); ByteBuffer compressed = compressedHolder.get();
@Override protected void reBuffer() { try { decompressChunk(metadata.chunkFor(current)); } catch (CorruptBlockException e) { throw new CorruptSSTableException(e, getPath()); } catch (IOException e) { throw new FSReadError(e, getPath()); } }