From cbfec0d3ac239e050597bdb080645ffb53bad66e Mon Sep 17 00:00:00 2001 From: eunhhu Date: Mon, 19 Oct 2026 14:08:53 +0100 Subject: 046: 029's principle 2 put to its breaking experiment on one Pi, the tools and the numbers: an owner (pure-run --store) with shim.so preloaded ships every change its store makes to its files (ops.h: create, write, truncate, allocate, rename, unlink, mkdir), cut at each fsync or fdatasync, over pure link (shipper.c, follower.c), and its sync returns once the follower has the cut (synchronous: one cut in flight, no log); identity: 100,000 messages (200,081 cuts; 34 compactions, an image written again) and 200,000 (400,149 cuts; 67 compactions, a second log segment), the stores compared byte for byte every 1,999 and 3,001 cuts and at the end: 0 differences, the follower's store opened as owner holding every message; takeover: 70 kill -9s (owner alone, the whole node, the node with cuts of 512 and 64 B records): all open, hold every message the owner said done, none not sent, the entries in order (and equal to the owner's own store each time); prefixes: 867 op boundaries of a 100,000-message stream (568 within cuts, 266 around installs) opened as stores: all pass; the price: 204 to 400 us a message on tmpfs (155 us waiting for acks, two cuts a message), 903 bytes shipped a message, 42% of them zeros written ahead (a compaction's new file and the tree's tail) --- research/experiments/046-commit-replica/2026-10-19-price.jsonl | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 research/experiments/046-commit-replica/2026-10-19-price.jsonl (limited to 'research/experiments/046-commit-replica/2026-10-19-price.jsonl') diff --git a/research/experiments/046-commit-replica/2026-10-19-price.jsonl b/research/experiments/046-commit-replica/2026-10-19-price.jsonl new file mode 100644 index 0000000..385b3cb --- /dev/null +++ b/research/experiments/046-commit-replica/2026-10-19-price.jsonl @@ -0,0 +1,2 @@ +{"run": "price", "events": 100000, "without": {"seconds": 20.453, "us_per_event": 204.5, "done": 100000}, "with_shim": {"seconds": 40.164, "us_per_event": 401.6, "done": 100000}, "shim": {"cuts": 200081, "shipped_bytes": 90258606, "waited_ms": 15494.9, "create": [40, 1149], "write": [306989, 88255228], "truncate": [0, 0], "allocate": [1, 24], "rename": [38, 1237], "unlink": [0, 0], "mkdir": [1, 7], "sync": [200081, 2000961], "renamed_to": {"pure.tree": 34, "image-entries": 2, "image-0heard": 1, "image-0sent": 1}}, "shipper": {"cuts": 200081, "records": 200114, "record_bytes": 92059632, "waited_ms": 12284.0, "packets": 228164, "resent": 0}} +{"run": "price", "events": 100000, "without": {"seconds": 20.414, "us_per_event": 204.1, "done": 100000}, "with_shim": {"seconds": 39.992, "us_per_event": 399.9, "done": 100000}, "shim": {"cuts": 200081, "shipped_bytes": 90258606, "waited_ms": 15418.9, "create": [40, 1149], "write": [306989, 88255228], "truncate": [0, 0], "allocate": [1, 24], "rename": [38, 1237], "unlink": [0, 0], "mkdir": [1, 7], "sync": [200081, 2000961], "renamed_to": {"pure.tree": 34, "image-entries": 2, "image-0heard": 1, "image-0sent": 1}}, "shipper": {"cuts": 200081, "records": 200114, "record_bytes": 92059632, "waited_ms": 12271.7, "packets": 228164, "resent": 0}} -- cgit v1.2.3