hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrey Stepachev (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-12035) Client does an RPC to master everytime a region is relocated
Date Mon, 22 Sep 2014 17:19:34 GMT

    [ https://issues.apache.org/jira/browse/HBASE-12035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14143452#comment-14143452

Andrey Stepachev commented on HBASE-12035:

I think, that RS in general can act as throttle for client requests for slowly changed info.
For this case what can be done:
1. RS can cache tableinfo and master can piggyback timestamp of last changes of tableinfos
into heartbeat. 
2. RS can refresh cache if it thinks that cache is stale.
2. RS should proxy table info requests (so any RS can answer for table info requests, and
currently master is RS, so code can have different strategies, set on construction, for master
it resolves data from internal helpers like TableStateManager, and for regular RS it will
handle requests through cache by calling real master).

Benefits from this solution:
1. no single point of temporal failure (master or RS holding 'tables' table)
2. RS can check for requests for disabled tables in many places (scans, gets, coprocessors)
locally, instead of going to master or zk
3. Cache can have a limited lifetime (even seconds), so risk of staleness is very limited,
and still gives great reduce in master/zk load.
4. ([~stack] that is about first connection) We can remove table checks from client at all,
RS would do that, thats limits connections to master/zk even further

> Client does an RPC to master everytime a region is relocated
> ------------------------------------------------------------
>                 Key: HBASE-12035
>                 URL: https://issues.apache.org/jira/browse/HBASE-12035
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Enis Soztutar
>            Priority: Critical
>             Fix For: 2.0.0
> HBASE-7767 moved table enabled|disabled state to be kept in hdfs instead of zookeeper.
isTableDisabled() which is used in HConnectionImplementation.relocateRegion() now became a
master RPC call rather than a zookeeper client call. Since we do relocateRegion() calls everytime
we want to relocate a region (region moved, RS down, etc) this implies that when the master
is down, the some of the clients for uncached regions will be affected. 
> See HBASE-7767 and HBASE-11974 for some more background. 

This message was sent by Atlassian JIRA

View raw message