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

jirapos...@reviews.apache.org commented on HBASE-3777:
------------------------------------------------------


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

(Updated 2011-04-28 00:13:52.902673)


Review request for hbase and Ted Yu.


Changes
-------

The V7 version of the patch make the following additional changes:

a) Adds a HCM#execute method for executing blocks that require short-lived 
connections.
b) Removes the HCM#deleteConnection from the HMaster and HRegionServer classes, 
as they no longer directly get connections.
c) Adds a connection field in the ServerManager class, which is gotten in its 
constructor and deleted when it's stopped.

All but two tests (viz., TestSplitLogWorker and TestCatalogJanitor) passed. 
FWIW, those two failures happen without the patch as well, and only if the 
"hbase.master.distributed.log.splitting" is true.

PS: Just heard from Ted Yu that Stack checked in a patch for HBASE-1502, which 
I'll rebase with and test tomorrow. In the meantime, please review the three 
critical changes described above.


Summary
-------

Judging from the javadoc in HConnectionManager, sharing connections across 
multiple clients going to the same cluster is supposedly a good thing. However, 
the fact that there is a one-to-one mapping between a configuration and 
connection instance, kind of works against that goal. Specifically, when you 
create HTable instances using a given Configuration instance and a copy 
thereof, we end up with two distinct HConnection instances under the covers. Is 
this really expected behavior, especially given that the configuration instance 
gets cloned a lot?

Here, I'd like to play devil's advocate and propose that we "deep-compare" 
HBaseConfiguration instances, so that multiple HBaseConfiguration instances 
that have the same properties map to the same HConnection instance. In case one 
is "concerned that a single HConnection is insufficient for sharing amongst 
clients", to quote the javadoc, then one should be able to mark a given 
HBaseConfiguration instance as being "uniquely identifiable".


This addresses bug HBASE-3777.
    https://issues.apache.org/jira/browse/HBASE-3777


Diffs (updated)
-----

  src/main/java/org/apache/hadoop/hbase/HConstants.java 5701639 
  src/main/java/org/apache/hadoop/hbase/catalog/CatalogTracker.java be31179 
  src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java afb666a 
  src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java 70affa0 
  src/main/java/org/apache/hadoop/hbase/client/HTable.java edacf56 
  src/main/java/org/apache/hadoop/hbase/client/HTablePool.java 88827a8 
  src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java 9e3f4d1 
  
src/main/java/org/apache/hadoop/hbase/client/replication/ReplicationAdmin.java 
d76e333 
  src/main/java/org/apache/hadoop/hbase/mapred/TableOutputFormat.java 80284bb 
  src/main/java/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java 
05d9395 
  
src/main/java/org/apache/hadoop/hbase/mapreduce/replication/VerifyReplication.java
 ed88bfa 
  src/main/java/org/apache/hadoop/hbase/master/HMaster.java 250a8cf 
  src/main/java/org/apache/hadoop/hbase/master/ServerManager.java 04befe9 
  src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java d0a1e11 
  
src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java
 78c3b42 
  src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java 5da5e34 
  src/main/java/org/apache/hadoop/hbase/util/HBaseFsckRepair.java b624d28 
  src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java 7f5b377 
  src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java dc471c4 
  src/test/java/org/apache/hadoop/hbase/catalog/TestCatalogTracker.java e25184e 
  src/test/java/org/apache/hadoop/hbase/catalog/TestMetaReaderEditor.java 
60320a3 
  src/test/java/org/apache/hadoop/hbase/client/TestHCM.java b01a2d2 
  src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableMapReduce.java 
624f4a8 
  src/test/java/org/apache/hadoop/hbase/master/TestClockSkewDetection.java 
915cdf6 
  src/test/java/org/apache/hadoop/hbase/util/TestMergeTable.java 8992dbb 

Diff: https://reviews.apache.org/r/643/diff


Testing
-------

mvn test


Thanks,

Karthick



> Redefine Identity Of HBase Configuration
> ----------------------------------------
>
>                 Key: HBASE-3777
>                 URL: https://issues.apache.org/jira/browse/HBASE-3777
>             Project: HBase
>          Issue Type: Improvement
>          Components: client, ipc
>    Affects Versions: 0.90.2
>            Reporter: Karthick Sankarachary
>            Assignee: Karthick Sankarachary
>            Priority: Minor
>             Fix For: 0.92.0
>
>         Attachments: 3777-TOF.patch, HBASE-3777-V2.patch, 
> HBASE-3777-V3.patch, HBASE-3777-V4.patch, HBASE-3777-V6.patch, 
> HBASE-3777.patch
>
>
> Judging from the javadoc in {{HConnectionManager}}, sharing connections 
> across multiple clients going to the same cluster is supposedly a good thing. 
> However, the fact that there is a one-to-one mapping between a configuration 
> and connection instance, kind of works against that goal. Specifically, when 
> you create {{HTable}} instances using a given {{Configuration}} instance and 
> a copy thereof, we end up with two distinct {{HConnection}} instances under 
> the covers. Is this really expected behavior, especially given that the 
> configuration instance gets cloned a lot?
> Here, I'd like to play devil's advocate and propose that we "deep-compare" 
> {{HBaseConfiguration}} instances, so that multiple {{HBaseConfiguration}} 
> instances that have the same properties map to the same {{HConnection}} 
> instance. In case one is "concerned that a single {{HConnection}} is 
> insufficient for sharing amongst clients",  to quote the javadoc, then one 
> should be able to mark a given {{HBaseConfiguration}} instance as being 
> "uniquely identifiable".
> Note that "sharing connections makes clean up of {{HConnection}} instances a 
> little awkward", unless of course, you apply the change described in 
> HBASE-3766.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to