[jira] [Commented] (HBASE-10117) Avoid synchronization in HRegionScannerImpl.isFilterDone
[ https://issues.apache.org/jira/browse/HBASE-10117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13845826#comment-13845826 ] Hudson commented on HBASE-10117: SUCCESS: Integrated in HBase-TRUNK-on-Hadoop-1.1 #4 (See [https://builds.apache.org/job/HBase-TRUNK-on-Hadoop-1.1/4/]) HBASE-10117 Avoid synchronization in HRegionScannerImpl.isFilterDone (larsh: rev 1549920) * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java Avoid synchronization in HRegionScannerImpl.isFilterDone Key: HBASE-10117 URL: https://issues.apache.org/jira/browse/HBASE-10117 Project: HBase Issue Type: Bug Components: Performance Reporter: Lars Hofhansl Assignee: Lars Hofhansl Fix For: 0.94.15, 0.96.2, 0.98.1, 0.99.0 Attachments: 10117-0.94-v2.txt, 10117-0.94-v3.txt, 10117-0.94.txt, 10117-trunk-v2.txt, 10117-trunk.txt A while ago I introduced HRegoinScannerImpl.nextRaw() to allow coprocessors and scanners with caching 1 to avoid repeated synchronization during scanning (which puts up memory fences, which in turn slows things down on multi core machines). Looking at the code again I see that isFilterDone() is called from nextRaw() and isFilterDone() is synchronized. The caller of nextRaw is required to ensure single threaded access to nextRaw() anyway, we can call an unsynchronized internal version of isFilterDone(). -- This message was sent by Atlassian JIRA (v6.1.4#6159)
[jira] [Commented] (HBASE-10117) Avoid synchronization in HRegionScannerImpl.isFilterDone
[ https://issues.apache.org/jira/browse/HBASE-10117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13845863#comment-13845863 ] Hudson commented on HBASE-10117: SUCCESS: Integrated in HBase-0.98-on-Hadoop-1.1 #6 (See [https://builds.apache.org/job/HBase-0.98-on-Hadoop-1.1/6/]) HBASE-10117 Avoid synchronization in HRegionScannerImpl.isFilterDone (larsh: rev 1549921) * /hbase/branches/0.98/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java Avoid synchronization in HRegionScannerImpl.isFilterDone Key: HBASE-10117 URL: https://issues.apache.org/jira/browse/HBASE-10117 Project: HBase Issue Type: Bug Components: Performance Reporter: Lars Hofhansl Assignee: Lars Hofhansl Fix For: 0.94.15, 0.96.2, 0.98.1, 0.99.0 Attachments: 10117-0.94-v2.txt, 10117-0.94-v3.txt, 10117-0.94.txt, 10117-trunk-v2.txt, 10117-trunk.txt A while ago I introduced HRegoinScannerImpl.nextRaw() to allow coprocessors and scanners with caching 1 to avoid repeated synchronization during scanning (which puts up memory fences, which in turn slows things down on multi core machines). Looking at the code again I see that isFilterDone() is called from nextRaw() and isFilterDone() is synchronized. The caller of nextRaw is required to ensure single threaded access to nextRaw() anyway, we can call an unsynchronized internal version of isFilterDone(). -- This message was sent by Atlassian JIRA (v6.1.4#6159)
[jira] [Commented] (HBASE-10117) Avoid synchronization in HRegionScannerImpl.isFilterDone
[ https://issues.apache.org/jira/browse/HBASE-10117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13845965#comment-13845965 ] Hudson commented on HBASE-10117: SUCCESS: Integrated in hbase-0.96-hadoop2 #147 (See [https://builds.apache.org/job/hbase-0.96-hadoop2/147/]) HBASE-10117 Avoid synchronization in HRegionScannerImpl.isFilterDone (larsh: rev 1549922) * /hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java Avoid synchronization in HRegionScannerImpl.isFilterDone Key: HBASE-10117 URL: https://issues.apache.org/jira/browse/HBASE-10117 Project: HBase Issue Type: Bug Components: Performance Reporter: Lars Hofhansl Assignee: Lars Hofhansl Fix For: 0.94.15, 0.96.2, 0.98.1, 0.99.0 Attachments: 10117-0.94-v2.txt, 10117-0.94-v3.txt, 10117-0.94.txt, 10117-trunk-v2.txt, 10117-trunk.txt A while ago I introduced HRegoinScannerImpl.nextRaw() to allow coprocessors and scanners with caching 1 to avoid repeated synchronization during scanning (which puts up memory fences, which in turn slows things down on multi core machines). Looking at the code again I see that isFilterDone() is called from nextRaw() and isFilterDone() is synchronized. The caller of nextRaw is required to ensure single threaded access to nextRaw() anyway, we can call an unsynchronized internal version of isFilterDone(). -- This message was sent by Atlassian JIRA (v6.1.4#6159)
[jira] [Commented] (HBASE-10117) Avoid synchronization in HRegionScannerImpl.isFilterDone
[ https://issues.apache.org/jira/browse/HBASE-10117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13844084#comment-13844084 ] Hadoop QA commented on HBASE-10117: --- {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12618003/10117-trunk-v2.txt against trunk revision . {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:red}-1 tests included{color}. The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. {color:green}+1 hadoop1.0{color}. The patch compiles against the hadoop 1.0 profile. {color:green}+1 hadoop1.1{color}. The patch compiles against the hadoop 1.1 profile. {color:green}+1 javadoc{color}. The javadoc tool did not generate any warning messages. {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:red}-1 findbugs{color}. The patch appears to introduce 2 new Findbugs (version 1.3.9) warnings. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:green}+1 lineLengths{color}. The patch does not introduce lines longer than 100 {color:red}-1 site{color}. The patch appears to cause mvn site goal to fail. {color:red}-1 core tests{color}. The patch failed these unit tests: org.apache.hadoop.hbase.regionserver.TestSplitTransactionOnCluster Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/8117//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8117//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8117//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8117//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8117//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8117//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8117//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8117//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8117//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8117//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/8117//console This message is automatically generated. Avoid synchronization in HRegionScannerImpl.isFilterDone Key: HBASE-10117 URL: https://issues.apache.org/jira/browse/HBASE-10117 Project: HBase Issue Type: Bug Components: Performance Reporter: Lars Hofhansl Assignee: Lars Hofhansl Fix For: 0.94.15, 0.96.2, 0.98.1, 0.99.0 Attachments: 10117-0.94-v2.txt, 10117-0.94-v3.txt, 10117-0.94.txt, 10117-trunk-v2.txt, 10117-trunk.txt A while ago I introduced HRegoinScannerImpl.nextRaw() to allow coprocessors and scanners with caching 1 to avoid repeated synchronization during scanning (which puts up memory fences, which in turn slows things down on multi core machines). Looking at the code again I see that isFilterDone() is called from nextRaw() and isFilterDone() is synchronized. The caller of nextRaw is required to ensure single threaded access to nextRaw() anyway, we can call an unsynchronized internal version of isFilterDone(). -- This message was sent by Atlassian JIRA (v6.1.4#6159)
[jira] [Commented] (HBASE-10117) Avoid synchronization in HRegionScannerImpl.isFilterDone
[ https://issues.apache.org/jira/browse/HBASE-10117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13844400#comment-13844400 ] Lars Hofhansl commented on HBASE-10117: --- The test failure is unrelated. Will commit this afternoon. (the Phoenix change is already integrated :) ) Avoid synchronization in HRegionScannerImpl.isFilterDone Key: HBASE-10117 URL: https://issues.apache.org/jira/browse/HBASE-10117 Project: HBase Issue Type: Bug Components: Performance Reporter: Lars Hofhansl Assignee: Lars Hofhansl Fix For: 0.94.15, 0.96.2, 0.98.1, 0.99.0 Attachments: 10117-0.94-v2.txt, 10117-0.94-v3.txt, 10117-0.94.txt, 10117-trunk-v2.txt, 10117-trunk.txt A while ago I introduced HRegoinScannerImpl.nextRaw() to allow coprocessors and scanners with caching 1 to avoid repeated synchronization during scanning (which puts up memory fences, which in turn slows things down on multi core machines). Looking at the code again I see that isFilterDone() is called from nextRaw() and isFilterDone() is synchronized. The caller of nextRaw is required to ensure single threaded access to nextRaw() anyway, we can call an unsynchronized internal version of isFilterDone(). -- This message was sent by Atlassian JIRA (v6.1.4#6159)
[jira] [Commented] (HBASE-10117) Avoid synchronization in HRegionScannerImpl.isFilterDone
[ https://issues.apache.org/jira/browse/HBASE-10117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13844405#comment-13844405 ] stack commented on HBASE-10117: --- +1 on change. Avoid synchronization in HRegionScannerImpl.isFilterDone Key: HBASE-10117 URL: https://issues.apache.org/jira/browse/HBASE-10117 Project: HBase Issue Type: Bug Components: Performance Reporter: Lars Hofhansl Assignee: Lars Hofhansl Fix For: 0.94.15, 0.96.2, 0.98.1, 0.99.0 Attachments: 10117-0.94-v2.txt, 10117-0.94-v3.txt, 10117-0.94.txt, 10117-trunk-v2.txt, 10117-trunk.txt A while ago I introduced HRegoinScannerImpl.nextRaw() to allow coprocessors and scanners with caching 1 to avoid repeated synchronization during scanning (which puts up memory fences, which in turn slows things down on multi core machines). Looking at the code again I see that isFilterDone() is called from nextRaw() and isFilterDone() is synchronized. The caller of nextRaw is required to ensure single threaded access to nextRaw() anyway, we can call an unsynchronized internal version of isFilterDone(). -- This message was sent by Atlassian JIRA (v6.1.4#6159)
[jira] [Commented] (HBASE-10117) Avoid synchronization in HRegionScannerImpl.isFilterDone
[ https://issues.apache.org/jira/browse/HBASE-10117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13844419#comment-13844419 ] Nick Dimiduk commented on HBASE-10117: -- Nice one Lars. Avoid synchronization in HRegionScannerImpl.isFilterDone Key: HBASE-10117 URL: https://issues.apache.org/jira/browse/HBASE-10117 Project: HBase Issue Type: Bug Components: Performance Reporter: Lars Hofhansl Assignee: Lars Hofhansl Fix For: 0.94.15, 0.96.2, 0.98.1, 0.99.0 Attachments: 10117-0.94-v2.txt, 10117-0.94-v3.txt, 10117-0.94.txt, 10117-trunk-v2.txt, 10117-trunk.txt A while ago I introduced HRegoinScannerImpl.nextRaw() to allow coprocessors and scanners with caching 1 to avoid repeated synchronization during scanning (which puts up memory fences, which in turn slows things down on multi core machines). Looking at the code again I see that isFilterDone() is called from nextRaw() and isFilterDone() is synchronized. The caller of nextRaw is required to ensure single threaded access to nextRaw() anyway, we can call an unsynchronized internal version of isFilterDone(). -- This message was sent by Atlassian JIRA (v6.1.4#6159)
[jira] [Commented] (HBASE-10117) Avoid synchronization in HRegionScannerImpl.isFilterDone
[ https://issues.apache.org/jira/browse/HBASE-10117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13844432#comment-13844432 ] Ted Yu commented on HBASE-10117: Ran TestSplitTransactionOnCluster with patch and it passed. +1 Avoid synchronization in HRegionScannerImpl.isFilterDone Key: HBASE-10117 URL: https://issues.apache.org/jira/browse/HBASE-10117 Project: HBase Issue Type: Bug Components: Performance Reporter: Lars Hofhansl Assignee: Lars Hofhansl Fix For: 0.94.15, 0.96.2, 0.98.1, 0.99.0 Attachments: 10117-0.94-v2.txt, 10117-0.94-v3.txt, 10117-0.94.txt, 10117-trunk-v2.txt, 10117-trunk.txt A while ago I introduced HRegoinScannerImpl.nextRaw() to allow coprocessors and scanners with caching 1 to avoid repeated synchronization during scanning (which puts up memory fences, which in turn slows things down on multi core machines). Looking at the code again I see that isFilterDone() is called from nextRaw() and isFilterDone() is synchronized. The caller of nextRaw is required to ensure single threaded access to nextRaw() anyway, we can call an unsynchronized internal version of isFilterDone(). -- This message was sent by Atlassian JIRA (v6.1.4#6159)
[jira] [Commented] (HBASE-10117) Avoid synchronization in HRegionScannerImpl.isFilterDone
[ https://issues.apache.org/jira/browse/HBASE-10117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13844862#comment-13844862 ] Hudson commented on HBASE-10117: SUCCESS: Integrated in HBase-0.94 #1223 (See [https://builds.apache.org/job/HBase-0.94/1223/]) HBASE-10117 Avoid synchronization in HRegionScannerImpl.isFilterDone (larsh: rev 1549917) * /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java Avoid synchronization in HRegionScannerImpl.isFilterDone Key: HBASE-10117 URL: https://issues.apache.org/jira/browse/HBASE-10117 Project: HBase Issue Type: Bug Components: Performance Reporter: Lars Hofhansl Assignee: Lars Hofhansl Fix For: 0.94.15, 0.96.2, 0.98.1, 0.99.0 Attachments: 10117-0.94-v2.txt, 10117-0.94-v3.txt, 10117-0.94.txt, 10117-trunk-v2.txt, 10117-trunk.txt A while ago I introduced HRegoinScannerImpl.nextRaw() to allow coprocessors and scanners with caching 1 to avoid repeated synchronization during scanning (which puts up memory fences, which in turn slows things down on multi core machines). Looking at the code again I see that isFilterDone() is called from nextRaw() and isFilterDone() is synchronized. The caller of nextRaw is required to ensure single threaded access to nextRaw() anyway, we can call an unsynchronized internal version of isFilterDone(). -- This message was sent by Atlassian JIRA (v6.1.4#6159)
[jira] [Commented] (HBASE-10117) Avoid synchronization in HRegionScannerImpl.isFilterDone
[ https://issues.apache.org/jira/browse/HBASE-10117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13844880#comment-13844880 ] Hudson commented on HBASE-10117: SUCCESS: Integrated in HBase-0.94-security #356 (See [https://builds.apache.org/job/HBase-0.94-security/356/]) HBASE-10117 Avoid synchronization in HRegionScannerImpl.isFilterDone (larsh: rev 1549917) * /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java Avoid synchronization in HRegionScannerImpl.isFilterDone Key: HBASE-10117 URL: https://issues.apache.org/jira/browse/HBASE-10117 Project: HBase Issue Type: Bug Components: Performance Reporter: Lars Hofhansl Assignee: Lars Hofhansl Fix For: 0.94.15, 0.96.2, 0.98.1, 0.99.0 Attachments: 10117-0.94-v2.txt, 10117-0.94-v3.txt, 10117-0.94.txt, 10117-trunk-v2.txt, 10117-trunk.txt A while ago I introduced HRegoinScannerImpl.nextRaw() to allow coprocessors and scanners with caching 1 to avoid repeated synchronization during scanning (which puts up memory fences, which in turn slows things down on multi core machines). Looking at the code again I see that isFilterDone() is called from nextRaw() and isFilterDone() is synchronized. The caller of nextRaw is required to ensure single threaded access to nextRaw() anyway, we can call an unsynchronized internal version of isFilterDone(). -- This message was sent by Atlassian JIRA (v6.1.4#6159)
[jira] [Commented] (HBASE-10117) Avoid synchronization in HRegionScannerImpl.isFilterDone
[ https://issues.apache.org/jira/browse/HBASE-10117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13844935#comment-13844935 ] Hudson commented on HBASE-10117: SUCCESS: Integrated in HBase-TRUNK #4719 (See [https://builds.apache.org/job/HBase-TRUNK/4719/]) HBASE-10117 Avoid synchronization in HRegionScannerImpl.isFilterDone (larsh: rev 1549920) * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java Avoid synchronization in HRegionScannerImpl.isFilterDone Key: HBASE-10117 URL: https://issues.apache.org/jira/browse/HBASE-10117 Project: HBase Issue Type: Bug Components: Performance Reporter: Lars Hofhansl Assignee: Lars Hofhansl Fix For: 0.94.15, 0.96.2, 0.98.1, 0.99.0 Attachments: 10117-0.94-v2.txt, 10117-0.94-v3.txt, 10117-0.94.txt, 10117-trunk-v2.txt, 10117-trunk.txt A while ago I introduced HRegoinScannerImpl.nextRaw() to allow coprocessors and scanners with caching 1 to avoid repeated synchronization during scanning (which puts up memory fences, which in turn slows things down on multi core machines). Looking at the code again I see that isFilterDone() is called from nextRaw() and isFilterDone() is synchronized. The caller of nextRaw is required to ensure single threaded access to nextRaw() anyway, we can call an unsynchronized internal version of isFilterDone(). -- This message was sent by Atlassian JIRA (v6.1.4#6159)
[jira] [Commented] (HBASE-10117) Avoid synchronization in HRegionScannerImpl.isFilterDone
[ https://issues.apache.org/jira/browse/HBASE-10117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13844957#comment-13844957 ] Hudson commented on HBASE-10117: SUCCESS: Integrated in HBase-0.98 #7 (See [https://builds.apache.org/job/HBase-0.98/7/]) HBASE-10117 Avoid synchronization in HRegionScannerImpl.isFilterDone (larsh: rev 1549921) * /hbase/branches/0.98/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java Avoid synchronization in HRegionScannerImpl.isFilterDone Key: HBASE-10117 URL: https://issues.apache.org/jira/browse/HBASE-10117 Project: HBase Issue Type: Bug Components: Performance Reporter: Lars Hofhansl Assignee: Lars Hofhansl Fix For: 0.94.15, 0.96.2, 0.98.1, 0.99.0 Attachments: 10117-0.94-v2.txt, 10117-0.94-v3.txt, 10117-0.94.txt, 10117-trunk-v2.txt, 10117-trunk.txt A while ago I introduced HRegoinScannerImpl.nextRaw() to allow coprocessors and scanners with caching 1 to avoid repeated synchronization during scanning (which puts up memory fences, which in turn slows things down on multi core machines). Looking at the code again I see that isFilterDone() is called from nextRaw() and isFilterDone() is synchronized. The caller of nextRaw is required to ensure single threaded access to nextRaw() anyway, we can call an unsynchronized internal version of isFilterDone(). -- This message was sent by Atlassian JIRA (v6.1.4#6159)
[jira] [Commented] (HBASE-10117) Avoid synchronization in HRegionScannerImpl.isFilterDone
[ https://issues.apache.org/jira/browse/HBASE-10117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13844989#comment-13844989 ] Hudson commented on HBASE-10117: SUCCESS: Integrated in hbase-0.96 #221 (See [https://builds.apache.org/job/hbase-0.96/221/]) HBASE-10117 Avoid synchronization in HRegionScannerImpl.isFilterDone (larsh: rev 1549922) * /hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java Avoid synchronization in HRegionScannerImpl.isFilterDone Key: HBASE-10117 URL: https://issues.apache.org/jira/browse/HBASE-10117 Project: HBase Issue Type: Bug Components: Performance Reporter: Lars Hofhansl Assignee: Lars Hofhansl Fix For: 0.94.15, 0.96.2, 0.98.1, 0.99.0 Attachments: 10117-0.94-v2.txt, 10117-0.94-v3.txt, 10117-0.94.txt, 10117-trunk-v2.txt, 10117-trunk.txt A while ago I introduced HRegoinScannerImpl.nextRaw() to allow coprocessors and scanners with caching 1 to avoid repeated synchronization during scanning (which puts up memory fences, which in turn slows things down on multi core machines). Looking at the code again I see that isFilterDone() is called from nextRaw() and isFilterDone() is synchronized. The caller of nextRaw is required to ensure single threaded access to nextRaw() anyway, we can call an unsynchronized internal version of isFilterDone(). -- This message was sent by Atlassian JIRA (v6.1.4#6159)
[jira] [Commented] (HBASE-10117) Avoid synchronization in HRegionScannerImpl.isFilterDone
[ https://issues.apache.org/jira/browse/HBASE-10117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13845074#comment-13845074 ] Lars Hofhansl commented on HBASE-10117: --- Numbers... 20m rows, 1 col. simple {{select count(1) ...}} ||without patch|| with patch || with patch + Phoenix patch|| |8.8s|8.1s|7.4s| Avoid synchronization in HRegionScannerImpl.isFilterDone Key: HBASE-10117 URL: https://issues.apache.org/jira/browse/HBASE-10117 Project: HBase Issue Type: Bug Components: Performance Reporter: Lars Hofhansl Assignee: Lars Hofhansl Fix For: 0.94.15, 0.96.2, 0.98.1, 0.99.0 Attachments: 10117-0.94-v2.txt, 10117-0.94-v3.txt, 10117-0.94.txt, 10117-trunk-v2.txt, 10117-trunk.txt A while ago I introduced HRegoinScannerImpl.nextRaw() to allow coprocessors and scanners with caching 1 to avoid repeated synchronization during scanning (which puts up memory fences, which in turn slows things down on multi core machines). Looking at the code again I see that isFilterDone() is called from nextRaw() and isFilterDone() is synchronized. The caller of nextRaw is required to ensure single threaded access to nextRaw() anyway, we can call an unsynchronized internal version of isFilterDone(). -- This message was sent by Atlassian JIRA (v6.1.4#6159)
[jira] [Commented] (HBASE-10117) Avoid synchronization in HRegionScannerImpl.isFilterDone
[ https://issues.apache.org/jira/browse/HBASE-10117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13844020#comment-13844020 ] Hadoop QA commented on HBASE-10117: --- {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12617988/10117-trunk.txt against trunk revision . {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:red}-1 tests included{color}. The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. {color:green}+1 hadoop1.0{color}. The patch compiles against the hadoop 1.0 profile. {color:green}+1 hadoop1.1{color}. The patch compiles against the hadoop 1.1 profile. {color:green}+1 javadoc{color}. The javadoc tool did not generate any warning messages. {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:red}-1 findbugs{color}. The patch appears to introduce 2 new Findbugs (version 1.3.9) warnings. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:green}+1 lineLengths{color}. The patch does not introduce lines longer than 100 {color:red}-1 site{color}. The patch appears to cause mvn site goal to fail. {color:green}+1 core tests{color}. The patch passed unit tests in . Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/8116//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8116//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8116//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8116//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8116//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8116//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8116//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8116//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8116//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8116//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/8116//console This message is automatically generated. Avoid synchronization in HRegionScannerImpl.isFilterDone Key: HBASE-10117 URL: https://issues.apache.org/jira/browse/HBASE-10117 Project: HBase Issue Type: Bug Components: Performance Reporter: Lars Hofhansl Assignee: Lars Hofhansl Fix For: 0.94.15, 0.96.2, 0.98.1, 0.99.0 Attachments: 10117-0.94-v2.txt, 10117-0.94-v3.txt, 10117-0.94.txt, 10117-trunk-v2.txt, 10117-trunk.txt A while ago I introduced HRegoinScannerImpl.nextRaw() to allow coprocessors and scanners with caching 1 to avoid repeated synchronization during scanning (which puts up memory fences, which in turn slows things down on multi core machines). Looking at the code again I see that isFilterDone() is called from nextRaw() and isFilterDone() is synchronized. The caller of nextRaw is required to ensure single threaded access to nextRaw() anyway, we can call an unsynchronized internal version of isFilterDone(). -- This message was sent by Atlassian JIRA (v6.1.4#6159)
[jira] [Commented] (HBASE-10117) Avoid synchronization in HRegionScannerImpl.isFilterDone
[ https://issues.apache.org/jira/browse/HBASE-10117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13844034#comment-13844034 ] stack commented on HBASE-10117: --- bq. Now, why is RegionScannerImpl synchronized at all? Do we ever have multiple client threads at the same time call next() on the same RegionScanner? You the man [~lhofhansl] Can we do anything to ensure multiple threads from same client is just not possible? Avoid synchronization in HRegionScannerImpl.isFilterDone Key: HBASE-10117 URL: https://issues.apache.org/jira/browse/HBASE-10117 Project: HBase Issue Type: Bug Components: Performance Reporter: Lars Hofhansl Assignee: Lars Hofhansl Fix For: 0.94.15, 0.96.2, 0.98.1, 0.99.0 Attachments: 10117-0.94-v2.txt, 10117-0.94-v3.txt, 10117-0.94.txt, 10117-trunk-v2.txt, 10117-trunk.txt A while ago I introduced HRegoinScannerImpl.nextRaw() to allow coprocessors and scanners with caching 1 to avoid repeated synchronization during scanning (which puts up memory fences, which in turn slows things down on multi core machines). Looking at the code again I see that isFilterDone() is called from nextRaw() and isFilterDone() is synchronized. The caller of nextRaw is required to ensure single threaded access to nextRaw() anyway, we can call an unsynchronized internal version of isFilterDone(). -- This message was sent by Atlassian JIRA (v6.1.4#6159)
[jira] [Commented] (HBASE-10117) Avoid synchronization in HRegionScannerImpl.isFilterDone
[ https://issues.apache.org/jira/browse/HBASE-10117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13844040#comment-13844040 ] Lars Hofhansl commented on HBASE-10117: --- Was thinking that in next() (0.94) we remove the scanner from the set of current scanners; when next() is done we'd put it back. That way all synchronization is handled by the scanners map, and we can still ensure that no two client threads can ever use the same scanner at the same time. Would be a bit tricky to reason about leases then (a lease could expire before we put the scanner back into the scanners map). That all said, if a scanner is used with scanner caching 1 and this simple change is committed I do not expect any great improvements from removing synchronization from the remaining methods. Avoid synchronization in HRegionScannerImpl.isFilterDone Key: HBASE-10117 URL: https://issues.apache.org/jira/browse/HBASE-10117 Project: HBase Issue Type: Bug Components: Performance Reporter: Lars Hofhansl Assignee: Lars Hofhansl Fix For: 0.94.15, 0.96.2, 0.98.1, 0.99.0 Attachments: 10117-0.94-v2.txt, 10117-0.94-v3.txt, 10117-0.94.txt, 10117-trunk-v2.txt, 10117-trunk.txt A while ago I introduced HRegoinScannerImpl.nextRaw() to allow coprocessors and scanners with caching 1 to avoid repeated synchronization during scanning (which puts up memory fences, which in turn slows things down on multi core machines). Looking at the code again I see that isFilterDone() is called from nextRaw() and isFilterDone() is synchronized. The caller of nextRaw is required to ensure single threaded access to nextRaw() anyway, we can call an unsynchronized internal version of isFilterDone(). -- This message was sent by Atlassian JIRA (v6.1.4#6159)