[ 
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. "win")

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: 0.96.1.1
>         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
(v6.2#6252)

Reply via email to