hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lars Hofhansl (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-10803) "mutateRow" maybe fail when Region Server restarted(or killed) or Region Balance
Date Sun, 23 Mar 2014 05:35:43 GMT

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

Lars Hofhansl commented on HBASE-10803:

Can you write a unit tests? When folks use specific times with deletes and then claim that
deletes or puts do not work right I get very suspicious. At what time is the delete placed
exactly and what about the time of the put? (I assume you know that you can place Deletes
into the future and have them shadow current Put or that you can date Puts into the past.
If a Put and a Delete have exactly the same timestamp the Delete will be sorted first... I.e.

Have a look at TestAtomicOperation.testRowMutationMultiThreads. Specifically how carefully
the timestamps are chosen for proper testing.

> "mutateRow" maybe fail when Region Server restarted(or killed) or Region Balance
> --------------------------------------------------------------------------------
>                 Key: HBASE-10803
>                 URL: https://issues.apache.org/jira/browse/HBASE-10803
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions:
>         Environment: hbase0.96.1.1
> hadoop2.2 
> jdk1.7
> 5 Region Server 
>            Reporter: LiJianyin
>  found that the operation "mutateRow" maybe fail if Region Server restarted(or killed)
or Region Balance, but the java client didnot throw exceptions and  there was no exception
in the server's log either. 
> the client code :
> 			HTableInterface table = connection.getTable(TABLE_NAME);
> 			Delete d = new Delete(Bytes.toBytes(rowkey), time);
> 			d.deleteColumns(FAMILY, Bytes.toBytes(id), time);
> 			Put p = new Put(Bytes.toBytes(rowkey));
> 			p.add(FAMILY_DEL, Bytes.toBytes(id), time, Bytes.toBytes(value));
> 			RowMutations rm = new RowMutations(Bytes.toBytes(rowkey));
> 			rm.add(d);
> 			rm.add(p);
> 			table.mutateRow(rm);
> 			table.close();
> the test data:
> 	Operator Type: put; mutateRow(delete+put) 
> 	Operator Total Count:202194822  put:160866148 mutateRow:41328674
> 	All put correct, but 161 mutateRow incorrect (161 data was not mutateRowed in fact).
> 	then we checked log when the time mutateRow failed, NO EXCEPTION THROWED, found that
as follow:
> 39 failed  hbase auto region-balance
> 44 failed  hbase region server killed
> 59 failed  hbase region server restart
> 19 failed  hadoop datanode restart

This message was sent by Atlassian JIRA

View raw message