Skip to content

Commit 6ad4739

Browse files
committed
Keep sync filesystem work off the runtime
1 parent 36931ea commit 6ad4739

4 files changed

Lines changed: 406 additions & 234 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@ EXPERIMENTAL, so on-disk formats and the CLI may change without notice.
88

99
### Fixed
1010

11+
- **A sync folder walk no longer stalls unrelated Fabric streams.** Scan,
12+
materialization, JSON encoding, metadata checks, and persistence now run on
13+
Tokio's bounded blocking pool without holding the live node or disk locks.
14+
In a one-worker, five-second pipe window with repeated 500 ms walks, maximum
15+
delivery delay fell from 1.195 seconds to 16.9 ms. The source maximum stayed
16+
below 10.5 ms in both windows.
17+
1118
- **Fabric commands no longer replace the formatting in `peers.toml`.** Add,
1219
remove, policy, and Git remote changes update only the affected entries.
1320
User comments, spacing, order, unknown fields, and an edited or removed file

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -965,6 +965,9 @@ opening or reading files does not schedule sync work. Write bursts settle for
965965
watcher-driven sync per two-second window. Inbound no-op sessions already queued
966966
for the same durable folder generation reuse its pre-merge scan, and routine
967967
sync-accept path snapshots are sampled in the default validation log.
968+
Folder scans, materialization, and state persistence run on Tokio's bounded
969+
blocking pool. Fabric holds the live node and disk locks only while it snapshots
970+
or applies a completed phase, so filesystem latency does not stop other streams.
968971

969972
Entries live in an authoritative, hand-editable `syncs.toml` next to `peers.toml`
970973
(`~/.config/fabric/syncs.toml` for the default home, `<home>/syncs.toml` with

0 commit comments

Comments
 (0)