private HFileBlock getBloomBlock(int block) { HFileBlock bloomBlock; try { // We cache the block and use a positional read. bloomBlock = reader.readBlock(index.getRootBlockOffset(block), index.getRootBlockDataSize(block), true, true, false, true, BlockType.BLOOM_CHUNK, null); } catch (IOException ex) { // The Bloom filter is broken, turn it off. throw new IllegalArgumentException("Failed to load Bloom block", ex); } if (numQueriesPerChunk != null) { // Update statistics. Only used in unit tests. ++numQueriesPerChunk[block]; } return bloomBlock; }
try { bloomBlock = reader.readBlock(index.getRootBlockOffset(block), index.getRootBlockDataSize(block), true, true, false, BlockType.BLOOM_CHUNK);
@Override public void close(boolean evictOnClose) throws IOException { if (evictOnClose && cacheConf.isBlockCacheEnabled()) { int numEvicted = 0; for (int i = 0; i < dataBlockIndexReader.getRootBlockCount(); i++) { if (cacheConf.getBlockCache().evictBlock( new BlockCacheKey(name, dataBlockIndexReader.getRootBlockOffset(i), DataBlockEncoding.NONE, BlockType.DATA))) { numEvicted++; } } LOG.debug("On close of file " + name + " evicted " + numEvicted + " block(s) of " + dataBlockIndexReader.getRootBlockCount() + " total blocks"); } if (this.closeIStream && this.istream != null) { this.istream.close(); this.istream = null; } getSchemaMetrics().flushMetrics(); }
if (bir.getRootBlockOffset(i) < offset) { if (bir.getRootBlockOffset(i) < (offset + length)) {
if (bir.getRootBlockOffset(i) < offset) { if (bir.getRootBlockOffset(i) < (offset + length)) {
if (block == -1) return null; long offset = metaBlockIndexReader.getRootBlockOffset(block); long nextOffset; if (block == metaBlockIndexReader.getRootBlockCount() - 1) { nextOffset = trailer.getFileInfoOffset(); } else { nextOffset = metaBlockIndexReader.getRootBlockOffset(block + 1);
long metaBlockOffset = metaBlockIndexReader.getRootBlockOffset(block); BlockCacheKey cacheKey = new BlockCacheKey(name, metaBlockOffset, this.isPrimaryReplicaReader());
long offset = dataBlockIndexReader.getRootBlockOffset(block); BlockCacheKey cacheKey = new BlockCacheKey(name, offset); metaBlockIndexReader.getRootBlockOffset(0); } else { nextOffset = dataBlockIndexReader.getRootBlockOffset(block + 1);
long metaBlockOffset = metaBlockIndexReader.getRootBlockOffset(block); BlockCacheKey cacheKey = new BlockCacheKey(name, metaBlockOffset, DataBlockEncoding.NONE, BlockType.META);
try { bloomBlock = reader.readBlock(index.getRootBlockOffset(block), index.getRootBlockDataSize(block), true, true, false, true, BlockType.BLOOM_CHUNK, null);