[ 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