[
https://issues.apache.org/jira/browse/HBASE-7899?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
stack updated HBASE-7899:
-------------------------
Attachment: 7899.txt
Here is an overview of the patch:
Moved classes around.
Removed cell package in hbase-common. Most of its fundamental
content went to the top level. Other classes went into io package.
Classes used by prefix-tree went up into that module for now (e.g.
CellScannerPosition). CellScanner was moved out of prefix-tree
and up into hbase-common.
In CellScanner, changed the method named getCurrent to just get
(goes better w/ the adjacent getDeepCopy)
Also, moved the resetBeforeFirstEntry out of CellScanner and into
CellSearcher in prefix-tree; being able to backup seems to against
what CellScanner is about.
Added new CellScannerable class. Ugly name but modeled on Iterable.
Needed to mark classes that I can
get a CellScanner on. Everything that carries a Cell will implement
this interface so you can iterate its Cell content. See class comment
on CellScanner why we want a CellScanner over Cells rather than a
Cell Iterator (in short, with CellScanner, we do not have to keep
a Cell around between next and figuring hasNext; less context). In
particular, need this in rpc so can get at the Cells whether a Put,
Append, etc.
CellTool moved and added utilty for putting CellScanner decorator on
array of Cells, list of Cells, list of CellScannerables, etc.
Added simple Cell codec package with a few implementations including
an encoder that mimics our current serialization of KeyValue (one
other implementation using protobuf will come in later along w/ a class
that compares codecs) These codecs are used to make Cell blocks.
Cell blocks are like EncodedDataBlocks only they do not presume KeyValue
version one serialization nor do they have hfile pollution. These codecs will
optionally be used to carry Cells outside of protobuf across rpc.
One day they might be used writing blocks to hfiles. Internally
Results might carry Cell blocks instead of arrays of Cells.
Add to KeyValue serialization that does not use DataInput/OutputStream
but uses more base Input/OutputStream. Makes it so Cell codecs can be
more basic and used in more contexts.
In prefix-tree mostly adjustments because of class moves in hbase-common.
CellScannerPosition was moved local to this module. CellScanner#getCurrent
was renamed #get.
> Cell block building tools: Cell codec and means of iterating an objects Cells
> -----------------------------------------------------------------------------
>
> Key: HBASE-7899
> URL: https://issues.apache.org/jira/browse/HBASE-7899
> Project: HBase
> Issue Type: Task
> Components: IPC/RPC
> Reporter: stack
> Priority: Blocker
> Fix For: 0.96.0
>
> Attachments: 7899.txt
>
>
> In our rpc specification,
> https://docs.google.com/document/d/1-1RJMLXzYldmHgKP7M7ynK6euRpucD03fZ603DlZfGI/edit#,
> we talk of passing lots of Cells outside of protobuf. We do it using Cell
> blocks. There are blobs filled with Cells that are encoded variously and
> optionally compressed.
> This issue is about adding to hbase-common basic facility for building Cell
> blocks. It includes a codec Interface for encoding/decoding Cell blocks as
> well as a means of iterating an objects Cell content (prefix-tree's
> CellScanner).
> This is a subtask of HBASE-7898 Serializing Cells over RPC
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira