[
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)