[ https://issues.apache.org/jira/browse/HBASE-18470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16110091#comment-16110091 ]
Benedict Jin commented on HBASE-18470: -------------------------------------- Hi, [~tedyu]. Thank you for comment. Sure, skipping add comma is a good solution and i tried it in the beginning. But i changed my mind after some performance tests that seems `substring` solution is always faster than `skipping add comma`. Details is here: ```java /* JVM: -ea -Xmx512M -Xms512M -Xmn128M -XX:+AlwaysPreTouch Time: 0.023948 ms Time: 0.012752 ms */ @Test public void testStringBuilder() { Set<String> uniqAddr = new HashSet<>(); StringBuilder addrs = new StringBuilder(); long begin, performanceTime; { uniqAddr.add("a"); uniqAddr.add("b"); uniqAddr.add("c"); begin = System.nanoTime(); int count = 0, addrLen = uniqAddr.size(); for (String addr : uniqAddr) { addrs.append(addr); count++; if (count != addrLen) { addrs.append(", "); } } String withoutTail = addrs.toString(); performanceTime = System.nanoTime() - begin; _log.info("Time: {} ms", performanceTime * Math.pow(10, -6)); assertEquals("a, b, c", withoutTail); } { addrs = new StringBuilder(); uniqAddr.clear(); uniqAddr.add("a"); uniqAddr.add("b"); uniqAddr.add("c"); begin = System.nanoTime(); for (String addr : uniqAddr) { addrs.append(addr).append(", "); } String withoutTail = uniqAddr.size() > 0 ? addrs.substring(0, addrs.length() - 2) : addrs.toString(); performanceTime = System.nanoTime() - begin; _log.info("Time: {} ms", performanceTime * Math.pow(10, -6)); assertEquals("a, b, c", withoutTail); assertEquals("a, b, c", uniqAddr.size() > 0 ? addrs.delete(addrs.length() - 2, addrs.length()).toString() : addrs.toString()); } } ``` (Full code: https://github.com/asdf2014/yuzhouwan/blob/master/yuzhouwan-hacker/src/test/java/com/yuzhouwan/hacker/algorithms/collection/StringTest.java#L38) > `RetriesExhaustedWithDetailsException#getDesc` describe is not right > -------------------------------------------------------------------- > > Key: HBASE-18470 > URL: https://issues.apache.org/jira/browse/HBASE-18470 > Project: HBase > Issue Type: Bug > Components: Client > Reporter: Benedict Jin > Assignee: Benedict Jin > Attachments: HBASE-18470.master.001.patch > > Original Estimate: 72h > Remaining Estimate: 72h > > The describe from `RetriesExhaustedWithDetailsException#getDesc` is ` > org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException: Failed 3 > actions: FailedServerException: 3 times, `, there is a not need ', ' in the > tail. -- This message was sent by Atlassian JIRA (v6.4.14#64029)