http://git-wip-us.apache.org/repos/asf/hbase-site/blob/3e48e84d/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlock.html ---------------------------------------------------------------------- diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlock.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlock.html index de952bf..7fb6887 100644 --- a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlock.html +++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlock.html @@ -100,39 +100,48 @@ <hr> <br> <pre><a href="../../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a> -public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.89">HFileBlock</a> +public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.100">HFileBlock</a> extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></pre> -<div class="block">Reading <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a> version 1 and 2 blocks, and writing version 2 blocks. - <ul> - <li>In version 1 all blocks are always compressed or uncompressed, as +<div class="block">Reads <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a> version 1 and version 2 blocks but writes version 2 blocks only. + Version 2 was introduced in hbase-0.92.0. Does read and write out to the filesystem but also + the read and write to Cache. + + <h3>HFileBlock: Version 1</h3> + As of this writing, there should be no more version 1 blocks found out in the wild. Version 2 + as introduced in hbase-0.92.0. + In version 1 all blocks are always compressed or uncompressed, as specified by the <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a>'s compression algorithm, with a type-specific magic record stored in the beginning of the compressed data (i.e. one needs to uncompress the compressed block to determine the block type). There is only a single compression algorithm setting for all blocks. Offset and size information from the block index are required to read a block. - <li>In version 2 a block is structured as follows: + <h3>HFileBlock: Version 2</h3> + In version 2, a block is structured as follows: <ul> - <li>header (see Writer#finishBlock()) + <li><b>Header:</b> See Writer#putHeader(); header total size is HFILEBLOCK_HEADER_SIZE) <ul> - <li>Magic record identifying the block type (8 bytes) - <li>Compressed block size, excluding header, including checksum (4 bytes) - <li>Uncompressed block size, excluding header, excluding checksum (4 bytes) + <li>Magic record identifying the <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><code>BlockType</code></a> (8 bytes): e.g. <code>DATABLK*</code> + <li>Compressed -- a.k.a 'on disk' -- block size, excluding header, but including + tailing checksum bytes (4 bytes) + <li>Uncompressed block size, excluding header, and excluding checksum bytes (4 bytes) <li>The offset of the previous block of the same type (8 bytes). This is - used to be able to navigate to the previous block without going to the block + used to navigate to the previous block without having to go to the block index <li>For minorVersions >=1, the ordinal describing checksum type (1 byte) <li>For minorVersions >=1, the number of data bytes/checksum chunk (4 bytes) - <li>For minorVersions >=1, the size of data on disk, including header, + <li>For minorVersions >=1, the size of data 'on disk', including header, excluding checksums (4 bytes) </ul> </li> - <li>Raw/Compressed/Encrypted/Encoded data. The compression algorithm is the + <li><b>Raw/Compressed/Encrypted/Encoded data:</b> The compression algorithm is the same for all the blocks in the <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a>, similarly to what was done in - version 1. - <li>For minorVersions >=1, a series of 4 byte checksums, one each for + version 1. If compression is NONE, this is just raw, serialized Cells. + <li><b>Tail:</b> For minorVersions >=1, a series of 4 byte checksums, one each for the number of bytes specified by bytesPerChecksum. </ul> - </ul></div> + <p>Be aware that when we read from HDFS, we overread pulling in the next blocks' header too. + We do this to save having to do two seeks to read an HFileBlock; a seek to read the header + to figure lengths, etc., and then another seek to pull in the data.</div> </li> </ul> </div> @@ -152,19 +161,19 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <th class="colLast" scope="col">Class and Description</th> </tr> <tr class="altColor"> -<td class="colFirst"><code>static interface </code></td> +<td class="colFirst"><code>(package private) static interface </code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.BlockIterator.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileBlock.BlockIterator</a></strong></code> <div class="block">An interface allowing to iterate <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFileBlock</code></a>s.</div> </td> </tr> <tr class="rowColor"> -<td class="colFirst"><code>static interface </code></td> +<td class="colFirst"><code>(package private) static interface </code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.BlockWritable.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileBlock.BlockWritable</a></strong></code> <div class="block">Something that can be written into a block.</div> </td> </tr> <tr class="altColor"> -<td class="colFirst"><code>static interface </code></td> +<td class="colFirst"><code>(package private) static interface </code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.FSReader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileBlock.FSReader</a></strong></code> <div class="block">A full-fledged reader with iteration ability.</div> </td> @@ -183,7 +192,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable </td> </tr> <tr class="rowColor"> -<td class="colFirst"><code>static class </code></td> +<td class="colFirst"><code>(package private) static class </code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock.Writer</a></strong></code> <div class="block">Unified version 2 <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a> block writer.</div> </td> @@ -212,7 +221,9 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable </tr> <tr class="altColor"> <td class="colFirst"><code>(package private) static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheableDeserializer.html" title="interface in org.apache.hadoop.hbase.io.hfile">CacheableDeserializer</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>></code></td> -<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#blockDeserializer">blockDeserializer</a></strong></code> </td> +<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#blockDeserializer">blockDeserializer</a></strong></code> +<div class="block">Used deserializing blocks from Cache.</div> +</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a></code></td> @@ -235,9 +246,8 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <tr class="altColor"> <td class="colFirst"><code>(package private) static int</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#CHECKSUM_VERIFICATION_NUM_IO_THRESHOLD">CHECKSUM_VERIFICATION_NUM_IO_THRESHOLD</a></strong></code> -<div class="block">On a checksum failure on a Reader, these many suceeding read - requests switch back to using hdfs checksums before auto-reenabling - hbase checksum verification.</div> +<div class="block">On a checksum failure, do these many succeeding read requests using hdfs checksums before + auto-reenabling hbase checksum verification.</div> </td> </tr> <tr class="rowColor"> @@ -254,24 +264,24 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable </tr> <tr class="altColor"> <td class="colFirst"><code>static int</code></td> -<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#ENCODED_HEADER_SIZE">ENCODED_HEADER_SIZE</a></strong></code> -<div class="block">The size of block header when blockType is <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html#ENCODED_DATA"><code>BlockType.ENCODED_DATA</code></a>.</div> +<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#EXTRA_SERIALIZATION_SPACE">EXTRA_SERIALIZATION_SPACE</a></strong></code> +<div class="block">See #blockDeserializer method for more info.</div> </td> </tr> <tr class="rowColor"> -<td class="colFirst"><code>static int</code></td> -<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#EXTRA_SERIALIZATION_SPACE">EXTRA_SERIALIZATION_SPACE</a></strong></code> </td> -</tr> -<tr class="altColor"> <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a></code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#fileContext">fileContext</a></strong></code> <div class="block">Meta data that holds meta information on the hfileblock</div> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><code>static boolean</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#FILL_HEADER">FILL_HEADER</a></strong></code> </td> </tr> +<tr class="rowColor"> +<td class="colFirst"><code>private static org.apache.commons.logging.Log</code></td> +<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#LOG">LOG</a></strong></code> </td> +</tr> <tr class="altColor"> <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile">Cacheable.MemoryType</a></code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#memType">memType</a></strong></code> </td> @@ -318,6 +328,10 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <div class="block">Size of pure data.</div> </td> </tr> +<tr class="altColor"> +<td class="colFirst"><code>private static int</code></td> +<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#UNSET">UNSET</a></strong></code> </td> +</tr> </table> </li> </ul> @@ -410,157 +424,153 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#equals(java.lang.Object)">equals</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> comparison)</code> </td> </tr> <tr class="rowColor"> -<td class="colFirst"><code>void</code></td> -<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#expectType(org.apache.hadoop.hbase.io.hfile.BlockType)">expectType</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a> expectedType)</code> </td> -</tr> -<tr class="altColor"> <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a></code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getBlockType()">getBlockType</a></strong>()</code> </td> </tr> -<tr class="rowColor"> -<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td> +<tr class="altColor"> +<td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getBufferReadOnly()">getBufferReadOnly</a></strong>()</code> <div class="block">Returns the buffer this block stores internally.</div> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getBufferReadOnlyWithHeader()">getBufferReadOnlyWithHeader</a></strong>()</code> <div class="block">Returns the buffer of this block, including header data.</div> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getBufferWithHeader()">getBufferWithHeader</a></strong>()</code> <div class="block">Returns a byte buffer of this block, including header data and checksum, positioned at the beginning of header.</div> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getBufferWithoutHeader()">getBufferWithoutHeader</a></strong>()</code> <div class="block">Returns a buffer that does not include the header or checksum.</div> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><code>(package private) int</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getBytesPerChecksum()">getBytesPerChecksum</a></strong>()</code> </td> </tr> -<tr class="altColor"> -<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/DataInputStream.html?is-external=true" title="class or interface in java.io">DataInputStream</a></code></td> +<tr class="rowColor"> +<td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/7/docs/api/java/io/DataInputStream.html?is-external=true" title="class or interface in java.io">DataInputStream</a></code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getByteStream()">getByteStream</a></strong>()</code> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><code>(package private) byte</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getChecksumType()">getChecksumType</a></strong>()</code> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a></code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getDataBlockEncoding()">getDataBlockEncoding</a></strong>()</code> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><code>short</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getDataBlockEncodingId()">getDataBlockEncodingId</a></strong>()</code> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheableDeserializer.html" title="interface in org.apache.hadoop.hbase.io.hfile">CacheableDeserializer</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>></code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getDeserializer()">getDeserializer</a></strong>()</code> <div class="block">Returns CacheableDeserializer instance which reconstructs original object from ByteBuffer.</div> </td> </tr> -<tr class="rowColor"> -<td class="colFirst"><code>byte[]</code></td> +<tr class="altColor"> +<td class="colFirst"><code>(package private) byte[]</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getDummyHeaderForVersion()">getDummyHeaderForVersion</a></strong>()</code> <div class="block">Return the appropriate DUMMY_HEADER for the minor version</div> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><code>private static byte[]</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getDummyHeaderForVersion(boolean)">getDummyHeaderForVersion</a></strong>(boolean usesHBaseChecksum)</code> <div class="block">Return the appropriate DUMMY_HEADER for the minor version</div> </td> </tr> -<tr class="rowColor"> -<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a></code></td> +<tr class="altColor"> +<td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a></code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getHFileContext()">getHFileContext</a></strong>()</code> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile">Cacheable.MemoryType</a></code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getMemoryType()">getMemoryType</a></strong>()</code> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><code>int</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getNextBlockOnDiskSizeWithHeader()">getNextBlockOnDiskSizeWithHeader</a></strong>()</code> </td> </tr> -<tr class="altColor"> -<td class="colFirst"><code>long</code></td> +<tr class="rowColor"> +<td class="colFirst"><code>(package private) long</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getOffset()">getOffset</a></strong>()</code> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><code>(package private) int</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getOnDiskDataSizeWithHeader()">getOnDiskDataSizeWithHeader</a></strong>()</code> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><code>int</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getOnDiskSizeWithHeader()">getOnDiskSizeWithHeader</a></strong>()</code> </td> </tr> -<tr class="rowColor"> -<td class="colFirst"><code>int</code></td> +<tr class="altColor"> +<td class="colFirst"><code>(package private) int</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getOnDiskSizeWithoutHeader()">getOnDiskSizeWithoutHeader</a></strong>()</code> </td> </tr> -<tr class="altColor"> -<td class="colFirst"><code>long</code></td> +<tr class="rowColor"> +<td class="colFirst"><code>(package private) long</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getPrevBlockOffset()">getPrevBlockOffset</a></strong>()</code> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><code>int</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getSerializedLength()">getSerializedLength</a></strong>()</code> <div class="block">Returns the length of the ByteBuffer required to serialized the object.</div> </td> </tr> -<tr class="altColor"> -<td class="colFirst"><code>int</code></td> +<tr class="rowColor"> +<td class="colFirst"><code>(package private) int</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getUncompressedSizeWithoutHeader()">getUncompressedSizeWithoutHeader</a></strong>()</code> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><code>int</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#hashCode()">hashCode</a></strong>()</code> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><code>private boolean</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#hasNextBlockHeader()">hasNextBlockHeader</a></strong>()</code> <div class="block">Return true when this buffer includes next block's header.</div> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><code>int</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#headerSize()">headerSize</a></strong>()</code> <div class="block">Returns the size of this block header.</div> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><code>static int</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#headerSize(boolean)">headerSize</a></strong>(boolean usesHBaseChecksum)</code> <div class="block">Maps a minor version to the size of the header.</div> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><code>long</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#heapSize()">heapSize</a></strong>()</code> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><code>boolean</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#isUnpacked()">isUnpacked</a></strong>()</code> <div class="block">Return true when this block's buffer has been unpacked, false otherwise.</div> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><code>private void</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#overwriteHeader()">overwriteHeader</a></strong>()</code> <div class="block">Rewinds <code>buf</code> and writes first 4 header fields.</div> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><code>(package private) static boolean</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#positionalReadWithExtra(org.apache.hadoop.fs.FSDataInputStream,%20long,%20byte[],%20int,%20int,%20int)">positionalReadWithExtra</a></strong>(org.apache.hadoop.fs.FSDataInputStream in, long position, @@ -568,75 +578,79 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable int bufOffset, int necessaryLen, int extraLen)</code> -<div class="block">Read from an input stream.</div> +<div class="block">Read from an input stream at least <code>necessaryLen</code> and if possible, + <code>extraLen</code> also if available.</div> </td> </tr> -<tr class="rowColor"> -<td class="colFirst"><code>static boolean</code></td> +<tr class="altColor"> +<td class="colFirst"><code>(package private) static boolean</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#readWithExtra(java.io.InputStream,%20byte[],%20int,%20int,%20int)">readWithExtra</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a> in, byte[] buf, int bufOffset, int necessaryLen, int extraLen)</code> -<div class="block">Read from an input stream.</div> +<div class="block">Read from an input stream at least <code>necessaryLen</code> and if possible, + <code>extraLen</code> also if available.</div> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><code>(package private) void</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#sanityCheck()">sanityCheck</a></strong>()</code> <div class="block">Checks if the block is internally consistent, i.e.</div> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><code>private void</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#sanityCheckAssertion(org.apache.hadoop.hbase.io.hfile.BlockType,%20org.apache.hadoop.hbase.io.hfile.BlockType)">sanityCheckAssertion</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a> valueFromBuf, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a> valueFromField)</code> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><code>private void</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#sanityCheckAssertion(long,%20long,%20java.lang.String)">sanityCheckAssertion</a></strong>(long valueFromBuf, long valueFromField, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> fieldName)</code> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#serialize(java.nio.ByteBuffer)">serialize</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> destination)</code> <div class="block">Serializes its data into destination.</div> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><code>void</code></td> -<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#serializeExtraInfo(java.nio.ByteBuffer)">serializeExtraInfo</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> destination)</code> </td> +<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#serializeExtraInfo(java.nio.ByteBuffer)">serializeExtraInfo</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> destination)</code> +<div class="block">Write out the content of EXTRA_SERIALIZATION_SPACE.</div> +</td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#toString()">toString</a></strong>()</code> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><code>(package private) static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#toStringHeader(org.apache.hadoop.hbase.nio.ByteBuff)">toStringHeader</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a> buf)</code> <div class="block">Convert the contents of the block header into a human readable string.</div> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><code>(package private) int</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#totalChecksumBytes()">totalChecksumBytes</a></strong>()</code> -<div class="block">Calcuate the number of bytes required to store all the checksums +<div class="block">Calculate the number of bytes required to store all the checksums for this block.</div> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a></code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#unpack(org.apache.hadoop.hbase.io.hfile.HFileContext,%20org.apache.hadoop.hbase.io.hfile.HFileBlock.FSReader)">unpack</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a> fileContext, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.FSReader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileBlock.FSReader</a> reader)</code> <div class="block">Retrieves the decompressed/decrypted view of this block.</div> </td> </tr> -<tr class="rowColor"> -<td class="colFirst"><code>boolean</code></td> +<tr class="altColor"> +<td class="colFirst"><code>(package private) boolean</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#usesSharedMemory()">usesSharedMemory</a></strong>()</code> </td> </tr> -<tr class="altColor"> +<tr class="rowColor"> <td class="colFirst"><code>private void</code></td> <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#validateOnDiskSizeWithoutHeader(int)">validateOnDiskSizeWithoutHeader</a></strong>(int expectedOnDiskSizeWithoutHeader)</code> <div class="block">Called after reading a block with provided onDiskSizeWithHeader.</div> @@ -664,58 +678,54 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <!-- --> </a> <h3>Field Detail</h3> -<a name="CHECKSUM_VERIFICATION_NUM_IO_THRESHOLD"> +<a name="LOG"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> -<h4>CHECKSUM_VERIFICATION_NUM_IO_THRESHOLD</h4> -<pre>static final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.96">CHECKSUM_VERIFICATION_NUM_IO_THRESHOLD</a></pre> -<div class="block">On a checksum failure on a Reader, these many suceeding read - requests switch back to using hdfs checksums before auto-reenabling - hbase checksum verification.</div> -<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.HFileBlock.CHECKSUM_VERIFICATION_NUM_IO_THRESHOLD">Constant Field Values</a></dd></dl> +<h4>LOG</h4> +<pre>private static final org.apache.commons.logging.Log <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.101">LOG</a></pre> </li> </ul> -<a name="FILL_HEADER"> +<a name="CHECKSUM_VERIFICATION_NUM_IO_THRESHOLD"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> -<h4>FILL_HEADER</h4> -<pre>public static final boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.98">FILL_HEADER</a></pre> -<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.HFileBlock.FILL_HEADER">Constant Field Values</a></dd></dl> +<h4>CHECKSUM_VERIFICATION_NUM_IO_THRESHOLD</h4> +<pre>static final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.107">CHECKSUM_VERIFICATION_NUM_IO_THRESHOLD</a></pre> +<div class="block">On a checksum failure, do these many succeeding read requests using hdfs checksums before + auto-reenabling hbase checksum verification.</div> +<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.HFileBlock.CHECKSUM_VERIFICATION_NUM_IO_THRESHOLD">Constant Field Values</a></dd></dl> </li> </ul> -<a name="DONT_FILL_HEADER"> +<a name="UNSET"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> -<h4>DONT_FILL_HEADER</h4> -<pre>public static final boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.99">DONT_FILL_HEADER</a></pre> -<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.HFileBlock.DONT_FILL_HEADER">Constant Field Values</a></dd></dl> +<h4>UNSET</h4> +<pre>private static int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.109">UNSET</a></pre> </li> </ul> -<a name="ENCODED_HEADER_SIZE"> +<a name="FILL_HEADER"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> -<h4>ENCODED_HEADER_SIZE</h4> -<pre>public static final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.105">ENCODED_HEADER_SIZE</a></pre> -<div class="block">The size of block header when blockType is <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html#ENCODED_DATA"><code>BlockType.ENCODED_DATA</code></a>. - This extends normal header by adding the id of encoder.</div> -<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.HFileBlock.ENCODED_HEADER_SIZE">Constant Field Values</a></dd></dl> +<h4>FILL_HEADER</h4> +<pre>public static final boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.110">FILL_HEADER</a></pre> +<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.HFileBlock.FILL_HEADER">Constant Field Values</a></dd></dl> </li> </ul> -<a name="DUMMY_HEADER_NO_CHECKSUM"> +<a name="DONT_FILL_HEADER"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> -<h4>DUMMY_HEADER_NO_CHECKSUM</h4> -<pre>static final byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.108">DUMMY_HEADER_NO_CHECKSUM</a></pre> +<h4>DONT_FILL_HEADER</h4> +<pre>public static final boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.111">DONT_FILL_HEADER</a></pre> +<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.HFileBlock.DONT_FILL_HEADER">Constant Field Values</a></dd></dl> </li> </ul> <a name="MULTI_BYTE_BUFFER_HEAP_SIZE"> @@ -724,7 +734,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>MULTI_BYTE_BUFFER_HEAP_SIZE</h4> -<pre>public static final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.112">MULTI_BYTE_BUFFER_HEAP_SIZE</a></pre> +<pre>public static final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.114">MULTI_BYTE_BUFFER_HEAP_SIZE</a></pre> </li> </ul> <a name="EXTRA_SERIALIZATION_SPACE"> @@ -733,7 +743,12 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>EXTRA_SERIALIZATION_SPACE</h4> -<pre>public static final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.116">EXTRA_SERIALIZATION_SPACE</a></pre> +<pre>public static final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.124">EXTRA_SERIALIZATION_SPACE</a></pre> +<div class="block">See #blockDeserializer method for more info. + 13 bytes of extra stuff stuck on the end of the HFileBlock that we pull in from HDFS (note, + when we read from HDFS, we pull in an HFileBlock AND the header of the next block if one). + The 13 bytes are: usesHBaseChecksum (1 byte) + offset of this block (long) + + nextBlockOnDiskSizeWithHeader (int).</div> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.HFileBlock.EXTRA_SERIALIZATION_SPACE">Constant Field Values</a></dd></dl> </li> </ul> @@ -743,18 +758,48 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>CHECKSUM_SIZE</h4> -<pre>static final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.122">CHECKSUM_SIZE</a></pre> +<pre>static final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.130">CHECKSUM_SIZE</a></pre> <div class="block">Each checksum value is an integer that can be stored in 4 bytes.</div> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.HFileBlock.CHECKSUM_SIZE">Constant Field Values</a></dd></dl> </li> </ul> +<a name="DUMMY_HEADER_NO_CHECKSUM"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DUMMY_HEADER_NO_CHECKSUM</h4> +<pre>static final byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.132">DUMMY_HEADER_NO_CHECKSUM</a></pre> +</li> +</ul> <a name="blockDeserializer"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>blockDeserializer</h4> -<pre>static final <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheableDeserializer.html" title="interface in org.apache.hadoop.hbase.io.hfile">CacheableDeserializer</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.124">blockDeserializer</a></pre> +<pre>static final <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheableDeserializer.html" title="interface in org.apache.hadoop.hbase.io.hfile">CacheableDeserializer</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.158">blockDeserializer</a></pre> +<div class="block">Used deserializing blocks from Cache. + + Serializing to cache is a little hard to follow. See Writer#finishBlock for where it is done. + When we start to append to a new HFileBlock, + we skip over where the header should go before we start adding Cells. When the block is + done, we'll then go back and fill in the header and the checksum tail. Be aware that what + gets serialized into the blockcache is a byte array that contains an HFileBlock followed by + its checksums and then the header of the next HFileBlock (needed to help navigate), followed + again by an extra 13 bytes of meta info needed when time to recreate the HFileBlock from cache. + + ++++++++++++++ + + HFileBlock + + ++++++++++++++ + + Checksums + + ++++++++++++++ + + NextHeader + + ++++++++++++++ + + ExtraMeta! + + ++++++++++++++ + + TODO: Fix it so we do NOT put the NextHeader into blockcache. It is not necessary.</div> </li> </ul> <a name="deserializerIdentifier"> @@ -763,7 +808,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>deserializerIdentifier</h4> -<pre>private static final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.161">deserializerIdentifier</a></pre> +<pre>private static final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.198">deserializerIdentifier</a></pre> </li> </ul> <a name="blockType"> @@ -772,7 +817,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>blockType</h4> -<pre>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.168">blockType</a></pre> +<pre>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.205">blockType</a></pre> <div class="block">Type of block. Header field 0.</div> </li> </ul> @@ -782,8 +827,9 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>onDiskSizeWithoutHeader</h4> -<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.171">onDiskSizeWithoutHeader</a></pre> +<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.211">onDiskSizeWithoutHeader</a></pre> <div class="block">Size on disk excluding header, including checksum. Header field 1.</div> +<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.html#putHeader(byte[],%20int,%20int,%20int,%20int)"><code>HFileBlock.Writer.putHeader(byte[], int, int, int, int)</code></a></dd></dl> </li> </ul> <a name="uncompressedSizeWithoutHeader"> @@ -792,8 +838,9 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>uncompressedSizeWithoutHeader</h4> -<pre>private final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.174">uncompressedSizeWithoutHeader</a></pre> +<pre>private final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.217">uncompressedSizeWithoutHeader</a></pre> <div class="block">Size of pure data. Does not include header or checksums. Header field 2.</div> +<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.html#putHeader(byte[],%20int,%20int,%20int,%20int)"><code>HFileBlock.Writer.putHeader(byte[], int, int, int, int)</code></a></dd></dl> </li> </ul> <a name="prevBlockOffset"> @@ -802,8 +849,9 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>prevBlockOffset</h4> -<pre>private final long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.177">prevBlockOffset</a></pre> +<pre>private final long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.223">prevBlockOffset</a></pre> <div class="block">The offset of the previous block on disk. Header field 3.</div> +<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.html#putHeader(byte[],%20int,%20int,%20int,%20int)"><code>HFileBlock.Writer.putHeader(byte[], int, int, int, int)</code></a></dd></dl> </li> </ul> <a name="onDiskDataSizeWithHeader"> @@ -812,9 +860,10 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>onDiskDataSizeWithHeader</h4> -<pre>private final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.183">onDiskDataSizeWithHeader</a></pre> +<pre>private final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.230">onDiskDataSizeWithHeader</a></pre> <div class="block">Size on disk of header + data. Excludes checksum. Header field 6, OR calculated from <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#onDiskSizeWithoutHeader"><code>onDiskSizeWithoutHeader</code></a> when using HDFS checksum.</div> +<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.html#putHeader(byte[],%20int,%20int,%20int,%20int)"><code>HFileBlock.Writer.putHeader(byte[], int, int, int, int)</code></a></dd></dl> </li> </ul> <a name="buf"> @@ -823,7 +872,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>buf</h4> -<pre>private <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.186">buf</a></pre> +<pre>private <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.233">buf</a></pre> <div class="block">The in-memory representation of the hfile block</div> </li> </ul> @@ -833,7 +882,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>fileContext</h4> -<pre>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.189">fileContext</a></pre> +<pre>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.236">fileContext</a></pre> <div class="block">Meta data that holds meta information on the hfileblock</div> </li> </ul> @@ -843,7 +892,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>offset</h4> -<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.195">offset</a></pre> +<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.242">offset</a></pre> <div class="block">The offset of this block in the file. Populated by the reader for convenience of access. This offset is not part of the block header.</div> </li> @@ -854,7 +903,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>nextBlockOnDiskSizeWithHeader</h4> -<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.202">nextBlockOnDiskSizeWithHeader</a></pre> +<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.249">nextBlockOnDiskSizeWithHeader</a></pre> <div class="block">The on-disk size of the next block, including the header, obtained by peeking into the first <a href="../../../../../../org/apache/hadoop/hbase/HConstants.html#HFILEBLOCK_HEADER_SIZE"><code>HConstants.HFILEBLOCK_HEADER_SIZE</code></a> bytes of the next block's header, or -1 if unknown.</div> @@ -866,7 +915,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockListLast"> <li class="blockList"> <h4>memType</h4> -<pre>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile">Cacheable.MemoryType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.204">memType</a></pre> +<pre>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile">Cacheable.MemoryType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.251">memType</a></pre> </li> </ul> </li> @@ -883,7 +932,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>HFileBlock</h4> -<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.222">HFileBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a> blockType, +<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.269">HFileBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a> blockType, int onDiskSizeWithoutHeader, int uncompressedSizeWithoutHeader, long prevBlockOffset, @@ -893,10 +942,10 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable int onDiskDataSizeWithHeader, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a> fileContext)</pre> <div class="block">Creates a new <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a> block from the given fields. This constructor - is mostly used when the block data has already been read and uncompressed, + is used when the block data has already been read and uncompressed, and is sitting in a byte buffer.</div> <dl><dt><span class="strong">Parameters:</span></dt><dd><code>blockType</code> - the type of this block, see <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><code>BlockType</code></a></dd><dd><code>onDiskSizeWithoutHeader</code> - see <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#onDiskSizeWithoutHeader"><code>onDiskSizeWithoutHeader</code></a></dd><dd><code>uncompressedSizeWithoutHeader</code> - see <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#uncompressedSizeWithoutHeader"><code>uncompressedSizeWithoutHeader</code></a></dd><dd><code>prevBlockOffset</code> - see <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#prevBlockOffset"><code>prevBlockOffset</code></a></dd><dd><code>buf</code> - block header (<a href="../../../../../../org/apache/hadoop/hbase/HConstants.html#HFILEBLOCK_HEADER_SIZE"><code>HConstants.HFILEBLOCK_HEA DER_SIZE</code></a> bytes) followed by - uncompressed data. This</dd><dd><code>fillHeader</code> - when true, parse <code>buf</code> and override the first 4 header fields.</dd><dd><code>offset</code> - the file offset the block was read from</dd><dd><code>onDiskDataSizeWithHeader</code> - see <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#onDiskDataSizeWithHeader"><code>onDiskDataSizeWithHeader</code></a></dd><dd><code>fileContext</code> - HFile meta data</dd></dl> + uncompressed data.</dd><dd><code>fillHeader</code> - when true, write the first 4 header fields into passed buffer.</dd><dd><code>offset</code> - the file offset the block was read from</dd><dd><code>onDiskDataSizeWithHeader</code> - see <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#onDiskDataSizeWithHeader"><code>onDiskDataSizeWithHeader</code></a></dd><dd><code>fileContext</code> - HFile meta data</dd></dl> </li> </ul> <a name="HFileBlock(org.apache.hadoop.hbase.io.hfile.BlockType, int, int, long, java.nio.ByteBuffer, boolean, long, int, org.apache.hadoop.hbase.io.hfile.HFileContext)"> @@ -905,7 +954,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>HFileBlock</h4> -<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.238">HFileBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a> blockType, +<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.286">HFileBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a> blockType, int onDiskSizeWithoutHeader, int uncompressedSizeWithoutHeader, long prevBlockOffset, @@ -922,7 +971,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>HFileBlock</h4> -<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.248">HFileBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a> that)</pre> +<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.296">HFileBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a> that)</pre> <div class="block">Copy constructor. Creates a shallow copy of <code>that</code>'s buffer.</div> </li> </ul> @@ -932,7 +981,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>HFileBlock</h4> -<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.260">HFileBlock</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> b, +<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.308">HFileBlock</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> b, boolean usesHBaseChecksum) throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre> <dl><dt><span class="strong">Throws:</span></dt> @@ -945,7 +994,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>HFileBlock</h4> -<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.270">HFileBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a> b, +<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.318">HFileBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a> b, boolean usesHBaseChecksum) throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre> <div class="block">Creates a block from an existing buffer starting with a header. Rewinds @@ -962,7 +1011,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockListLast"> <li class="blockList"> <h4>HFileBlock</h4> -<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.280">HFileBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a> b, +<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.328">HFileBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a> b, boolean usesHBaseChecksum, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile">Cacheable.MemoryType</a> memType) throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre> @@ -988,7 +1037,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>getBlockType</h4> -<pre>public <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.304">getBlockType</a>()</pre> +<pre>public <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.352">getBlockType</a>()</pre> <dl> <dt><strong>Specified by:</strong></dt> <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html#getBlockType()">getBlockType</a></code> in interface <code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></code></dd> @@ -1001,7 +1050,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>getDataBlockEncodingId</h4> -<pre>public short <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.309">getDataBlockEncodingId</a>()</pre> +<pre>public short <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.357">getDataBlockEncodingId</a>()</pre> <dl><dt><span class="strong">Returns:</span></dt><dd>get data block encoding id that was used to encode this block</dd></dl> </li> </ul> @@ -1011,7 +1060,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>getOnDiskSizeWithHeader</h4> -<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.320">getOnDiskSizeWithHeader</a>()</pre> +<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.368">getOnDiskSizeWithHeader</a>()</pre> <dl><dt><span class="strong">Returns:</span></dt><dd>the on-disk size of header + data part + checksum.</dd></dl> </li> </ul> @@ -1021,7 +1070,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>getOnDiskSizeWithoutHeader</h4> -<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.327">getOnDiskSizeWithoutHeader</a>()</pre> +<pre>int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.375">getOnDiskSizeWithoutHeader</a>()</pre> <dl><dt><span class="strong">Returns:</span></dt><dd>the on-disk size of the data part + checksum (header excluded).</dd></dl> </li> </ul> @@ -1031,7 +1080,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>getUncompressedSizeWithoutHeader</h4> -<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.334">getUncompressedSizeWithoutHeader</a>()</pre> +<pre>int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.382">getUncompressedSizeWithoutHeader</a>()</pre> <dl><dt><span class="strong">Returns:</span></dt><dd>the uncompressed size of data part (header and checksum excluded).</dd></dl> </li> </ul> @@ -1041,7 +1090,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>getPrevBlockOffset</h4> -<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.342">getPrevBlockOffset</a>()</pre> +<pre>long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.390">getPrevBlockOffset</a>()</pre> <dl><dt><span class="strong">Returns:</span></dt><dd>the offset of the previous block of the same type in the file, or -1 if unknown</dd></dl> </li> @@ -1052,7 +1101,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>overwriteHeader</h4> -<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.350">overwriteHeader</a>()</pre> +<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.398">overwriteHeader</a>()</pre> <div class="block">Rewinds <code>buf</code> and writes first 4 header fields. <code>buf</code> position is modified as side-effect.</div> </li> @@ -1063,7 +1112,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>getBufferWithoutHeader</h4> -<pre>public <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.368">getBufferWithoutHeader</a>()</pre> +<pre>public <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.416">getBufferWithoutHeader</a>()</pre> <div class="block">Returns a buffer that does not include the header or checksum.</div> <dl><dt><span class="strong">Returns:</span></dt><dd>the buffer with header skipped and checksum omitted.</dd></dl> </li> @@ -1074,7 +1123,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>getBufferReadOnly</h4> -<pre>public <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.384">getBufferReadOnly</a>()</pre> +<pre><a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.432">getBufferReadOnly</a>()</pre> <div class="block">Returns the buffer this block stores internally. The clients must not modify the buffer object. This method has to be public because it is used in <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CompoundBloomFilter.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>CompoundBloomFilter</code></a> to avoid object creation on every Bloom @@ -1089,7 +1138,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>getBufferReadOnlyWithHeader</h4> -<pre>public <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.397">getBufferReadOnlyWithHeader</a>()</pre> +<pre>public <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.445">getBufferReadOnlyWithHeader</a>()</pre> <div class="block">Returns the buffer of this block, including header data. The clients must not modify the buffer object. This method has to be public because it is used in <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket"><code>BucketCache</code></a> to avoid buffer copy.</div> @@ -1102,7 +1151,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>getBufferWithHeader</h4> -<pre><a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.408">getBufferWithHeader</a>()</pre> +<pre><a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.456">getBufferWithHeader</a>()</pre> <div class="block">Returns a byte buffer of this block, including header data and checksum, positioned at the beginning of header. The underlying data array is not copied.</div> <dl><dt><span class="strong">Returns:</span></dt><dd>the byte buffer with header and checksum included</dd></dl> @@ -1114,7 +1163,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>sanityCheckAssertion</h4> -<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.414">sanityCheckAssertion</a>(long valueFromBuf, +<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.462">sanityCheckAssertion</a>(long valueFromBuf, long valueFromField, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> fieldName) throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre> @@ -1128,7 +1177,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>sanityCheckAssertion</h4> -<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.422">sanityCheckAssertion</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a> valueFromBuf, +<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.470">sanityCheckAssertion</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a> valueFromBuf, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a> valueFromField) throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre> <dl><dt><span class="strong">Throws:</span></dt> @@ -1141,7 +1190,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>sanityCheck</h4> -<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.437">sanityCheck</a>() +<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.485">sanityCheck</a>() throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre> <div class="block">Checks if the block is internally consistent, i.e. the first <a href="../../../../../../org/apache/hadoop/hbase/HConstants.html#HFILEBLOCK_HEADER_SIZE"><code>HConstants.HFILEBLOCK_HEADER_SIZE</code></a> bytes of the buffer contain a @@ -1158,7 +1207,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>toString</h4> -<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.474">toString</a>()</pre> +<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.522">toString</a>()</pre> <dl> <dt><strong>Overrides:</strong></dt> <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> @@ -1171,7 +1220,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>validateOnDiskSizeWithoutHeader</h4> -<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.517">validateOnDiskSizeWithoutHeader</a>(int expectedOnDiskSizeWithoutHeader) +<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.565">validateOnDiskSizeWithoutHeader</a>(int expectedOnDiskSizeWithoutHeader) throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre> <div class="block">Called after reading a block with provided onDiskSizeWithHeader.</div> <dl><dt><span class="strong">Throws:</span></dt> @@ -1184,7 +1233,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>unpack</h4> -<pre><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.542">unpack</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a> fileContext, +<pre><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.590">unpack</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a> fileContext, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.FSReader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileBlock.FSReader</a> reader) throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre> <div class="block">Retrieves the decompressed/decrypted view of this block. An encoded block remains in its @@ -1199,7 +1248,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>hasNextBlockHeader</h4> -<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.584">hasNextBlockHeader</a>()</pre> +<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.632">hasNextBlockHeader</a>()</pre> <div class="block">Return true when this buffer includes next block's header.</div> </li> </ul> @@ -1209,7 +1258,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>allocateBuffer</h4> -<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.593">allocateBuffer</a>()</pre> +<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.641">allocateBuffer</a>()</pre> <div class="block">Always allocates a new buffer of the correct size. Copies header bytes from the existing buffer. Does not change header fields. Reserve room to keep checksum bytes too.</div> @@ -1221,7 +1270,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>isUnpacked</h4> -<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.616">isUnpacked</a>()</pre> +<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.664">isUnpacked</a>()</pre> <div class="block">Return true when this block's buffer has been unpacked, false otherwise. Note this is a calculated heuristic, not tracked attribute of the block.</div> </li> @@ -1232,33 +1281,20 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>assumeUncompressed</h4> -<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.625">assumeUncompressed</a>() +<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.673">assumeUncompressed</a>() throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre> <div class="block">An additional sanity-check in case no compression or encryption is being used.</div> <dl><dt><span class="strong">Throws:</span></dt> <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl> </li> </ul> -<a name="expectType(org.apache.hadoop.hbase.io.hfile.BlockType)"> -<!-- --> -</a> -<ul class="blockList"> -<li class="blockList"> -<h4>expectType</h4> -<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.639">expectType</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a> expectedType) - throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre> -<dl><dt><span class="strong">Parameters:</span></dt><dd><code>expectedType</code> - the expected type of this block</dd> -<dt><span class="strong">Throws:</span></dt> -<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if this block's type is different than expected</dd></dl> -</li> -</ul> <a name="getOffset()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getOffset</h4> -<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.647">getOffset</a>()</pre> +<pre>long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.684">getOffset</a>()</pre> <dl><dt><span class="strong">Returns:</span></dt><dd>the offset of this block in the file it was read from</dd></dl> </li> </ul> @@ -1268,7 +1304,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>getByteStream</h4> -<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/io/DataInputStream.html?is-external=true" title="class or interface in java.io">DataInputStream</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.658">getByteStream</a>()</pre> +<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/io/DataInputStream.html?is-external=true" title="class or interface in java.io">DataInputStream</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.695">getByteStream</a>()</pre> <dl><dt><span class="strong">Returns:</span></dt><dd>a byte stream reading the data + checksum of this block</dd></dl> </li> </ul> @@ -1278,7 +1314,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>heapSize</h4> -<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.665">heapSize</a>()</pre> +<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.702">heapSize</a>()</pre> <dl> <dt><strong>Specified by:</strong></dt> <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/HeapSize.html#heapSize()">heapSize</a></code> in interface <code><a href="../../../../../../org/apache/hadoop/hbase/io/HeapSize.html" title="interface in org.apache.hadoop.hbase.io">HeapSize</a></code></dd> @@ -1292,18 +1328,17 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>readWithExtra</h4> -<pre>public static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.702">readWithExtra</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a> in, +<pre>static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.738">readWithExtra</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a> in, byte[] buf, int bufOffset, int necessaryLen, int extraLen) - throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre> -<div class="block">Read from an input stream. Analogous to + throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre> +<div class="block">Read from an input stream at least <code>necessaryLen</code> and if possible, + <code>extraLen</code> also if available. Analogous to <code>IOUtils.readFully(InputStream, byte[], int, int)</code>, but specifies a - number of "extra" bytes that would be desirable but not absolutely - necessary to read.</div> -<dl><dt><span class="strong">Parameters:</span></dt><dd><code>in</code> - the input stream to read from</dd><dd><code>buf</code> - the buffer to read into</dd><dd><code>bufOffset</code> - the destination offset in the buffer</dd><dd><code>necessaryLen</code> - the number of bytes that are absolutely necessary to - read</dd><dd><code>extraLen</code> - the number of extra bytes that would be nice to read</dd> + number of "extra" bytes to also optionally read.</div> +<dl><dt><span class="strong">Parameters:</span></dt><dd><code>in</code> - the input stream to read from</dd><dd><code>buf</code> - the buffer to read into</dd><dd><code>bufOffset</code> - the destination offset in the buffer</dd><dd><code>necessaryLen</code> - the number of bytes that are absolutely necessary to read</dd><dd><code>extraLen</code> - the number of extra bytes that would be nice to read</dd> <dt><span class="strong">Returns:</span></dt><dd>true if succeeded reading the extra bytes</dd> <dt><span class="strong">Throws:</span></dt> <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if failed to read the necessary bytes</dd></dl> @@ -1315,14 +1350,15 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>positionalReadWithExtra</h4> -<pre>static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.743">positionalReadWithExtra</a>(org.apache.hadoop.fs.FSDataInputStream in, +<pre>static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.780">positionalReadWithExtra</a>(org.apache.hadoop.fs.FSDataInputStream in, long position, byte[] buf, int bufOffset, int necessaryLen, int extraLen) throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre> -<div class="block">Read from an input stream. Analogous to +<div class="block">Read from an input stream at least <code>necessaryLen</code> and if possible, + <code>extraLen</code> also if available. Analogous to <code>IOUtils.readFully(InputStream, byte[], int, int)</code>, but uses positional read and specifies a number of "extra" bytes that would be desirable but not absolutely necessary to read.</div> @@ -1340,7 +1376,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>getNextBlockOnDiskSizeWithHeader</h4> -<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.768">getNextBlockOnDiskSizeWithHeader</a>()</pre> +<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.805">getNextBlockOnDiskSizeWithHeader</a>()</pre> <dl><dt><span class="strong">Returns:</span></dt><dd>the on-disk size of the next block (including the header size) that was read by peeking into the next block's header</dd></dl> </li> @@ -1351,7 +1387,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>getSerializedLength</h4> -<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.1764">getSerializedLength</a>()</pre> +<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.1823">getSerializedLength</a>()</pre> <div class="block"><strong>Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html#getSerializedLength()">Cacheable</a></code></strong></div> <div class="block">Returns the length of the ByteBuffer required to serialized the object. If the object cannot be serialized, it should return 0.</div> @@ -1367,7 +1403,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable <ul class="blockList"> <li class="blockList"> <h4>serialize</h4> -<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.1774">serialize</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> destination)</pre> +<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock
<TRUNCATED>
