[ https://issues.apache.org/jira/browse/HBASE-5625?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13266438#comment-13266438 ]
jirapos...@reviews.apache.org commented on HBASE-5625: ------------------------------------------------------ ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/4607/ ----------------------------------------------------------- (Updated 2012-05-02 08:36:45.758830) Review request for hbase. Changes ------- Modified 'Result' private buffer reallocation to pad to a size equal to the smallest multiple of a configurable constant. Summary ------- When calling Result.getValue(), an extra dummy KeyValue and its associated underlying byte array are allocated, as well as a persistent buffer that will contain the returned value. These can be avoided by reusing a static array for the dummy object and by passing a ByteBuffer object as a value destination buffer to the read method. This addresses bug HBASE-5625. https://issues.apache.org/jira/browse/HBASE-5625 Diffs (updated) ----- src/main/java/org/apache/hadoop/hbase/KeyValue.java 9ae9e02 src/main/java/org/apache/hadoop/hbase/client/Result.java df0b3ef src/test/java/org/apache/hadoop/hbase/TestKeyValue.java 786d2df src/test/java/org/apache/hadoop/hbase/client/TestResult.java f9e29c2 Diff: https://reviews.apache.org/r/4607/diff Testing ------- Added value check to TestResult#testBasic and TestResult.testMultiVersion. Thanks, Tudor > Avoid byte buffer allocations when reading a value from a Result object > ----------------------------------------------------------------------- > > Key: HBASE-5625 > URL: https://issues.apache.org/jira/browse/HBASE-5625 > Project: HBase > Issue Type: Improvement > Components: client > Affects Versions: 0.92.1 > Reporter: Tudor Scurtu > Assignee: Tudor Scurtu > Labels: patch > Fix For: 0.96.0 > > Attachments: 5625.txt, 5625v2.txt, 5625v3.txt, 5625v4.txt, > 5625v5.txt, 5625v6.txt, 5625v7.txt, 5625v8.txt > > > When calling Result.getValue(), an extra dummy KeyValue and its associated > underlying byte array are allocated, as well as a persistent buffer that will > contain the returned value. > These can be avoided by reusing a static array for the dummy object and by > passing a ByteBuffer object as a value destination buffer to the read method. > The current functionality is maintained, and we have added a separate method > call stack that employs the described changes. I will provide more details > with the patch. > Running tests with a profiler, the reduction of read time seems to be of up > to 40%. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira