<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pure/benchmarks, 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-10-19T00:53:40Z</updated>
<entry>
<title>027's 5c: money as i64 minor units shown by .Nd: NUM_TEXT's decimal form takes digits (bits 20-24 as FIXED's), an integer's last N digits written after a point (1234 at two is 12.34, -5 -0.05, 0 0.00; width and zeros after the sign), verification allowing digits on FIXED and DECIMAL alone; unit test: ten rows of formats_and_held (-2^63 at two, 25 digits, a number's whole 1234, its 12.5 a limit); TPC-C's money i64 cents and its rates ten-thousandths (tables, messages, load, the transactions), SQLite's INTEGER columns and int64 bindings alike, the comparison now exact (no 1e-9 tolerance): after 20,000 transactions every row of every table the same (grouped SQLite too) and 3.3.2 holding on both; counts: b45 against b44 BFS without batches +0.09%, the rest within 0.001%; the bank's queries (s44 and s45 in turns, six each) in_credit -0.59%, per_branch -0.34%, ranks -0.20%, the rest within 0.01%, the seven answers the same bytes; 008 (NUM_TEXT's digits, a message row's i64 cells), 027 and 092</title>
<updated>2026-10-19T00:53:40Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-10-19T00:53:40Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=defb2cf06a9b5db9429ca368d8c2af127a5c9c3d'/>
<id>urn:sha1:defb2cf06a9b5db9429ca368d8c2af127a5c9c3d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Module format v7, 027's 4b-2: keyed documents gone, a keyed list of records holding bytes doing their work: no collections table, DOC, DOC_SIZE or REPLACE (106 opcodes now 103, those from LEN on moved up), keyed messages or a base revision (pure_app_message takes an input and a payload), no PureData document callbacks (a data host opens states and saves them together), no burst by document key; the header 38 bytes; pure-edit-module gone; pure-serve without /objects, ETag, If-Match and If-None-Match, 412 or an app a thread for a module of documents alone (one without states or outputs runs so); a hole closed: an instruction in no handler's, view's or function's block was never verified yet the load's later passes read its arguments (a damaged module read out of bounds once the header moved what the mutation test damaged), now blanked to CONST 0; checks moved: server_documents (DOCS_SOURCE, keyed byte documents with the app's revision, against a Python model, one and three connection threads, a restart) in place of the parity with editor.pure, pipelining and bursts through kill -9 on its inputs and views, the lent budget on a text view (lending a document's read is server_lent_views' already), clocks and tokens on it; message tests without a document host; the HTTP benchmark's document suite runs the earlier document server and the baselines alone; the count harness builds against either message API (runs.sh build: -DPURE_KEYED_MESSAGES before 4b); counts: b33 against b32 with batches within 0.002% but BFS -0.33%, without batches BFS +0.63%, knapsack +0.52%, join +0.38%; the bank's queries (s32 on a v6 module, s33 on v7) field +0.68%, found +0.44%, large +0.42%, the rest within 0.13%; 008 as v7, 027's 4b-2 as made and 4c designed</title>
<updated>2026-10-18T18:30:16Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-10-18T18:30:16Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=b22b8c3f6c5378b47c36370225d7c41d4394bb7c'/>
<id>urn:sha1:b22b8c3f6c5378b47c36370225d7c41d4394bb7c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Watch a subscriber for writing only while it keeps output, and measure freshness by push and polling (019)</title>
<updated>2026-10-04T14:36:51Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-10-04T14:36:51Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=90c8edece941f26cd280686c7063a7c9149a2212'/>
<id>urn:sha1:90c8edece941f26cd280686c7063a7c9149a2212</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Take an app's requests only with a token its tokens file grants (017, 3b)</title>
<updated>2026-10-04T11:46:34Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-10-04T11:46:34Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=9fd2e16b68e1a83e2605e8a9cbd9b6d04a4da2f6'/>
<id>urn:sha1:9fd2e16b68e1a83e2605e8a9cbd9b6d04a4da2f6</id>
<content type='text'>
An app given a tokens file (tokens=FILE in --apps, --tokens FILE for the
one app of a host) answers a request only when it bears a token
(Authorization: Bearer) whose SHA-256 the file lists with a grant: read
for its views, queries and documents, write for all, input=NAME for
those inputs alone; 401 unauthorized (WWW-Authenticate: Bearer) without
one, 403 forbidden past its grant. A delivery sealed by a key --sender
names needs none. The digests are compared in constant time; a
connection keeps its last token's digest, so the same token is hashed
once. SHA-256 is the host's own (serve/sha256.c), no OpenSSL loaded. A
reading puts a changed tokens file in place with the app running on; a
file that is not one stops the app. pure-serve --make-token GRANT makes
a token and its line. load takes PURE_LOAD_TOKEN.
</content>
</entry>
<entry>
<title>Let the load tool put an app's name before its paths</title>
<updated>2026-10-01T02:23:27Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-10-01T02:23:27Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=a0840d6ebfcc6d992d60d119fb596cf76d54c7cc'/>
<id>urn:sha1:a0840d6ebfcc6d992d60d119fb596cf76d54c7cc</id>
<content type='text'>
load takes a ninth argument, PREFIX, put before every path: /NAME for
an app of a host of apps (pure-serve --apps, 017). Without it, as
before.
</content>
</entry>
<entry>
<title>Read TPC-C's table dumps from Pure a page at a time</title>
<updated>2026-09-30T06:22:34Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-30T06:22:34Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=49c5b0cb8205509ed602d5e6a71ec4edd7b0387f'/>
<id>urn:sha1:49c5b0cb8205509ed602d5e6a71ec4edd7b0387f</id>
<content type='text'>
With four warehouses the order lines answered at once (about 140 MB of
JSON) outgrew pure-serve's 64 MiB budget, and the check stopped with
503; a larger budget would have left the answer's memory in the
resident size measured after.
</content>
</entry>
<entry>
<title>Checkpoint TPC-C's SQLite each 40 MB of WAL, as tuning on both devices chose</title>
<updated>2026-09-30T06:18:03Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-30T06:18:03Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=155b73513017c79dcf235b53f0b4942e80dc2e29'/>
<id>urn:sha1:155b73513017c79dcf235b53f0b4942e80dc2e29</id>
<content type='text'>
Its default, each 1,000 pages, is 1 MB of WAL with the 1 KiB pages the
SD card favours: grouped commits there went from 203 to 694 a second,
and in RAM a thread's p99 from 1.2 to 0.2 ms (docs/research/106).
</content>
</entry>
<entry>
<title>Let TPC-C's SQLite commit in groups as pure-serve does, and say what each run costs</title>
<updated>2026-09-30T06:06:52Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-30T06:06:52Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=123966fa4a7f65df311960a5d8a42a92ae432408'/>
<id>urn:sha1:123966fa4a7f65df311960a5d8a42a92ae432408</id>
<content type='text'>
The terminals hand their writing transactions to one writer, which runs
those waiting in one transaction, each in a savepoint, and commits them
with one sync; reads stay on the terminals' connections, as pure-serve
shows views from the last save. An undone New-Order is rolled back by
its caller now (it rolled back the whole group before, and counted as
failed after the split). Each run reports its CPU a transaction, the
owner thread's share of a core, its memory, and the bytes a transaction
had written, by the process and to the device. SQLite runs with its
database mapped, a 64 MiB cache and savepoint journals in memory unless
told otherwise.
</content>
</entry>
<entry>
<title>Check TPC-C's consistency from one snapshot a side, and measure TPC-C on RAM and an SD card</title>
<updated>2026-09-28T10:12:37Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-28T10:12:37Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=d416c5b2392da7b2dc365e646ab5423292f770ce'/>
<id>urn:sha1:d416c5b2392da7b2dc365e646ab5423292f770ce</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Run TPC-C on Pure and on SQLite, and compare the states they leave</title>
<updated>2026-09-28T08:14:10Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-28T08:14:10Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=a557178f92a0b54fd33b9a7aa14ce66a8c45c060'/>
<id>urn:sha1:a557178f92a0b54fd33b9a7aa14ce66a8c45c060</id>
<content type='text'>
</content>
</entry>
</feed>
