<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pure/docs/research/104-where-memory-goes.md, branch master</title>
<subtitle>Verified execution runtime unifying state, persistence, and replication.
</subtitle>
<id>http://git.yeowoo.org/pure/atom?h=master</id>
<link rel='self' href='http://git.yeowoo.org/pure/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/'/>
<updated>2026-09-30T02:42:36Z</updated>
<entry>
<title>Say what the windows and checkpoints cost (013 steps 2 and 3, 104)</title>
<updated>2026-09-30T02:42:36Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-30T02:42:36Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=6b3b1c64328fb6b4932dfb67fd05486182657673'/>
<id>urn:sha1:6b3b1c64328fb6b4932dfb67fd05486182657673</id>
<content type='text'>
013's second step is in (d9e0b68): each transport holds a window of its
output's sends. 104 measures it with the receivers down: once the window
is full a node grows by the outbox alone, 219 and 218 B a send over the
link and HTTP (399 and 534 B before).

The third step is a measurement. A checkpoint holds one list's snapshot
while it writes the image, so what it adds is what the app changed
meanwhile: nothing visible on tmpfs or for a list that fits the card's
fast writes; on the SD card, a 22.4 MB list written for about 8 s while
1,400 items a second were set left +3.0 and +4.4 MiB. The highest
resident memory was twice the state bytes, inside 013's bound (the state
and one snapshot) and its stop criterion (3x).

021's run.py takes --items, --stores (a directory on the device to
measure) and --label, and reports the peak (VmHWM).
</content>
</entry>
<entry>
<title>Say where a node's memory goes, and the budget it now keeps (104, 013)</title>
<updated>2026-09-30T02:19:45Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-30T02:19:45Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=41cb1cca55c67dd2aac2afa2f96bdc09a5d50b78'/>
<id>urn:sha1:41cb1cca55c67dd2aac2afa2f96bdc09a5d50b78</id>
<content type='text'>
104 measures a node's memory under a receiver that is down and under a
snapshot held for long (021's run.py: resident memory against what was
posted, 30 s a case). A held snapshot grew the node without end (6.4 to
678 MiB, fixed in d1e8f38); a slow receiver grows it by what was sent,
221 B a send, which is state until delivered, so the budget bounds state
and refuses past it.

013 is that budget's design: what it counts (state bytes, deterministic),
what an event over it does, why an answer takes its send's room, how
links and HTTP wait, what it does not count and those bounds, and the
checks. With --memory 4000000 the same load fills it in about 4 s and
the node stays at 9.6-9.8 MiB (45.9 MiB and growing without).

012 records the hole the budget found in the link (the full flag), and
103 that its clock fix fell short (385754c). CHECKPOINT gains the row.
</content>
</entry>
</feed>
