mpackdb
All repositories: gitoria
1.5 KB
// Worker for multi-process-write.test.js — spawned as a separate node process.// argv: <dbPath> <workerId> <mode>import MPackDB from '../../src/MPackDB.js';const [, , dbPath, workerId, mode] = process.argv;if (mode === 'utxo') {// String-PK store like the blockchain's utxos: insert 15, delete every 3rdconst db = new MPackDB(dbPath, { primaryKey: 'id', indexes: ['symbol', '*blockNumber'], compact: false });for (let i = 0; i < 15; i++) {await db.insert({ id: `w${workerId}-${i}`, symbol: `SYM${workerId}`, blockNumber: i, worker: Number(workerId) });}for (let i = 0; i < 15; i += 3) {await db.delete(`w${workerId}-${i}`);}await db.close();process.exit(0);}if (mode === 'numeric') {// Numeric auto-increment PK — ids must be globally unique across processesconst db = new MPackDB(dbPath, { primaryKey: '*id', compact: false });const ids = [];for (let i = 0; i < 15; i++) {ids.push(await db.insert({ worker: Number(workerId), i }));}await db.close();console.log(JSON.stringify(ids));process.exit(0);}if (mode === 'live') {// Insert with index persistence disabled, then exit WITHOUT close() (like a// crash): the parent must still see the records via its tail-scan catch-upconst db = new MPackDB(dbPath, {primaryKey: 'id',indexes: ['symbol'],compact: false,indexPersistInterval: 0,indexPersistThreshold: 1e9,});for (let i = 0; i < 5; i++) {await db.insert({ id: `live-${i}`, symbol: 'LIVE' });}console.log('INSERTED');process.stdin.once('data', () => process.exit(0));}
Branches
- mastermain branch
Latest commits
- 87888725release 1.0.7caramboleyo
- c4cdb9b6node: import prefixes (Deno compat) + pre-existing index-state WIPcaramboleyo
- 0afb8f4bupdate now must be a callbackcaramboleyo
- cde73eb4release 1.0.6caramboleyo
- d01dda02add index hints, intersection, boundingBox; remove findByIndexcaramboleyo
- b8ffc1a0release 1.0.5caramboleyo
- d47876a1reimplemented lost features like indexed find and more testscaramboleyo
- 7f08da9afixed insert ignoring model definitioncaramboleyo
- 705774a9added flush before findcaramboleyo
- b4db6391initial commitcaramboleyo