Comment 6 for bug 1417337

Revision history for this message
Joanie Cooper (joanie-cooper) wrote :

A new configurable memory usage threshold and query throttle mechanism has been delivered to the TrxRegionEndpoint coprocessor. This feature provides a throttling mechanism to either post a trace message indicating the memoryUsage for the regionserver process has exceeded the configured threshold or return an error to the coprocessor RPC call.

 For example:

We could detect and send an error when we’ve reached a preconfigured memory usage threshold, e.g. 90%

>>delete from j1 where a = 3;

*** ERROR[8448] Unable to access Hbase interface. Call to ExpHbaseInterface::deleteRow returned error HBASE_ACCESS_ERROR(-705). Cause:
java.io.IOException: org.apache.hadoop.hbase.client.transactional.MemoryUsageException: checkAndDelete memory usage exceeds 90 percent
org.apache.hadoop.hbase.client.transactional.TransactionalTable.checkAndDelete(TransactionalTable.java:361)
org.apache.hadoop.hbase.client.transactional.RMInterface.checkAndDelete(RMInterface.java:196)
org.trafodion.sql.HBaseAccess.HTableClient.checkAndDeleteRow(HTableClient.java:773)
.

--- 0 row(s) deleted.

The default settings for the memoryUsage threshold is 100%. The memoryUsage throttling is set to "warn only" with a boolean value of "true".
The memoryUsage thread is set to sleep for "15" seconds.

To reconfigure these settings use the hbase configuration properties:

"hbase.transaction.memory.threshold" - what is the memoryUsage threshold, default is 100%.
"hbase.transaction.memory.warn.only" - what is the memoryUsage throttling (warning trace message or return error), default is true.
"hbase.transaction.memory.sleep" - what is the new memoryUsage regionserver thread sleep time, default is 15 seconds