shahrs87 commented on a change in pull request #2706:
URL: https://github.com/apache/hbase/pull/2706#discussion_r534672875



##########
File path: 
hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java
##########
@@ -2015,7 +2015,8 @@ public static void toIOException(ServiceException se) 
throws IOException {
       kvbuilder.setTimestamp(kv.getTimestamp());
       kvbuilder.setValue(wrap(((ByteBufferExtendedCell) 
kv).getValueByteBuffer(),
         ((ByteBufferExtendedCell) kv).getValuePosition(), 
kv.getValueLength()));
-      // TODO : Once tags become first class then we may have to set tags to 
kvbuilder.
+      kvbuilder.setTags(wrap(((ByteBufferExtendedCell) kv).getTagsByteBuffer(),

Review comment:
       @anoopsjohn  Thank you for your comment.
   
   > But in a scan/get RPC call, when it is issued by a client which do not 
support CellBlock encoding, we will use this API instead of the KV codec to 
send back results.
   
   IIUC the KeyValueCodec implementation that gets used (irrespective or 
whether cell block encoding is enabled or disabled) in scan/get rpc is 
determined by [getCodec method 
here](https://github.com/apache/hbase/blob/master/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/AbstractRpcClient.java#L230).
 That is determined by conf key hbase.client.rpc.codec and 
hbase.client.default.rpc.codec and if both are not set then the default 
implementation that gets used is [KeyValueCodec from 
here](https://github.com/apache/hbase/blob/master/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/AbstractRpcClient.java#L223).
 KeyValueCodec doesn't encode/decode tags.
   
   This is the reason that I specifically overrode `hbase.client.rpc.codec` 
conf property to use `org.apache.hadoop.hbase.codec.KeyValueCodecWithTags` in 
my test case in 
[Export](https://github.com/apache/hbase/blob/master/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestImportExport.java#L856)
 and 
[Import](https://github.com/apache/hbase/blob/master/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestImportExport.java#L880)
 tool so that we can serialize and deserialize tags.
   Anoop: Could you please verify whether my understanding is correct or not ? 
Thank you !




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to