junfei liang created HBASE-23158:
------------------------------------

             Summary: If KVs are in memstore, small  batch get can come across 
MultiActionResultTooLarge
                 Key: HBASE-23158
                 URL: https://issues.apache.org/jira/browse/HBASE-23158
             Project: HBase
          Issue Type: Bug
          Components: regionserver, rpc
         Environment: [^TestMultiRespectsLimitsMemstore.patch]
            Reporter: junfei liang
         Attachments: TestMultiRespectsLimitsMemstore.patch

to protect against big scan, we set   hbase.server.scanner.max.result.size  = 
10MB in our customer  hbase cluster,  however our clients  can meet 
MultiActionResultTooLarge even in small batch get (for ex. 15 batch get,  and 
row size is about 5KB ) .

after  [HBASE-14978|https://issues.apache.org/jira/browse/HBASE-14978] hbase 
take the data block reference into consideration, but the  block size is 64KB 
(the default value ), even if all cells are from different block , the block 
size retained is less than 1MB, so what's the problem ?

finally  i found that HBASE-14978 also consider the cell in memstore, as MSLAB 
is enabled default, so if the cell is from memstore, cell backend array can be 
large (2MB as default), so even if a small batch can meet this error,  is this 
reasonable ?

plus:

when throw MultiActionResultTooLarge exception,  hbase client should retry 
ignore rpc retry num,  however  if set retry num to zero, client  will fail 
without retry in this case.

 

see attachment  TestMultiRespectsLimitsMemstore  for details.

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to