From 93785a2e38699b4e65020153f434de9db5e8e098 Mon Sep 17 00:00:00 2001 From: eunhhu Date: Sun, 4 Oct 2026 21:52:34 +0100 Subject: Measure views off the connection threads: writes' tail as with the CPU shared, two askers 1.95 times one (122) --- .../experiments/037-view-workers/2026-10-04-control-1.jsonl | 10 ++++++++++ .../experiments/037-view-workers/2026-10-04-control-2.jsonl | 10 ++++++++++ .../experiments/037-view-workers/2026-10-04-plain.jsonl | 13 +++++++++++++ .../experiments/037-view-workers/2026-10-04-scaling-1.jsonl | 7 +++++++ .../experiments/037-view-workers/2026-10-04-scaling-2.jsonl | 7 +++++++ .../experiments/037-view-workers/2026-10-04-tail-1.jsonl | 10 ++++++++++ .../experiments/037-view-workers/2026-10-04-tail-2.jsonl | 10 ++++++++++ research/experiments/037-view-workers/plain.py | 5 +++-- research/experiments/037-view-workers/runs.sh | 2 +- 9 files changed, 71 insertions(+), 3 deletions(-) create mode 100644 research/experiments/037-view-workers/2026-10-04-control-1.jsonl create mode 100644 research/experiments/037-view-workers/2026-10-04-control-2.jsonl create mode 100644 research/experiments/037-view-workers/2026-10-04-plain.jsonl create mode 100644 research/experiments/037-view-workers/2026-10-04-scaling-1.jsonl create mode 100644 research/experiments/037-view-workers/2026-10-04-scaling-2.jsonl create mode 100644 research/experiments/037-view-workers/2026-10-04-tail-1.jsonl create mode 100644 research/experiments/037-view-workers/2026-10-04-tail-2.jsonl (limited to 'research') diff --git a/research/experiments/037-view-workers/2026-10-04-control-1.jsonl b/research/experiments/037-view-workers/2026-10-04-control-1.jsonl new file mode 100644 index 0000000..e0145f7 --- /dev/null +++ b/research/experiments/037-view-workers/2026-10-04-control-1.jsonl @@ -0,0 +1,10 @@ +{"round": 1, "way": "writes", "writes_per_second": 113527, "write_p50_us": 120, "write_p99_us": 384, "write_max_us": 9216, "views_per_second": 0.0} +{"round": 1, "way": "both", "writes_per_second": 14652, "write_p50_us": 108, "write_p99_us": 28672, "write_max_us": 131072, "views_per_second": 70.5} +{"round": 1, "way": "apart", "writes_per_second": 52102, "write_p50_us": 232, "write_p99_us": 2304, "write_max_us": 9216, "views_per_second": 63.1} +{"round": 2, "way": "apart", "writes_per_second": 50586, "write_p50_us": 240, "write_p99_us": 2176, "write_max_us": 9216, "views_per_second": 64.8} +{"round": 2, "way": "both", "writes_per_second": 28232, "write_p50_us": 168, "write_p99_us": 28672, "write_max_us": 59392, "views_per_second": 70.0} +{"round": 2, "way": "writes", "writes_per_second": 122103, "write_p50_us": 120, "write_p99_us": 240, "write_max_us": 5888, "views_per_second": 0.0} +{"round": 3, "way": "writes", "writes_per_second": 122828, "write_p50_us": 120, "write_p99_us": 240, "write_max_us": 5888, "views_per_second": 0.0} +{"round": 3, "way": "both", "writes_per_second": 70782, "write_p50_us": 104, "write_p99_us": 448, "write_max_us": 118784, "views_per_second": 35.7} +{"round": 3, "way": "apart", "writes_per_second": 50748, "write_p50_us": 256, "write_p99_us": 1792, "write_max_us": 7936, "views_per_second": 66.9} +{"nodes": 20000, "edges": 100000, "threads": 3, "askers": 2, "medians": {"writes": 122103, "both": 28232, "apart": 50748}, "write_p99_medians_us": {"writes": 240, "both": 28672, "apart": 2176}, "write_max_medians_us": {"writes": 5888, "both": 118784, "apart": 9216}, "serve_args": ["--view-workers", "0"], "writes_kept": {"both": 23.1, "apart": 41.6}, "p99_both_over_apart": 13.18, "max_both_over_apart": 12.89} diff --git a/research/experiments/037-view-workers/2026-10-04-control-2.jsonl b/research/experiments/037-view-workers/2026-10-04-control-2.jsonl new file mode 100644 index 0000000..ab057cc --- /dev/null +++ b/research/experiments/037-view-workers/2026-10-04-control-2.jsonl @@ -0,0 +1,10 @@ +{"round": 1, "way": "writes", "writes_per_second": 124372, "write_p50_us": 116, "write_p99_us": 232, "write_max_us": 6144, "views_per_second": 0.0} +{"round": 1, "way": "both", "writes_per_second": 73789, "write_p50_us": 108, "write_p99_us": 496, "write_max_us": 65536, "views_per_second": 36.1} +{"round": 1, "way": "apart", "writes_per_second": 50945, "write_p50_us": 224, "write_p99_us": 2560, "write_max_us": 12288, "views_per_second": 61.7} +{"round": 2, "way": "apart", "writes_per_second": 51657, "write_p50_us": 256, "write_p99_us": 1792, "write_max_us": 15872, "views_per_second": 67.1} +{"round": 2, "way": "both", "writes_per_second": 66630, "write_p50_us": 104, "write_p99_us": 416, "write_max_us": 86016, "views_per_second": 36.4} +{"round": 2, "way": "writes", "writes_per_second": 121285, "write_p50_us": 120, "write_p99_us": 272, "write_max_us": 9216, "views_per_second": 0.0} +{"round": 3, "way": "writes", "writes_per_second": 130697, "write_p50_us": 116, "write_p99_us": 200, "write_max_us": 5120, "views_per_second": 0.0} +{"round": 3, "way": "both", "writes_per_second": 28187, "write_p50_us": 168, "write_p99_us": 28672, "write_max_us": 65536, "views_per_second": 70.0} +{"round": 3, "way": "apart", "writes_per_second": 86641, "write_p50_us": 152, "write_p99_us": 768, "write_max_us": 7936, "views_per_second": 35.1} +{"nodes": 20000, "edges": 100000, "threads": 3, "askers": 2, "medians": {"writes": 124372, "both": 66630, "apart": 51657}, "write_p99_medians_us": {"writes": 232, "both": 496, "apart": 1792}, "write_max_medians_us": {"writes": 6144, "both": 65536, "apart": 12288}, "serve_args": ["--view-workers", "0"], "writes_kept": {"both": 53.6, "apart": 41.5}, "p99_both_over_apart": 0.28, "max_both_over_apart": 5.33} diff --git a/research/experiments/037-view-workers/2026-10-04-plain.jsonl b/research/experiments/037-view-workers/2026-10-04-plain.jsonl new file mode 100644 index 0000000..e7cc9bc --- /dev/null +++ b/research/experiments/037-view-workers/2026-10-04-plain.jsonl @@ -0,0 +1,13 @@ +{"round": 1, "version": "before", "reads_per_second": 148378, "p50_us": 416, "p99_us": 640} +{"round": 1, "version": "after", "reads_per_second": 148600, "p50_us": 416, "p99_us": 640} +{"round": 2, "version": "after", "reads_per_second": 148824, "p50_us": 416, "p99_us": 640} +{"round": 2, "version": "before", "reads_per_second": 148867, "p50_us": 416, "p99_us": 640} +{"round": 3, "version": "before", "reads_per_second": 149299, "p50_us": 416, "p99_us": 640} +{"round": 3, "version": "after", "reads_per_second": 148556, "p50_us": 416, "p99_us": 640} +{"round": 4, "version": "after", "reads_per_second": 148503, "p50_us": 416, "p99_us": 640} +{"round": 4, "version": "before", "reads_per_second": 148976, "p50_us": 416, "p99_us": 640} +{"round": 5, "version": "before", "reads_per_second": 147896, "p50_us": 416, "p99_us": 640} +{"round": 5, "version": "after", "reads_per_second": 148133, "p50_us": 416, "p99_us": 640} +{"round": 6, "version": "after", "reads_per_second": 148499, "p50_us": 416, "p99_us": 640} +{"round": 6, "version": "before", "reads_per_second": 148866, "p50_us": 416, "p99_us": 640} +{"before_median": 148866.5, "after_median": 148529.5, "change": -0.2} diff --git a/research/experiments/037-view-workers/2026-10-04-scaling-1.jsonl b/research/experiments/037-view-workers/2026-10-04-scaling-1.jsonl new file mode 100644 index 0000000..64f7382 --- /dev/null +++ b/research/experiments/037-view-workers/2026-10-04-scaling-1.jsonl @@ -0,0 +1,7 @@ +{"round": 1, "way": "one", "views_per_second": 37.8} +{"round": 1, "way": "many", "views_per_second": 73.7} +{"round": 2, "way": "many", "views_per_second": 72.8} +{"round": 2, "way": "one", "views_per_second": 37.8} +{"round": 3, "way": "one", "views_per_second": 37.9} +{"round": 3, "way": "many", "views_per_second": 74.1} +{"nodes": 20000, "edges": 100000, "threads": 1, "askers": 2, "medians": {"one": 37.8, "many": 73.7}, "write_p99_medians_us": {}, "write_max_medians_us": {}, "serve_args": [], "scaling": 1.95} diff --git a/research/experiments/037-view-workers/2026-10-04-scaling-2.jsonl b/research/experiments/037-view-workers/2026-10-04-scaling-2.jsonl new file mode 100644 index 0000000..c869d71 --- /dev/null +++ b/research/experiments/037-view-workers/2026-10-04-scaling-2.jsonl @@ -0,0 +1,7 @@ +{"round": 1, "way": "one", "views_per_second": 37.8} +{"round": 1, "way": "many", "views_per_second": 73.5} +{"round": 2, "way": "many", "views_per_second": 73.3} +{"round": 2, "way": "one", "views_per_second": 37.8} +{"round": 3, "way": "one", "views_per_second": 37.8} +{"round": 3, "way": "many", "views_per_second": 73.3} +{"nodes": 20000, "edges": 100000, "threads": 1, "askers": 2, "medians": {"one": 37.8, "many": 73.3}, "write_p99_medians_us": {}, "write_max_medians_us": {}, "serve_args": [], "scaling": 1.94} diff --git a/research/experiments/037-view-workers/2026-10-04-tail-1.jsonl b/research/experiments/037-view-workers/2026-10-04-tail-1.jsonl new file mode 100644 index 0000000..3ac4326 --- /dev/null +++ b/research/experiments/037-view-workers/2026-10-04-tail-1.jsonl @@ -0,0 +1,10 @@ +{"round": 1, "way": "writes", "writes_per_second": 118131, "write_p50_us": 120, "write_p99_us": 336, "write_max_us": 5888, "views_per_second": 0.0} +{"round": 1, "way": "both", "writes_per_second": 47411, "write_p50_us": 216, "write_p99_us": 3456, "write_max_us": 11776, "views_per_second": 58.1} +{"round": 1, "way": "apart", "writes_per_second": 44605, "write_p50_us": 240, "write_p99_us": 3584, "write_max_us": 13824, "views_per_second": 58.8} +{"round": 2, "way": "apart", "writes_per_second": 46915, "write_p50_us": 216, "write_p99_us": 3456, "write_max_us": 16384, "views_per_second": 56.9} +{"round": 2, "way": "both", "writes_per_second": 43621, "write_p50_us": 224, "write_p99_us": 3840, "write_max_us": 11776, "views_per_second": 57.1} +{"round": 2, "way": "writes", "writes_per_second": 114928, "write_p50_us": 120, "write_p99_us": 368, "write_max_us": 8192, "views_per_second": 0.0} +{"round": 3, "way": "writes", "writes_per_second": 121761, "write_p50_us": 120, "write_p99_us": 272, "write_max_us": 6144, "views_per_second": 0.0} +{"round": 3, "way": "both", "writes_per_second": 49962, "write_p50_us": 208, "write_p99_us": 3328, "write_max_us": 20480, "views_per_second": 58.3} +{"round": 3, "way": "apart", "writes_per_second": 48011, "write_p50_us": 224, "write_p99_us": 3456, "write_max_us": 10752, "views_per_second": 58.4} +{"nodes": 20000, "edges": 100000, "threads": 3, "askers": 2, "medians": {"writes": 118131, "both": 47411, "apart": 46915}, "write_p99_medians_us": {"writes": 336, "both": 3456, "apart": 3456}, "write_max_medians_us": {"writes": 6144, "both": 11776, "apart": 13824}, "serve_args": [], "writes_kept": {"both": 40.1, "apart": 39.7}, "p99_both_over_apart": 1.0, "max_both_over_apart": 0.85} diff --git a/research/experiments/037-view-workers/2026-10-04-tail-2.jsonl b/research/experiments/037-view-workers/2026-10-04-tail-2.jsonl new file mode 100644 index 0000000..676bbc2 --- /dev/null +++ b/research/experiments/037-view-workers/2026-10-04-tail-2.jsonl @@ -0,0 +1,10 @@ +{"round": 1, "way": "writes", "writes_per_second": 119435, "write_p50_us": 120, "write_p99_us": 288, "write_max_us": 12288, "views_per_second": 0.0} +{"round": 1, "way": "both", "writes_per_second": 51312, "write_p50_us": 208, "write_p99_us": 3200, "write_max_us": 9728, "views_per_second": 59.1} +{"round": 1, "way": "apart", "writes_per_second": 47365, "write_p50_us": 208, "write_p99_us": 3712, "write_max_us": 11776, "views_per_second": 57.3} +{"round": 2, "way": "apart", "writes_per_second": 48569, "write_p50_us": 216, "write_p99_us": 3328, "write_max_us": 10240, "views_per_second": 59.3} +{"round": 2, "way": "both", "writes_per_second": 52952, "write_p50_us": 216, "write_p99_us": 2688, "write_max_us": 10240, "views_per_second": 59.6} +{"round": 2, "way": "writes", "writes_per_second": 121843, "write_p50_us": 120, "write_p99_us": 256, "write_max_us": 5376, "views_per_second": 0.0} +{"round": 3, "way": "writes", "writes_per_second": 125827, "write_p50_us": 116, "write_p99_us": 224, "write_max_us": 5888, "views_per_second": 0.0} +{"round": 3, "way": "both", "writes_per_second": 52896, "write_p50_us": 192, "write_p99_us": 3200, "write_max_us": 10752, "views_per_second": 56.4} +{"round": 3, "way": "apart", "writes_per_second": 48953, "write_p50_us": 200, "write_p99_us": 3584, "write_max_us": 10752, "views_per_second": 56.4} +{"nodes": 20000, "edges": 100000, "threads": 3, "askers": 2, "medians": {"writes": 121843, "both": 52896, "apart": 48569}, "write_p99_medians_us": {"writes": 256, "both": 3200, "apart": 3584}, "write_max_medians_us": {"writes": 5888, "both": 10240, "apart": 10752}, "serve_args": [], "writes_kept": {"both": 43.4, "apart": 39.9}, "p99_both_over_apart": 0.89, "max_both_over_apart": 0.95} diff --git a/research/experiments/037-view-workers/plain.py b/research/experiments/037-view-workers/plain.py index 96c937f..a313cfb 100644 --- a/research/experiments/037-view-workers/plain.py +++ b/research/experiments/037-view-workers/plain.py @@ -2,8 +2,9 @@ """A view of one expression read, before and after (docs/design/020's stage 2, research 122): the scoreboard (benchmarks/http/scores.aup) on pure-serve BEFORE and AFTER in turns (connection threads 3, store in RAM, cores 0-2, -a fresh host each run), 1,000 points posted first, then benchmarks/http/load -(core 3) reads GET /views/total on 64 connections for SECONDS. ROUNDS +a fresh host each run), points posted on 8 connections for a second first, +then benchmarks/http/load (core 3) reads GET /views/total on 64 connections +for SECONDS. ROUNDS pairs, the first in each even round the after one. plain.py BEFORE AFTER AUP SECONDS ROUNDS a JSON line per run, then medians diff --git a/research/experiments/037-view-workers/runs.sh b/research/experiments/037-view-workers/runs.sh index bb91997..4814e19 100644 --- a/research/experiments/037-view-workers/runs.sh +++ b/research/experiments/037-view-workers/runs.sh @@ -11,7 +11,7 @@ # connection threads, as before) # runs.sh scaling ROUND views.py, connection threads 1: one asker, two # runs.sh plain plain.py: GET /views/total (64 connections, -# 10 s), before (9484700) and after, 6 pairs +# 10 s), before (dde73e4, stage 1) and after, 6 pairs set -e here=research/experiments/037-view-workers builds=$HOME/.cache/pure-037 -- cgit v1.2.3