keith-turner opened a new issue, #5181:
URL: https://github.com/apache/accumulo/issues/5181

   **Is your feature request related to a problem? Please describe.**
   
   Attempted to intiate many compaction for many small ranges of a table.  As 
more compactions were started the fate operations for each took longer and 
longer to get a FateLock.  Looking at jstacks the code was  
[here](https://github.com/apache/accumulo/blob/32d3ca8efe04d43e08c1ad2a23f7da560ef006f7/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/compact/CompactRange.java#L83-L87)
 and  called 
[this](https://github.com/apache/accumulo/blob/32d3ca8efe04d43e08c1ad2a23f7da560ef006f7/core/src/main/java/org/apache/accumulo/core/fate/zookeeper/FateLock.java#L106)
 and would spend time there.  Each fate operation that was added would make the 
getData calls for all others that had been added before.
   
   **Describe the solution you'd like**
   
   Attempt to avoid the calls to getData by encoding the information in the 
node name.  The information stored in the data for the node is a fate uuid and 
whether its a read or write lock.  This information could be encoded in the 
node name.  Then the single RPC to zookeeper to getChildren would get call 
needed information.  This would avoid making the RPC for each child to getData.
   
   #5180 will improve the situation somewhat, but there could still be a lot of 
RPCs.
   
   **Additional context**
   
   Not sure if this would be suitable for an IT, but would may be good to try.  
Could try to make an IT for this creates a table w/ 1K tablets and then spins 
up 1K compactions via API one per tablet.   Can try running this before and 
after the change and looking at the CompactRange.isReady times.   Could try 
increasing 1K also and looking at the time differences as that increases.
   
   


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