[
https://issues.apache.org/jira/browse/HBASE-16888?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15591469#comment-15591469
]
ChiaPing Tsai commented on HBASE-16888:
---------------------------------------
hi [~anoop.hbase]
{noformat}
Cell clonedBaseCell = ((ShareableMemory) this.cell).cloneToCell();
{noformat}
The ShareableMemory#cloneToCell will clone the tags, but the tags copy will
never be used. Because TagRewriteCell receives the "this.tags" as the return
value of Cell#getTagsLength, Cell#getTagsOffset and Cell#getTagsArray.
{noformat}
return new TagRewriteCell(clonedBaseCell, this.tags);
{noformat}
Sorry if i made any mistake.
Thanks.
> Avoid unnecessary tags copy in Append
> -------------------------------------
>
> Key: HBASE-16888
> URL: https://issues.apache.org/jira/browse/HBASE-16888
> Project: HBase
> Issue Type: Improvement
> Affects Versions: 2.0.0
> Reporter: ChiaPing Tsai
> Assignee: ChiaPing Tsai
> Priority: Minor
> Fix For: 2.0.0
>
> Attachments: HBASE-16888.v0.patch
>
>
> a) If the delta has tags and the mutation doesn’t apply the TTL, we shouldn’t
> create the TagRewriteCell.
> {noformat}
> List<Tag> tags = TagUtil.carryForwardTags(delta);
> long ts = now;
> Cell newCell = null;
> byte [] row = mutation.getRow();
> if (currentValue != null) {
> ...
> } else {
> // Append's KeyValue.Type==Put and ts==HConstants.LATEST_TIMESTAMP
> CellUtil.updateLatestStamp(delta, now);
> newCell = delta;
> tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());
> if (tags != null) {
> newCell = CellUtil.createCell(delta, tags);
> }
> }
> {noformat}
> b) If the cell has tags, the ShareableMemoryTagRewriteCell will make
> duplicate copy of tags.
> {noformat}
> Cell clonedBaseCell = ((ShareableMemory) this.cell).cloneToCell();
> return new TagRewriteCell(clonedBaseCell, this.tags);
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)