diff options
| author | eunhhu <[email protected]> | 2026-09-26 06:30:03 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-09-26 06:30:03 +0100 |
| commit | 9408c57e0f2485fd7960135c931aa120dcb3fa8f (patch) | |
| tree | a88f51124bb3d539752a87be0656a0546505682d /prototypes/connections/test-async.c | |
| parent | c7ae77cdf4623c3eb07935081510478be9063024 (diff) | |
| download | pure-9408c57e0f2485fd7960135c931aa120dcb3fa8f.tar.gz pure-9408c57e0f2485fd7960135c931aa120dcb3fa8f.zip | |
Group the commits of concurrent threads
Threads that commit at the same time now share one commit: they queue,
the first becomes the leader and publishes every queued request of the
same store with one head, and the others wait for its result. Each
request stays all or nothing on its own: one with a stale draft is left
out, and so is one whose key an earlier request of the group changes.
When several threads have been committing together, a leader waits up to
2 ms for as many to join as groups held lately; a single thread never
waits.
A test pauses a publication and checks that five commits make exactly two
publications. Under eight writers on three pure-serve shards, 1,234
bursts went out in 421 publications. pure_store_group_counts reports the
groups, and pure-serve prints them.
Diffstat (limited to 'prototypes/connections/test-async.c')
0 files changed, 0 insertions, 0 deletions
