[
https://issues.apache.org/jira/browse/HBASE-5134?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13181739#comment-13181739
]
[email protected] commented on HBASE-5134:
------------------------------------------------------
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/3419/
-----------------------------------------------------------
Review request for hbase.
Summary
-------
Untangle HConnection. Makes it so I can mock scanning which wasn't
possible when Callables had HConnections and HConnections had Callables.
I want this so we can write tests around some of the interesting master fails
we've seen of late; e.g. shutdown handler running at same time as a balance.
With this change I can do things like standup an AssignmentManager and
concurrently run a ServerShutdownHandler apart from their HMaster context;
I can fake out the ServerShutdownHandler feeding it whatever for metarows, etc.
Included are new tests that run an AssignmentManager#balance end-to-end and
that put up a ServerShutdownHandler and run a server shutdown processing.
M src/main/java/org/apache/hadoop/hbase/catalog/CatalogTracker.java
Add a note that timeouts need fixup in here.
Handle RetriesExhaustedException (Now we can mock at a lower-level
than previous, below Callables where we used short-circuit them, we
see Callable exceptions coming out in tests -- add handling).
M src/main/java/org/apache/hadoop/hbase/client/ClientScanner.java
Callable retrying is done on the Callable now, not via HConnection.
A src/main/java/org/apache/hadoop/hbase/client/ConnectionUtils.java
Move common connection utility here, shared by HConnection and Callable.
M src/main/java/org/apache/hadoop/hbase/client/HConnection.java
(getRegionServerWithRetries, getRegionServerWithoutRetries): deprecated.
They are done on the Callable itself itself now.
(clearCaches): Added.
M src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
(getPauseTime): Moved out to ConnectionUtils
(getRegionServerWithRetries, getRegionServerWithoutRetries): deprecated.
Changed body of methods to call new implementation.
Removed dead code. Added doc and comments on other stuff to move.
(translateException): Moved out to ServerCallable where its used.
M src/main/java/org/apache/hadoop/hbase/client/HTable.java
Callable retrying is done on the Callable now, not via HConnection.
M src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java
Callable retrying is done on the Callable now, not via HConnection.
M src/main/java/org/apache/hadoop/hbase/client/ServerCallable.java
(getConnection): Added
(withRetries, withoutRetries): These replace old
getRegionServerWithRetries, getRegionServerWithoutRetries that used to
be done via HConnection.
M src/main/java/org/apache/hadoop/hbase/ipc/ExecRPCInvoker.java
Callable retrying is done on the Callable now, not via HConnection.
M src/main/java/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.java
Callable retrying is done on the Callable now, not via HConnection.
M src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
Comment.
M src/main/java/org/apache/hadoop/hbase/master/handler/ClosedRegionHandler.java
Comment.
M
src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java
Make use of a data member previous unused.
M src/test/java/org/apache/hadoop/hbase/catalog/TestCatalogTracker.java
Callables are in the mix now so stuff gets retried. Deal with it.
M src/test/java/org/apache/hadoop/hbase/client/HConnectionTestingUtility.java
Add a method that mocks out more methods in a mocked HConnection.
M
src/test/java/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.java
Comment.
M src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManager.java
Add two tests, a testBalance and testServerShutdown
M src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java
Use new utility.
M
src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.java
Callables are in the mix now so stuff gets retried. Deal with it.
This addresses bug HBASE-5134.
https://issues.apache.org/jira/browse/HBASE-5134
Diffs
-----
src/main/java/org/apache/hadoop/hbase/catalog/CatalogTracker.java 8ec5042
src/main/java/org/apache/hadoop/hbase/client/ClientScanner.java 6cdeec1
src/main/java/org/apache/hadoop/hbase/client/ConnectionUtils.java
PRE-CREATION
src/main/java/org/apache/hadoop/hbase/client/HConnection.java 0e78d96
src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java 852a810
src/main/java/org/apache/hadoop/hbase/client/HTable.java 839d79b
src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java 4135e55
src/main/java/org/apache/hadoop/hbase/client/ServerCallable.java 9b568e3
src/main/java/org/apache/hadoop/hbase/ipc/ExecRPCInvoker.java 3ad6cd5
src/main/java/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.java
bd574b2
src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java d13daf0
src/main/java/org/apache/hadoop/hbase/master/handler/ClosedRegionHandler.java
2dfc3e7
src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java
2dd497b
src/test/java/org/apache/hadoop/hbase/catalog/TestCatalogTracker.java dada051
src/test/java/org/apache/hadoop/hbase/client/HConnectionTestingUtility.java
c1a077f
src/test/java/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.java
5e3e994
src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManager.java
82b32aa
src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java c359f4b
src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.java
0a34371
Diff: https://reviews.apache.org/r/3419/diff
Testing
-------
Thanks,
Michael
> Remove getRegionServerWithoutRetries and getRegionServerWithRetries from
> HConnection Interface
> ----------------------------------------------------------------------------------------------
>
> Key: HBASE-5134
> URL: https://issues.apache.org/jira/browse/HBASE-5134
> Project: HBase
> Issue Type: Improvement
> Reporter: stack
>
> Its broke having these meta methods in HConnection. They take
> ServerCallables which themselves have HConnections inevitably. It makes for
> a tangle in the model and frustrates being able to do mocked implemenations
> of HConnection. These methods better belong in something like
> HConnectionManager, or elsewhere altogether.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira