Commit Graph

252 Commits

Author SHA1 Message Date
zhangduo e0dfa4caf3
HBASE-20973 ArrayIndexOutOfBoundsException when rolling back procedure
Signed-off-by: Michael Stack <stack@apache.org>
2018-10-26 12:35:11 -07:00
zhangduo 9a151ec77b Revert "HBASE-20973 ArrayIndexOutOfBoundsException when rolling back procedure"
This reverts commit e29ce9f937.
2018-10-26 21:30:10 +08:00
Allan Yang e71c05707e HBASE-21384 Procedure with holdlock=false should not be restored lock when restarts 2018-10-25 13:58:50 +08:00
Duo Zhang 040ec2227e HBASE-21363 Rewrite the buildingHoldCleanupTracker method in WALProcedureStore 2018-10-24 14:37:26 +08:00
Allan Yang 6c9e3d0670 HBASE-21364 Procedure holds the lock should put to front of the queue after restart 2018-10-24 10:52:52 +08:00
Allan Yang e29ce9f937 HBASE-20973 ArrayIndexOutOfBoundsException when rolling back procedure 2018-10-23 16:13:24 +08:00
zhangduo 7c04a95f4a
HBASE-21321 Backport HBASE-21278 to branch-2.1 and branch-2.0 ("Do not rollback successful sub procedures when rolling back a procedure")
Signed-off-by: Michael Stack <stack@apache.org>
2018-10-22 21:10:11 -07:00
Allan Yang c141547f3b HBASE-21354 Procedure may be deleted improperly during master restarts resulting in 'Corrupt' 2018-10-23 10:27:48 +08:00
zhangduo 4ded75357b HBASE-21336 Simplify the implementation of WALProcedureMap 2018-10-22 18:36:39 +08:00
zhangduo 7e4cb7d7ec
HBASE-21323 Should not skip force updating for a sub procedure even if it has been finished
Reapplication after fixing failing test.
2018-10-19 15:25:15 -07:00
Duo Zhang 63f718974b
HBASE-21075 Confirm that we can (rolling) upgrade from 2.0.x and 2.1.x to 2.2.x after HBASE-20881
Signed-off-by: Michael Stack <stack@apache.org>
2018-10-19 12:34:36 -07:00
Michael Stack 0cd23c3dda
Revert "HBASE-21323 Should not skip force updating for a sub procedure even if it has been finished"
This reverts commit fffd9b9b6d.

Revert till we figure why behavior between 2.1 and 2.2 is different.
2018-10-18 20:04:24 -07:00
Michael Stack 8fd3fd0e9c
Revert "HBASE-21323 Should not skip force updating for a sub procedure even if"
This reverts commit 30727764a3.

Revert till we figure why behavior between 2.1 and 2.2 is different.
2018-10-18 20:03:57 -07:00
tianjingyun 915e87ecf7
HBASE-21291 Add a test for bypassing stuck state-machine procedures
Signed-off-by: Michael Stack <stack@apache.org>
2018-10-18 14:26:47 -07:00
Michael Stack 30727764a3
HBASE-21323 Should not skip force updating for a sub procedure even if
it has been finished; ADDENDUM

Fix broke unit test.
2018-10-18 13:48:02 -07:00
zhangduo fffd9b9b6d HBASE-21323 Should not skip force updating for a sub procedure even if it has been finished 2018-10-18 14:44:31 +08:00
Duo Zhang 85c3ec3fb4 HBASE-21315 The getActiveMinProcId and getActiveMaxProcId of BitSetNode are incorrect if there are no active procedure 2018-10-16 15:42:10 +08:00
Duo Zhang c3401d4327 HBASE-21254 Need to find a way to limit the number of proc wal files 2018-10-12 11:47:48 +08:00
zhangduo 5a300f3fc9 HBASE-21250 Refactor WALProcedureStore and add more comments for better understanding the implementation 2018-10-07 17:16:09 +08:00
Michael Stack 9d34b4581c
HBASE-21242 [amv2] Miscellaneous minor log and assign procedure create improvements
For RIT Duration, do better than print ms/seconds. Remove redundant UI
column dedicated to duration when we log it in the status field too.

Make bypass log at INFO level.

Make it so on complete of subprocedure, we note count of outstanding
siblings so we have a clue how much further the parent has to go before
it is done (Helpful when hundreds of servers doing SCP).

Have the SCP run the AP preflight check before creating an AP; saves
creation of thousands of APs during fixup.

Don't log tablename three times when reporting remote call failed.

If lock is held already, note who has it. Also log after we get lock
or if we have to wait rather than log on entrance though we may
later have to wait (or we may have just picked up the lock).

Signed-off-by: Mike Drob <mdrob@apache.org>
2018-10-04 17:18:13 -07:00
Michael Stack 8fc90a23ae
HBASE-21213 [hbck2] bypass leaves behind state in RegionStates when assign/unassign
Adds override to assigns and unassigns. Changes bypass 'force'
to align calling the param 'override' instead.

Adds recursive to 'bypass', a means of calling bypass on
parent and its subprocedures (usually bypass works on
leaf nodes rippling the bypass up to parent -- recursive
has us work in the opposite direction): EXPERIMENTAL.

bypass on an assign/unassign leaves region in RIT and the
RegionStateNode loaded with the bypassed procedure. First
implementation had assign/unassign cleanup leftover state.
Second implementation, on feedback, keeps the state in place
as a fence against other Procedures assuming the region entity,
and instead adds an 'override' function that hbck2 can set on
assigns/unassigns to override the fencing.

Note that the below also converts ProcedureExceptions that
come out of the Pv2 system into DoNotRetryIOEs. It is a
little awkward because DNRIOE is in client-module, not
in procedure module. Previous, we'd just keep retrying
the bypass, etc.

M hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/Procedure.java
 Have bypass take an environment like all other methods so subclasses.
 Fix javadoc issues.

M hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
 Javadoc issues. Pass environment when we invoke bypass.

M hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
 Rename waitUntilNamespace... etc. to align with how these method types
 are named elsehwere .. i.e. waitFor rather than waitUntil..

M hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionTransitionProcedure.java
 Cleanup message we emit when we find an exisitng procedure working
 against this entity.
 Add support for a force function which allows Assigns/Unassigns force
 ownership of the Region entity.

A hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionBypass.java
 Test bypass and force.

M hbase-shell/src/main/ruby/shell/commands/list_procedures.rb
 Minor cleanup of the json output... do iso8601 timestamps.
2018-10-04 16:37:37 -07:00
Michael Stack 259d12f739 Revert "Revert "Revert "HBASE-21213 [hbck2] bypass leaves behind state in RegionStates when assign/unassign"""
This reverts commit 2174461cf7.

Revert because not ready to port to other branches.
2018-09-29 04:06:46 -07:00
Michael Stack 2174461cf7 Revert "Revert "HBASE-21213 [hbck2] bypass leaves behind state in RegionStates when assign/unassign""
This reverts commit b96905d1df.

i.e. a revert of a revert so a reapplication!

Revert so I can add signed-off-by....

Signed-off-by: Allan Yang <allan163@apache.org>
2018-09-29 03:34:36 -07:00
Michael Stack b96905d1df Revert "HBASE-21213 [hbck2] bypass leaves behind state in RegionStates when assign/unassign"
This reverts commit b42d7978cb.
2018-09-29 03:34:10 -07:00
Michael Stack b42d7978cb HBASE-21213 [hbck2] bypass leaves behind state in RegionStates when assign/unassign
bypass on an assign/unassign leaves region in RIT and the
RegionStateNode loaded with the bypassed procedure. First
implementation had assign/unassign cleanup leftover state.
Second implementation, on feedback, keeps the state in place
as a fence against other Procedures assuming the region entity,
and instead adds an 'override' function that hbck2 can set on
assigns/unassigns to override the fencing.

Note that the below also converts ProcedureExceptions that
come out of the Pv2 system into DoNotRetryIOEs. It is a
little awkward because DNRIOE is in client-module, not
in procedure module. Previous, we'd just keep retrying
the bypass, etc.

M hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/Procedure.java
 Have bypass take an environment like all other methods so subclasses.
 Fix javadoc issues.

M hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
 Javadoc issues. Pass environment when we invoke bypass.

M hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
 Rename waitUntilNamespace... etc. to align with how these method types
 are named elsehwere .. i.e. waitFor rather than waitUntil..

M hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionTransitionProcedure.java
 Cleanup message we emit when we find an exisitng procedure working
 against this entity.
 Add support for a force function which allows Assigns/Unassigns force
 ownership of the Region entity.

A hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionBypass.java
 Test bypass and force.

M hbase-shell/src/main/ruby/shell/commands/list_procedures.rb
 Minor cleanup of the json output... do iso8601 timestamps.
2018-09-29 03:33:07 -07:00
meiyi 8dea600795 HBASE-21249 Add jitter for ProcedureUtil.getBackoffTimeMs
Signed-off-by: zhangduo <zhangduo@apache.org>
2018-09-28 21:28:16 +08:00
zhangduo 4947e72f63 HBASE-21233 Allow the procedure implementation to skip persistence of the state after a execution 2018-09-28 11:14:49 +08:00
Umesh Agashe e6c7ed34e0
HBASE-21023 Added bypassProcedure() API to HbckService 2018-09-19 15:01:29 -07:00
Michael Stack 487f713c63 HBASE-21190 Log files and count of entries in each as we load from the MasterProcWAL store 2018-09-12 10:19:46 -07:00
Duo Zhang 2da6dbe563 HBASE-21172 Reimplement the retry backoff logic for ReopenTableRegionsProcedure 2018-09-12 16:01:55 +08:00
TAK LON WU 2c19b04274
HBASE-21181 Use the same filesystem for wal archive directory and wal directory
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2018-09-11 15:50:41 -07:00
Michael Stack f755ded2d2 HBASE-21171 [amv2] Tool to parse a directory of MasterProcWALs standalone
Signed-off-by: Mike Drob <mdrob@apache.org>
2018-09-08 20:35:15 -07:00
Michael Stack 205783419c
HBASE-21155 Save on a few log strings and some churn in wal splitter by skipping out early if no logs in dir 2018-09-06 16:36:59 -07:00
Allan Yang e33591515c
HBASE-21083 Introduce a mechanism to bypass the execution of a stuck procedure 2018-08-28 20:18:47 -07:00
Michael Stack d954031d50 HBASE-21078 [amv2] CODE-BUG NPE in RTP doing Unassign 2018-08-24 13:22:16 -07:00
Allan Yang ee3507d456 HBASE-21050 Exclusive lock may be held by a SUCCESS state procedure forever
Signed-off-by: Michael Stack <stack@apache.org>
Signed-off-by: zhangduo <zhangduo@apache.org>
2018-08-15 15:39:15 -07:00
Allan Yang e1188d27f5 HBASE-20978 [amv2] Worker terminating UNNATURALLY during MoveRegionProcedure Signed-off-by: Michael Stack <stack@apache.org> Signed-off-by: Duo Zhang <zhangduo@apache.org> 2018-08-14 16:29:58 -07:00
Allan Yang 26828b1860 HBASE-20975 Lock may not be taken or released while rolling back procedure 2018-08-13 20:12:57 +08:00
jackbearden 2d12e1ecf0 HBASE-20981. Rollback stateCount accounting thrown-off when exception out of rollbackState
Signed-off-by: Michael Stack <stack@apache.org>
2018-08-11 11:58:12 -07:00
Michael Stack 88f3148810 HBASE-20989 Minor, miscellaneous logging fixes
Signed-off-by: Zach York <zyork@amazon.com>
Signed-off-by: Mingliang Liu <liuml07@apache.org>
2018-08-01 11:20:01 -07:00
Alex Leblang 31cbd7ab8f
HBASE-19369 Switch to Builder Pattern In WAL
This patch switches to the builder pattern by adding a helper method.
It also checks to ensure that the pattern is available (i.e. that
HBase is running on a hadoop version that supports it).

Amending-Author: Mike Drob <mdrob@apache.org>
Signed-off-by: tedyu <yuzhihong@gmail.com>
Signed-off-by: zhangduo <zhangduo@apache.org>
2018-07-27 23:43:08 -05:00
zhangduo 8bfdb19e85 HBASE-20939 There will be race when we call suspendIfNotReady and then throw ProcedureSuspendedException 2018-07-27 21:30:23 +08:00
zhangduo 1777ea3aae HBASE-20938 Set version to 2.1.1-SNAPSHOT for branch-2.1 2018-07-25 21:45:09 +08:00
zhangduo 833657c46d HBASE-20846 Restore procedure locks when master restarts 2018-07-25 14:37:36 +08:00
Michael Stack 46e5baf670 HBASE-20914 Trim Master memory usage
Add (weak reference) interning of ServerNames.

Correct Balancer regions x racks matrix.

Make smaller defaults when creating ArrayDeques.
2018-07-20 10:08:13 -07:00
zhangduo 113652eb88 HBASE-20847 The parent procedure of RegionTransitionProcedure may not have the table lock 2018-07-11 17:37:27 +08:00
zhangduo a2db3d27ff HBASE-20849 Set version as 2.1.0 in branch-2.1 in prep for first RC 2018-07-06 15:32:23 +08:00
Yu Li d61bb64e93 HBASE-20691 Change the default WAL storage policy back to "NONE""
This reverts commit 564c193d61 and added more doc
about why we choose "NONE" as the default.
2018-07-04 13:45:54 +08:00
Michael Stack 9eeb501825 HBASE-20745 Log when master proc wal rolls 2018-06-19 19:53:29 -07:00
zhangduo 3e33aecea2 HBASE-20708 Remove the usage of RecoverMetaProcedure in master startup 2018-06-19 15:09:11 +08:00