Skip to content

docs(design): evaluate async I/O for SSH transport path (#1593)#3900

Merged
oferchen merged 1 commit into
masterfrom
design/async-ssh-transport
May 7, 2026
Merged

docs(design): evaluate async I/O for SSH transport path (#1593)#3900
oferchen merged 1 commit into
masterfrom
design/async-ssh-transport

Conversation

@oferchen
Copy link
Copy Markdown
Owner

@oferchen oferchen commented May 7, 2026

Summary

  • Document the current synchronous SSH transport (spawned ssh subprocess, std::process::ChildStdout/ChildStdin) and identify the network-vs-disk overlap bottleneck.
  • Evaluate two async candidates: tokio::process::Child (lightweight swap, reuses the existing tokio runtime) and embedded russh from crates/rsync_io/src/ssh/embedded/ (eliminates the subprocess entirely; tracked under Refactor drive workflow into dedicated modules #1782).
  • Recommend staging async SSH behind a --features async-ssh cargo flag, default off until benchmarks show a sustained > 10% wall-clock improvement.

Closes part of #1593 (design phase).

Test plan

  • Doc-only change; no code paths exercised.
  • Verify docs/design/async-ssh-transport.md renders correctly on GitHub.

Document the current synchronous SSH transport, the network-vs-disk
overlap bottleneck, and two async candidates (tokio::process and
embedded russh). Recommend staging behind a --features async-ssh flag,
default off until benchmarks show > 10% gain.
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label May 7, 2026
@oferchen oferchen merged commit 0d2f666 into master May 7, 2026
8 checks passed
@oferchen oferchen deleted the design/async-ssh-transport branch May 8, 2026 03:47
oferchen added a commit that referenced this pull request May 18, 2026
Document the current synchronous SSH transport, the network-vs-disk
overlap bottleneck, and two async candidates (tokio::process and
embedded russh). Recommend staging behind a --features async-ssh flag,
default off until benchmarks show > 10% gain.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant