hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "jiraposter@reviews.apache.org (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-3584) Allow atomic put/delete in one call
Date Wed, 18 Jan 2012 21:18:41 GMT

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

jiraposter@reviews.apache.org commented on HBASE-3584:
------------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/3481/#review4445
-----------------------------------------------------------



http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
<https://reviews.apache.org/r/3481/#comment9976>

    @Lars: Sorry about the late question. I would like to understand the following case.
    
    What if we crash in between this loop?
    
    Is it possible that we have persisted half the WALEdits, but not gotten to the rest?
    
    I am concerned, that if that were the case (hopefully not) then on RS restart, we will
replay, a partial list of mutations from "arm".
    
    
    
    


- Amitanand


On 2012-01-13 17:11:21, Lars Hofhansl wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/3481/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2012-01-13 17:11:21)
bq.  
bq.  
bq.  Review request for hbase.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  Add API for atomic row mutations to HBase (currently Put and Delete).
bq.  
bq.  Client API would look like this:
bq.      Delete d = new Delete(ROW);
bq.      Put p = new Put(ROW);
bq.      ...
bq.      AtomicRowMutation arm = new AtomicRowMutation(ROW);
bq.      arm.add(p);
bq.      arm.add(d);
bq.      myHtable.mutateAtomically(arm);
bq.  
bq.  
bq.  This addresses bug HBASE-3584.
bq.      https://issues.apache.org/jira/browse/HBASE-3584
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/AtomicRowMutation.java
PRE-CREATION 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HTable.java
1231172 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HTableInterface.java
1231172 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/CoprocessorHost.java
1231172 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/io/HbaseObjectWritable.java
1231172 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java
1231172 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
1231172 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
1231172 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/client/RemoteHTable.java
1231172 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java
1231172 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverInterface.java
1231172 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestAtomicOperation.java
1231172 
bq.  
bq.  Diff: https://reviews.apache.org/r/3481/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  * Simple functional test: TestFromClientSide.testAtomicRowMutation
bq.  * Multithreaded stress test: TestAtomicOperation.testAtomicMutationMultiThreads
bq.  * coprocessor test: TestRegionObserverInterface.testAtomicRowMutation
bq.  * manual testing
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Lars
bq.  
bq.


                
> Allow atomic put/delete in one call
> -----------------------------------
>
>                 Key: HBASE-3584
>                 URL: https://issues.apache.org/jira/browse/HBASE-3584
>             Project: HBase
>          Issue Type: New Feature
>          Components: client, coprocessors, regionserver
>            Reporter: ryan rawson
>            Assignee: Lars Hofhansl
>             Fix For: 0.94.0
>
>         Attachments: 3584-final.txt, 3584-v1.txt, 3584-v3.txt
>
>
> Right now we have the following calls:
> put(Put)
> delete(Delete)
> increment(Increments)
> But we cannot combine all of the above in a single call, complete with a single row lock.
 It would be nice to do that.
> It would also allow us to do a CAS where we could do a put/increment if the check succeeded.
> -----
> Amendment:
> Since Increment does not currently support MVCC it cannot be included in an atomic operation.
> So this for Put and Delete only.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message