hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-15493) Default ArrayList size may not be optimal for Mutation
Date Wed, 23 Mar 2016 22:21:25 GMT

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

stack commented on HBASE-15493:
-------------------------------

I have changed my mind after getting off the phone call with a smart operator, totally confused
by the profusion off configs and options badly confused by our poor namings ("Is the queue
size XYZ doing the same thing as the queue size ABC?"). Now I no longer think there are 1%
who are "advanced" able to tune by reading code and doc. I do not think there any. Lets do
it 'right' or not bother.


> Default ArrayList size may not be optimal for Mutation
> ------------------------------------------------------
>
>                 Key: HBASE-15493
>                 URL: https://issues.apache.org/jira/browse/HBASE-15493
>             Project: HBase
>          Issue Type: Improvement
>          Components: Client, regionserver
>    Affects Versions: 2.0.0
>            Reporter: Vladimir Rodionov
>            Assignee: Vladimir Rodionov
>             Fix For: 2.0.0
>
>         Attachments: HBASE-15493-v1.patch, HBASE-15493-v2.patch
>
>
> {code}
>   List<Cell> getCellList(byte[] family) {
>     List<Cell> list = this.familyMap.get(family);
>     if (list == null) {
>       list = new ArrayList<Cell>();
>     }
>     return list;
>   }
> {code}
> Creates list of size 10, this is up to 80 bytes per column family in mutation object.

> Suggested:
> {code}
>   List<Cell> getCellList(byte[] family) {
>     List<Cell> list = this.familyMap.get(family);
>     if (list == null) {
>       list = new ArrayList<Cell>(CELL_LIST_INITIAL_CAPACITY);
>     }
>     return list;
>   }
> {code}
> CELL_LIST_INITIAL_CAPACITY = 2 in the patch, this is debatable. For mutation where every
CF has 1 cell, this gives decent reduction in memory allocation rate in both client and server
during write workload. ~2%, not a big number, but as I said, already, memory optimization
will include many small steps.



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

Mime
View raw message