keith-turner opened a new pull request, #4554:
URL: https://github.com/apache/accumulo/pull/4554
The following is an example of the problem this change fixes
1. Thread 1: A user compaction is currently running for a tablet
2. Thread 2: Tablet server receives a compaction request RPC from manager
and it checks to see if the compaction is needed for the same tablet. If finds
it is needed.
3. Thread 1: completes user compaction, so a compaction is no longer needed
for the tablet
4. Thread 2: Initiates a user compaction of the tablet because its check in
step 2 passed.
This change adds a second check in step 4 above that should prevent this
race condition because the check is done at a point when its known no
concurrent user compaction is running. The original check was left as a fail
fast check, but a comment was added explaining its not sufficient for
correctness.
--
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]