Skip to content
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

[C#] Option to create barrier at checkpoint version switch, support rollback #813

Merged
merged 12 commits into from
Apr 18, 2023

Conversation

badrishc
Copy link
Contributor

@badrishc badrishc commented Apr 9, 2023

Add Checkpoint option (default disabled) for whether we use a barrier to ensure that threads are not in two different checkpoint versions at the same time.

In the (PREPARE, v) phase, refresh will wait for all threads to get to the next version (IN_PROGRESS, v+1) before proceeding with the operation.

Also support basic recovery rollback, just call Recover on an existing store, and it will undo any uncheckpointed data before recovering to the given checkpoint. Make sure store is quiesced before attempting to call Recover on it.

…ent checkpoint versions at the same time. In PREPARE phase, refresh will wait for threads to get to the next version.
…re, and it will undo any uncheckpointed data. Make sure store is quiesced before attempting to call Recover on it.
@badrishc badrishc changed the title [C#] Option to create barrier at checkpoint version switch point [C#] Option to create barrier at checkpoint version switch, support rollback Apr 14, 2023
cs/src/core/Allocator/BlittableAllocator.cs Outdated Show resolved Hide resolved
cs/src/core/Allocator/GenericAllocator.cs Outdated Show resolved Hide resolved
cs/src/core/Allocator/VarLenBlittableAllocator.cs Outdated Show resolved Hide resolved
cs/src/core/FasterLog/FasterLog.cs Outdated Show resolved Hide resolved
@badrishc badrishc merged commit caaf1e4 into main Apr 18, 2023
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants