[jira] [Commented] (HBASE-17387) Reduce the overhead of exception report in RegionActionResult for multi()

2017-01-17 Thread Hudson (JIRA)

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

Hudson commented on HBASE-17387:


FAILURE: Integrated in Jenkins build HBase-1.3-JDK8 #95 (See 
[https://builds.apache.org/job/HBase-1.3-JDK8/95/])
HBASE-17387 Reduce the overhead of exception report in (tedyu: rev 
eb19a67486e1d722ce2f9d3484c0a7b111438d43)
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java


> Reduce the overhead of exception report in RegionActionResult for multi()
> -
>
> Key: HBASE-17387
> URL: https://issues.apache.org/jira/browse/HBASE-17387
> Project: HBase
>  Issue Type: Bug
>Reporter: Ted Yu
>Assignee: Ted Yu
>Priority: Minor
> Fix For: 2.0.0, 1.4.0, 1.3.1
>
> Attachments: 17387.v1.txt, 17387.v2.txt, 17387.v3.txt
>
>
> For RSRpcServices#doNonAtomicRegionMutation() :
> {code}
> for (ClientProtos.Action action: actions.getActionList()) {
> ...
>   } catch (IOException ie) {
> rpcServer.getMetrics().exception(ie);
> resultOrExceptionBuilder = ResultOrException.newBuilder().
>   setException(ResponseConverter.buildException(ie));
>   }
>   if (resultOrExceptionBuilder != null) {
> // Propagate index.
> resultOrExceptionBuilder.setIndex(action.getIndex());
> builder.addResultOrException(resultOrExceptionBuilder.build());
>   }
> {code}
> The exceptions are added to builder in the for loop.
> The ClientProtos.ResultOrException.Builder instance is created within the for 
> loop.
> For large multi call, this may incur non-trivial overhead for garbage 
> collector if there're many exceptions.
> e.g. Here was sample debug log showing the actions in a batch:
> {code}
> 2016-12-23 04:21:56,263 DEBUG 
> org.apache.hadoop.hbase.regionserver.RSRpcServices: NonAtomicRegionMutation 
> batch summary: numAppends=0, numDeletes=11, numGets=0, numIncrements=15638, 
> numPuts=15627, numServiceCalls=0, serializedSize=3871713, 
> user=hbase/pob3.G.COM (auth:KERBEROS), client=null
> {code}
> Note the large number of increments in the batch.
> When the increments encounter conflict at server side, the overhead of 
> stringified exceptions in response is considerable.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17387) Reduce the overhead of exception report in RegionActionResult for multi()

2017-01-17 Thread Hudson (JIRA)

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

Hudson commented on HBASE-17387:


SUCCESS: Integrated in Jenkins build HBase-1.3-JDK7 #82 (See 
[https://builds.apache.org/job/HBase-1.3-JDK7/82/])
HBASE-17387 Reduce the overhead of exception report in (tedyu: rev 
eb19a67486e1d722ce2f9d3484c0a7b111438d43)
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java


> Reduce the overhead of exception report in RegionActionResult for multi()
> -
>
> Key: HBASE-17387
> URL: https://issues.apache.org/jira/browse/HBASE-17387
> Project: HBase
>  Issue Type: Bug
>Reporter: Ted Yu
>Assignee: Ted Yu
>Priority: Minor
> Fix For: 2.0.0, 1.4.0, 1.3.1
>
> Attachments: 17387.v1.txt, 17387.v2.txt, 17387.v3.txt
>
>
> For RSRpcServices#doNonAtomicRegionMutation() :
> {code}
> for (ClientProtos.Action action: actions.getActionList()) {
> ...
>   } catch (IOException ie) {
> rpcServer.getMetrics().exception(ie);
> resultOrExceptionBuilder = ResultOrException.newBuilder().
>   setException(ResponseConverter.buildException(ie));
>   }
>   if (resultOrExceptionBuilder != null) {
> // Propagate index.
> resultOrExceptionBuilder.setIndex(action.getIndex());
> builder.addResultOrException(resultOrExceptionBuilder.build());
>   }
> {code}
> The exceptions are added to builder in the for loop.
> The ClientProtos.ResultOrException.Builder instance is created within the for 
> loop.
> For large multi call, this may incur non-trivial overhead for garbage 
> collector if there're many exceptions.
> e.g. Here was sample debug log showing the actions in a batch:
> {code}
> 2016-12-23 04:21:56,263 DEBUG 
> org.apache.hadoop.hbase.regionserver.RSRpcServices: NonAtomicRegionMutation 
> batch summary: numAppends=0, numDeletes=11, numGets=0, numIncrements=15638, 
> numPuts=15627, numServiceCalls=0, serializedSize=3871713, 
> user=hbase/pob3.G.COM (auth:KERBEROS), client=null
> {code}
> Note the large number of increments in the batch.
> When the increments encounter conflict at server side, the overhead of 
> stringified exceptions in response is considerable.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17387) Reduce the overhead of exception report in RegionActionResult for multi()

2016-12-29 Thread Hudson (JIRA)

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

Hudson commented on HBASE-17387:


FAILURE: Integrated in Jenkins build HBase-Trunk_matrix #2225 (See 
[https://builds.apache.org/job/HBase-Trunk_matrix/2225/])
HBASE-17387 Reduce the overhead of exception report in (tedyu: rev 
1c477b2df9f3cb10063d66d8f14ba9eb83bf9f4c)
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java


> Reduce the overhead of exception report in RegionActionResult for multi()
> -
>
> Key: HBASE-17387
> URL: https://issues.apache.org/jira/browse/HBASE-17387
> Project: HBase
>  Issue Type: Bug
>Reporter: Ted Yu
>Assignee: Ted Yu
>Priority: Minor
> Fix For: 2.0.0, 1.4.0
>
> Attachments: 17387.v1.txt, 17387.v2.txt, 17387.v3.txt
>
>
> For RSRpcServices#doNonAtomicRegionMutation() :
> {code}
> for (ClientProtos.Action action: actions.getActionList()) {
> ...
>   } catch (IOException ie) {
> rpcServer.getMetrics().exception(ie);
> resultOrExceptionBuilder = ResultOrException.newBuilder().
>   setException(ResponseConverter.buildException(ie));
>   }
>   if (resultOrExceptionBuilder != null) {
> // Propagate index.
> resultOrExceptionBuilder.setIndex(action.getIndex());
> builder.addResultOrException(resultOrExceptionBuilder.build());
>   }
> {code}
> The exceptions are added to builder in the for loop.
> The ClientProtos.ResultOrException.Builder instance is created within the for 
> loop.
> For large multi call, this may incur non-trivial overhead for garbage 
> collector if there're many exceptions.
> e.g. Here was sample debug log showing the actions in a batch:
> {code}
> 2016-12-23 04:21:56,263 DEBUG 
> org.apache.hadoop.hbase.regionserver.RSRpcServices: NonAtomicRegionMutation 
> batch summary: numAppends=0, numDeletes=11, numGets=0, numIncrements=15638, 
> numPuts=15627, numServiceCalls=0, serializedSize=3871713, 
> user=hbase/pob3.G.COM (auth:KERBEROS), client=null
> {code}
> Note the large number of increments in the batch.
> When the increments encounter conflict at server side, the overhead of 
> stringified exceptions in response is considerable.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17387) Reduce the overhead of exception report in RegionActionResult for multi()

2016-12-29 Thread Hudson (JIRA)

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

Hudson commented on HBASE-17387:


FAILURE: Integrated in Jenkins build HBase-1.4 #581 (See 
[https://builds.apache.org/job/HBase-1.4/581/])
HBASE-17387 Reduce the overhead of exception report in (tedyu: rev 
36f16bbe1034edf2010706c80ff6702f8693fe22)
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java


> Reduce the overhead of exception report in RegionActionResult for multi()
> -
>
> Key: HBASE-17387
> URL: https://issues.apache.org/jira/browse/HBASE-17387
> Project: HBase
>  Issue Type: Bug
>Reporter: Ted Yu
>Assignee: Ted Yu
>Priority: Minor
> Fix For: 2.0.0, 1.4.0
>
> Attachments: 17387.v1.txt, 17387.v2.txt, 17387.v3.txt
>
>
> For RSRpcServices#doNonAtomicRegionMutation() :
> {code}
> for (ClientProtos.Action action: actions.getActionList()) {
> ...
>   } catch (IOException ie) {
> rpcServer.getMetrics().exception(ie);
> resultOrExceptionBuilder = ResultOrException.newBuilder().
>   setException(ResponseConverter.buildException(ie));
>   }
>   if (resultOrExceptionBuilder != null) {
> // Propagate index.
> resultOrExceptionBuilder.setIndex(action.getIndex());
> builder.addResultOrException(resultOrExceptionBuilder.build());
>   }
> {code}
> The exceptions are added to builder in the for loop.
> The ClientProtos.ResultOrException.Builder instance is created within the for 
> loop.
> For large multi call, this may incur non-trivial overhead for garbage 
> collector if there're many exceptions.
> e.g. Here was sample debug log showing the actions in a batch:
> {code}
> 2016-12-23 04:21:56,263 DEBUG 
> org.apache.hadoop.hbase.regionserver.RSRpcServices: NonAtomicRegionMutation 
> batch summary: numAppends=0, numDeletes=11, numGets=0, numIncrements=15638, 
> numPuts=15627, numServiceCalls=0, serializedSize=3871713, 
> user=hbase/pob3.G.COM (auth:KERBEROS), client=null
> {code}
> Note the large number of increments in the batch.
> When the increments encounter conflict at server side, the overhead of 
> stringified exceptions in response is considerable.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17387) Reduce the overhead of exception report in RegionActionResult for multi()

2016-12-29 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-17387:
---

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 10s 
{color} | {color:blue} Docker mode activated. {color} |
| {color:blue}0{color} | {color:blue} patch {color} | {color:blue} 0m 1s 
{color} | {color:blue} The patch file was not named according to hbase's naming 
conventions. Please see 
https://yetus.apache.org/documentation/0.3.0/precommit-patchnames for 
instructions. {color} |
| {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green} 0m 
0s {color} | {color:green} Patch does not have any anti-patterns. {color} |
| {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s 
{color} | {color:green} The patch does not contain any @author tags. {color} |
| {color:red}-1{color} | {color:red} test4tests {color} | {color:red} 0m 0s 
{color} | {color:red} 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} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 
49s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 36s 
{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 
45s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 
13s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 
40s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 27s 
{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 
40s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 35s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 35s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 
44s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 
14s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 
0s {color} | {color:green} The patch has no whitespace issues. {color} |
| {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 
25m 32s {color} | {color:green} Patch does not cause any errors with Hadoop 
2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.1 2.7.2 2.7.3 or 3.0.0-alpha1. {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 
53s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 27s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 79m 17s 
{color} | {color:green} hbase-server in the patch passed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 
15s {color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black} 116m 33s {color} 
| {color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=1.12.3 Server=1.12.3 Image:yetus/hbase:8d52d23 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12845125/17387.v3.txt |
| JIRA Issue | HBASE-17387 |
| Optional Tests |  asflicense  javac  javadoc  unit  findbugs  hadoopcheck  
hbaseanti  checkstyle  compile  |
| uname | Linux 88d853db8fd6 3.13.0-105-generic #152-Ubuntu SMP Fri Dec 2 
15:37:11 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | 
/home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/component/dev-support/hbase-personality.sh
 |
| git revision | master / 7572e96 |
| Default Java | 1.8.0_111 |
| findbugs | v3.0.0 |
|  Test Results | 
https://builds.apache.org/job/PreCommit-HBASE-Build/5090/testReport/ |
| modules | C: hbase-server U: hbase-server |
| Console output | 
https://builds.apache.org/job/PreCommit-HBASE-Build/5090/console |
| Powered by | Apache Yetus 0.3.0   http://yetus.apache.org |


This message was automatically generated.



> Reduce the overhead of exception report in RegionActionResult for multi()
> 

[jira] [Commented] (HBASE-17387) Reduce the overhead of exception report in RegionActionResult for multi()

2016-12-29 Thread Enis Soztutar (JIRA)

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

Enis Soztutar commented on HBASE-17387:
---

Thanks +1 for the v1 version of the patch.
Can you please move this: 
{code}
resultOrExceptionBuilder.clear();
{code}
to the beginning of the for loop. Can be done on commit, but please upload the 
version committed as v3. 

> Reduce the overhead of exception report in RegionActionResult for multi()
> -
>
> Key: HBASE-17387
> URL: https://issues.apache.org/jira/browse/HBASE-17387
> Project: HBase
>  Issue Type: Bug
>Reporter: Ted Yu
>Assignee: Ted Yu
>Priority: Minor
> Attachments: 17387.v1.txt, 17387.v2.txt
>
>
> For RSRpcServices#doNonAtomicRegionMutation() :
> {code}
> for (ClientProtos.Action action: actions.getActionList()) {
> ...
>   } catch (IOException ie) {
> rpcServer.getMetrics().exception(ie);
> resultOrExceptionBuilder = ResultOrException.newBuilder().
>   setException(ResponseConverter.buildException(ie));
>   }
>   if (resultOrExceptionBuilder != null) {
> // Propagate index.
> resultOrExceptionBuilder.setIndex(action.getIndex());
> builder.addResultOrException(resultOrExceptionBuilder.build());
>   }
> {code}
> The exceptions are added to builder in the for loop.
> The ClientProtos.ResultOrException.Builder instance is created within the for 
> loop.
> For large multi call, this may incur non-trivial overhead for garbage 
> collector if there're many exceptions.
> e.g. Here was sample debug log showing the actions in a batch:
> {code}
> 2016-12-23 04:21:56,263 DEBUG 
> org.apache.hadoop.hbase.regionserver.RSRpcServices: NonAtomicRegionMutation 
> batch summary: numAppends=0, numDeletes=11, numGets=0, numIncrements=15638, 
> numPuts=15627, numServiceCalls=0, serializedSize=3871713, 
> user=hbase/pob3.G.COM (auth:KERBEROS), client=null
> {code}
> Note the large number of increments in the batch.
> When the increments encounter conflict at server side, the overhead of 
> stringified exceptions in response is considerable.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17387) Reduce the overhead of exception report in RegionActionResult for multi()

2016-12-29 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-17387:
---

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 12s 
{color} | {color:blue} Docker mode activated. {color} |
| {color:blue}0{color} | {color:blue} patch {color} | {color:blue} 0m 1s 
{color} | {color:blue} The patch file was not named according to hbase's naming 
conventions. Please see 
https://yetus.apache.org/documentation/0.3.0/precommit-patchnames for 
instructions. {color} |
| {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green} 0m 
0s {color} | {color:green} Patch does not have any anti-patterns. {color} |
| {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s 
{color} | {color:green} The patch does not contain any @author tags. {color} |
| {color:red}-1{color} | {color:red} test4tests {color} | {color:red} 0m 0s 
{color} | {color:red} 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} |
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 18s 
{color} | {color:blue} Maven dependency ordering for branch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 
32s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 47s 
{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 
39s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 
23s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 2m 
14s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 40s 
{color} | {color:green} master passed {color} |
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 10s 
{color} | {color:blue} Maven dependency ordering for patch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 
53s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 47s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 47s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 
40s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 
22s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 
0s {color} | {color:green} The patch has no whitespace issues. {color} |
| {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 
23m 24s {color} | {color:green} Patch does not cause any errors with Hadoop 
2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.1 2.7.2 2.7.3 or 3.0.0-alpha1. {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 2m 
31s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 40s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 1m 3s 
{color} | {color:green} hbase-client in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 76m 10s 
{color} | {color:green} hbase-server in the patch passed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 
30s {color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black} 115m 26s {color} 
| {color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=1.12.3 Server=1.12.3 Image:yetus/hbase:8d52d23 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12845108/17387.v2.txt |
| JIRA Issue | HBASE-17387 |
| Optional Tests |  asflicense  javac  javadoc  unit  findbugs  hadoopcheck  
hbaseanti  checkstyle  compile  |
| uname | Linux 394a329bf8b1 4.4.0-43-generic #63-Ubuntu SMP Wed Oct 12 
13:48:03 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | 
/home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/component/dev-support/hbase-personality.sh
 |
| git revision | master / 001a26d |
| Default Java | 1.8.0_111 |
| findbugs | 

[jira] [Commented] (HBASE-17387) Reduce the overhead of exception report in RegionActionResult for multi()

2016-12-29 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-17387:


Patch v1 is safe to land.

In another JIRA, perhaps, we can consider embedding a map of exception type to 
exception stack trace string in RegionActionResult.Builder so that 
resultOrExceptionBuilder.setException() can reference the exception type rather 
than recording the whole stack trace.

> Reduce the overhead of exception report in RegionActionResult for multi()
> -
>
> Key: HBASE-17387
> URL: https://issues.apache.org/jira/browse/HBASE-17387
> Project: HBase
>  Issue Type: Bug
>Reporter: Ted Yu
>Assignee: Ted Yu
>Priority: Minor
> Attachments: 17387.v1.txt, 17387.v2.txt
>
>
> For RSRpcServices#doNonAtomicRegionMutation() :
> {code}
> for (ClientProtos.Action action: actions.getActionList()) {
> ...
>   } catch (IOException ie) {
> rpcServer.getMetrics().exception(ie);
> resultOrExceptionBuilder = ResultOrException.newBuilder().
>   setException(ResponseConverter.buildException(ie));
>   }
>   if (resultOrExceptionBuilder != null) {
> // Propagate index.
> resultOrExceptionBuilder.setIndex(action.getIndex());
> builder.addResultOrException(resultOrExceptionBuilder.build());
>   }
> {code}
> The exceptions are added to builder in the for loop.
> The ClientProtos.ResultOrException.Builder instance is created within the for 
> loop.
> For large multi call, this may incur non-trivial overhead for garbage 
> collector if there're many exceptions.
> e.g. Here was sample debug log showing the actions in a batch:
> {code}
> 2016-12-23 04:21:56,263 DEBUG 
> org.apache.hadoop.hbase.regionserver.RSRpcServices: NonAtomicRegionMutation 
> batch summary: numAppends=0, numDeletes=11, numGets=0, numIncrements=15638, 
> numPuts=15627, numServiceCalls=0, serializedSize=3871713, 
> user=hbase/pob3.G.COM (auth:KERBEROS), client=null
> {code}
> Note the large number of increments in the batch.
> When the increments encounter conflict at server side, the overhead of 
> stringified exceptions in response is considerable.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17387) Reduce the overhead of exception report in RegionActionResult for multi()

2016-12-29 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-17387:
---

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 10s 
{color} | {color:blue} Docker mode activated. {color} |
| {color:blue}0{color} | {color:blue} patch {color} | {color:blue} 0m 1s 
{color} | {color:blue} The patch file was not named according to hbase's naming 
conventions. Please see 
https://yetus.apache.org/documentation/0.3.0/precommit-patchnames for 
instructions. {color} |
| {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green} 0m 
0s {color} | {color:green} Patch does not have any anti-patterns. {color} |
| {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s 
{color} | {color:green} The patch does not contain any @author tags. {color} |
| {color:red}-1{color} | {color:red} test4tests {color} | {color:red} 0m 0s 
{color} | {color:red} 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} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 
57s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 36s 
{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 
44s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 
14s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 
40s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 27s 
{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 
41s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 34s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 34s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 
46s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 
13s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 
0s {color} | {color:green} The patch has no whitespace issues. {color} |
| {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 
25m 36s {color} | {color:green} Patch does not cause any errors with Hadoop 
2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.1 2.7.2 2.7.3 or 3.0.0-alpha1. {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 
49s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 27s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 79m 47s 
{color} | {color:green} hbase-server in the patch passed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 
16s {color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black} 117m 14s {color} 
| {color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=1.12.3 Server=1.12.3 Image:yetus/hbase:8d52d23 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12845105/17387.v1.txt |
| JIRA Issue | HBASE-17387 |
| Optional Tests |  asflicense  javac  javadoc  unit  findbugs  hadoopcheck  
hbaseanti  checkstyle  compile  |
| uname | Linux 58954d470cc6 3.13.0-105-generic #152-Ubuntu SMP Fri Dec 2 
15:37:11 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | 
/home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/component/dev-support/hbase-personality.sh
 |
| git revision | master / 001a26d |
| Default Java | 1.8.0_111 |
| findbugs | v3.0.0 |
|  Test Results | 
https://builds.apache.org/job/PreCommit-HBASE-Build/5088/testReport/ |
| modules | C: hbase-server U: hbase-server |
| Console output | 
https://builds.apache.org/job/PreCommit-HBASE-Build/5088/console |
| Powered by | Apache Yetus 0.3.0   http://yetus.apache.org |


This message was automatically generated.



> Reduce the overhead of exception report in RegionActionResult for multi()
> 

[jira] [Commented] (HBASE-17387) Reduce the overhead of exception report in RegionActionResult for multi()

2016-12-29 Thread Enis Soztutar (JIRA)

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

Enis Soztutar commented on HBASE-17387:
---

I don't think we should limit the size of the stack trace. Reusing the result 
or exception builder seems fine. For others, can you please give some context 
why we need this. 

> Reduce the overhead of exception report in RegionActionResult for multi()
> -
>
> Key: HBASE-17387
> URL: https://issues.apache.org/jira/browse/HBASE-17387
> Project: HBase
>  Issue Type: Bug
>Reporter: Ted Yu
>Assignee: Ted Yu
>Priority: Minor
> Attachments: 17387.v1.txt, 17387.v2.txt
>
>
> For RSRpcServices#doNonAtomicRegionMutation() :
> {code}
> for (ClientProtos.Action action: actions.getActionList()) {
> ...
>   } catch (IOException ie) {
> rpcServer.getMetrics().exception(ie);
> resultOrExceptionBuilder = ResultOrException.newBuilder().
>   setException(ResponseConverter.buildException(ie));
>   }
>   if (resultOrExceptionBuilder != null) {
> // Propagate index.
> resultOrExceptionBuilder.setIndex(action.getIndex());
> builder.addResultOrException(resultOrExceptionBuilder.build());
>   }
> {code}
> The exceptions are added to builder in the for loop.
> The ClientProtos.ResultOrException.Builder instance is created within the for 
> loop.
> For large multi call, this may incur non-trivial overhead for garbage 
> collector if there're many exceptions.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)