public BlockCompressedRecordFile<E> build() throws IOException { decompressorPool = decompressorPool == null ? new LinkedBlockingQueue<Decompressor>() : decompressorPool; return open( file, serializer, codec, decompressorPool, blockSize, recordIndexBits, padBits, mlockFiles, maxChunkSize ); } }
@Override public E get(long address) throws IOException { final int segmentNum = (int)(address>>> segmentShift); final Option<SharedReference<BlockCompressedRecordFile<E>>> option = fileCache.get(segmentNum); if (option.isNone()) { throw new IOException("address is invalid: "+address); } final SharedReference<BlockCompressedRecordFile<E>> reference = option.some(); final E ret; try { ret = reference.get().get(address & segmentMask); } finally { Closeables2.closeQuietly(reference, log); } return ret; }
BlockCompressedRecordFile<Operation> recordFile = new BlockCompressedRecordFile.Builder(file, serializer, codec).build(); RecordFile.Reader<Operation> reader = recordFile.reader();
public boolean verifySegmentIntegrity(File file, int segmentNum) { BlockCompressedRecordFile<E> recordFile = null; try { recordFile = new BlockCompressedRecordFile.Builder(getSegmentPath(file, segmentNum, false), serializer, codec) .setBlockSize(blockSize) .setRecordIndexBits(recordIndexBits) .setPadBits(padBits) .build(); } catch (IOException e) { return false; } finally { if (recordFile != null) try { recordFile.close(); } catch (IOException e) { //ignore } } return true; }
return new BlockCompressedRecordFile<E>( new Supplier<Either<IOException, MemoryRandomAccessDataInput>>() { public Either<IOException, MemoryRandomAccessDataInput> get() {
@Override public E get(long address) throws IOException { final int segmentNum = (int)(address>>> segmentShift); final Option<SharedReference<BlockCompressedRecordFile<E>>> option = fileCache.get(segmentNum); if (option.isNone()) { throw new IOException("address is invalid: "+address); } final SharedReference<BlockCompressedRecordFile<E>> reference = option.some(); final E ret; try { ret = reference.get().get(address & segmentMask); } finally { Closeables2.closeQuietly(reference, log); } return ret; }
final RecordFile.Reader<E> segmentReader; try { segmentReader = reference.get().reader(); } finally { Closeables2.closeQuietly(reference, log);
public boolean verifySegmentIntegrity(File file, int segmentNum) { BlockCompressedRecordFile<E> recordFile = null; try { recordFile = new BlockCompressedRecordFile.Builder(getSegmentPath(file, segmentNum, false), serializer, codec) .setBlockSize(blockSize) .setRecordIndexBits(recordIndexBits) .setPadBits(padBits) .build(); } catch (IOException e) { return false; } finally { if (recordFile != null) try { recordFile.close(); } catch (IOException e) { //ignore } } return true; }
return new BlockCompressedRecordFile<E>( new Supplier<Either<IOException, MemoryRandomAccessDataInput>>() { public Either<IOException, MemoryRandomAccessDataInput> get() {
private Entry<K, V> lookupValue(Entry<K, Long> result) { if (result.isDeleted()) return Entry.createDeleted(result.getKey()); try { return Entry.create(result.getKey(), recordFile.get(result.getValue())); } catch (IOException e) { throw new RuntimeIOException(e); } }
final RecordFile.Reader<E> segmentReader; try { segmentReader = reference.get().reader(); } finally { Closeables2.closeQuietly(reference, log);
public BlockCompressedRecordFile<E> build() throws IOException { decompressorPool = decompressorPool == null ? new LinkedBlockingQueue<Decompressor>() : decompressorPool; return open( file, serializer, codec, decompressorPool, blockSize, recordIndexBits, padBits, mlockFiles, maxChunkSize ); } }