Re-reading https://issues.apache.org/jira/browse/HBASE-8693 that Sergey
pointed out, I more think that the maybe getType() was misintepreted
from what Nick originally meant it to be. Maybe intentional, maybe not.
I don't think getTimestamp() should be removed -- when we store multiple
versions of a Key, users should be able to reconcile the Cells client
side (e.g. consider a CP which performs some custom merging logic).
getSequenceId() I'd agree probably doesn't belong. getTag() I'll hold
off judgement because I'm constantly biased into thinking the feature is
something that it isn't :)
You agree with Ram's suggestion for helper methods as a way forward?
On 10/27/17 7:29 AM, Chia-Ping Tsai wrote:
The CellBuilder#Data type is introduced to make sure all components used to
builder cell are IA.Public.
bq. Best as I can tell, Cell#getType() should be deprecated
As i see it, the Cell#getType, #getTimestamp, #getSequenceId, and #getTag should be
deprecated as these methods is some kind of internal info of storage engine. As a
key-value store, the key consisting of row, family, and qualifier is enough to the
general purpose. Other fields belong to the specific storage engine, and they should not
be in the Cell which is our "frontline" interface of data.
On 2017-10-27 06:40, Josh Elser <[email protected]> wrote:
Hiya,
(Background: see HBASE-19002)
In trying to write some example Observers, I found myself in a pickle:
how do I tell if a Cell is a Put?
* Cell#getType() returns a byte which corresponds to a KeyValue.Type
* KeyValue.Type has API to convert a byte to Type
* KeyValue (and thus KeyValue.Type) is IA.Private
* DataType o.a.h.h.typesDataType _appears to me_ to be the replacement
for the KeyValue.Type
Best as I can tell, Cell#getType() should be deprecated and we should
have some kind of API (method on Cell or CellUtil) which returns a
DataType instead of Type. The details of the byte and the KeyValue.Type
should be hidden inside the implementation.
My hunch is that this is an accidental omission, but Stack recommended
that I "ask the class" ;). What have I missed? I think this is trivial
to fix; obviously, I don't want to make a fix if I just didn't look hard
enough.
Thanks!
- Josh