orez 0.4.29 → 0.4.31
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 +2 -0
- package/dist/cli.d.ts +5 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +8 -0
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -3
- package/dist/config.js.map +1 -1
- package/dist/fk-cascade.d.ts +102 -0
- package/dist/fk-cascade.d.ts.map +1 -0
- package/dist/fk-cascade.js +233 -0
- package/dist/fk-cascade.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +101 -49
- package/dist/index.js.map +1 -1
- package/dist/pg-proxy-do-backend.d.ts +1 -0
- package/dist/pg-proxy-do-backend.d.ts.map +1 -1
- package/dist/pg-proxy-do-backend.js +114 -0
- package/dist/pg-proxy-do-backend.js.map +1 -1
- package/dist/pglite-manager.d.ts +12 -9
- package/dist/pglite-manager.d.ts.map +1 -1
- package/dist/pglite-manager.js +61 -31
- package/dist/pglite-manager.js.map +1 -1
- package/dist/recovery.d.ts +10 -12
- package/dist/recovery.d.ts.map +1 -1
- package/dist/recovery.js +24 -13
- package/dist/recovery.js.map +1 -1
- package/dist/replication/change-tracker.d.ts.map +1 -1
- package/dist/replication/change-tracker.js +36 -5
- package/dist/replication/change-tracker.js.map +1 -1
- package/dist/replication/handler.d.ts.map +1 -1
- package/dist/replication/handler.js +20 -17
- package/dist/replication/handler.js.map +1 -1
- package/dist/worker/cf-patches.d.ts +4 -2
- package/dist/worker/cf-patches.d.ts.map +1 -1
- package/dist/worker/cf-patches.js +15 -2
- package/dist/worker/cf-patches.js.map +1 -1
- package/dist/worker/shims/postgres.d.ts.map +1 -1
- package/dist/worker/shims/postgres.js +112 -0
- package/dist/worker/shims/postgres.js.map +1 -1
- package/dist/worker/zero-cache-embed.d.ts.map +1 -1
- package/dist/worker/zero-cache-embed.js +4 -0
- package/dist/worker/zero-cache-embed.js.map +1 -1
- package/dist/zero-changelog-cleanup-patch.d.ts +18 -0
- package/dist/zero-changelog-cleanup-patch.d.ts.map +1 -0
- package/dist/zero-changelog-cleanup-patch.js +63 -0
- package/dist/zero-changelog-cleanup-patch.js.map +1 -0
- package/package.json +2 -2
package/dist/pglite-manager.d.ts
CHANGED
|
@@ -59,15 +59,18 @@ export declare function runMigrations(db: PGlite, config: ZeroLiteConfig): Promi
|
|
|
59
59
|
*/
|
|
60
60
|
export declare function startPeriodicCheckpoint(instances: PGliteInstances, intervalMs?: number): () => void;
|
|
61
61
|
/**
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
62
|
+
* Reclaim PGlite dead tuples from the two hot insert/delete buffers:
|
|
63
|
+
* orez's upstream logical-replication queue and zero-cache's own cdc changeLog.
|
|
64
|
+
*/
|
|
65
|
+
export declare function vacuumPGliteChurnTables(instances: PGliteInstances): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* orez's change queues are insert-then-purge churn: every write appends a change
|
|
68
|
+
* row, and consumers delete rows once durably committed. PGlite runs with no
|
|
69
|
+
* effective autovacuum, so those deletes leave dead tuples that accumulate without
|
|
70
|
+
* bound. Once the tables are bloated, zero-cache's change-streamer scan blows past
|
|
71
|
+
* its statement timeout and crash-loops, so Zero clients get the initial snapshot
|
|
72
|
+
* but no live updates (the classic "data loads once and never refreshes again"
|
|
73
|
+
* symptom).
|
|
71
74
|
*
|
|
72
75
|
* VACUUM the churn tables periodically to reclaim the dead tuples. We use
|
|
73
76
|
* `VACUUM FULL`, not plain VACUUM: PGlite's lazy (non-FULL) VACUUM wedges its
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pglite-manager.d.ts","sourceRoot":"","sources":["../src/pglite-manager.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAe7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AA+CjD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,iEAAiE;IACjE,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAC3B;AAgLD;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,eAAe,CAAC,CAW1B;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,eAAe,CAAC,CA8C1B;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,eAAe,CAAC,CAS1B;AAED;;GAEG;AACH,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,eAAe,CAAC,CAqC1B;AAED,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAQnF;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,MAAM,EAAE,CAAC,CAsCnB;AAED,wEAAwE;AACxE,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAkEvF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,eAAe,EAC1B,UAAU,SAAgB,GACzB,MAAM,IAAI,CAcZ;AAED
|
|
1
|
+
{"version":3,"file":"pglite-manager.d.ts","sourceRoot":"","sources":["../src/pglite-manager.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAe7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AA+CjD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,iEAAiE;IACjE,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAC3B;AAgLD;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,eAAe,CAAC,CAW1B;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,eAAe,CAAC,CA8C1B;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,eAAe,CAAC,CAS1B;AAED;;GAEG;AACH,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,eAAe,CAAC,CAqC1B;AAED,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAQnF;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,MAAM,EAAE,CAAC,CAsCnB;AAED,wEAAwE;AACxE,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAkEvF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,eAAe,EAC1B,UAAU,SAAgB,GACzB,MAAM,IAAI,CAcZ;AAgDD;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAMvF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,eAAe,EAC1B,UAAU,SAAY,GACrB,MAAM,IAAI,CASZ"}
|
package/dist/pglite-manager.js
CHANGED
|
@@ -432,16 +432,66 @@ export function startPeriodicCheckpoint(instances, intervalMs = 5 * 60 * 1000) {
|
|
|
432
432
|
checkpoint();
|
|
433
433
|
return () => clearInterval(timer);
|
|
434
434
|
}
|
|
435
|
+
const UPSTREAM_CHURN_TABLES = ['_orez._zero_changes', '_orez._zero_streamed_batches'];
|
|
436
|
+
function quoteIdent(name) {
|
|
437
|
+
return '"' + name.replace(/"/g, '""') + '"';
|
|
438
|
+
}
|
|
439
|
+
async function zeroChangeLogTables(db) {
|
|
440
|
+
try {
|
|
441
|
+
const result = await db.query(`SELECT schemaname, tablename
|
|
442
|
+
FROM pg_tables
|
|
443
|
+
WHERE schemaname LIKE $1
|
|
444
|
+
AND tablename = 'changeLog'`, ['%/cdc']);
|
|
445
|
+
return result.rows.map(({ schemaname, tablename }) => `${quoteIdent(schemaname)}.${quoteIdent(tablename)}`);
|
|
446
|
+
}
|
|
447
|
+
catch (err) {
|
|
448
|
+
log.debug.pglite(`zero change-log table scan failed: ${err}`);
|
|
449
|
+
return [];
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
async function vacuumTables(db, tables) {
|
|
453
|
+
if (tables.length === 0)
|
|
454
|
+
return;
|
|
455
|
+
try {
|
|
456
|
+
await db.exec(`SET lock_timeout = 5000`);
|
|
457
|
+
for (const table of tables) {
|
|
458
|
+
try {
|
|
459
|
+
await db.exec(`VACUUM (FULL, ANALYZE) ${table}`);
|
|
460
|
+
}
|
|
461
|
+
catch (err) {
|
|
462
|
+
log.debug.pglite(`vacuum skipped for ${table}: ${err}`);
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
catch (err) {
|
|
467
|
+
log.debug.pglite(`periodic vacuum setup failed: ${err}`);
|
|
468
|
+
}
|
|
469
|
+
finally {
|
|
470
|
+
try {
|
|
471
|
+
await db.exec(`SET lock_timeout = 0`);
|
|
472
|
+
}
|
|
473
|
+
catch { }
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* Reclaim PGlite dead tuples from the two hot insert/delete buffers:
|
|
478
|
+
* orez's upstream logical-replication queue and zero-cache's own cdc changeLog.
|
|
479
|
+
*/
|
|
480
|
+
export async function vacuumPGliteChurnTables(instances) {
|
|
481
|
+
await vacuumTables(instances.postgres, UPSTREAM_CHURN_TABLES);
|
|
482
|
+
const cdb = instances.cdb;
|
|
483
|
+
if (!cdb?.query)
|
|
484
|
+
return;
|
|
485
|
+
await vacuumTables(cdb, await zeroChangeLogTables(cdb));
|
|
486
|
+
}
|
|
435
487
|
/**
|
|
436
|
-
* orez's
|
|
437
|
-
*
|
|
438
|
-
*
|
|
439
|
-
*
|
|
440
|
-
*
|
|
441
|
-
*
|
|
442
|
-
*
|
|
443
|
-
* Zero clients get the initial snapshot but no live updates (the classic "data
|
|
444
|
-
* loads once and never refreshes again" symptom).
|
|
488
|
+
* orez's change queues are insert-then-purge churn: every write appends a change
|
|
489
|
+
* row, and consumers delete rows once durably committed. PGlite runs with no
|
|
490
|
+
* effective autovacuum, so those deletes leave dead tuples that accumulate without
|
|
491
|
+
* bound. Once the tables are bloated, zero-cache's change-streamer scan blows past
|
|
492
|
+
* its statement timeout and crash-loops, so Zero clients get the initial snapshot
|
|
493
|
+
* but no live updates (the classic "data loads once and never refreshes again"
|
|
494
|
+
* symptom).
|
|
445
495
|
*
|
|
446
496
|
* VACUUM the churn tables periodically to reclaim the dead tuples. We use
|
|
447
497
|
* `VACUUM FULL`, not plain VACUUM: PGlite's lazy (non-FULL) VACUUM wedges its
|
|
@@ -454,29 +504,9 @@ export function startPeriodicCheckpoint(instances, intervalMs = 5 * 60 * 1000) {
|
|
|
454
504
|
*
|
|
455
505
|
* returns a cleanup function to stop the timer.
|
|
456
506
|
*/
|
|
457
|
-
export function startPeriodicVacuum(instances, intervalMs =
|
|
458
|
-
const churnTables = ['_orez._zero_changes', '_orez._zero_streamed_batches'];
|
|
507
|
+
export function startPeriodicVacuum(instances, intervalMs = 60 * 1000) {
|
|
459
508
|
const vacuum = async () => {
|
|
460
|
-
|
|
461
|
-
if (!db)
|
|
462
|
-
return;
|
|
463
|
-
try {
|
|
464
|
-
await db.exec(`SET lock_timeout = '5s'`);
|
|
465
|
-
for (const table of churnTables) {
|
|
466
|
-
try {
|
|
467
|
-
await db.exec(`VACUUM (FULL, ANALYZE) ${table}`);
|
|
468
|
-
}
|
|
469
|
-
catch { }
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
|
-
catch {
|
|
473
|
-
}
|
|
474
|
-
finally {
|
|
475
|
-
try {
|
|
476
|
-
await db.exec(`SET lock_timeout = 0`);
|
|
477
|
-
}
|
|
478
|
-
catch { }
|
|
479
|
-
}
|
|
509
|
+
await vacuumPGliteChurnTables(instances);
|
|
480
510
|
};
|
|
481
511
|
const timer = setInterval(vacuum, intervalMs);
|
|
482
512
|
if (timer.unref)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pglite-manager.js","sourceRoot":"","sources":["../src/pglite-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pglite-manager.js","sourceRoot":"","sources":["../src/pglite-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/recovery.d.ts
CHANGED
|
@@ -8,6 +8,8 @@ export interface RecoveryContext {
|
|
|
8
8
|
config: {
|
|
9
9
|
dataDir: string;
|
|
10
10
|
useWorkerThreads?: boolean;
|
|
11
|
+
ephemeral?: boolean;
|
|
12
|
+
ephemeralDir?: string;
|
|
11
13
|
};
|
|
12
14
|
instances: {
|
|
13
15
|
postgres: PGlite;
|
|
@@ -118,20 +120,21 @@ export declare function classifyZeroCrashRecovery(details: string): {
|
|
|
118
120
|
* reset the state is beyond automatic repair.
|
|
119
121
|
* - 'wasm-fallback' — native sqlite couldn't load: switch to wasm, then retry.
|
|
120
122
|
* - 'restart' — transient/unexpected crash: plain relaunch, within budget.
|
|
121
|
-
* - '
|
|
122
|
-
* resort,
|
|
123
|
+
* - 'cache-reset' — plain restarts exhausted: rebuild the local replica as a
|
|
124
|
+
* last resort, preserving CVR/CDB so returning clients are not evicted with
|
|
125
|
+
* ClientNotFound.
|
|
123
126
|
* - 'give-up' — nothing left to try: surface the original error.
|
|
124
127
|
*/
|
|
125
|
-
export type ZeroStartupRecoveryAction = 'recover-state' | 'wasm-fallback' | 'restart' | '
|
|
128
|
+
export type ZeroStartupRecoveryAction = 'recover-state' | 'wasm-fallback' | 'restart' | 'cache-reset' | 'give-up';
|
|
126
129
|
export interface ZeroStartupRetryState {
|
|
127
130
|
/** plain relaunches already attempted (not counting the first start). */
|
|
128
131
|
plainRestarts: number;
|
|
129
|
-
/** budget for plain relaunches before
|
|
132
|
+
/** budget for plain relaunches before rebuilding the local replica. */
|
|
130
133
|
maxRestarts: number;
|
|
131
134
|
/** a corruption/inconsistency reset has already been tried this startup. */
|
|
132
135
|
didRecoverState: boolean;
|
|
133
|
-
/** the last-resort
|
|
134
|
-
|
|
136
|
+
/** the last-resort replica rebuild has already been tried this startup. */
|
|
137
|
+
didCacheReset: boolean;
|
|
135
138
|
/** native sqlite is in use and a wasm fallback is permitted. */
|
|
136
139
|
canWasmFallback: boolean;
|
|
137
140
|
/** the wasm fallback has already been applied this startup. */
|
|
@@ -143,12 +146,7 @@ export declare function classifyZeroStartupRecovery(details: string, state: Zero
|
|
|
143
146
|
action: ZeroStartupRecoveryAction;
|
|
144
147
|
reason: string;
|
|
145
148
|
};
|
|
146
|
-
|
|
147
|
-
* detect replica files that cannot possibly be a valid already-synced Zero
|
|
148
|
-
* replica. zero-cache can create the file itself during initial sync; an empty
|
|
149
|
-
* file here is a leftover local-state artifact, not useful cache state.
|
|
150
|
-
*/
|
|
151
|
-
export declare function getZeroReplicaStartupResetReason(dataDir: string): string | null;
|
|
149
|
+
export declare function getZeroReplicaStartupResetReason(replicaDir: string): string | null;
|
|
152
150
|
/**
|
|
153
151
|
* recover from zero-cache state corruption by resetting the CVR DB, change DB,
|
|
154
152
|
* local replica, and upstream zero bookkeeping together.
|
package/dist/recovery.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAA;QACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;QAC1B,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAA;QAChB,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;IACD,gBAAgB,EAAE,YAAY,GAAG,IAAI,CAAA;CACtC;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAWlE;AAED;;;;GAIG;AACH,wBAAgB,oCAAoC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAK7E;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CA8B3E;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;IAAE,mBAAmB,EAAE,OAAO,CAAA;CAAE,GACrC,YAAY,GAAG,MAAM,CAGvB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAiBnE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG;IAC1D,MAAM,EAAE,YAAY,GAAG,SAAS,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;CACf,CAWA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,yBAAyB,GACjC,eAAe,GACf,eAAe,GACf,SAAS,GACT,aAAa,GACb,SAAS,CAAA;AAEb,MAAM,WAAW,qBAAqB;IACpC,yEAAyE;IACzE,aAAa,EAAE,MAAM,CAAA;IACrB,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAA;IACnB,4EAA4E;IAC5E,eAAe,EAAE,OAAO,CAAA;IACxB,2EAA2E;IAC3E,aAAa,EAAE,OAAO,CAAA;IACtB,gEAAgE;IAChE,eAAe,EAAE,OAAO,CAAA;IACxB,+DAA+D;IAC/D,eAAe,EAAE,OAAO,CAAA;IACxB,gEAAgE;IAChE,mBAAmB,EAAE,OAAO,CAAA;CAC7B;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,qBAAqB,GAC3B;IAAE,MAAM,EAAE,yBAAyB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAqCvD;AAkBD,wBAAgB,gCAAgC,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYlF;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAgF1E"}
|
package/dist/recovery.js
CHANGED
|
@@ -176,7 +176,7 @@ export function classifyZeroStartupRecovery(details, state) {
|
|
|
176
176
|
}
|
|
177
177
|
// a missing native sqlite binary is DETERMINISTIC, never transient: either
|
|
178
178
|
// fall back to wasm (once, when permitted) or fail fast. it must NOT enter
|
|
179
|
-
// the restart/
|
|
179
|
+
// the restart/cache-reset path below — retrying would just loop into the same
|
|
180
180
|
// missing-binary error, and the user explicitly wants `bun dev` to exit fast
|
|
181
181
|
// when native zero sqlite isn't there rather than churn.
|
|
182
182
|
if (state.nativeBinaryMissing) {
|
|
@@ -192,9 +192,10 @@ export function classifyZeroStartupRecovery(details, state) {
|
|
|
192
192
|
if (state.plainRestarts < state.maxRestarts) {
|
|
193
193
|
return { action: 'restart', reason: 'transient startup crash' };
|
|
194
194
|
}
|
|
195
|
-
// budget spent —
|
|
196
|
-
|
|
197
|
-
|
|
195
|
+
// budget spent — rebuild the replica as a last resort, but preserve CVR/CDB
|
|
196
|
+
// so persisted clients can reconnect without ClientNotFound.
|
|
197
|
+
if (!state.didCacheReset) {
|
|
198
|
+
return { action: 'cache-reset', reason: 'still crashing after restarts' };
|
|
198
199
|
}
|
|
199
200
|
return { action: 'give-up', reason: 'unrecoverable startup crash' };
|
|
200
201
|
}
|
|
@@ -203,8 +204,14 @@ export function classifyZeroStartupRecovery(details, state) {
|
|
|
203
204
|
* replica. zero-cache can create the file itself during initial sync; an empty
|
|
204
205
|
* file here is a leftover local-state artifact, not useful cache state.
|
|
205
206
|
*/
|
|
206
|
-
|
|
207
|
-
|
|
207
|
+
function pgliteDataDirFor(config, name) {
|
|
208
|
+
return config.ephemeral ? 'memory://' : resolve(config.dataDir, `pgdata-${name}`);
|
|
209
|
+
}
|
|
210
|
+
function zeroReplicaPath(config) {
|
|
211
|
+
return resolve(config.ephemeralDir ?? config.dataDir, 'zero-replica.db');
|
|
212
|
+
}
|
|
213
|
+
export function getZeroReplicaStartupResetReason(replicaDir) {
|
|
214
|
+
const replicaPath = resolve(replicaDir, 'zero-replica.db');
|
|
208
215
|
if (!existsSync(replicaPath))
|
|
209
216
|
return null;
|
|
210
217
|
try {
|
|
@@ -244,7 +251,7 @@ export async function recoverZeroState(ctx) {
|
|
|
244
251
|
}
|
|
245
252
|
log.orez('deleted corrupted CVR/CDB data');
|
|
246
253
|
// delete replica file
|
|
247
|
-
const replicaPath =
|
|
254
|
+
const replicaPath = zeroReplicaPath(config);
|
|
248
255
|
for (const suffix of ['', '-shm', '-wal', '-wal2']) {
|
|
249
256
|
try {
|
|
250
257
|
rmSync(replicaPath + suffix, { force: true });
|
|
@@ -252,23 +259,27 @@ export async function recoverZeroState(ctx) {
|
|
|
252
259
|
catch { }
|
|
253
260
|
}
|
|
254
261
|
// recreate CVR/CDB instances
|
|
262
|
+
const cvrDataDir = pgliteDataDirFor(config, 'cvr');
|
|
263
|
+
const cdbDataDir = pgliteDataDirFor(config, 'cdb');
|
|
255
264
|
if (config.useWorkerThreads) {
|
|
256
|
-
const cvrProxy = createPGliteWorker(
|
|
257
|
-
const cdbProxy = createPGliteWorker(
|
|
265
|
+
const cvrProxy = createPGliteWorker(cvrDataDir, 'cvr');
|
|
266
|
+
const cdbProxy = createPGliteWorker(cdbDataDir, 'cdb');
|
|
258
267
|
await Promise.all([cvrProxy.waitReady, cdbProxy.waitReady]);
|
|
259
268
|
instances.cvr = cvrProxy;
|
|
260
269
|
instances.cdb = cdbProxy;
|
|
261
270
|
}
|
|
262
271
|
else {
|
|
263
272
|
const { PGlite: PGliteCtor } = await import('@electric-sql/pglite');
|
|
264
|
-
|
|
265
|
-
|
|
273
|
+
if (!config.ephemeral) {
|
|
274
|
+
mkdirSync(cvrDataDir, { recursive: true });
|
|
275
|
+
mkdirSync(cdbDataDir, { recursive: true });
|
|
276
|
+
}
|
|
266
277
|
instances.cvr = new PGliteCtor({
|
|
267
|
-
dataDir:
|
|
278
|
+
dataDir: cvrDataDir,
|
|
268
279
|
relaxedDurability: true,
|
|
269
280
|
});
|
|
270
281
|
instances.cdb = new PGliteCtor({
|
|
271
|
-
dataDir:
|
|
282
|
+
dataDir: cdbDataDir,
|
|
272
283
|
relaxedDurability: true,
|
|
273
284
|
});
|
|
274
285
|
await instances.cvr.waitReady;
|
package/dist/recovery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery.js","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AACrF,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"recovery.js","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-tracker.d.ts","sourceRoot":"","sources":["../../src/replication/change-tracker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"change-tracker.d.ts","sourceRoot":"","sources":["../../src/replication/change-tracker.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,EAAE,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACxC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CACzC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;IAC5D,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,EAAE,CAAA;KAAE,CAAC,CAAA;CAClE;AAYD,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuF/E;AAqFD,2CAA2C;AAC3C,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,wBAAsB,4BAA4B,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DtF;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,gBAAgB,EACpB,SAAS,EAAE,MAAM,EACjB,KAAK,SAAQ,GACZ,OAAO,CAAC,YAAY,EAAE,CAAC,CAWzB;AAED,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,gBAAgB,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,gBAAgB,EACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,gBAAgB,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9E;AAED,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAO/E;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAOpF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { log } from '../log.js';
|
|
2
|
+
const PURGE_BATCH_SIZE = 5000;
|
|
2
3
|
// PGlite returns JSONB columns as parsed objects; the DO backend returns them
|
|
3
4
|
// as JSON strings (it stores `row_data TEXT`). normalize once at the consumer
|
|
4
5
|
// boundary so callers always get an object.
|
|
@@ -228,8 +229,25 @@ export async function getChangesSince(db, watermark, limit = 50000) {
|
|
|
228
229
|
}));
|
|
229
230
|
}
|
|
230
231
|
export async function purgeConsumedChanges(db, watermark) {
|
|
231
|
-
const
|
|
232
|
-
|
|
232
|
+
const hi = Number(watermark);
|
|
233
|
+
let total = 0;
|
|
234
|
+
for (let i = 0; i < 10_000; i++) {
|
|
235
|
+
const result = await db.exec(`
|
|
236
|
+
DELETE FROM _orez._zero_changes
|
|
237
|
+
WHERE watermark IN (
|
|
238
|
+
SELECT watermark
|
|
239
|
+
FROM _orez._zero_changes
|
|
240
|
+
WHERE watermark <= ${hi}
|
|
241
|
+
ORDER BY watermark
|
|
242
|
+
LIMIT ${PURGE_BATCH_SIZE}
|
|
243
|
+
)
|
|
244
|
+
`);
|
|
245
|
+
const affected = result[0]?.affectedRows ?? 0;
|
|
246
|
+
total += affected;
|
|
247
|
+
if (affected < PURGE_BATCH_SIZE)
|
|
248
|
+
break;
|
|
249
|
+
}
|
|
250
|
+
return total;
|
|
233
251
|
}
|
|
234
252
|
/**
|
|
235
253
|
* durably record a streamed batch BEFORE its rows go out on the wire:
|
|
@@ -260,9 +278,22 @@ export async function confirmStreamedBatches(db, confirmedLsn) {
|
|
|
260
278
|
if (hi === null || hi === undefined)
|
|
261
279
|
return 0;
|
|
262
280
|
const purged = await purgeConsumedChanges(db, Number(hi));
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
281
|
+
const target = Number(confirmedLsn);
|
|
282
|
+
for (let i = 0; i < 10_000; i++) {
|
|
283
|
+
const result = await db.exec(`
|
|
284
|
+
DELETE FROM _orez._zero_streamed_batches
|
|
285
|
+
WHERE batch_lsn IN (
|
|
286
|
+
SELECT batch_lsn
|
|
287
|
+
FROM _orez._zero_streamed_batches
|
|
288
|
+
WHERE batch_lsn <= ${target}
|
|
289
|
+
ORDER BY batch_lsn
|
|
290
|
+
LIMIT ${PURGE_BATCH_SIZE}
|
|
291
|
+
)
|
|
292
|
+
`);
|
|
293
|
+
const affected = result[0]?.affectedRows ?? 0;
|
|
294
|
+
if (affected < PURGE_BATCH_SIZE)
|
|
295
|
+
break;
|
|
296
|
+
}
|
|
266
297
|
return purged;
|
|
267
298
|
}
|
|
268
299
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-tracker.js","sourceRoot":"","sources":["../../src/replication/change-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"change-tracker.js","sourceRoot":"","sources":["../../src/replication/change-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/replication/handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA6BH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAKlD,eAAO,MAAM,sBAAsB,OAAO,CAAA;AAyB1C,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,iBAAiB;;gBAI3C,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI;IAI9C,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAM7B,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,KAAK,IAAI,IAAI;CAGd;AA4BD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAIvD;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,YAAY,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAA4B,GAC1D,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAkC7B;AAKD;2EAC2E;AAC3E,wBAAgB,uBAAuB,SAMtC;AAUD,qCAAqC;AACrC,wBAAgB,qBAAqB,IAAI,IAAI,CAS5C;AAcD;;;GAGG;AACH,iBAAS,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI/C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI5D;AAED,OAAO,EAAE,aAAa,EAAE,CAAA;AA+GxB,iBAAS,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAqBvD;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAmF5B;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,iBAAiB,EACzB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/replication/handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA6BH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAKlD,eAAO,MAAM,sBAAsB,OAAO,CAAA;AAyB1C,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,iBAAiB;;gBAI3C,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI;IAI9C,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAM7B,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,KAAK,IAAI,IAAI;CAGd;AA4BD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAIvD;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,YAAY,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAA4B,GAC1D,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAkC7B;AAKD;2EAC2E;AAC3E,wBAAgB,uBAAuB,SAMtC;AAUD,qCAAqC;AACrC,wBAAgB,qBAAqB,IAAI,IAAI,CAS5C;AAcD;;;GAGG;AACH,iBAAS,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI/C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI5D;AAED,OAAO,EAAE,aAAa,EAAE,CAAA;AA+GxB,iBAAS,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAqBvD;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAmF5B;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,iBAAiB,EACzB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,IAAI,CAAC,CAklBf;AAqPD,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
|
|
@@ -647,6 +647,22 @@ export async function handleStartReplication(query, writer, db, mutex) {
|
|
|
647
647
|
};
|
|
648
648
|
});
|
|
649
649
|
};
|
|
650
|
+
const flushConfirmedBatches = async () => {
|
|
651
|
+
if (pendingConfirmLsn <= processedConfirmLsn)
|
|
652
|
+
return;
|
|
653
|
+
await mutex.acquire();
|
|
654
|
+
const target = pendingConfirmLsn;
|
|
655
|
+
try {
|
|
656
|
+
const purged = await confirmStreamedBatches(db, target);
|
|
657
|
+
processedConfirmLsn = target;
|
|
658
|
+
if (purged > 0) {
|
|
659
|
+
log.debug.proxy(`purged ${purged} confirmed changes`);
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
finally {
|
|
663
|
+
mutex.release();
|
|
664
|
+
}
|
|
665
|
+
};
|
|
650
666
|
// register direct wakeup so the proxy can signal us immediately
|
|
651
667
|
_replicationWakeup = wakeup;
|
|
652
668
|
globalThis.__orez_signal_replication = wakeup;
|
|
@@ -731,6 +747,7 @@ export async function handleStartReplication(query, writer, db, mutex) {
|
|
|
731
747
|
log.debug.repl('shard rescan skipped: mutex busy');
|
|
732
748
|
}
|
|
733
749
|
}
|
|
750
|
+
await flushConfirmedBatches();
|
|
734
751
|
// try to acquire mutex without blocking proxy connections.
|
|
735
752
|
// post-sync: short backoff since writes signal us directly.
|
|
736
753
|
// pre-sync: yield more generously so zero-cache initial copy can finish.
|
|
@@ -785,25 +802,11 @@ export async function handleStartReplication(query, writer, db, mutex) {
|
|
|
785
802
|
finally {
|
|
786
803
|
mutex.release();
|
|
787
804
|
}
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
// ack triggers (or with the next batch under sustained write load).
|
|
792
|
-
if (pendingConfirmLsn > processedConfirmLsn && mutex.tryAcquire()) {
|
|
793
|
-
const target = pendingConfirmLsn;
|
|
794
|
-
try {
|
|
795
|
-
const purged = await confirmStreamedBatches(db, target);
|
|
796
|
-
processedConfirmLsn = target;
|
|
797
|
-
if (purged > 0) {
|
|
798
|
-
log.debug.proxy(`purged ${purged} confirmed changes`);
|
|
799
|
-
}
|
|
800
|
-
}
|
|
801
|
-
finally {
|
|
802
|
-
mutex.release();
|
|
803
|
-
}
|
|
805
|
+
const queryMs = performance.now() - queryStart;
|
|
806
|
+
if (queryMs > 1000) {
|
|
807
|
+
log.proxy(`slow change-log query: ${queryMs.toFixed(1)}ms (wm=${lastWatermark}, rows=${changes.length})`);
|
|
804
808
|
}
|
|
805
809
|
if (changes.length > 0) {
|
|
806
|
-
const queryMs = performance.now() - queryStart;
|
|
807
810
|
const signalToQueryMs = lastWakeupTime > 0 ? (performance.now() - lastWakeupTime).toFixed(1) : '?';
|
|
808
811
|
// summarize which tables changed
|
|
809
812
|
const tableSummary = [...new Set(changes.map((c) => c.table_name))].join(',');
|