Skip to content

Keep sync filesystem work off the runtime - #157

Merged
myobie merged 2 commits into
mainfrom
fix/sync-blocking-filesystem
Sep 4, 2026
Merged

Keep sync filesystem work off the runtime#157
myobie merged 2 commits into
mainfrom
fix/sync-blocking-filesystem

Conversation

@myobie

@myobie myobie commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

What changed

  • Add the permanent one-worker sync and exec pipe latency property test.
  • Run scan, materialization, metadata, JSON, and persistence work on Tokio's bounded blocking pool.
  • Snapshot node and disk state under short locks, then validate revisions before applying each result.
  • Use copy-on-write node snapshots, so a clean phase clones no manifest paths or content bytes.
  • Keep the existing per-entry operation guard, durable schema, wire format, and crash-write order.

Red proof

The test commit failed before the production change over its fixed five-second window.

  • Samples: 502
  • Source maximum: 10.415 ms
  • Delivery maximum: 1.195 s
  • Full scans: 11
  • Delivery bound: 150 ms

Green proof

The unchanged test passed after the production change over five seconds.

  • Samples: 502
  • Source maximum: 10.003 ms
  • Delivery maximum: 16.035 ms
  • Full scans: 8

The following checks also passed locally:

  • cargo check --all-targets
  • cargo test --lib: 469 passed and 4 ignored
  • cargo test --lib sync::engine::tests:: -- --test-threads=1: 102 passed and 3 ignored
  • cargo test --test folder_sync -- --test-threads=1: 18 passed in 222.42 seconds

No release or deployment is part of this pull request.

Red on main over five seconds: source max 10.415 ms, delivery max 1.195 s, 11 scans. The fixed delivery bound is 150 ms.
@myobie
myobie force-pushed the fix/sync-blocking-filesystem branch from 6ad4739 to 65dd014 Compare September 4, 2026 22:36
@myobie
myobie merged commit d409af1 into main Sep 4, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant