[
https://issues.apache.org/jira/browse/HBASE-14995?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15062329#comment-15062329
]
ramkrishna.s.vasudevan commented on HBASE-14995:
------------------------------------------------
Ya. We need some optimization here. Good catch. Even I thought it is
TagRewriteCell or NoTagsKeyValue.. Atleast during compaction case we can be
sure that there will not be much parsing because it is always NoTagsKV or
TAgsKeyValue. Only during flush this may happen. We can optimize this not
directly in the hot path but still better to do it.
> Optimize setting tagsPresent in DefaultMemStore.java
> ----------------------------------------------------
>
> Key: HBASE-14995
> URL: https://issues.apache.org/jira/browse/HBASE-14995
> Project: HBase
> Issue Type: Improvement
> Components: regionserver
> Affects Versions: 2.0.0, 1.2.0
> Reporter: huaxiang sun
> Assignee: huaxiang sun
> Attachments: HBASE-14995-v001.patch, HBASE-14995-v002.patch
>
>
> The current implementation calls e.getTagsLength() for each cell. Once
> tagsPresent is set, e.getTagsLength() can be avoided.
> {code}
> private boolean addToCellSet(Cell e) {
> boolean b = this.cellSet.add(e);
> // In no tags case this NoTagsKeyValue.getTagsLength() is a cheap call.
> // When we use ACL CP or Visibility CP which deals with Tags during
> // mutation, the TagRewriteCell.getTagsLength() is a cheaper call. We do
> not
> // parse the byte[] to identify the tags length.
> if(e.getTagsLength() > 0) {
> tagsPresent = true;
> }
> setOldestEditTimeToNow();
> return b;
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)