[ 
https://issues.apache.org/jira/browse/HBASE-11462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mikhail Antonov updated HBASE-11462:
------------------------------------
    Attachment: HBASE-11462.v2.patch

Attaching v2 version (rebased to latest master). There was a bug with theses 
pairs possibly being nulls, which cause the tests to fail, now they should be 
fixed.

I think MetaTableAccessor and RegionLocator are a bit different. RegionLocator 
is a client interface specifically to look up regions, and MTA is private class 
to work with content of meta table, including ops not related to regions 
locations (e.g. split region, delete regions, get startCode, seqNum etc). So I 
probably wouldn't rename it at this moment.. What do you think?

Regarding multiple if's - yeah, once we split the interfaces someone has to 
decide which one to use. I'll see how to still refactor this usage to reduce 
multiple ifs on caller's side.

> MetaTableAccessor shouldn't use ZooKeeeper
> ------------------------------------------
>
>                 Key: HBASE-11462
>                 URL: https://issues.apache.org/jira/browse/HBASE-11462
>             Project: HBase
>          Issue Type: Improvement
>          Components: Client, Zookeeper
>    Affects Versions: 2.0.0
>            Reporter: Mikhail Antonov
>            Assignee: Mikhail Antonov
>             Fix For: 2.0.0
>
>         Attachments: HBASE-11462.v1.patch, HBASE-11462.v2.patch
>
>
> After committing patch for HBASE-4495, there's an further improvement which 
> can be made (discussed originally on review board to that jira).
> We have MetaTableAccessor and MetaTableLocator classes. First one is used to 
> access information stored in hbase:meta table. Second one is used to deal 
> with ZooKeeper state to find out region server hosting hbase:meta, wait for 
> it to become available and so on.
> MetaTableAccessor, in turn, should only operate on the meta table content, so 
> shouldn't need ZK. The only reason why MetaTableAccessor is using ZK - when 
> callers request assignment information, they can request location of meta 
> table itself, which we can't read from meta, so in that case 
> MetaTableAccessor relays the call to MetaTableLocator.  May be the solution 
> here is to declare that clients of MetaTableAccessor shall not use it to work 
> with meta table itself (not it's content).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to