Go to file
Michael Stack 16012f93a6 HBASE-18770 Remove bypass method in ObserverContext and implement the
'bypass' logic case by case

Changes Coprocessor ObserverContext 'bypass' semantic. We flip the
default so bypass is NOT supported on Observer invocations; only a
couple of preXXX methods in RegionObserver allow it: e.g.  preGet
and prePut but not preFlush, etc. Everywhere else, we throw
a DoesNotSupportBypassException if a Coprocessor Observer
tries to invoke bypass. Master Observers can no longer stop
or change move, split, assign, create table, etc.

Ditto on complete, the mechanism that allowed a Coprocessor
rule that all subsequent Coprocessors are skipped in an
invocation chain; now, complete is only available to
bypassable methods (and Coprocessors will get an exception if
they try to 'complete' when it is not allowed).

See javadoc for whether a Coprocessor Observer method supports
'bypass'. If no mention, 'bypass' is NOT supported.

M hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/CoprocessorHost.java
 Added passing of 'bypassable' (and 'completable') and default 'result' argument to
 the Operation constructors rather than pass the excecution engine as parameters.
 Makes it so can clean up RegionObserverHost and make the calling
 clearer regards what is going on.
 Methods that support 'bypass' must set this flag on the Observer.

M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
 Refactoring in here is minor. A few methods that used support bypass
 no longer do so removed the check and the need of an if/else meant a
 left-shift in some code.

M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
 Ditto

M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
 In here label explicitly those methods that are bypassable.
 Some changes to make sure we call the corresponding execOperation.

TestMasterObserver had a bunch of test of bypass method. All removed or
disabled.

TODO: What to do w/ the Scanner methods.
2017-10-31 12:49:51 -07:00
bin HBASE-10367 RegionServer graceful stop / decommissioning 2017-10-19 22:10:52 -07:00
conf HBASE-18517 limit max log message width in log4j 2017-08-08 12:10:13 +08:00
dev-support HBASE-19098 compatibility checker should handle remotes named something other than 'origin'. 2017-10-26 16:10:56 -05:00
hbase-annotations HBASE-18933 set version number to 2.0.0-alpha4-SNAPSHOT following release of alpha3 2017-10-04 07:57:49 -05:00
hbase-archetypes HBASE-18933 set version number to 2.0.0-alpha4-SNAPSHOT following release of alpha3 2017-10-04 07:57:49 -05:00
hbase-assembly HBASE-18940 include project pylint configs in source artifact. 2017-10-05 10:40:28 -05:00
hbase-backup HBASE-18870 Hbase Backup should set the details to MR job name (Vishal Khandelwal) 2017-10-30 19:57:58 -07:00
hbase-build-configuration HBASE-18933 set version number to 2.0.0-alpha4-SNAPSHOT following release of alpha3 2017-10-04 07:57:49 -05:00
hbase-checkstyle HBASE-18933 set version number to 2.0.0-alpha4-SNAPSHOT following release of alpha3 2017-10-04 07:57:49 -05:00
hbase-client HBASE-18770 Remove bypass method in ObserverContext and implement the 2017-10-31 12:49:51 -07:00
hbase-common HBASE-19129 TestChoreService is flaky 2017-10-31 00:08:37 +00:00
hbase-endpoint HBASE-18770 Remove bypass method in ObserverContext and implement the 2017-10-31 12:49:51 -07:00
hbase-examples HBASE-19033 Allow CP users to change versions and TTL before opening StoreScanner 2017-10-29 21:53:49 +08:00
hbase-external-blockcache HBASE-18933 set version number to 2.0.0-alpha4-SNAPSHOT following release of alpha3 2017-10-04 07:57:49 -05:00
hbase-hadoop-compat HBASE-18933 set version number to 2.0.0-alpha4-SNAPSHOT following release of alpha3 2017-10-04 07:57:49 -05:00
hbase-hadoop2-compat HBASE-18980 Suppress SelfComparison error in tests 2017-10-10 11:58:28 -05:00
hbase-http HBASE-19119 hbase-http shouldn't have native profile 2017-10-30 11:45:08 -05:00
hbase-it HBASE-19047 CP exposed Scanner types should not extend Shipper. 2017-10-28 23:05:29 +05:30
hbase-mapreduce HBASE-18870 Hbase Backup should set the details to MR job name (Vishal Khandelwal) 2017-10-30 19:57:58 -07:00
hbase-metrics HBASE-18933 set version number to 2.0.0-alpha4-SNAPSHOT following release of alpha3 2017-10-04 07:57:49 -05:00
hbase-metrics-api HBASE-18933 set version number to 2.0.0-alpha4-SNAPSHOT following release of alpha3 2017-10-04 07:57:49 -05:00
hbase-native-client HBASE-14087 Ensure correct ASF headers for docs/code 2015-07-29 14:25:43 -05:00
hbase-prefix-tree HBASE-18995 Move methods that are for internal usage from CellUtil to Private util class (Ramkrishna Vasudevan) 2017-10-27 17:51:32 -07:00
hbase-procedure HBASE-18933 set version number to 2.0.0-alpha4-SNAPSHOT following release of alpha3 2017-10-04 07:57:49 -05:00
hbase-protocol HBASE-18933 set version number to 2.0.0-alpha4-SNAPSHOT following release of alpha3 2017-10-04 07:57:49 -05:00
hbase-protocol-shaded HBASE-18754 Get rid of Writable from TimeRangeTracker 2017-10-24 15:14:14 +08:00
hbase-replication HBASE-14247 Separate the old WALs into different regionserver directories 2017-10-17 19:39:21 +08:00
hbase-resource-bundle HBASE-18933 set version number to 2.0.0-alpha4-SNAPSHOT following release of alpha3 2017-10-04 07:57:49 -05:00
hbase-rest HBASE-19031 Align exist method in Table and AsyncTable interfaces 2017-10-29 07:17:41 +08:00
hbase-rsgroup HBASE-18602 rsgroup cleanup unassign code 2017-10-31 03:47:52 +08:00
hbase-server HBASE-18770 Remove bypass method in ObserverContext and implement the 2017-10-31 12:49:51 -07:00
hbase-shaded HBASE-19053 Split out o.a.h.h.http from hbase-server into a separate module 2017-10-23 23:25:26 -07:00
hbase-shell HBASE-16338 Remove Jackson1 deps 2017-10-23 15:24:51 -05:00
hbase-spark HBASE-13346: Clean up Filter package for post 1.0 s/KeyValue/Cell/g 2017-10-27 11:17:53 +05:30
hbase-spark-it HBASE-18933 set version number to 2.0.0-alpha4-SNAPSHOT following release of alpha3 2017-10-04 07:57:49 -05:00
hbase-testing-util HBASE-18933 set version number to 2.0.0-alpha4-SNAPSHOT following release of alpha3 2017-10-04 07:57:49 -05:00
hbase-thrift HBASE-18995 Move methods that are for internal usage from CellUtil to Private util class (Ramkrishna Vasudevan) 2017-10-27 17:51:32 -07:00
src/main HBASE-19073 Cleanup CoordinatedStateManager 2017-10-24 20:00:31 -07:00
.gitattributes HBASE-6816. [WINDOWS] line endings on checkout for .sh files 2013-01-23 19:30:14 +00:00
.gitignore HBASE-18670 Add .DS_Store to .gitignore 2017-08-27 18:53:04 +08:00
.pylintrc HBASE-18041 Add .pylintrc to HBase 2017-06-28 12:26:29 -05:00
CHANGES.txt HBASE-5466 Opening a table also opens the metatable and never closes it 2012-02-24 00:55:58 +00:00
LICENSE.txt HBASE-14338 License notification misspells 'Asciidoctor' (Lars Francke) 2015-09-22 09:53:53 -07:00
NOTICE.txt HBASE-17968 Fix NOTICE.txt for src-release 2017-05-01 11:25:44 -04:00
README.txt Updated links in README 2014-09-18 11:58:14 -07:00
pom.xml HBASE-18438 Precommit doesn't warn about unused imports 2017-10-29 20:48:15 +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