nx_uxf_sqlite_workload.nx source
↩ module page · 68 lines · 3358 B
1// nx_uxf_sqlite_workload.nx -- UXF arc #4 (true 1:1 bench), prep: SOVEREIGNLY generate the EXTERNAL
2// sqlite incumbent's workload as a .sql script. GUARDRAIL (no-cheat flag): sqlite is the external,
3// 3rd-party, NON-sovereign yardstick-to-beat -- it only EXECUTES a workload Nishi authored; it does
4// no Nishi work and is never linked. The workload is byte-for-byte IDENTICAL to nx_uxf_store_bench:
5// N=20000 key-value rows (key 'k'+8digit, value 16 bytes 0xAB), bulk-insert in one txn, then 20000
6// point lookups over the same (i*7919)%N access pattern (via a recursive CTE) -- so the comparison
7// is fair. Output: knowledge/staging/uxf/bench.sql. No hardware writes (Rule 26).
8// expect_exit: 0 license_tier: ORIGINAL
9import "nx_syscalls.nx"
10const K_MAGIC_4194304: i64 = 4194304
11
12const WN: i64 = 20000
13
14func ws(buf: *u8, off: i64, s: *u8) -> i64 { var i: i64 = 0; while s[i] != (0 as u8) { buf[off + i] = s[i]; i = i + 1 } return off + i }
15func wkey(buf: *u8, off: i64, v: i64) -> i64 {
16 buf[off] = 107 as u8 // 'k'
17 var x: i64 = v
18 var p: i64 = 8
19 while p >= 1 { buf[off + p] = (48 + (x % 10)) as u8; x = x / 10; p = p - 1 }
20 return off + 9
21}
22func wpn(buf: *u8, off: i64, v: i64) -> i64 {
23 var o: i64 = off
24 if v == 0 { buf[o] = 48 as u8; return o + 1 }
25 let t: *u8 = sys_mmap(28)
26 var m: i64 = v
27 var k: i64 = 0
28 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 }
29 var i: i64 = 0
30 while i < k { buf[o + i] = t[k - 1 - i]; i = i + 1 }
31 return o + k
32}
33
34func main() -> i64 {
35 let buf: *u8 = sys_mmap(K_MAGIC_4194304)
36 var off: i64 = 0
37 off = ws(buf, off, "-- EXTERNAL SQLITE INCUMBENT BASELINE (3rd-party, NON-sovereign; the yardstick to beat).\n" as *u8)
38 off = ws(buf, off, "-- Workload IDENTICAL to the sovereign nx_uxf_store_bench. sqlite only EXECUTES this; it does no Nishi work.\n" as *u8)
39 off = ws(buf, off, "PRAGMA synchronous=FULL;\nPRAGMA journal_mode=DELETE;\n" as *u8)
40 off = ws(buf, off, "CREATE TABLE kv(k TEXT PRIMARY KEY, v BLOB) WITHOUT ROWID;\n" as *u8)
41 off = ws(buf, off, ".print INSERT_BEGIN\n.timer ON\nBEGIN;\n" as *u8)
42 var i: i64 = 0
43 while i < WN {
44 off = ws(buf, off, "INSERT INTO kv VALUES('" as *u8)
45 off = wkey(buf, off, i)
46 off = ws(buf, off, "',x'abababababababababababababababab');\n" as *u8)
47 i = i + 1
48 }
49 off = ws(buf, off, "COMMIT;\n.print INSERT_DONE\n" as *u8)
50 off = ws(buf, off, ".print GET_BEGIN\nWITH RECURSIVE seq(i) AS (SELECT 0 UNION ALL SELECT i+1 FROM seq WHERE i<" as *u8)
51 off = wpn(buf, off, WN - 1)
52 off = ws(buf, off, ") SELECT count(v) FROM seq JOIN kv ON kv.k=printf('k%08d',(i*7919)%" as *u8)
53 off = wpn(buf, off, WN)
54 off = ws(buf, off, ");\n.print GET_DONE\n.timer OFF\n" as *u8)
55
56 let fd: i64 = sys_openat_wr("knowledge/staging/uxf/bench.sql\x00" as *u8, 0x1a4)
57 if fd <= 0 { sys_write(1, "generate FAILED\n" as *u8, 16); sys_exit(1); return 1 }
58 sys_write(fd, buf, off)
59 sys_close(fd)
60
61 sys_write(1, "generated knowledge/staging/uxf/bench.sql N=" as *u8, 45)
62 let nb: *u8 = sys_mmap(16); var no: i64 = wpn(nb, 0, WN); sys_write(1, nb, no)
63 sys_write(1, " bytes=" as *u8, 8)
64 let bb: *u8 = sys_mmap(16); var bo: i64 = wpn(bb, 0, off); sys_write(1, bb, bo)
65 sys_write(1, "\n" as *u8, 1)
66 sys_exit(0)
67 return 0
68}