[2/2] hbase git commit: updating docs from master
updating docs from master Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/b29dfe4b Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/b29dfe4b Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/b29dfe4b Branch: refs/heads/branch-1.1 Commit: b29dfe4ba852756995e5768ea25bcab11a01402c Parents: ce1c3d2 Author: Nick Dimiduk Authored: Sat Aug 12 11:18:42 2017 -0700 Committer: Nick Dimiduk Committed: Sat Aug 12 11:24:21 2017 -0700 -- .../appendix_contributing_to_documentation.adoc | 2 +- src/main/asciidoc/_chapters/architecture.adoc | 34 src/main/asciidoc/_chapters/configuration.adoc | 65 +++--- src/main/asciidoc/_chapters/datamodel.adoc | 2 +- src/main/asciidoc/_chapters/developer.adoc | 91 ++-- .../asciidoc/_chapters/getting_started.adoc | 24 +++--- src/main/asciidoc/_chapters/hbase-default.adoc | 42 - src/main/asciidoc/_chapters/ops_mgt.adoc| 45 ++ src/main/asciidoc/_chapters/preface.adoc| 2 +- src/main/asciidoc/_chapters/protobuf.adoc | 28 +++--- src/main/asciidoc/_chapters/schema_design.adoc | 7 +- 11 files changed, 247 insertions(+), 95 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/b29dfe4b/src/main/asciidoc/_chapters/appendix_contributing_to_documentation.adoc -- diff --git a/src/main/asciidoc/_chapters/appendix_contributing_to_documentation.adoc b/src/main/asciidoc/_chapters/appendix_contributing_to_documentation.adoc index 0d68dce..0337182 100644 --- a/src/main/asciidoc/_chapters/appendix_contributing_to_documentation.adoc +++ b/src/main/asciidoc/_chapters/appendix_contributing_to_documentation.adoc @@ -55,7 +55,7 @@ see <>. If you spot an error in a string in a UI, utility, script, log message, or elsewhere, or you think something could be made more clear, or you think text needs to be added where it doesn't currently exist, the first step is to file a JIRA. Be sure to set -the component to `Documentation` in addition any other involved components. Most +the component to `Documentation` in addition to any other involved components. Most components have one or more default owners, who monitor new issues which come into those queues. Regardless of whether you feel able to fix the bug, you should still file bugs where you see them. http://git-wip-us.apache.org/repos/asf/hbase/blob/b29dfe4b/src/main/asciidoc/_chapters/architecture.adoc -- diff --git a/src/main/asciidoc/_chapters/architecture.adoc b/src/main/asciidoc/_chapters/architecture.adoc index 7f9ba07..ebb0677 100644 --- a/src/main/asciidoc/_chapters/architecture.adoc +++ b/src/main/asciidoc/_chapters/architecture.adoc @@ -244,6 +244,40 @@ For additional information on write durability, review the link:/acid-semantics. For fine-grained control of batching of ``Put``s or ``Delete``s, see the link:http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Table.html#batch%28java.util.List%29[batch] methods on Table. +[[async.client]] +=== Asynchronous Client === + +It is a new API introduced in HBase 2.0 which aims to provide the ability to access HBase asynchronously. + +You can obtain an `AsyncConnection` from `ConnectionFactory`, and then get a asynchronous table instance from it to access HBase. When done, close the `AsyncConnection` instance(usually when your program exits). + +For the asynchronous table, most methods have the same meaning with the old `Table` interface, expect that the return value is wrapped with a CompletableFuture usually. We do not have any buffer here so there is no close method for asynchronous table, you do not need to close it. And it is thread safe. + +There are several differences for scan: + +* There is still a `getScanner` method which returns a `ResultScanner`. You can use it in the old way and it works like the old `ClientAsyncPrefetchScanner`. +* There is a `scanAll` method which will return all the results at once. It aims to provide a simpler way for small scans which you want to get the whole results at once usually. +* The Observer Pattern. There is a scan method which accepts a `ScanResultConsumer` as a parameter. It will pass the results to the consumer. + +Notice that there are two types of asynchronous table, one is `AsyncTable` and the other is `RawAsyncTable`. + +For `AsyncTable`, you need to provide a thread pool when getting it. The callbacks registered to the returned CompletableFuture will be executed in that thread pool. It is designed for normal users. You are free to do anything in the callbacks. + +For `RawAsyncTable`, all the callbacks are executed inside the framework thread
[2/2] hbase git commit: updating docs from master
updating docs from master Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/0dab4ad2 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/0dab4ad2 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/0dab4ad2 Branch: refs/heads/branch-1.1 Commit: 0dab4ad2a03fb64530582329b773fa337301a7a1 Parents: 7a823b4 Author: Nick Dimiduk Authored: Sat Jun 10 17:49:35 2017 -0700 Committer: Nick Dimiduk Committed: Sat Jun 10 17:49:35 2017 -0700 -- src/main/asciidoc/_chapters/external_apis.adoc | 9 ++- src/main/asciidoc/_chapters/faq.adoc | 3 + src/main/asciidoc/_chapters/hbase_mob.adoc | 4 +- src/main/asciidoc/_chapters/ops_mgt.adoc | 80 - src/main/asciidoc/_chapters/orca.adoc | 6 +- src/main/asciidoc/_chapters/upgrading.adoc | 2 +- 6 files changed, 96 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/0dab4ad2/src/main/asciidoc/_chapters/external_apis.adoc -- diff --git a/src/main/asciidoc/_chapters/external_apis.adoc b/src/main/asciidoc/_chapters/external_apis.adoc index 556c4e0..2f85461 100644 --- a/src/main/asciidoc/_chapters/external_apis.adoc +++ b/src/main/asciidoc/_chapters/external_apis.adoc @@ -225,14 +225,17 @@ creation or mutation, and `DELETE` for deletion. |Description |Example -|/_table_/_row_/_column:qualifier_/_timestamp_ +|/_table_/_row_ |GET -|Get the value of a single row. Values are Base-64 encoded. +|Get all columns of a single row. Values are Base-64 encoded. This requires the "Accept" request header with a type that can hold multiple columns (like xml, json or protobuf). |curl -vi -X GET \ -H "Accept: text/xml" \ "http://example.com:8000/users/row1"; -curl -vi -X GET \ +|/_table_/_row_/_column:qualifier_/_timestamp_ +|GET +|Get the value of a single column. Values are Base-64 encoded. +|curl -vi -X GET \ -H "Accept: text/xml" \ "http://example.com:8000/users/row1/cf:a/1458586888395"; http://git-wip-us.apache.org/repos/asf/hbase/blob/0dab4ad2/src/main/asciidoc/_chapters/faq.adoc -- diff --git a/src/main/asciidoc/_chapters/faq.adoc b/src/main/asciidoc/_chapters/faq.adoc index 7bffe0e..9034d4b 100644 --- a/src/main/asciidoc/_chapters/faq.adoc +++ b/src/main/asciidoc/_chapters/faq.adoc @@ -44,6 +44,9 @@ How can I find examples of NoSQL/HBase?:: What is the history of HBase?:: See <>. +Why are the cells above 10MB not recommended for HBase?:: + Large cells don't fit well into HBase's approach to buffering data. First, the large cells bypass the MemStoreLAB when they are written. Then, they cannot be cached in the L2 block cache during read operations. Instead, HBase has to allocate on-heap memory for them each time. This can have a significant impact on the garbage collector within the RegionServer process. + === Upgrading How do I upgrade Maven-managed projects from HBase 0.94 to HBase 0.96+?:: In HBase 0.96, the project moved to a modular structure. Adjust your project's dependencies to rely upon the `hbase-client` module or another module as appropriate, rather than a single JAR. You can model your Maven dependency after one of the following, depending on your targeted version of HBase. See Section 3.5, âUpgrading from 0.94.x to 0.96.xâ or Section 3.3, âUpgrading from 0.96.x to 0.98.xâ for more information. http://git-wip-us.apache.org/repos/asf/hbase/blob/0dab4ad2/src/main/asciidoc/_chapters/hbase_mob.adoc -- diff --git a/src/main/asciidoc/_chapters/hbase_mob.adoc b/src/main/asciidoc/_chapters/hbase_mob.adoc index bdf077a..5da0343 100644 --- a/src/main/asciidoc/_chapters/hbase_mob.adoc +++ b/src/main/asciidoc/_chapters/hbase_mob.adoc @@ -36,7 +36,7 @@ read and write paths are optimized for values smaller than 100KB in size. When HBase deals with large numbers of objects over this threshold, referred to here as medium objects, or MOBs, performance is degraded due to write amplification caused by splits and compactions. When using MOBs, ideally your objects will be between -100KB and 10MB. HBase ***FIX_VERSION_NUMBER*** adds support +100KB and 10MB (see the <>). HBase ***FIX_VERSION_NUMBER*** adds support for better managing large numbers of MOBs while maintaining performance, consistency, and low operational overhead. MOB support is provided by the work done in link:https://issues.apache.org/jira/browse/HBASE-11339[HBASE-11339]. To @@ -155,7 +155,7 @@ family as the second argument. and take a compaction type as the third argument. hbase> compact 't1', 'c1â, âMOBâ -hbase> major_compact_mob 't1', 'c1â, âMOBâ