hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vinod (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-8626) RowMutations fail when Delete and Put on same columnFamily/column/row
Date Wed, 29 May 2013 09:25:23 GMT

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

Vinod commented on HBASE-8626:
------------------------------

I think this becomes relevant when I want to remove all columns in a column family followed
by adding some new columns to the same column family atomically.

Here is my original use-case which lead to this, please suggest how else I can achieve the
same?
	
I have a HBase (v0.94.7) table with a single column family and columns are added to it over
time. These columns are named as the timestamp they were created, so unless I query the row
I do not know what all columns it has.

Now given a row, I want to _atomically_ remove all the existing columns of this column family
and add a new set of columns and values.

So I thought of using HBase's RowMutations like:

--------------
RowMutations mutations = new RowMutations(row);

//delete the column family
Delete delete = new Delete(row);
delete.deleteFamily(cf);

//add new columns
Put put = new Put(row);
put.add(cf, col1, v1);
put.add(cf, col2, v2);

//delete column family and add new columns to same family
mutations.add(delete);
mutations.add(put);

table.mutateRow(mutations);
--------------

But what this code ends up doing is just deleting the column family, it does not add the new
columns to the column family.
                
> RowMutations fail when Delete and Put on same columnFamily/column/row
> ---------------------------------------------------------------------
>
>                 Key: HBASE-8626
>                 URL: https://issues.apache.org/jira/browse/HBASE-8626
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 0.94.7, 0.95.0
>         Environment: Ubuntu 12.04, HBase 0.94.7
>            Reporter: Vinod
>            Assignee: Ted Yu
>             Fix For: 0.94.7, 0.95.1
>
>         Attachments: 8626-v1.txt, TestRowMutations.java, tests_for_row_mutations1.patch
>
>
> When RowMutations have a Delete followed by Put to same column family or columns or rows,
only the Delete is happening while the Put is ignored so atomicity of RowMutations is broken
for such cases.
> Attached is a unit test where the following tests are failing:
> - testDeleteCFThenPutInSameCF: Delete a column family and then Put to same column family.
> - testDeleteColumnThenPutSameColumn: Delete a column and then Put to same column.
> - testDeleteRowThenPutSameRow: Delete a row and then Put to same row

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message