[
https://issues.apache.org/jira/browse/HBASE-19114?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16226312#comment-16226312
]
Duo Zhang commented on HBASE-19114:
-----------------------------------
Do we really need to do this?
We are trying hard to reduce the dependency on zk. For example, in the async
client implementation, the only place where we use zookeeper is
ZKAsyncRegistry. It only depends on ZNodePaths, and a simple removeMetaData
method in RecoveringZooKeeper. For Admin/AsyncAdmin, now we route all the
request to zookeeper to HMaster first so it will not depend on zookeeper
directly. And we plan to replace the sync client implementation in 3.0 so most
stuffs in hbase-client will not be depended by hbase-client anymore.
So in general, in the future we will only have a small common code in
hbase-client or hbase-common, and most zk related code will be in hbase-server.
We already have too many modules...
Thanks.
> Split out o.a.h.h.zookeeper from hbase-server and hbase-client
> --------------------------------------------------------------
>
> Key: HBASE-19114
> URL: https://issues.apache.org/jira/browse/HBASE-19114
> Project: HBase
> Issue Type: Sub-task
> Reporter: Appy
> Assignee: Appy
> Attachments: HBASE-19114.master.001.patch,
> HBASE-19114.master.002.patch, HBASE-19114.master.003.patch
>
>
> Changes so far:
> - Moved DrainingServerTracker and RegionServerTracker to
> hbase-server:o.a.h.h.master.
> - Move Abortable to hbase-common. Since it's IA.Private and independent of
> anything, moving it to hbase-common which is at bottom of the dependency tree
> is better.
> - Moved RecoveringRegionWatcher to hbase-server:o.a.h.h.regionserver
> - Moved SplitOrMergeTracker to oahh.master (because it depends on a PB)
> - Moving hbase-client:oahh.zookeeper.* to hbase-zookeeper module. We want to
> keep hbase-zookeeper very independent and hence at lowest levels in our
> dependency tree.
> - ZKUtil is a huge tangle since it's linked to almost everything in
> \[hbase-client/]oahh.zookeeper. And pulling it down requires some basic proto
> functions (mergeFrom, PBmagic, etc). So what i did was:
> ** Pulled down common and basic protobuf functions (which only depend on
> com.google.protobuf.\*) to hbase-common so other code depending on them can
> be pulled down if possible/wanted in future. This will help future dependency
> untangling too. These are ProtobufMagic and ProtobufHelpers.
> ** Didn't move any hbase-specific PB stuff to hbase-common. We can't pull
> things into hbase-common which add dependency between it and
> hbase-protobuf/hbase-shaded-protobuf since we very recently untangled them.
> - DEFAULT_REPLICA_ID is used in many places in ZK. Declared a new constant in
> HConstants (since it's in hbase-common) and using it in hbase-zookeeper.
> RegionInfo.DEFAULT_REPLICA_ID also takes its value from it to avoid case
> where two values can become different.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)