@nxtedition/cache 2.1.25 → 2.1.27
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.
- package/README.md +5 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +336 -74
- package/lib/index.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -103,6 +103,8 @@ The in-memory tier uses a random-two-choice eviction strategy: when the cache is
|
|
|
103
103
|
|
|
104
104
|
The default serializer passes `ArrayBufferView` values through as-is and uses `JSON.stringify`/`JSON.parse` for everything else.
|
|
105
105
|
|
|
106
|
+
> **Round-trip asymmetry:** only `Buffer`/`Uint8Array` values round-trip faithfully through the default serializer. Any other view type (`Float64Array`, `DataView`, …) is stored as raw bytes and comes back as a `Buffer` — but only when the read is served from the database tier (after memory eviction, `gc()`, or a process restart); reads served from the memory tier return the original object. If you store non-`Uint8Array` views, provide a custom serializer that reconstructs the concrete type.
|
|
107
|
+
|
|
106
108
|
### `CacheResult<V>`
|
|
107
109
|
|
|
108
110
|
Both `get()` and `peek()` return a `CacheResult<V>`, a discriminated union on the `async` property:
|
|
@@ -140,6 +142,8 @@ Forces a new fetch via `valueSelector` regardless of cache state. Unlike `get()`
|
|
|
140
142
|
|
|
141
143
|
Remove an entry from both memory and SQLite. Also cancels any in-flight deduplication for that key — a pending fetch will still resolve for its callers, but the result is **not** written to the cache.
|
|
142
144
|
|
|
145
|
+
The SQLite `DELETE` is retried with a short in-thread backoff (~16 × 5 ms) if another connection holds the write lock. If contention outlasts the budget, the failure is surfaced via the `error` event and the row may survive in the database — meaning a later read can resurrect the value. Listen for `error` if delete-for-correctness matters to your workload.
|
|
146
|
+
|
|
143
147
|
#### `cache.gc(): void`
|
|
144
148
|
|
|
145
149
|
Remove all expired entries (past `ttl + stale`) from both the in-memory cache and SQLite, and run `PRAGMA wal_checkpoint(TRUNCATE)` + `PRAGMA optimize`.
|
|
@@ -236,7 +240,7 @@ With `shards: 1` the cache is a single file at the given `location`, identical t
|
|
|
236
240
|
|
|
237
241
|
**Cross-instance consistency:** hash routing is deterministic (xxhash32 is pure), so two Cache instances pointing at the same `location` with the same `shards` count will route the same keys to the same shards. Data persists across instance restarts.
|
|
238
242
|
|
|
239
|
-
**Changing `shards`
|
|
243
|
+
**Changing `shards` discards old data.** Shard filenames embed the shard count, so opening a cache with `shards: 2` after previously using `shards: 4` starts from a fresh, empty file set — and the constructor deletes the stale files from the previous configuration (they would otherwise leak disk forever, and switching back could resurrect entries that `delete()`/`clear()` had invalidated in the meantime).
|
|
240
244
|
|
|
241
245
|
**Per-shard state:** `maxSize` divides evenly across shards (`maxSize / shards` per shard), eviction runs per-shard on `SQLITE_FULL`, and `stats.database.size` is summed across all shards.
|
|
242
246
|
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAS1C,OAAO,EAAsC,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAEpF,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAiDhD,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,GAAG,UAAU,GAAG,MAAM,CAAA;IACrD,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,KAAK,CAAC,CAAA;CAC1C;AAaD,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,CAAA;IAClD,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,CAAA;IACpD,MAAM,CAAC,EAAE,aAAa,GAAG,KAAK,GAAG,IAAI,CAAA;IACrC,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,eAAe,GAAG,KAAK,GAAG,IAAI,CAAA;IACzC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;CAC3B;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB;IAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GACtC;IAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,CAAA;AAEtC,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,WAAW,EAAE,OAAO,CAAC;QAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC,EAAE,CAAA;CACtD;AAkJD,qBAAa,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAE,SAAQ,YAAY;;gBAqDhF,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAClD,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,MAAM,EACpC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAkNxB,IAAI,KAAK;;;;;;;;;;;sBACmB,MAAM;kBAAQ,MAAM,GAAG,SAAS;;;;MAsB3D;IAED,CAAC,MAAM,CAAC,OAAO,CAAC;IAIhB,SAAS;IAiBT,KAAK;IAwCL,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAO/B,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAOhC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAgBnC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI;IAYxB,KAAK,IAAI,IAAI;IAyCb,EAAE,IAAI,IAAI;CAgnBX;AA0DD,uCAAuC;AACvC,eAAO,MAAM,UAAU,cAAQ,CAAA;AAC/B,8CAA8C;AAC9C,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAA"}
|
package/lib/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:events';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
2
4
|
import { DatabaseSync } from 'node:sqlite';
|
|
3
5
|
import xxhash from 'xxhash-wasm';
|
|
4
6
|
import { getOrCreate } from '@nxtedition/shared';
|
|
@@ -49,6 +51,14 @@ const defaultSerializer = {
|
|
|
49
51
|
const VERSION = 6;
|
|
50
52
|
const MAX_DURATION = 365000000e3;
|
|
51
53
|
const HASHER = await xxhash();
|
|
54
|
+
// Shared scratch array for bounded in-thread backoff sleeps: the value never
|
|
55
|
+
// changes and nothing notifies it, so every wait simply times out after the
|
|
56
|
+
// given duration. Hoisted so retry loops don't allocate a fresh
|
|
57
|
+
// SharedArrayBuffer per attempt.
|
|
58
|
+
const SLEEP_INT32 = new Int32Array(new SharedArrayBuffer(4));
|
|
59
|
+
function sleepSync(ms) {
|
|
60
|
+
Atomics.wait(SLEEP_INT32, 0, 0, ms);
|
|
61
|
+
}
|
|
52
62
|
class DatabaseShard {
|
|
53
63
|
location;
|
|
54
64
|
databaseTimeout = 20;
|
|
@@ -73,20 +83,35 @@ class DatabaseShard {
|
|
|
73
83
|
if (n >= 16) {
|
|
74
84
|
throw err;
|
|
75
85
|
}
|
|
76
|
-
|
|
86
|
+
sleepSync(100);
|
|
77
87
|
}
|
|
78
88
|
}
|
|
79
89
|
const maxSize = opts?.maxSize ?? 128 * 1024 * 1024;
|
|
80
90
|
try {
|
|
81
|
-
|
|
91
|
+
// The page size of a pre-existing file is immutable and not necessarily
|
|
92
|
+
// 4096 (a foreign/legacy file at this location, or a build with a
|
|
93
|
+
// different SQLITE_DEFAULT_PAGE_SIZE). max_page_count must be computed
|
|
94
|
+
// from the file's actual page size or the maxSize budget is enforced
|
|
95
|
+
// wrong in both directions (premature SQLITE_FULL eviction churn at
|
|
96
|
+
// page_size < 4096, unbounded growth past maxSize at page_size > 4096).
|
|
97
|
+
const { page_size: pageSize } = this.database.prepare('PRAGMA page_size').get();
|
|
98
|
+
const setupSql = `
|
|
82
99
|
PRAGMA journal_mode = WAL;
|
|
83
100
|
PRAGMA synchronous = OFF;
|
|
84
101
|
PRAGMA wal_autocheckpoint = 10000;
|
|
85
102
|
PRAGMA cache_size = -${Math.ceil(maxSize / 1024 / 8)};
|
|
86
103
|
PRAGMA mmap_size = ${maxSize};
|
|
87
|
-
PRAGMA max_page_count = ${Math.ceil(maxSize /
|
|
104
|
+
PRAGMA max_page_count = ${Math.ceil(maxSize / pageSize)};
|
|
88
105
|
PRAGMA optimize;
|
|
89
106
|
|
|
107
|
+
${
|
|
108
|
+
// Reclaim the page budget held by tables left behind by older
|
|
109
|
+
// schema versions (VERSION has been bumped 2 → 6 over the package's
|
|
110
|
+
// life, and max_page_count caps the whole file). The list is
|
|
111
|
+
// explicit — older versions only — so an old process opening a file
|
|
112
|
+
// already migrated by a newer one can never drop the newer table.
|
|
113
|
+
Array.from({ length: VERSION - 1 }, (_, n) => `DROP TABLE IF EXISTS cache_v${n + 1};`).join('\n ')}
|
|
114
|
+
|
|
90
115
|
CREATE TABLE IF NOT EXISTS cache_v${VERSION} (
|
|
91
116
|
key TEXT PRIMARY KEY NOT NULL,
|
|
92
117
|
val BLOB NOT NULL,
|
|
@@ -95,7 +120,30 @@ class DatabaseShard {
|
|
|
95
120
|
) WITHOUT ROWID;
|
|
96
121
|
|
|
97
122
|
CREATE INDEX IF NOT EXISTS cache_v${VERSION}_expire_idx ON cache_v${VERSION}(expire);
|
|
98
|
-
|
|
123
|
+
`;
|
|
124
|
+
for (let n = 0; true; n++) {
|
|
125
|
+
try {
|
|
126
|
+
this.database.exec(setupSql);
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
// `PRAGMA journal_mode = WAL` under a concurrent writer fails
|
|
131
|
+
// immediately with SQLITE_BUSY — SQLite does not invoke the busy
|
|
132
|
+
// handler for WAL conversion (verified empirically), so no
|
|
133
|
+
// busy_timeout can help. The DROP/CREATE migration statements do
|
|
134
|
+
// honor the busy handler, but only for the configured ~20ms.
|
|
135
|
+
// Both are real races under concurrent first-open or a
|
|
136
|
+
// rolling-deploy migration, and a single failure here used to
|
|
137
|
+
// silently degrade the cache to memory-only for the process
|
|
138
|
+
// lifetime. Bounded retry, mirroring the open loop above.
|
|
139
|
+
// (On an already-migrated WAL file the whole script is a no-op
|
|
140
|
+
// that takes no write lock, so the steady state never retries.)
|
|
141
|
+
if (err?.errcode !== 5 /* SQLITE_BUSY */ || n >= 16) {
|
|
142
|
+
throw err;
|
|
143
|
+
}
|
|
144
|
+
sleepSync(100);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
99
147
|
this.getQuery = this.database.prepare(`SELECT val, stale, expire FROM cache_v${VERSION} WHERE key = ? AND expire > ?`);
|
|
100
148
|
this.setQuery = this.database.prepare(`INSERT OR REPLACE INTO cache_v${VERSION} (key, val, stale, expire) VALUES (?, ?, ?, ?)`);
|
|
101
149
|
this.delQuery = this.database.prepare(`DELETE FROM cache_v${VERSION} WHERE key = ?`);
|
|
@@ -131,25 +179,34 @@ export class Cache extends EventEmitter {
|
|
|
131
179
|
misses: 0,
|
|
132
180
|
};
|
|
133
181
|
#emitError = (err) => {
|
|
134
|
-
//
|
|
135
|
-
//
|
|
136
|
-
//
|
|
137
|
-
//
|
|
138
|
-
//
|
|
139
|
-
//
|
|
140
|
-
//
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
182
|
+
// Deferred to a microtask so user 'error' listeners never run inside
|
|
183
|
+
// internal loops (#flush, #set, gc, the constructor): a listener that
|
|
184
|
+
// re-entrantly calls close()/clear() mid-#flush was the root cause of a
|
|
185
|
+
// whole class of bugs — process-crashing null derefs, leaked SAB lock
|
|
186
|
+
// slots, resurrected post-clear writes. With emission deferred, internal
|
|
187
|
+
// state transitions can never interleave with user code; the snapshot
|
|
188
|
+
// and drain backstops in #flush/close()/clear() remain as
|
|
189
|
+
// defense-in-depth. Deferral also means errors raised during
|
|
190
|
+
// construction reach listeners attached right after `new Cache(...)`,
|
|
191
|
+
// instead of always falling through to process.emitWarning.
|
|
192
|
+
queueMicrotask(() => {
|
|
193
|
+
// emit('error', err) rethrows synchronously if a user listener throws.
|
|
194
|
+
// Swallow listener throws and surface them as a warning so diagnostics
|
|
195
|
+
// aren't silently dropped (and nothing escapes as an uncaught
|
|
196
|
+
// exception from the microtask).
|
|
197
|
+
try {
|
|
198
|
+
if (this.listenerCount('error') > 0) {
|
|
199
|
+
this.emit('error', err);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
process.emitWarning(err);
|
|
203
|
+
}
|
|
144
204
|
}
|
|
145
|
-
|
|
205
|
+
catch (listenerErr) {
|
|
206
|
+
process.emitWarning(listenerErr);
|
|
146
207
|
process.emitWarning(err);
|
|
147
208
|
}
|
|
148
|
-
}
|
|
149
|
-
catch (listenerErr) {
|
|
150
|
-
process.emitWarning(listenerErr);
|
|
151
|
-
process.emitWarning(err);
|
|
152
|
-
}
|
|
209
|
+
});
|
|
153
210
|
};
|
|
154
211
|
constructor(location, valueSelector, keySelector, opts) {
|
|
155
212
|
super();
|
|
@@ -167,6 +224,14 @@ export class Cache extends EventEmitter {
|
|
|
167
224
|
this.#keySelector = keySelector ?? ((...args) => JSON.stringify(args));
|
|
168
225
|
if (typeof opts?.ttl === 'number' || opts?.ttl === undefined) {
|
|
169
226
|
const ttl = opts?.ttl ?? Number.MAX_SAFE_INTEGER;
|
|
227
|
+
// Fail fast on a statically-checkable misconfiguration. Without this,
|
|
228
|
+
// construction succeeds and every single get() then throws (or rejects)
|
|
229
|
+
// from #set's per-value validation — the cache never stores anything and
|
|
230
|
+
// re-runs the valueSelector on each call. Infinity is allowed: #set
|
|
231
|
+
// clamps it to MAX_DURATION, same as the function form.
|
|
232
|
+
if (Number.isNaN(ttl) || ttl < 0) {
|
|
233
|
+
throw new RangeError('ttl must be a non-negative number');
|
|
234
|
+
}
|
|
170
235
|
this.#ttl = (_val, _key) => ttl;
|
|
171
236
|
}
|
|
172
237
|
else if (typeof opts?.ttl === 'function') {
|
|
@@ -177,6 +242,9 @@ export class Cache extends EventEmitter {
|
|
|
177
242
|
}
|
|
178
243
|
if (typeof opts?.stale === 'number' || opts?.stale === undefined) {
|
|
179
244
|
const stale = opts?.stale ?? Number.MAX_SAFE_INTEGER;
|
|
245
|
+
if (Number.isNaN(stale) || stale < 0) {
|
|
246
|
+
throw new RangeError('stale must be a non-negative number');
|
|
247
|
+
}
|
|
180
248
|
this.#stale = (_val, _key) => stale;
|
|
181
249
|
}
|
|
182
250
|
else if (typeof opts?.stale === 'function') {
|
|
@@ -188,7 +256,25 @@ export class Cache extends EventEmitter {
|
|
|
188
256
|
if (opts?.lock !== undefined && opts.lock !== false && opts.lock !== null) {
|
|
189
257
|
throw new TypeError('lock must be false, null, or undefined');
|
|
190
258
|
}
|
|
191
|
-
|
|
259
|
+
// The cross-thread lock's entire value depends on the database being the
|
|
260
|
+
// cross-thread communication channel: a waiter that wakes after the
|
|
261
|
+
// holder's release reads the holder's row from the shared DB file. With
|
|
262
|
+
// the database tier disabled there is nothing shareable to read — the
|
|
263
|
+
// waiter recomputes anyway after paying up to the full 1s waitAsync
|
|
264
|
+
// timeout (which never even settles on the main thread in Node v25+), so
|
|
265
|
+
// the lock is pure dead latency. Skip it.
|
|
266
|
+
// Hoisted into a const: aliased-condition narrowing does not track
|
|
267
|
+
// optional-chained property paths, so testing `opts?.database` directly
|
|
268
|
+
// would leave `false | null` in databaseOpts's type below.
|
|
269
|
+
const database = opts?.database;
|
|
270
|
+
const databaseDisabled = database === false || database === null;
|
|
271
|
+
// Narrowed alias: false/null (disabled) coalesce to undefined so the
|
|
272
|
+
// database block below can use plain optional access.
|
|
273
|
+
const databaseOpts = databaseDisabled ? undefined : database;
|
|
274
|
+
if (opts?.lock === false ||
|
|
275
|
+
opts?.lock === null ||
|
|
276
|
+
location === ':memory:' ||
|
|
277
|
+
databaseDisabled) {
|
|
192
278
|
this.#lockArray = null;
|
|
193
279
|
}
|
|
194
280
|
else {
|
|
@@ -209,7 +295,7 @@ export class Cache extends EventEmitter {
|
|
|
209
295
|
this.#serializer = opts?.serializer ?? defaultSerializer;
|
|
210
296
|
this.#memory =
|
|
211
297
|
opts?.memory === false || opts?.memory === null ? null : new MemoryCache(opts?.memory);
|
|
212
|
-
if (
|
|
298
|
+
if (databaseDisabled) {
|
|
213
299
|
this.#shards = null;
|
|
214
300
|
}
|
|
215
301
|
else {
|
|
@@ -218,7 +304,7 @@ export class Cache extends EventEmitter {
|
|
|
218
304
|
// try/catch below converts to error events. Keeping the two paths
|
|
219
305
|
// separate matches how other constructor validations (lock, ttl, …)
|
|
220
306
|
// behave.
|
|
221
|
-
const count =
|
|
307
|
+
const count = databaseOpts?.shards ?? (location === ':memory:' ? 1 : 4);
|
|
222
308
|
if (!Number.isInteger(count)) {
|
|
223
309
|
throw new TypeError('database.shards must be a positive integer');
|
|
224
310
|
}
|
|
@@ -233,24 +319,30 @@ export class Cache extends EventEmitter {
|
|
|
233
319
|
// DatabaseShard PRAGMA strings, throws inside the shard constructor, and
|
|
234
320
|
// is swallowed by the catch below — silently degrading the cache to
|
|
235
321
|
// memory-only with no error to the caller (unlike the shards path).
|
|
236
|
-
const maxSize =
|
|
322
|
+
const maxSize = databaseOpts?.maxSize;
|
|
237
323
|
if (maxSize !== undefined && (!Number.isFinite(maxSize) || maxSize <= 0)) {
|
|
238
324
|
throw new RangeError('database.maxSize must be a positive finite number');
|
|
239
325
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
326
|
+
// node:sqlite's DatabaseSync requires an integer timeout — a finite
|
|
327
|
+
// non-integer (e.g. 10.5) passes a mere isFinite check, then throws
|
|
328
|
+
// ERR_INVALID_ARG_TYPE inside the shard constructor, where the catch
|
|
329
|
+
// below swallows it and silently degrades the cache to memory-only
|
|
330
|
+
// (after the open-retry loop stalls the thread 16 × 100ms retrying a
|
|
331
|
+
// permanent error). Validate the real contract here instead.
|
|
332
|
+
const timeout = databaseOpts?.timeout;
|
|
333
|
+
if (timeout !== undefined && (!Number.isInteger(timeout) || timeout < 0)) {
|
|
334
|
+
throw new RangeError('database.timeout must be a non-negative integer');
|
|
243
335
|
}
|
|
244
336
|
this.#shards = [];
|
|
245
337
|
try {
|
|
246
338
|
if (location === ':memory:') {
|
|
247
|
-
this.#shards.push(new DatabaseShard(location,
|
|
339
|
+
this.#shards.push(new DatabaseShard(location, databaseOpts));
|
|
248
340
|
}
|
|
249
341
|
else {
|
|
250
342
|
for (let n = 0; n < count; n++) {
|
|
251
343
|
this.#shards.push(new DatabaseShard(count === 1 ? location : location + '.' + n + '_' + count, {
|
|
252
|
-
...
|
|
253
|
-
maxSize: Math.ceil((
|
|
344
|
+
...databaseOpts,
|
|
345
|
+
maxSize: Math.ceil((databaseOpts?.maxSize ?? 128 * 1024 * 1024) / count),
|
|
254
346
|
}));
|
|
255
347
|
}
|
|
256
348
|
}
|
|
@@ -267,8 +359,47 @@ export class Cache extends EventEmitter {
|
|
|
267
359
|
}
|
|
268
360
|
}
|
|
269
361
|
this.#shards = null;
|
|
362
|
+
// Degraded to memory-only: same reasoning as the databaseDisabled
|
|
363
|
+
// skip above — without a DB tier this instance has nothing to share
|
|
364
|
+
// with lock waiters, so keeping the SAB lock would only let it win
|
|
365
|
+
// CAS slots and stall healthy threads for the full waitAsync timeout
|
|
366
|
+
// with no value ever becoming visible to them.
|
|
367
|
+
this.#lockArray = null;
|
|
270
368
|
this.#emitError(err);
|
|
271
369
|
}
|
|
370
|
+
if (this.#shards !== null && location !== ':memory:') {
|
|
371
|
+
// Shard filenames embed the shard count, so files from a different
|
|
372
|
+
// database.shards configuration of the same location are never opened
|
|
373
|
+
// again — they leak disk forever and, worse, switching back to the
|
|
374
|
+
// old count would resurrect rows that delete()/clear() invalidated in
|
|
375
|
+
// the current era. Best-effort unlink of stale siblings; per-file
|
|
376
|
+
// failures (e.g. Windows EBUSY from a still-running old-config
|
|
377
|
+
// process) are ignored — it is only housekeeping of cache data.
|
|
378
|
+
try {
|
|
379
|
+
const dir = path.dirname(location);
|
|
380
|
+
const base = path.basename(location);
|
|
381
|
+
for (const name of fs.readdirSync(dir)) {
|
|
382
|
+
if (!name.startsWith(base)) {
|
|
383
|
+
continue;
|
|
384
|
+
}
|
|
385
|
+
const rest = name.slice(base.length);
|
|
386
|
+
const sharded = /^\.(\d+)_(\d+)(-wal|-shm)?$/.exec(rest);
|
|
387
|
+
const stale = (sharded !== null && Number(sharded[2]) !== count) ||
|
|
388
|
+
(count > 1 && /^(-wal|-shm)?$/.test(rest));
|
|
389
|
+
if (stale) {
|
|
390
|
+
try {
|
|
391
|
+
fs.unlinkSync(path.join(dir, name));
|
|
392
|
+
}
|
|
393
|
+
catch {
|
|
394
|
+
// Best-effort housekeeping only.
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
catch {
|
|
400
|
+
// readdir failures are non-fatal — the cache itself opened fine.
|
|
401
|
+
}
|
|
402
|
+
}
|
|
272
403
|
}
|
|
273
404
|
dbs.add(this);
|
|
274
405
|
globalThis.__nxt_cache ??= [];
|
|
@@ -322,6 +453,17 @@ export class Cache extends EventEmitter {
|
|
|
322
453
|
}
|
|
323
454
|
this.flushSync();
|
|
324
455
|
this.#closed = true;
|
|
456
|
+
// Backstop: nothing may remain in setBatch once the shards are disposed.
|
|
457
|
+
// flushSync above only drains while #flushHandle is armed, so this
|
|
458
|
+
// guards the invariant directly — any leftover item's acquired SAB lock
|
|
459
|
+
// slot would otherwise leak for the process lifetime, degrading every
|
|
460
|
+
// colliding key in every thread. Normally unreachable (deferred error
|
|
461
|
+
// emission means user code can't interrupt #flush and strand a batch),
|
|
462
|
+
// but the cost is one no-op loop and the failure mode it prevents is
|
|
463
|
+
// permanent. Losing unflushed writes on close is normal cache semantics.
|
|
464
|
+
for (const shard of this.#shards ?? []) {
|
|
465
|
+
this.#releaseBatch(shard.setBatch.splice(0));
|
|
466
|
+
}
|
|
325
467
|
this.#dedupe.clear();
|
|
326
468
|
dbs.delete(this);
|
|
327
469
|
for (const shard of this.#shards ?? []) {
|
|
@@ -357,7 +499,9 @@ export class Cache extends EventEmitter {
|
|
|
357
499
|
if (typeof key !== 'string' || key.length === 0) {
|
|
358
500
|
throw new TypeError('keySelector must return a non-empty string');
|
|
359
501
|
}
|
|
360
|
-
|
|
502
|
+
// Same skip as #load: a pure in-memory cache (no database, no lock array)
|
|
503
|
+
// never consumes the hash, so don't pay the WASM call.
|
|
504
|
+
const hash = this.#shards !== null || this.#lockArray !== null ? HASHER.h32(key) : 0;
|
|
361
505
|
return this.#refresh(args, key, hash);
|
|
362
506
|
}
|
|
363
507
|
delete(...args) {
|
|
@@ -368,18 +512,31 @@ export class Cache extends EventEmitter {
|
|
|
368
512
|
if (typeof key !== 'string' || key.length === 0) {
|
|
369
513
|
throw new TypeError('key must be a non-empty string');
|
|
370
514
|
}
|
|
371
|
-
const hash = HASHER.h32(key);
|
|
515
|
+
const hash = this.#shards !== null || this.#lockArray !== null ? HASHER.h32(key) : 0;
|
|
372
516
|
this.#set(key, undefined, hash);
|
|
373
517
|
}
|
|
374
518
|
clear() {
|
|
375
519
|
if (this.#closed) {
|
|
376
520
|
throw new Error('cache is closed');
|
|
377
521
|
}
|
|
378
|
-
// Drain any pending flush first —
|
|
379
|
-
//
|
|
380
|
-
//
|
|
522
|
+
// Drain any pending flush first — items sitting in setBatch would
|
|
523
|
+
// otherwise be written by a later flush AFTER the DELETE below,
|
|
524
|
+
// resurrecting them in the database while memory and dedupe are already
|
|
525
|
+
// wiped. flushSync also releases setBatch locks via #flush's normal
|
|
381
526
|
// release path.
|
|
382
527
|
this.flushSync();
|
|
528
|
+
// Backstop: setBatch must be empty before the DELETE below — any item
|
|
529
|
+
// still enqueued would be COMMITted by a later flush, resurrecting a
|
|
530
|
+
// value clear() guaranteed gone. flushSync above only drains while
|
|
531
|
+
// #flushHandle is armed, so this enforces the invariant directly and
|
|
532
|
+
// releases the items' SAB locks. Dropping instead of flushing is
|
|
533
|
+
// correct: the values are being deleted anyway. Normally unreachable
|
|
534
|
+
// (deferred error emission means user code can't interrupt #flush and
|
|
535
|
+
// strand a batch), kept because the failure mode is silent data
|
|
536
|
+
// resurrection.
|
|
537
|
+
for (const shard of this.#shards ?? []) {
|
|
538
|
+
this.#releaseBatch(shard.setBatch.splice(0));
|
|
539
|
+
}
|
|
383
540
|
// Drop in-flight async refreshes. Their onFulfilled/onRejected handlers
|
|
384
541
|
// identity-check `#dedupe.get(key) === promise` before writing, so a
|
|
385
542
|
// late resolve after clear() won't resurrect a value we just wiped.
|
|
@@ -527,10 +684,29 @@ export class Cache extends EventEmitter {
|
|
|
527
684
|
if (val === 0) {
|
|
528
685
|
return this.#refresh(args, key, hash, true);
|
|
529
686
|
}
|
|
530
|
-
const
|
|
687
|
+
const lockArray = this.#lockArray;
|
|
688
|
+
const { async, value } = Atomics.waitAsync(lockArray, idx, val, 1e3);
|
|
531
689
|
if (async) {
|
|
532
690
|
return {
|
|
533
|
-
value: value.then(() =>
|
|
691
|
+
value: value.then((result) => {
|
|
692
|
+
if (result === 'timed-out') {
|
|
693
|
+
// The holder may be a dead thread — a terminated worker, or one
|
|
694
|
+
// that silently exited while awaiting its valueSelector (a held
|
|
695
|
+
// slot keeps no referenced handle alive). Nothing would ever
|
|
696
|
+
// release the slot: every colliding key in every thread would pay
|
|
697
|
+
// this dead 1s wait forever and stale-while-revalidate refreshes
|
|
698
|
+
// (which require winning the CAS) would be permanently
|
|
699
|
+
// suppressed. Reclaim it. If the holder is merely slow, stealing
|
|
700
|
+
// is benign: #release is CAS(1 → 0) so the late release no-ops,
|
|
701
|
+
// and we proceed exactly as the timeout fallback always has.
|
|
702
|
+
// (Note: on the main thread in Node v25+ the waitAsync timeout
|
|
703
|
+
// never settles, so recovery happens from worker threads — where
|
|
704
|
+
// contended waits matter in production.)
|
|
705
|
+
Atomics.compareExchange(lockArray, idx, val, 0);
|
|
706
|
+
Atomics.notify(lockArray, idx);
|
|
707
|
+
}
|
|
708
|
+
return this.#getOrRefresh(args, key, hash).value;
|
|
709
|
+
}),
|
|
534
710
|
async: true,
|
|
535
711
|
};
|
|
536
712
|
}
|
|
@@ -551,6 +727,16 @@ export class Cache extends EventEmitter {
|
|
|
551
727
|
if (entry !== undefined && now < entry.stale) {
|
|
552
728
|
return { value: entry.value, async: false };
|
|
553
729
|
}
|
|
730
|
+
// A concurrent caller may already have started a refresh for this key
|
|
731
|
+
// while we were parked in Atomics.waitAsync — e.g. a sibling waiter on the
|
|
732
|
+
// same (coarse) lock slot that woke first, missed the DB, and kicked off
|
|
733
|
+
// its own #refresh. Without this check every additional waiter would run
|
|
734
|
+
// the valueSelector again and overwrite the previous waiter's #dedupe
|
|
735
|
+
// entry, so only the last waiter's result would ever be written.
|
|
736
|
+
const pending = this.#dedupe.get(key);
|
|
737
|
+
if (pending !== undefined) {
|
|
738
|
+
return { value: pending, async: true };
|
|
739
|
+
}
|
|
554
740
|
// The caller that released the lock may have failed to write a new
|
|
555
741
|
// value due to a database error, or may have written a value that
|
|
556
742
|
// expired by the time we woke up. In either case, fall back to
|
|
@@ -584,7 +770,12 @@ export class Cache extends EventEmitter {
|
|
|
584
770
|
#release(hash) {
|
|
585
771
|
if (this.#lockArray) {
|
|
586
772
|
const idx = hash % this.#lockArray.length;
|
|
587
|
-
|
|
773
|
+
// CAS, not sub: a waiter that timed out may have already reclaimed a
|
|
774
|
+
// slot whose holder appeared dead (see the 'timed-out' branch in
|
|
775
|
+
// #load). An unconditional sub would then drive the slot negative,
|
|
776
|
+
// permanently breaking the compareExchange(0 → 1) acquire for every
|
|
777
|
+
// key hashing to it. With CAS a late release after a steal is a no-op.
|
|
778
|
+
Atomics.compareExchange(this.#lockArray, idx, 1, 0);
|
|
588
779
|
Atomics.notify(this.#lockArray, idx);
|
|
589
780
|
}
|
|
590
781
|
}
|
|
@@ -653,11 +844,26 @@ export class Cache extends EventEmitter {
|
|
|
653
844
|
this.#release(item.hash);
|
|
654
845
|
}
|
|
655
846
|
}
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
847
|
+
// A dropped DELETE is worse than a dropped write: losing a batched
|
|
848
|
+
// value write only loses freshness (#167), but losing an
|
|
849
|
+
// invalidation lets the next read resurrect the deleted row from
|
|
850
|
+
// the DB tier — possibly years before its expire. Deletes get the
|
|
851
|
+
// same bounded in-thread BUSY backoff as the synchronous flush
|
|
852
|
+
// drain before giving up.
|
|
853
|
+
for (let retryCount = 0; true; retryCount++) {
|
|
854
|
+
try {
|
|
855
|
+
shard.delQuery.run(key);
|
|
856
|
+
break;
|
|
857
|
+
}
|
|
858
|
+
catch (err) {
|
|
859
|
+
if (err?.errcode === 5 /* SQLITE_BUSY */ &&
|
|
860
|
+
retryCount < 16) {
|
|
861
|
+
sleepSync(5);
|
|
862
|
+
continue;
|
|
863
|
+
}
|
|
864
|
+
this.#emitError(err);
|
|
865
|
+
break;
|
|
866
|
+
}
|
|
661
867
|
}
|
|
662
868
|
}
|
|
663
869
|
return;
|
|
@@ -710,7 +916,10 @@ export class Cache extends EventEmitter {
|
|
|
710
916
|
this.#flush();
|
|
711
917
|
// #flush may have drained every shard and nulled #flushHandle on the
|
|
712
918
|
// clean path; re-arm if anything is still pending so it can't strand.
|
|
713
|
-
|
|
919
|
+
// Optional chaining (not `!`) is purely defensive: with error
|
|
920
|
+
// emission deferred to a microtask, no user code can interleave with
|
|
921
|
+
// the synchronous #flush() above, so #shards cannot be nulled here.
|
|
922
|
+
if (!this.#flushHandle && this.#shards?.some((s) => s.setBatch.length > 0)) {
|
|
714
923
|
this.#memory?.cork();
|
|
715
924
|
this.#flushHandle = setImmediate(this.#flush);
|
|
716
925
|
}
|
|
@@ -733,15 +942,36 @@ export class Cache extends EventEmitter {
|
|
|
733
942
|
#flush = (sync = false) => {
|
|
734
943
|
this.#flushHandle = null;
|
|
735
944
|
const startTime = performance.now();
|
|
736
|
-
|
|
945
|
+
// Snapshot the shard array. With #emitError deferred to a microtask,
|
|
946
|
+
// user code can no longer run inside this loop and null #shards
|
|
947
|
+
// mid-iteration (re-entrant close() from an 'error' listener used to do
|
|
948
|
+
// exactly that, crashing the process via an uncaught TypeError from this
|
|
949
|
+
// timer callback). The snapshot is kept as defense-in-depth: it makes
|
|
950
|
+
// the loop's correctness independent of that invariant, so a future
|
|
951
|
+
// yield point inside the loop can't reintroduce the crash.
|
|
952
|
+
const shards = this.#shards ?? [];
|
|
953
|
+
const len = shards.length;
|
|
737
954
|
const idx = Math.floor(Math.random() * len);
|
|
738
955
|
for (let k = 0; k < len; k++) {
|
|
739
|
-
const shard =
|
|
956
|
+
const shard = shards[(idx + k) % len];
|
|
740
957
|
try {
|
|
741
958
|
for (let retryCount = 0; true; retryCount++) {
|
|
742
959
|
if (shard.setBatch.length === 0) {
|
|
743
960
|
break;
|
|
744
961
|
}
|
|
962
|
+
// The cache is closed but this shard still has batched items: the
|
|
963
|
+
// database is disposed, so don't write — drop the batch and
|
|
964
|
+
// release its SAB locks so colliding keys in other threads aren't
|
|
965
|
+
// starved forever. Normally unreachable (close() drains via
|
|
966
|
+
// flushSync and releases leftovers itself; deferred error emission
|
|
967
|
+
// means user code can't close mid-loop), kept as a cheap guard so
|
|
968
|
+
// a closed cache can never be written to. The values remain served
|
|
969
|
+
// from memory until the orphaned MemoryCache is collected, the
|
|
970
|
+
// same trade-off as other flush-failure drops.
|
|
971
|
+
if (this.#closed) {
|
|
972
|
+
this.#releaseBatch(shard.setBatch.splice(0));
|
|
973
|
+
break;
|
|
974
|
+
}
|
|
745
975
|
let n = 0;
|
|
746
976
|
try {
|
|
747
977
|
shard.database.exec('BEGIN IMMEDIATE');
|
|
@@ -776,19 +1006,42 @@ export class Cache extends EventEmitter {
|
|
|
776
1006
|
// spin the event loop forever under a sustained external writer
|
|
777
1007
|
// lock (BEGIN IMMEDIATE keeps returning BUSY). Back off briefly
|
|
778
1008
|
// in-thread and retry a bounded number of times; if contention
|
|
779
|
-
// persists, give up for this shard — its
|
|
780
|
-
//
|
|
781
|
-
//
|
|
1009
|
+
// persists, give up for this shard — drop its batch (releasing
|
|
1010
|
+
// the locks so waiters aren't starved) rather than hang the
|
|
1011
|
+
// event loop. The values remain served from memory, the same
|
|
1012
|
+
// trade-off as for non-BUSY flush errors below.
|
|
782
1013
|
if (retryCount < 16) {
|
|
783
|
-
|
|
1014
|
+
sleepSync(5);
|
|
784
1015
|
continue;
|
|
785
1016
|
}
|
|
786
1017
|
this.#emitError(err);
|
|
787
1018
|
this.#releaseBatch(shard.setBatch.splice(0));
|
|
788
1019
|
break;
|
|
789
1020
|
}
|
|
1021
|
+
// Re-arm BEFORE emitting and uncork while parked:
|
|
1022
|
+
// - Re-arm first so a re-entrant flushSync()/close()/clear()
|
|
1023
|
+
// from an 'error' listener sees a live #flushHandle and can
|
|
1024
|
+
// dispose it and drain synchronously. With the old order the
|
|
1025
|
+
// listener ran in a window where #flushHandle was null while
|
|
1026
|
+
// setBatch was still populated — close() leaked the batch's
|
|
1027
|
+
// SAB lock slots forever, and clear() wiped the DB only for
|
|
1028
|
+
// the later retry to COMMIT the old batch and resurrect the
|
|
1029
|
+
// cleared values.
|
|
1030
|
+
// - Uncork because this retry chain has no cap: under a
|
|
1031
|
+
// sustained external writer lock it can park for minutes
|
|
1032
|
+
// while reads and writes keep inserting into the memory
|
|
1033
|
+
// cache. #prune is the only maxSize/maxCount enforcement and
|
|
1034
|
+
// is disabled while corked, so holding the cork here means
|
|
1035
|
+
// unbounded heap growth for as long as the contention lasts.
|
|
1036
|
+
// The timer callback re-corks, keeping the pairing with the
|
|
1037
|
+
// tail uncork exact (a #set arriving while the timer is
|
|
1038
|
+
// pending sees #flushHandle non-null and does not cork).
|
|
1039
|
+
this.#flushHandle = setTimeout(() => {
|
|
1040
|
+
this.#memory?.cork();
|
|
1041
|
+
this.#flush();
|
|
1042
|
+
}, (Math.random() * 10) | 0);
|
|
1043
|
+
this.#memory?.uncork();
|
|
790
1044
|
this.#emitError(err);
|
|
791
|
-
this.#flushHandle = setTimeout(this.#flush, (Math.random() * 10) | 0);
|
|
792
1045
|
return;
|
|
793
1046
|
}
|
|
794
1047
|
else if (err?.errcode === 13 /* SQLITE_FULL */ &&
|
|
@@ -816,7 +1069,10 @@ export class Cache extends EventEmitter {
|
|
|
816
1069
|
// drain (flushSync/close/clear) — and actively harmful there: it would
|
|
817
1070
|
// set #flushHandle, which flushSync re-drives, looping forever when a
|
|
818
1071
|
// shard makes no progress (e.g. a BUSY give-up that already took >10ms).
|
|
819
|
-
|
|
1072
|
+
// Also skipped after a re-entrant close(): the remaining iterations are
|
|
1073
|
+
// pure batch-drops (cheap), and re-arming a timer on a closed cache
|
|
1074
|
+
// would only fire into a no-op.
|
|
1075
|
+
if (!sync && !this.#closed && performance.now() - startTime > 10) {
|
|
820
1076
|
this.#flushHandle = setImmediate(this.#flush);
|
|
821
1077
|
return;
|
|
822
1078
|
}
|
|
@@ -848,20 +1104,23 @@ export class Cache extends EventEmitter {
|
|
|
848
1104
|
db.gc();
|
|
849
1105
|
}
|
|
850
1106
|
catch (err) {
|
|
851
|
-
// Match #emitError semantics:
|
|
852
|
-
//
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
1107
|
+
// Match #emitError semantics: deferred, so a user error listener can
|
|
1108
|
+
// neither starve the remaining caches in `dbs` by throwing nor
|
|
1109
|
+
// mutate them re-entrantly while this loop runs.
|
|
1110
|
+
queueMicrotask(() => {
|
|
1111
|
+
try {
|
|
1112
|
+
if (db.listenerCount('error') > 0) {
|
|
1113
|
+
db.emit('error', err);
|
|
1114
|
+
}
|
|
1115
|
+
else {
|
|
1116
|
+
process.emitWarning(err);
|
|
1117
|
+
}
|
|
856
1118
|
}
|
|
857
|
-
|
|
1119
|
+
catch (listenerErr) {
|
|
1120
|
+
process.emitWarning(listenerErr);
|
|
858
1121
|
process.emitWarning(err);
|
|
859
1122
|
}
|
|
860
|
-
}
|
|
861
|
-
catch (listenerErr) {
|
|
862
|
-
process.emitWarning(listenerErr);
|
|
863
|
-
process.emitWarning(err);
|
|
864
|
-
}
|
|
1123
|
+
});
|
|
865
1124
|
}
|
|
866
1125
|
}
|
|
867
1126
|
};
|
|
@@ -875,20 +1134,23 @@ export class Cache extends EventEmitter {
|
|
|
875
1134
|
db.clear();
|
|
876
1135
|
}
|
|
877
1136
|
catch (err) {
|
|
878
|
-
// Match #emitError semantics:
|
|
879
|
-
//
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
1137
|
+
// Match #emitError semantics: deferred, so a user error listener can
|
|
1138
|
+
// neither starve the remaining caches in `dbs` by throwing nor
|
|
1139
|
+
// mutate them re-entrantly while this loop runs.
|
|
1140
|
+
queueMicrotask(() => {
|
|
1141
|
+
try {
|
|
1142
|
+
if (db.listenerCount('error') > 0) {
|
|
1143
|
+
db.emit('error', err);
|
|
1144
|
+
}
|
|
1145
|
+
else {
|
|
1146
|
+
process.emitWarning(err);
|
|
1147
|
+
}
|
|
883
1148
|
}
|
|
884
|
-
|
|
1149
|
+
catch (listenerErr) {
|
|
1150
|
+
process.emitWarning(listenerErr);
|
|
885
1151
|
process.emitWarning(err);
|
|
886
1152
|
}
|
|
887
|
-
}
|
|
888
|
-
catch (listenerErr) {
|
|
889
|
-
process.emitWarning(listenerErr);
|
|
890
|
-
process.emitWarning(err);
|
|
891
|
-
}
|
|
1153
|
+
});
|
|
892
1154
|
}
|
|
893
1155
|
}
|
|
894
1156
|
};
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nxtedition/cache",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.27",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"test:coverage": "node --test --experimental-test-coverage"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@nxtedition/shared": "^5.1.
|
|
25
|
+
"@nxtedition/shared": "^5.1.17",
|
|
26
26
|
"xxhash-wasm": "^1.1.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
@@ -32,5 +32,5 @@
|
|
|
32
32
|
"tsd": "^0.33.0",
|
|
33
33
|
"typescript": "^5.9.3"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "c9f2526dc870597de119b8ec5083f97901d4a2e2"
|
|
36
36
|
}
|