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 Tue, 22 Mar 2016 17:48:25 GMT

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

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

Agreed user will not know what to do w/ this new API  "Save an unknown and unmeasurable amount
of resources serverside by setting this value... " This is not the sort of stuff we should
be bothering our users with. Before you know, a mythology will build up that playing with
this setting is the difference between cluster life and death. Lets just do the work serverside
for the user and not bother them with such minuitae.

> 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