orez 0.2.5 → 0.2.7
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/bench/serial-mutations.bench.js +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -4
- package/dist/config.js.map +1 -1
- package/dist/pg-proxy.d.ts.map +1 -1
- package/dist/pg-proxy.js +74 -140
- package/dist/pg-proxy.js.map +1 -1
- package/dist/worker/shims/node-stub.d.ts +5 -0
- package/dist/worker/shims/node-stub.d.ts.map +1 -1
- package/dist/worker/shims/node-stub.js +3 -0
- package/dist/worker/shims/node-stub.js.map +1 -1
- package/package.json +4 -4
- package/src/bench/serial-mutations.bench.ts +1 -1
- package/src/config.ts +1 -5
- package/src/integration/integration.test.ts +1 -1
- package/src/integration/replication-latency.test.ts +1 -1
- package/src/integration/restore-live-stress.test.ts +1 -1
- package/src/pg-proxy.ts +72 -153
- package/src/worker/shims/node-stub.ts +3 -0
|
@@ -10,7 +10,7 @@ import WebSocket from 'ws';
|
|
|
10
10
|
import { startZeroLite } from '../index.js';
|
|
11
11
|
import { ensureTablesInPublications, installAllowAllPermissions, } from '../integration/test-permissions.js';
|
|
12
12
|
import { installChangeTracking } from '../replication/change-tracker.js';
|
|
13
|
-
const SYNC_PROTOCOL_VERSION =
|
|
13
|
+
const SYNC_PROTOCOL_VERSION = 49;
|
|
14
14
|
const NUM_MUTATIONS = 100;
|
|
15
15
|
// test schema
|
|
16
16
|
const CLIENT_SCHEMA = {
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -19,10 +19,7 @@ export function getConfig(overrides = {}) {
|
|
|
19
19
|
useWorkerThreads: overrides.useWorkerThreads ?? true,
|
|
20
20
|
singleDb: overrides.singleDb ?? false,
|
|
21
21
|
// singleDb shares one pglite instance for all databases — replicas make no sense
|
|
22
|
-
readReplicas:
|
|
23
|
-
? 0
|
|
24
|
-
: (overrides.readReplicas ??
|
|
25
|
-
Math.min(Math.ceil(availableParallelism() * 0.5), 4)),
|
|
22
|
+
readReplicas: overrides.readReplicas ?? 0,
|
|
26
23
|
logLevel: overrides.logLevel || process.env.OREZ_LOG_LEVEL || 'warn',
|
|
27
24
|
pgliteOptions: overrides.pgliteOptions || {},
|
|
28
25
|
zeroPublications: overrides.zeroPublications,
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AA2G9C,0CAA0C;AAC1C,MAAM,UAAU,YAAY,CAAC,MAAkB;IAC7C,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,YAAqC,EAAE;IAC/D,OAAO;QACL,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI,OAAO;QACrC,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,IAAI;QAChC,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,IAAI;QACpC,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,CAAC;QACnC,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,MAAM;QAClC,UAAU,EAAE,SAAS,CAAC,UAAU,IAAI,UAAU;QAC9C,aAAa,EAAE,SAAS,CAAC,aAAa,IAAI,EAAE;QAC5C,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,uBAAuB;QACvD,aAAa,EAAE,SAAS,CAAC,aAAa,IAAI,KAAK;QAC/C,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,IAAI,KAAK;QACvD,eAAe,EAAE,SAAS,CAAC,eAAe,IAAI,KAAK;QACnD,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,IAAI,IAAI;QACpD,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,KAAK;QACrC,iFAAiF;QACjF,YAAY,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AA2G9C,0CAA0C;AAC1C,MAAM,UAAU,YAAY,CAAC,MAAkB;IAC7C,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,YAAqC,EAAE;IAC/D,OAAO;QACL,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI,OAAO;QACrC,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,IAAI;QAChC,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,IAAI;QACpC,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,CAAC;QACnC,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,MAAM;QAClC,UAAU,EAAE,SAAS,CAAC,UAAU,IAAI,UAAU;QAC9C,aAAa,EAAE,SAAS,CAAC,aAAa,IAAI,EAAE;QAC5C,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,uBAAuB;QACvD,aAAa,EAAE,SAAS,CAAC,aAAa,IAAI,KAAK;QAC/C,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,IAAI,KAAK;QACvD,eAAe,EAAE,SAAS,CAAC,eAAe,IAAI,KAAK;QACnD,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,IAAI,IAAI;QACpD,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,KAAK;QACrC,iFAAiF;QACjF,YAAY,EAAE,SAAS,CAAC,YAAY,IAAI,CAAC;QACzC,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAK,OAAO,CAAC,GAAG,CAAC,cAA2B,IAAI,MAAM;QAClF,aAAa,EAAE,SAAS,CAAC,aAAa,IAAI,EAAE;QAC5C,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;QAC5C,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,oBAAoB,EAAE,SAAS,CAAC,oBAAoB,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;QACrE,cAAc,EAAE,SAAS,CAAC,cAAc,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;QAC3D,eAAe,EAAE,SAAS,CAAC,eAAe,IAAI,KAAK;QACnD,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;KAC/B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAsB,EAAE,MAAM,GAAG,UAAU;IAC7E,OAAO,gBAAgB,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,cAAc,MAAM,CAAC,MAAM,IAAI,MAAM,EAAE,CAAA;AAClG,CAAC"}
|
package/dist/pg-proxy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-proxy.d.ts","sourceRoot":"","sources":["../src/pg-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAgB,KAAK,MAAM,EAAe,MAAM,UAAU,CAAA;AAYjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"pg-proxy.d.ts","sourceRoot":"","sources":["../src/pg-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAgB,KAAK,MAAM,EAAe,MAAM,UAAU,CAAA;AAYjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAogBlD,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,GAAG,eAAe,EACjC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,MAAM,CAAC,CA+YjB"}
|
package/dist/pg-proxy.js
CHANGED
|
@@ -368,54 +368,27 @@ function readInt32BE(data, offset) {
|
|
|
368
368
|
(data[offset + 2] << 8) +
|
|
369
369
|
data[offset + 3]);
|
|
370
370
|
}
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
371
|
+
/**
|
|
372
|
+
* extract ReadyForQuery status byte from a response.
|
|
373
|
+
* returns the status: 'I' (0x49) idle, 'T' (0x54) in transaction, 'E' (0x45) error.
|
|
374
|
+
* returns null if no ReadyForQuery found.
|
|
375
|
+
*/
|
|
376
|
+
function getReadyForQueryStatus(data) {
|
|
376
377
|
let offset = 0;
|
|
377
|
-
let
|
|
378
|
+
let lastStatus = null;
|
|
378
379
|
while (offset < data.length) {
|
|
379
|
-
const msgType = data[offset];
|
|
380
380
|
if (offset + 5 > data.length)
|
|
381
381
|
break;
|
|
382
382
|
const msgLen = readInt32BE(data, offset + 1);
|
|
383
383
|
const totalLen = 1 + msgLen;
|
|
384
384
|
if (totalLen <= 0 || offset + totalLen > data.length)
|
|
385
385
|
break;
|
|
386
|
-
if (
|
|
387
|
-
|
|
388
|
-
if (stripRfq) {
|
|
389
|
-
stripped = true;
|
|
390
|
-
offset += totalLen;
|
|
391
|
-
continue;
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
else {
|
|
395
|
-
const code = extractNoticeCode(data, offset, totalLen);
|
|
396
|
-
if (code && SUPPRESS_NOTICE_CODES.has(code)) {
|
|
397
|
-
stripped = true;
|
|
398
|
-
offset += totalLen;
|
|
399
|
-
continue;
|
|
400
|
-
}
|
|
386
|
+
if (data[offset] === 0x5a && totalLen >= 6) {
|
|
387
|
+
lastStatus = data[offset + 5];
|
|
401
388
|
}
|
|
402
|
-
parts.push(data.subarray(offset, offset + totalLen));
|
|
403
389
|
offset += totalLen;
|
|
404
390
|
}
|
|
405
|
-
|
|
406
|
-
return { data, rfqStatus };
|
|
407
|
-
if (parts.length === 0)
|
|
408
|
-
return { data: new Uint8Array(0), rfqStatus };
|
|
409
|
-
if (parts.length === 1)
|
|
410
|
-
return { data: parts[0], rfqStatus };
|
|
411
|
-
const total = parts.reduce((sum, p) => sum + p.length, 0);
|
|
412
|
-
const result = new Uint8Array(total);
|
|
413
|
-
let pos = 0;
|
|
414
|
-
for (const p of parts) {
|
|
415
|
-
result.set(p, pos);
|
|
416
|
-
pos += p.length;
|
|
417
|
-
}
|
|
418
|
-
return { data: result, rfqStatus };
|
|
391
|
+
return lastStatus;
|
|
419
392
|
}
|
|
420
393
|
// pglite warnings to suppress (benign, but noisy)
|
|
421
394
|
// 25001: "there is already a transaction in progress"
|
|
@@ -452,9 +425,54 @@ function extractNoticeCode(data, offset, totalLen) {
|
|
|
452
425
|
}
|
|
453
426
|
return null;
|
|
454
427
|
}
|
|
455
|
-
|
|
428
|
+
/**
|
|
429
|
+
* single-pass response message filter. strips ReadyForQuery messages (when
|
|
430
|
+
* stripRfq=true) and benign transaction state warnings in one scan.
|
|
431
|
+
*/
|
|
456
432
|
function stripResponseMessages(data, stripRfq) {
|
|
457
|
-
|
|
433
|
+
if (data.length === 0)
|
|
434
|
+
return data;
|
|
435
|
+
const parts = [];
|
|
436
|
+
let offset = 0;
|
|
437
|
+
let stripped = false;
|
|
438
|
+
while (offset < data.length) {
|
|
439
|
+
const msgType = data[offset];
|
|
440
|
+
if (offset + 5 > data.length)
|
|
441
|
+
break;
|
|
442
|
+
const msgLen = readInt32BE(data, offset + 1);
|
|
443
|
+
const totalLen = 1 + msgLen;
|
|
444
|
+
if (totalLen <= 0 || offset + totalLen > data.length)
|
|
445
|
+
break;
|
|
446
|
+
// strip ReadyForQuery (0x5a) when requested
|
|
447
|
+
if (stripRfq && msgType === 0x5a) {
|
|
448
|
+
stripped = true;
|
|
449
|
+
}
|
|
450
|
+
// strip benign transaction state notices
|
|
451
|
+
else {
|
|
452
|
+
const code = extractNoticeCode(data, offset, totalLen);
|
|
453
|
+
if (code && SUPPRESS_NOTICE_CODES.has(code)) {
|
|
454
|
+
stripped = true;
|
|
455
|
+
}
|
|
456
|
+
else {
|
|
457
|
+
parts.push(data.subarray(offset, offset + totalLen));
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
offset += totalLen;
|
|
461
|
+
}
|
|
462
|
+
if (!stripped)
|
|
463
|
+
return data;
|
|
464
|
+
if (parts.length === 0)
|
|
465
|
+
return new Uint8Array(0);
|
|
466
|
+
if (parts.length === 1)
|
|
467
|
+
return parts[0];
|
|
468
|
+
const total = parts.reduce((sum, p) => sum + p.length, 0);
|
|
469
|
+
const result = new Uint8Array(total);
|
|
470
|
+
let pos = 0;
|
|
471
|
+
for (const p of parts) {
|
|
472
|
+
result.set(p, pos);
|
|
473
|
+
pos += p.length;
|
|
474
|
+
}
|
|
475
|
+
return result;
|
|
458
476
|
}
|
|
459
477
|
export async function startPgProxy(dbInput, config) {
|
|
460
478
|
// normalize input: single PGlite instance = use it for all databases (backwards compat for tests)
|
|
@@ -476,24 +494,6 @@ export async function startPgProxy(dbInput, config) {
|
|
|
476
494
|
cvr: sharedInstance ? pgMutex : new Mutex(),
|
|
477
495
|
cdb: sharedInstance ? pgMutex : new Mutex(),
|
|
478
496
|
};
|
|
479
|
-
// replica state: initialized lazily when replicas become available.
|
|
480
|
-
// instances.postgresReplicas is populated AFTER the proxy starts
|
|
481
|
-
// (replicas are created after migrations/on-db-ready run via TCP proxy).
|
|
482
|
-
const replicaMutexes = [];
|
|
483
|
-
let replicasInitialized = false;
|
|
484
|
-
let nextReplicaIdx = 0;
|
|
485
|
-
function ensureReplicaState() {
|
|
486
|
-
if (replicasInitialized)
|
|
487
|
-
return;
|
|
488
|
-
const replicas = instances.postgresReplicas;
|
|
489
|
-
if (replicas.length === 0)
|
|
490
|
-
return;
|
|
491
|
-
replicasInitialized = true;
|
|
492
|
-
for (let i = 0; i < replicas.length; i++) {
|
|
493
|
-
replicaMutexes.push(new Mutex());
|
|
494
|
-
}
|
|
495
|
-
log.proxy(`${replicas.length} postgres read replica(s) active`);
|
|
496
|
-
}
|
|
497
497
|
// per-instance transaction state: tracks which socket owns the current transaction
|
|
498
498
|
// so we can auto-ROLLBACK stale aborted transactions from other connections
|
|
499
499
|
const txStates = {
|
|
@@ -509,38 +509,6 @@ export async function startPgProxy(dbInput, config) {
|
|
|
509
509
|
return { db: instances.cdb, mutex: mutexes.cdb, txState: txStates.cdb };
|
|
510
510
|
return { db: instances.postgres, mutex: mutexes.postgres, txState: txStates.postgres };
|
|
511
511
|
}
|
|
512
|
-
/**
|
|
513
|
-
* try to acquire a read replica for a postgres SELECT query.
|
|
514
|
-
* returns null if no replicas are available or all are busy.
|
|
515
|
-
* used for per-query routing: only non-transactional SELECTs can use replicas.
|
|
516
|
-
*/
|
|
517
|
-
function tryAcquireReadReplica() {
|
|
518
|
-
ensureReplicaState();
|
|
519
|
-
const replicas = instances.postgresReplicas;
|
|
520
|
-
if (replicas.length === 0)
|
|
521
|
-
return null;
|
|
522
|
-
// round-robin with tryAcquire: find the first available replica
|
|
523
|
-
for (let i = 0; i < replicas.length; i++) {
|
|
524
|
-
const idx = (nextReplicaIdx + i) % replicas.length;
|
|
525
|
-
if (replicaMutexes[idx].tryAcquire()) {
|
|
526
|
-
nextReplicaIdx = idx + 1;
|
|
527
|
-
return { db: replicas[idx], mutex: replicaMutexes[idx] };
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
return null; // all replicas busy, fall back to primary
|
|
531
|
-
}
|
|
532
|
-
/**
|
|
533
|
-
* fan-out a write SQL to all postgres replicas.
|
|
534
|
-
* fire-and-forget — replica staleness is acceptable for a dev tool.
|
|
535
|
-
*/
|
|
536
|
-
function fanOutWriteToReplicas(sql) {
|
|
537
|
-
const replicas = instances.postgresReplicas;
|
|
538
|
-
if (replicas.length === 0)
|
|
539
|
-
return;
|
|
540
|
-
for (const replica of replicas) {
|
|
541
|
-
replica.exec(sql).catch(() => { });
|
|
542
|
-
}
|
|
543
|
-
}
|
|
544
512
|
// signal replication handler after extended protocol writes complete.
|
|
545
513
|
// 8ms leading-edge debounce: fires exactly 8ms after the FIRST write,
|
|
546
514
|
// subsequent writes within that window are batched (handler polls all
|
|
@@ -716,13 +684,11 @@ export async function startPgProxy(dbInput, config) {
|
|
|
716
684
|
const t2 = performance.now();
|
|
717
685
|
proxyStats.totalExecMs += t2 - t1;
|
|
718
686
|
proxyStats.count++;
|
|
719
|
-
//
|
|
720
|
-
const
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
txState.status = processed.rfqStatus;
|
|
725
|
-
txState.owner = processed.rfqStatus === 0x49 ? null : socket;
|
|
687
|
+
// update transaction state
|
|
688
|
+
const rfqStatus = getReadyForQueryStatus(result);
|
|
689
|
+
if (rfqStatus !== null) {
|
|
690
|
+
txState.status = rfqStatus;
|
|
691
|
+
txState.owner = rfqStatus === 0x49 ? null : socket;
|
|
726
692
|
}
|
|
727
693
|
// release mutex on Sync (end of pipeline)
|
|
728
694
|
if (msgType === 0x53) {
|
|
@@ -735,6 +701,10 @@ export async function startPgProxy(dbInput, config) {
|
|
|
735
701
|
signalWrite();
|
|
736
702
|
}
|
|
737
703
|
}
|
|
704
|
+
else {
|
|
705
|
+
// strip ReadyForQuery from non-Sync pipeline messages
|
|
706
|
+
result = stripResponseMessages(result, true);
|
|
707
|
+
}
|
|
738
708
|
if (proxyStats.count % 200 === 0) {
|
|
739
709
|
log.debug.proxy(`perf: ${proxyStats.count} ops (${proxyStats.batches} batches) | mutex ${proxyStats.totalWaitMs.toFixed(0)}ms | pglite ${proxyStats.totalExecMs.toFixed(0)}ms`);
|
|
740
710
|
}
|
|
@@ -776,33 +746,6 @@ export async function startPgProxy(dbInput, config) {
|
|
|
776
746
|
return stripResponseMessages(await inflight, false);
|
|
777
747
|
}
|
|
778
748
|
}
|
|
779
|
-
// per-query replica spillover: when the primary is busy with another query,
|
|
780
|
-
// route read-only SELECTs to an available replica instead of waiting.
|
|
781
|
-
// only for: postgres db, non-write, non-DDL, not in a transaction, primary contended.
|
|
782
|
-
if (dbName === 'postgres' &&
|
|
783
|
-
queryNorm &&
|
|
784
|
-
!isWriteNormalized(queryNorm) &&
|
|
785
|
-
!isDDLNormalized(queryNorm) &&
|
|
786
|
-
txState.status === 0x49 &&
|
|
787
|
-
mutex.isLocked // primary is busy — try spilling to replica
|
|
788
|
-
) {
|
|
789
|
-
const replica = tryAcquireReadReplica();
|
|
790
|
-
if (replica) {
|
|
791
|
-
const t1 = performance.now();
|
|
792
|
-
let result;
|
|
793
|
-
try {
|
|
794
|
-
result = await replica.db.execProtocolRaw(data, { syncToFs: false });
|
|
795
|
-
}
|
|
796
|
-
catch (err) {
|
|
797
|
-
replica.mutex.release();
|
|
798
|
-
throw err;
|
|
799
|
-
}
|
|
800
|
-
replica.mutex.release();
|
|
801
|
-
proxyStats.totalExecMs += performance.now() - t1;
|
|
802
|
-
proxyStats.count++;
|
|
803
|
-
return processResponse(result, false).data;
|
|
804
|
-
}
|
|
805
|
-
}
|
|
806
749
|
const execute = async () => {
|
|
807
750
|
const t0 = performance.now();
|
|
808
751
|
await mutex.acquire();
|
|
@@ -823,22 +766,20 @@ export async function startPgProxy(dbInput, config) {
|
|
|
823
766
|
mutex.release();
|
|
824
767
|
throw err;
|
|
825
768
|
}
|
|
769
|
+
const rfqStatus = getReadyForQueryStatus(result);
|
|
770
|
+
if (rfqStatus !== null) {
|
|
771
|
+
txState.status = rfqStatus;
|
|
772
|
+
txState.owner = rfqStatus === 0x49 ? null : socket;
|
|
773
|
+
}
|
|
826
774
|
const t2 = performance.now();
|
|
827
775
|
mutex.release();
|
|
828
|
-
// single-pass: extract tx status + strip messages
|
|
829
|
-
const doStripRfq = msgType !== 0x53 && msgType !== 0x51;
|
|
830
|
-
const processed = processResponse(result, doStripRfq);
|
|
831
|
-
if (processed.rfqStatus !== null) {
|
|
832
|
-
txState.status = processed.rfqStatus;
|
|
833
|
-
txState.owner = processed.rfqStatus === 0x49 ? null : socket;
|
|
834
|
-
}
|
|
835
776
|
proxyStats.totalWaitMs += t1 - t0;
|
|
836
777
|
proxyStats.totalExecMs += t2 - t1;
|
|
837
778
|
proxyStats.count++;
|
|
838
779
|
if (proxyStats.count % 200 === 0) {
|
|
839
780
|
log.debug.proxy(`perf: ${proxyStats.count} ops (${proxyStats.batches} batches) | mutex ${proxyStats.totalWaitMs.toFixed(0)}ms | pglite ${proxyStats.totalExecMs.toFixed(0)}ms`);
|
|
840
781
|
}
|
|
841
|
-
return
|
|
782
|
+
return result;
|
|
842
783
|
};
|
|
843
784
|
let result;
|
|
844
785
|
if (cacheable) {
|
|
@@ -861,18 +802,11 @@ export async function startPgProxy(dbInput, config) {
|
|
|
861
802
|
invalidateSchemaCache();
|
|
862
803
|
}
|
|
863
804
|
}
|
|
805
|
+
const stripRfq = msgType !== 0x53 && msgType !== 0x51;
|
|
806
|
+
result = stripResponseMessages(result, stripRfq);
|
|
864
807
|
// signal replication handler on postgres writes for instant sync
|
|
865
808
|
if (dbName === 'postgres' && queryNorm && isWriteNormalized(queryNorm)) {
|
|
866
809
|
signalReplicationChange();
|
|
867
|
-
if (queryText)
|
|
868
|
-
fanOutWriteToReplicas(queryText);
|
|
869
|
-
}
|
|
870
|
-
// fan-out DDL to replicas so schema stays in sync
|
|
871
|
-
if (dbName === 'postgres' &&
|
|
872
|
-
queryNorm &&
|
|
873
|
-
isDDLNormalized(queryNorm) &&
|
|
874
|
-
queryText) {
|
|
875
|
-
fanOutWriteToReplicas(queryText);
|
|
876
810
|
}
|
|
877
811
|
return result;
|
|
878
812
|
},
|
package/dist/pg-proxy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-proxy.js","sourceRoot":"","sources":["../src/pg-proxy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pg-proxy.js","sourceRoot":"","sources":["../src/pg-proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,11 @@ export declare function statSync(): {
|
|
|
23
23
|
};
|
|
24
24
|
export declare function writeFile(): Promise<void>;
|
|
25
25
|
export declare function readFile(): Promise<string>;
|
|
26
|
+
export declare function stat(): Promise<{
|
|
27
|
+
size: number;
|
|
28
|
+
isFile: () => false;
|
|
29
|
+
isDirectory: () => false;
|
|
30
|
+
}>;
|
|
26
31
|
export declare function fork(): void;
|
|
27
32
|
export declare function spawn(): void;
|
|
28
33
|
export declare function createServer(): Server;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-stub.d.ts","sourceRoot":"","sources":["../../../src/worker/shims/node-stub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,qBAAa,MAAM;CAAG;AAGtB,wBAAgB,UAAU,YAEzB;AACD,wBAAgB,YAAY,WAE3B;AACD,wBAAgB,aAAa,SAAK;AAClC,wBAAgB,MAAM,SAAK;AAC3B,wBAAgB,SAAS,SAAK;AAC9B,wBAAgB,QAAQ;;;;EAEvB;AAGD,wBAAgB,SAAS,kBAExB;AACD,wBAAgB,QAAQ,oBAEvB;AAGD,wBAAgB,IAAI,SAEnB;AACD,wBAAgB,KAAK,SAEpB;AAGD,wBAAgB,YAAY,WAE3B;AACD,wBAAgB,gBAAgB,SAE/B;AAGD,wBAAgB,QAAQ,WAEvB;AACD,wBAAgB,QAAQ,WAEvB;AACD,wBAAgB,MAAM,WAErB;AACD,wBAAgB,oBAAoB,WAEnC;AAGD,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,WAErD;AACD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,2BAIpC;AAGD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,UAExC;AAGD,qBAAa,OAAO;IAClB,OAAO;IACP,IAAI;IAGJ,UAAU;CACX;AAGD,wBAAgB,iBAAiB;;;EAEhC;AAGD,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,QAE/E;AAGD,wBAAgB,SAAS,CAAC,EAAE,EAAE,OAAO,WAEpC;AACD,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,UAEnC;AACD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,UAEnD;AACD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,QAGjD;AACD,wBAAgB,SAAS,CAAC,EAAE,EAAE,GAAG,OAEhC;AACD,eAAO,MAAM,KAAK;;kBAEF,OAAO;CACtB,CAAA;AAGD,wBAAgB,MAAM,SAAK;AAC3B,wBAAgB,EAAE,SAAK;AAGvB,wBAAgB,aAAa,aAE5B;AAGD,wBAAgB,QAAQ,WAEvB;AAGD,eAAO,MAAM,WAAW,aAAyB,CAAA;AACjD,eAAO,MAAM,SAAS;;;;;CAKrB,CAAA;AACD,qBAAa,mBAAmB;gBAClB,GAAG,EAAE,GAAG;IACpB,OAAO;IACP,UAAU;CACX;AAGD,qBAAa,MAAM;;CAIlB;AACD,eAAO,MAAM,YAAY,OAAO,CAAA;AAChC,eAAO,MAAM,UAAU,MAAO,CAAA;AAG9B,wBAAgB,QAAQ,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE,iBAE3C;AAGD,eAAO,MAAM,QAAQ;;;;;;;;;CAOpB,CAAA;AAGD,wBAAgB,UAAU,wDAEzB;AAGD,wBAAgB,IAAI,WAEnB;AACD,wBAAgB,OAAO,WAEtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAlEe,OAAO;;;;;;;;;;;;;;;;;;;;;;AAqEvB,wBA6CC"}
|
|
1
|
+
{"version":3,"file":"node-stub.d.ts","sourceRoot":"","sources":["../../../src/worker/shims/node-stub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,qBAAa,MAAM;CAAG;AAGtB,wBAAgB,UAAU,YAEzB;AACD,wBAAgB,YAAY,WAE3B;AACD,wBAAgB,aAAa,SAAK;AAClC,wBAAgB,MAAM,SAAK;AAC3B,wBAAgB,SAAS,SAAK;AAC9B,wBAAgB,QAAQ;;;;EAEvB;AAGD,wBAAgB,SAAS,kBAExB;AACD,wBAAgB,QAAQ,oBAEvB;AACD,wBAAgB,IAAI;;;;GAEnB;AAGD,wBAAgB,IAAI,SAEnB;AACD,wBAAgB,KAAK,SAEpB;AAGD,wBAAgB,YAAY,WAE3B;AACD,wBAAgB,gBAAgB,SAE/B;AAGD,wBAAgB,QAAQ,WAEvB;AACD,wBAAgB,QAAQ,WAEvB;AACD,wBAAgB,MAAM,WAErB;AACD,wBAAgB,oBAAoB,WAEnC;AAGD,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,WAErD;AACD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,2BAIpC;AAGD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,UAExC;AAGD,qBAAa,OAAO;IAClB,OAAO;IACP,IAAI;IAGJ,UAAU;CACX;AAGD,wBAAgB,iBAAiB;;;EAEhC;AAGD,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,QAE/E;AAGD,wBAAgB,SAAS,CAAC,EAAE,EAAE,OAAO,WAEpC;AACD,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,UAEnC;AACD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,UAEnD;AACD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,QAGjD;AACD,wBAAgB,SAAS,CAAC,EAAE,EAAE,GAAG,OAEhC;AACD,eAAO,MAAM,KAAK;;kBAEF,OAAO;CACtB,CAAA;AAGD,wBAAgB,MAAM,SAAK;AAC3B,wBAAgB,EAAE,SAAK;AAGvB,wBAAgB,aAAa,aAE5B;AAGD,wBAAgB,QAAQ,WAEvB;AAGD,eAAO,MAAM,WAAW,aAAyB,CAAA;AACjD,eAAO,MAAM,SAAS;;;;;CAKrB,CAAA;AACD,qBAAa,mBAAmB;gBAClB,GAAG,EAAE,GAAG;IACpB,OAAO;IACP,UAAU;CACX;AAGD,qBAAa,MAAM;;CAIlB;AACD,eAAO,MAAM,YAAY,OAAO,CAAA;AAChC,eAAO,MAAM,UAAU,MAAO,CAAA;AAG9B,wBAAgB,QAAQ,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE,iBAE3C;AAGD,eAAO,MAAM,QAAQ;;;;;;;;;CAOpB,CAAA;AAGD,wBAAgB,UAAU,wDAEzB;AAGD,wBAAgB,IAAI,WAEnB;AACD,wBAAgB,OAAO,WAEtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAlEe,OAAO;;;;;;;;;;;;;;;;;;;;;;AAqEvB,wBA6CC"}
|
|
@@ -32,6 +32,9 @@ export function writeFile() {
|
|
|
32
32
|
export function readFile() {
|
|
33
33
|
return Promise.resolve('');
|
|
34
34
|
}
|
|
35
|
+
export function stat() {
|
|
36
|
+
return Promise.resolve({ size: 0, isFile: () => false, isDirectory: () => false });
|
|
37
|
+
}
|
|
35
38
|
// stub for node:child_process
|
|
36
39
|
export function fork() {
|
|
37
40
|
throw new Error('fork() not available in browser');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-stub.js","sourceRoot":"","sources":["../../../src/worker/shims/node-stub.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node-stub.js","sourceRoot":"","sources":["../../../src/worker/shims/node-stub.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "orez",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.7",
|
|
4
4
|
"description": "PGlite-powered zero-sync development backend. No Docker required.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -68,14 +68,14 @@
|
|
|
68
68
|
"dependencies": {
|
|
69
69
|
"@electric-sql/pglite": "0.4.1",
|
|
70
70
|
"@electric-sql/pglite-tools": "^0.3.1",
|
|
71
|
-
"bedrock-sqlite": "0.2.
|
|
71
|
+
"bedrock-sqlite": "0.2.7",
|
|
72
72
|
"citty": "^0.2.0",
|
|
73
73
|
"pg-gateway": "0.3.0-beta.4",
|
|
74
74
|
"pgsql-parser": "^17.9.11",
|
|
75
75
|
"postgres": "^3.4.5"
|
|
76
76
|
},
|
|
77
77
|
"peerDependencies": {
|
|
78
|
-
"@rocicorp/zero": ">=0.
|
|
78
|
+
"@rocicorp/zero": ">=1.0.0",
|
|
79
79
|
"vite": ">=5"
|
|
80
80
|
},
|
|
81
81
|
"peerDependenciesMeta": {
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
}
|
|
85
85
|
},
|
|
86
86
|
"devDependencies": {
|
|
87
|
-
"@rocicorp/zero": "
|
|
87
|
+
"@rocicorp/zero": "1.2.0",
|
|
88
88
|
"@rocicorp/zero-sqlite3": "^1.0.15",
|
|
89
89
|
"@types/node": "^22.0.0",
|
|
90
90
|
"@types/ws": "^8.18.1",
|
package/src/config.ts
CHANGED
|
@@ -126,11 +126,7 @@ export function getConfig(overrides: Partial<ZeroLiteConfig> = {}): ZeroLiteConf
|
|
|
126
126
|
useWorkerThreads: overrides.useWorkerThreads ?? true,
|
|
127
127
|
singleDb: overrides.singleDb ?? false,
|
|
128
128
|
// singleDb shares one pglite instance for all databases — replicas make no sense
|
|
129
|
-
readReplicas:
|
|
130
|
-
(overrides.singleDb ?? false)
|
|
131
|
-
? 0
|
|
132
|
-
: (overrides.readReplicas ??
|
|
133
|
-
Math.min(Math.ceil(availableParallelism() * 0.5), 4)),
|
|
129
|
+
readReplicas: overrides.readReplicas ?? 0,
|
|
134
130
|
logLevel: overrides.logLevel || (process.env.OREZ_LOG_LEVEL as LogLevel) || 'warn',
|
|
135
131
|
pgliteOptions: overrides.pgliteOptions || {},
|
|
136
132
|
zeroPublications: overrides.zeroPublications,
|
package/src/pg-proxy.ts
CHANGED
|
@@ -418,62 +418,24 @@ function readInt32BE(data: Uint8Array, offset: number): number {
|
|
|
418
418
|
}
|
|
419
419
|
|
|
420
420
|
/**
|
|
421
|
-
*
|
|
422
|
-
*
|
|
423
|
-
*
|
|
421
|
+
* extract ReadyForQuery status byte from a response.
|
|
422
|
+
* returns the status: 'I' (0x49) idle, 'T' (0x54) in transaction, 'E' (0x45) error.
|
|
423
|
+
* returns null if no ReadyForQuery found.
|
|
424
424
|
*/
|
|
425
|
-
|
|
426
|
-
data: Uint8Array
|
|
427
|
-
rfqStatus: number | null
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
function processResponse(data: Uint8Array, stripRfq: boolean): ProcessedResponse {
|
|
431
|
-
if (data.length === 0) return { data, rfqStatus: null }
|
|
432
|
-
|
|
433
|
-
let rfqStatus: number | null = null
|
|
434
|
-
const parts: Uint8Array[] = []
|
|
425
|
+
function getReadyForQueryStatus(data: Uint8Array): number | null {
|
|
435
426
|
let offset = 0
|
|
436
|
-
let
|
|
437
|
-
|
|
427
|
+
let lastStatus: number | null = null
|
|
438
428
|
while (offset < data.length) {
|
|
439
|
-
const msgType = data[offset]
|
|
440
429
|
if (offset + 5 > data.length) break
|
|
441
430
|
const msgLen = readInt32BE(data, offset + 1)
|
|
442
431
|
const totalLen = 1 + msgLen
|
|
443
432
|
if (totalLen <= 0 || offset + totalLen > data.length) break
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
rfqStatus = data[offset + 5]
|
|
447
|
-
if (stripRfq) {
|
|
448
|
-
stripped = true
|
|
449
|
-
offset += totalLen
|
|
450
|
-
continue
|
|
451
|
-
}
|
|
452
|
-
} else {
|
|
453
|
-
const code = extractNoticeCode(data, offset, totalLen)
|
|
454
|
-
if (code && SUPPRESS_NOTICE_CODES.has(code)) {
|
|
455
|
-
stripped = true
|
|
456
|
-
offset += totalLen
|
|
457
|
-
continue
|
|
458
|
-
}
|
|
433
|
+
if (data[offset] === 0x5a && totalLen >= 6) {
|
|
434
|
+
lastStatus = data[offset + 5]
|
|
459
435
|
}
|
|
460
|
-
|
|
461
|
-
parts.push(data.subarray(offset, offset + totalLen))
|
|
462
436
|
offset += totalLen
|
|
463
437
|
}
|
|
464
|
-
|
|
465
|
-
if (!stripped) return { data, rfqStatus }
|
|
466
|
-
if (parts.length === 0) return { data: new Uint8Array(0), rfqStatus }
|
|
467
|
-
if (parts.length === 1) return { data: parts[0], rfqStatus }
|
|
468
|
-
|
|
469
|
-
const total = parts.reduce((sum, p) => sum + p.length, 0)
|
|
470
|
-
const result = new Uint8Array(total)
|
|
471
|
-
let pos = 0
|
|
472
|
-
for (const p of parts) {
|
|
473
|
-
result.set(p, pos)
|
|
474
|
-
pos += p.length
|
|
475
|
-
}
|
|
476
|
-
return { data: result, rfqStatus }
|
|
438
|
+
return lastStatus
|
|
477
439
|
}
|
|
478
440
|
|
|
479
441
|
/**
|
|
@@ -530,9 +492,54 @@ function extractNoticeCode(
|
|
|
530
492
|
return null
|
|
531
493
|
}
|
|
532
494
|
|
|
533
|
-
|
|
495
|
+
/**
|
|
496
|
+
* single-pass response message filter. strips ReadyForQuery messages (when
|
|
497
|
+
* stripRfq=true) and benign transaction state warnings in one scan.
|
|
498
|
+
*/
|
|
534
499
|
function stripResponseMessages(data: Uint8Array, stripRfq: boolean): Uint8Array {
|
|
535
|
-
|
|
500
|
+
if (data.length === 0) return data
|
|
501
|
+
|
|
502
|
+
const parts: Uint8Array[] = []
|
|
503
|
+
let offset = 0
|
|
504
|
+
let stripped = false
|
|
505
|
+
|
|
506
|
+
while (offset < data.length) {
|
|
507
|
+
const msgType = data[offset]
|
|
508
|
+
if (offset + 5 > data.length) break
|
|
509
|
+
const msgLen = readInt32BE(data, offset + 1)
|
|
510
|
+
const totalLen = 1 + msgLen
|
|
511
|
+
|
|
512
|
+
if (totalLen <= 0 || offset + totalLen > data.length) break
|
|
513
|
+
|
|
514
|
+
// strip ReadyForQuery (0x5a) when requested
|
|
515
|
+
if (stripRfq && msgType === 0x5a) {
|
|
516
|
+
stripped = true
|
|
517
|
+
}
|
|
518
|
+
// strip benign transaction state notices
|
|
519
|
+
else {
|
|
520
|
+
const code = extractNoticeCode(data, offset, totalLen)
|
|
521
|
+
if (code && SUPPRESS_NOTICE_CODES.has(code)) {
|
|
522
|
+
stripped = true
|
|
523
|
+
} else {
|
|
524
|
+
parts.push(data.subarray(offset, offset + totalLen))
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
offset += totalLen
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
if (!stripped) return data
|
|
532
|
+
if (parts.length === 0) return new Uint8Array(0)
|
|
533
|
+
if (parts.length === 1) return parts[0]
|
|
534
|
+
|
|
535
|
+
const total = parts.reduce((sum, p) => sum + p.length, 0)
|
|
536
|
+
const result = new Uint8Array(total)
|
|
537
|
+
let pos = 0
|
|
538
|
+
for (const p of parts) {
|
|
539
|
+
result.set(p, pos)
|
|
540
|
+
pos += p.length
|
|
541
|
+
}
|
|
542
|
+
return result
|
|
536
543
|
}
|
|
537
544
|
|
|
538
545
|
export async function startPgProxy(
|
|
@@ -562,24 +569,6 @@ export async function startPgProxy(
|
|
|
562
569
|
cdb: sharedInstance ? pgMutex : new Mutex(),
|
|
563
570
|
}
|
|
564
571
|
|
|
565
|
-
// replica state: initialized lazily when replicas become available.
|
|
566
|
-
// instances.postgresReplicas is populated AFTER the proxy starts
|
|
567
|
-
// (replicas are created after migrations/on-db-ready run via TCP proxy).
|
|
568
|
-
const replicaMutexes: Mutex[] = []
|
|
569
|
-
let replicasInitialized = false
|
|
570
|
-
let nextReplicaIdx = 0
|
|
571
|
-
|
|
572
|
-
function ensureReplicaState() {
|
|
573
|
-
if (replicasInitialized) return
|
|
574
|
-
const replicas = instances.postgresReplicas
|
|
575
|
-
if (replicas.length === 0) return
|
|
576
|
-
replicasInitialized = true
|
|
577
|
-
for (let i = 0; i < replicas.length; i++) {
|
|
578
|
-
replicaMutexes.push(new Mutex())
|
|
579
|
-
}
|
|
580
|
-
log.proxy(`${replicas.length} postgres read replica(s) active`)
|
|
581
|
-
}
|
|
582
|
-
|
|
583
572
|
// per-instance transaction state: tracks which socket owns the current transaction
|
|
584
573
|
// so we can auto-ROLLBACK stale aborted transactions from other connections
|
|
585
574
|
const txStates: Record<string, PgLiteTxState> = {
|
|
@@ -601,38 +590,6 @@ export async function startPgProxy(
|
|
|
601
590
|
return { db: instances.postgres, mutex: mutexes.postgres, txState: txStates.postgres }
|
|
602
591
|
}
|
|
603
592
|
|
|
604
|
-
/**
|
|
605
|
-
* try to acquire a read replica for a postgres SELECT query.
|
|
606
|
-
* returns null if no replicas are available or all are busy.
|
|
607
|
-
* used for per-query routing: only non-transactional SELECTs can use replicas.
|
|
608
|
-
*/
|
|
609
|
-
function tryAcquireReadReplica(): { db: PGlite; mutex: Mutex } | null {
|
|
610
|
-
ensureReplicaState()
|
|
611
|
-
const replicas = instances.postgresReplicas
|
|
612
|
-
if (replicas.length === 0) return null
|
|
613
|
-
// round-robin with tryAcquire: find the first available replica
|
|
614
|
-
for (let i = 0; i < replicas.length; i++) {
|
|
615
|
-
const idx = (nextReplicaIdx + i) % replicas.length
|
|
616
|
-
if (replicaMutexes[idx].tryAcquire()) {
|
|
617
|
-
nextReplicaIdx = idx + 1
|
|
618
|
-
return { db: replicas[idx], mutex: replicaMutexes[idx] }
|
|
619
|
-
}
|
|
620
|
-
}
|
|
621
|
-
return null // all replicas busy, fall back to primary
|
|
622
|
-
}
|
|
623
|
-
|
|
624
|
-
/**
|
|
625
|
-
* fan-out a write SQL to all postgres replicas.
|
|
626
|
-
* fire-and-forget — replica staleness is acceptable for a dev tool.
|
|
627
|
-
*/
|
|
628
|
-
function fanOutWriteToReplicas(sql: string) {
|
|
629
|
-
const replicas = instances.postgresReplicas
|
|
630
|
-
if (replicas.length === 0) return
|
|
631
|
-
for (const replica of replicas) {
|
|
632
|
-
replica.exec(sql).catch(() => {})
|
|
633
|
-
}
|
|
634
|
-
}
|
|
635
|
-
|
|
636
593
|
// signal replication handler after extended protocol writes complete.
|
|
637
594
|
// 8ms leading-edge debounce: fires exactly 8ms after the FIRST write,
|
|
638
595
|
// subsequent writes within that window are batched (handler polls all
|
|
@@ -827,13 +784,11 @@ export async function startPgProxy(
|
|
|
827
784
|
proxyStats.totalExecMs += t2 - t1
|
|
828
785
|
proxyStats.count++
|
|
829
786
|
|
|
830
|
-
//
|
|
831
|
-
const
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
txState.status = processed.rfqStatus
|
|
836
|
-
txState.owner = processed.rfqStatus === 0x49 ? null : socket
|
|
787
|
+
// update transaction state
|
|
788
|
+
const rfqStatus = getReadyForQueryStatus(result)
|
|
789
|
+
if (rfqStatus !== null) {
|
|
790
|
+
txState.status = rfqStatus
|
|
791
|
+
txState.owner = rfqStatus === 0x49 ? null : socket
|
|
837
792
|
}
|
|
838
793
|
|
|
839
794
|
// release mutex on Sync (end of pipeline)
|
|
@@ -847,6 +802,9 @@ export async function startPgProxy(
|
|
|
847
802
|
extWritePending = false
|
|
848
803
|
signalWrite()
|
|
849
804
|
}
|
|
805
|
+
} else {
|
|
806
|
+
// strip ReadyForQuery from non-Sync pipeline messages
|
|
807
|
+
result = stripResponseMessages(result, true)
|
|
850
808
|
}
|
|
851
809
|
|
|
852
810
|
if (proxyStats.count % 200 === 0) {
|
|
@@ -900,34 +858,6 @@ export async function startPgProxy(
|
|
|
900
858
|
}
|
|
901
859
|
}
|
|
902
860
|
|
|
903
|
-
// per-query replica spillover: when the primary is busy with another query,
|
|
904
|
-
// route read-only SELECTs to an available replica instead of waiting.
|
|
905
|
-
// only for: postgres db, non-write, non-DDL, not in a transaction, primary contended.
|
|
906
|
-
if (
|
|
907
|
-
dbName === 'postgres' &&
|
|
908
|
-
queryNorm &&
|
|
909
|
-
!isWriteNormalized(queryNorm) &&
|
|
910
|
-
!isDDLNormalized(queryNorm) &&
|
|
911
|
-
txState.status === 0x49 &&
|
|
912
|
-
mutex.isLocked // primary is busy — try spilling to replica
|
|
913
|
-
) {
|
|
914
|
-
const replica = tryAcquireReadReplica()
|
|
915
|
-
if (replica) {
|
|
916
|
-
const t1 = performance.now()
|
|
917
|
-
let result: Uint8Array
|
|
918
|
-
try {
|
|
919
|
-
result = await replica.db.execProtocolRaw(data, { syncToFs: false })
|
|
920
|
-
} catch (err) {
|
|
921
|
-
replica.mutex.release()
|
|
922
|
-
throw err
|
|
923
|
-
}
|
|
924
|
-
replica.mutex.release()
|
|
925
|
-
proxyStats.totalExecMs += performance.now() - t1
|
|
926
|
-
proxyStats.count++
|
|
927
|
-
return processResponse(result, false).data
|
|
928
|
-
}
|
|
929
|
-
}
|
|
930
|
-
|
|
931
861
|
const execute = async (): Promise<Uint8Array> => {
|
|
932
862
|
const t0 = performance.now()
|
|
933
863
|
await mutex.acquire()
|
|
@@ -946,17 +876,13 @@ export async function startPgProxy(
|
|
|
946
876
|
mutex.release()
|
|
947
877
|
throw err
|
|
948
878
|
}
|
|
879
|
+
const rfqStatus = getReadyForQueryStatus(result)
|
|
880
|
+
if (rfqStatus !== null) {
|
|
881
|
+
txState.status = rfqStatus
|
|
882
|
+
txState.owner = rfqStatus === 0x49 ? null : socket
|
|
883
|
+
}
|
|
949
884
|
const t2 = performance.now()
|
|
950
885
|
mutex.release()
|
|
951
|
-
|
|
952
|
-
// single-pass: extract tx status + strip messages
|
|
953
|
-
const doStripRfq = msgType !== 0x53 && msgType !== 0x51
|
|
954
|
-
const processed = processResponse(result, doStripRfq)
|
|
955
|
-
if (processed.rfqStatus !== null) {
|
|
956
|
-
txState.status = processed.rfqStatus
|
|
957
|
-
txState.owner = processed.rfqStatus === 0x49 ? null : socket
|
|
958
|
-
}
|
|
959
|
-
|
|
960
886
|
proxyStats.totalWaitMs += t1 - t0
|
|
961
887
|
proxyStats.totalExecMs += t2 - t1
|
|
962
888
|
proxyStats.count++
|
|
@@ -965,7 +891,7 @@ export async function startPgProxy(
|
|
|
965
891
|
`perf: ${proxyStats.count} ops (${proxyStats.batches} batches) | mutex ${proxyStats.totalWaitMs.toFixed(0)}ms | pglite ${proxyStats.totalExecMs.toFixed(0)}ms`
|
|
966
892
|
)
|
|
967
893
|
}
|
|
968
|
-
return
|
|
894
|
+
return result
|
|
969
895
|
}
|
|
970
896
|
|
|
971
897
|
let result: Uint8Array
|
|
@@ -988,19 +914,12 @@ export async function startPgProxy(
|
|
|
988
914
|
}
|
|
989
915
|
}
|
|
990
916
|
|
|
917
|
+
const stripRfq = msgType !== 0x53 && msgType !== 0x51
|
|
918
|
+
result = stripResponseMessages(result, stripRfq)
|
|
919
|
+
|
|
991
920
|
// signal replication handler on postgres writes for instant sync
|
|
992
921
|
if (dbName === 'postgres' && queryNorm && isWriteNormalized(queryNorm)) {
|
|
993
922
|
signalReplicationChange()
|
|
994
|
-
if (queryText) fanOutWriteToReplicas(queryText)
|
|
995
|
-
}
|
|
996
|
-
// fan-out DDL to replicas so schema stays in sync
|
|
997
|
-
if (
|
|
998
|
-
dbName === 'postgres' &&
|
|
999
|
-
queryNorm &&
|
|
1000
|
-
isDDLNormalized(queryNorm) &&
|
|
1001
|
-
queryText
|
|
1002
|
-
) {
|
|
1003
|
-
fanOutWriteToReplicas(queryText)
|
|
1004
923
|
}
|
|
1005
924
|
|
|
1006
925
|
return result
|
|
@@ -34,6 +34,9 @@ export function writeFile() {
|
|
|
34
34
|
export function readFile() {
|
|
35
35
|
return Promise.resolve('')
|
|
36
36
|
}
|
|
37
|
+
export function stat() {
|
|
38
|
+
return Promise.resolve({ size: 0, isFile: () => false, isDirectory: () => false })
|
|
39
|
+
}
|
|
37
40
|
|
|
38
41
|
// stub for node:child_process
|
|
39
42
|
export function fork() {
|