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-5229) Provide basic building blocks for "multi-row" local transactions.
Date Wed, 08 Feb 2012 01:11:00 GMT

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

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



bq.  On 2012-02-08 01:06:21, Ted Yu wrote:
bq.  >

Ah yes, good catch as usual. If there're no further comments, I'll do that on commit.
Thanks Ted.


bq.  On 2012-02-08 01:06:21, Ted Yu wrote:
bq.  > http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/MultiRowMutationProtocol.java,
line 28
bq.  > <https://reviews.apache.org/r/3748/diff/5/?file=72962#file72962line28>
bq.  >
bq.  >     Replace operations with transactions.

And presumably remove "atomic" as it is implied by transaction, right?


- Lars


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


On 2012-02-08 00:15:28, Lars Hofhansl wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/3748/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2012-02-08 00:15:28)
bq.  
bq.  
bq.  Review request for hbase.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  This builds on HBASE-3584, HBASE-5203, and HBASE-5304.
bq.  
bq.  Multiple Rows can be locked and applied atomically as long as the application ensures
that all rows reside in the same Region (by presplitting or a custom RegionSplitPolicy).
bq.  At SFDC we can use this to colocate subsets of a tenant's data and allow atomic operations
over these subsets.
bq.  
bq.  Obviously this is an advanced features and this prominently called out in the Javadoc.
bq.  
bq.  
bq.  This addresses bug HBASE-5229.
bq.      https://issues.apache.org/jira/browse/HBASE-5229
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/MultiRowMutationEndpoint.java
PRE-CREATION 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/MultiRowMutationProtocol.java
PRE-CREATION 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
1241536 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
1241536 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java
1241536 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestAtomicOperation.java
1241536 
bq.  
bq.  Diff: https://reviews.apache.org/r/3748/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  Tests added to TestFromClientSide and TestAtomicOperation
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Lars
bq.  
bq.


                
> Provide basic building blocks for "multi-row" local transactions.
> -----------------------------------------------------------------
>
>                 Key: HBASE-5229
>                 URL: https://issues.apache.org/jira/browse/HBASE-5229
>             Project: HBase
>          Issue Type: New Feature
>          Components: client, regionserver
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>             Fix For: 0.94.0
>
>         Attachments: 5229-endpoint.txt, 5229-multiRow-v2.txt, 5229-multiRow.txt, 5229-seekto-v2.txt,
5229-seekto.txt, 5229.txt
>
>
> In the final iteration, this issue provides a generalized, public mutateRowsWithLocks
method on HRegion, that can be used by coprocessors to implement atomic operations efficiently.
> Coprocessors are already region aware, which makes this is a good pairing of APIs. This
feature is by design not available to the client via the HTable API.
> It took a long time to arrive at this and I apologize for the public exposure of my (erratic
in retrospect) thought processes.
> Was:
> HBase should provide basic building blocks for multi-row local transactions. Local means
that we do this by co-locating the data. Global (cross region) transactions are not discussed
here.
> After a bit of discussion two solutions have emerged:
> 1. Keep the row-key for determining grouping and location and allow efficient intra-row
scanning. A client application would then model tables as HBase-rows.
> 2. Define a prefix-length in HTableDescriptor that defines a grouping of rows. Regions
will then never be split inside a grouping prefix.
> #1 is true to the current storage paradigm of HBase.
> #2 is true to the current client side API.
> I will explore these two with sample patches here.
> --------------------
> Was:
> As discussed (at length) on the dev mailing list with the HBASE-3584 and HBASE-5203 committed,
supporting atomic cross row transactions within a region becomes simple.
> I am aware of the hesitation about the usefulness of this feature, but we have to start
somewhere.
> Let's use this jira for discussion, I'll attach a patch (with tests) momentarily to make
this concrete.

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