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

Matt Corgan commented on HBASE-6162:
------------------------------------

I started going down that path, but i believe it turned out to be an even 
bigger refactoring than is obvious at first.  I also think it's ok for the 
common module to contain code that only the server knows about as long as it is 
small, unit-testable, and has few dependencies.  This kind of code can be 
tightly verified with unit tests and actually helps to de-clutter the bigger 
server module.  I figured these two comparators were just some simple byte 
operations (no exceptions, threads, IO, reflection, etc), so they are simple 
enough to be in common.

Another way to look at it is that the higher up the module tree you go (towards 
util/common), the more bullet-proof the code needs to be, and I thought these 
two comparators should be as bullet-proof as can be.  We'd like the server 
module to be bullet-proof, but it will never be as rock-solid as common.  And 
by the time you get down to the web or avro modules or other 3rd party 
contributions things can get pretty hairy.

It's a discussion that will keep popping up though.  I'm happy to give it 
another stab the other way... just wanted to explain some of the thinking.

                
> Move KeyValue to hbase-common module
> ------------------------------------
>
>                 Key: HBASE-6162
>                 URL: https://issues.apache.org/jira/browse/HBASE-6162
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 0.96.0
>            Reporter: Matt Corgan
>            Assignee: Matt Corgan
>             Fix For: 0.96.0
>
>         Attachments: HBASE-6162-v1.patch
>
>
> * pull KeyValue up to hbase-common module
> This is part of the modularization strategy in HBASE-5977, and is 
> specifically necessary to modularize HBASE-4676.
> also brings these classes to hbase-common:
> * ClassSize, HeapSize
> * HTestConst
> * TestKeyValue, KeyValueTestUtil
> * LoadTestKVGenerator, TestLoadTestKVGenerator
> * MD5Hash
> moves a trivial constant (HRegionInfo.DELIMITER) from HRegionInfo to 
> HConstants

--
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

        

Reply via email to