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

Anoop Sam John commented on HBASE-10322:
----------------------------------------

That changes can be in another Jira [~stack]?
We need any way an RpcClient to talk with peer right?
So we have 2 options. 
1.Go with current way without any code changes.  The RpcClient used by 
ReplicationSource looks at the config "hbase.client.rpc.codec"  to know the 
codec name and uses that. This defaults to KVCodec.  As long as user don't deal 
with tags directly or indirectly (via usage of cell level ACL/ visibility 
labels) the current way works good. If tag case comes, user must
   a. Change this config value at HRS side to any of the codec with tags class. 
(We plan to give a KVCodecWithTag)
   b. Make sure upgrade the RSs in peer clusters also so that the new class 
added in 98 is available there also.
2. Introduce a new config name as in latest patch and do change is 
ReplicationSource to decorate the conf. In the attached patch a new Codec ie. 
CellCodecV2 is used as default. But I think there should not be any default 
value for this codec because of the below reason. (Default value should be 
value of the old config with thats default as KVCodec)
Suppose the src cluster user is upgrading to 98 (or later versions in future) 
But the peer is still in 96 .
When the replication src write using new Codec class, the destination will need 
the codec class to be present in it also. So this make it necessary for the 
peer also should be upgraded. What abt rolling upgrade then?
So even if the new config is there or not, the def codec should not change.  

Out of these 2 options which one you guys prefer?   Can give a patch 
accordingly.


> Strip tags from KV while sending back to client on reads
> --------------------------------------------------------
>
>                 Key: HBASE-10322
>                 URL: https://issues.apache.org/jira/browse/HBASE-10322
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.98.0
>            Reporter: Anoop Sam John
>            Assignee: Anoop Sam John
>            Priority: Blocker
>             Fix For: 0.98.0, 0.99.0
>
>         Attachments: HBASE-10322.patch, HBASE-10322_V2.patch, 
> HBASE-10322_codec.patch
>
>
> Right now we have some inconsistency wrt sending back tags on read. We do 
> this in scan when using Java client(Codec based cell block encoding). But 
> during a Get operation or when a pure PB based Scan comes we are not sending 
> back the tags.  So any of the below fix we have to do
> 1. Send back tags in missing cases also. But sending back visibility 
> expression/ cell ACL is not correct.
> 2. Don't send back tags in any case. This will a problem when a tool like 
> ExportTool use the scan to export the table data. We will miss exporting the 
> cell visibility/ACL.
> 3. Send back tags based on some condition. It has to be per scan basis. 
> Simplest way is pass some kind of attribute in Scan which says whether to 
> send back tags or not. But believing some thing what scan specifies might not 
> be correct IMO. Then comes the way of checking the user who is doing the 
> scan. When a HBase super user doing the scan then only send back tags. So 
> when a case comes like Export Tool's the execution should happen from a super 
> user.
> So IMO we should go with #3.
> Patch coming soon.



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

Reply via email to