@optimystic/db-p2p 0.18.0 → 0.20.0

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 (37) hide show
  1. package/dist/src/cluster/cluster-repo.d.ts.map +1 -1
  2. package/dist/src/cluster/cluster-repo.js +7 -0
  3. package/dist/src/cluster/cluster-repo.js.map +1 -1
  4. package/dist/src/libp2p-key-network.d.ts +52 -4
  5. package/dist/src/libp2p-key-network.d.ts.map +1 -1
  6. package/dist/src/libp2p-key-network.js +80 -17
  7. package/dist/src/libp2p-key-network.js.map +1 -1
  8. package/dist/src/libp2p-node-base.d.ts.map +1 -1
  9. package/dist/src/libp2p-node-base.js +23 -15
  10. package/dist/src/libp2p-node-base.js.map +1 -1
  11. package/dist/src/repo/coordinator-repo.d.ts +28 -2
  12. package/dist/src/repo/coordinator-repo.d.ts.map +1 -1
  13. package/dist/src/repo/coordinator-repo.js +113 -60
  14. package/dist/src/repo/coordinator-repo.js.map +1 -1
  15. package/dist/src/repo/service.d.ts.map +1 -1
  16. package/dist/src/repo/service.js +10 -1
  17. package/dist/src/repo/service.js.map +1 -1
  18. package/dist/src/storage/storage-repo.d.ts.map +1 -1
  19. package/dist/src/storage/storage-repo.js +21 -3
  20. package/dist/src/storage/storage-repo.js.map +1 -1
  21. package/dist/src/testing/index.d.ts +0 -1
  22. package/dist/src/testing/index.d.ts.map +1 -1
  23. package/dist/src/testing/index.js +7 -1
  24. package/dist/src/testing/index.js.map +1 -1
  25. package/dist/src/testing/mesh-harness.d.ts +7 -0
  26. package/dist/src/testing/mesh-harness.d.ts.map +1 -1
  27. package/dist/src/testing/mesh-harness.js +13 -3
  28. package/dist/src/testing/mesh-harness.js.map +1 -1
  29. package/package.json +8 -2
  30. package/src/cluster/cluster-repo.ts +7 -0
  31. package/src/libp2p-key-network.ts +958 -857
  32. package/src/libp2p-node-base.ts +23 -14
  33. package/src/repo/coordinator-repo.ts +138 -62
  34. package/src/repo/service.ts +10 -1
  35. package/src/storage/storage-repo.ts +23 -4
  36. package/src/testing/index.ts +7 -1
  37. package/src/testing/mesh-harness.ts +19 -3
@@ -1,4 +1,4 @@
1
- import { LruMap, blockIdsForTransforms, DEFAULT_SUPER_MAJORITY_THRESHOLD } from "@optimystic/db-core";
1
+ import { LruMap, blockIdsForTransforms, highestStaleAt, DEFAULT_SUPER_MAJORITY_THRESHOLD } from "@optimystic/db-core";
2
2
  import { ClusterCoordinator, ValidatorRejectionError } from "./cluster-coordinator.js";
3
3
  import { peerIdFromString } from "@libp2p/peer-id";
4
4
  import { createLogger } from '../logger.js';
@@ -7,6 +7,8 @@ import { quorumSize, corroboratorCapacity, selectQuorumRev } from "../cluster/qu
7
7
  import { RECONCILE_TIMEOUT_MS } from "../cluster/reconcile-block.js";
8
8
  import { isMissingBaseRevisionFailure, MISSING_BASE_REVISION_REASON } from "../storage/storage-repo.js";
9
9
  const log = createLogger('coordinator-repo');
10
+ /** How long one cohort peer gets to answer the latest-revision consult before it counts as silent. */
11
+ const LATEST_QUERY_TIMEOUT_MS = 1000;
10
12
  /** True when a freshly-read local revision is strictly ahead of the baseline the repair started from. */
11
13
  function isAdvanceOver(rev, baselineRev) {
12
14
  return typeof rev === 'number' && (baselineRev === undefined || rev > baselineRev);
@@ -25,22 +27,6 @@ function withDeadline(promise, ms, label) {
25
27
  clearTimeout(timer);
26
28
  });
27
29
  }
28
- /**
29
- * Resolve `undefined` if `promise` has not settled within `ms` — a slow peer is skipped, not an
30
- * error. Same timer discipline as {@link withDeadline}: one repair pass races this once per cohort
31
- * peer, so leaving the handles pending would keep the event loop alive for the full timeout after
32
- * every peer has already answered.
33
- */
34
- function withTimeout(promise, ms) {
35
- let timer;
36
- const expiry = new Promise(resolve => {
37
- timer = setTimeout(() => resolve(undefined), ms);
38
- });
39
- return Promise.race([promise, expiry]).finally(() => {
40
- if (timer !== undefined)
41
- clearTimeout(timer);
42
- });
43
- }
44
30
  export function coordinatorRepo(keyNetwork, createClusterClient, cfg, fretService, reputation, stateStore) {
45
31
  return (components) => new CoordinatorRepo(keyNetwork, createClusterClient, components.storageRepo, cfg, components.localCluster, components.localPeerId, fretService, components.clusterLatestCallback, reputation, stateStore, components.acquireBlockFromCohort);
46
32
  }
@@ -211,7 +197,8 @@ export class CoordinatorRepo {
211
197
  // NOTE: NetworkTransactor.get treats an authoritative "absent" ({ state: {} })
212
198
  // as final and no longer retries it (ticket txn-perf-authoritative-notfound),
213
199
  // relying on this cluster reconciliation to have already run. When the consult
214
- // runs and FAILS, the entry is flagged `unavailable: 'peers-unreachable'` below,
200
+ // FAILS outright — or runs while part of the cohort stays SILENT and the block
201
+ // stays missing — the entry is flagged `unavailable: 'peers-unreachable'` below,
215
202
  // which re-enables the transactor-level retry against a different peer. If a
216
203
  // coordinator is configured WITHOUT clusterLatestCallback, there is no cohort to
217
204
  // consult and the local answer IS the whole truth — it stays authoritative, with
@@ -235,7 +222,7 @@ export class CoordinatorRepo {
235
222
  });
236
223
  }
237
224
  try {
238
- await this.fetchBlockFromCluster(blockId, blockGets.context, localRev);
225
+ const { inconclusive } = await this.fetchBlockFromCluster(blockId, blockGets.context, localRev);
239
226
  const refreshed = await this.storageRepo.get({ blockIds: [blockId], context: blockGets.context }, options);
240
227
  const newRev = refreshed[blockId]?.state?.latest?.rev;
241
228
  if (refreshed[blockId]) {
@@ -249,32 +236,43 @@ export class CoordinatorRepo {
249
236
  log('cluster-tx:read-repair-noop', { blockId });
250
237
  }
251
238
  }
239
+ // The consult ran but came back INCONCLUSIVE (a silent cohort peer, or a
240
+ // corroborated revision this node could not acquire — see
241
+ // fetchBlockFromCluster). Either way the reader cannot rule the block out,
242
+ // so a still-missing block must not pose as an authoritative absent. When
243
+ // the whole cohort answers "holds nothing" the absent stays authoritative —
244
+ // the new-collection probe against a healthy cohort stays one round-trip.
245
+ if (isMissing && inconclusive) {
246
+ this.flagUnconfirmedAbsence(localResult, blockId);
247
+ }
252
248
  }
253
249
  catch (err) {
254
250
  log('cluster-fetch:error', { blockId, error: err.message });
255
251
  // The consult that was supposed to make this answer trustworthy did not run.
256
- // Only a locally-MISSING block is downgraded to `unavailable`: a merely-stale
257
- // block still has a real local answer and stays authoritative. A sharper flag
258
- // already on the entry (storage's 'unmaterializable') is never overwritten.
259
- // NOTE: a consult that runs but corroborates nothing (per-peer timeouts and
260
- // "peer holds nothing" both surface as absent claims → no quorum) does NOT
261
- // land here and stays an authoritative absent — the common new-collection
262
- // probe against a healthy cohort takes exactly that path, and the callback
263
- // contract cannot distinguish the two without counting responders.
264
252
  if (isMissing) {
265
- const entry = localResult[blockId];
266
- if (!entry) {
267
- localResult[blockId] = { state: {}, unavailable: 'peers-unreachable' };
268
- }
269
- else if (entry.unavailable === undefined) {
270
- entry.unavailable = 'peers-unreachable';
271
- }
253
+ this.flagUnconfirmedAbsence(localResult, blockId);
272
254
  }
273
255
  }
274
256
  }
275
257
  }
276
258
  return localResult;
277
259
  }
260
+ /**
261
+ * Downgrade an absence the coordinator could not confirm to `unavailable: 'peers-unreachable'` —
262
+ * the flag `NetworkTransactor.get` retries against another peer instead of taking as final.
263
+ *
264
+ * No-op once the entry carries a real answer (the consult restored the block) or a sharper flag
265
+ * (storage's `'unmaterializable'`), so callers only need to establish that the answer is a guess.
266
+ */
267
+ flagUnconfirmedAbsence(results, blockId) {
268
+ const entry = results[blockId];
269
+ if (!entry) {
270
+ results[blockId] = { state: {}, unavailable: 'peers-unreachable' };
271
+ }
272
+ else if (!entry.state?.latest && entry.unavailable === undefined) {
273
+ entry.unavailable = 'peers-unreachable';
274
+ }
275
+ }
278
276
  /** Decide whether the read-repair policy wants us to consult the cluster for a present-but-possibly-stale block. */
279
277
  shouldReadRepair(blockId) {
280
278
  switch (this.readRepairMode) {
@@ -316,15 +314,23 @@ export class CoordinatorRepo {
316
314
  * One repair pass for a block: ask the cohort what it holds, and converge onto that if it is
317
315
  * ahead of `localRev` — the revision the caller's read already loaded, and the baseline every
318
316
  * decision below is measured against.
317
+ *
318
+ * Returns the one thing `get` needs beyond the storage side effects: whether the pass was
319
+ * INCONCLUSIVE — it neither confirmed the cohort holds nothing nor left this node holding the
320
+ * block. Two ways that happens: a cohort peer other than this node stayed SILENT (rejected
321
+ * callback or per-peer deadline), or a revision WAS corroborated and the convergence onto it
322
+ * failed. In both, `get` has learned that its local absence may be wrong, so it must not report
323
+ * a still-missing block as an authoritative absent. Paths that consult nobody (no cohort,
324
+ * solo-self) are conclusive: there, the local answer genuinely is the whole truth.
319
325
  */
320
326
  async fetchBlockFromCluster(blockId, context, localRev) {
321
327
  if (!this.clusterLatestCallback)
322
- return;
328
+ return { inconclusive: false };
323
329
  const blockIdBytes = new TextEncoder().encode(blockId);
324
330
  const peers = await this.keyNetwork.findCluster(blockIdBytes);
325
331
  const peerIds = peers ? Object.keys(peers) : [];
326
332
  if (peerIds.length === 0)
327
- return;
333
+ return { inconclusive: false };
328
334
  // Solo-cluster short-circuit: the only responsible peer is us. There is no
329
335
  // remote to sync from, so skip the callback entirely. Querying ourselves
330
336
  // would dial self via SyncClient — pointless at best, and on nodes without
@@ -333,13 +339,17 @@ export class CoordinatorRepo {
333
339
  && this.localPeerId
334
340
  && peerIds[0] === this.localPeerId.toString()) {
335
341
  log('cluster-fetch:solo-self-skip', { blockId });
336
- return;
342
+ return { inconclusive: false };
337
343
  }
338
- const { corroborated, local } = await this.queryClusterForLatest(peerIds, blockId, context);
344
+ const { corroborated, local, silent } = await this.queryClusterForLatest(peerIds, blockId, context);
345
+ // Any silence flags the WHOLE consult, not a fraction of it (fail-closed): one silent
346
+ // peer could be the sole holder, and the cost — an extra transactor-level retry against
347
+ // another coordinator — is paid only while a peer is actually unreachable.
348
+ const cohortSilent = silent.length > 0;
339
349
  // Nothing corroborated: keep local data AND stay eligible for repair — marking the
340
350
  // block seen here would suppress the next attempt for the whole read-repair window.
341
351
  if (!corroborated)
342
- return;
352
+ return { inconclusive: cohortSilent };
343
353
  // The self answer is the sharper baseline (same storage, same context, read alongside the
344
354
  // cohort's), but it exists only when `findCluster` returned this node. A soft serve for a
345
355
  // block this node is no longer responsible for is absent from its own cohort view, so fall
@@ -360,7 +370,7 @@ export class CoordinatorRepo {
360
370
  if (baselineRev !== undefined && corroborated.rev <= baselineRev) {
361
371
  log('cluster-fetch:local-current', { blockId, localRev: baselineRev, clusterRev: corroborated.rev });
362
372
  this.markBlocksSeen([blockId]);
363
- return;
373
+ return { inconclusive: cohortSilent };
364
374
  }
365
375
  // Corroborated revision is ahead of ours — converge onto it.
366
376
  const rev = await this.restoreCorroborated(blockId, corroborated, baselineRev, peerIds);
@@ -373,6 +383,10 @@ export class CoordinatorRepo {
373
383
  else {
374
384
  log('cluster-fetch:not-restored', { blockId, localRev: baselineRev, clusterRev: corroborated.rev });
375
385
  }
386
+ // A corroborated revision this node failed to converge onto is inconclusive in its own right,
387
+ // even with the whole cohort answering: the reader has just been TOLD the block exists, so
388
+ // reporting it absent would be a lie of the same kind a silent peer causes (see `get`).
389
+ const inconclusive = cohortSilent || rev === undefined;
376
390
  // The block is marked seen either way — the cohort DID answer, so its freshness was checked,
377
391
  // which is what the read-repair window tracks. A failed convergence therefore waits out the
378
392
  // window before retrying.
@@ -384,6 +398,7 @@ export class CoordinatorRepo {
384
398
  // it ever shows as read amplification, gate the acquisition step (not the latest-query) on the
385
399
  // same window rather than widening `isMissing`.
386
400
  this.markBlocksSeen([blockId]);
401
+ return { inconclusive };
387
402
  }
388
403
  /**
389
404
  * Bring this node up to the cohort-corroborated `corroborated`, returning the revision it holds
@@ -492,12 +507,18 @@ export class CoordinatorRepo {
492
507
  * `debt-read-repair-commit-cert-verification`.
493
508
  */
494
509
  async queryClusterForLatest(peerIds, blockId, context) {
495
- // Query peers in parallel for their latest revision (with 1s timeout per peer),
496
- // tagging each response with the peer that made it so votes stay distinct.
510
+ // Query peers in parallel for their latest revision. Each query is DEADLINED (rejects), not
511
+ // raced-to-undefined: a peer that blows the deadline lands in the silent set below exactly
512
+ // like a dial failure, because a slow peer and a peer claiming "I hold nothing" must produce
513
+ // different answers (ticket cluster-read-consult-cannot-report-unreachable).
514
+ // NOTE: LATEST_QUERY_TIMEOUT_MS is a LAN-shaped budget. A cohort whose round trip honestly
515
+ // exceeds it now reads as permanently silent, which is safe (the read is flagged, not
516
+ // mis-reported) but makes every miss cost a transactor-level retry. If a WAN deployment shows
517
+ // steady `cluster-fetch:peers-silent` against healthy peers, raise this rather than softening
518
+ // the deadline back into an absent claim.
497
519
  const latestResults = await Promise.allSettled(peerIds.map(async (peerIdStr) => {
498
520
  const peerId = peerIdFromString(peerIdStr);
499
- const value = await withTimeout(this.clusterLatestCallback(peerId, blockId, context), 1000);
500
- return { peerIdStr, value };
521
+ return await withDeadline(this.clusterLatestCallback(peerId, blockId, context), LATEST_QUERY_TIMEOUT_MS, `latest query to ${peerIdStr}`);
501
522
  }));
502
523
  // NOTE: self-exclusion is keyed on `localPeerId`, which is optional for the single-node/test
503
524
  // construction this class has always tolerated. Left unset, this node's own answer is counted
@@ -507,16 +528,32 @@ export class CoordinatorRepo {
507
528
  const selfId = this.localPeerId?.toString();
508
529
  let local;
509
530
  const claims = [];
510
- for (const result of latestResults) {
511
- if (result.status !== 'fulfilled' || !result.value.value)
531
+ const silent = [];
532
+ // `allSettled` preserves input order, so results correlate to `peerIds` by index — a
533
+ // rejected entry carries no payload of its own, and its peer id is what `silent` records.
534
+ for (let i = 0; i < latestResults.length; i++) {
535
+ const result = latestResults[i];
536
+ const peerIdStr = peerIds[i];
537
+ if (result.status !== 'fulfilled') {
538
+ // Silence: the callback rejected or the deadline expired. Never a claim. Self is
539
+ // excluded — its short-circuit reads local storage, and a local read error is not a
540
+ // cohort peer being unreachable.
541
+ if (peerIdStr !== selfId)
542
+ silent.push(peerIdStr);
512
543
  continue;
513
- const { peerIdStr, value } = result.value;
544
+ }
545
+ const value = result.value;
514
546
  if (peerIdStr === selfId) {
515
547
  local = value;
516
548
  continue;
517
549
  }
550
+ if (!value)
551
+ continue; // responded, holds nothing — an absent claim, not silence
518
552
  claims.push({ peerId: peerIdStr, rev: value.rev, actionId: value.actionId });
519
553
  }
554
+ if (silent.length > 0) {
555
+ log('cluster-fetch:peers-silent', { blockId, silent: silent.length, consulted: peerIds.length });
556
+ }
520
557
  const capacity = corroboratorCapacity(peerIds.filter(id => id !== selfId).length, this.repairCorroborationClusterSize);
521
558
  const selected = selectQuorumRev(claims, this.simpleMajorityThreshold, capacity);
522
559
  if (!selected) {
@@ -525,13 +562,13 @@ export class CoordinatorRepo {
525
562
  responders: claims.length,
526
563
  required: quorumSize(claims.length, this.simpleMajorityThreshold, capacity)
527
564
  });
528
- return { local };
565
+ return { local, silent };
529
566
  }
530
567
  // Best-effort: penalize peers whose claim contradicts the corroborated pair
531
568
  // (an inflated rev the quorum outvoted, or conflicting content at the agreed
532
569
  // rev). A lower rev is just lag, never penalized. Never let this throw.
533
570
  this.penalizeContradictingRevClaims(claims, selected, blockId);
534
- return { corroborated: { actionId: selected.actionId, rev: selected.rev }, local };
571
+ return { corroborated: { actionId: selected.actionId, rev: selected.rev }, local, silent };
535
572
  }
536
573
  /**
537
574
  * Report peers whose reported latest contradicts the quorum-corroborated pair. Best-effort.
@@ -625,7 +662,8 @@ export class CoordinatorRepo {
625
662
  * genuine validation faults.
626
663
  */
627
664
  async classifyStaleRejection(error, request, blockIds) {
628
- if (!(error instanceof ValidatorRejectionError) || request.rev === undefined)
665
+ const requestedRev = request.rev;
666
+ if (!(error instanceof ValidatorRejectionError) || requestedRev === undefined)
629
667
  return undefined;
630
668
  let results;
631
669
  try {
@@ -638,21 +676,36 @@ export class CoordinatorRepo {
638
676
  });
639
677
  return undefined;
640
678
  }
641
- for (const blockId of blockIds) {
679
+ // Scan EVERY block rather than stopping at the first confirmation: several of the request's
680
+ // blocks can be past the requested revision at different revisions, and it is the highest
681
+ // that the loser's next request has to clear (see `highestStaleAt`). Both the reported
682
+ // number and the reason prose name that block, so they never disagree.
683
+ const staleAt = highestStaleAt(blockIds.map(blockId => {
642
684
  const latest = results[blockId]?.state.latest;
643
- if (latest && latest.rev >= request.rev) {
644
- log('coordinator-repo:pend-stale-classified', {
645
- actionId: request.actionId,
646
- blockId,
647
- latestRev: latest.rev,
648
- requestedRev: request.rev
649
- });
650
- return { success: false, conflict: true, reason: `stale revision: block ${blockId} at rev ${latest.rev}, requested rev ${request.rev}` };
651
- }
685
+ return latest && latest.rev >= requestedRev ? { blockId, rev: latest.rev } : undefined;
686
+ }));
687
+ if (staleAt) {
688
+ log('coordinator-repo:pend-stale-classified', {
689
+ actionId: request.actionId,
690
+ blockId: staleAt.blockId,
691
+ latestRev: staleAt.rev,
692
+ requestedRev
693
+ });
694
+ return {
695
+ success: false,
696
+ conflict: true,
697
+ reason: `stale revision: block ${staleAt.blockId} at rev ${staleAt.rev}, requested rev ${requestedRev}`,
698
+ // The same fact as the reason prose, but as data. This is the ONLY place a losing
699
+ // writer can learn the revision it lost to, since this failure deliberately carries
700
+ // no `missing`. Confirmed-local: read out of our own storage just above.
701
+ staleAt
702
+ };
652
703
  }
653
704
  // NOTE: conservative — when only remote members saw the newer revision (local storage still
654
705
  // behind), staleness can't be confirmed locally and the rejection stays a throw. If that
655
706
  // shows up in practice, extend confirmation with a quorum read; never trust the reject text.
707
+ // `staleAt` is absent on this path for the same reason, and deliberately so — there is no
708
+ // confirmed number to report, and the field's contract forbids inferring one from that text.
656
709
  return undefined;
657
710
  }
658
711
  async cancel(actionRef, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator-repo.js","sourceRoot":"","sources":["../../../src/repo/coordinator-repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordinator-repo.js","sourceRoot":"","sources":["../../../src/repo/coordinator-repo.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/repo/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/repo/service.ts"],"names":[],"mappings":"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"}
@@ -195,7 +195,16 @@ export class RepoService {
195
195
  response = redirect;
196
196
  }
197
197
  else if ('get' in operation) {
198
- response = await this.repo.get(operation.get, { expiration: message.expiration, skipClusterFetch: true });
198
+ // No `skipClusterFetch` here: a read on this protocol comes from ANOTHER node, so
199
+ // it must reach `CoordinatorRepo`'s cohort consult — answering a bare absent for
200
+ // a block a cohort peer holds is an authoritative lie the transactor never
201
+ // retries. Only the sync protocol keeps the flag (`sync/service.ts`, where the
202
+ // consult itself lands), and that is what stops the recursion.
203
+ // NOTE: this also puts lazy read-repair on remote reads of locally-present blocks
204
+ // — one consult per block per `readRepairWindowMs`, damped by a 1000-entry LRU of
205
+ // block ids. If a working set wider than that LRU ever shows a consult on every
206
+ // read, widen the LRU rather than reinstating the skip.
207
+ response = await this.repo.get(operation.get, { expiration: message.expiration });
199
208
  }
200
209
  else if ('pend' in operation) {
201
210
  response = await this.repo.pend(operation.pend, { expiration: message.expiration });
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/repo/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/repo/service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage-repo.d.ts","sourceRoot":"","sources":["../../../src/storage/storage-repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage-repo.d.ts","sourceRoot":"","sources":["../../../src/storage/storage-repo.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Latches, transformForBlockId, applyTransform, groupBy, concatTransform, emptyTransforms, blockIdsForTransforms, transformsFromTransform } from "@optimystic/db-core";
1
+ import { Latches, transformForBlockId, applyTransform, groupBy, concatTransform, emptyTransforms, blockIdsForTransforms, transformsFromTransform, highestStaleAt } from "@optimystic/db-core";
2
2
  import { asyncIteratorToArray } from "../it-utility.js";
3
3
  import { createLogger } from "../logger.js";
4
4
  const log = createLogger('storage-repo');
@@ -342,6 +342,10 @@ export class StorageRepo {
342
342
  log('pend actionId=%s blockIds=%d rev=%s', request.actionId, blockIds.length, request.rev);
343
343
  const pendings = [];
344
344
  const missing = [];
345
+ // Highest revision this node confirms holding among the blocks that are at or past the
346
+ // requested one — reported as StaleFailure.staleAt so a losing writer learns the number
347
+ // instead of parsing prose. Confirmed-local only: we read it from our own storage below.
348
+ let staleAt;
345
349
  // Potential race condition: A concurrent commit operation could complete
346
350
  // between the conflict checks (latest.rev, listPendingTransactions) and the
347
351
  // savePendingTransaction call below. This pend operation might succeed based on
@@ -359,6 +363,13 @@ export class StorageRepo {
359
363
  if (request.rev !== undefined || transforms.insert) {
360
364
  const latest = await blockStorage.getLatest();
361
365
  if (latest && latest.rev >= (request.rev ?? 0)) {
366
+ // Only a real revision race yields a meaningful `staleAt`. When `request.rev` is
367
+ // undefined this same branch fires for an insert collision (the comparison degrades
368
+ // to `latest.rev >= 0`, true for any existing block), and reporting that block's
369
+ // revision would be a number that answers a question nobody asked.
370
+ if (request.rev !== undefined) {
371
+ staleAt = highestStaleAt([staleAt, { blockId, rev: latest.rev }]);
372
+ }
362
373
  const transforms = await asyncIteratorToArray(blockStorage.listRevisions(request.rev ?? 0, latest.rev));
363
374
  for (const actionRev of transforms) {
364
375
  const transform = await blockStorage.getTransaction(actionRev.actionId);
@@ -379,7 +390,8 @@ export class StorageRepo {
379
390
  return {
380
391
  success: false,
381
392
  conflict: true,
382
- missing
393
+ missing,
394
+ ...(staleAt === undefined ? {} : { staleAt })
383
395
  };
384
396
  }
385
397
  if (pendings.length > 0) {
@@ -457,6 +469,10 @@ export class StorageRepo {
457
469
  // - toCommit: latest.rev < request.rev or no latest yet → run internalCommit.
458
470
  const toCommit = [];
459
471
  const missedCommits = [];
472
+ // Highest revision among the blocks confirmed lost to a newer one — reported as
473
+ // StaleFailure.staleAt. The idempotent-retry `continue` below is a no-op, not a loss,
474
+ // so it never seeds this.
475
+ let staleAt;
460
476
  for (const entry of blockStorages) {
461
477
  const { blockId, storage } = entry;
462
478
  const latest = await storage.getLatest();
@@ -465,6 +481,7 @@ export class StorageRepo {
465
481
  // Idempotent no-op for this block — already committed with this exact (actionId, rev).
466
482
  continue;
467
483
  }
484
+ staleAt = highestStaleAt([staleAt, { blockId, rev: latest.rev }]);
468
485
  const transforms = [];
469
486
  for await (const actionRev of storage.listRevisions(request.rev, latest.rev)) {
470
487
  const transform = await storage.getTransaction(actionRev.actionId);
@@ -486,7 +503,8 @@ export class StorageRepo {
486
503
  log('commit:stale actionId=%s missed=%d', request.actionId, missedCommits.length);
487
504
  return {
488
505
  success: false,
489
- missing: perBlockActionTransformsToPerAction(missedCommits)
506
+ missing: perBlockActionTransformsToPerAction(missedCommits),
507
+ ...(staleAt === undefined ? {} : { staleAt })
490
508
  };
491
509
  }
492
510
  // Check for missing pending actions only on blocks that still need to commit.