diff --git a/RUN-A-NODE.md b/RUN-A-NODE.md index c85997e..9e2707b 100644 --- a/RUN-A-NODE.md +++ b/RUN-A-NODE.md @@ -173,6 +173,14 @@ because the answer changes with the height: | 2400m | 6-8 M | no OOM at all | ~82,000 | | 2400m | past 9.2 M | old generation 99.88% full, 1,409 full GCs, 19 minutes in GC | ~640 | | 3400m | past 9.7 M | **zero** full GCs, 6 seconds of GC in total | ~28,800 | +| 2400m | ~8.4 M, measured 2026-09-11 | old generation 99.97% full, 1,073 full GCs, 26 minutes in GC, 49 `OutOfMemoryError` | ~120 | +| 3400m | ~8.5 M, measured 2026-09-11 | **zero** full GCs | ~9,000 | + +**The band moves down as the chain grows, so read the dates in that table.** The 2400m row measured on 2026-09-06 held from +six to eight million blocks; the same flag on 2026-09-11, at 8.4 million and on a 7.9 GB machine, was already in full-GC collapse, +because the storage engine's working set had grown with the chain in between. Do not copy a number out of this table and hope. Use +the symptom instead, it is the same on any day: full GCs climbing while the height barely moves means the heap is too SMALL, and +`OutOfMemoryError` in the log means it is too LARGE for what the database also needs beside it. Two things are going on, and they pull in opposite directions. **Heap is not memory**: the storage engine keeps its block cache and write buffers OUTSIDE the Java heap, and past six million blocks that