diff options
| author | eunhhu <[email protected]> | 2026-10-01 02:01:42 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-10-01 02:01:42 +0100 |
| commit | a09ef095623c3b3f951edff2eb0c013708159f70 (patch) | |
| tree | 947f5361af50b1ed7f6c23f5e9594fee78e11b13 /research/experiments/013-parallel-syncs/run.py | |
| parent | 3be6f4d31cdb3d6d4c65e0387215c96f0d7345f8 (diff) | |
| download | pure-a09ef095623c3b3f951edff2eb0c013708159f70.tar.gz pure-a09ef095623c3b3f951edff2eb0c013708159f70.zip | |
Give each store its own writer's turn and commit group (017)
Threads of one process took turns as the tree store's writer for every
store at once, through one mutex held for a whole session, syncs
included, and commits grouped in one queue whose leader published each
store's requests in turn. One store's slow sync held every other
store's commit, so apps of one host would wait on each other's device.
The turns and the group are now a store's, found by its directory's
identity (two paths to one directory still share them, since the file
lock arbitrates only between processes). The temporary files' sequence,
which that mutex guarded, is atomic. A test holds a commit in its sync
and commits to another store meanwhile, while a second commit to the
held store, by another path, waits; before this change it hangs.
Diffstat (limited to 'research/experiments/013-parallel-syncs/run.py')
0 files changed, 0 insertions, 0 deletions
