Return-Path: X-Original-To: apmail-hbase-issues-archive@www.apache.org Delivered-To: apmail-hbase-issues-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B29E985E9 for ; Fri, 12 Aug 2011 23:45:52 +0000 (UTC) Received: (qmail 14683 invoked by uid 500); 12 Aug 2011 23:45:52 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 14668 invoked by uid 500); 12 Aug 2011 23:45:51 -0000 Mailing-List: contact issues-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list issues@hbase.apache.org Received: (qmail 14659 invoked by uid 99); 12 Aug 2011 23:45:51 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 12 Aug 2011 23:45:51 +0000 X-ASF-Spam-Status: No, hits=-2000.8 required=5.0 tests=ALL_TRUSTED,RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 12 Aug 2011 23:45:49 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 991A7BA286 for ; Fri, 12 Aug 2011 23:45:29 +0000 (UTC) Date: Fri, 12 Aug 2011 23:45:29 +0000 (UTC) From: "jiraposter@reviews.apache.org (JIRA)" To: issues@hbase.apache.org Message-ID: <1500577596.35212.1313192729623.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <1766608612.27046.1313045727156.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Commented] (HBASE-4192) Optimize HLog for Throughput Using Delayed RPCs MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/HBASE-4192?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13084477#comment-13084477 ] jiraposter@reviews.apache.org commented on HBASE-4192: ------------------------------------------------------ ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/1463/ ----------------------------------------------------------- (Updated 2011-08-12 23:44:23.648920) Review request for hbase. Changes ------- Address most of Jon's feedback: * change 'batchEntries' to 'useDelayedRpc'. Hopefully this describes the new feature better; * revert the constructor usage in tests (where we were adding an additional null parameter); * add a bunch of javadoc in HLog; * document new parameters in hbase-default.xml; * use wait/notify instead of yield when closing writer; * unify the two differing append functions and change users of previous one; * fix coprocessors; note that when using delayed RPCs the postWAL function is called in hlogFlush, when the entries are added to the writer; Still TODO: * parameterize TestLogRolling; * benchmark results. Summary ------- Changes: 1. Add hbase.region.wal.batchentries configuration parameter. If this is enabled, batch entries to the HLog in a queue. 2. Use delayed RPCs for sync requests when aggresive batching is enabled. This frees up RPC handler threads for the duration of the sync. 3. Pass the RPC server instance all the way to down to HLog. This is needed to find out the current remote call, mark it as delayed, and finally complete it when the sync is done. 4. Use the region read-write consistency control to avoid exposing to RegionScanners edits which have not yet been synced. 5. Change a few tests which directly create HRegions or HLogs. The rpcServers passed in are null, HLog falls back to classic RPCs when it has no knowledge of the RPC server. 6. Add TestBatchEntriesLogRolling, which is identical to TestLogRolling, except that it uses aggressive batching. I'm not sure how to add tests that verify the same functionality but don't duplicate code, suggestion are welcome. The new parameter is disabled by default. This addresses bug HBASE-4192. https://issues.apache.org/jira/browse/HBASE-4192 Diffs (updated) ----- src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java 7117bce src/main/java/org/apache/hadoop/hbase/master/HMaster.java a00b93d src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java 83ff7b2 src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java 7a917da src/main/java/org/apache/hadoop/hbase/regionserver/ReadWriteConsistencyControl.java 8ec53d3 src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java 887f736 src/main/resources/hbase-default.xml 66548ca src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.java dc43eb2 src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java 381ac90 Diff: https://reviews.apache.org/r/1463/diff Testing ------- All unit tests run with aggressive batching turned on and off. Thanks, Vlad > Optimize HLog for Throughput Using Delayed RPCs > ----------------------------------------------- > > Key: HBASE-4192 > URL: https://issues.apache.org/jira/browse/HBASE-4192 > Project: HBase > Issue Type: New Feature > Components: wal > Affects Versions: 0.92.0 > Reporter: Vlad Dogaru > Priority: Minor > > Introduce a new HLog configuration parameter (batchEntries) for more aggressive batching of appends. If this is enabled, HLog appends are not written to the HLog writer immediately, but batched and written either periodically or when a sync is requested. Because sync times become larger, they use delayed RPCs to free up RPC handler threads. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira