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

   **Describe the bug**
   
   While testing splitting lots of tablets it was observed that seeding the 
split fate transactions was the bottleneck and not running the actual fate 
operation.  Looking at [the 
code](https://github.com/apache/accumulo/blob/bbfd250d8694c210faf31116d199b56570c46f38/core/src/main/java/org/apache/accumulo/core/fate/Fate.java#L421-L455)
 there is a lot of back and forth to the seed a fate transaction
   
    1. Do conditional mutation reserve
    2. Do a scan to see if there is a top on the stack
    3. Do a conditional mutation to set the transaction info
    4. Do a conditional mutation to set the transaction info
    5. Do a conditional mutation to set the status
   
   All of this could likely be done in a single conditional mutation.  This 
would avoid the scan and doing multiple conditional mutations.  Observed this 
while looking into splits, but improving this would speed up compaction commit 
and split.
   
   **Expected behavior**
   If possible a single conditional mutation is run to seed a fate transaction.
   
   **Additional context**
   
   There may be other places in the code that are submitting multiple 
conditional mutation when one would suffice.  This is caused by the code 
evolving from initially having a zookeeper persistent store where data was 
stored in multiple zk nodes for a single fate operation. Multiple ZK nodes 
require multiple write.  Implementing #4905 could allow zookeeper and accumuo 
table impls to have less writes for fate updates by improving the code for both 
to support this.
   


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