FineAndDandy opened a new issue, #3217:
URL: https://github.com/apache/accumulo/issues/3217

   **Describe the bug**
   Tablet.needsSplit() calls Tablet.findSplitRow(...) which may call 
FileUtil.findMidPoint(). This call is potentially very expensive, and due to 
Tablet.needsSplit() being synchronized may block what should be short 
operations. 
   
   **Versions (OS, Maven, Java, and others, as appropriate):**
    - Affected version(s) of this project: 1.x, 2.x
   
   **To Reproduce**
   Steps to reproduce the behavior (or a link to an example repository that 
reproduces the problem):
   1. Suspend idle compactions
   2. Set the compaction threshold very high
   3. Create a very large tablet
   4. Drop the split threshold below the tablet size
   7. Attempt to bulk load a file into the tablet
   8. Observe the bulk load to timeout as a split point is computed
   
   **Expected behavior**
   Because the tablet is over the estimated size, the bulkLoad should return 
quickly and trigger TabletServer.executeSplit(...) which should do the actual 
computation of the split point and all validation rather than the needsSplit().
   
   
   **Additional context**
   There is some state that is computed/held in the tablet when the splitPoint 
is calculated that either has to be moved or added another way.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to