Go to file
stack 6b78409eb2 HBASE-15477 Purge 'next block header' from cached blocks
When we read from HDFS, we overread to pick up the next blocks header.
Doing this saves a seek as we move through the hfile; we save having to
do an explicit seek just to read the block header every time we need to
read the body.  We used to read in the next header as part of the
current blocks buffer. This buffer was then what got persisted to
blockcache; so we were over-persisting: our block plus the next blocks'
header (33 bytes).

This patch undoes this over-persisting.

Removes support for version 1 blocks (0.2 was added in hbase-0.92.0).
Not needed any more.

There is an open question on whether checksums should be persisted
when caching. The code seems to say no but if cache is SSD backed or
backed by anything that does not do error correction, we'll want
checksums.

Adds loads of documentation.

M hbase-common/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockType.java
  (write) Add writing from a ByteBuff.

M hbase-common/src/main/java/org/apache/hadoop/hbase/nio/ByteBuff.java
  (toString) Add one so ByteBuff looks like ByteBuffer when you click on
  it in IDE

M hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlock.java
  Remove support for version 1 blocks.

  Cleaned up handling of metadata added when we serialize a block to
  caches. Metadata is smaller now.

  When we serialize (used when caching), do not persist the next blocks
  header if present.

  Removed a bunch of methods, a few of which had overlapping
  functionality and others that exposed too much of our internals.
  Also removed a bunch of constructors and unified the constructors we
  had left over making them share a common init method.
  Shutdown access to defines that should only be used internally here.

  Renamed all to do w/ 'EXTRA' and 'extraSerialization' to instead talk
  about metadata saved to caches; was unclear previously what EXTRA was
  about.

  Renamed static final declarations as all uppercase.

  (readBlockDataInternal): Redid. Couldn't make sense of it previously.
  Undid heavy-duty parse of header by constructing HFileBlock. Other
  cleanups. Its 1/3rd the length it used to be. More to do in here.

Signed-off-by: stack <stack@apache.org>
2016-04-27 10:41:47 -07:00
bin HBASE-15508 Add command for exporting snapshot in hbase command script (Yufeng Jiang) 2016-03-23 10:38:13 -07:00
conf HBASE-14087 Ensure correct ASF headers for docs/code 2015-07-31 11:22:50 -07:00
dev-support HBASE-15021 hadoopqa doing false positives 2015-12-22 19:49:14 -08:00
hbase-annotations HBASE-15342 create branch-1.3 and update branch-1 poms to 1.4.0-SNAPSHOT 2016-02-28 16:23:29 -08:00
hbase-assembly HBASE-15342 create branch-1.3 and update branch-1 poms to 1.4.0-SNAPSHOT 2016-02-28 16:23:29 -08:00
hbase-checkstyle HBASE-15693 Reconsider the ImportOrder rule of checkstyle 2016-04-24 11:09:50 +08:00
hbase-client HBASE-15658 Avoid excess meta cache clearing for RegionServerCallable 2016-04-26 23:02:24 -07:00
hbase-common HBASE-15477 Purge 'next block header' from cached blocks 2016-04-27 10:41:47 -07:00
hbase-examples HBASE-15342 create branch-1.3 and update branch-1 poms to 1.4.0-SNAPSHOT 2016-02-28 16:23:29 -08:00
hbase-external-blockcache HBASE-15477 Purge 'next block header' from cached blocks 2016-04-27 10:41:47 -07:00
hbase-hadoop-compat HBASE-15671 Add per-table metrics on memstore, storefile and regionsize (Alicia Ying Shu) 2016-04-21 13:33:31 -07:00
hbase-hadoop2-compat HBASE-15671 Add per-table metrics on memstore, storefile and regionsize (Alicia Ying Shu) 2016-04-21 13:33:31 -07:00
hbase-it HBASE-15295 MutateTableAccess.multiMutate() does not get high priority causing a deadlock 2016-03-28 17:00:21 -07:00
hbase-native-client HBASE-14087 Ensure correct ASF headers for docs/code 2015-07-31 11:22:50 -07:00
hbase-prefix-tree HBASE-15342 create branch-1.3 and update branch-1 poms to 1.4.0-SNAPSHOT 2016-02-28 16:23:29 -08:00
hbase-procedure HBASE-15639 Unguarded access to stackIndexes in Procedure#toStringDetails() 2016-04-13 08:44:10 -07:00
hbase-protocol HBASE-15670 Add missing Snapshot.proto to the maven profile for compiling protobuf 2016-04-22 11:44:14 -07:00
hbase-resource-bundle HBASE-15342 create branch-1.3 and update branch-1 poms to 1.4.0-SNAPSHOT 2016-02-28 16:23:29 -08:00
hbase-rest HBASE-15645 hbase.rpc.timeout is not used in operations of HTable 2016-04-26 10:52:12 -07:00
hbase-server HBASE-15477 Purge 'next block header' from cached blocks 2016-04-27 10:41:47 -07:00
hbase-shaded HBASE-15342 create branch-1.3 and update branch-1 poms to 1.4.0-SNAPSHOT 2016-02-28 16:23:29 -08:00
hbase-shell HBASE-15641 Shell "alter" should do a single modifyTable operation (Matt Warhaftig) 2016-04-21 21:11:34 -07:00
hbase-testing-util HBASE-15342 create branch-1.3 and update branch-1 poms to 1.4.0-SNAPSHOT 2016-02-28 16:23:29 -08:00
hbase-thrift HBASE-15663 Hook up JvmPauseMonitor to ThriftServer 2016-04-20 17:36:59 -07:00
src/main HBASE-15219 Canary tool does not return non-zero exit code when one of regions is in stuck state 2016-02-20 20:25:41 -08:00
.arcconfig HBASE-12139 StochasticLoadBalancer doesn't work on large lightly loaded clusters 2014-10-01 13:01:29 -07:00
.gitattributes HBASE-6816. [WINDOWS] line endings on checkout for .sh files 2013-01-23 19:30:14 +00:00
.gitignore HBASE-13517 Publish a client artifact with shaded dependencies 2015-04-28 09:44:12 -07:00
CHANGES.txt Update CHANGES.txt for 0.99.2 2014-12-02 20:39:44 -08:00
LICENSE.txt HBASE-14338 License notification misspells 'Asciidoctor' (Lars Francke) 2015-09-22 09:53:36 -07:00
NOTICE.txt HBASE-14085 Update LICENSE and NOTICE files. 2015-08-05 14:52:33 -07:00
README.txt Updated links in README 2014-09-18 12:06:02 -07:00
pom.xml HBASE-15342 create branch-1.3 and update branch-1 poms to 1.4.0-SNAPSHOT 2016-02-28 16:23:29 -08:00

README.txt

Apache HBase [1] is an open-source, distributed, versioned, column-oriented
store modeled after Google' Bigtable: A Distributed Storage System for
Structured Data by Chang et al.[2]  Just as Bigtable leverages the distributed
data storage provided by the Google File System, HBase provides Bigtable-like
capabilities on top of Apache Hadoop [3].

To get started using HBase, the full documentation for this release can be
found under the doc/ directory that accompanies this README.  Using a browser,
open the docs/index.html to view the project home page (or browse to [1]).
The hbase 'book' at http://hbase.apache.org/book.html has a 'quick start'
section and is where you should being your exploration of the hbase project.

The latest HBase can be downloaded from an Apache Mirror [4].

The source code can be found at [5]

The HBase issue tracker is at [6]

Apache HBase is made available under the Apache License, version 2.0 [7]

The HBase mailing lists and archives are listed here [8].

The HBase distribution includes cryptographic software. See the export control
notice here [9].

1. http://hbase.apache.org
2. http://research.google.com/archive/bigtable.html
3. http://hadoop.apache.org
4. http://www.apache.org/dyn/closer.cgi/hbase/
5. https://hbase.apache.org/source-repository.html
6. https://hbase.apache.org/issue-tracking.html
7. http://hbase.apache.org/license.html
8. http://hbase.apache.org/mail-lists.html
9. https://hbase.apache.org/export_control.html