hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Enis Soztutar (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-11437) Modify cell tag handling code to treat the length as unsigned
Date Fri, 11 Jul 2014 21:42:05 GMT

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

Enis Soztutar commented on HBASE-11437:

bq. Another option would be to deprecate both 'short Cell#getTagsLength' and 'int Cell#getTagsLengthUnsigned'
in 0.98 and 0.99 and for 2.0.0 replace both with 'int Cell#getTagsLength'. Thus, in trunk
we replace a short return type with an int and keep a reasonable method name, while respecting
deprecation convention. What do you think?
This seems strange to me. If an application program wants to use this and compile against
both 1.x line and 2.x line, then there is no correct way to use the API. I think trunk patch
should include the Cell#getTagsLengthUnsigned() signature with deprecated annotation so that
users can switch. Also can you please add a javadoc for the methods explaining the reason
for deprecating, and which API they should use for which version. 
Otherwise +1 for branch-1. 

> Modify cell tag handling code to treat the length as unsigned
> -------------------------------------------------------------
>                 Key: HBASE-11437
>                 URL: https://issues.apache.org/jira/browse/HBASE-11437
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 0.98.0
>            Reporter: Anoop Sam John
>            Assignee: Anoop Sam John
>             Fix For: 0.99.0, 0.98.4, 2.0.0
>         Attachments: HBASE-11437.patch, HBASE-11437.patch, HBASE-11437.patch, HBASE-11437_0.98.patch,
HBASE-11437_branch-1.patch, HBASE-11437_trunk.patch
> We store each tag's length and total tags length with 2 bytes in KeyValue buffer, HFiles
etc and we treat these lengths as short through out the code.  So the max length can be Short.MAX_VALUE.
  We can treat these lengths as unsigned and +ve always.  So we can actually treat these lengths
as int and store with 2 bytes so that the max length can reach 65535.

This message was sent by Atlassian JIRA

View raw message