aboutsummaryrefslogtreecommitdiffstats
path: root/research
diff options
context:
space:
mode:
Diffstat (limited to 'research')
-rw-r--r--research/experiments/037-view-workers/2026-10-04-control-1.jsonl10
-rw-r--r--research/experiments/037-view-workers/2026-10-04-control-2.jsonl10
-rw-r--r--research/experiments/037-view-workers/2026-10-04-plain.jsonl13
-rw-r--r--research/experiments/037-view-workers/2026-10-04-scaling-1.jsonl7
-rw-r--r--research/experiments/037-view-workers/2026-10-04-scaling-2.jsonl7
-rw-r--r--research/experiments/037-view-workers/2026-10-04-tail-1.jsonl10
-rw-r--r--research/experiments/037-view-workers/2026-10-04-tail-2.jsonl10
-rw-r--r--research/experiments/037-view-workers/plain.py5
-rw-r--r--research/experiments/037-view-workers/runs.sh2
9 files changed, 71 insertions, 3 deletions
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