hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "LiJianyin (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 11:40:43 GMT

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

LiJianyin commented on HBASE-10803:

Thanks, Lars Hofhansl, stack. I'll try to write  a unit tests.
in addition´╝Ü

	two column family: CF1, CF0
 	addOrUpdate: put->CF1 with the timestamp
 	delete(mutateRow): delete->CF1(deleteColumns) and put->CF0 with the same timestamp
 	all timestamps are from client (System.currentTimeMillis())
	so, if delete(mutateRow) success, the CF0 must have value.  but the result is not so.
 	for example: (rowkey+qualifier only in DEL_SUCCESS_LOG)
 		in the DEL_SUCCESS_LOG:
			 timestamp:1394601911543  rowkey:361523835735633 qualifier:3670583952628921 value:0
		--result: there is no value in CF0 with the rowkey+qualifier
         	another example: (the same rowkey+qualifier are both in DEL_SUCCESS_LOG and PUT_SUCCESS_LOG)
			timestamp:1394601634849  rowkey:213772920506212 qualifier:3687288854440310 value:0
			timestamp:1394601913327  rowkey:213772920506212 qualifier:3687288854440310 value:0
		--result: CF1 with the rowkey+qualifier+timestamp 1394601634849 has the value, but no value
in CF0  with the rowkey+qualifier

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