-
Notifications
You must be signed in to change notification settings - Fork 9
Add hard links and file synchronisation for snapshots #482
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
Conversation
bf15f26 to
54039a9
Compare
50758a2 to
5ac2a02
Compare
|
This PR is now ready for review. It's a single commit, since I didn't want to go through the trouble of making multiple commits build on Windows/MacOS as well. 😛 I've used GHA CI as my compiler for these distrbutions, and it took a bit of fiddling to get it all to compile |
dcoutts
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Just some small queries and suggestions.
Might have been slightly easier to read if it'd been split into two: one to extend the blockio API, and then another to use it.
Yeah, I was a little bit lazy there :P but I also didn't want to go through the trouble of using GHA CI as a compiler much more than necessary #482 (comment) |
recursion-ninja
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📤 LGTM
8a07a26 to
35eefbd
Compare
* Add two new `HasBlockIO` primitives for `fsync`, one for synchronising files, one for directories. These are separate, since we can not synchronise directories on `Windows`. * Add one new `HasBlockIO` primitive for creating hard links. * Add `IO` specialisations to `blockio-api`. * Use the new `HasBlockIO` primitives in the snapshot implementation. Note that when we create a snapshot, that we make *both* the hard links and their parent directory (the named snapshot directory) durable. Co-authored-by: Recursion Ninja <github@recursion.ninja>
35eefbd to
a6e28c7
Compare
No description provided.