Bryan Beaudreault created HBASE-28000: -----------------------------------------
Summary: Empty Increments in batch calls are too expensive Key: HBASE-28000 URL: https://issues.apache.org/jira/browse/HBASE-28000 Project: HBase Issue Type: Bug Reporter: Bryan Beaudreault When an Increment is submitted via table.increment, we have a check which throws an exception if the Increment is empty. There is no such check when Increment is submitted through table.batch(). When this Increment makes its way to the server, it makes it all the way down past taking a row lock before the first check as to whether the Increment has any columns in it. Finally when we go to fetch the current cells from the table for atomic update, the fact that getFamilyMap() is empty starts to matter. Even still, beyond that I think we might still end up writing a somewhat useless WALEdit. The big issue here is the row lock, as this causes contention under certain hotspot access patterns which greatly exacerbate the hotspot. On the server side, we should check for whether the Increment is empty before even attempting to serve it. On the client side, we should probably also iterate the batch and check for emptiness. -- This message was sent by Atlassian Jira (v8.20.10#820010)