Skip to content

Refactor local copy options into dedicated module#1751

Merged
oferchen merged 1 commit into
masterfrom
prepare-for-production-release-optimization
Oct 31, 2025
Merged

Refactor local copy options into dedicated module#1751
oferchen merged 1 commit into
masterfrom
prepare-for-production-release-optimization

Conversation

@oferchen
Copy link
Copy Markdown
Owner

Summary

  • extract LocalCopyOptions and supporting types into local_copy::options
  • update local_copy.rs to re-export the new module and drop redundant imports

Testing

  • cargo check -p rsync-engine

https://chatgpt.com/codex/tasks/task_e_69048c60617c83238267a94174263f44

@oferchen oferchen merged commit bfc55c1 into master Oct 31, 2025
@oferchen oferchen deleted the prepare-for-production-release-optimization branch October 31, 2025 10:33
oferchen added a commit that referenced this pull request May 5, 2026
…3716)

Static-analysis audit recording the runtime model decision for the
io_uring integration. Recommends keeping io_uring synchronous and
routing async callers through tokio::task::spawn_blocking (#1751)
rather than adopting tokio-uring or building a custom poll-driven
SQE submitter, on the grounds that fast_io must remain tokio-free
and the session ring pool design (#1937) stays simpler when leases
are synchronous.
oferchen added a commit that referenced this pull request May 7, 2026
…3867)

Capture the current sync-over-fd pattern, the spawn_blocking vs
tokio-uring integration trade-off, alignment with the #1751
blocking-pool plan, and the soundness risks (kernel ring fd
ownership across .await, registered buffer lifetime). Recommend
keeping io_uring synchronous behind fast_io and dispatching from
async via spawn_blocking.
oferchen added a commit that referenced this pull request May 7, 2026
Concrete plan for replacing the synchronous accept loop with a Tokio
listener bridged to the sync transfer worker via spawn_blocking.
Gated behind a new async-daemon Cargo feature. Cross-references #1934
(accepted RFC) and #1751 (async migration roadmap).
oferchen added a commit that referenced this pull request May 7, 2026
…c daemon (#1751) (#3893)

Designs the bridge between the tokio-driven async daemon (#1934/#1935) and
rayon-dispatched CPU work (checksums, delta apply, parallel stat). Recommends
a `rayon_bridge` helper in `crates/transfer/src/async_compat.rs` using
`tokio::task::spawn_blocking` with a threshold short-circuit, and discusses
the dedicated-pool + `block_in_place` alternative plus risks (double-spawn,
panic propagation, cancellation, oversubscription).
oferchen added a commit that referenced this pull request May 7, 2026
Compare tokio-uring crate vs native fast_io::io_uring + spawn_blocking
bridge. Recommend staying on the native path, bridging via
tokio::task::spawn_blocking from async daemon tasks per #1751.
oferchen added a commit that referenced this pull request May 16, 2026
Expand the placeholder async migration plan into a comprehensive,
opinionated design covering: current synchronous threading model per
subsystem, per-subsystem cost/benefit, a phased incremental adoption
strategy, tokio runtime choice with rejected alternatives, sync/async
bridge patterns, backward-compat strategy, risk register, and open
questions.

Cross-references existing async-related tasks (#1367, #1411, #1591,
#1593, #1595, #1674, #1751, #1779, #1780, #1782, #1796, #1797, #1805,
#1806, #1889, #1890, #1891, #1892, #1934, #1935, #2136) and related
design notes so future planners have a single anchor.
oferchen added a commit that referenced this pull request May 16, 2026
Expand the placeholder async migration plan into a comprehensive,
opinionated design covering: current synchronous threading model per
subsystem, per-subsystem cost/benefit, a phased incremental adoption
strategy, tokio runtime choice with rejected alternatives, sync/async
bridge patterns, backward-compat strategy, risk register, and open
questions.

Cross-references existing async-related tasks (#1367, #1411, #1591,
#1593, #1595, #1674, #1751, #1779, #1780, #1782, #1796, #1797, #1805,
#1806, #1889, #1890, #1891, #1892, #1934, #1935, #2136) and related
design notes so future planners have a single anchor.
oferchen added a commit that referenced this pull request May 17, 2026
…1751) (#4196)

Document the canonical sync/async bridge between rayon-dispatched CPU
work and the tokio runtime that will host the async daemon listener
landing in #1935. Inventories 30 rayon call sites reachable from the
daemon code paths, fixes the bridge signature, sizing recipe for both
pools, anti-patterns to forbid in review, migration order keyed to
phase 2 of the async migration plan, and a test strategy that does
not require the async daemon to exist yet.
oferchen added a commit that referenced this pull request May 18, 2026
…3716)

Static-analysis audit recording the runtime model decision for the
io_uring integration. Recommends keeping io_uring synchronous and
routing async callers through tokio::task::spawn_blocking (#1751)
rather than adopting tokio-uring or building a custom poll-driven
SQE submitter, on the grounds that fast_io must remain tokio-free
and the session ring pool design (#1937) stays simpler when leases
are synchronous.
oferchen added a commit that referenced this pull request May 18, 2026
…3867)

Capture the current sync-over-fd pattern, the spawn_blocking vs
tokio-uring integration trade-off, alignment with the #1751
blocking-pool plan, and the soundness risks (kernel ring fd
ownership across .await, registered buffer lifetime). Recommend
keeping io_uring synchronous behind fast_io and dispatching from
async via spawn_blocking.
oferchen added a commit that referenced this pull request May 18, 2026
Concrete plan for replacing the synchronous accept loop with a Tokio
listener bridged to the sync transfer worker via spawn_blocking.
Gated behind a new async-daemon Cargo feature. Cross-references #1934
(accepted RFC) and #1751 (async migration roadmap).
oferchen added a commit that referenced this pull request May 18, 2026
…c daemon (#1751) (#3893)

Designs the bridge between the tokio-driven async daemon (#1934/#1935) and
rayon-dispatched CPU work (checksums, delta apply, parallel stat). Recommends
a `rayon_bridge` helper in `crates/transfer/src/async_compat.rs` using
`tokio::task::spawn_blocking` with a threshold short-circuit, and discusses
the dedicated-pool + `block_in_place` alternative plus risks (double-spawn,
panic propagation, cancellation, oversubscription).
oferchen added a commit that referenced this pull request May 18, 2026
Compare tokio-uring crate vs native fast_io::io_uring + spawn_blocking
bridge. Recommend staying on the native path, bridging via
tokio::task::spawn_blocking from async daemon tasks per #1751.
oferchen added a commit that referenced this pull request May 18, 2026
Expand the placeholder async migration plan into a comprehensive,
opinionated design covering: current synchronous threading model per
subsystem, per-subsystem cost/benefit, a phased incremental adoption
strategy, tokio runtime choice with rejected alternatives, sync/async
bridge patterns, backward-compat strategy, risk register, and open
questions.

Cross-references existing async-related tasks (#1367, #1411, #1591,
#1593, #1595, #1674, #1751, #1779, #1780, #1782, #1796, #1797, #1805,
#1806, #1889, #1890, #1891, #1892, #1934, #1935, #2136) and related
design notes so future planners have a single anchor.
oferchen added a commit that referenced this pull request May 18, 2026
…1751) (#4196)

Document the canonical sync/async bridge between rayon-dispatched CPU
work and the tokio runtime that will host the async daemon listener
landing in #1935. Inventories 30 rayon call sites reachable from the
daemon code paths, fixes the bridge signature, sizing recipe for both
pools, anti-patterns to forbid in review, migration order keyed to
phase 2 of the async migration plan, and a test strategy that does
not require the async daemon to exist yet.
oferchen added a commit that referenced this pull request May 18, 2026
Expand the placeholder async migration plan into a comprehensive,
opinionated design covering: current synchronous threading model per
subsystem, per-subsystem cost/benefit, a phased incremental adoption
strategy, tokio runtime choice with rejected alternatives, sync/async
bridge patterns, backward-compat strategy, risk register, and open
questions.

Cross-references existing async-related tasks (#1367, #1411, #1591,
#1593, #1595, #1674, #1751, #1779, #1780, #1782, #1796, #1797, #1805,
#1806, #1889, #1890, #1891, #1892, #1934, #1935, #2136) and related
design notes so future planners have a single anchor.
oferchen added a commit that referenced this pull request May 18, 2026
…1751) (#4196)

Document the canonical sync/async bridge between rayon-dispatched CPU
work and the tokio runtime that will host the async daemon listener
landing in #1935. Inventories 30 rayon call sites reachable from the
daemon code paths, fixes the bridge signature, sizing recipe for both
pools, anti-patterns to forbid in review, migration order keyed to
phase 2 of the async migration plan, and a test strategy that does
not require the async daemon to exist yet.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant