From 5e90a99dfdcc0a16f52213370cda29779571e36c Mon Sep 17 00:00:00 2001 From: eunhhu Date: Sun, 27 Sep 2026 13:57:51 +0100 Subject: Measure whether sharding owners by key would add writes (084) It would not, on this device. One file's syncs or four at once, the SD card completes the same 510-690 commits per second, the latency growing with the number of files. The scoreboard app with two owners, each with a store of its own, took 23% fewer durable posts than one owner (median 16,230 against 20,974 a second) with 2-3x the p99: syncs queue, and each carries half the events. One owner's group commit stays; cores serve reads, and writes grow by making the sync itself cheaper. --- .../2026-09-27-ext4-linux-aarch64.json | 192 +++++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 research/experiments/013-parallel-syncs/2026-09-27-ext4-linux-aarch64.json (limited to 'research/experiments/013-parallel-syncs/2026-09-27-ext4-linux-aarch64.json') diff --git a/research/experiments/013-parallel-syncs/2026-09-27-ext4-linux-aarch64.json b/research/experiments/013-parallel-syncs/2026-09-27-ext4-linux-aarch64.json new file mode 100644 index 0000000..14d57e4 --- /dev/null +++ b/research/experiments/013-parallel-syncs/2026-09-27-ext4-linux-aarch64.json @@ -0,0 +1,192 @@ +{ + "rounds": [ + { + "probe": [ + { + "threads": 1, + "bytes": 4096, + "commits": 1920, + "commits_per_second": 637.7, + "p50_ms": 1.22, + "p90_ms": 1.58, + "p99_ms": 11.27 + }, + { + "threads": 2, + "bytes": 4096, + "commits": 2026, + "commits_per_second": 663.6, + "p50_ms": 2.43, + "p90_ms": 3.24, + "p99_ms": 21.53 + }, + { + "threads": 4, + "bytes": 4096, + "commits": 1882, + "commits_per_second": 626.1, + "p50_ms": 5.09, + "p90_ms": 7.88, + "p99_ms": 59.99 + } + ], + "app": [ + { + "owners": 1, + "posts_per_second": 22275.0, + "p50_us": 2176, + "p99_us": 13824, + "errors": 0 + }, + { + "owners": 2, + "posts_per_second": 16833.333333333332, + "p50_us": 2432, + "p99_us": 55296, + "errors": 0 + } + ] + }, + { + "probe": [ + { + "threads": 2, + "bytes": 4096, + "commits": 1695, + "commits_per_second": 564.7, + "p50_ms": 2.44, + "p90_ms": 4.6, + "p99_ms": 55.87 + }, + { + "threads": 4, + "bytes": 4096, + "commits": 1971, + "commits_per_second": 655.9, + "p50_ms": 5.06, + "p90_ms": 7.79, + "p99_ms": 58.39 + }, + { + "threads": 1, + "bytes": 4096, + "commits": 2006, + "commits_per_second": 668.6, + "p50_ms": 1.21, + "p90_ms": 1.57, + "p99_ms": 4.7 + } + ], + "app": [ + { + "owners": 2, + "posts_per_second": 17716.333333333332, + "p50_us": 2560, + "p99_us": 36864, + "errors": 0 + }, + { + "owners": 1, + "posts_per_second": 23384.333333333332, + "p50_us": 2176, + "p99_us": 14336, + "errors": 0 + } + ] + }, + { + "probe": [ + { + "threads": 4, + "bytes": 4096, + "commits": 2056, + "commits_per_second": 684.3, + "p50_ms": 4.93, + "p90_ms": 7.68, + "p99_ms": 35.01 + }, + { + "threads": 1, + "bytes": 4096, + "commits": 1536, + "commits_per_second": 511.6, + "p50_ms": 1.23, + "p90_ms": 3.07, + "p99_ms": 12.52 + }, + { + "threads": 2, + "bytes": 4096, + "commits": 1692, + "commits_per_second": 556.2, + "p50_ms": 2.45, + "p90_ms": 4.57, + "p99_ms": 53.54 + } + ], + "app": [ + { + "owners": 1, + "posts_per_second": 18541.666666666668, + "p50_us": 2304, + "p99_us": 25600, + "errors": 0 + }, + { + "owners": 2, + "posts_per_second": 13991.333333333334, + "p50_us": 2560, + "p99_us": 57344, + "errors": 0 + } + ] + }, + { + "probe": [ + { + "threads": 1, + "bytes": 4096, + "commits": 1981, + "commits_per_second": 660.2, + "p50_ms": 1.21, + "p90_ms": 1.57, + "p99_ms": 4.0 + }, + { + "threads": 2, + "bytes": 4096, + "commits": 1994, + "commits_per_second": 664.4, + "p50_ms": 2.42, + "p90_ms": 3.2, + "p99_ms": 20.6 + }, + { + "threads": 4, + "bytes": 4096, + "commits": 2011, + "commits_per_second": 669.8, + "p50_ms": 4.96, + "p90_ms": 7.96, + "p99_ms": 41.8 + } + ], + "app": [ + { + "owners": 2, + "posts_per_second": 15627.0, + "p50_us": 2432, + "p99_us": 47104, + "errors": 0 + }, + { + "owners": 1, + "posts_per_second": 19672.333333333332, + "p50_us": 2304, + "p99_us": 16384, + "errors": 0 + } + ] + } + ] +} -- cgit v1.2.3