diff options
| author | eunhhu <[email protected]> | 2026-10-04 11:07:55 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-10-04 11:07:55 +0100 |
| commit | 52e51e4231f2e119c97826ae6d6e2f2af0da0c58 (patch) | |
| tree | 0f17ced79a1881bd2b67fbaa9e7ffb823f54b984 /research/experiments/030-app-lifecycle/runs.sh | |
| parent | 420b749742badd26daf2474e9f157af17be2907f (diff) | |
| download | pure-52e51e4231f2e119c97826ae6d6e2f2af0da0c58.tar.gz pure-52e51e4231f2e119c97826ae6d6e2f2af0da0c58.zip | |
Say what apps that change on a running host showed (017 stage 3, research 115)
Changing an app in place keeps a million items' app answering but for
1.12 ms (a host restart: 150 ms; stopping and starting it again from its
store, as first built, 150.4 ms), 171.5 ms when its records change shape
(332 ms). Another app's p99 stays 0.97 times as it was while one changes
every 0.2 s; a host of one app is as it was (TPC-C +0.7%, instructions
at most +0.02%); each module change leaves 19 KB. 030 holds the windows
of both builds, the isolation, the pairs, the counts and the memory.
Diffstat (limited to 'research/experiments/030-app-lifecycle/runs.sh')
| -rwxr-xr-x | research/experiments/030-app-lifecycle/runs.sh | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/research/experiments/030-app-lifecycle/runs.sh b/research/experiments/030-app-lifecycle/runs.sh index 601f754..0a70921 100755 --- a/research/experiments/030-app-lifecycle/runs.sh +++ b/research/experiments/030-app-lifecycle/runs.sh @@ -5,6 +5,15 @@ # in ~/.cache/pure-030/NAME # runs.sh window NAME ITEMS CHANGES RESTARTS [MODULE] window.py on that # build, into DATE-window-NAME-ITEMS[-MODULE].jsonl +# runs.sh isolation NAME ITEMS NEXT EVERY SECONDS ROUNDS isolation.py, +# into DATE-isolation-NAME-ITEMS-NEXT.jsonl +# runs.sh pairs FIRST LAST a host of one app, the builds before (e4c7f7e, +# stage 3's criteria) and after in turns, as +# 026 ran them: TPC-C in RAM (W=1, 64 +# terminals, 20 s) and the bank's queries +# runs.sh counts the bank queries' instructions before and +# after (025's count.py) +# runs.sh memory CHANGES what changing an app leaves in memory (memory.py) set -e out=research/experiments/030-app-lifecycle builds=$HOME/.cache/pure-030 @@ -21,5 +30,29 @@ window) until awk '{ exit !($1 < 1.5) }' /proc/loadavg; do sleep 10; done python3 research/guard.py --most 2048 -- python3 $out/window.py "$builds/$2/pure-serve" "$3" "$4" "$5" ${6:+"$6"} \ > "$out/$day-window-$2-$3${6:+-$6}.jsonl" ;; -*) echo "runs.sh build NAME COMMIT | window NAME ITEMS CHANGES RESTARTS [MODULE]" >&2; exit 2 ;; +pairs) + for round in $(seq "$2" "$3"); do + first=before second=in-place + if [ $((round % 2)) = 0 ]; then first=in-place second=before; fi + for version in $first $second; do + until awk '{ exit !($1 < 1.5) }' /proc/loadavg; do sleep 10; done + echo "$round $version $(uptime)" >> "$out/$day-load.txt" + python3 research/guard.py -- python3 benchmarks/tpcc/run.py --serve "$builds/$version/pure-serve" --warehouses 1 \ + --check 0 --terminals 64 --sqlite-threads '' --sqlite-group '' --seconds 20 \ + > "$out/$day-tpcc-$version-$round.jsonl" + python3 research/guard.py -- python3 benchmarks/bank/queries.py --serve "$builds/$version/pure-serve" \ + > "$out/$day-queries-$version-$round.jsonl" + done + done ;; +counts) + python3 research/guard.py -- python3 research/experiments/025-i64-cost/count.py "$builds/before/pure-serve" \ + "$builds/in-place/pure-serve" "$builds/before/pure-serve" "$builds/in-place/pure-serve" > "$out/$day-counts.jsonl" ;; +memory) + python3 research/guard.py -- python3 $out/memory.py "$builds/in-place/pure-serve" "$2" > "$out/$day-memory.jsonl" ;; +isolation) + until awk '{ exit !($1 < 1.5) }' /proc/loadavg; do sleep 10; done + python3 research/guard.py --most 2048 -- python3 $out/isolation.py "$builds/$2/pure-serve" "$3" "$4" "$5" "$6" "$7" \ + > "$out/$day-isolation-$2-$3-$4.jsonl" ;; +*) echo "runs.sh build NAME COMMIT | window NAME ITEMS CHANGES RESTARTS [MODULE] | isolation NAME ITEMS NEXT EVERY SECONDS ROUNDS | pairs FIRST LAST | counts | memory CHANGES" >&2 + exit 2 ;; esac |
