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

Minimal corrective receive stream generation #15916

Open
rincebrain opened this issue Feb 20, 2024 · 0 comments
Open

Minimal corrective receive stream generation #15916

rincebrain opened this issue Feb 20, 2024 · 0 comments
Labels
Component: Send/Recv "zfs send/recv" feature Type: Feature Feature request or new feature

Comments

@rincebrain
Copy link
Contributor

rincebrain commented Feb 20, 2024

Describe the feature would like to see added to OpenZFS

I'd like a nice interface to lob in part or all of a file that ZFS is angy is irrevocably mangled on disk, and have it confirm "oh, yeah, that'll work" and go rewrite the affected bits, than just taking an entire send stream's data in and pulling out the germane bits.

I've been meaning to try an evil bitbanged minimal send stream emitter for this, but haven't bothered yet, so I figured I'd put it here so other people could maybe do it or follow it being done.

If I understand how corrective receive is implemented correctly, I think you could do something evil like
zstream corrective-emit [various object properties] [a copy of the intact file] | zfs recv -c, and it's just a question of knowing precisely how much you need to specify versus can get elsewhere, or put it in something like zfs or zdb that actually can just go get the dataset information for a given object.

How will this feature improve OpenZFS?

Having to receive an entire 3T stream just to recover 128K of L0 is very silly.

Additional context

Future work section of #9372.

@rincebrain rincebrain added Type: Feature Feature request or new feature Component: Send/Recv "zfs send/recv" feature labels Feb 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: Send/Recv "zfs send/recv" feature Type: Feature Feature request or new feature
Projects
None yet
Development

No branches or pull requests

1 participant