hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ramkrishna.s.vasudevan (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-7320) Remove KeyValue.getBuffer()
Date Thu, 13 Feb 2014 12:04:19 GMT

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

ramkrishna.s.vasudevan commented on HBASE-7320:
-----------------------------------------------

Replacing KeyValues with cells
==============================
I am trying to work on this, as a first step seeing how to replace the references to Keyvalue
as cells and seeing how to ensure a new KeyValue format to fit in this code base.
Currently everywhere in the code we are passing KeyValue in the args and also returning keyvalue
everywhere.
There are some places where there are specific instances of Keyvalue methods getting used
like in TimeRangeTracker isDeleteColumnOrFamily. Already CellUtil.java has some of them.
I think we can move this to some helper class.

When we trying to apply a different format of KeyValue say if we have individual byte arrays
for rows, families, qualifiers, values and tags (if present), like Cellcodec
we need to handle these cases.  
As in the comment 
https://issues.apache.org/jira/browse/HBASE-7320?focusedCommentId=13882073&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13882073
we may have to change the existing keyvalue only but support a new format, that would help
us in avoiding these problems.

Also take the case if we implement a new Cell type then every where we may need to instantiate
that new class but reference it with a cell. And change the args
and return type every where to Cell.
In turn this would require changes through out the code.
KVComparator some of the apis still take KeyValue as the argument.  I think we could change
that.
Should Cell interface itself extend HeapSize and Cloneable?  I think this would be needed.
- (I can file JIRA for these two points).  
Memstore.maybeCloneWithAllocator is one place where may have to use the clone method of the
Cell's implementation

In StoreFileScanner we do reseekTo and seekTo that seeks to a key ( this is not the rowkey).
 So can we change this to the rowkey?
Also I would suggest that all the StoreScanner, KeyValueSCanner etc. interfaces can be changed
to work with Cell like the seek, reseek etc.  Let me know what you guys feel so that I can
raise individual subtasks for them.

> Remove KeyValue.getBuffer()
> ---------------------------
>
>                 Key: HBASE-7320
>                 URL: https://issues.apache.org/jira/browse/HBASE-7320
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Lars Hofhansl
>            Assignee: stack
>             Fix For: 0.99.0
>
>         Attachments: 7320-simple.txt
>
>
> In many places this is simple task of just replacing the method name.
> There, however, quite a few places where we assume that:
> # the entire KV is backed by a single byte array
> # the KVs key portion is backed by a single byte array
> Some of those can easily be fixed, others will need their own jiras.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Mime
View raw message