[
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)