Commit Graph

1900 Commits

Author SHA1 Message Date
Guanghao Zhang b552eb2ff9 HBASE-19576 Introduce builder for ReplicationPeerConfig and make it immutable 2017-12-23 19:04:58 +08:00
Chia-Ping Tsai d4af099e9e HBASE-19496 Reusing the ByteBuffer in rpc layer corrupt the ServerLoad and RegionLoad 2017-12-22 18:58:08 +08:00
Guanghao Zhang 3a210d514c HBASE-19590 Remove the duplicate code in deprecated ReplicationAdmin 2017-12-22 18:36:28 +08:00
Apekshit Sharma 11ea19a101 HBASE-19589 New regions should always be added with state CLOSED (followup of HBASE-19530) 2017-12-21 22:58:28 -08:00
Chia-Ping Tsai 4aec7a491a HBASE-19575 add copy constructor to Mutation 2017-12-22 03:19:47 +08:00
Balazs Meszaros 992b5d8630 HBASE-10092 Move up on to log4j2
Changes:
- replaced commons-logging to slf4j everywhere
- log.XXX(Throwable) calls were replaced with log.XXX(t.toString(), t)
- log.XXX(Object) calls were replaced with log.XXX(Objects.toString(obj))
- log.fatal() calls were replaced with log.error(HBaseMarkers.FATAL, ...)
- programmatic log4j configuration was removed from the unit test

This commit does not affect the current logging configurations, because log4j
is still on the classpath. slf4j-log4j12 binds log4j to slf4j.

Signed-off-by: Michael Stack <stack@apache.org>
2017-12-20 22:58:12 -08:00
Jan Hentschel d111b17c36 HBASE-19538 Removed unnecessary semicolons in hbase-client 2017-12-19 20:56:35 +01:00
Guanghao Zhang 60cd494d1c HBASE-19492 Add EXCLUDE_NAMESPACE and EXCLUDE_TABLECFS support to replication peer config 2017-12-19 16:57:38 +08:00
Michael Stack b7268cafac HBASE-19122 Suspect methods on Cell to be deprecated; ADDENDUM to fix
compile error
2017-12-18 16:03:42 -08:00
Michael Stack 495bedea35
HBASE-19122 Suspect methods on Cell to be deprecated 2017-12-18 15:23:03 -08:00
Yun Chi-Shih 5895719420 HBASE-19531 Remove needless volatile declaration
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-12-19 00:40:37 +08:00
Guanghao Zhang 8fa08b56f3 HBASE-19522 The complete order may be wrong in AsyncBufferedMutatorImpl 2017-12-16 14:09:35 +08:00
Apekshit Sharma 15a4aa0ce1 HBASE-19530 New regions should always be added with state CLOSED 2017-12-15 21:21:37 -08:00
Peter Somogyi 2043c337d8
HBASE-19498 Fix findbugs and error-prone warnings in hbase-client (branch-2)
Signed-off-by: Michael Stack <stack@apache.org>
Signed-off-by: Apekshit Sharma <appy@apache.org>
2017-12-15 15:57:01 -08:00
Mike Drob 23a9059cb2 HBASE-18838 Fix hadoop3 check-shaded-invariants 2017-12-15 13:20:54 -06:00
Chia-Ping Tsai 33d48754f5
HBASE-19462 Deprecate all addImmutable methods in Put
Signed-off-by: Michael Stack <stack@apache.org>
2017-12-14 14:18:04 -08:00
zhangduo c2bb63fbf9 HBASE-19512 Move EventType and ExecutorType from hbase-client to hbase-server 2017-12-14 20:15:35 +08:00
tedyu b682ea7c8a HBASE-19434 create_namespace command for existing namespace does not throw useful error message 2017-12-13 16:01:38 -08:00
Guangxu Cheng 015b66103a HBASE-19000 Group multiple block cache clear requests per server
Signed-off-by: tedyu <yuzhihong@gmail.com>
2017-12-13 07:47:33 -08:00
BELUGA BEHR 7c871849de HBASE-19472 Remove ArrayUtil Class
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-12-13 19:08:54 +08:00
Chia-Ping Tsai 55eb59e654 HBASE-19427 Add TimeRange support into Append to optimize for counters 2017-12-13 15:40:56 +08:00
Peter Somogyi 941acc5c05 HBASE-19213 Align check and mutate operations in Table and AsyncTable
- Deprecates old checkAnd*() operations in Table
- Adds Table#CheckAndMutateBuilder and implements it in HTable

Commiter note: When committing the patch, noticed redundant {@inheritDoc} being added in HTable.
Removed new and olds ones.

Signed-off-by: Apekshit Sharma <appy@apache.org>
2017-12-12 20:46:39 -08:00
tedyu 0e47ded1a5 HBASE-19394 Support multi-homing env for the publication of RS status with multicast (hbase.status.published) (Toshihiro Suzuki) 2017-12-12 07:48:40 -08:00
Michael Stack 3366ebdc56
HBASE-19461 TestRSGroups is broke 2017-12-08 15:10:23 -08:00
Chia-Ping Tsai 2245dfc558 HBASE-12444 Total number of requests overflow because it's int 2017-12-07 18:42:32 +08:00
anoopsamjohn f8e2323323 HBASE-19357 Bucket cache no longer L2 for LRU cache. 2017-12-07 15:06:30 +05:30
anoopsamjohn e88b3c65b9 HBASE-19439 Mark ShortCircuitMasterConnection with InterfaceAudience Private. 2017-12-07 11:24:00 +05:30
Michael Stack d29ffd4e29 HBASE-19295 The Configuration returned by CPEnv should be read-only.
Adds a ReadOnlyConfiguration that delegates gets but throws exception
on sets/adds, etc.
2017-12-06 15:18:53 -08:00
anoopsamjohn 78a6e0532e Revert "HBASE-19357 Bucket cache no longer L2 for LRU cache."
This reverts commit d952c5df9f.
2017-12-06 11:36:19 +05:30
anoopsamjohn d952c5df9f HBASE-19357 Bucket cache no longer L2 for LRU cache. 2017-12-06 11:26:10 +05:30
Michael Stack c77778dd13
HBASE-19426 Move has() and setTimestamp() to Mutation (Chia-Ping Tsai)
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-12-05 09:42:13 -08:00
zhangduo c61ed5dc7e HBASE-19399 Purge curator dependency from hbase-client 2017-12-03 08:30:43 +08:00
Enis Soztutar 4f642f659f HBASE-16239 Better logging for RPC related exceptions
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-12-03 00:45:08 +08:00
Chia-Ping Tsai 2bda22a64e HBASE-19350 TestMetaWithReplicas is flaky 2017-12-01 03:40:17 +08:00
Apekshit Sharma 4f4aac77e1 HBASE-19367 Refactoring in RegionStates, and RSProcedureDispatcher
- Adding javadoc comments
- Bug: ServerStateNode#regions is HashSet but there's no synchronization to prevent concurrent addRegion/removeRegion. Let's use concurrent set instead.
- Use getRegionsInTransitionCount() directly to avoid instead of getRegionsInTransition().size() because the latter copies everything into a new array - what a waste for just the size.
- There's mixed use of getRegionNode and getRegionStateNode for same return type - RegionStateNode. Changing everything to getRegionStateNode. Similarly rename other *RegionNode() fns to *RegionStateNode().
- RegionStateNode#transitionState() return value is useless since it always returns it's first param.
- Other minor improvements
2017-11-29 22:42:39 -08:00
Guanghao Zhang 9e7ab9ffe2
HBASE-19359 Revisit the default config of hbase client retries number 2017-11-29 10:33:20 -08:00
Jerry He 0c4c395538 HBASE-19096 Add RowMutions batch support in AsyncTable
Signed-off-by: Jerry He <jerryjch@apache.org>
2017-11-28 18:49:08 -08:00
Balazs Meszaros e946d9d841
HBASE-19242 Add MOB compact support for AsyncAdmin
Signed-off-by: Michael Stack <stack@apache.org>
Signed-off-by: Guanghao Zhang <zghaobac@gmail.com>
2017-11-28 15:04:56 -08:00
Josh Elser 4fef4cfc30 HBASE-19267 Remove compiler-plugin mapping executions as it breaks Java8 detection
It seems like the original reason this execution filter was added is no
longer an issue for 2.0. Actually, these entries actually preclude
Eclipse from correctly using the Java8 source/target version that we
have specified (which creates numerous compilation errors in Eclipse)

Signed-off-by: Guanghao Zhang <zghao@apache.org>
2017-11-28 14:54:32 -05:00
Peter Somogyi 12efae4829 HBASE-19351 Deprecated is missing in Table implementations
Signed-off-by: Michael Stack <stack@apache.org>
2017-11-28 11:18:07 -08:00
Guanghao Zhang 0406d06533 HBASE-19337 AsyncMetaTableAccessor may hang when call ScanController.terminate many times 2017-11-25 19:39:37 +08:00
Vasudevan 6ac6ae3fa2 HBASE-19092 Make Tag IA.LimitedPrivate and expose for CPs (Ram)
Signed-off-by: Chia-ping Tsai, Anoop Sam John, Stack
2017-11-24 12:38:42 +05:30
Guanghao Zhang ca6e7e68f4 HBASE-16868 Add a replicate_all flag to avoid misuse the namespaces and table-cfs config of replication peer
Signed-off-by: Guanghao Zhang <zghao@apache.org>
2017-11-23 15:08:03 +08:00
wuguoquan 8c2a962d1c HBASE-19321 ZKAsyncRegistry ctor would hang when zookeeper cluster is not available 2017-11-22 15:51:02 +08:00
Peter Somogyi bcd367e293
HBASE-19315 Incorrect snapshot version is used for 2.0.0-beta-1
Signed-off-by: Michael Stack <stack@apache.org>
2017-11-21 10:41:50 -08:00
anoopsamjohn f7331f9ceb HBASE-19301 Provide way for CPs to create short circuited connection with custom configurations. 2017-11-21 19:06:39 +05:30
zhangduo 4df2dffbab HBASE-19313 Call blockUntilConnected when constructing ZKAsyncRegistry(temporary workaround) 2017-11-21 21:29:18 +08:00
Sergey Soldatov 13209bce06 HBASE-19304 KEEP_DELETED_CELLS should ignore case
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-11-21 20:45:50 +08:00
Guanghao Zhang c978f8ab23 HBASE-19293 Support add a disabled state replication peer directly 2017-11-21 15:37:33 +08:00
Michael Stack 50c3bf9feb
HBASE-19260 Add lock back to avoid parallel accessing meta to locate region 2017-11-17 14:04:41 -08:00
Apekshit Sharma e0c4f374b5 HBASE-19114 Split out o.a.h.h.zookeeper from hbase-server and hbase-client
- Moved DrainingServerTracker and RegionServerTracker to hbase-server:o.a.h.h.master.
- Moved SplitOrMergeTracker to oahh.master (because it depends on a PB)
- Moving hbase-client:oahh.zookeeper.*  to hbase-zookeeper module.  After HBASE-19200, hbase-client doesn't need them anymore (except 3 classes).
- Renamed some classes to use a consistent naming for classes - ZK instead of mix of ZK, Zk , ZooKeeper. Couldn't rename following public classes: MiniZooKeeperCluster, ZooKeeperConnectionException. Left RecoverableZooKeeper for lack of better name. (suggestions?)
- Sadly, can't move tests out because they depend on HBaseTestingUtility (which defeats part of the purpose - trimming down hbase-server tests. We need to promote more use of mocks in our tests)
2017-11-17 13:23:28 -08:00
huzheng 57291108ed HBASE-19252 Move the transform logic of FilterList into transformCell() method to avoid extra ref to question cell 2017-11-17 10:42:58 +08:00
Guanghao Zhang 8b30adb834 HBASE-18911 Unify Admin and AsyncAdmin's methods name 2017-11-17 09:50:41 +08:00
zhangduo bc3542c0fb HBASE-19251 Merge RawAsyncTable and AsyncTable 2017-11-16 14:37:51 +08:00
Guanghao Zhang d885e2232d HBASE-19009 implement modifyTable and enable/disableTableReplication for AsyncAdmin 2017-11-16 07:19:34 +08:00
Sean Busbey 9c85d0017f HBASE-19248 Move tests that need to look at Connection internals to test of said internals.
Signed-off-by: zhangduo <zhangduo@apache.org>
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-11-15 08:40:03 -06:00
anoopsamjohn a1d86d90ba HBASE-19235 CoprocessorEnvironment should be exposed to CPs. 2017-11-15 14:51:04 +05:30
Lars Hofhansl 3d4fd90947 HBASE-12091 Optionally ignore edits for dropped tables for replication. 2017-11-14 17:16:56 -08:00
Abhishek Singh Chouhan d0fb4bd783 HBASE-19215 Incorrect exception handling on the client causes incorrect call timeouts and byte buffer allocations on the server
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2017-11-13 18:02:21 -08:00
Tamas Penzes 7a69ebc73e HBASE-18601: Update Htrace to 4.2
Updated HTrace version to 4.2
Created TraceUtil class to wrap htrace methods. Uses try with resources.

Signed-off-by: Balazs Meszaros <balazs.meszaros@cloudera.com>
Signed-off-by: Michael Stack <stack@apache.org>
2017-11-13 10:38:36 -08:00
zhangduo 8a5273f38c HBASE-19241 Improve javadoc for AsyncAdmin and cleanup warnings for the implementation classes 2017-11-13 17:00:14 +08:00
zhangduo 30f55f2316 HBASE-19200 Make hbase-client only depend on ZKAsyncRegistry and ZNodePaths
- Removes zookeeper connection from ClusterConnection
- Deletes class ZooKeeperKeepAliveConnection
- Removes Registry, ZooKeeperRegistry, and RegistryFactory
2017-11-10 10:09:04 -08:00
Chia-Ping Tsai 3511f678fb HBASE-18624 (addendum) correct the annotations 2017-11-10 09:04:51 +08:00
Michael Stack afdafb4bad HBASE-19220 Async tests time out talking to zk; 'clusterid came back null' 2017-11-09 10:45:54 -08:00
Michael Stack 0aafbe7aa9 HBASE-19165 TODO Handle stuck in transition: rit=OPENING, location=ve0538.... 2017-11-09 10:32:42 -08:00
Zach York 77e7c5ff27 HBASE-18624 Added support for clearing BlockCache based on tablename
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-11-09 04:03:35 +08:00
Mike Drob 0d4f33ca27 HBASE-19195 error-prone fixes for client, mr, and server 2017-11-08 12:04:46 -06:00
Apekshit Sharma a6d8023ff5 HBASE-19128 Purge Distributed Log Replay from codebase, configurations, text; mark the feature as unsupported, broken. 2017-11-07 17:48:52 -08:00
QilinCao 1110910b3a HBASE-19103 Add BigDecimalComparator for filter
Signed-off-by: tedyu <yuzhihong@gmail.com>
2017-11-07 03:30:43 -08:00
Michael Stack f13cf56f1c
HBASE-19197 Move version on branch-2 from 2.0.0-alpha4 to 2.0.0-beta-1.SNAPSHOT 2017-11-06 20:46:38 -08:00
Chia-Ping Tsai 43b4aab648 HBASE-19131 (Addendum) Use the emptyList() to replace EMPTY_LIST 2017-11-07 04:06:29 +08:00
Mike Drob cfddfcf23c HBASE-19160 expose CellComparator as IA.Public 2017-11-06 10:15:55 -06:00
Guanghao Zhang 47c614c706 HBASE-18950 Remove Optional parameters in AsyncAdmin interface 2017-11-06 20:41:20 +08:00
Mike Drob 33ae6dce42 HBASE-18983 fixes from update error-prone to 2.1.1 2017-11-04 21:29:48 -05:00
Chia-Ping Tsai d592b29619 HBASE-19131 Add the ClusterStatus hook and cleanup other hooks which can be replaced by ClusterStatus hook 2017-11-05 09:56:04 +08:00
zhangduo 547d46cfac HBASE-18972 Use Builder pattern to remove nullable parameters for coprocessor methods in RawAsyncTable interface 2017-11-02 13:58:33 +08:00
Apekshit Sharma d69570a485 HBASE-18925 Update mockito dependency from mockito-all:1.10.19 to mockito-core:2.1.0 for JDK8 support.
Last mockito-all release was in Dec'14. Mockito-core has had many releases since then.

From mockito's site:
- "Mockito does not produce the mockito-all artifact anymore ; this one was primarily
aimed at ant users, and contained other dependencies. We felt it was time to move on
and remove such artifacts as they cause problems in dependency management system like
maven or gradle."
- anyX() and any(SomeType.class) matchers now reject nulls and check type.
2017-11-01 14:38:50 -07:00
eshcar 526d2826f5 HBASE-16417: In-memory MemStore Policy for Flattening and Compactions 2017-11-01 16:48:40 +02:00
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
Peter Somogyi 0ad8a6f51b HBASE-19031 Align exist method in Table and AsyncTable interfaces
Deprecate Table::existsAll method and add Table::exists.
RemoteHTable already had a deprecated exists method, remove that
and implement the new exists from Table interface.

Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-10-29 07:17:41 +08:00
Michael Stack 250a8bc7ad
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
Tamas Penzes fc581270a8 HBASE-13346: Clean up Filter package for post 1.0 s/KeyValue/Cell/g
Added filterCell method to Filter, it calls filterKeyValue by default
Deprecated filterKeyValue in Filter, bud added default functionality to return Filter.ReturnCode.INCLUDE.
Added filterKeyValue (calling filterCell) to Filters extending FilterBase to be backward compatible.
renamed filterKeyValue to filterCell in all implementations
changed all internal calls to use filterCell instead of filterKeyValue
changed tests too

This way the change is simple and backward compatible.
Any existing custom filter should work since they override filterKeyValue
and the implementation is called by Filter.filterCell.

Moved FilterWrapper to hbase-server

Signed-off-by: anoopsamjohn <anoopsamjohn@gmail.com>
2017-10-27 11:17:53 +05:30
QilinCao 9a5ab58bc1 HBASE-19091 Code annotation wrote BinaryComparator instead of LongComparator
Signed-off-by: Jan Hentschel <jan.hentschel@ultratendency.com>
2017-10-26 22:19:08 +02:00
huzheng a93e1aa8f6 HBASE-15410 (addendum) Utilize the max seek value when all Filters in MUST_PASS_ALL FilterList return SEEK_NEXT_USING_HINT 2017-10-26 18:46:49 +08:00
Peter Somogyi 5dadfdaa58
HBASE-19029 Align RPC timout methods in Table and AsyncTableBase
As part of HBASE-18978 the rpc timeout methods gets aligned
between Table and AsyncTable interfaces.
Deprecate the following methods in Table:
- int getRpcTimeout()
- int getReadRpcTimeout()
- int getWriteRpcTimeout()
- int getOperationTimeout()

Add the following methods to Table:
- long getRpcTimeout(TimeUnit)
- long getReadRpcTimeout(TimeUnit)
- long getWriteRpcTimeout(TimeUnit)
- long getOperationTimeout(TimeUnit)

Fix some javadoc issues.

Signed-off-by: Michael Stack <stack@apache.org>
2017-10-25 09:55:16 -07:00
huzheng c2dbef1465 HBASE-19057 Fix other code review comments about FilterList improvement 2017-10-25 20:41:25 +08:00
huzheng 7a2da02e6d HBASE-18368 FilterList with multiple FamilyFilters concatenated by OR does not work
Signed-off-by: Guanghao Zhang <zghao@apache.org>
2017-10-25 20:41:25 +08:00
huzheng f6dd5e8b64 HBASE-18879 HBase FilterList cause KeyOnlyFilter not work 2017-10-25 20:41:24 +08:00
huzheng aa23cca58a HBASE-18411 Dividing FiterList into two separate sub-classes: FilterListWithOR , FilterListWithAND
Signed-off-by: zhangduo <zhangduo@apache.org>
2017-10-25 20:41:24 +08:00
Biju Nair 1a5b3a3363 HBASE-18904 Missing break in NEXT_ROW case of FilterList#mergeReturnCodeForOrOperator()
Signed-off-by: tedyu <yuzhihong@gmail.com>
2017-10-25 20:41:24 +08:00
huzheng 15eae6ac35 HBASE-18160 Fix incorrect logic in FilterList.filterKeyValue
Signed-off-by: zhangduo <zhangduo@apache.org>
2017-10-25 20:41:24 +08:00
tedyu 47d8549cec HBASE-15410 Utilize the max seek value when all Filters in MUST_PASS_ALL FilterList return SEEK_NEXT_USING_HINT 2017-10-25 20:41:24 +08:00
huzheng 50c9a412fe HBASE-17678 FilterList with MUST_PASS_ONE lead to redundancy cells returned - addendum
Signed-off-by: tedyu <yuzhihong@gmail.com>
2017-10-25 20:41:24 +08:00
huzheng 7237ecc3b3 HBASE-17678 FilterList with MUST_PASS_ONE may lead to redundant cells returned
Signed-off-by: tedyu <yuzhihong@gmail.com>
2017-10-25 20:41:24 +08:00
Josh Elser 3e0b90b949 HBASE-18873 Move protobufs to private implementation on GlobalQuotaSettings
A hack to "hide" the protobufs, but it's not going to be a trivial
change to remove use of protobufs entirely as they're serialized
into the hbase:quota table.
2017-10-23 22:44:44 -04:00
Mike Drob 34df2e665e HBASE-16338 Remove Jackson1 deps
* Change imports from org.codehaus to com.fasterxml
* Exclude transitive jackson1 from hadoop and others
* Minor test cleanup to add assert messages, fix some parameter order
* Add anti-pattern check for using jackson 1 imports
* Add explicit non-null serialization directive to ScannerModel
2017-10-23 15:24:51 -05:00
Guanghao Zhang 00f2b18148 HBASE-19007 Align Services Interfaces in Master and RegionServer
Purges Server, MasterServices, and RegionServerServices from
CoprocessorEnvironments. Replaces removed functionality with
a set of carefully curated methods on the *CoprocessorEnvironment
implementations (Varies by CoprocessorEnvironment in that the
MasterCoprocessorEnvironment has Master-type facility exposed,
and so on).

A few core Coprocessors that should long ago have been converted
to be integral, violate their context; e.g. a RegionCoprocessor
wants free access to a hosting RegionServer (which may or may not
be present). Rather than let these violators make us corrupte the
CP API, instead, we've made up a hacky system that allows core
Coprocessors access to internals. A new CoreCoprocessor Annotation
has been introduced. When loading Coprocessors, if the instance is
annotated CoreCoprocessor, we pass it an Environment that has been
padded w/ extra-stuff. On invocation, CoreCoprocessors know how to
route their way to these extras in their environment.

See the *CoprocessoHost for how the do the check for CoreCoprocessor
and pass a fatter *Coprocessor, one that allows getting of either
a RegionServerService or MasterService out of the environment
via Marker Interfaces.

Removed org.apache.hadoop.hbase.regionserver.CoprocessorRegionServerServices

M hbase-endpoint/src/main/java/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.java
 This Endpoint has been deprecated because its functionality has been
 moved to core. Marking it a CoreCoprocessor in the meantime to
 minimize change.

M hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java
 This should be integral to hbase. Meantime, marking it CoreCoprocessor.

M hbase-server/src/main/java/org/apache/hadoop/hbase/Server.java
 Added doc on where it is used and added back a few methods we'd
removed.

A hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/CoreCoprocessor.java
 New annotation for core hbase coprocessors. They get richer environment
 on coprocessor loading.

A hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/HasMasterServices.java
A hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/HasRegionServerServices.java
 Marker Interface to access extras if present.

M hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.java
  Purge MasterServices access. Allow CPs a Connection.

M hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.java
  Purge RegionServerServices access. Allow CPs a Connection.

M hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.java
  Purge MasterServices access. Allow CPs a Connection.

M hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/MasterSpaceQuotaObserver.java
M hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/QuotaCache.java
  We no longer have access to MasterServices. Don't need it actually.
  Use short-circuiting Admin instead.

D hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CoprocessorRegionServerServices.java
  Removed. Not needed now we do CP Env differently.

M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
  No need to go via RSS to getOnlineTables; just use HRS.

And so on. Adds tests to ensure we can only get at extra info
if the CP has been properly marked.
2017-10-21 11:07:27 -07:00
Guanghao Zhang 51ceeece25 HBASE-19010 Reimplement getMasterInfoPort for Admin 2017-10-21 18:33:12 +08:00
Michael Stack 9b4caf4b1b HBASE-19043 Purge TableWrapper and CoprocessorHConnnection
Also purge Coprocessor#getTable... Let Coprocessors manage their
Table Connections in hbase2.0.0.
2017-10-20 11:15:42 -07:00
Jerry He 75d2bba739 HBASE-10367 RegionServer graceful stop / decommissioning
Signed-off-by: Jerry He <jerryjch@apache.org>
2017-10-19 22:10:52 -07:00
Ramkrishna 2cb64fb467 HBSE-18945 Make a IA.LimitedPrivate interface for CellComparator (Ram) 2017-10-17 23:19:21 +05:30
Reid Chan b96e2f055d HBASE-18990 ServerLoad doesn't override #equals which leads to #equals in ClusterStatus always false
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-10-18 00:45:34 +08:00
Guanghao Zhang 58b0585d66 HBASE-18914 Remove AsyncAdmin's methods which were already deprecated in Admin interface 2017-10-16 22:23:46 +08:00
Chia-Ping Tsai d2e4e0e1f3 HBASE-18997 Remove the redundant methods in RegionInfo 2017-10-14 23:32:48 +08:00
tedyu 77bfe05503 HBASE-15410 Utilize the max seek value when all Filters in MUST_PASS_ALL FilterList return SEEK_NEXT_USING_HINT 2017-10-13 15:15:12 -07:00
anoopsamjohn b212bf936e HBASE-18183 Region interface cleanup for CP expose. 2017-10-11 17:14:43 +05:30
Mike Drob 2e368cf461 HBASE-18981 Address issues found by error-prone in hbase-client 2017-10-10 14:09:08 -05:00
zhangduo d5b76547f0 HBASE-18951 Use Builder pattern to remove nullable parameters for checkAndXXX methods in RawAsyncTable/AsyncTable interface 2017-10-10 14:41:27 +08:00
Sean Busbey 38e52bb29e Revert "HBASE-17678 FilterList with MUST_PASS_ONE may lead to redundant cells returned"
This reverts commit 0d0c330401.

Backing out filterlist regression, see HBASE-18957. Work continuing branch for HBASE-18410.

Signed-off-by: Peter Somogyi <psomogyi@cloudera.com>
Signed-off-by: Michael Stack <stack@apache.org>
2017-10-09 16:54:26 -05:00
Sean Busbey 852b578384 Revert "HBASE-17678 FilterList with MUST_PASS_ONE lead to redundancy cells returned - addendum"
This reverts commit 347bef8d33.

Backing out filterlist regression, see HBASE-18957. Work continuing branch for HBASE-18410.

Signed-off-by: Peter Somogyi <psomogyi@cloudera.com>
Signed-off-by: Michael Stack <stack@apache.org>
2017-10-09 16:54:22 -05:00
Sean Busbey 1d07c8eec4 Revert "HBASE-15410 Utilize the max seek value when all Filters in MUST_PASS_ALL FilterList return SEEK_NEXT_USING_HINT"
This reverts commit 743f3ae221.

Backing out filterlist regression, see HBASE-18957. Work continuing branch for HBASE-18410.

Signed-off-by: Peter Somogyi <psomogyi@cloudera.com>
Signed-off-by: Michael Stack <stack@apache.org>
2017-10-09 16:54:20 -05:00
Sean Busbey 2dcdd13a01 Revert "HBASE-18160 Fix incorrect logic in FilterList.filterKeyValue"
This reverts commit 7c2622baf7.

Backing out filterlist regression, see HBASE-18957. Work continuing branch for HBASE-18410.

Signed-off-by: Peter Somogyi <psomogyi@cloudera.com>
Signed-off-by: Michael Stack <stack@apache.org>
2017-10-09 16:54:15 -05:00
Sean Busbey 3dd66e6cda Revert "HBASE-18904 Missing break in NEXT_ROW case of FilterList#mergeReturnCodeForOrOperator()"
This reverts commit d142f07129.

Backing out filterlist regression, see HBASE-18957. Work continuing branch for HBASE-18410.

Signed-off-by: Peter Somogyi <psomogyi@cloudera.com>
Signed-off-by: Michael Stack <stack@apache.org>
2017-10-09 16:53:50 -05:00
Maytee Chinavanichkit 9cd7619b5c HBASE-18921 Fix Result.current ArrayIndexOutOfBoundsException
Patch ArrayIndexOutOfBoundsException when current() is called after
advance() has already returned false

Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-10-08 02:51:02 +08:00
Guanghao Zhang 8e5d88366d HBASE-18909 Deprecate Admin's methods which used String regex 2017-10-07 21:23:19 +08:00
Chia-Ping Tsai 2a5b6bc681 HBASE-18927 Add the DataType which is subset of KeyValue#Type to CellBuilder for building cell 2017-10-04 23:45:57 +08:00
Sean Busbey 35094bf4d5 HBASE-18933 set version number to 2.0.0-alpha4-SNAPSHOT following release of alpha3 2017-10-04 07:57:49 -05:00
Ramkrishna 3318e8724e HBASE-18490 Modifying a table descriptor to enable replicas does not
create replica regions (Ram)
2017-10-03 13:16:00 +05:30
Chia-Ping Tsai e047f518ef HBASE-18897 Substitute MemStore for Memstore 2017-10-02 21:10:11 +08:00
Apekshit Sharma 4579bba486 HBASE-18884 (addendum) Add more javadoc comment. Coprocessor Design Improvements follow up of HBASE-17732.
Change-Id: Id1a9e508cc04612b1e79e6cfa7e39b7755598be3
2017-09-29 17:32:41 -07:00
Robert Yokota 759110c225 HBASE-18559 Add histogram to MetricsConnection to track concurrent calls per server
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2017-09-29 17:12:26 -07:00
Biju Nair d142f07129 HBASE-18904 Missing break in NEXT_ROW case of FilterList#mergeReturnCodeForOrOperator()
Signed-off-by: tedyu <yuzhihong@gmail.com>
2017-09-29 16:19:39 -07:00
Andrew Purtell 5917ad4c0c HBASE-18436 Add client-side hedged read metrics (Yun Zhao) 2017-09-29 15:36:42 -07:00
Andy Yang 0658252ed6 HBASE-13844 Move static helper methods from KeyValue into CellUtils
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-09-29 13:20:24 +08:00
Michael Stack ac933f7af2 HBASE-18884 Coprocessor Design Improvements follow up of HBASE-17732; MINOR AMENDMENT adding README to design-doc dir 2017-09-28 13:25:07 -07:00
Apekshit Sharma a6a303816c HBASE-18884 Coprocessor Design Improvements follow up of HBASE-17732
- Change Service Coprocessor#getService() to List<Service> Coprocessor#getServices()
- Checkin the finalized design doc into repo
- Added example to javadoc of Coprocessor base interface on how to implement one in the new design
2017-09-28 10:33:30 -07:00
Chia-Ping Tsai 6693f45faf HBASE-18839 Apply RegionInfo to code base 2017-09-28 20:19:41 +08:00
zhangduo d26b8f8ddd HBASE-18826 Use HStore instead of Store in our own code base and remove unnecessary methods in Store interface 2017-09-28 15:41:56 +08:00
Apekshit Sharma 0c883a23c5 HBASE-17732 Coprocessor Design Improvements
------------------------------------------------------
TL;DR
------------------------------------------------------
We are moving from Inheritence
- Observer *is* Coprocessor
- FooService *is* CoprocessorService
To Composition
- Coprocessor *has* Observer
- Coprocessor *has* Service

------------------------------------------------------
Design Changes
------------------------------------------------------
- Adds four new interfaces - MasterCoprocessor, RegionCoprocessor, RegionServierCoprocessor,
  WALCoprocessor
- These new *Coprocessor interfaces have a get*Observer() function for each observer type
  supported by them.
- Added Coprocessor#getService() to base interface. All extending *Coprocessor interfaces will
  get it from the base interface.
- Added BulkLoadObserver hooks to RegionCoprocessorHost instad of SecureBulkLoadManager doing its
  own trickery.
- CoprocessorHost#find*() fuctions: Too many testing hooks digging into CP internals.
  Deleted if can, else marked @VisibleForTesting.

------------------------------------------------------
Backward Compatibility
------------------------------------------------------
- Old coprocessors implementing *Observer won't get loaded (no backward compatibility guarantees).
- Third party coprocessors only implementing Coprocessor will not get loaded (just like Observers).
- Old coprocessors implementing CoprocessorService (for master/region host)
  /SingletonCoprocessorService (for RegionServer host) will continue to work with 2.0.
- Added test to ensure backward compatibility of CoprocessorService/SingletonCoprocessorService
- Note that if a coprocessor implements both observer and service in same class, its service
  component will continue to work but it's observer component won't work.

------------------------------------------------------
Notes
------------------------------------------------------
Did a side-by-side comparison of CPs in master and after patch. These coprocessors which were just
CoprocessorService earlier, needed a home in some coprocessor in new design. For most it was clear
since they were using a particular type of environment. Some were tricky.

- JMXListener - MasterCoprocessor and RSCoprocessor (because jmx listener makes sense for
  processes?)
- RSGroupAdminEndpoint --> MasterCP
- VisibilityController -> MasterCP and RegionCP

These were converted to RegionCoprocessor because they were using RegionCoprocessorEnvironment
which can only come from a RegionCPHost.
- AggregateImplementation
- BaseRowProcessorEndpoint
- BulkDeleteEndpoint
- Export
- RefreshHFilesEndpoint
- RowCountEndpoint
- MultiRowMutationEndpoint
- SecureBulkLoadEndpoint
- TokenProvider

Change-Id: I813145f2bc11815f52ac703563b879962c249764
2017-09-27 12:45:51 -07:00
anoopsamjohn 0fcc84cadd HBASE-18298 RegionServerServices Interface cleanup for CP expose. 2017-09-27 11:02:57 +05:30
huzheng 7c2622baf7 HBASE-18160 Fix incorrect logic in FilterList.filterKeyValue
Signed-off-by: zhangduo <zhangduo@apache.org>
2017-09-26 11:23:38 +08:00
Josh Elser 40a73c9be5 HBASE-18807 Remove protobuf references from CP quota API calls 2017-09-23 21:28:58 -04:00
Abhishek Singh Chouhan 8df523bdd0 HBASE-18796 Addendum: Scanner returning null incorrectly during locateRegionInMeta retry, resulting in incorrect TableNotFoundException
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2017-09-22 10:21:06 -07:00
Sean Busbey c1f5122fab HBASE-18731 [compat 1-2] Mark protected methods of QuotaSettings that touch Protobuf internals as IA.Private
Signed-off-by: Michael Stack <stack@apache.org>
2017-09-21 14:01:02 -05:00
Abhishek Singh Chouhan 518674bce6 HBASE-18796 Admin#isTableAvailable returns incorrect result before daughter regions are opened
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2017-09-19 15:06:15 -07:00
Yu Li 52c809c35e HBASE-15931 Add log for long-running tasks in AsyncProcess (addendum) 2017-09-19 09:55:11 +08:00
Chia-Ping Tsai 3f112ee320 HBASE-17980 (Addendum) make UnmodifyableHRegionInfo deprecated 2017-09-16 17:08:34 +08:00
brandboat 42bdd665ae HBASE-17980 Any HRegionInfo we give out should be immutable
Signed-off-by: Michael Stack <stack@apache.org>
2017-09-14 14:25:58 -07:00
Michael Stack 7660f9e86a HBASE-18819 Set version number to 2.0.0-alpha3 from 2.0.0-alpha3-SNAPSHOT 2017-09-14 12:38:46 -07:00
Michael Stack 274bbb64c6 HBASE-14998 Unify synchronous and asynchronous methods in Admin and cleanup
This is based on patch sent me by Balazs Meszaros. The good stuff in
here is from him. This patch does less than his ambition. It changes
Admin class only. Can work on making AsyncAdmin cohere in a follow-on.

 * Deprecates getAlterStatus. Everywhere else we talk of 'modify' rather
   'alter' and should use Future returned from async instead.
 * isTableAvailable(TableName, byte [][]) has been deprecated to be
   removed; use the overrie instead. This is a weird method.
 * Changed listTableDescriptor to getDescriptor.
 * Renamed other like methods to have same pattern (deprecating the old):
    balancer => balance
    setBalancerRunning => balancerSwitch
    setNormalizerRunning => normalizerSwitch
    enableCatalogJanitor => catalogJanitorSwitch
    setCleanerChoreRunning => cleanerChoreSwitch
    setSplitOrMergeEnabled => splitOrMergeEnabledSwitch

 * Renamed (with deprecation of old) runCatalogScan => runCatalogJanitor.
 * Reviewed generated javadoc and made some edits; purged reference to
   hbase issues from our API, fixed param names, etc.
 * Made all the enable services methods have same pattern.
 * Renamed takeSnapshotAsync as snapshotAsync (with deprecation of old)
 * Renamed execProcedureWithRet as execProcedureWithReturn (with
   deprecation)

Signed-off-by: Michael Stack <stack@apache.org>
2017-09-13 17:19:56 -07:00
Reid Chan dc1db8c5b3 HBASE-18609 Apply ClusterStatus#getClusterStatus(EnumSet<Option>) in code base
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-09-14 01:00:19 +08:00
Guangxu Cheng 5370aed410 HBASE-18789 Displays the reporting interval of each RS on the Master page
Signed-off-by: tedyu <yuzhihong@gmail.com>
2017-09-13 05:53:16 -07:00
Sean Busbey d576e5a32d HBASE-17823 Migrate to Apache Yetus Audience Annotations
Includes partial backport of hbase-build-configuration module

Signed-off-by: Michael Stack <stack@apache.org>
Signed-off-by: Misty Stanley-Jones <misty@apache.org>
2017-09-12 23:15:50 -05:00
Guangxu Cheng c75bb7424e HBASE-18131 Add an hbase shell command to clear deadserver list in ServerManager
Signed-off-by: tedyu <yuzhihong@gmail.com>
2017-09-12 09:25:57 -07:00
Umesh Agashe a11a17825a HBASE-13271 Added test for batch operations with validation errors. Updated Javadoc for batch methods.
Javadoc for following methods are updated:
* Table.put(List<Put> puts)
* Table.delete(List<Delete> deletes)

Added @apiNote for delete regarding input list will not be modied in version 3.0.0

Signed-off-by: Michael Stack <stack@apache.org>
2017-09-11 20:06:10 -07:00
Yun Zhao 7af0c44af3 HBASE-18662 The default values for many configuration items in the code are not consistent with hbase-default.xml
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-09-11 21:12:11 +08:00
Chia-Ping Tsai 1ee4923730 Revert "HBASE-18662 The default values for many configuration items in the code are not consistent with hbase-default.xml"
need more checks
This reverts commit 89f978beb8.
2017-09-09 22:55:33 +08:00
Yun Zhao 89f978beb8 HBASE-18662 The default values for many configuration items in the code are not consistent with hbase-default.xml
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-09-09 18:11:14 +08:00
Chia-Ping Tsai 26b009f1d1 HBASE-18783 Declare the builder of ClusterStatus as IA.Private, and remove the Writables from ClusterStatus 2017-09-09 15:55:21 +08:00
Reid Chan 6970c1e9eb HBASE-18621 Refactor ClusterOptions before applying to code base
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-09-09 03:38:42 +08:00