aboutsummaryrefslogtreecommitdiffstats
path: root/research/experiments/030-app-lifecycle/runs.sh
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-10-04 11:07:55 +0100
committereunhhu <[email protected]>2026-10-04 11:07:55 +0100
commit52e51e4231f2e119c97826ae6d6e2f2af0da0c58 (patch)
tree0f17ced79a1881bd2b67fbaa9e7ffb823f54b984 /research/experiments/030-app-lifecycle/runs.sh
parent420b749742badd26daf2474e9f157af17be2907f (diff)
downloadpure-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-xresearch/experiments/030-app-lifecycle/runs.sh35
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