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

Jan Hentschel commented on HBASE-18573:
---------------------------------------

[~water] Got your point, but I think the problem appears at a different place. 
The list inside *add* isn't exposed to Append directly. So, calling *add* on 
Append multiple times isn't the problem. The old code didn't took the list in 
the *familyMap* into account when adding the same family multiple times. At 
this point it could happen that the backing list in the *familyMap* inflates 
more frequently. Nevertheless, this problem is solved with your change.

> Update Append and Delete to use Mutation#getCellList(family)
> ------------------------------------------------------------
>
>                 Key: HBASE-18573
>                 URL: https://issues.apache.org/jira/browse/HBASE-18573
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Xiang Li
>            Assignee: Xiang Li
>            Priority: Minor
>             Fix For: 3.0.0, 1.4.0, 1.5.0, 2.0.0-alpha-3
>
>         Attachments: HBASE-18573.master.000.patch
>
>
> In addxxx() of Put and Increment, Mutation#getCellList(family) is called to 
> get cell list from familyMap. But in the other 2 sub-class of Mutation: 
> Append and Delete, the logic like Mutation#getCellList(family) is used, like
> {code}
>     List<Cell> list = familyMap.get(family);
>     if(list == null) {
>       list = new ArrayList<>(1);
>     }
> {code}
> in
> {code}
> public Delete addColumn(byte [] family, byte [] qualifier, long timestamp)
> {code}
> of Delete
> We could make them to call Mutation#getCellList(family) to get better 
> encapsulation



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to