Conversation
Use case is I'd like `zfs send` will actually do
```
zfs send | mbuffer -q -s 128k -m16M
```
and the same about `zfs receive`. Configuration looks like:
```
- name: "remote-to-zdisk"
type: "pull"
connect:
type: "tls"
address: "remote:8888"
recv:
execpipe:
# unzstd | mbuffer | zfs receive
- [ "unzstd" ]
- [ "mbuffer", "-q", "-s", "128k", "-m", "16M" ]
```
or
```
- name: "zroot-to-remote"
type: "push"
connect:
type: "tls"
address: "remote:8888"
send:
execpipe:
# zfs send | zstd -3 | mbuffer
- [ "zstd", "-3" ]
- [ "mbuffer", "-q", "-s", "128k", "-m", "16M" ]
```
Usually it executes standalone `zfs send` or `zfs recv`, but using `execpipe` we
can configure it to send stdout of `zfs send` to another programm(s) or send
stdout of another programm(s) to `zfs recv`.
This change adds new field `execpipe` into `send` and `recv`, which is seq of
seq.
|
Not a comment on the the code per-se, but shouldn't the recieve pipe be "mbuffer | unzstd | zfs receive" ? |
|
You are absolutely right. My fault. I guided by source code of syncoid and in comments it has but in the code I see it actually uses |
|
What are the performance improvements you're seeing with this?
|
It doesn't matter. This change isn't about |
|
Is there any justification for why this was closed unmerged? This discussion #775 Notes that while it did not have a performance improvement, it did solve certain issues with the "burstyness" of the send/receive process. |
JFYI, this and many other improvements implemented in my fork https://github.com/dsh2dsh/zrepl Feel free to use it. |
Unfortunately I don't think so. All my PRs were closed, so I decided to develop an independent fork. I don't believe I'll upstream my changes into this repo. |
|
It would be nice if @problame would explain why none of these improvements were merged, all of these PRs seem quite good for the project. |
Use case is I'd like
zfs sendwill actually doand the same about
zfs receive. Configuration looks like:or
Usually it executes standalone
zfs sendorzfs recv, but usingexecpipewe can configure it to send stdout ofzfs sendto another programm(s) or send stdout of another programm(s) tozfs recv.This change adds new field
execpipeintosendandrecv, which is seq of seq.