Closed danielealbano closed 1 year ago
Base: 82.22% // Head: 82.28% // Increases project coverage by +0.06%
:tada:
Coverage data is based on head (
8ed9a4d
) compared to base (4743eee
). Patch coverage: 100.00% of modified lines in pull request are covered.
:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.
The PR implements an operation queue to track the epoch of the operations and when they are completed.
This queue will be used by the workers to identify up to which point the epoch can be moved forward for the single workers and will be used in combination with the epoch gc.
Each time an operation is started an operation will be registered in the queue and when the operation will finish it will be marked as completed.
The worker then, randomly, will process the entities at the beginning of this queue to determine how many operations have completed and how much the queue can be moved forward.
The epoch operation queue uses a specialized 64bit ring unbounded queue using the MSB bit (bit n. 64) to indicate the completition and the remaining 63 bits to store the epoch, a 63 bits epoch is able to count about 100 years of runtime on a 3ghz cpu, should be plenty for the forseeable future.