You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Jesse Yates (JIRA)" <ji...@apache.org> on 2012/05/10 00:21:49 UTC

[jira] [Commented] (HBASE-5977) Usage of modules

    [ 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