<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pure/research/experiments/013-parallel-syncs/variants.py, 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-27T18:03:34Z</updated>
<entry>
<title>Map OpenSSL only in a server that uses it</title>
<updated>2026-09-27T18:03:34Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-27T18:03:34Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=8019260926dcebe4f4be99cb5f92f84fbc9cd6d3'/>
<id>urn:sha1:8019260926dcebe4f4be99cb5f92f84fbc9cd6d3</id>
<content type='text'>
Linking OpenSSL cost every pure-serve 2.3 MiB of resident memory, 0.66
MiB of it the process's own (relocated data), though most servers never
reach an https receiver or seal a send. The code that uses OpenSSL (TLS
to https receivers, sealing) is now built as pure-crypto.so beside
pure-serve and exports one table; pure-serve maps it the first time a
wire to an https URL opens or a key is read or a seal wired
(serve/crypto.c), and a missing library is reported at startup. What
needs no OpenSSL, a key's hex and the suite this CPU seals with, stays in
pure-serve.

An idle server: RSS 4,496 -&gt; 2,320 kB, PSS 1,639 -&gt; 881 kB, private
dirty 1,296 -&gt; 864 kB. A static OpenSSL was measured too and is worse
(RSS 3.8 MiB, but 2.3 MiB private: all of its tables relocated). The
checks, https webhooks and sealed sends included, pass unchanged.

</content>
</entry>
<entry>
<title>Give a compacted file the zeros of its whole cycle (085)</title>
<updated>2026-09-27T13:46:31Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-27T13:46:31Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=aea3f640ea59d91f7ca9b193acfcc3e26740318b'/>
<id>urn:sha1:aea3f640ea59d91f7ca9b193acfcc3e26740318b</id>
<content type='text'>
Commits grew the tree store's tail 256 KiB at a time, each growth a sync
that also committed the ext4 journal for the new size and blocks. A file
installed by compaction now carries written zeros up to where the next
compaction will come (4 x live + slack, plus a commit's margin), capped at
the size of the file it replaces, so a store never takes more space than
before and shrinks when its live data does. The cycle's commits then only
overwrite blocks the file has.

Store commits: 317.5 -&gt; 385.5 a second, ext4 journal commits 109 -&gt; 45 for
4,000 commits; durable app posts +5.3%, their p99 the same within this SD
card's noise. The new cycles test keeps sizes still between compactions
once the live data is whole, and shows the file shrinking with it.

</content>
</entry>
<entry>
<title>Measure what moving saves off the owner would buy (084)</title>
<updated>2026-09-27T13:11:19Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-27T13:11:19Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=87480ce170895f841c40930ce24a7a026646ae14'/>
<id>urn:sha1:87480ce170895f841c40930ce24a7a026646ae14</id>
<content type='text'>
Nothing a thread can give: with writes saturated the device's one line of
syncs is the bottleneck, so zeroing the tail or compacting on another
thread only queues that device work behind the commits, and the owner's
idle gap is shorter than one journal commit. Built without compaction the
store is no faster; without compaction and without tail growth durable
posts gain 1.4% and the p99 drops 24% (17.4 to 13.3 ms). New blocks are the
tail latency, so the way to it is a store that rewrites its space in place,
a ring cleaned forward instead of compacted into new files.

</content>
</entry>
</feed>
