@nxtedition/cache 2.1.30 → 2.1.32
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 +28 -13
- package/lib/index.d.ts +9 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +232 -69
- package/lib/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -73,7 +73,7 @@ if (result.async) {
|
|
|
73
73
|
| `ttl` | `number \| (value, key) => number` | `MAX_SAFE_INTEGER` | Time-to-live in milliseconds. After this, the entry is stale. |
|
|
74
74
|
| `stale` | `number \| (value, key) => number` | `MAX_SAFE_INTEGER` | Stale-while-revalidate window in ms. After `ttl + stale`, the entry is purged. |
|
|
75
75
|
| `memory` | `MemoryOptions \| false \| null` | `{ maxSize: 16MB, maxCount: 16384 }` | In-memory cache config, or `false`/`null` to disable. |
|
|
76
|
-
| `database` | `DatabaseOptions \| false \| null` | `{ timeout:
|
|
76
|
+
| `database` | `DatabaseOptions \| false \| null` | `{ timeout: 10, maxSize: 128MB }` | SQLite config, or `false`/`null` to disable persistence. |
|
|
77
77
|
| `lock` | `false \| null` | enabled | Pass `false`/`null` to disable cross-thread SAB locking (see [Cross-Thread Locking](#cross-thread-locking)). Always off for `':memory:'`. |
|
|
78
78
|
| `serializer` | `Serializer<V>` | JSON + ArrayBufferView passthrough | Custom `{ serialize, deserialize }` for value encoding. |
|
|
79
79
|
|
|
@@ -88,11 +88,12 @@ The in-memory tier uses a random-two-choice eviction strategy: when the cache is
|
|
|
88
88
|
|
|
89
89
|
#### `DatabaseOptions`
|
|
90
90
|
|
|
91
|
-
| Option
|
|
92
|
-
|
|
|
93
|
-
| `timeout`
|
|
94
|
-
| `maxSize`
|
|
95
|
-
| `shards`
|
|
91
|
+
| Option | Type | Default | Description |
|
|
92
|
+
| ----------- | --------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
|
|
93
|
+
| `timeout` | `number` | `10` | SQLite busy timeout in milliseconds. |
|
|
94
|
+
| `maxSize` | `number` | `128 * 1024 * 1024` (128 MB) | Maximum total database size across all shards. Divided evenly per shard. Oldest entries are evicted when a shard is full. |
|
|
95
|
+
| `shards` | `number` | `4` | Number of SQLite files (shards) the cache is spread across. See [File Sharding](#file-sharding). Use `1` for a single shard. |
|
|
96
|
+
| `writeLock` | `boolean` | `true` | Serialize per-shard flush transactions across threads to avoid `SQLITE_BUSY`. See [Write Lock](#write-lock). |
|
|
96
97
|
|
|
97
98
|
#### `Serializer<V>`
|
|
98
99
|
|
|
@@ -229,18 +230,20 @@ There is **no cross-process coordination** — two separate Node processes point
|
|
|
229
230
|
|
|
230
231
|
The cache partitions its SQLite storage across N physical files (default `shards: 4`). Each key is hash-routed (via xxhash32) to one shard, and reads/writes for that key only touch that shard's connection. This is intended to reduce the SQLite writer-serialization ceiling: SQLite allows only one writer at a time per database file, even in WAL mode, so a single file caps concurrent-writer throughput at roughly one thread's worth of work regardless of how many threads the process spawns.
|
|
231
232
|
|
|
232
|
-
**On-disk layout:**
|
|
233
|
+
**On-disk layout:** the layout is uniform across shard counts — every shard file embeds its index and the shard count.
|
|
233
234
|
|
|
234
|
-
| `shards` | Files
|
|
235
|
-
| ----------- |
|
|
236
|
-
| `1` | `<location
|
|
237
|
-
| `N` (N ≥ 2) | `<location>.
|
|
235
|
+
| `shards` | Files |
|
|
236
|
+
| ----------- | ---------------------------------------------------------------------------------- |
|
|
237
|
+
| `1` | `<location>.0_1` |
|
|
238
|
+
| `N` (N ≥ 2) | `<location>.0_N`, `<location>.1_N`, …, `<location>.{N-1}_N` (shard count embedded) |
|
|
238
239
|
|
|
239
|
-
|
|
240
|
+
There is no special bare-`<location>` single-file form; `shards: 1` writes `<location>.0_1`.
|
|
240
241
|
|
|
241
242
|
**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.
|
|
242
243
|
|
|
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
|
|
244
|
+
**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. The constructor reclaims the stale file set of the previous configuration by **clearing** each file (dropping its cache tables via SQLite) and then unlinking it. Clearing first means switching back to the old count can never resurrect entries that `delete()`/`clear()` invalidated in the meantime — even if the unlink cannot remove the file — and, against a concurrently-live instance of that mismatched count, dropping its table is a safe cache flush (it re-populates from the `valueSelector`) rather than file-level corruption.
|
|
245
|
+
|
|
246
|
+
> Still, do not point two live instances with **different** shard counts at the same `location`: key routing and the per-`location` cross-thread lock both assume a single shard count per path, and on POSIX the reclaiming unlink can still ghost a live mismatched instance after its cache is flushed. A leftover bare `<location>` file written by a pre-uniform-layout version is never read and simply leaks — delete it manually if you need the space.
|
|
244
247
|
|
|
245
248
|
**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.
|
|
246
249
|
|
|
@@ -252,6 +255,18 @@ Flushes iterate shards starting at a random index on each call, so no single sha
|
|
|
252
255
|
|
|
253
256
|
If a shard's database is full (`SQLITE_FULL`), the cache evicts the 256 oldest entries in that shard and retries up to 3 times. On other errors, the entire pending batch for that shard is dropped (items remain in the in-memory cache until natural eviction/TTL) and the error is emitted — this prevents error floods when the underlying failure is persistent (e.g. a read-only DB).
|
|
254
257
|
|
|
258
|
+
## Write Lock
|
|
259
|
+
|
|
260
|
+
SQLite serializes writers: only one connection may write a given shard file at a time, even in WAL mode. When multiple worker threads in the same process flush the same shard concurrently, the losers' `BEGIN IMMEDIATE` returns `SQLITE_BUSY` and the flush falls into a retry loop (wasted `BEGIN`/`ROLLBACK` work, jittered re-arming, and synchronous `busy_timeout` stalls).
|
|
261
|
+
|
|
262
|
+
With `database.writeLock` (default **`true`**), each shard has a per-shard mutex in a small `SharedArrayBuffer` — a single `Int32` per shard (`0` = free, otherwise the holder's acquire timestamp), each padded to its own cache line to avoid false sharing. Before a flush opens its transaction it acquires the shard's lock; a thread that finds the lock held **defers** its flush (re-arming shortly) instead of attempting a doomed transaction. This turns optimistic-collide-and-retry into orderly hand-off, eliminating intra-process `SQLITE_BUSY` and improving multi-thread write throughput.
|
|
263
|
+
|
|
264
|
+
- **Threads only.** The `SharedArrayBuffer` is shared within a process, not across processes — separate processes writing the same files still rely on `timeout`/retry (see [Error Handling](#error-handling)).
|
|
265
|
+
- **Dead-holder safe.** If a holder is terminated mid-flush (e.g. `worker.terminate()`), the slot is reclaimed: a contender that finds it held longer than `max(2 × timeout, 50 ms)` (the worst legitimate hold is one `BEGIN IMMEDIATE` bounded by `busy_timeout` plus the commit) steals it. The DB's own `BEGIN IMMEDIATE` + `busy_timeout` remains the correctness guard, so a wrong steal merely degrades to the optimistic path.
|
|
266
|
+
- **Requires the cross-thread lock.** It is automatically off when `lock` is `false`/`null`, for `':memory:'`, or when the database tier is disabled. The synchronous drain (`flushSync()`/`close()`/`clear()`) bypasses it and keeps the existing optimistic + retry path.
|
|
267
|
+
|
|
268
|
+
Set `database: { writeLock: false }` to opt out.
|
|
269
|
+
|
|
255
270
|
## Error Handling
|
|
256
271
|
|
|
257
272
|
`Cache` extends `EventEmitter`. Non-fatal errors (SQLite failures, stale revalidation failures, background-refresh rejections from the SWR fire-and-forget path) are emitted as `'error'` events when a listener is attached. If no `'error'` listener is registered, errors are surfaced via `process.emitWarning()` instead, avoiding unhandled crashes.
|
package/lib/index.d.ts
CHANGED
|
@@ -5,6 +5,15 @@ export interface DatabaseOptions {
|
|
|
5
5
|
timeout?: number;
|
|
6
6
|
shards?: number;
|
|
7
7
|
maxSize?: number;
|
|
8
|
+
/**
|
|
9
|
+
* Serialize flush transactions per shard across threads of this process via a
|
|
10
|
+
* `SharedArrayBuffer` mutex, so concurrent writers to the same shard defer
|
|
11
|
+
* instead of colliding on `BEGIN IMMEDIATE` (which surfaces `SQLITE_BUSY`).
|
|
12
|
+
* Defaults to `true`. Requires the cross-thread lock (no effect when
|
|
13
|
+
* `lock: false`/`null`, `:memory:`, or the database tier is disabled), and
|
|
14
|
+
* only coordinates threads — separate processes still rely on `timeout`/retry.
|
|
15
|
+
*/
|
|
16
|
+
writeLock?: boolean;
|
|
8
17
|
}
|
|
9
18
|
export interface Serializer<V> {
|
|
10
19
|
serialize: (value: V) => Buffer | Uint8Array | string;
|
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;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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -50,7 +50,29 @@ const defaultSerializer = {
|
|
|
50
50
|
};
|
|
51
51
|
const VERSION = 6;
|
|
52
52
|
const MAX_DURATION = 365000000e3;
|
|
53
|
+
const DEFAULT_DB_TIMEOUT = 10;
|
|
53
54
|
const HASHER = await xxhash();
|
|
55
|
+
// Floor for the per-shard write-lock stale threshold (see #shardLockStaleMs):
|
|
56
|
+
// the longest a holder can legitimately hold a slot is one BEGIN IMMEDIATE
|
|
57
|
+
// (bounded by the SQLite busy_timeout) plus the batch write + COMMIT, so the
|
|
58
|
+
// threshold scales as 2× busy_timeout — but never below this floor, so a low or
|
|
59
|
+
// zero busy_timeout still lets the lock serialize (instead of every contender
|
|
60
|
+
// instantly judging the slot stale and stealing) and normal scheduling jitter on
|
|
61
|
+
// a sub-millisecond flush never triggers a false steal.
|
|
62
|
+
const SHARD_LOCK_STALE_FLOOR_MS = 50;
|
|
63
|
+
// Each shard's write lock is a SINGLE Int32 (0 = free, else the acquire
|
|
64
|
+
// timestamp), padded to its own cache line so a CAS on one shard's lock never
|
|
65
|
+
// invalidates a sibling shard's lock line (false sharing would defeat the point
|
|
66
|
+
// under the multi-thread write contention this lock targets). Packing the lock
|
|
67
|
+
// state and the timestamp into one word lets acquire stamp atomically in the CAS
|
|
68
|
+
// — a separate timestamp slot would leave a window where a contender reads a
|
|
69
|
+
// not-yet-written (or stale prior) stamp and false-steals a freshly-acquired
|
|
70
|
+
// lock. 64 bytes is the x86-64 cache line (the linux-x64 production target);
|
|
71
|
+
// Apple Silicon uses 128B lines, so two shards can still share a line on a
|
|
72
|
+
// dev/bench Mac — irrelevant in production.
|
|
73
|
+
const CACHE_LINE_BYTES = 64;
|
|
74
|
+
const SHARD_LOCK_BYTES = Math.max(CACHE_LINE_BYTES, Int32Array.BYTES_PER_ELEMENT);
|
|
75
|
+
const SHARD_LOCK_STRIDE = SHARD_LOCK_BYTES / Int32Array.BYTES_PER_ELEMENT;
|
|
54
76
|
// Shared scratch array for bounded in-thread backoff sleeps: the value never
|
|
55
77
|
// changes and nothing notifies it, so every wait simply times out after the
|
|
56
78
|
// given duration. Hoisted so retry loops don't allocate a fresh
|
|
@@ -61,7 +83,7 @@ function sleepSync(ms) {
|
|
|
61
83
|
}
|
|
62
84
|
class DatabaseShard {
|
|
63
85
|
location;
|
|
64
|
-
databaseTimeout =
|
|
86
|
+
databaseTimeout = 10;
|
|
65
87
|
database;
|
|
66
88
|
getQuery;
|
|
67
89
|
delQuery;
|
|
@@ -73,7 +95,7 @@ class DatabaseShard {
|
|
|
73
95
|
setBatch = [];
|
|
74
96
|
constructor(location, opts) {
|
|
75
97
|
this.location = location;
|
|
76
|
-
this.databaseTimeout = opts?.timeout ??
|
|
98
|
+
this.databaseTimeout = opts?.timeout ?? DEFAULT_DB_TIMEOUT;
|
|
77
99
|
for (let n = 0; true; n++) {
|
|
78
100
|
try {
|
|
79
101
|
this.database = new DatabaseSync(location, { timeout: this.databaseTimeout });
|
|
@@ -171,6 +193,8 @@ export class Cache extends EventEmitter {
|
|
|
171
193
|
#stale;
|
|
172
194
|
#serializer;
|
|
173
195
|
#lockArray;
|
|
196
|
+
#shardLockArray = null;
|
|
197
|
+
#shardLockStaleMs = SHARD_LOCK_STALE_FLOOR_MS;
|
|
174
198
|
#flushHandle = null;
|
|
175
199
|
#location;
|
|
176
200
|
#shards = null;
|
|
@@ -333,6 +357,10 @@ export class Cache extends EventEmitter {
|
|
|
333
357
|
if (timeout !== undefined && (!Number.isInteger(timeout) || timeout < 0)) {
|
|
334
358
|
throw new RangeError('database.timeout must be a non-negative integer');
|
|
335
359
|
}
|
|
360
|
+
const writeLock = databaseOpts?.writeLock;
|
|
361
|
+
if (writeLock !== undefined && typeof writeLock !== 'boolean') {
|
|
362
|
+
throw new TypeError('database.writeLock must be a boolean');
|
|
363
|
+
}
|
|
336
364
|
this.#shards = [];
|
|
337
365
|
try {
|
|
338
366
|
if (location === ':memory:') {
|
|
@@ -340,12 +368,31 @@ export class Cache extends EventEmitter {
|
|
|
340
368
|
}
|
|
341
369
|
else {
|
|
342
370
|
for (let n = 0; n < count; n++) {
|
|
343
|
-
|
|
371
|
+
// Every shard file embeds its index and the shard count
|
|
372
|
+
// (`<location>.<n>_<count>`), uniformly for all counts including 1.
|
|
373
|
+
// There is no special bare-`<location>` single-file layout.
|
|
374
|
+
this.#shards.push(new DatabaseShard(location + '.' + n + '_' + count, {
|
|
344
375
|
...databaseOpts,
|
|
345
376
|
maxSize: Math.ceil((databaseOpts?.maxSize ?? 128 * 1024 * 1024) / count),
|
|
346
377
|
}));
|
|
347
378
|
}
|
|
348
379
|
}
|
|
380
|
+
// Per-shard write-mutex SAB (database.writeLock, default on). Allocated
|
|
381
|
+
// INSIDE this try so a getOrCreate failure — e.g. a size mismatch when a
|
|
382
|
+
// different shard count previously opened this location, since the SAB
|
|
383
|
+
// size scales with `count` — disposes the shards just opened and degrades
|
|
384
|
+
// to memory-only via the catch below, instead of throwing out of the
|
|
385
|
+
// constructor with live SQLite connections/FDs leaked. Gated like the key
|
|
386
|
+
// lock (so it is null for :memory:, lock:false/null, db-disabled): one
|
|
387
|
+
// cache-line-padded Int32 per shard (0 = free, else acquire timestamp),
|
|
388
|
+
// shared by location so sibling instances/threads coordinate, by shard.
|
|
389
|
+
if (writeLock !== false && this.#lockArray !== null) {
|
|
390
|
+
this.#shardLockArray = new Int32Array(getOrCreate(`__@nxtedition/cache/${location}/wlock`, count * SHARD_LOCK_BYTES));
|
|
391
|
+
// Steal a slot only once a holder has outlasted the worst legitimate
|
|
392
|
+
// hold (one BEGIN IMMEDIATE bounded by busy_timeout, plus write+COMMIT):
|
|
393
|
+
// 2× busy_timeout, floored so a low/zero timeout still serializes.
|
|
394
|
+
this.#shardLockStaleMs = Math.max((databaseOpts?.timeout ?? DEFAULT_DB_TIMEOUT) * 2, SHARD_LOCK_STALE_FLOOR_MS);
|
|
395
|
+
}
|
|
349
396
|
}
|
|
350
397
|
catch (err) {
|
|
351
398
|
for (const shard of this.#shards) {
|
|
@@ -365,36 +412,90 @@ export class Cache extends EventEmitter {
|
|
|
365
412
|
// CAS slots and stall healthy threads for the full waitAsync timeout
|
|
366
413
|
// with no value ever becoming visible to them.
|
|
367
414
|
this.#lockArray = null;
|
|
415
|
+
this.#shardLockArray = null;
|
|
368
416
|
this.#emitError(err);
|
|
369
417
|
}
|
|
370
418
|
if (this.#shards !== null && location !== ':memory:') {
|
|
371
|
-
//
|
|
372
|
-
//
|
|
373
|
-
//
|
|
374
|
-
// old count would resurrect rows that
|
|
375
|
-
// the current era.
|
|
376
|
-
//
|
|
377
|
-
//
|
|
419
|
+
// Reclaim files from a *different* database.shards configuration at this
|
|
420
|
+
// location. Shard filenames embed the count (`<location>.<n>_<count>`),
|
|
421
|
+
// so a file set from another count is never opened again — it leaks disk
|
|
422
|
+
// and, worse, switching back to the old count would resurrect rows that
|
|
423
|
+
// delete()/clear() invalidated in the current era.
|
|
424
|
+
//
|
|
425
|
+
// Each stale main shard file is CLEARED (its cache tables dropped via
|
|
426
|
+
// SQLite) and THEN unlinked:
|
|
427
|
+
// - Clearing first prevents resurrection robustly even when the unlink
|
|
428
|
+
// cannot remove the file (e.g. Windows EBUSY while another process
|
|
429
|
+
// holds it): the rows are gone, so a later open at that count finds an
|
|
430
|
+
// empty table. Against a concurrently-live instance of that mismatched
|
|
431
|
+
// count, dropping its table is a safe cache flush (it re-populates from
|
|
432
|
+
// the valueSelector), not the silent file-level corruption a bare
|
|
433
|
+
// unlink would cause.
|
|
434
|
+
// - Unlinking second reclaims the disk when it succeeds.
|
|
435
|
+
// All steps are best-effort; a foreign/locked/corrupt sibling is skipped.
|
|
436
|
+
//
|
|
437
|
+
// NOTE: mixing different `shards` counts at one live location is still
|
|
438
|
+
// unsupported (it breaks key routing and the per-location SAB lock); the
|
|
439
|
+
// unlink can still ghost a live mismatched instance on POSIX. A leftover
|
|
440
|
+
// bare `<location>` file from a pre-uniform-layout version is not matched
|
|
441
|
+
// here and simply leaks — it is never read, so it cannot resurrect data.
|
|
378
442
|
try {
|
|
379
443
|
const dir = path.dirname(location);
|
|
380
444
|
const base = path.basename(location);
|
|
445
|
+
const staleMains = [];
|
|
446
|
+
const staleAux = [];
|
|
381
447
|
for (const name of fs.readdirSync(dir)) {
|
|
382
448
|
if (!name.startsWith(base)) {
|
|
383
449
|
continue;
|
|
384
450
|
}
|
|
385
|
-
const
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
451
|
+
const sharded = /^\.(\d+)_(\d+)(-wal|-shm)?$/.exec(name.slice(base.length));
|
|
452
|
+
if (sharded === null || Number(sharded[2]) === count) {
|
|
453
|
+
continue;
|
|
454
|
+
}
|
|
455
|
+
// sharded[3] is '-wal'/'-shm' for auxiliary files, undefined for the
|
|
456
|
+
// main db file.
|
|
457
|
+
;
|
|
458
|
+
(sharded[3] === undefined ? staleMains : staleAux).push(path.join(dir, name));
|
|
459
|
+
}
|
|
460
|
+
for (const file of staleMains) {
|
|
461
|
+
try {
|
|
462
|
+
const db = new DatabaseSync(file);
|
|
463
|
+
try {
|
|
464
|
+
db.exec('PRAGMA busy_timeout = 100');
|
|
465
|
+
const tables = db
|
|
466
|
+
.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name LIKE 'cache_v%'")
|
|
467
|
+
.all();
|
|
468
|
+
for (const { name } of tables) {
|
|
469
|
+
db.exec(`DROP TABLE IF EXISTS "${String(name).replace(/"/g, '""')}"`);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
finally {
|
|
473
|
+
db.close();
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
catch {
|
|
477
|
+
// Foreign/locked/corrupt sibling — skip clearing, still try unlink.
|
|
478
|
+
}
|
|
479
|
+
// Unlink the main file plus any -wal/-shm (including ones the clear
|
|
480
|
+
// above may have re-created).
|
|
481
|
+
for (const suffix of ['', '-wal', '-shm']) {
|
|
390
482
|
try {
|
|
391
|
-
fs.unlinkSync(
|
|
483
|
+
fs.unlinkSync(file + suffix);
|
|
392
484
|
}
|
|
393
485
|
catch {
|
|
394
486
|
// Best-effort housekeeping only.
|
|
395
487
|
}
|
|
396
488
|
}
|
|
397
489
|
}
|
|
490
|
+
for (const file of staleAux) {
|
|
491
|
+
// Orphan -wal/-shm (its main already removed above is a no-op here).
|
|
492
|
+
try {
|
|
493
|
+
fs.unlinkSync(file);
|
|
494
|
+
}
|
|
495
|
+
catch {
|
|
496
|
+
// Best-effort housekeeping only.
|
|
497
|
+
}
|
|
498
|
+
}
|
|
398
499
|
}
|
|
399
500
|
catch {
|
|
400
501
|
// readdir failures are non-fatal — the cache itself opened fine.
|
|
@@ -477,6 +578,10 @@ export class Cache extends EventEmitter {
|
|
|
477
578
|
}
|
|
478
579
|
}
|
|
479
580
|
this.#shards = null;
|
|
581
|
+
// Drop the write-lock SAB reference so a closed instance stops pinning it
|
|
582
|
+
// (the registry is WeakRef-backed) — otherwise a later reconfigure to a
|
|
583
|
+
// different shard count on this location keeps hitting the size-mismatch.
|
|
584
|
+
this.#shardLockArray = null;
|
|
480
585
|
globalThis.__nxt_cache = globalThis.__nxt_cache?.filter((ref) => ref.deref() != null && ref.deref() !== this);
|
|
481
586
|
}
|
|
482
587
|
get(...args) {
|
|
@@ -510,7 +615,9 @@ export class Cache extends EventEmitter {
|
|
|
510
615
|
}
|
|
511
616
|
const key = this.#keySelector(...args);
|
|
512
617
|
if (typeof key !== 'string' || key.length === 0) {
|
|
513
|
-
|
|
618
|
+
// Same message as get()/peek()/refresh(): the key is derived from the
|
|
619
|
+
// keySelector here too, so the error names the keySelector, not the args.
|
|
620
|
+
throw new TypeError('keySelector must return a non-empty string');
|
|
514
621
|
}
|
|
515
622
|
const hash = this.#shards !== null || this.#lockArray !== null ? HASHER.h32(key) : 0;
|
|
516
623
|
this.#set(key, undefined, hash);
|
|
@@ -825,7 +932,9 @@ export class Cache extends EventEmitter {
|
|
|
825
932
|
#set(key, value, hash = HASHER.h32(key), acquired = false) {
|
|
826
933
|
try {
|
|
827
934
|
if (typeof key !== 'string' || key.length === 0) {
|
|
828
|
-
|
|
935
|
+
// Backstop only — public callers (delete/#refresh) validate the
|
|
936
|
+
// keySelector-derived key first. Keep the message consistent with them.
|
|
937
|
+
throw new TypeError('keySelector must return a non-empty string');
|
|
829
938
|
}
|
|
830
939
|
// Drop any in-flight dedupe entry so an async refresh that resolves after
|
|
831
940
|
// this call cannot resurrect a deleted key or overwrite a newer value —
|
|
@@ -911,19 +1020,6 @@ export class Cache extends EventEmitter {
|
|
|
911
1020
|
this.#memory?.cork();
|
|
912
1021
|
this.#flushHandle = setImmediate(this.#flush);
|
|
913
1022
|
}
|
|
914
|
-
else if (shard.setBatch.length > 512) {
|
|
915
|
-
this.#flushHandle[Symbol.dispose]();
|
|
916
|
-
this.#flush();
|
|
917
|
-
// #flush may have drained every shard and nulled #flushHandle on the
|
|
918
|
-
// clean path; re-arm if anything is still pending so it can't strand.
|
|
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)) {
|
|
923
|
-
this.#memory?.cork();
|
|
924
|
-
this.#flushHandle = setImmediate(this.#flush);
|
|
925
|
-
}
|
|
926
|
-
}
|
|
927
1023
|
}
|
|
928
1024
|
finally {
|
|
929
1025
|
if (acquired) {
|
|
@@ -939,6 +1035,40 @@ export class Cache extends EventEmitter {
|
|
|
939
1035
|
}
|
|
940
1036
|
}
|
|
941
1037
|
}
|
|
1038
|
+
// Per-shard write mutex. Never blocks. The slot is a single Int32: 0 = free,
|
|
1039
|
+
// else the holder's acquire timestamp. Returns 1 = held (the caller owns the
|
|
1040
|
+
// slot and MUST release it) or 0 = held by a live sibling (defer this shard).
|
|
1041
|
+
// Lock state and timestamp are one word so acquisition stamps atomically — no
|
|
1042
|
+
// window where a contender sees held-but-not-yet-stamped and false-steals a
|
|
1043
|
+
// fresh holder. A slot whose stamp is older than #shardLockStaleMs is a dead
|
|
1044
|
+
// holder (e.g. a worker terminated mid-flush) and is stolen via a CAS on the
|
|
1045
|
+
// exact stale value, so only one contender wins the steal; the winner owns it
|
|
1046
|
+
// and releases normally, reclaiming the stuck slot. A wrong steal only degrades
|
|
1047
|
+
// to the optimistic path (both BEGIN IMMEDIATE; one gets SQLITE_BUSY and
|
|
1048
|
+
// retries) — the DB lock is the real guard.
|
|
1049
|
+
#acquireShardLock(si) {
|
|
1050
|
+
const arr = this.#shardLockArray;
|
|
1051
|
+
const slot = si * SHARD_LOCK_STRIDE;
|
|
1052
|
+
// Non-zero so the stamp is never mistaken for the free sentinel (0). The
|
|
1053
|
+
// 31-bit truncation only collides with 0 for ~1ms every ~24.8 days.
|
|
1054
|
+
const now = Date.now() & 0x7fffffff || 1;
|
|
1055
|
+
// Acquire a free slot, stamping it in the same CAS.
|
|
1056
|
+
if (Atomics.compareExchange(arr, slot, 0, now) === 0) {
|
|
1057
|
+
return 1;
|
|
1058
|
+
}
|
|
1059
|
+
// Held: steal only if the holder's stamp is stale (dead). CAS the exact
|
|
1060
|
+
// stale value so concurrent stealers can't both win.
|
|
1061
|
+
const held = Atomics.load(arr, slot);
|
|
1062
|
+
if (held !== 0 && ((now - held) & 0x7fffffff) > this.#shardLockStaleMs) {
|
|
1063
|
+
if (Atomics.compareExchange(arr, slot, held, now) === held) {
|
|
1064
|
+
return 1;
|
|
1065
|
+
}
|
|
1066
|
+
}
|
|
1067
|
+
return 0;
|
|
1068
|
+
}
|
|
1069
|
+
#releaseShardLock(si) {
|
|
1070
|
+
Atomics.store(this.#shardLockArray, si * SHARD_LOCK_STRIDE, 0);
|
|
1071
|
+
}
|
|
942
1072
|
#flush = (sync = false) => {
|
|
943
1073
|
this.#flushHandle = null;
|
|
944
1074
|
const startTime = performance.now();
|
|
@@ -952,8 +1082,32 @@ export class Cache extends EventEmitter {
|
|
|
952
1082
|
const shards = this.#shards ?? [];
|
|
953
1083
|
const len = shards.length;
|
|
954
1084
|
const idx = Math.floor(Math.random() * len);
|
|
1085
|
+
// Unified "another pass is needed" signal, set by any of the three async
|
|
1086
|
+
// deferral causes: a shard skipped because a sibling thread holds its write
|
|
1087
|
+
// lock (continue), a shard that hit SQLITE_BUSY (keep its batch and move
|
|
1088
|
+
// on), or the 10ms budget being exceeded (break). Each leaves un-flushed
|
|
1089
|
+
// items behind, so the tail re-arms a single short timer to run another
|
|
1090
|
+
// pass — see the `deferred` block after the loop. Never set on the
|
|
1091
|
+
// synchronous drain (flushSync/close/clear): all three causes are guarded
|
|
1092
|
+
// by !sync, which is what lets flushSync's `while (#flushHandle)` loop
|
|
1093
|
+
// terminate (a sync #flush never re-arms the handle).
|
|
1094
|
+
let deferred = false;
|
|
955
1095
|
for (let k = 0; k < len; k++) {
|
|
956
|
-
const
|
|
1096
|
+
const si = (idx + k) % len;
|
|
1097
|
+
const shard = shards[si];
|
|
1098
|
+
// Per-shard write mutex (database.writeLock): serialize flush transactions
|
|
1099
|
+
// across threads in this process so concurrent writers to one shard defer
|
|
1100
|
+
// rather than collide on BEGIN IMMEDIATE. Async path only — the synchronous
|
|
1101
|
+
// drain (flushSync/close/clear) cannot wait, so it falls through to the
|
|
1102
|
+
// optimistic BEGIN + busy retry below.
|
|
1103
|
+
let heldShardLock = false;
|
|
1104
|
+
if (this.#shardLockArray !== null && !sync && !this.#closed && shard.setBatch.length > 0) {
|
|
1105
|
+
if (this.#acquireShardLock(si) === 0) {
|
|
1106
|
+
deferred = true;
|
|
1107
|
+
continue;
|
|
1108
|
+
}
|
|
1109
|
+
heldShardLock = true;
|
|
1110
|
+
}
|
|
957
1111
|
try {
|
|
958
1112
|
for (let retryCount = 0; true; retryCount++) {
|
|
959
1113
|
if (shard.setBatch.length === 0) {
|
|
@@ -1014,35 +1168,13 @@ export class Cache extends EventEmitter {
|
|
|
1014
1168
|
sleepSync(5);
|
|
1015
1169
|
continue;
|
|
1016
1170
|
}
|
|
1017
|
-
this.#emitError(err);
|
|
1018
1171
|
this.#releaseBatch(shard.setBatch.splice(0));
|
|
1019
|
-
break;
|
|
1020
1172
|
}
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
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();
|
|
1173
|
+
else {
|
|
1174
|
+
deferred = true;
|
|
1175
|
+
}
|
|
1044
1176
|
this.#emitError(err);
|
|
1045
|
-
|
|
1177
|
+
break;
|
|
1046
1178
|
}
|
|
1047
1179
|
else if (err?.errcode === 13 /* SQLITE_FULL */ &&
|
|
1048
1180
|
retryCount < 3) {
|
|
@@ -1064,20 +1196,51 @@ export class Cache extends EventEmitter {
|
|
|
1064
1196
|
this.#releaseBatch(shard.setBatch.splice(0));
|
|
1065
1197
|
this.#emitError(err);
|
|
1066
1198
|
}
|
|
1199
|
+
finally {
|
|
1200
|
+
if (heldShardLock) {
|
|
1201
|
+
this.#releaseShardLock(si);
|
|
1202
|
+
}
|
|
1203
|
+
}
|
|
1067
1204
|
// The 10ms budget yields to the event loop so a multi-shard flush
|
|
1068
|
-
// doesn't starve other work.
|
|
1069
|
-
// drain (flushSync/close/clear)
|
|
1070
|
-
//
|
|
1071
|
-
// shard makes no progress (e.g. a BUSY
|
|
1072
|
-
//
|
|
1073
|
-
//
|
|
1074
|
-
//
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1205
|
+
// doesn't starve other work. The !sync guard is load-bearing: during a
|
|
1206
|
+
// synchronous drain (flushSync/close/clear) a break here would set
|
|
1207
|
+
// deferred and let the tail re-arm #flushHandle, which flushSync
|
|
1208
|
+
// re-drives — looping forever when a shard makes no progress (e.g. a BUSY
|
|
1209
|
+
// give-up that already took >10ms). No #closed guard is needed: an async
|
|
1210
|
+
// flush never runs once closed (flushSync disposes every pending handle
|
|
1211
|
+
// before close() sets #closed), and the tail re-arm is itself
|
|
1212
|
+
// #closed-guarded, so a stray budget break while closed just uncorks.
|
|
1213
|
+
if (!sync && performance.now() - startTime > 10) {
|
|
1214
|
+
deferred = true;
|
|
1215
|
+
break;
|
|
1078
1216
|
}
|
|
1079
1217
|
}
|
|
1080
|
-
|
|
1218
|
+
// At least one shard still has un-flushed items — skipped on a sibling's
|
|
1219
|
+
// write lock, left behind after a SQLITE_BUSY, or cut off by the 10ms
|
|
1220
|
+
// budget — so re-arm a short timer for another pass. The memory cork taken
|
|
1221
|
+
// when this flush chain was first scheduled (by #set) is deliberately held
|
|
1222
|
+
// across the ENTIRE chain (we don't uncork here, and the bare #flush
|
|
1223
|
+
// callback doesn't re-cork). Corking pauses #prune, which is the point: an
|
|
1224
|
+
// entry that has been set but not yet committed lives only in memory (its
|
|
1225
|
+
// data is queued in setBatch, not durable), so pruning it would make the
|
|
1226
|
+
// value vanish on the next read — a miss in memory AND in the DB. Pruning
|
|
1227
|
+
// resumes only when a pass commits and completes without deferring (the
|
|
1228
|
+
// else branch uncorks, draining cork → 0 and running one #prune); by then
|
|
1229
|
+
// the dropped entries are durable in the DB. Consequence: under sustained
|
|
1230
|
+
// contention the memory cache can overshoot maxSize/maxCount, which we
|
|
1231
|
+
// accept rather than ever lose a set-but-uncommitted value.
|
|
1232
|
+
//
|
|
1233
|
+
// The 0–9ms jitter also doubles as the SQLITE_BUSY backoff: a sibling's
|
|
1234
|
+
// write lock clears within one flush and a budget yield only needs to
|
|
1235
|
+
// bounce off the event loop, but a sustained external writer lock with a
|
|
1236
|
+
// low busy_timeout would otherwise let a sub-ms retry spin BEGIN IMMEDIATE
|
|
1237
|
+
// (and emit an error) every pass — so keep the delay off zero.
|
|
1238
|
+
if (deferred && !this.#closed && this.#flushHandle === null) {
|
|
1239
|
+
this.#flushHandle = setTimeout(this.#flush, (Math.random() * 10) | 0);
|
|
1240
|
+
}
|
|
1241
|
+
else {
|
|
1242
|
+
this.#memory?.uncork();
|
|
1243
|
+
}
|
|
1081
1244
|
};
|
|
1082
1245
|
#createEntry(key, value, stale, expire, size) {
|
|
1083
1246
|
return {
|
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.32",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -32,5 +32,5 @@
|
|
|
32
32
|
"tsd": "^0.33.0",
|
|
33
33
|
"typescript": "^5.9.3"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "2e53169408e04de50c667f365cd50d920da32834"
|
|
36
36
|
}
|