aifastdb 3.10.5 → 3.10.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/aifastdb.node +0 -0
  2. package/aifastdb.win32-x64-msvc.node +0 -0
  3. package/dist/concurrent-document-store.d.ts +4 -0
  4. package/dist/concurrent-document-store.d.ts.map +1 -1
  5. package/dist/concurrent-document-store.js +6 -0
  6. package/dist/concurrent-document-store.js.map +1 -1
  7. package/dist/find-async-baseline.d.ts +33 -0
  8. package/dist/find-async-baseline.d.ts.map +1 -0
  9. package/dist/find-async-baseline.js +424 -0
  10. package/dist/find-async-baseline.js.map +1 -0
  11. package/dist/find-async-bench.d.ts +22 -0
  12. package/dist/find-async-bench.d.ts.map +1 -0
  13. package/dist/find-async-bench.js +322 -0
  14. package/dist/find-async-bench.js.map +1 -0
  15. package/dist/find-async-verify.d.ts +23 -0
  16. package/dist/find-async-verify.d.ts.map +1 -0
  17. package/dist/find-async-verify.js +286 -0
  18. package/dist/find-async-verify.js.map +1 -0
  19. package/dist/hnsw-insert-profile-verify.d.ts +35 -0
  20. package/dist/hnsw-insert-profile-verify.d.ts.map +1 -0
  21. package/dist/hnsw-insert-profile-verify.js +250 -0
  22. package/dist/hnsw-insert-profile-verify.js.map +1 -0
  23. package/dist/micro-batcher-benchmark.d.ts +3 -0
  24. package/dist/micro-batcher-benchmark.d.ts.map +1 -0
  25. package/dist/micro-batcher-benchmark.js +296 -0
  26. package/dist/micro-batcher-benchmark.js.map +1 -0
  27. package/dist/micro-batcher.d.ts +97 -0
  28. package/dist/micro-batcher.d.ts.map +1 -0
  29. package/dist/micro-batcher.js +77 -0
  30. package/dist/micro-batcher.js.map +1 -0
  31. package/dist/native.d.ts +71 -0
  32. package/dist/native.d.ts.map +1 -1
  33. package/dist/native.js +6 -1
  34. package/dist/native.js.map +1 -1
  35. package/dist/phase-387-reproducibility-audit.d.ts +3 -0
  36. package/dist/phase-387-reproducibility-audit.d.ts.map +1 -0
  37. package/dist/phase-387-reproducibility-audit.js +236 -0
  38. package/dist/phase-387-reproducibility-audit.js.map +1 -0
  39. package/dist/phase-390-baseline-multiseed.d.ts +3 -0
  40. package/dist/phase-390-baseline-multiseed.d.ts.map +1 -0
  41. package/dist/phase-390-baseline-multiseed.js +241 -0
  42. package/dist/phase-390-baseline-multiseed.js.map +1 -0
  43. package/dist/phase-390-t2-mb-grid-sweep.d.ts +3 -0
  44. package/dist/phase-390-t2-mb-grid-sweep.d.ts.map +1 -0
  45. package/dist/phase-390-t2-mb-grid-sweep.js +291 -0
  46. package/dist/phase-390-t2-mb-grid-sweep.js.map +1 -0
  47. package/dist/read-profiler-verify.js +236 -1
  48. package/dist/read-profiler-verify.js.map +1 -1
  49. package/dist/remember-many-spawn-benchmark.d.ts +3 -0
  50. package/dist/remember-many-spawn-benchmark.d.ts.map +1 -0
  51. package/dist/remember-many-spawn-benchmark.js +163 -0
  52. package/dist/remember-many-spawn-benchmark.js.map +1 -0
  53. package/dist/remember-spawn-benchmark.d.ts +3 -0
  54. package/dist/remember-spawn-benchmark.d.ts.map +1 -0
  55. package/dist/remember-spawn-benchmark.js +230 -0
  56. package/dist/remember-spawn-benchmark.js.map +1 -0
  57. package/dist/remember-spawn-receipt-benchmark.d.ts +3 -0
  58. package/dist/remember-spawn-receipt-benchmark.d.ts.map +1 -0
  59. package/dist/remember-spawn-receipt-benchmark.js +266 -0
  60. package/dist/remember-spawn-receipt-benchmark.js.map +1 -0
  61. package/dist/sgv2-async-verify.d.ts +17 -0
  62. package/dist/sgv2-async-verify.d.ts.map +1 -0
  63. package/dist/sgv2-async-verify.js +217 -0
  64. package/dist/sgv2-async-verify.js.map +1 -0
  65. package/dist/social-graph-v2-read-benchmark.d.ts +11 -2
  66. package/dist/social-graph-v2-read-benchmark.d.ts.map +1 -1
  67. package/dist/social-graph-v2-read-benchmark.js +145 -3
  68. package/dist/social-graph-v2-read-benchmark.js.map +1 -1
  69. package/dist/social-graph-v2.d.ts +65 -4
  70. package/dist/social-graph-v2.d.ts.map +1 -1
  71. package/dist/social-graph-v2.js +72 -6
  72. package/dist/social-graph-v2.js.map +1 -1
  73. package/package.json +1 -1
@@ -0,0 +1,230 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ /**
38
+ * phase-383/T383.2 (E383.B): rememberSpawn concurrent benchmark
39
+ *
40
+ * Measures the e2e write throughput unlocked by phase-383/T383.1's
41
+ * `rememberSpawn` NAPI async wrapper, which spawns the sync remember()
42
+ * body onto AiFastDb's owned multi-thread tokio runtime so that
43
+ * `Promise.all([db.rememberSpawn(input), ...])` actually parallelises
44
+ * through the K-shard `ConcurrentHNSWIndex`.
45
+ *
46
+ * Baselines (post phase-382 / a989070):
47
+ * - sync .remember() seq: 5,097 ops/s (T382.2c e2e default)
48
+ * - K=8 8-thread direct Rust: 40,397 ops/s (T382.2c bench-mt)
49
+ * - K=16 8-thread direct Rust: 59,521 ops/s (T382.2c bench-mt)
50
+ *
51
+ * Decision gate (T383.3): keep rememberSpawn iff
52
+ * max_concurrent_throughput >= 2x sync seq throughput.
53
+ *
54
+ * Usage:
55
+ * npx tsx packages/node/ts/remember-spawn-benchmark.ts
56
+ * npx tsx packages/node/ts/remember-spawn-benchmark.ts --dim 128 --total 5000 --concurrencies 1,4,8,16
57
+ */
58
+ const path = __importStar(require("path"));
59
+ const os = __importStar(require("os"));
60
+ const fs = __importStar(require("fs"));
61
+ const args = new Map();
62
+ process.argv.slice(2).forEach((arg, i, arr) => {
63
+ if (arg.startsWith('--')) {
64
+ const key = arg.slice(2);
65
+ if (i + 1 < arr.length && !arr[i + 1].startsWith('--')) {
66
+ args.set(key, arr[i + 1]);
67
+ }
68
+ else {
69
+ args.set(key, 'true');
70
+ }
71
+ }
72
+ });
73
+ const DIM = parseInt(args.get('dim') ?? '128', 10);
74
+ const TOTAL = parseInt(args.get('total') ?? '5000', 10);
75
+ const CONCURRENCIES = (args.get('concurrencies') ?? '1,4,8,16,32')
76
+ .split(',')
77
+ .map((s) => parseInt(s, 10));
78
+ // phase-384/T384.2: ef_construction sweep at the NAPI layer.
79
+ // phase-388/T388.0: harness default REVERTED to 200, mirroring the
80
+ // project default after the phase-386 default change was rolled
81
+ // back pending a multi-seed reproducibility audit. Pass `--ef 100`
82
+ // to test the phase-386 candidate, or `--ef 50` to reproduce the
83
+ // phase-384 M3-direct-Rust ceiling probe.
84
+ const EF_CONSTRUCTION = parseInt(args.get('ef') ?? '200', 10);
85
+ const EF_SEARCH = parseInt(args.get('ef-search') ?? '50', 10);
86
+ const M = parseInt(args.get('m') ?? '16', 10);
87
+ const MAX_ELEMENTS = parseInt(args.get('max-elements') ?? '1000000', 10);
88
+ const ROOT = path.resolve(__dirname, '..', '..', '..');
89
+ const tmpRoot = path.join(os.tmpdir(), `aidb-remember-spawn-bench-${process.pid}`);
90
+ fs.mkdirSync(tmpRoot, { recursive: true });
91
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
92
+ const { AiFastDb } = require(path.join(ROOT, 'packages', 'node'));
93
+ function vectorOf(seed, dim) {
94
+ const v = new Array(dim);
95
+ for (let i = 0; i < dim; i++) {
96
+ v[i] = Math.sin(seed * 2654435761 + i * 374761393);
97
+ }
98
+ return v;
99
+ }
100
+ function makeInput(id, dim) {
101
+ return {
102
+ content: `bench doc ${id}`,
103
+ embedding: vectorOf(id, dim),
104
+ tags: ['bench'],
105
+ metadata: { id_num: id },
106
+ importance: 0.5,
107
+ };
108
+ }
109
+ function makeDb(dbPath, dim) {
110
+ fs.mkdirSync(dbPath, { recursive: true });
111
+ return new AiFastDb({
112
+ path: dbPath,
113
+ dimension: dim,
114
+ hnsw: {
115
+ m: M,
116
+ efConstruction: EF_CONSTRUCTION,
117
+ efSearch: EF_SEARCH,
118
+ dimension: dim,
119
+ maxElements: MAX_ELEMENTS,
120
+ },
121
+ });
122
+ }
123
+ async function runConcurrentRememberSpawn(concurrency, total, dim) {
124
+ const dbPath = path.join(tmpRoot, `c${concurrency}-${Date.now()}`);
125
+ const db = makeDb(dbPath, dim);
126
+ // Pre-build inputs so per-call work is just NAPI + HNSW.
127
+ const inputs = Array.from({ length: total }, (_, i) => makeInput(i, dim));
128
+ const start = process.hrtime.bigint();
129
+ if (concurrency === 1) {
130
+ // Sequential: still calls .rememberSpawn (NOT .remember) so the
131
+ // overhead of dispatcher+spawn is included in the baseline.
132
+ for (let i = 0; i < total; i++) {
133
+ await db.rememberSpawn(inputs[i]);
134
+ }
135
+ }
136
+ else {
137
+ // Concurrency = N: maintain a sliding window of N in-flight Promises.
138
+ // We do this with a simple "worker per slot" pattern so Node doesn't
139
+ // build up `total` Promises in memory; each slot pulls the next index
140
+ // when its current call resolves.
141
+ let next = 0;
142
+ const workers = [];
143
+ for (let w = 0; w < concurrency; w++) {
144
+ workers.push((async () => {
145
+ while (true) {
146
+ const idx = next++;
147
+ if (idx >= total)
148
+ return;
149
+ await db.rememberSpawn(inputs[idx]);
150
+ }
151
+ })());
152
+ }
153
+ await Promise.all(workers);
154
+ }
155
+ const elapsed = Number(process.hrtime.bigint() - start) / 1e9;
156
+ const opsPerSec = total / elapsed;
157
+ return {
158
+ concurrency,
159
+ total,
160
+ elapsedSec: elapsed,
161
+ opsPerSec,
162
+ liftVsSeq: 0, // filled in later
163
+ };
164
+ }
165
+ async function runSyncRememberSeq(total, dim) {
166
+ const dbPath = path.join(tmpRoot, `sync-${Date.now()}`);
167
+ const db = makeDb(dbPath, dim);
168
+ const inputs = Array.from({ length: total }, (_, i) => makeInput(i, dim));
169
+ const start = process.hrtime.bigint();
170
+ for (let i = 0; i < total; i++) {
171
+ db.remember(inputs[i]);
172
+ }
173
+ const elapsed = Number(process.hrtime.bigint() - start) / 1e9;
174
+ return {
175
+ concurrency: 0, // sentinel for sync
176
+ total,
177
+ elapsedSec: elapsed,
178
+ opsPerSec: total / elapsed,
179
+ liftVsSeq: 1.0,
180
+ };
181
+ }
182
+ async function main() {
183
+ console.log(`[bench] phase-383/T383.2 + phase-384/T384.2 rememberSpawn concurrent benchmark`);
184
+ console.log(`[bench] dim=${DIM} total=${TOTAL} concurrencies=${CONCURRENCIES.join(',')} ef_construction=${EF_CONSTRUCTION} ef_search=${EF_SEARCH} M=${M}`);
185
+ console.log(`[bench] node=${process.version} cpus=${os.cpus().length}`);
186
+ console.log('');
187
+ // 1. sync .remember() baseline (sequential)
188
+ console.log(`[bench] Phase 0: sync .remember() seq baseline ...`);
189
+ const syncResult = await runSyncRememberSeq(TOTAL, DIM);
190
+ console.log(` sync .remember() seq: elapsed=${syncResult.elapsedSec.toFixed(3)}s ops/s=${syncResult.opsPerSec.toFixed(1)}`);
191
+ // 2. .rememberSpawn() at varying concurrencies
192
+ const results = [syncResult];
193
+ for (const c of CONCURRENCIES) {
194
+ console.log(`[bench] Phase ${c === 1 ? '1' : 'C=' + c}: rememberSpawn (concurrency=${c}) ...`);
195
+ const r = await runConcurrentRememberSpawn(c, TOTAL, DIM);
196
+ r.liftVsSeq = r.opsPerSec / syncResult.opsPerSec;
197
+ results.push(r);
198
+ console.log(` rememberSpawn (c=${String(c).padStart(3)}): elapsed=${r.elapsedSec.toFixed(3)}s ops/s=${r.opsPerSec.toFixed(1).padStart(10)} lift=${r.liftVsSeq.toFixed(2)}x`);
199
+ }
200
+ console.log('');
201
+ console.log('---');
202
+ for (const r of results) {
203
+ if (r.concurrency === 0) {
204
+ console.log(`sync_remember_seq_ops: ${r.opsPerSec.toFixed(1)}`);
205
+ }
206
+ else {
207
+ console.log(`remember_spawn_c${String(r.concurrency).padStart(2, '0')}_ops: ${r.opsPerSec.toFixed(1).padStart(10)} (lift=${r.liftVsSeq.toFixed(2)}x)`);
208
+ }
209
+ }
210
+ console.log(`dim: ${DIM}`);
211
+ console.log(`total_per_phase: ${TOTAL}`);
212
+ console.log(`ef_construction: ${EF_CONSTRUCTION}`);
213
+ console.log(`ef_search: ${EF_SEARCH}`);
214
+ console.log(`m: ${M}`);
215
+ console.log(`platform: ${process.platform}-${process.arch}`);
216
+ console.log(`cpus: ${os.cpus().length}`);
217
+ console.log('---');
218
+ // Cleanup
219
+ try {
220
+ fs.rmSync(tmpRoot, { recursive: true, force: true });
221
+ }
222
+ catch {
223
+ // best-effort
224
+ }
225
+ }
226
+ main().catch((err) => {
227
+ console.error('[bench] error:', err);
228
+ process.exit(1);
229
+ });
230
+ //# sourceMappingURL=remember-spawn-benchmark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remember-spawn-benchmark.js","sourceRoot":"","sources":["../ts/remember-spawn-benchmark.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=remember-spawn-receipt-benchmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remember-spawn-receipt-benchmark.d.ts","sourceRoot":"","sources":["../ts/remember-spawn-receipt-benchmark.ts"],"names":[],"mappings":""}
@@ -0,0 +1,266 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ /**
38
+ * phase-387/T387.4: rememberSpawnReceipt vs rememberSpawn benchmark.
39
+ *
40
+ * Targets the residual phase-385 NAPI ceiling. `rememberSpawn` returns a
41
+ * 13-field `MemoryNode` (including `metadata: serde_json::Value`); the
42
+ * `rememberSpawnReceipt` API introduced in phase-387/T387.2 returns a
43
+ * 6-field `WriteReceiptJS` (id + sequence + shard_id + timestamp + success
44
+ * + error) on the same write path. Hypothesis: with the JS-bound payload
45
+ * collapsed, the per-call NAPI marshalling cost falls and concurrent
46
+ * throughput moves from the phase-385 81K ceiling toward the phase-384
47
+ * direct-Rust 100K M3 ceiling.
48
+ *
49
+ * Bench shape:
50
+ * - phase 1: sync .remember() (baseline anchor)
51
+ * - phase 2: rememberSpawn (full MemoryNode) x concurrency sweep
52
+ * - phase 3: rememberSpawnReceipt (light receipt) x concurrency sweep
53
+ * - phase 4: rememberManySpawnReceipts (batched) x batch size sweep
54
+ *
55
+ * Decision gate (T387.5): keep iff
56
+ * (a) rememberSpawnReceipt c=16 lift over rememberSpawn c=16 >= 1.20x AND
57
+ * (b) absolute >= 50K ops/s
58
+ *
59
+ * Usage:
60
+ * npx tsx packages/node/ts/remember-spawn-receipt-benchmark.ts
61
+ * npx tsx packages/node/ts/remember-spawn-receipt-benchmark.ts --total 10000 --concurrencies 1,4,8,16,32 --batches 32,128,512
62
+ */
63
+ const path = __importStar(require("path"));
64
+ const os = __importStar(require("os"));
65
+ const fs = __importStar(require("fs"));
66
+ const args = new Map();
67
+ process.argv.slice(2).forEach((arg, i, arr) => {
68
+ if (arg.startsWith('--')) {
69
+ const key = arg.slice(2);
70
+ if (i + 1 < arr.length && !arr[i + 1].startsWith('--')) {
71
+ args.set(key, arr[i + 1]);
72
+ }
73
+ else {
74
+ args.set(key, 'true');
75
+ }
76
+ }
77
+ });
78
+ const DIM = parseInt(args.get('dim') ?? '128', 10);
79
+ const TOTAL = parseInt(args.get('total') ?? '10000', 10);
80
+ const CONCURRENCIES = (args.get('concurrencies') ?? '1,4,8,16,32')
81
+ .split(',')
82
+ .map((s) => parseInt(s, 10));
83
+ const BATCHES = (args.get('batches') ?? '32,128,512')
84
+ .split(',')
85
+ .map((s) => parseInt(s, 10));
86
+ const EF_CONSTRUCTION = parseInt(args.get('ef') ?? '100', 10);
87
+ const EF_SEARCH = parseInt(args.get('ef-search') ?? '50', 10);
88
+ const M = parseInt(args.get('m') ?? '16', 10);
89
+ const MAX_ELEMENTS = parseInt(args.get('max-elements') ?? '1000000', 10);
90
+ const ROOT = path.resolve(__dirname, '..', '..', '..');
91
+ const tmpRoot = path.join(os.tmpdir(), `aidb-receipt-bench-${process.pid}`);
92
+ fs.mkdirSync(tmpRoot, { recursive: true });
93
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
94
+ const { AiFastDb } = require(path.join(ROOT, 'packages', 'node'));
95
+ function vectorOf(seed, dim) {
96
+ const v = new Array(dim);
97
+ for (let i = 0; i < dim; i++) {
98
+ v[i] = Math.sin(seed * 2654435761 + i * 374761393);
99
+ }
100
+ return v;
101
+ }
102
+ function makeInput(id, dim) {
103
+ return {
104
+ content: `bench doc ${id}`,
105
+ embedding: vectorOf(id, dim),
106
+ tags: ['bench'],
107
+ metadata: { id_num: id },
108
+ importance: 0.5,
109
+ };
110
+ }
111
+ function makeDb(dbPath, dim) {
112
+ fs.mkdirSync(dbPath, { recursive: true });
113
+ return new AiFastDb({
114
+ path: dbPath,
115
+ dimension: dim,
116
+ hnsw: {
117
+ m: M,
118
+ efConstruction: EF_CONSTRUCTION,
119
+ efSearch: EF_SEARCH,
120
+ dimension: dim,
121
+ maxElements: MAX_ELEMENTS,
122
+ },
123
+ });
124
+ }
125
+ async function runSyncRememberSeq(total, dim) {
126
+ const dbPath = path.join(tmpRoot, `sync-${Date.now()}`);
127
+ const db = makeDb(dbPath, dim);
128
+ const inputs = Array.from({ length: total }, (_, i) => makeInput(i, dim));
129
+ const start = process.hrtime.bigint();
130
+ for (let i = 0; i < total; i++)
131
+ db.remember(inputs[i]);
132
+ const elapsed = Number(process.hrtime.bigint() - start) / 1e9;
133
+ return total / elapsed;
134
+ }
135
+ async function runConcurrent(call, concurrency, total, dim) {
136
+ const dbPath = path.join(tmpRoot, `${call}-c${concurrency}-${Date.now()}`);
137
+ const db = makeDb(dbPath, dim);
138
+ const inputs = Array.from({ length: total }, (_, i) => makeInput(i, dim));
139
+ const fn = call === 'spawn'
140
+ ? (i) => db.rememberSpawn(inputs[i])
141
+ : (i) => db.rememberSpawnReceipt(inputs[i]);
142
+ const start = process.hrtime.bigint();
143
+ if (concurrency === 1) {
144
+ for (let i = 0; i < total; i++)
145
+ await fn(i);
146
+ }
147
+ else {
148
+ let next = 0;
149
+ const workers = [];
150
+ for (let w = 0; w < concurrency; w++) {
151
+ workers.push((async () => {
152
+ while (true) {
153
+ const idx = next++;
154
+ if (idx >= total)
155
+ return;
156
+ await fn(idx);
157
+ }
158
+ })());
159
+ }
160
+ await Promise.all(workers);
161
+ }
162
+ const elapsed = Number(process.hrtime.bigint() - start) / 1e9;
163
+ return total / elapsed;
164
+ }
165
+ async function runManyReceipts(batchSize, total, dim) {
166
+ const dbPath = path.join(tmpRoot, `many-receipt-b${batchSize}-${Date.now()}`);
167
+ const db = makeDb(dbPath, dim);
168
+ const inputs = Array.from({ length: total }, (_, i) => makeInput(i, dim));
169
+ const start = process.hrtime.bigint();
170
+ for (let off = 0; off < total; off += batchSize) {
171
+ const slice = inputs.slice(off, Math.min(off + batchSize, total));
172
+ await db.rememberManySpawnReceipts(slice);
173
+ }
174
+ const elapsed = Number(process.hrtime.bigint() - start) / 1e9;
175
+ return total / elapsed;
176
+ }
177
+ async function main() {
178
+ console.log(`[bench] phase-387/T387.4 rememberSpawnReceipt benchmark`);
179
+ console.log(`[bench] dim=${DIM} total=${TOTAL} concurrencies=${CONCURRENCIES.join(',')} batches=${BATCHES.join(',')} ef=${EF_CONSTRUCTION}`);
180
+ const results = [];
181
+ console.log(`[bench] phase 1: sync .remember()`);
182
+ const seqOps = await runSyncRememberSeq(Math.min(TOTAL, 5000), DIM);
183
+ results.push({
184
+ label: 'sync_remember_seq',
185
+ concurrency: 0,
186
+ total: TOTAL,
187
+ elapsedSec: 0,
188
+ opsPerSec: seqOps,
189
+ liftVsSeq: 1.0,
190
+ liftVsSpawn: 0,
191
+ });
192
+ console.log(` sync_remember_seq = ${seqOps.toFixed(0).padStart(7)} ops/s`);
193
+ console.log(`[bench] phase 2: rememberSpawn (full MemoryNode)`);
194
+ const spawnByC = {};
195
+ for (const c of CONCURRENCIES) {
196
+ const ops = await runConcurrent('spawn', c, TOTAL, DIM);
197
+ spawnByC[c] = ops;
198
+ results.push({
199
+ label: `spawn_c${String(c).padStart(2, '0')}`,
200
+ concurrency: c,
201
+ total: TOTAL,
202
+ elapsedSec: 0,
203
+ opsPerSec: ops,
204
+ liftVsSeq: ops / seqOps,
205
+ liftVsSpawn: 1.0,
206
+ });
207
+ console.log(` spawn_c${String(c).padStart(2, '0')} = ${ops.toFixed(0).padStart(7)} ops/s (lift_vs_sync=${(ops / seqOps).toFixed(2)}x)`);
208
+ }
209
+ console.log(`[bench] phase 3: rememberSpawnReceipt (light receipt)`);
210
+ for (const c of CONCURRENCIES) {
211
+ const ops = await runConcurrent('receipt', c, TOTAL, DIM);
212
+ const liftSpawn = ops / spawnByC[c];
213
+ results.push({
214
+ label: `receipt_c${String(c).padStart(2, '0')}`,
215
+ concurrency: c,
216
+ total: TOTAL,
217
+ elapsedSec: 0,
218
+ opsPerSec: ops,
219
+ liftVsSeq: ops / seqOps,
220
+ liftVsSpawn: liftSpawn,
221
+ });
222
+ console.log(` receipt_c${String(c).padStart(2, '0')} = ${ops.toFixed(0).padStart(7)} ops/s (lift_vs_spawn=${liftSpawn.toFixed(2)}x lift_vs_sync=${(ops / seqOps).toFixed(2)}x)`);
223
+ }
224
+ console.log(`[bench] phase 4: rememberManySpawnReceipts (batched)`);
225
+ for (const b of BATCHES) {
226
+ const ops = await runManyReceipts(b, TOTAL, DIM);
227
+ results.push({
228
+ label: `many_receipts_b${String(b).padStart(3, '0')}`,
229
+ concurrency: 1,
230
+ total: TOTAL,
231
+ elapsedSec: 0,
232
+ opsPerSec: ops,
233
+ liftVsSeq: ops / seqOps,
234
+ liftVsSpawn: ops / spawnByC[16],
235
+ });
236
+ console.log(` many_receipts_b${String(b).padStart(3, '0')} = ${ops.toFixed(0).padStart(7)} ops/s (lift_vs_sync=${(ops / seqOps).toFixed(2)}x lift_vs_spawn_c16=${(ops / spawnByC[16]).toFixed(2)}x)`);
237
+ }
238
+ console.log(`[bench] ---- summary ----`);
239
+ console.log(`dim: ${DIM}`);
240
+ console.log(`total_per_phase: ${TOTAL}`);
241
+ console.log(`ef_construction: ${EF_CONSTRUCTION}`);
242
+ console.log(`platform: ${process.platform}-${process.arch}`);
243
+ console.log(`cpus: ${os.cpus().length}`);
244
+ // Decision gate
245
+ const spawn16 = results.find((r) => r.label === 'spawn_c16')?.opsPerSec ?? 0;
246
+ const receipt16 = results.find((r) => r.label === 'receipt_c16')?.opsPerSec ?? 0;
247
+ const lift = receipt16 / spawn16;
248
+ const gateA = lift >= 1.2;
249
+ const gateB = receipt16 >= 50000;
250
+ console.log(`---- decision gate (T387.5) ----`);
251
+ console.log(`receipt_c16 / spawn_c16: ${lift.toFixed(2)}x (gate: >=1.20x -> ${gateA ? 'PASS' : 'FAIL'})`);
252
+ console.log(`receipt_c16 absolute: ${receipt16.toFixed(0)} ops/s (gate: >=50000 -> ${gateB ? 'PASS' : 'FAIL'})`);
253
+ console.log(`overall: ${gateA && gateB ? 'PASS — KEEP rememberSpawnReceipt' : 'FAIL — investigate'}`);
254
+ // Cleanup tmpRoot
255
+ try {
256
+ fs.rmSync(tmpRoot, { recursive: true, force: true });
257
+ }
258
+ catch (_) {
259
+ // best-effort
260
+ }
261
+ }
262
+ main().catch((err) => {
263
+ console.error(err);
264
+ process.exit(1);
265
+ });
266
+ //# sourceMappingURL=remember-spawn-receipt-benchmark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remember-spawn-receipt-benchmark.js","sourceRoot":"","sources":["../ts/remember-spawn-receipt-benchmark.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * phase-380/T380.3 (E380.B) — semantic regression guard for the new
4
+ * `getTagMembersAsync` / `listTagsAsync` / `getPersonsByAttributeAsync`
5
+ * NAPI async wrappers on `SocialGraphV2`.
6
+ *
7
+ * Same contract as `find-async-verify.ts`:
8
+ * 1. async length == sync length
9
+ * 2. when limit >= total_hits, sorted-id projection equality
10
+ * (per-node predicate is implicit because the sync side itself was
11
+ * validated in phase-377; we just check sync vs async.)
12
+ *
13
+ * Run after `npx tsc`:
14
+ * node packages/node/dist/sgv2-async-verify.js
15
+ */
16
+ export {};
17
+ //# sourceMappingURL=sgv2-async-verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sgv2-async-verify.d.ts","sourceRoot":"","sources":["../ts/sgv2-async-verify.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG"}