Skip to content

Brand version banners around oc-rsync#2093

Merged
oferchen merged 1 commit into
masterfrom
centralize-branding-and-manage-single-binary
Nov 8, 2025
Merged

Brand version banners around oc-rsync#2093
oferchen merged 1 commit into
masterfrom
centralize-branding-and-manage-single-binary

Conversation

@oferchen
Copy link
Copy Markdown
Owner

@oferchen oferchen commented Nov 8, 2025

Summary

  • default the version constants to the oc-rsync program name while keeping explicit legacy aliases for compatibility
  • update version metadata docs and tests to expect oc-rsync banners and verify the legacy brand paths still render the upstream names
  • refresh the CLI and integration tests to treat oc-rsync as the required binary while exercising the optional legacy alias; document the new banner in the feature matrix

Testing

  • cargo test --package oc-rsync-core version

Codex Task

@oferchen oferchen merged commit acf7c75 into master Nov 8, 2025
@oferchen oferchen deleted the centralize-branding-and-manage-single-binary branch November 8, 2025 22:43
oferchen added a commit that referenced this pull request May 7, 2026
Proposes an AIMD (Additive-Increase / Multiplicative-Decrease) controller
that replaces the static CAPACITY_MULTIPLIER and PARALLEL_THRESHOLD knobs
with a feedback-driven concurrency limiter. Covers placement, state
machine, overload detection, integration points in the engine, transfer,
and CLI crates, trade-offs vs Vegas/BBR/Gradient2, implementation phases
mapped to tasks #2091-#2093, and open questions on per-pipeline scope,
--bwlimit interaction, and local-only feedback signal quality.
oferchen added a commit that referenced this pull request May 7, 2026
Adds the standalone limiter type defined by the design RFC at
docs/design/aimd-concurrency-limiter.md. The implementation lives in
crates/engine/src/concurrent_delta/work_queue/limiter.rs and exposes:

- LimiterConfig builder with min_limit / max_limit / alpha / beta_num /
  beta_den / build().
- AimdLimiter with try_acquire, target, in_flight, rtt_ema_nanos, and a
  pub is_rtt_spike predicate.
- RAII Ticket guard (#[must_use]) with record_success / record_overload /
  record_error and Drop fallback for panic paths.
- OverloadReason variants for RttSpike / QueueSaturated /
  DiskCommitPressure / ErrorRate.

Internals follow the RFC: integer-only RTT EMA (alpha_ema = 1/8 per
RFC 6298), variance smoothed with beta = 1/4, RTT-spike threshold of
ema + 2*sqrt(var) via Newton-method isqrt, slow-start doubling until
the first decrease, debounce window of 2*rtt_ema after each
multiplicative decrease, and AcqRel/Acquire atomic ordering on every
target/in_flight transition.

Twelve unit tests cover the algorithm: target saturation (single
threaded and under thread contention), additive increase, multiplicative
decrease, min/max clamps, debounce suppression, RTT EMA convergence,
ticket Drop on panic, transient-vs-deterministic error classification,
slow-start doubling, RTT-spike predicate, builder clamps, and the
isqrt helper.

Not yet integrated. Callers (WorkQueueSender, disk-commit, CLI) are
wired in the follow-on tickets:
- #2092: convergence tests under injected error.
- #2093: --adaptive-concurrency / --no-adaptive-concurrency CLI flag.
oferchen added a commit that referenced this pull request May 7, 2026
* feat(engine): AIMD concurrency limiter type (#2091)

Adds the standalone limiter type defined by the design RFC at
docs/design/aimd-concurrency-limiter.md. The implementation lives in
crates/engine/src/concurrent_delta/work_queue/limiter.rs and exposes:

- LimiterConfig builder with min_limit / max_limit / alpha / beta_num /
  beta_den / build().
- AimdLimiter with try_acquire, target, in_flight, rtt_ema_nanos, and a
  pub is_rtt_spike predicate.
- RAII Ticket guard (#[must_use]) with record_success / record_overload /
  record_error and Drop fallback for panic paths.
- OverloadReason variants for RttSpike / QueueSaturated /
  DiskCommitPressure / ErrorRate.

Internals follow the RFC: integer-only RTT EMA (alpha_ema = 1/8 per
RFC 6298), variance smoothed with beta = 1/4, RTT-spike threshold of
ema + 2*sqrt(var) via Newton-method isqrt, slow-start doubling until
the first decrease, debounce window of 2*rtt_ema after each
multiplicative decrease, and AcqRel/Acquire atomic ordering on every
target/in_flight transition.

Twelve unit tests cover the algorithm: target saturation (single
threaded and under thread contention), additive increase, multiplicative
decrease, min/max clamps, debounce suppression, RTT EMA convergence,
ticket Drop on panic, transient-vs-deterministic error classification,
slow-start doubling, RTT-spike predicate, builder clamps, and the
isqrt helper.

Not yet integrated. Callers (WorkQueueSender, disk-commit, CLI) are
wired in the follow-on tickets:
- #2092: convergence tests under injected error.
- #2093: --adaptive-concurrency / --no-adaptive-concurrency CLI flag.

* style: cargo fmt --all

* fix(engine): clippy lints on AIMD limiter (abs_diff, div_ceil, format args)
oferchen added a commit that referenced this pull request May 13, 2026
…2093)

Add convergence tests for the AIMD adaptive-concurrency limiter:
- Alternating success/overload stabilizes target within bounded range
- Sustained successes grow target monotonically
- Debounce window expires after 2 * rtt_ema
- Slow-start doubles over multiple windows
- Overload during slow-start transitions to additive growth

Add --adaptive-concurrency / --no-adaptive-concurrency CLI flag pair,
wired through ParsedArgs -> ConfigInputs -> ClientConfigBuilder ->
ClientConfig -> WriteConfig. Default is disabled (opt-in).
oferchen added a commit that referenced this pull request May 13, 2026
…2093)

Add convergence tests for the AIMD adaptive-concurrency limiter:
- Alternating success/overload stabilizes target within bounded range
- Sustained successes grow target monotonically
- Debounce window expires after 2 * rtt_ema
- Slow-start doubles over multiple windows
- Overload during slow-start transitions to additive growth

Add --adaptive-concurrency / --no-adaptive-concurrency CLI flag pair,
wired through ParsedArgs -> ConfigInputs -> ClientConfigBuilder ->
ClientConfig -> WriteConfig. Default is disabled (opt-in).
oferchen added a commit that referenced this pull request May 13, 2026
…2093) (#3961)

Add convergence tests for the AIMD adaptive-concurrency limiter:
- Alternating success/overload stabilizes target within bounded range
- Sustained successes grow target monotonically
- Debounce window expires after 2 * rtt_ema
- Slow-start doubles over multiple windows
- Overload during slow-start transitions to additive growth

Add --adaptive-concurrency / --no-adaptive-concurrency CLI flag pair,
wired through ParsedArgs -> ConfigInputs -> ClientConfigBuilder ->
ClientConfig -> WriteConfig. Default is disabled (opt-in).
oferchen added a commit that referenced this pull request May 18, 2026
Proposes an AIMD (Additive-Increase / Multiplicative-Decrease) controller
that replaces the static CAPACITY_MULTIPLIER and PARALLEL_THRESHOLD knobs
with a feedback-driven concurrency limiter. Covers placement, state
machine, overload detection, integration points in the engine, transfer,
and CLI crates, trade-offs vs Vegas/BBR/Gradient2, implementation phases
mapped to tasks #2091-#2093, and open questions on per-pipeline scope,
--bwlimit interaction, and local-only feedback signal quality.
oferchen added a commit that referenced this pull request May 18, 2026
* feat(engine): AIMD concurrency limiter type (#2091)

Adds the standalone limiter type defined by the design RFC at
docs/design/aimd-concurrency-limiter.md. The implementation lives in
crates/engine/src/concurrent_delta/work_queue/limiter.rs and exposes:

- LimiterConfig builder with min_limit / max_limit / alpha / beta_num /
  beta_den / build().
- AimdLimiter with try_acquire, target, in_flight, rtt_ema_nanos, and a
  pub is_rtt_spike predicate.
- RAII Ticket guard (#[must_use]) with record_success / record_overload /
  record_error and Drop fallback for panic paths.
- OverloadReason variants for RttSpike / QueueSaturated /
  DiskCommitPressure / ErrorRate.

Internals follow the RFC: integer-only RTT EMA (alpha_ema = 1/8 per
RFC 6298), variance smoothed with beta = 1/4, RTT-spike threshold of
ema + 2*sqrt(var) via Newton-method isqrt, slow-start doubling until
the first decrease, debounce window of 2*rtt_ema after each
multiplicative decrease, and AcqRel/Acquire atomic ordering on every
target/in_flight transition.

Twelve unit tests cover the algorithm: target saturation (single
threaded and under thread contention), additive increase, multiplicative
decrease, min/max clamps, debounce suppression, RTT EMA convergence,
ticket Drop on panic, transient-vs-deterministic error classification,
slow-start doubling, RTT-spike predicate, builder clamps, and the
isqrt helper.

Not yet integrated. Callers (WorkQueueSender, disk-commit, CLI) are
wired in the follow-on tickets:
- #2092: convergence tests under injected error.
- #2093: --adaptive-concurrency / --no-adaptive-concurrency CLI flag.

* style: cargo fmt --all

* fix(engine): clippy lints on AIMD limiter (abs_diff, div_ceil, format args)
oferchen added a commit that referenced this pull request May 18, 2026
…2093) (#3961)

Add convergence tests for the AIMD adaptive-concurrency limiter:
- Alternating success/overload stabilizes target within bounded range
- Sustained successes grow target monotonically
- Debounce window expires after 2 * rtt_ema
- Slow-start doubles over multiple windows
- Overload during slow-start transitions to additive growth

Add --adaptive-concurrency / --no-adaptive-concurrency CLI flag pair,
wired through ParsedArgs -> ConfigInputs -> ClientConfigBuilder ->
ClientConfig -> WriteConfig. Default is disabled (opt-in).
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