Commit Graph

1247 Commits

Author SHA1 Message Date
Mike Drob 9ee8e2714d HBASE-19160 expose CellComparator as IA.Public 2017-11-06 10:08:14 -06:00
Michael Stack f812218ffe
HBASE-19179 Remove hbase-prefix-tree 2017-11-04 10:11:13 -07:00
Sean Busbey e79a007dd9 HBASE-18784 if available, query underlying outputstream capabilities where we need hflush/hsync.
* pull things that don't rely on HDFS in hbase-server/FSUtils into hbase-common/CommonFSUtils
* refactor setStoragePolicy so that it can move into hbase-common/CommonFSUtils, as a side effect update it for Hadoop 2.8,3.0+
* refactor WALProcedureStore so that it handles its own FS interactions
* add a reflection-based lookup of stream capabilities
* call said lookup in places where we make WALs to make sure hflush/hsync is available.
* javadoc / checkstyle cleanup on changes as flagged by yetus

Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-11-02 21:29:20 -05:00
Apekshit Sharma 71a55dcd64 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:21:38 -07:00
eshcar 17e7aff37e HBASE-16417: In-memory MemStore Policy for Flattening and Compactions 2017-11-01 09:26:00 +02:00
Michael Stack d7cf88947c HBASE-19135 TestWeakObjectPool time out 2017-10-31 16:17:31 -07:00
Andrew Purtell 98c01bd4cf HBASE-19129 TestChoreService is flaky
Increase the delta to compensate for environmental variance.
2017-10-31 00:08:40 +00:00
Michael Stack bfaacfdba3
HBASE-18995 Move methods that are for internal usage from CellUtil to Private util class (Ramkrishna Vasudevan); ADDENDUM add file I forgot to add 2017-10-27 20:34:59 -07:00
Michael Stack f6c2490b82
HBASE-18995 Move methods that are for internal usage from CellUtil to Private util class (Ramkrishna Vasudevan) 2017-10-27 17:48:55 -07:00
Ramkrishna a899659b16 HBASE-19090 Add config 'hbase.systemtables.compacting.memstore.type' to
hbase-default.xml
2017-10-26 12:42:25 +05:30
Apekshit Sharma dd70cc3081 HBASE-19073 Cleanup CoordinatedStateManager
- Merged BaseCSM class into CSM interface
- Removed config hbase.coordinated.state.manager.class
- Since state manager is not pluggable anymore, we don't need start/stop/initialize to setup unknown classes. Our internal ZkCSM now requires Server in constructor itself. Makes the dependency clearer too.
- Removed CSM from HRegionServer and HMaster constructor. Although it's a step back from dependency injection, but it's more consistent with our current (not good)  pattern where we initialize everything in the ctor itself.

Change-Id: Ifca06bb354adec5b11ea1bad4707e014410491fc
2017-10-24 19:56:04 -07:00
Apekshit Sharma 3969b853b2 HBASE-19053 Split out o.a.h.h.http from hbase-server into a separate module
Change-Id: Ie3a688b789104df7feaf34ac9fb326a79d6a3960
2017-10-23 22:52:24 -07:00
Xiang Li 2ee8690b47 HBASE-18824 Add meaningful comment to HConstants.LATEST_TIMESTAMP to explain why it is MAX_VALUE
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-10-22 04:47:00 +08:00
Ramkrishna 70f4c5da47 HBSE-18945 Make a IA.LimitedPrivate interface for CellComparator (Ram) 2017-10-17 23:17:07 +05:30
Chia-Ping Tsai 5d9b7a978c HBASE-18966 Use non-sync TimeRangeTracker as a replacement for TimeRange in ImmutableSegment 2017-10-14 23:09:58 +08:00
Peter Somogyi 023d4f1ae8
HBASE-18108 Procedure WALs are archived but not cleaned; fix
The archived Procedure WALs are moved to <hbase_root>/oldWALs/masterProcedureWALs
directory. TimeToLiveProcedureWALCleaner class was added which
regularly cleans the Procedure WAL files from there.

The TimeToLiveProcedureWALCleaner is now added to
hbase.master.logcleaner.plugins to clean the 2 WALs in one run.

A new config parameter is added hbase.master.procedurewalcleaner.ttl
which specifies how long a Procedure WAL should stay in the
archive directory.

Signed-off-by: Michael Stack <stack@apache.org>
2017-10-11 14:30:16 -07:00
zhangduo 98d1637bcd HBASE-18878 Use Optional in return types.
These functions have been changed to return Optional<T> instead of T, where T = old return type.
- ObserverContext#getCaller
- RpcCallContext#getRequestUser
- RpcCallContext#getRequestUserName
- RpcServer#getCurrentCall
- RpcServer#getRequestUser
- RpcServer#getRequestUserName
- RpcServer#getRemoteAddress
- ServerCall#getRequestUser

Change-Id: Ib7b4e6be637283755f55755dd4c5124729f7052e
Signed-off-by: Apekshit Sharma <appy@apache.org>
2017-10-04 15:55:18 -07:00
Chia-Ping Tsai 11aa6742f0 HBASE-18927 Add the DataType which is subset of KeyValue#Type to CellBuilder for building cell 2017-10-04 23:45:43 +08:00
Ramkrishna 0a24178d06 HBASE-18649 Deprecate KV Usage in MR to move to Cells in 3.0 (ram) 2017-10-04 16:00:28 +05:30
Chia-Ping Tsai 9f1bfbeaab HBASE-18753 Introduce the unsynchronized TimeRangeTracker 2017-10-01 21:45:03 +08:00
Andy Yang afce850cfd HBASE-13844 Move static helper methods from KeyValue into CellUtils
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-09-29 11:50:23 +08:00
Chia-Ping Tsai fc13cf7d78 HBASE-18835 The return type of ExtendedCell#deepClone should be ExtendedCell rather than Cell 2017-09-18 22:31:32 +08:00
zhangduo 4341c3f554 HBASE-14004 [Replication] Inconsistency between Memstore and WAL may result in data in remote cluster that is not in the origin 2017-09-15 19:22:00 +08:00
Sean Busbey 4b124913f0 HBASE-17823 Migrate to Apache Yetus Audience Annotations
Signed-off-by: Michael Stack <stack@apache.org>
Signed-off-by: Misty Stanley-Jones <misty@apache.org>
2017-09-12 20:53:30 -05:00
Ramkrishna bebb2a3a45 HBASE-18795 - Expose KeyValue.getBuffer() for tests alone (Ram) 2017-09-12 15:23:21 +05:30
Peter Somogyi cdc84fe818 HBASE-10240 Remove 0.94->0.96 migration code
Change-Id: I70cdbd1f1159ca923dc79221601e6190db2b4de1

Signed-off-by: Michael Stack <stack@apache.org>
2017-09-11 12:07:46 -07:00
Yun Zhao 90c15bae8d 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:11:58 +08:00
Chia-Ping Tsai 2359ef518a 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 6035035707.
2017-09-09 22:54:38 +08:00
Yun Zhao 6035035707 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:14:34 +08:00
Chia-Ping Tsai 78d9b7ffad HBASE-18750 Cleanup the docs saying "HTable use write buffer" 2017-09-09 14:11:23 +08:00
Balazs Meszaros 359fed7b4b HBASE-18106 Redo ProcedureInfo and LockInfo
Main changes:
- ProcedureInfo and LockInfo were removed, we use JSON instead of them
- Procedure and LockedResource are their server side equivalent
- Procedure protobuf state_data became obsolate, it is only kept for
reading previously written WAL
- Procedure protobuf contains a state_message field, which stores the internal
state messages (Any type instead of bytes)
- Procedure.serializeStateData and deserializeStateData were changed slightly
- Procedures internal states are available on client side
- Procedures are displayed on web UI and in shell in the following jruby format:
  { ID => '1', PARENT_ID = '-1', PARAMETERS => [ ..extra state information.. ] }

Signed-off-by: Michael Stack <stack@apache.org>
2017-09-08 10:24:04 -07:00
Michael Stack c90602ef67 HBASE-18779 Move CompareOperator to hbase-client module 2017-09-08 10:19:10 -07:00
Michael Stack b8e0a8396f HBASE-18769 Make CompareFilter use generic CompareOperator instead of
internal enum
2017-09-08 10:06:56 -07:00
Apekshit Sharma 6752eba68f HBASE-14997 Move compareOp and Comparators out of filter to client package
Add a new generic CompareOperator enum and use it instead of the filter
CompareOp enum everywhere BUT inside CompareFilter.
2017-09-07 10:03:45 -07:00
Peter Somogyi 137b105c67 HBASE-18704 Upgrade hbase to commons-collections 4
Upgrade commons-collections:3.2.2 to commons-collections4:4.1
Add missing dependency for hbase-procedure, hbase-thrift
Replace CircularFifoBuffer with CircularFifoQueue in WALProcedureStore and TaskMonitor

Signed-off-by: Sean Busbey <busbey@apache.org>
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-09-07 10:30:01 -05:00
Michael Stack 3a9dc8fbd5 HBASE-18768 Move TestTableName to hbase-common from hbase-server
Signed-off-by: Michael Stack <stack@apache.org>
2017-09-06 18:11:32 -07:00
Umesh Agashe 5d60123f3e HBASE-18674 upgrading to commons-lang3
Signed-off-by: Michael Stack <stack@apache.org>
2017-09-05 09:46:10 -07:00
tedyu 83175fdf83 HBASE-18743 HFiles in use by a table which has the same name and namespace with a default table cloned from snapshot may be deleted when that snapshot and default table are deleted (wenbang) 2017-09-03 07:10:19 -07:00
Michael Stack e1eb53296d HBASE-18739 Make all TimeRange Constructors InterfaceAudience Private 2017-09-01 12:36:31 -07:00
Michael Stack fb537fe736 HBASE-18723 [pom cleanup] Do a pass with dependency:analyze; remove unused and explicity list the dependencies we exploit
Do a pass with dependency:analyze; remove unused and
explicity list the dependencies we exploit.
Remove the parent dependencies set which had junit, mockito,
log4j, and findbugs annotations (had to put junit back
temporarily in subsequent version of this patch TODO). Listing in
parent set meant these libs were dependencies for all modules
which in practice was not the case. Edited all modules so
those that need any from this parent set now do explicit listing.

Ran the dependency:analyze over the project. Acted on most
suggested removals and requests for explicit listing. Some
grey areas remain around transitives that come in with
hadoop -needs better excludes, another project- and that
the dependency:analyze tool is not always accurate in its
reporting.
2017-08-31 12:41:31 -07:00
Chia-Ping Tsai 8a800c3f19 HBASE-18721 Cleanup unused configs and private declaration 2017-08-31 23:40:37 +08:00
Guangxu Cheng 53c9516834 HBASE-18461 Build broken If the username contains a backslash
Signed-off-by: tedyu <yuzhihong@gmail.com>
2017-08-30 19:06:11 -07:00
Sean Mackrory b3c5c5ed4e HBASE-15947 Classes used only for tests included in main code base
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-08-30 10:46:28 +08:00
Michael Stack 47a5614edd Revert "HBASE-18674 upgrading to commons-lang3"
Premature push

This reverts commit 5dacc85122.
2017-08-28 16:41:34 -07:00
Umesh Agashe 5dacc85122 HBASE-18674 upgrading to commons-lang3 2017-08-28 15:57:12 -07:00
Michael Stack a2b110e0fa HBASE-18692 [compat 1-2] ByteBufferUtils.copyFromBufferToBuffer goes from void to int 2017-08-28 10:00:31 -07:00
Chia-Ping Tsai d63a287bfd HBASE-18519 Use builder pattern to create cell 2017-08-28 14:14:49 +08:00
Mike Drob bd0b0afa61 HBASE-18656 First issues found by error-prone 2017-08-24 12:16:31 -05:00
Michael Stack 1b4e935cec HBASE-18658 Purge hokey hbase Service implementation; use (internal) Guava Service instead
Removes hbase Service. Moves the single user, ClusterSchemaServiceImpl
to use relocated internal Guava Service instead.
2017-08-24 09:19:36 -07:00
Michael Stack 3b444a066c HBASE-18224 Upgrade Jetty 2017-08-23 23:12:59 -07:00
Umesh Agashe 6b21f8881b HBASE-18575 [AMv2] Fixed and enabled TestRestartCluster#testRetainAssignmentOnRestart on master
* Fixed ServerCrashProcedure to set forceNewPlan to false for instances AssignProcedure. This enables balancer to find most suitable target server
* Fixed and enabled TestRestartCluster#testRetainAssignmentOnRestart on master
* Renamed method ServerName@isSameHostnameAndPort() to isSameAddress()

Signed-off-by: Michael Stack <stack@apache.org>
2017-08-23 10:10:56 -07:00
Mike Drob 51d458872d HBASE-12349 Add custom error-prone module 2017-08-22 16:38:17 -05:00
Chia-Ping Tsai 56f9e1a60a HBASE-18471 The DeleteFamily cell is skipped when StoreScanner seeks to next column 2017-08-19 02:15:12 +08:00
Mike Drob 0b26ccdaa1 HBASE-18303 Clean up @Parameter boilerplate 2017-08-14 14:23:24 -05:00
dongtao.zhang 5507150a16 HBASE-18262 name of parameter quote need update
Signed-off-by: Michael Stack <stack@apache.org>
2017-08-10 15:01:37 -07:00
Michael Stack b65f119c78 Revert "name of parameter quote need update"
This reverts commit 14e3471f34.
2017-08-10 14:59:45 -07:00
dongtao.zhang 14e3471f34 name of parameter quote need update
Signed-off-by: Michael Stack <stack@apache.org>
2017-08-10 14:58:11 -07:00
Josh Elser 5cd7f630c2 HBASE-18023 Update row threshold warning from 1k to 5k (addendum) 2017-07-25 18:27:53 -04:00
rgidwani ec3cb19664 HBASE-15816 Provide client with ability to set priority on Operations
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2017-07-21 17:12:16 -07:00
Xiang Li 31c3edaa29 HBASE-18389 Remove byte[] from formal parameter of sizeOf() of ClassSize, ClassSize.MemoryLayout and ClassSize.UnsafeLayout
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-07-22 02:12:59 +08:00
Michael Stack 890d92a90c HBASE-17908 Upgrade guava
Pull in guava 22.0 by using the shaded version up in new hbase-thirdparty project.

In poms, exclude guava everywhere except on hadoop-common. Do this so
we minimize transitive includes. hadoop-common is needed because hadoop
Configuration uses guava doing preconditions.

Everywhere we used guava, instead use shaded so fix a load of imports.

Stopwatch API changed as did hashing and toStringHelper which is now
in MoreObjects class. Otherwise, minimal changes to come up on 22.0
2017-07-21 15:28:08 +01:00
anoopsamjohn bc93b6610b HBASE-16993 BucketCache throw java.io.IOException: Invalid HFile block magic when configuring hbase.bucketcache.bucket.sizes. 2017-07-20 22:59:06 +05:30
Ramkrishna 0c49185c3e HBASE-17738 BucketCache startup is slow - addendum (Ram) 2017-07-20 22:38:13 +05:30
Ramkrishna d0e4a643a0 HBASE-17738 BucketCache startup is slow (Ram) 2017-07-19 21:51:11 +05:30
Chia-Ping Tsai cf636e50b9 HBASE-18365 Eliminate the findbugs warnings for hbase-common 2017-07-13 19:31:59 +08:00
Phil Yang 75d2eca8ac HBASE-17931 Assign system tables to servers with highest version 2017-07-06 17:35:54 +08:00
Michael Stack c5abb6cabb Revert "HBASE-14070 - Core HLC"
Revert a push too-early

This reverts commit 9fe94c1169.
2017-07-05 20:11:05 -07:00
Amit Patel 9fe94c1169 HBASE-14070 - Core HLC
Signed-off-by: Michael Stack <stack@apache.org>
2017-07-05 16:51:02 -07:00
anastas 8ac4308411 HBASE-18010: CellChunkMap integration into CompactingMemStore. CellChunkMap usage is currently switched off by default. New tests are included. Review comments addressed. 2017-07-05 12:35:21 +03:00
Peter Somogyi f2731fc241 HBASE-18264 Update pom plugins
Update plugins in main and subprojects
Unified versions to use variable instead of direct values

Affected plugins:
- apache-rat-plugin 0.11 -> 0.12
- asciidoctor-maven-plugin 1.5.2.1 -> 1.5.5
- asciidoctorj-pdf 1.5.0-alpha.6 -> 1.5.0-alpha.15
- build-helper-maven-plugin 1.9.1 -> 3.0.0
- buildnumber-maven-plugin 1.3 -> 1.4
- exec-maven-plugin 1.2.1/1.4.0 -> 1.6.0
- extra-enforcer-rules 1.0-beta-3 -> 1.0-beta-6
- findbugs-maven-plugin 3.0.0 -> 3.0.4
- jamon-maven-plugin 2.4.1 -> 2.4.2
- maven-bundle-plugin 2.5.3 -> 3.3.0
- maven-compiler-plugin 3.2/3.5.1 -> 3.6.1
- maven-eclipse-plugin 2.9 -> 2.10
- maven-shade-plugin 2.4.1 -> 3.0.0
- maven-surefire-plugin 2.18.1 -> 2.20
- maven-surefire-report-plugin 2.7.2 -> 2.20
- scala-maven-plugin 3.2.0 -> 3.2.2
- spotbugs 3.1.0-RC1 -> 3.1.0-RC3
- wagon-ssh 2.2 -> 2.12
- xml-maven-plugin 1.0 -> 1.0.1

- maven-assembly-plugin 2.4 -> 2.6(inherited)
- maven-dependency-plugin 2.4 -> 2.10 (inherited)
- maven-enforcer-plugin 1.3.1 -> 1.4.1 (inherited)
- maven-javadoc-plugin 2.10.3 -> 2.10.4 (inherited)
- maven-resources-plugin 2.7 (inherited)
- maven-site-plugin 3.4 -> 3.5.1 (inherited)

Change-Id: I84539f555be498dff18caed1e3eea1e1aeb2143a

Signed-off-by: Michael Stack <stack@apache.org>
2017-07-03 19:42:46 -07:00
Misty Stanley-Jones 92f74d6f1e HBASE-13866 Clarify description of hbase.coprocessor.region.classes
Signed-off-by: Michael Stack <stack@apache.org>
2017-06-30 11:08:33 -07:00
David Harju 0e8e176ebd HBASE-18023 Log multi-* requests for more than threshold number of rows
Signed-off-by: Josh Elser <elserj@apache.org>
2017-06-24 15:23:51 -04:00
tedyu 83be50c2ab HBASE-18226 Disable reverse DNS lookup at HMaster and use the hostname provided by RegionServer (Duo Xu) 2017-06-20 21:07:45 -07:00
Sean Busbey 2263190361 HBASE-16242 Manually resolve transitive Apache Avro dependency to consistently be ver 1.7.7.
Signed-off-by: Jerry He <jerryjch@apache.org>
2017-06-19 15:50:14 -05:00
Andrew Purtell 50e28d62a6 HBASE-18219 Fix typo in constant HConstants.HBASE_CLIENT_MEAT_REPLICA_SCAN_TIMEOUT 2017-06-14 16:02:38 -07:00
Michael Stack 929c9dab14 HBASE-18181 Move master branch to version 3.0.0-SNAPSHOT post creation of branch-2 2017-06-06 22:04:39 -07:00
anoopsamjohn 8bfa8aaaca HBASE-18030 Per Cell TTL tags may get duplicated with increments/Append causing tags length overflow. 2017-06-06 12:25:15 +05:30
Michael Stack 3975bbd008 HBASE-14614 Procedure v2 - Core Assignment Manager (Matteo Bertozzi) Move to a new AssignmentManager, one that describes Assignment using a State Machine built on top of ProcedureV2 facility.
This doc. keeps state on where we are at w/ the new AM:
https://docs.google.com/document/d/1eVKa7FHdeoJ1-9o8yZcOTAQbv0u0bblBlCCzVSIn69g/edit#heading=h.vfdoxqut9lqn
Includes list of tests disabled by this patch with reasons why.

Based on patches from Matteos' repository and then fix up to get it all to pass cluster
tests, filling in some missing functionality, fix of findbugs, fixing bugs, etc..
including:

    1. HBASE-14616 Procedure v2 - Replace the old AM with the new AM.
    The basis comes from Matteo's repo here:
    689227fcbf

    Patch replaces old AM with the new under subpackage master.assignment.
    Mostly just updating classes to use new AM -- import changes -- rather
    than the old. It also removes old AM and supporting classes.
    See below for more detail.

    2. HBASE-14614 Procedure v2 - Core Assignment Manager (Matteo Bertozzi)
    3622cba4e3

    Adds running of remote procedure. Adds batching of remote calls.
    Adds support for assign/unassign in procedures. Adds version info
    reporting in rpc. Adds start of an AMv2.

    3. Reporting of remote RS version is from here:
    ddb4df3964.patch

    4. And remote dispatch of procedures is from:
    186b9e7c4d

    5. The split merge patches from here are also melded in:
    9a3a95a2c2
    and d6289307a0

We add testing util for new AM and new sets of tests.

Does a bunch of fixup on logging so its possible to follow a procedures' narrative by grepping
procedure id. We spewed loads of log too on big transitions such as master fail; fixed.

Fix CatalogTracker. Make it use Procedures doing clean up of Region data on split/merge.
Without these changes, ITBLL was failing at larger scale (3-4hours 5B rows) because we were
splitting split Regions among other things (CJ would run but wasn't
taking lock on Regions so havoc).

    Added a bunch of doc. on Procedure primitives.

    Added new region-based state machine base class. Moved region-based
    state machines on to it.

    Found bugs in the way procedure locking was doing in a few of the
    region-based Procedures. Having them all have same subclass helps here.

    Added isSplittable and isMergeable to the Region Interface.

    Master would split/merge even though the Regions still had
    references. Fixed it so Master asks RegionServer if Region
    is splittable.

    Messing more w/ logging. Made all procedures log the same and report
    the state the same; helps when logging is regular.

    Rewrote TestCatalogTracker. Enabled TestMergeTableRegionProcedure.

    Added more functionality to MockMasterServices so can use it doing
    standalone testing of Procedures (made TestCatalogTracker use it
    instead of its own version).

    Add to MasterServices ability to wait on Master being up -- makes
    it so can Mock Master and start to implement standalone split testing.
    Start in on a Split region standalone test in TestAM.

    Fix bug where a Split can fail because it comes in in the middle of
    a Move (by holding lock for duration of a Move).

    Breaks CPs that were watching merge/split. These are run by Master now
    so you need to observe on Master, not on RegionServer.

    Details:

    M hbase-client/src/main/java/org/apache/hadoop/hbase/ClusterStatus.java
    Takes List of regionstates on construction rather than a Set.
    NOTE!!!!! This is a change in a public class.

    M hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
    Add utility getShortNameToLog

    M hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionImplementation.java
    M hbase-client/src/main/java/org/apache/hadoop/hbase/client/ShortCircuitMasterConnection.java
    Add support for dispatching assign, split and merge processes.

    M hbase-client/src/main/java/org/apache/hadoop/hbase/master/RegionState.java
    Purge old overlapping states: PENDING_OPEN, PENDING_CLOSE, etc.

    M hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/Procedure.java
    Lots of doc on its inner workings. Bug fixes.

    M hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
    Log and doc on workings. Bug fixes.

    A hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RemoteProcedureDispatcher.java
    Dispatch remote procedures every 150ms or 32 items -- which ever
    happens first (configurable). Runs a timeout thread. This facility is
    not on yet; will come in as part of a later fix. Currently works a
    region at a time. This class carries notion of a remote procedure and of a buffer full of these.
    "hbase.procedure.remote.dispatcher.threadpool.size" with default = 128
    "hbase.procedure.remote.dispatcher.delay.msec" with default = 150ms
    "hbase.procedure.remote.dispatcher.max.queue.size" with default = 32

    M hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java
    Add in support for merge. Remove no-longer used methods.

    M hbase-protocol-shaded/src/main/protobuf/Admin.proto b/hbase-protocol-shaded/src/main/protobuf/Admin.proto
    Add execute procedures call ExecuteProcedures.

    M hbase-protocol-shaded/src/main/protobuf/MasterProcedure.proto
    Add assign and unassign state support for procedures.

    M hbase-server/src/main/java/org/apache/hadoop/hbase/client/VersionInfoUtil.java
    Adds getting RS version out of RPC
    Examples: (1.3.4 is 0x0103004, 2.1.0 is 0x0201000)

    M hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
    Remove periodic metrics chore. This is done over in new AM now.
    Replace AM with the new. Host the procedures executor.

    M hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterMetaBootstrap.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterMetaBootstrap.java
    Have AMv2 handle assigning meta.

    M hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
    Extract version number of the server making rpc.

    A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java
    Add new assign procedure. Runs assign via Procedure Dispatch.
    There can only be one RegionTransitionProcedure per region running at the time,
    since each procedure takes a lock on the region.

    D hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignCallable.java
    D hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
    D hbase-server/src/main/java/org/apache/hadoop/hbase/master/BulkAssigner.java
    D hbase-server/src/main/java/org/apache/hadoop/hbase/master/GeneralBulkAssigner.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/GeneralBulkAssigner.java
    Remove these hacky classes that were never supposed to live longer than
    a month or so to be replaced with real assigners.

    D hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionStateStore.java
    D hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionStates.java
    D hbase-server/src/main/java/org/apache/hadoop/hbase/master/UnAssignCallable.java

    A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
    A procedure-based AM (AMv2).

    TODO
     - handle region migration
     - handle meta assignment first
     - handle sys table assignment first (e.g. acl, namespace)
     - handle table priorities
      "hbase.assignment.bootstrap.thread.pool.size"; default size is 16.
      "hbase.assignment.dispatch.wait.msec"; default wait is 150
      "hbase.assignment.dispatch.wait.queue.max.size"; wait max default is 100
      "hbase.assignment.rit.chore.interval.msec"; default is 5 * 1000;
      "hbase.assignment.maximum.attempts"; default is 10;

     A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.java
     Procedure that runs subprocedure to unassign and then assign to new location

     A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateStore.java
     Manage store of region state (in hbase:meta by default).

     A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStates.java
     In-memory state of all regions. Used by AMv2.

     A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionTransitionProcedure.java
     Base RIT procedure for Assign and Unassign.

     A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/UnassignProcedure.java
     Unassign procedure.

     A hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.java
     Run region assignement in a manner that pays attention to target server version.
     Adds "hbase.regionserver.rpc.startup.waittime"; defaults 60 seconds.
2017-05-31 17:49:11 -07:00
Andrew Purtell 564c193d61 HBASE-18118 Default storage policy if not configured cannot be "NONE" 2017-05-26 11:08:46 -07:00
Michael Stack a3c5a74487 Revert "HBASE-14614 Procedure v2 - Core Assignment Manager (Matteo Bertozzi)"
Revert a mistaken commit!!!

This reverts commit dc1065a85d.
2017-05-24 23:31:36 -07:00
Michael Stack dc1065a85d HBASE-14614 Procedure v2 - Core Assignment Manager (Matteo Bertozzi)
Move to a new AssignmentManager, one that describes Assignment using
a State Machine built on top of ProcedureV2 facility.

This doc. keeps state on where we are at w/ the new AM:
https://docs.google.com/document/d/1eVKa7FHdeoJ1-9o8yZcOTAQbv0u0bblBlCCzVSIn69g/edit#heading=h.vfdoxqut9lqn
Includes list of tests disabled by this patch with reasons why.

Based on patches from Matteos' repository and then fix up to get it all to pass cluster
tests, filling in some missing functionality, fix of findbugs, fixing bugs, etc..
including:

1. HBASE-14616 Procedure v2 - Replace the old AM with the new AM.
The basis comes from Matteo's repo here:
689227fcbf

Patch replaces old AM with the new under subpackage master.assignment.
Mostly just updating classes to use new AM -- import changes -- rather
than the old. It also removes old AM and supporting classes.
See below for more detail.

2. HBASE-14614 Procedure v2 - Core Assignment Manager (Matteo Bertozzi)
3622cba4e3

Adds running of remote procedure. Adds batching of remote calls.
Adds support for assign/unassign in procedures. Adds version info
reporting in rpc. Adds start of an AMv2.

3. Reporting of remote RS version is from here:
ddb4df3964.patch

4. And remote dispatch of procedures is from:
186b9e7c4d

5. The split merge patches from here are also melded in:
9a3a95a2c2
and d6289307a0

We add testing util for new AM and new sets of tests.

Does a bunch of fixup on logging so its possible to follow a procedures' narrative by grepping
procedure id. We spewed loads of log too on big transitions such as master fail; fixed.

Fix CatalogTracker. Make it use Procedures doing clean up of Region data on split/merge.
Without these changes, ITBLL was failing at larger scale (3-4hours 5B rows) because we were
splitting split Regions among other things (CJ would run but wasn't
taking lock on Regions so havoc).

Added a bunch of doc. on Procedure primitives.

Added new region-based state machine base class. Moved region-based
state machines on to it.

Found bugs in the way procedure locking was doing in a few of the
region-based Procedures. Having them all have same subclass helps here.

Added isSplittable and isMergeable to the Region Interface.

Master would split/merge even though the Regions still had
references. Fixed it so Master asks RegionServer if Region
is splittable.

Messing more w/ logging. Made all procedures log the same and report
the state the same; helps when logging is regular.

Rewrote TestCatalogTracker. Enabled TestMergeTableRegionProcedure.

Added more functionality to MockMasterServices so can use it doing
standalone testing of Procedures (made TestCatalogTracker use it
instead of its own version).

Add to MasterServices ability to wait on Master being up -- makes
it so can Mock Master and start to implement standalone split testing.
Start in on a Split region standalone test in TestAM.

Fix bug where a Split can fail because it comes in in the middle of
a Move (by holding lock for duration of a Move).

Breaks CPs that were watching merge/split. These are run by Master now
so you need to observe on Master, not on RegionServer.

Details:

M hbase-client/src/main/java/org/apache/hadoop/hbase/ClusterStatus.java
Takes List of regionstates on construction rather than a Set.
NOTE!!!!! This is a change in a public class.

M hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
Add utility getShortNameToLog

M hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionImplementation.java
M hbase-client/src/main/java/org/apache/hadoop/hbase/client/ShortCircuitMasterConnection.java
Add support for dispatching assign, split and merge processes.

M hbase-client/src/main/java/org/apache/hadoop/hbase/master/RegionState.java
Purge old overlapping states: PENDING_OPEN, PENDING_CLOSE, etc.

M hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/Procedure.java
Lots of doc on its inner workings. Bug fixes.

M hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
Log and doc on workings. Bug fixes.

A hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RemoteProcedureDispatcher.java
Dispatch remote procedures every 150ms or 32 items -- which ever
happens first (configurable). Runs a timeout thread. This facility is
not on yet; will come in as part of a later fix. Currently works a
region at a time. This class carries notion of a remote procedure and of a buffer full of these.
"hbase.procedure.remote.dispatcher.threadpool.size" with default = 128
"hbase.procedure.remote.dispatcher.delay.msec" with default = 150ms
"hbase.procedure.remote.dispatcher.max.queue.size" with default = 32

M hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java
Add in support for merge. Remove no-longer used methods.

M hbase-protocol-shaded/src/main/protobuf/Admin.proto b/hbase-protocol-shaded/src/main/protobuf/Admin.proto
Add execute procedures call ExecuteProcedures.

M hbase-protocol-shaded/src/main/protobuf/MasterProcedure.proto
Add assign and unassign state support for procedures.

M hbase-server/src/main/java/org/apache/hadoop/hbase/client/VersionInfoUtil.java
Adds getting RS version out of RPC
Examples: (1.3.4 is 0x0103004, 2.1.0 is 0x0201000)

M hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
Remove periodic metrics chore. This is done over in new AM now.
Replace AM with the new. Host the procedures executor.

M hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterMetaBootstrap.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterMetaBootstrap.java
Have AMv2 handle assigning meta.

M hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
Extract version number of the server making rpc.

A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java
Add new assign procedure. Runs assign via Procedure Dispatch.
There can only be one RegionTransitionProcedure per region running at the time,
since each procedure takes a lock on the region.

D hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignCallable.java
D hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
D hbase-server/src/main/java/org/apache/hadoop/hbase/master/BulkAssigner.java
D hbase-server/src/main/java/org/apache/hadoop/hbase/master/GeneralBulkAssigner.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/GeneralBulkAssigner.java
Remove these hacky classes that were never supposed to live longer than
a month or so to be replaced with real assigners.

D hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionStateStore.java
D hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionStates.java
D hbase-server/src/main/java/org/apache/hadoop/hbase/master/UnAssignCallable.java

A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
A procedure-based AM (AMv2).

TODO
 - handle region migration
 - handle meta assignment first
 - handle sys table assignment first (e.g. acl, namespace)
 - handle table priorities
  "hbase.assignment.bootstrap.thread.pool.size"; default size is 16.
  "hbase.assignment.dispatch.wait.msec"; default wait is 150
  "hbase.assignment.dispatch.wait.queue.max.size"; wait max default is 100
  "hbase.assignment.rit.chore.interval.msec"; default is 5 * 1000;
  "hbase.assignment.maximum.attempts"; default is 10;

 A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.java
 Procedure that runs subprocedure to unassign and then assign to new location

 A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateStore.java
 Manage store of region state (in hbase:meta by default).

 A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStates.java
 In-memory state of all regions. Used by AMv2.

 A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionTransitionProcedure.java
 Base RIT procedure for Assign and Unassign.

 A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/UnassignProcedure.java
 Unassign procedure.

 A hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.java
 Run region assignement in a manner that pays attention to target server version.
 Adds "hbase.regionserver.rpc.startup.waittime"; defaults 60 seconds.
2017-05-24 20:47:25 -07:00
Yu Li d047cc9ecc HBASE-18085 Prevent parallel purge in ObjectPool 2017-05-24 15:42:39 +08:00
Josh Elser 56cbc68b0d HBASE-18075 (addendum) Correct javadoc for valid namespaces 2017-05-22 13:28:57 -04:00
Josh Elser 709f5a1980 HBASE-18075 Support non-latin table names and namespaces 2017-05-21 22:24:12 -04:00
tedyu 958cd2d1b7 HBASE-18035 Meta replica does not give any primaryOperationTimeout to primary meta region (huaxiang sun) 2017-05-18 15:56:41 -07:00
tedyu d137991ccc HBASE-18058 Zookeeper retry sleep time should have an upper limit (Allan Yang) 2017-05-18 15:50:59 -07:00
Andrew Purtell 6b60ba8ade HBASE-18043 Institute a hard limit for individual cell size that cannot be overridden by clients 2017-05-15 18:03:33 -07:00
zhangduo 341223d86c HBASE-18012 Move RpcServer.Connection to a separated file 2017-05-15 18:07:38 +08:00
huzheng 4bc0eb31c3 HBASE-17865: Implement async listSnapshot/deleteSnapshot methods.
Signed-off-by: Guanghao Zhang <zghao@apache.org>
2017-04-28 09:09:13 +08:00
Vikas Vishwakarma b81e00f5ea HBASE-17877 Improve HBase's byte[] comparator.
Signed-off-by: Lars Hofhansl <larsh@apache.org>
2017-04-27 13:21:07 -07:00
Balazs Meszaros 2557506415 HBASE-15143 Procedure v2 - Web UI displaying queues
Signed-off-by: Michael Stack <stack@apache.org>
2017-04-25 09:39:28 -07:00
Colm O hEigeartaigh a3b6f4addc HBASE-17944 - Removed unused JDK version parsing from ClassSize.
Signed-off-by: Sean Busbey <busbey@apache.org>
2017-04-21 09:16:23 -05:00
huzheng d39f40e787 HBASE-17864: Implement async snapshot/cloneSnapshot/restoreSnapshot methods
Signed-off-by: Guanghao Zhang <zghao@apache.org>
2017-04-21 18:57:43 +08:00
Ramkrishna 972e8c8c29 HBASE-16438 Create a cell type so that chunk id is embedded in it (Ram) 2017-04-19 15:28:03 +05:30
Ramkrishna ecdfb82326 Revert "HBASE-16438 Create a cell type so that chunk id is embedded in it (Ram)"
This reverts commit c2c2178b2e.
2017-04-18 00:00:12 +05:30
Ramkrishna c2c2178b2e HBASE-16438 Create a cell type so that chunk id is embedded in it (Ram) 2017-04-17 09:28:24 +05:30
Umesh Agashe c8461456d0 HBASE-17888: Added generic methods for updating metrics on submit and finish of a procedure execution
Signed-off-by: Michael Stack <stack@apache.org>
2017-04-14 11:51:08 -07:00
CHIA-PING TSAI 3aadc675b0 HBASE-17896 The FIXED_OVERHEAD of Segment is incorrect 2017-04-12 11:26:43 +08:00
CHIA-PING TSAI df96d328fb HBASE-17872 The MSLABImpl generates the invaild cells when unsafe is not availble 2017-04-09 23:28:34 +08:00
Chia-Ping Tsai 18c5ecf6ed HBASE-17881 Remove the ByteBufferCellImpl 2017-04-07 21:14:19 +08:00
Chia-Ping Tsai 1a701ce444 HBASE-17836 CellUtil#estimatedSerializedSizeOf is slow when input is ByteBufferCell 2017-04-07 09:30:15 +08:00
Jerry He af604f0c0c HBASE-17869 UnsafeAvailChecker wrongly returns false on ppc 2017-04-06 16:04:47 -07:00
Umesh Agashe 9109803891 HBASE-17863: Procedure V2: Some cleanup around Procedure.isFinished() and procedure executor
Signed-off-by: Michael Stack <stack@apache.org>
2017-04-06 12:05:23 -07:00
zhangduo a66d491892 HBASE-17857 Remove IS annotations from IA.Public classes 2017-04-05 15:34:06 +08:00
CHIA-PING TSAI 73e1bcd335 HBASE-17859 ByteBufferUtils#compareTo is wrong 2017-04-01 13:42:36 +08:00
Yi Liang a9682ca5dc HBASE-17821: The CompoundConfiguration#toString is wrong
Signed-off-by: CHIA-PING TSAI <chia7712@gmail.com>
2017-03-31 15:05:44 +08:00
Michael Stack d033cbb715 HBASE-17844 Subset of HBASE-14614, Procedure v2: Core Assignment Manager (non-critical changes)
Minor changes related to HBASE-14614. Added comments. Changed logging.
Added toString formatting. Removed imports. Removed unused code.
2017-03-30 10:31:04 -07:00
Chia-Ping Tsai 6bd3109062 HBASE-17623 Reuse the bytes array when building the hfile block 2017-03-25 23:49:32 +08:00
CHIA-PING TSAI fe3c32ebd5 HBASE-17809 cleanup unused class 2017-03-23 14:15:28 +08:00
CHIA-PING TSAI 7bb0624bab HBASE-17805 We should remove BoundedByteBufferPool because it is replaced by ByteBufferPool 2017-03-21 09:38:02 +08:00
Jan Hentschel 55d6dcaf87 HBASE-16084 Cleaned up the stale references in Javadoc
Signed-off-by: tedyu <yuzhihong@gmail.com>
2017-03-20 10:55:36 -07:00
tedyu 4088f822a4 HBASE-17806 TestRSGroups#testMoveServersAndTables is flaky in master branch (Guangxu Cheng) 2017-03-20 09:26:34 -07:00
tedyu 75d0f49dcd HBASE-14123 HBase Backup/Restore Phase 2 (Vladimir Rodionov) 2017-03-18 03:04:19 -07:00
Andrew Purtell 14fb57cab2 HBASE-17780 BoundedByteBufferPool "At capacity" messages are not actionable 2017-03-14 13:23:11 -07:00
Yu Li 44b255889c HBASE-17747 Support both weak and soft object pool 2017-03-14 11:07:52 +08:00
anoopsamjohn ab5970773a HBASE-17338 Treat Cell data size under global memstore heap size only when that Cell can not be copied to MSLAB. 2017-03-10 11:12:59 +05:30
Jan Hentschel b53f354763 HBASE-17532 Replaced explicit type with diamond operator
Signed-off-by: Michael Stack <stack@apache.org>
2017-03-07 11:22:51 -08:00
Jerry He 6bb5938226 HBASE-14375 Define public API for spark integration module 2017-03-04 14:10:34 -08:00
Jerry He a95570cfa0 Revert "Define public API for spark integration module" for missing JIRA number.
This reverts commit 58b6d9759e.
2017-03-04 14:08:38 -08:00
Jerry He 58b6d9759e Define public API for spark integration module 2017-03-04 12:53:21 -08:00
Andrew Purtell 404a2883f2 HBASE-17722 Metrics subsystem stop/start messages add a lot of useless bulk to operational logging 2017-03-03 12:40:06 -08:00
Apekshit Sharma ce64e7eb6e HBASE-17654 RSGroup refactoring.
Changes contain:
- Making rsGroupInfoManager non-static in RSGroupAdminEndpoint
- Encapsulate RSGroupAdminService into an internal class in RSGroupAdminEndpoint (on need of inheritence).
- Change two internal classes in RSGroupAdminServer to non-static (so outer classes' variables can be shared).
- Rename RSGroupSerDe to RSGroupProtobufUtil('ProtobufUtil' is what we use in other places). Moved 2 functions to RSGroupManagerImpl because they are only used there.
- Javadoc comments
- Improving variable names
- Maybe other misc refactoring

Change-Id: I09f0f5aa413150390c91795b8a8fd5e6cdd6c416
2017-02-25 22:12:03 -08:00
Ashu Pachauri e7d16db2ac HBASE-17057 Minor compactions should also drop page cache (Ashu Pachauri)
Signed-off-by: Gary Helmling <garyh@apache.org>
2017-02-24 14:42:10 -08:00
anoopsamjohn ff045cab84 HBASE-17647 OffheapKeyValue#heapSize() implementation is wrong. 2017-02-23 11:29:10 +05:30
zhangduo f037f230fd HBASE-17608 Add suspend support for RawScanResultConsumer 2017-02-22 20:32:03 +08:00
anoopsamjohn 7763dd6688 HBASE-17644 Always create ByteBufferCells after copying to MSLAB. 2017-02-17 17:50:41 +05:30
Michael Stack ae840c0ccd HBASE-17656 Move new Address class from util to net package 2017-02-16 12:17:50 -08:00
Michael Stack e019961150 HBASE-17624 Address late review of HBASE-6721, rsgroups feature
Addresses review comments by Sean Busbey and Appy that happened
to come in long after the commit of HBASE-6721, the original
rsgroup issue.

Also includes subsequent accommodation of Duo Zhang review.

Adds a new type to hold hostname and port. It is called
Address. It is a facade over Guava's HostAndPort. Replace
all instances of HostAndPort with Address. In particular,
those places where HostAndPort was part of the rsgroup
public API.

Fix licenses. Add audience annotations.

Cleanup and note concurrency expectation on a few core classes.
In particular, all access on RSGroupInfoManager is made
synchronized.

M hbase-client/src/main/java/org/apache/hadoop/hbase/ServerName.java
 Host the hostname and port in an instance of the new type Address.
 Add a bunch of deprecation of exotic string parses that should never
 have been public.

M hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.java
 Make this an Interface rather than abstract class. Creation was a
 static internal method that only chose one type.... Let it be free
 as a true Interface instead.
2017-02-14 09:29:17 -08:00
Ramkrishna 6c5eec249c HBASE-17484 Add non cached version of OffheapKV for write path (Ram) 2017-02-07 21:27:33 +05:30
Michael Stack 9ec0ec4922 HBASE-17350 Fixup of regionserver group-based assignment
Renamed move_rsgroup_servers as move_servers_rsgroup
Renamed move_rsgroup_tables as move_tables_rsgroup

Minor changes to help text in rsgroup commands making them all same.
Made LOG from RSGroupAdminServer all talk of 'rsgroup' rather than
'group' to be consistent.

Fix for table.jsp where it would fail to display regions because no
type for the protobuf record specified.

Fix it so that move of an offline server to 'default' rsgroup is like
moving the reference to the server to trash (keeps the 'default' group
consistently 'dynamic' regards its server-list).

Fixed another issue where we were stuck in a loop because regions
were in FAILED_OPEN state because no server to assign too so we'd
never recover (a vagary of the current state of Master assignement
but no less a possibility in real world deploys).

Make it so servers are sorted when we list them; its what operator
would expect.
2017-02-06 13:09:57 -08:00
Jerry He bc168b419d HBASE-17581 mvn clean test -PskipXXXTests does not work properly for some modules (Yi Liang) 2017-02-02 11:05:17 -08:00
Zach York ae21797305 HBASE-17437 Support specifying a WAL directory outside of the root directory (Yishan Yang and Zach York)
Signed-off-by: Enis Soztutar <enis@apache.org>
2017-01-31 11:43:33 -08:00
Michael Stack ffe7dac53d Revert "Revert "HBASE-12894 Upgrade to Jetty 9 for REST / Info Server / Thrift Http Server""
This reverts commit 0ac5d4a717.
This is a revert of a revert; i.e. a reapplication!
Fixes for breakage that comes in with this patch is in a follow-on.
2017-01-30 11:54:54 -08:00
Michael Stack fb2c89b1b3 HBASE-16785 We are not running all tests
M TestStressWALProcedureStore.java
Disable test that now runs that fails because of difference in pb3.1.0.

Signed-off-by: Michael Stack <stack@apache.org>
2017-01-26 21:49:18 -08:00
Michael Stack 1ee8776273 HBASE-16785 We are not running all tests Do nothing patch just to get baseline of how many tests we run 2017-01-26 12:21:00 -08:00
Michael Stack 0ac5d4a717 Revert "HBASE-12894 Upgrade to Jetty 9 for REST / Info Server / Thrift Http Server"
This reverts commit 59fd6eb7f6.
2017-01-25 22:55:18 -08:00
Enis Soztutar c64a1d1994 HBASE-9774 HBase native metrics and metric collection for coprocessors 2017-01-25 11:47:35 -08:00
Yang Guang 59fd6eb7f6 HBASE-12894 Upgrade to Jetty 9 for REST / Info Server / Thrift Http Server 2017-01-24 23:37:12 -08:00
Jan Hentschel 55a1aa1e73 HBASE-10699 Set capacity on ArrayList where possible and use isEmpty instead of size() == 0
Signed-off-by: Michael Stack <stack@apache.org>
2017-01-20 22:58:20 -08:00
Ramkrishna 406f66a4e8 HBASE-17483 Add equals/hashcode for OffheapKeyValue (Ram) 2017-01-18 17:00:57 +05:30
zhangduo 4ab95ebbce HBASE-17372 Make AsyncTable thread safe 2017-01-17 14:33:28 +08:00
Yu Li 36eeb2c569 HBASE-14061 Support CF-level Storage Policy (addendum)
Addendum to resolve compatible issue with Hadoop 2.8.0+ / 3.0.0-alpha1+, meantime added
a util method in ReflectionUtils for invoking method with reflection
2017-01-11 10:14:55 +08:00
Michael Stack dd1ae37148 HBASE-12148 Remove TimeRangeTracker as point of contention when many threads writing a Store (Huaxiang Sun) 2017-01-09 13:24:53 -08:00
rahul gidwani 0f6c79eb12 HBASE-16710 Add ZStandard Codec to Compression.java
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2017-01-05 10:46:55 -08:00
Jan Hentschel 7572e96e3a HBASE-17385 Change usage documentation from bin/hbase to hbase in various tools
Signed-off-by: Enis Soztutar <enis@apache.org>
2016-12-29 15:20:43 -08:00
zhangduo 05b1d918b0 HBASE-17320 Add inclusive/exclusive support for startRow and endRow of scan 2016-12-29 09:43:31 +08:00
Phil Yang 8fb9a91d44 HBASE-17314 Limit total buffered size for all replication sources 2016-12-23 11:48:06 +08:00
Michael Stack a1d2ff4646 Revert "HBASE-17314 Limit total buffered size for all replication sources"
This reverts commit 3826e63967.
2016-12-21 11:17:28 -08:00
Phil Yang 3826e63967 HBASE-17314 Limit total buffered size for all replication sources 2016-12-21 13:16:17 +08:00
binlijin b7bde350a1 HBASE-17332 Replace HashMap to Array for DataBlockEncoding.idToEncoding 2016-12-20 09:32:28 +08:00
tedyu 665fe3eef1 HBASE-17331 Avoid busy waiting in ThrottledInputStream (ChiaPing Tsai) 2016-12-18 08:15:15 -08:00
Thiruvel Thirumoolan c1293cc91e HBASE-16941: FavoredNodes - Split/Merge code paths
Signed-off-by: Francis Liu <toffer@apache.org>
2016-12-07 16:38:48 -08:00
tedyu 1fad920321 HBASE-17252 Wrong arguments for ValueAndTagRewriteCell in CellUtil 2016-12-05 07:41:24 -08:00
Xiang Li 004f0abb46 HBASE-14882: Provide a Put API that adds the provided family, qualifier, value without copying
Signed-off-by: anoopsamjohn <anoopsamjohn@gmail.com>
2016-12-05 13:16:46 +05:30
anoopsamjohn 4b3ffffa09 HBASE-17161 MOB : Make ref cell creation more efficient. 2016-12-02 17:30:34 +05:30
Jonathan M Hsieh eeaea4aea3 HBASE-17224 Fix lots of spelling errors in HBase logging and exception messages (Grant Sohn) 2016-12-01 08:57:16 -08:00
zhangduo 540ede376b HBASE-16648 [JDK8] Use computeIfAbsent instead of get and putIfAbsent 2016-12-01 21:17:55 +08:00
John Leach 37d7b57128 HBASE-17216 Fields that can safetly be made static 2016-11-30 22:03:35 -08:00
Yu Li 1f3c6f4c07 HBASE-17114 Add an option to set special retry pause when encountering CallQueueTooBigException 2016-12-01 13:38:13 +08:00
Guanghao Zhang ea912478e2 HBASE-17178 Add region balance throttling
Signed-off-by: Phil Yang <yangzhe1991@apache.org>
2016-11-30 18:03:15 +08:00
Ramkrishna 7c43a23c07 HBASE-17012 Handle Offheap cells in CompressedKvEncoder (Ram) 2016-11-29 22:27:45 +05:30
Xiang Li 346e904a21 HBASE-17086: Add comments to explain why Cell#getTagsLength() returns an int, rather than a short
Signed-off-by: anoopsamjohn <anoopsamjohn@gmail.com>
2016-11-29 12:51:57 +05:30
anoopsamjohn bbb81a7ac3 HBASE-17183 Handle ByteBufferCell while making TagRewriteCell. 2016-11-28 16:47:25 +05:30
anoopsamjohn 030054bcce HBASE-17162 Avoid unconditional call to getXXXArray() in write path. 2016-11-26 12:49:01 +05:30
anoopsamjohn 3f7f1c1353 HBASE-17169 Remove Cell variants with ShareableMemory. 2016-11-26 12:20:06 +05:30
anoopsamjohn 86e17858f7 HBASE-15786 Create DBB backed MSLAB pool. 2016-11-24 20:47:41 +05:30
Jingcheng Du 92b494f117 HBASE-17157 Increase the default mergeable threshold for mob compaction 2016-11-22 17:39:10 +08:00
Jan Hentschel 3e9d1a19e2 HBASE-17129 Removed public from methods in DataType interface
Signed-off-by: Sean Busbey <busbey@apache.org>
2016-11-21 14:34:43 -06:00
anoopsamjohn 549c8d835a HBASE-17139 Remove sweep tool related configs from hbase-default.xml. 2016-11-21 15:54:31 +05:30
anoopsamjohn af4e4b6450 HBASE-17126 Expose KeyValue#checkParameters() and checkForTagsLength() to be used by other Cell implementations. (Xiang Li) 2016-11-19 21:13:22 +05:30
anoopsamjohn c3685760f0 HBASE-15788 Use Offheap ByteBuffers from BufferPool to read RPC requests. 2016-11-14 23:05:05 +05:30
Michael Stack 0998af01df Revert "Revert "HBASE-16983 TestMultiTableSnapshotInputFormat failing with Unable to create region directory: /tmp/... (Addendum by Guanghao Zhang)""
This is a revert of a revert, i.e. puts back the change only I added
HBaseCommonTestingUtility#getRandomDir from branch-1 too since
missing in master branch.

This reverts commit 9afcb4366d.
2016-11-08 12:55:48 -08:00
Apekshit Sharma 52241c90e4 HBASE-16982 Better integrate Apache CLI in AbstractHBaseTool.
- processOldArgs() in AbstractHBaseTool will make it possible to change existing tools to use Apache CLI in a backward compatible manner.
- Changes ExportSnapshot tool as a proof-of-concept
- Update version of Apache CLI from 1.2 to 1.3.1

Change-Id: I4bb2e7da4f2ed0e12e28621ab16459309fa36d03
2016-11-08 12:21:29 -08:00
tedyu 76814e8451 HBASE-17010 Serial replication should handle daughter regions being assigned to another RS (Phil Yang) 2016-11-08 06:25:50 -08:00
Lars Hofhansl c12c6ffaec HBASE-16765 Amend: Make SteppingSplitPolicy the default. 2016-11-01 13:34:07 -07:00
zhangduo 6cf9333e97 HBASE-16945 Implement AsyncRegionLocator 2016-11-01 10:18:55 +08:00
anoopsamjohn ba6d952324 HBASE-16747 Track memstore data size and heap overhead separately. 2016-10-30 12:20:46 +05:30
zhangduo 6127753b65 HBASE-16891 Try copying to the Netty ByteBuf directly from the WALEdit 2016-10-29 23:30:52 +08:00
Ramkrishna 1eae9aeeac HBASE-16783 Use ByteBufferPool for the header and message during Rpc
response (Ram)
2016-10-26 14:33:49 +05:30
Ramkrishna 9875c699af HBASE-16880 Correct the javadoc/behaviour of the APIs in ByteBufferUtils
(Ram)
2016-10-25 10:52:57 +05:30
Ramkrishna 3584537b07 HBASE-16463 Improve transparent table/CF encryption with Commons Crypto
(Dapeng Sun)
2016-10-24 16:22:30 +05:30
Ramkrishna 0ae211eb39 HBASE-16414 Improve performance for RPC encryption with Apache Common
Crypto (Colin Ma)
2016-10-21 16:02:39 +05:30
Ramkrishna 1e3d8c8226 HBASE-16792 Reuse KeyValue.KeyOnlyKeyValue in
BufferedDataBlockEncoder.SeekerState (Binlijin)
2016-10-17 12:26:36 +05:30
Ramkrishna bda5fd5a11 HBASE-16792 - reverting to change commit message 2016-10-17 12:25:13 +05:30
Matteo Bertozzi 62c84115ec HBASE-16839 Procedure v2 - Move all protobuf handling to ProcedureUtil 2016-10-14 11:32:28 -07:00
zhangduo 3fe7508295 HBASE-15921 Add first AsyncTable impl and create TableImpl based on it 2016-10-14 22:52:52 +08:00
Ramkrishna 4127fd2a7c iHBASE-16792 Reuse KeyValue.KeyOnlyKeyValue in
BufferedDataBlockEncoder.SeekerState (Binlijin)
2016-10-14 17:52:24 +05:30
Ramkrishna 193e0d6024 revert HBASE-16792 due to test failures 2016-10-13 14:32:02 +05:30
Ramkrishna f11aa4542f HBASE-16792 Reuse KeyValue.KeyOnlyKeyValue in
BufferedDataBlockEncoder.SeekerState (Binlijin)
2016-10-13 10:11:27 +05:30
Ramkrishna b76b75142d HBASE-16784 Make use of ExtendedCell#write(OutputStream os) for the
default HFileWriter#append() (Ram)
2016-10-12 10:40:10 +05:30
anoopsamjohn f77ff9f96f HBASE-16809 Save one cell length calculation in HeapMemStoreLAB#copyCellInto. (binlijin) 2016-10-12 09:57:23 +05:30
Gary Helmling 7b0acc292e HBASE-16146 Remove thread local usage in Counter 2016-10-11 14:29:56 -07:00
anoopsamjohn 912ed17286 HBASE-15721 Optimization in cloning cells into MSLAB. 2016-10-06 14:48:03 +05:30
Ramkrishna 58e843dae2 HBASE-16372 References to previous cell in read path should be avoided
(Ram)
2016-10-06 14:19:12 +05:30
anoopsamjohn 6a9b57b395 HBASE-16760 Deprecate ByteString related methods in Bytes.java. 2016-10-05 11:19:37 +05:30
tedyu b952e64751 HBASE-15560 TinyLFU-based BlockCache - revert pending performance verification 2016-10-04 08:37:29 -07:00
tedyu 9e0c2562a9 HBASE-15560 TinyLFU-based BlockCache (Ben Manes) 2016-10-04 05:15:51 -07:00
stack 95c1dc93fb HBASE-15638 Shade protobuf
Which includes

    HBASE-16742 Add chapter for devs on how we do protobufs going forward

    HBASE-16741 Amend the generate protobufs out-of-band build step
    to include shade, pulling in protobuf source and a hook for patching protobuf

    Removed ByteStringer from hbase-protocol-shaded. Use the protobuf-3.1.0
    trick directly instead. Makes stuff cleaner. All under 'shaded' dir is
    now generated.

    HBASE-16567 Upgrade to protobuf-3.1.x
    Regenerate all protos in this module with protoc3.
    Redo ByteStringer to use new pb3.1.0 unsafebytesutil
    instead of HBaseZeroCopyByteString

    HBASE-16264 Figure how to deal with endpoints and shaded pb Shade our protobufs.
    Do it in a manner that makes it so we can still have in our API references to
    com.google.protobuf (and in REST). The c.g.p in API is for Coprocessor Endpoints (CPEP)

            This patch is Tactic #4 from Shading Doc attached to the referenced issue.
            Figuring an appoach took a while because we have Coprocessor Endpoints
            mixed in with the core of HBase that are tough to untangle (FIX).

            Tactic #4 (the fourth attempt at addressing this issue) is COPY all but
            the CPEP .proto files currently in hbase-protocol to a new module named
            hbase-protocol-shaded. Generate .protos again in the new location and
            then relocate/shade the generated files. Let CPEPs keep on with the
            old references at com.google.protobuf.* and
            org.apache.hadoop.hbase.protobuf.* but change the hbase core so all
            instead refer to the relocated files in their new location at
            org.apache.hadoop.hbase.shaded.com.google.protobuf.*.

            Let the new module also shade protobufs themselves and change hbase
            core to pick up this shaded protobuf rather than directly reference
            com.google.protobuf.

            This approach allows us to explicitly refer to either the shaded or
            non-shaded version of a protobuf class in any particular context (though
            usually context dictates one or the other). Core runs on shaded protobuf.
            CPEPs continue to use whatever is on the classpath with
            com.google.protobuf.* which is pb2.5.0 for the near future at least.

            See above cited doc for follow-ons and downsides. In short, IDEs will complain
            about not being able to find the shaded protobufs since shading happens at package
            time; will fix by checking in all generated classes and relocated protobuf in
            a follow-on. Also, CPEPs currently suffer an extra-copy as marshalled from
            non-shaded to shaded. To fix. Finally, our .protos are duplicated; once
            shaded, and once not. Pain, but how else to reveal our protos to CPEPs or
            C++ client that wants to talk with HBase AND shade protobuf.

            Details:

            Add a new hbase-protocol-shaded module. It is a copy of hbase-protocol
    i       with all relocated offset from o.a.h.h. to o.a.h.h.shaded. The new module
            also includes the relocated pb. It does not include CPEPs. They stay in
            their old location.

            Add another module hbase-endpoint which has in it all the endpoints
            that ship as part of hbase -- at least the ones that are not
            entangled with core such as AccessControl and Auth. Move all protos
            for these CPEPs here as well as their unit tests (mostly moving a
            bunch of stuff out of hbase-server module)

            Much of the change looks like this:

                 -import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
                 -import org.apache.hadoop.hbase.protobuf.generated.ClusterIdProtos;
                 +import org.apache.hadoop.hbase.protobuf.shaded.ProtobufUtil;
                 +import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterIdProtos;

            In HTable and in HBaseAdmin, regularize the way Callables are used and also hide
            protobuf usage as much as possible moving it up into Callable super classes or out
            to utility classes. Still TODO is adding in of retries, etc., but can wait on
            procedure which will redo all this.

            Also in HTable and HBaseAdmin as well as in HRegionServer and Server, be explicit
            when using non-shaded protobuf. Do the full-path so it is clear. This is around
            endpoint coprocessors registration of services and execution of CPEP methods.

            Shrunk ProtobufUtil by moving methods used by one CPEP only back to the CPEP either
            into Client class or as new Util class; e.g. AccessControlUtil.

            There are actually two versions of ProtobufUtil now; a shaded one and a subset
            that is used by CPEPs doing non-shaded work.

            Made it so hbase-common no longer depends on hbase-protocol (with Matteo's help)

            R*Converter classes got moved down under shaded package -- they are for internal
            use only. There are no non-shaded versions of these classes.

            D hbase-client/src/main/java/org/apache/hadoop/hbase/client/AbstractRegionServerCallable
            D RetryingCallableBase
             Not used anymore and we have too many tiers of Callables so removed/cleaned-up.

            A ClientServicecallable
             Had to add this one. RegionServerCallable was made generic so it could be used
             for a few Interfaces (Client and Admin). Then added ClientServiceCallable to
             implement RegionServerCallable with the Client Interface.
2016-10-03 21:37:32 -07:00
anoopsamjohn b644e0fb8d HBASE-16134 Introduce Cell extension for server side. 2016-09-27 22:55:45 +05:30
anoopsamjohn 43f47a8e73 HBASE-16704 Scan will be broken while working with DBE and KeyValueCodecWithTags. 2016-09-26 22:32:24 +05:30