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

Toshihiro Suzuki commented on HBASE-8458:
-----------------------------------------

I created a new PR for this: https://github.com/apache/hbase/pull/1320

This change has Protocol Buffers level changes. I moved MultiRequest#condition 
to RegionAction and MultiResponse#processed to RegionActionResult. However, I 
still keep them for backward compatibility. This change affects 
checkAndMutate() with RowMutations and mutateRow(). After this change, old 
clients (before applying this patch) will be able to access to new 
RegionServers, but new clients (after applying this patch) will fail to access 
to old RegionServers when performing checkAndMutate() with RowMutations and 
mutateRow().

Could you please review this when you get a chance? [~zhangduo] [~stack] 
[~ndimiduk]

One more thing I would like to discuss here is whether we can commit this to 
branch-2 and branch-2.3 or not. Even after this change, old clients can access 
to the RegionServer as expected, but not vice versa. What do you think?

> Support for batch version of checkAndPut() and checkAndDelete()
> ---------------------------------------------------------------
>
>                 Key: HBASE-8458
>                 URL: https://issues.apache.org/jira/browse/HBASE-8458
>             Project: HBase
>          Issue Type: Improvement
>          Components: Client, regionserver
>    Affects Versions: 0.95.0
>            Reporter: Hari Mankude
>            Assignee: Toshihiro Suzuki
>            Priority: Major
>
> The use case is that the user has multiple threads loading hundreds of keys 
> into a hbase table. Occasionally there are collisions in the keys being 
> uploaded by different threads. So for correctness, it is required to do 
> checkAndPut() instead of a put(). However, doing a checkAndPut() rpc for 
> every key update is non optimal. It would be good to have a batch version of 
> checkAndPut() similar to batch put(). The client can partition the keys on 
> region boundaries.
> The jira is NOT looking for any type of cross-row locking or multi-row 
> atomicity with checkAndPut()
> Batch version of checkAndDelete() is a similar requirement.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to