-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Trimming journal #2890
Comments
The challenge of this feature is the restart mechanism. This is roughly how I'm gonna implement it:
I'm also gonna proceed to remove the |
…s described here restatedev#2890 (comment) we now got a new solution.
Did you mean the invoker instead of the PP? |
Introducing something like an |
fyi @AhmedSoliman |
Updating this with new findings. Fencing off invoker effects is not enough, we also need to fence off completions coming from other PPs belonging to old invocation epochs. This is how i plan to do that:
Then we need to store the following data structure in the caller invocation status:
This data structure is updated every time we trim accordingly. The invariant of this data structure is that ranges MUST be NON overlapping. This data structure seems to fit https://docs.rs/rangemap/latest/rangemap/inclusive_map/struct.RangeInclusiveMap.html And then the algorithm when I get a journal entry (which can be either command, completion or signal) is as follows:
|
The idea is to let users trim journal given a command, and remove all the commands that happened afterwards + their completions.
Mark & copy up (excluded) the trim point.
The text was updated successfully, but these errors were encountered: