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

Lars Hofhansl commented on HBASE-8458:
--------------------------------------

Alright... It should not be that hard to add (and in a backward compatible):
* Introduce a CheckAndRowMutation class that implements Row.
* Add handling to the multi at the region sever. Can just handle it like multi 
get at the RS, and just call HRegion.get(...) in a loop. Later we can optimize 
this similar to miniBatchMutation.
* Use existing batch method on HTable.
* Keep the old API in 0.94 and 0.96 (or only do this in 0.98+ and remove the 
old API)


> 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
>
> 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
(v6.1.5#6160)

Reply via email to