orez 0.4.6 → 0.4.8
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/dist/cf-do/tx-journal.d.ts +62 -0
- package/dist/cf-do/tx-journal.d.ts.map +1 -0
- package/dist/cf-do/tx-journal.js +163 -0
- package/dist/cf-do/tx-journal.js.map +1 -0
- package/dist/cf-do/worker.d.ts +15 -2
- package/dist/cf-do/worker.d.ts.map +1 -1
- package/dist/cf-do/worker.js +46 -8
- package/dist/cf-do/worker.js.map +1 -1
- package/dist/pg-proxy-browser.d.ts.map +1 -1
- package/dist/pg-proxy-browser.js +127 -15
- package/dist/pg-proxy-browser.js.map +1 -1
- package/dist/pg-proxy-do-backend.d.ts +2 -5
- package/dist/pg-proxy-do-backend.d.ts.map +1 -1
- package/dist/pg-proxy-do-backend.js +36 -63
- package/dist/pg-proxy-do-backend.js.map +1 -1
- package/dist/pg-proxy.d.ts.map +1 -1
- package/dist/pg-proxy.js +73 -17
- package/dist/pg-proxy.js.map +1 -1
- package/dist/replication/change-tracker.d.ts +28 -0
- package/dist/replication/change-tracker.d.ts.map +1 -1
- package/dist/replication/change-tracker.js +53 -0
- package/dist/replication/change-tracker.js.map +1 -1
- package/dist/replication/handler.d.ts +13 -0
- package/dist/replication/handler.d.ts.map +1 -1
- package/dist/replication/handler.js +145 -36
- package/dist/replication/handler.js.map +1 -1
- package/dist/worker/embed-generation.d.ts +36 -0
- package/dist/worker/embed-generation.d.ts.map +1 -0
- package/dist/worker/embed-generation.js +49 -0
- package/dist/worker/embed-generation.js.map +1 -0
- package/dist/worker/local-sql-backend.d.ts +35 -0
- package/dist/worker/local-sql-backend.d.ts.map +1 -0
- package/dist/worker/local-sql-backend.js +106 -0
- package/dist/worker/local-sql-backend.js.map +1 -0
- package/dist/worker/shims/fastify.d.ts +9 -0
- package/dist/worker/shims/fastify.d.ts.map +1 -1
- package/dist/worker/shims/fastify.js +12 -0
- package/dist/worker/shims/fastify.js.map +1 -1
- package/dist/worker/shims/sqlite.d.ts +0 -20
- package/dist/worker/shims/sqlite.d.ts.map +1 -1
- package/dist/worker/shims/sqlite.js +28 -0
- package/dist/worker/shims/sqlite.js.map +1 -1
- package/dist/worker/zero-cache-embed-cf.d.ts +1 -11
- package/dist/worker/zero-cache-embed-cf.d.ts.map +1 -1
- package/dist/worker/zero-cache-embed-cf.js +68 -14
- package/dist/worker/zero-cache-embed-cf.js.map +1 -1
- package/dist/worker/zero-cache-embed.d.ts.map +1 -1
- package/dist/worker/zero-cache-embed.js +14 -0
- package/dist/worker/zero-cache-embed.js.map +1 -1
- package/dist/zero-sqlite-handle-patch.d.ts +26 -0
- package/dist/zero-sqlite-handle-patch.d.ts.map +1 -0
- package/dist/zero-sqlite-handle-patch.js +68 -0
- package/dist/zero-sqlite-handle-patch.js.map +1 -0
- package/package.json +2 -2
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { log } from '../log.js';
|
|
9
9
|
const textEncoder = new TextEncoder();
|
|
10
|
-
import { getChangesSince, getCurrentWatermark, getStreamResumeWatermark, purgeConsumedChanges, installTriggersOnShardTables, } from './change-tracker.js';
|
|
10
|
+
import { clearStreamedBatches, confirmStreamedBatches, getChangesSince, getCurrentWatermark, getStreamResumeWatermark, purgeConsumedChanges, recordStreamedBatch, installTriggersOnShardTables, } from './change-tracker.js';
|
|
11
11
|
import { encodeBegin, encodeCommit, encodeRelation, encodeInsert, encodeUpdate, encodeDelete, encodeKeepalive, encodeWrappedChange, getTableOid, inferColumns, } from './pgoutput-encoder.js';
|
|
12
12
|
// types pglite can't replicate — excluded from change tracking columns
|
|
13
13
|
const UNSUPPORTED_TYPES = new Set(['tsvector', 'tsquery', 'USER-DEFINED']);
|
|
@@ -72,6 +72,63 @@ let currentLsn = lsnFloorFromTime();
|
|
|
72
72
|
// persistent watermark across handler restarts so new handlers
|
|
73
73
|
// don't replay already-streamed changes
|
|
74
74
|
let lastStreamedWatermark = 0;
|
|
75
|
+
// confirmed-flush feedback from the consumer (standby status updates).
|
|
76
|
+
// the poll loop purges _zero_changes for confirmed batches; until then the
|
|
77
|
+
// table is the durable record so a consumer death mid-store re-streams the
|
|
78
|
+
// transaction instead of silently losing it.
|
|
79
|
+
let pendingConfirmLsn = 0n;
|
|
80
|
+
let processedConfirmLsn = 0n;
|
|
81
|
+
/**
|
|
82
|
+
* note a confirmed-flush LSN from the consumer's standby status update and
|
|
83
|
+
* wake the replication loop so it purges the confirmed batches.
|
|
84
|
+
*/
|
|
85
|
+
export function noteConfirmedFlushLsn(lsn) {
|
|
86
|
+
if (lsn <= pendingConfirmLsn)
|
|
87
|
+
return;
|
|
88
|
+
pendingConfirmLsn = lsn;
|
|
89
|
+
_replicationWakeup?.();
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* incremental parser for client→server traffic on a replication connection.
|
|
93
|
+
* extracts the flushed LSN from CopyData-wrapped standby status updates
|
|
94
|
+
* ('d' frame wrapping 'r' + written(8) + flushed(8) + applied(8) + clock(8)
|
|
95
|
+
* + replyRequested(1)) and ignores every other frame. handles fragmented and
|
|
96
|
+
* coalesced chunks.
|
|
97
|
+
*/
|
|
98
|
+
export function createReplicationFeedbackParser(onFlushedLsn = noteConfirmedFlushLsn) {
|
|
99
|
+
let pending = null;
|
|
100
|
+
return (chunk) => {
|
|
101
|
+
let buf;
|
|
102
|
+
if (pending && pending.length > 0) {
|
|
103
|
+
buf = new Uint8Array(pending.length + chunk.length);
|
|
104
|
+
buf.set(pending);
|
|
105
|
+
buf.set(chunk, pending.length);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
buf = chunk;
|
|
109
|
+
}
|
|
110
|
+
let offset = 0;
|
|
111
|
+
while (buf.length - offset >= 5) {
|
|
112
|
+
const view = new DataView(buf.buffer, buf.byteOffset + offset, 5);
|
|
113
|
+
const len = view.getInt32(1);
|
|
114
|
+
if (len < 4) {
|
|
115
|
+
// corrupt frame — drop the buffer rather than spin
|
|
116
|
+
offset = buf.length;
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
const total = 1 + len;
|
|
120
|
+
if (offset + total > buf.length)
|
|
121
|
+
break;
|
|
122
|
+
if (buf[offset] === 0x64 && len >= 4 + 26 && buf[offset + 5] === 0x72) {
|
|
123
|
+
const flushed = new DataView(buf.buffer, buf.byteOffset + offset + 5 + 1 + 8, 8).getBigUint64(0);
|
|
124
|
+
if (flushed > 0n)
|
|
125
|
+
onFlushedLsn(flushed);
|
|
126
|
+
}
|
|
127
|
+
offset += total;
|
|
128
|
+
}
|
|
129
|
+
pending = offset < buf.length ? buf.slice(offset) : null;
|
|
130
|
+
};
|
|
131
|
+
}
|
|
75
132
|
// direct wakeup from proxy — bypasses pg_notify for instant replication
|
|
76
133
|
let _replicationWakeup = null;
|
|
77
134
|
/** signal the replication handler that changes may be available.
|
|
@@ -94,6 +151,8 @@ let cachedColumnTypeOids = null;
|
|
|
94
151
|
export function resetReplicationState() {
|
|
95
152
|
currentLsn = lsnFloorFromTime();
|
|
96
153
|
lastStreamedWatermark = 0;
|
|
154
|
+
pendingConfirmLsn = 0n;
|
|
155
|
+
processedConfirmLsn = 0n;
|
|
97
156
|
cachedTableKeyColumns = null;
|
|
98
157
|
cachedExcludedColumns = null;
|
|
99
158
|
cachedColumnTypeOids = null;
|
|
@@ -280,6 +339,11 @@ export async function handleReplicationQuery(query, db) {
|
|
|
280
339
|
if (currentWm > lastStreamedWatermark) {
|
|
281
340
|
lastStreamedWatermark = currentWm;
|
|
282
341
|
}
|
|
342
|
+
// a new slot means the consumer re-initializes from a fresh snapshot:
|
|
343
|
+
// rows up to the snapshot point are covered by the initial copy, and any
|
|
344
|
+
// prior streamed-batch state belongs to a slot that no longer exists.
|
|
345
|
+
await purgeConsumedChanges(db, currentWm);
|
|
346
|
+
await clearStreamedBatches(db);
|
|
283
347
|
// persist slot so pg_replication_slots queries find it
|
|
284
348
|
await db.query(`INSERT INTO _orez._zero_replication_slots (slot_name, restart_lsn, confirmed_flush_lsn)
|
|
285
349
|
VALUES ($1, $2, $2)
|
|
@@ -343,28 +407,47 @@ export async function handleStartReplication(query, writer, db, mutex) {
|
|
|
343
407
|
copyBoth[5] = 0; // overall format (0 = text)
|
|
344
408
|
new DataView(copyBoth.buffer).setInt16(6, 0); // 0 columns
|
|
345
409
|
writer.write(copyBoth);
|
|
346
|
-
//
|
|
347
|
-
//
|
|
348
|
-
//
|
|
349
|
-
//
|
|
350
|
-
//
|
|
351
|
-
//
|
|
352
|
-
//
|
|
353
|
-
//
|
|
354
|
-
//
|
|
355
|
-
//
|
|
356
|
-
//
|
|
357
|
-
//
|
|
410
|
+
// reconcile against the consumer's DURABLE position on reconnect.
|
|
411
|
+
// when the client supplied a NON-ZERO LSN (a reconnect to an existing slot
|
|
412
|
+
// with prior progress), that LSN is one past the commit LSN of the last
|
|
413
|
+
// transaction it durably committed:
|
|
414
|
+
//
|
|
415
|
+
// - every streamed batch with batch_lsn < clientStartLsn was committed
|
|
416
|
+
// by the consumer → purge its change rows now (this also covers acks
|
|
417
|
+
// lost to a process death).
|
|
418
|
+
// - every remaining streamed-batch mapping belongs to a batch the
|
|
419
|
+
// consumer never committed → discard the mapping; its change rows are
|
|
420
|
+
// still pending and re-stream below under fresh LSNs.
|
|
421
|
+
//
|
|
422
|
+
// then resume one below the oldest still-pending _zero_changes row. rows
|
|
423
|
+
// are only purged on confirmation, so the table is the durable record —
|
|
424
|
+
// anything remaining was not durably consumed, even when the streaming
|
|
425
|
+
// process died (DO teardown/eviction, page reload) while writers kept
|
|
426
|
+
// appending, or when the consumer was killed mid-store. `0/0` indicates
|
|
427
|
+
// "fresh slot" and must NOT trigger this: initial sync covers the rows.
|
|
358
428
|
if (clientStartLsn !== null && clientStartLsn > 0n) {
|
|
429
|
+
// NOTE: in the browser proxy this is the transaction-aware mutex, so the
|
|
430
|
+
// acquire waits until no OTHER connection has an open transaction (the
|
|
431
|
+
// reconcile's deletes must not join a foreign tx that could roll back).
|
|
432
|
+
// safe because CopyBothResponse was already written above — the consumer
|
|
433
|
+
// is never blocked waiting on it mid-handshake — and connection cleanup
|
|
434
|
+
// rolls back dead connections' transactions, so the wait is bounded by
|
|
435
|
+
// live, well-behaved transactions only.
|
|
436
|
+
await mutex.acquire();
|
|
359
437
|
try {
|
|
438
|
+
await confirmStreamedBatches(db, clientStartLsn - 1n);
|
|
439
|
+
await clearStreamedBatches(db);
|
|
360
440
|
const resumeWm = await getStreamResumeWatermark(db);
|
|
361
|
-
if (resumeWm
|
|
362
|
-
log.debug.repl(`
|
|
441
|
+
if (resumeWm !== lastStreamedWatermark) {
|
|
442
|
+
log.debug.repl(`moving lastStreamedWatermark ${lastStreamedWatermark} → ${resumeWm} on reconnect`);
|
|
363
443
|
lastStreamedWatermark = resumeWm;
|
|
364
444
|
}
|
|
365
445
|
}
|
|
366
446
|
catch (err) {
|
|
367
|
-
log.repl(`
|
|
447
|
+
log.repl(`stream resume reconciliation failed on reconnect: ${err?.message || err}`);
|
|
448
|
+
}
|
|
449
|
+
finally {
|
|
450
|
+
mutex.release();
|
|
368
451
|
}
|
|
369
452
|
}
|
|
370
453
|
let lastWatermark = lastStreamedWatermark;
|
|
@@ -532,10 +615,8 @@ export async function handleStartReplication(query, writer, db, mutex) {
|
|
|
532
615
|
// pg_notify as secondary signal, polling as final fallback.
|
|
533
616
|
const pollIntervalIdle = 5000;
|
|
534
617
|
const batchSize = 50000;
|
|
535
|
-
const purgeEveryN = 1;
|
|
536
618
|
const shardRescanIntervalMs = 10_000;
|
|
537
619
|
let running = true;
|
|
538
|
-
let pollsSincePurge = 0;
|
|
539
620
|
let tryAcquireFailures = 0;
|
|
540
621
|
let lastShardRescan = -shardRescanIntervalMs;
|
|
541
622
|
let hasStreamedOnce = false;
|
|
@@ -704,6 +785,23 @@ export async function handleStartReplication(query, writer, db, mutex) {
|
|
|
704
785
|
finally {
|
|
705
786
|
mutex.release();
|
|
706
787
|
}
|
|
788
|
+
// purge batches the consumer has confirmed since the last pass.
|
|
789
|
+
// confirmation arrives as a standby status update right after the
|
|
790
|
+
// consumer durably commits a batch, so this runs on the wakeup that
|
|
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
|
+
}
|
|
804
|
+
}
|
|
707
805
|
if (changes.length > 0) {
|
|
708
806
|
const queryMs = performance.now() - queryStart;
|
|
709
807
|
const signalToQueryMs = lastWakeupTime > 0 ? (performance.now() - lastWakeupTime).toFixed(1) : '?';
|
|
@@ -731,32 +829,42 @@ export async function handleStartReplication(query, writer, db, mutex) {
|
|
|
731
829
|
lastWatermark = batchEnd;
|
|
732
830
|
lastStreamedWatermark = batchEnd;
|
|
733
831
|
// all changes were filtered out (e.g. shard internal tables).
|
|
832
|
+
// they never reach the consumer by design, so no confirmation
|
|
833
|
+
// will ever cover them — purge directly.
|
|
834
|
+
if (mutex.tryAcquire()) {
|
|
835
|
+
try {
|
|
836
|
+
await purgeConsumedChanges(db, batchEnd);
|
|
837
|
+
}
|
|
838
|
+
finally {
|
|
839
|
+
mutex.release();
|
|
840
|
+
}
|
|
841
|
+
}
|
|
734
842
|
// brief wait to avoid tight loop, then recheck.
|
|
735
843
|
await waitForWakeup(200);
|
|
736
844
|
queryPending = true;
|
|
737
845
|
continue;
|
|
738
846
|
}
|
|
739
847
|
await ensureMetadataForChangedTables(db, mutex, changes, tableKeyColumns, excludedColumns, columnTypeOids);
|
|
848
|
+
// allocate the batch's commit LSN and durably record the
|
|
849
|
+
// lsn → batch-end mapping BEFORE the rows hit the wire: if the
|
|
850
|
+
// consumer commits the batch and this process dies before
|
|
851
|
+
// persisting the mapping, the reconnect reconciliation would
|
|
852
|
+
// re-stream an already-committed transaction (duplicate apply).
|
|
853
|
+
const batchLsn = nextLsn();
|
|
854
|
+
const batchEndLsn = nextLsn();
|
|
855
|
+
await mutex.acquire();
|
|
856
|
+
try {
|
|
857
|
+
await recordStreamedBatch(db, batchLsn, batchEnd);
|
|
858
|
+
}
|
|
859
|
+
finally {
|
|
860
|
+
mutex.release();
|
|
861
|
+
}
|
|
740
862
|
log.debug.repl(`streaming ${changes.length} changes to writer`);
|
|
741
|
-
await streamChanges(changes, writer, sentRelations, txCounter++, tableKeyColumns, excludedColumns, columnTypeOids);
|
|
863
|
+
await streamChanges(changes, writer, sentRelations, txCounter++, batchLsn, batchEndLsn, tableKeyColumns, excludedColumns, columnTypeOids);
|
|
742
864
|
lastWatermark = batchEnd;
|
|
743
865
|
lastStreamedWatermark = batchEnd;
|
|
744
866
|
log.debug.repl(`streamed ok, watermark=${batchEnd}`);
|
|
745
867
|
hasStreamedOnce = true;
|
|
746
|
-
// purge consumed changes periodically to free wasm memory
|
|
747
|
-
pollsSincePurge++;
|
|
748
|
-
if (pollsSincePurge >= purgeEveryN && mutex.tryAcquire()) {
|
|
749
|
-
pollsSincePurge = 0;
|
|
750
|
-
try {
|
|
751
|
-
const purged = await purgeConsumedChanges(db, lastWatermark);
|
|
752
|
-
if (purged > 0) {
|
|
753
|
-
log.debug.proxy(`purged ${purged} consumed changes`);
|
|
754
|
-
}
|
|
755
|
-
}
|
|
756
|
-
finally {
|
|
757
|
-
mutex.release();
|
|
758
|
-
}
|
|
759
|
-
}
|
|
760
868
|
// got changes - continue immediately to check for more
|
|
761
869
|
queryPending = true;
|
|
762
870
|
continue;
|
|
@@ -873,9 +981,11 @@ async function ensureMetadataForChangedTables(db, mutex, changes, tableKeyColumn
|
|
|
873
981
|
}
|
|
874
982
|
// cache column info per table to avoid per-change allocation
|
|
875
983
|
const cachedColumns = new Map();
|
|
876
|
-
async function streamChanges(changes, writer, sentRelations, txId,
|
|
984
|
+
async function streamChanges(changes, writer, sentRelations, txId,
|
|
985
|
+
// the batch's commit LSN and commit-end LSN are allocated by the caller so
|
|
986
|
+
// the lsn → batch-end mapping can be durably recorded before streaming.
|
|
987
|
+
lsn, endLsn, tableKeyColumns, excludedColumns, columnTypeOids) {
|
|
877
988
|
const ts = nowMicros();
|
|
878
|
-
const lsn = nextLsn();
|
|
879
989
|
// collect all encoded messages into a list, then batch-write
|
|
880
990
|
// to minimize syscalls (each writer.write → socket.write is a syscall)
|
|
881
991
|
const messages = [];
|
|
@@ -950,7 +1060,6 @@ async function streamChanges(changes, writer, sentRelations, txId, tableKeyColum
|
|
|
950
1060
|
messages.push(encodeWrappedChange(lsn, lsn, ts, changeMsg));
|
|
951
1061
|
}
|
|
952
1062
|
// COMMIT
|
|
953
|
-
const endLsn = nextLsn();
|
|
954
1063
|
messages.push(encodeWrappedChange(endLsn, endLsn, ts, encodeCommit(0, lsn, endLsn, ts)));
|
|
955
1064
|
// The MessagePort-backed socket delivers each write as one readable chunk.
|
|
956
1065
|
// zero-cache parses one replication payload per chunk, so each CopyData frame
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/replication/handler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/replication/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* embed restart contract — generation-begin resource reclamation.
|
|
3
|
+
*
|
|
4
|
+
* zero-cache is designed for process-per-worker lifecycles: workers never
|
|
5
|
+
* close every sqlite handle on drain because process death reclaims them
|
|
6
|
+
* (e.g. the syncer's MutagenService keeps the replica open, DatabaseStorage
|
|
7
|
+
* tmp dbs are never closed, and `runUntilKilled` fires service `stop()`s
|
|
8
|
+
* without awaiting them). an embed runs all workers in one isolate, and on
|
|
9
|
+
* Cloudflare the isolate (module state included) survives an idle-hibernation
|
|
10
|
+
* teardown — so a second embed generation inherits every handle the dead
|
|
11
|
+
* generation leaked, and boot wedges (observed: SQLITE_BUSY on the replica's
|
|
12
|
+
* `journal_mode` switch in node; silent replicator→change-streamer handoff
|
|
13
|
+
* to a dead generation on CF).
|
|
14
|
+
*
|
|
15
|
+
* the contract: starting a new embed generation proves the previous one is
|
|
16
|
+
* dead, so the embed reclaims at START exactly what process death would have
|
|
17
|
+
* reclaimed — no more, no less. every sqlite handle zero-cache opens is
|
|
18
|
+
* registered in `globalThis.__orez_open_sqlite_dbs` at the platform's native
|
|
19
|
+
* seam (node: a pure-tracking patch in zqlite's Database, see
|
|
20
|
+
* zero-sqlite-handle-patch.ts; CF: the DO sqlite shim registers its own
|
|
21
|
+
* instances), and `sweepLeakedSqliteHandles()` closes the leftovers. doing
|
|
22
|
+
* this at start (not stop) also covers generations that crashed without
|
|
23
|
+
* running stop(), exactly like a process supervisor restarting a dead worker.
|
|
24
|
+
*/
|
|
25
|
+
interface CloseableDb {
|
|
26
|
+
close(): unknown;
|
|
27
|
+
}
|
|
28
|
+
/** the cross-module registry of open zero-cache sqlite handles. */
|
|
29
|
+
export declare function openSqliteHandleRegistry(): Set<CloseableDb>;
|
|
30
|
+
/**
|
|
31
|
+
* close every sqlite handle a previous embed generation left open.
|
|
32
|
+
* returns the number of handles closed.
|
|
33
|
+
*/
|
|
34
|
+
export declare function sweepLeakedSqliteHandles(): number;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=embed-generation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embed-generation.d.ts","sourceRoot":"","sources":["../../src/worker/embed-generation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,UAAU,WAAW;IACnB,KAAK,IAAI,OAAO,CAAA;CACjB;AAED,mEAAmE;AACnE,wBAAgB,wBAAwB,IAAI,GAAG,CAAC,WAAW,CAAC,CAE3D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAcjD"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* embed restart contract — generation-begin resource reclamation.
|
|
3
|
+
*
|
|
4
|
+
* zero-cache is designed for process-per-worker lifecycles: workers never
|
|
5
|
+
* close every sqlite handle on drain because process death reclaims them
|
|
6
|
+
* (e.g. the syncer's MutagenService keeps the replica open, DatabaseStorage
|
|
7
|
+
* tmp dbs are never closed, and `runUntilKilled` fires service `stop()`s
|
|
8
|
+
* without awaiting them). an embed runs all workers in one isolate, and on
|
|
9
|
+
* Cloudflare the isolate (module state included) survives an idle-hibernation
|
|
10
|
+
* teardown — so a second embed generation inherits every handle the dead
|
|
11
|
+
* generation leaked, and boot wedges (observed: SQLITE_BUSY on the replica's
|
|
12
|
+
* `journal_mode` switch in node; silent replicator→change-streamer handoff
|
|
13
|
+
* to a dead generation on CF).
|
|
14
|
+
*
|
|
15
|
+
* the contract: starting a new embed generation proves the previous one is
|
|
16
|
+
* dead, so the embed reclaims at START exactly what process death would have
|
|
17
|
+
* reclaimed — no more, no less. every sqlite handle zero-cache opens is
|
|
18
|
+
* registered in `globalThis.__orez_open_sqlite_dbs` at the platform's native
|
|
19
|
+
* seam (node: a pure-tracking patch in zqlite's Database, see
|
|
20
|
+
* zero-sqlite-handle-patch.ts; CF: the DO sqlite shim registers its own
|
|
21
|
+
* instances), and `sweepLeakedSqliteHandles()` closes the leftovers. doing
|
|
22
|
+
* this at start (not stop) also covers generations that crashed without
|
|
23
|
+
* running stop(), exactly like a process supervisor restarting a dead worker.
|
|
24
|
+
*/
|
|
25
|
+
/** the cross-module registry of open zero-cache sqlite handles. */
|
|
26
|
+
export function openSqliteHandleRegistry() {
|
|
27
|
+
return (globalThis.__orez_open_sqlite_dbs ??= new Set());
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* close every sqlite handle a previous embed generation left open.
|
|
31
|
+
* returns the number of handles closed.
|
|
32
|
+
*/
|
|
33
|
+
export function sweepLeakedSqliteHandles() {
|
|
34
|
+
const dbs = openSqliteHandleRegistry();
|
|
35
|
+
let closed = 0;
|
|
36
|
+
// close() deregisters itself from the set — iterate over a copy
|
|
37
|
+
for (const db of [...dbs]) {
|
|
38
|
+
try {
|
|
39
|
+
db.close();
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// a handle that errors on close is as dead as process exit leaves it
|
|
43
|
+
}
|
|
44
|
+
closed++;
|
|
45
|
+
}
|
|
46
|
+
dbs.clear();
|
|
47
|
+
return closed;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=embed-generation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embed-generation.js","sourceRoot":"","sources":["../../src/worker/embed-generation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAMH,mEAAmE;AACnE,MAAM,UAAU,wBAAwB;IACtC,OAAO,CAAE,UAAkB,CAAC,sBAAsB,KAAK,IAAI,GAAG,EAAe,CAAC,CAAA;AAChF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB;IACtC,MAAM,GAAG,GAAG,wBAAwB,EAAE,CAAA;IACtC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,gEAAgE;IAChE,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;QACvE,CAAC;QACD,MAAM,EAAE,CAAA;IACV,CAAC;IACD,GAAG,CAAC,KAAK,EAAE,CAAA;IACX,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* embed-local SQL backend: serves the DoBackend HTTP protocol (/exec, /batch,
|
|
3
|
+
* /commit-tx, /rollback-tx) directly against the Durable Object's OWN SQLite
|
|
4
|
+
* storage, with no cross-DO hop.
|
|
5
|
+
*
|
|
6
|
+
* zero-cache's CVR and change DBs are private state of the view-syncer /
|
|
7
|
+
* change-streamer running inside ZeroCacheDO — nothing else reads them. wiring
|
|
8
|
+
* their pg sessions to the remote ZeroSqlDO turned every CVR statement into a
|
|
9
|
+
* cross-DO HTTP round-trip (~270 POST /exec per IDE hydration measured live);
|
|
10
|
+
* keeping them local makes those statements synchronous storage calls while
|
|
11
|
+
* the DoBackend pg semantics stay byte-identical (same SQL translation, same
|
|
12
|
+
* tx journal, same endpoints).
|
|
13
|
+
*
|
|
14
|
+
* the upstream `postgres` db must NOT use this backend: it is shared with the
|
|
15
|
+
* app worker and lives in ZeroSqlDO.
|
|
16
|
+
*/
|
|
17
|
+
export interface LocalDoSqlite {
|
|
18
|
+
exec(sql: string, ...params: unknown[]): {
|
|
19
|
+
toArray(): Array<Record<string, unknown>>;
|
|
20
|
+
columnNames?: string[];
|
|
21
|
+
};
|
|
22
|
+
transactionSync<T>(fn: () => T): T;
|
|
23
|
+
}
|
|
24
|
+
export interface LocalSqlBackend {
|
|
25
|
+
/** drop-in for DoBackend's `fetch` option. */
|
|
26
|
+
fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
|
|
27
|
+
/**
|
|
28
|
+
* roll back every journaled transaction left by a dead process generation.
|
|
29
|
+
* safe whenever the caller is the storage's only client and no transaction
|
|
30
|
+
* of its own is open (e.g. embed boot, before any pg session exists).
|
|
31
|
+
*/
|
|
32
|
+
recoverOrphanedTransactions(): string[];
|
|
33
|
+
}
|
|
34
|
+
export declare function createLocalSqlBackend(storage: unknown): LocalSqlBackend;
|
|
35
|
+
//# sourceMappingURL=local-sql-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-sql-backend.d.ts","sourceRoot":"","sources":["../../src/worker/local-sql-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAUH,MAAM,WAAW,aAAa;IAC5B,IAAI,CACF,GAAG,EAAE,MAAM,EACX,GAAG,MAAM,EAAE,OAAO,EAAE,GACnB;QACD,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;QACzC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;KACvB,CAAA;IACD,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IACtE;;;;OAIG;IACH,2BAA2B,IAAI,MAAM,EAAE,CAAA;CACxC;AAQD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe,CAoGvE"}
|