hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jesse Yates (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-5977) Usage of modules
Date Wed, 09 May 2012 22:21:49 GMT

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

Jesse Yates commented on HBASE-5977:

I'd like to avoid creating a ton of packages (or the tendancy to have lots of packages) as
I see it more as a rough separation of concerns (like how hadoop has dfs, mr, and common)
versus the finer grained functionality separation (where hadoop-common has 20+ modules) as
each module means a new jar. 

In the short to medium term, I would like to see the following packages materialize out the
existing single package:
* hbase-assemble  - necessary for building
* hbase-common - common functionality used between the client and server
* hbase-client - functionality just for the client. A general hbase client would just need
hbase-common and hbase-client to run
* hbase-server - all server side functionality, including regionserver and master (this could
even be separated, but not necessarily)

Other potential things that came up earlier in the process that seemed useful:
* hbase-security - shouldn't be needed if we roll in security, but still an option
* hbase-it - for a single place for higher level integration tests (all those using the mini-cluster)
to avoid the maven test-jar dependency issue discussed in HBASE-4336

Any more granularity that these pacakges tends to be a bit of a mess and rarely all that useful.
Instead, a lot of times its really better to just have a config option to specify the right
class and load that from the path. The jar approach is much more heavy weight and only useful
for wholesale replacements for which there are multiple (possibly competing) implementations.
For instance, async-hbase could roll up into a hbase-client.jar and be a drop-in replacement
in your install, but you wouldn't have a whole log-cleaner jar for switching the log cleaner
class to use.

> Usage of modules 
> -----------------
>                 Key: HBASE-5977
>                 URL: https://issues.apache.org/jira/browse/HBASE-5977
>             Project: HBase
>          Issue Type: Brainstorming
>          Components: build
>    Affects Versions: 0.96.0
>            Reporter: Jesse Yates
>   Original Estimate: 336h
>  Remaining Estimate: 336h
> With HBASE-4336, HBase will have the ability to add multiple modules for different aspects
of the codebase (less tests, see HBASE-4336 for details). We need to set a policy for when
modules should be used versus putting the code into a single existing module or dispersed
across modules. 

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


View raw message