code wiki / (root) / nx_uxf_sqlite_workload.nx

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}