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.
Files changed (54) hide show
  1. package/dist/cf-do/tx-journal.d.ts +62 -0
  2. package/dist/cf-do/tx-journal.d.ts.map +1 -0
  3. package/dist/cf-do/tx-journal.js +163 -0
  4. package/dist/cf-do/tx-journal.js.map +1 -0
  5. package/dist/cf-do/worker.d.ts +15 -2
  6. package/dist/cf-do/worker.d.ts.map +1 -1
  7. package/dist/cf-do/worker.js +46 -8
  8. package/dist/cf-do/worker.js.map +1 -1
  9. package/dist/pg-proxy-browser.d.ts.map +1 -1
  10. package/dist/pg-proxy-browser.js +127 -15
  11. package/dist/pg-proxy-browser.js.map +1 -1
  12. package/dist/pg-proxy-do-backend.d.ts +2 -5
  13. package/dist/pg-proxy-do-backend.d.ts.map +1 -1
  14. package/dist/pg-proxy-do-backend.js +36 -63
  15. package/dist/pg-proxy-do-backend.js.map +1 -1
  16. package/dist/pg-proxy.d.ts.map +1 -1
  17. package/dist/pg-proxy.js +73 -17
  18. package/dist/pg-proxy.js.map +1 -1
  19. package/dist/replication/change-tracker.d.ts +28 -0
  20. package/dist/replication/change-tracker.d.ts.map +1 -1
  21. package/dist/replication/change-tracker.js +53 -0
  22. package/dist/replication/change-tracker.js.map +1 -1
  23. package/dist/replication/handler.d.ts +13 -0
  24. package/dist/replication/handler.d.ts.map +1 -1
  25. package/dist/replication/handler.js +145 -36
  26. package/dist/replication/handler.js.map +1 -1
  27. package/dist/worker/embed-generation.d.ts +36 -0
  28. package/dist/worker/embed-generation.d.ts.map +1 -0
  29. package/dist/worker/embed-generation.js +49 -0
  30. package/dist/worker/embed-generation.js.map +1 -0
  31. package/dist/worker/local-sql-backend.d.ts +35 -0
  32. package/dist/worker/local-sql-backend.d.ts.map +1 -0
  33. package/dist/worker/local-sql-backend.js +106 -0
  34. package/dist/worker/local-sql-backend.js.map +1 -0
  35. package/dist/worker/shims/fastify.d.ts +9 -0
  36. package/dist/worker/shims/fastify.d.ts.map +1 -1
  37. package/dist/worker/shims/fastify.js +12 -0
  38. package/dist/worker/shims/fastify.js.map +1 -1
  39. package/dist/worker/shims/sqlite.d.ts +0 -20
  40. package/dist/worker/shims/sqlite.d.ts.map +1 -1
  41. package/dist/worker/shims/sqlite.js +28 -0
  42. package/dist/worker/shims/sqlite.js.map +1 -1
  43. package/dist/worker/zero-cache-embed-cf.d.ts +1 -11
  44. package/dist/worker/zero-cache-embed-cf.d.ts.map +1 -1
  45. package/dist/worker/zero-cache-embed-cf.js +68 -14
  46. package/dist/worker/zero-cache-embed-cf.js.map +1 -1
  47. package/dist/worker/zero-cache-embed.d.ts.map +1 -1
  48. package/dist/worker/zero-cache-embed.js +14 -0
  49. package/dist/worker/zero-cache-embed.js.map +1 -1
  50. package/dist/zero-sqlite-handle-patch.d.ts +26 -0
  51. package/dist/zero-sqlite-handle-patch.d.ts.map +1 -0
  52. package/dist/zero-sqlite-handle-patch.js +68 -0
  53. package/dist/zero-sqlite-handle-patch.js.map +1 -0
  54. 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
- // resume from where the previous handler left off to avoid
347
- // replaying already-streamed changes after reconnect.
348
- // when client supplied a NON-ZERO LSN (i.e. this is a reconnect to an
349
- // existing slot with prior progress), bump lastStreamedWatermark to the
350
- // stream-resume floor: one below the oldest still-pending _zero_changes
351
- // row. purge-on-stream deletes delivered rows, so remaining rows were NOT
352
- // streamed jumping to the current sequence value instead (the old
353
- // behavior) silently skipped every row written while the streaming process
354
- // was down (DO teardown/eviction, page reload) and those writes never
355
- // reached the replica. `0/0` indicates "fresh slot" and must NOT trigger
356
- // this jump, otherwise we'd skip rows that legitimately need to be
357
- // streamed for the initial sync.
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 > lastStreamedWatermark) {
362
- log.debug.repl(`advancing lastStreamedWatermark ${lastStreamedWatermark} → ${resumeWm} on reconnect`);
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(`getStreamResumeWatermark failed on reconnect: ${err?.message || err}`);
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, tableKeyColumns, excludedColumns, columnTypeOids) {
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"}