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

[email protected] commented on HCATALOG-310:
--------------------------------------------------------



bq.  On 2012-03-15 17:52:56, Francis Liu wrote:
bq.  > The RevisionManagerFactory responsiblity seems to be leaking into the 
storageHandler code. storageHandler should just call the factory to instantiate 
RevisionManager. Also should probably consider changing the methods a bit. 
Split getRevisionManger into getRevisionManagerClient and 
getRevisionManagerServer. Though it's not really clear to me if the Endpoint 
needs to use the factory we can have an internal util to create a server 
instance instead since the user will most like never need an instance of 
revision manager server.
bq.  > 
bq.  > The Factory itself shouldn't depend on hadoop classes (ie Configuration) 
because the original intent was that this library may be used for other storage 
systems (ie Cassandra). We can revisit that idea but let's try to keep things 
consistent with the original plan until a decision is made. We can probably 
provide a util method which takes in the configuration object and return a 
populated properties instance as part of the HBaseRevisionManagerUtil class. 
bq.  > 
bq.  > Instead of having another factory for the EndPointClient its prolly 
cleaner to have a class analogous to ZKBaseRevisionManager (ie 
HBaseClientRevisionManager) which wraps the CoprocessorProxyClient.
bq.  > 
bq.  >  
bq.  >

A "client" class that implements the interface just to delegate all calls to 
another instance with the same interface w/o added behavior is tad redundant. 
Certainly there could be the need to do more than just pass on the call in the 
future, to deal with specifics of the protocol, perform a mapping etc., at 
which point such wrapper can be added. Anyways, does not hurt and it's added to 
the patch..  

About the factory class, it may be desirable to provide control over 
instantiation when the goal is to build a pluggable interface. An IoC container 
would mute this debate. But Class.forName is not enough to achieve a lot of 
abstraction. Settings need to be mapped from HBase conf into properties, fully 
assuming that the implementation is ZK RM. We can take that up later, I 
reverted back to the static factory binding.  


- Thomas


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4313/#review5990
-----------------------------------------------------------


On 2012-03-17 02:33:47, Thomas wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/4313/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2012-03-17 02:33:47)
bq.  
bq.  
bq.  Review request for Francis Liu, Vandana Ayyalasomayajula and David Capwell.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  Initial patch for RevisionManager endpoint.
bq.  
bq.  
bq.  This addresses bug HCATALOG-310.
bq.      https://issues.apache.org/jira/browse/HCATALOG-310
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    
trunk/storage-handlers/hbase/src/test/org/apache/hcatalog/hbase/snapshot/TestRevisionManagerEndpoint.java
 PRE-CREATION 
bq.    
trunk/storage-handlers/hbase/src/test/org/apache/hcatalog/hbase/ManyMiniCluster.java
 1300255 
bq.    
trunk/storage-handlers/hbase/src/test/org/apache/hcatalog/hbase/SkeletonHBaseTest.java
 1300255 
bq.    
trunk/storage-handlers/hbase/src/java/org/apache/hcatalog/hbase/snapshot/RevisionManagerProtocol.java
 PRE-CREATION 
bq.    
trunk/storage-handlers/hbase/src/java/org/apache/hcatalog/hbase/snapshot/TableSnapshot.java
 1300255 
bq.    
trunk/storage-handlers/hbase/src/java/org/apache/hcatalog/hbase/snapshot/RevisionManagerFactory.java
 1300255 
bq.    
trunk/storage-handlers/hbase/src/java/org/apache/hcatalog/hbase/snapshot/RevisionManagerEndpointClient.java
 PRE-CREATION 
bq.    
trunk/storage-handlers/hbase/src/java/org/apache/hcatalog/hbase/HBaseRevisionManagerUtil.java
 1300255 
bq.    
trunk/storage-handlers/hbase/src/java/org/apache/hcatalog/hbase/snapshot/RevisionManager.java
 1300255 
bq.    
trunk/storage-handlers/hbase/src/java/org/apache/hcatalog/hbase/snapshot/RevisionManagerEndpoint.java
 PRE-CREATION 
bq.  
bq.  Diff: https://reviews.apache.org/r/4313/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  unit tests pass
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Thomas
bq.  
bq.


                
> Turn current RM implementation into HBase Coprocessor
> -----------------------------------------------------
>
>                 Key: HCATALOG-310
>                 URL: https://issues.apache.org/jira/browse/HCATALOG-310
>             Project: HCatalog
>          Issue Type: Sub-task
>          Components: hbase, storage handlers
>    Affects Versions: 0.4
>            Reporter: Thomas Weise
>            Assignee: Thomas Weise
>
> Implement initial revision of endpoint and add new implementation of existing 
> RM interface for HBase endpoint client. Add option to configure RM as 
> endpoint. This will leave current default behavior as is (ZK based RM running 
> per client in storage handler).

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