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-bytes.jsonl | 1 + 1 file changed, 1 insertion(+) create mode 100644 research/experiments/046-commit-replica/2026-10-19-bytes.jsonl (limited to 'research/experiments/046-commit-replica/2026-10-19-bytes.jsonl') diff --git a/research/experiments/046-commit-replica/2026-10-19-bytes.jsonl b/research/experiments/046-commit-replica/2026-10-19-bytes.jsonl new file mode 100644 index 0000000..d7ddf2b --- /dev/null +++ b/research/experiments/046-commit-replica/2026-10-19-bytes.jsonl @@ -0,0 +1 @@ +{"what": "bytes written a message, by file, of the 100,000-message journal (prefixes.py)", "events": 100000, "compaction (.pending)": {"writes": 699, "bytes": 37072679, "per_event": 370.7, "zero_bytes": 37056748}, "image": {"writes": 19, "bytes": 655694, "per_event": 6.6, "zero_bytes": 0}, "pure.tree": {"writes": 206271, "bytes": 36483756, "per_event": 364.8, "zero_bytes": 983641}, "log-0": {"writes": 100000, "bytes": 7068992, "per_event": 70.7, "zero_bytes": 0}} -- cgit v1.2.3