bq. You agree with Ram's suggestion for helper methods as a way forward?
Adding the CellUtil#isPut() is ok to me as the PUT is a basic operation in 
hbase.

On 2017-10-28 00:58, Josh Elser <[email protected]> wrote: 
> 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
> >>
> 

Reply via email to