@peerbit/shared-log 13.2.24 → 13.2.26

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 (81) hide show
  1. package/dist/src/checked-prune.d.ts +12 -0
  2. package/dist/src/checked-prune.d.ts.map +1 -1
  3. package/dist/src/checked-prune.js +33 -0
  4. package/dist/src/checked-prune.js.map +1 -1
  5. package/dist/src/coordinate-persistence.d.ts +211 -0
  6. package/dist/src/coordinate-persistence.d.ts.map +1 -0
  7. package/dist/src/coordinate-persistence.js +1133 -0
  8. package/dist/src/coordinate-persistence.js.map +1 -0
  9. package/dist/src/errors.d.ts +1 -0
  10. package/dist/src/errors.d.ts.map +1 -1
  11. package/dist/src/errors.js +19 -0
  12. package/dist/src/errors.js.map +1 -1
  13. package/dist/src/index.d.ts +127 -133
  14. package/dist/src/index.d.ts.map +1 -1
  15. package/dist/src/index.js +1400 -4269
  16. package/dist/src/index.js.map +1 -1
  17. package/dist/src/instance-lifecycle.d.ts +117 -0
  18. package/dist/src/instance-lifecycle.d.ts.map +1 -0
  19. package/dist/src/instance-lifecycle.js +254 -0
  20. package/dist/src/instance-lifecycle.js.map +1 -0
  21. package/dist/src/join-warmup.d.ts +86 -0
  22. package/dist/src/join-warmup.d.ts.map +1 -0
  23. package/dist/src/join-warmup.js +351 -0
  24. package/dist/src/join-warmup.js.map +1 -0
  25. package/dist/src/native-write-through-block-store.d.ts +123 -0
  26. package/dist/src/native-write-through-block-store.d.ts.map +1 -0
  27. package/dist/src/native-write-through-block-store.js +989 -0
  28. package/dist/src/native-write-through-block-store.js.map +1 -0
  29. package/dist/src/peer-session.d.ts +117 -0
  30. package/dist/src/peer-session.d.ts.map +1 -0
  31. package/dist/src/peer-session.js +259 -0
  32. package/dist/src/peer-session.js.map +1 -0
  33. package/dist/src/replication-announcement.d.ts +116 -0
  34. package/dist/src/replication-announcement.d.ts.map +1 -0
  35. package/dist/src/replication-announcement.js +515 -0
  36. package/dist/src/replication-announcement.js.map +1 -0
  37. package/dist/src/replicator-liveness.d.ts +59 -0
  38. package/dist/src/replicator-liveness.d.ts.map +1 -0
  39. package/dist/src/replicator-liveness.js +304 -0
  40. package/dist/src/replicator-liveness.js.map +1 -0
  41. package/dist/src/sync/dispatch-lifecycle.d.ts +48 -0
  42. package/dist/src/sync/dispatch-lifecycle.d.ts.map +1 -0
  43. package/dist/src/sync/dispatch-lifecycle.js +141 -0
  44. package/dist/src/sync/dispatch-lifecycle.js.map +1 -0
  45. package/dist/src/sync/factory.d.ts +29 -0
  46. package/dist/src/sync/factory.d.ts.map +1 -0
  47. package/dist/src/sync/factory.js +87 -0
  48. package/dist/src/sync/factory.js.map +1 -0
  49. package/dist/src/sync/pending-sync-store.d.ts +105 -0
  50. package/dist/src/sync/pending-sync-store.d.ts.map +1 -0
  51. package/dist/src/sync/pending-sync-store.js +877 -0
  52. package/dist/src/sync/pending-sync-store.js.map +1 -0
  53. package/dist/src/sync/rateless-iblt.d.ts +4 -1
  54. package/dist/src/sync/rateless-iblt.d.ts.map +1 -1
  55. package/dist/src/sync/rateless-iblt.js +102 -106
  56. package/dist/src/sync/rateless-iblt.js.map +1 -1
  57. package/dist/src/sync/simple.d.ts +10 -41
  58. package/dist/src/sync/simple.d.ts.map +1 -1
  59. package/dist/src/sync/simple.js +259 -952
  60. package/dist/src/sync/simple.js.map +1 -1
  61. package/dist/src/sync/sync-peer-state.d.ts +16 -0
  62. package/dist/src/sync/sync-peer-state.d.ts.map +1 -0
  63. package/dist/src/sync/sync-peer-state.js +82 -0
  64. package/dist/src/sync/sync-peer-state.js.map +1 -0
  65. package/package.json +12 -12
  66. package/src/checked-prune.ts +35 -0
  67. package/src/coordinate-persistence.ts +1796 -0
  68. package/src/errors.ts +21 -0
  69. package/src/index.ts +4014 -7858
  70. package/src/instance-lifecycle.ts +351 -0
  71. package/src/join-warmup.ts +507 -0
  72. package/src/native-write-through-block-store.ts +1170 -0
  73. package/src/peer-session.ts +336 -0
  74. package/src/replication-announcement.ts +744 -0
  75. package/src/replicator-liveness.ts +439 -0
  76. package/src/sync/dispatch-lifecycle.ts +230 -0
  77. package/src/sync/factory.ts +154 -0
  78. package/src/sync/pending-sync-store.ts +1085 -0
  79. package/src/sync/rateless-iblt.ts +122 -132
  80. package/src/sync/simple.ts +334 -1144
  81. package/src/sync/sync-peer-state.ts +107 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-sync-store.js","sourceRoot":"","sources":["../../../src/sync/pending-sync-store.ts"],"names":[],"mappings":"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"}
@@ -154,9 +154,10 @@ export declare class RatelessIBLTSynchronizer<D extends "u32" | "u64"> implement
154
154
  outgoingSyncProcesses: Map<string, OutgoingRatelessSyncProcess>;
155
155
  private outgoingSyncProcessByTarget;
156
156
  private ratelessDispatchLifecycleController;
157
- private ratelessDispatchTargets;
157
+ private readonly ratelessDispatchRegistry;
158
158
  private activeRatelessResponseCount;
159
159
  private activeRatelessResponseCountByPeer;
160
+ private readonly ratelessPeerSlotRows;
160
161
  private ratelessClosed;
161
162
  constructor(properties: SynchronizerComponents<D>);
162
163
  private get maxConvergentTrackedHashes();
@@ -197,6 +198,8 @@ export declare class RatelessIBLTSynchronizer<D extends "u32" | "u64"> implement
197
198
  private onMaybeMissingEntriesWithLifecycle;
198
199
  private startOutgoingRatelessSyncForTarget;
199
200
  private consumeAuthorizedRatelessResponse;
201
+ private getOrCreateRatelessResponseSlotRow;
202
+ private detachRatelessResponseSlotRow;
200
203
  onMessage(message: TransportMessage, context: RequestContext): Promise<boolean>;
201
204
  onReceivedEntries(properties: {
202
205
  entries: EntryWithRefs<any>[];
@@ -1 +1 @@
1
- {"version":3,"file":"rateless-iblt.d.ts","sourceRoot":"","sources":["../../../src/sync/rateless-iblt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rateless-iblt.d.ts","sourceRoot":"","sources":["../../../src/sync/rateless-iblt.ts"],"names":[],"mappings":"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"}
@@ -42,8 +42,10 @@ import { SilentDelivery } from "@peerbit/stream-interface";
42
42
  import {} from "../exchange-heads.js";
43
43
  import { TransportMessage } from "../message.js";
44
44
  import {} from "../ranges.js";
45
+ import { DispatchLifecycleRegistry, isOwnershipGenerationActive, isTrackedSessionActive, } from "./dispatch-lifecycle.js";
45
46
  import { emitSyncProfileDuration, emitSyncProfileEvent, syncProfileStart, } from "./profile.js";
46
47
  import { ResponseMaybeSync, ResponseMaybeSyncCapabilities, SYNC_MESSAGE_PRIORITY, SimpleSyncronizer, } from "./simple.js";
48
+ import { SyncPeerSlotRegistry, } from "./sync-peer-state.js";
47
49
  export const logger = loggerFn("peerbit:shared-log:rateless");
48
50
  const coerceBigInt = (value) => typeof value === "bigint" ? value : BigInt(value);
49
51
  let SymbolSerialized = (() => {
@@ -668,9 +670,15 @@ export class RatelessIBLTSynchronizer {
668
670
  outgoingSyncProcesses;
669
671
  outgoingSyncProcessByTarget;
670
672
  ratelessDispatchLifecycleController;
671
- ratelessDispatchTargets;
673
+ ratelessDispatchRegistry;
672
674
  activeRatelessResponseCount;
673
675
  activeRatelessResponseCountByPeer;
676
+ // Per-peer slot rows for active rateless responses (shared registry; see
677
+ // sync-peer-state.ts for the lifetime policy). Release closures capture
678
+ // the row: disconnect returns current-generation quota and logical
679
+ // ownership immediately, while the global physical permit remains charged
680
+ // until the shipment actually settles.
681
+ ratelessPeerSlotRows;
674
682
  ratelessClosed;
675
683
  constructor(properties) {
676
684
  this.properties = properties;
@@ -680,9 +688,19 @@ export class RatelessIBLTSynchronizer {
680
688
  this.outgoingSyncProcesses = new Map();
681
689
  this.outgoingSyncProcessByTarget = new Map();
682
690
  this.ratelessDispatchLifecycleController = new AbortController();
683
- this.ratelessDispatchTargets = new Map();
691
+ this.ratelessDispatchRegistry = new DispatchLifecycleRegistry({
692
+ isClosed: () => this.ratelessClosed,
693
+ currentOwnershipLifecycleController: () => this.ratelessDispatchLifecycleController,
694
+ hasRetainedWork: (lifecycle) => [...lifecycle.targets.values()].some((target) => target.retainedByProcess || target.responseLeases > 0),
695
+ // Target-activity strategy: set membership in the active-target
696
+ // registry (rateless target lifecycles carry no epochs).
697
+ isTargetCurrent: (targetLifecycle) => this.ratelessDispatchRegistry.activeTargets
698
+ .get(targetLifecycle.target)
699
+ ?.has(targetLifecycle) === true,
700
+ });
684
701
  this.activeRatelessResponseCount = 0;
685
702
  this.activeRatelessResponseCountByPeer = new Map();
703
+ this.ratelessPeerSlotRows = new SyncPeerSlotRegistry();
686
704
  this.ratelessClosed = false;
687
705
  this.ingoingSyncProcesses = new Map();
688
706
  this.incomingRatelessProcessAdmissions = new Set();
@@ -723,13 +741,15 @@ export class RatelessIBLTSynchronizer {
723
741
  return scored.map((x) => x.entry);
724
742
  }
725
743
  isRatelessRepairSessionActive(session) {
726
- return (!this.ratelessClosed &&
727
- !session.cancelled &&
728
- !session.controller.signal.aborted &&
729
- !session.ownershipLifecycleController.signal.aborted &&
730
- session.ownershipLifecycleController ===
731
- this.ratelessDispatchLifecycleController &&
732
- this.ratelessRepairSessions.get(session.id) === session);
744
+ return isTrackedSessionActive({
745
+ closed: this.ratelessClosed,
746
+ cancelled: session.cancelled,
747
+ sessionController: session.controller,
748
+ ownershipLifecycleController: session.ownershipLifecycleController,
749
+ currentOwnershipLifecycleController: this.ratelessDispatchLifecycleController,
750
+ session,
751
+ registered: this.ratelessRepairSessions.get(session.id),
752
+ });
733
753
  }
734
754
  cancelRatelessRepairSession(session, reason = new Error("rateless repair session cancelled")) {
735
755
  if (session.cancelled) {
@@ -1099,102 +1119,39 @@ export class RatelessIBLTSynchronizer {
1099
1119
  dispatchFinished: false,
1100
1120
  disposed: false,
1101
1121
  };
1102
- for (const target of [...new Set(targets)]) {
1103
- const targetLifecycle = {
1104
- lifecycle,
1105
- target,
1106
- controller: new AbortController(),
1107
- retainedByProcess: false,
1108
- responseLeases: 0,
1109
- };
1110
- lifecycle.targets.set(target, targetLifecycle);
1111
- let activeForTarget = this.ratelessDispatchTargets.get(target);
1112
- if (!activeForTarget) {
1113
- activeForTarget = new Set();
1114
- this.ratelessDispatchTargets.set(target, activeForTarget);
1115
- }
1116
- activeForTarget.add(targetLifecycle);
1117
- }
1118
- ownershipLifecycleController.signal.addEventListener("abort", lifecycle.onOwnerOrCallerAbort, { once: true });
1119
- if (callerSignal && callerSignal !== ownershipLifecycleController.signal) {
1120
- callerSignal.addEventListener("abort", lifecycle.onOwnerOrCallerAbort, {
1121
- once: true,
1122
- });
1123
- }
1124
- if (this.ratelessClosed ||
1125
- ownershipLifecycleController !==
1126
- this.ratelessDispatchLifecycleController ||
1127
- ownershipLifecycleController.signal.aborted ||
1128
- callerSignal?.aborted) {
1129
- lifecycle.onOwnerOrCallerAbort();
1130
- }
1122
+ this.ratelessDispatchRegistry.register(lifecycle, targets, (forLifecycle, target) => ({
1123
+ lifecycle: forLifecycle,
1124
+ target,
1125
+ controller: new AbortController(),
1126
+ retainedByProcess: false,
1127
+ responseLeases: 0,
1128
+ }));
1131
1129
  return lifecycle;
1132
1130
  }
1133
1131
  abortRatelessDispatchTarget(targetLifecycle, reason) {
1134
- if (!targetLifecycle.controller.signal.aborted) {
1135
- targetLifecycle.controller.abort(reason);
1136
- }
1137
- this.maybeDisposeRatelessDispatchLifecycle(targetLifecycle.lifecycle);
1132
+ this.ratelessDispatchRegistry.abortTarget(targetLifecycle, reason);
1138
1133
  }
1139
1134
  abortRatelessDispatchLifecycle(lifecycle, reason) {
1140
- if (!lifecycle.controller.signal.aborted) {
1141
- lifecycle.controller.abort(reason);
1142
- }
1143
- for (const targetLifecycle of lifecycle.targets.values()) {
1144
- this.abortRatelessDispatchTarget(targetLifecycle, reason);
1145
- }
1146
- this.maybeDisposeRatelessDispatchLifecycle(lifecycle);
1135
+ this.ratelessDispatchRegistry.abortLifecycle(lifecycle, reason);
1147
1136
  }
1148
1137
  finishRatelessDispatchLifecycle(lifecycle) {
1149
- lifecycle.dispatchFinished = true;
1150
- this.maybeDisposeRatelessDispatchLifecycle(lifecycle);
1138
+ this.ratelessDispatchRegistry.finish(lifecycle);
1151
1139
  }
1152
1140
  maybeDisposeRatelessDispatchLifecycle(lifecycle) {
1153
- if (lifecycle.disposed ||
1154
- !lifecycle.dispatchFinished ||
1155
- [...lifecycle.targets.values()].some((target) => target.retainedByProcess || target.responseLeases > 0)) {
1156
- return;
1157
- }
1158
- lifecycle.disposed = true;
1159
- lifecycle.ownershipLifecycleController.signal.removeEventListener("abort", lifecycle.onOwnerOrCallerAbort);
1160
- if (lifecycle.callerSignal &&
1161
- lifecycle.callerSignal !== lifecycle.ownershipLifecycleController.signal) {
1162
- lifecycle.callerSignal.removeEventListener("abort", lifecycle.onOwnerOrCallerAbort);
1163
- }
1164
- for (const targetLifecycle of lifecycle.targets.values()) {
1165
- const activeForTarget = this.ratelessDispatchTargets.get(targetLifecycle.target);
1166
- activeForTarget?.delete(targetLifecycle);
1167
- if (activeForTarget?.size === 0) {
1168
- this.ratelessDispatchTargets.delete(targetLifecycle.target);
1169
- }
1170
- }
1141
+ this.ratelessDispatchRegistry.maybeDispose(lifecycle);
1171
1142
  }
1172
1143
  isRatelessDispatchLifecycleActive(lifecycle, target) {
1173
- if (this.ratelessClosed ||
1174
- lifecycle.disposed ||
1175
- lifecycle.ownershipLifecycleController !==
1176
- this.ratelessDispatchLifecycleController ||
1177
- lifecycle.ownershipLifecycleController.signal.aborted ||
1178
- lifecycle.callerSignal?.aborted ||
1179
- lifecycle.controller.signal.aborted) {
1180
- return false;
1181
- }
1182
- if (target === undefined) {
1183
- return true;
1184
- }
1185
- const targetLifecycle = lifecycle.targets.get(target);
1186
- return (targetLifecycle !== undefined &&
1187
- !targetLifecycle.controller.signal.aborted &&
1188
- this.ratelessDispatchTargets.get(target)?.has(targetLifecycle) === true);
1144
+ return this.ratelessDispatchRegistry.isLifecycleActive(lifecycle, target);
1189
1145
  }
1190
1146
  getIncomingSyncProcessKey(sender, syncId) {
1191
1147
  return `${sender.length}:${sender}${syncId}`;
1192
1148
  }
1193
1149
  isIncomingSyncGenerationActive(ownershipLifecycleController) {
1194
- return (!this.ratelessClosed &&
1195
- ownershipLifecycleController ===
1196
- this.ratelessDispatchLifecycleController &&
1197
- !ownershipLifecycleController.signal.aborted);
1150
+ return isOwnershipGenerationActive({
1151
+ closed: this.ratelessClosed,
1152
+ ownershipLifecycleController,
1153
+ currentOwnershipLifecycleController: this.ratelessDispatchLifecycleController,
1154
+ });
1198
1155
  }
1199
1156
  isIncomingSyncProcessActive(process) {
1200
1157
  return (this.isIncomingSyncGenerationActive(process.ownershipLifecycleController) &&
@@ -1806,37 +1763,72 @@ export class RatelessIBLTSynchronizer {
1806
1763
  }
1807
1764
  const targetLifecycle = process.targetLifecycle;
1808
1765
  targetLifecycle.responseLeases += 1;
1766
+ const slotRow = this.getOrCreateRatelessResponseSlotRow(target);
1767
+ slotRow.active += 1;
1809
1768
  this.activeRatelessResponseCount += 1;
1810
1769
  this.activeRatelessResponseCountByPeer.set(target, (this.activeRatelessResponseCountByPeer.get(target) ?? 0) + 1);
1811
- let released = false;
1770
+ let logicalReleased = false;
1771
+ let physicalReleased = false;
1772
+ const releaseLogical = () => {
1773
+ if (logicalReleased) {
1774
+ return;
1775
+ }
1776
+ logicalReleased = true;
1777
+ slotRow.activeReleases.delete(releaseLogical);
1778
+ targetLifecycle.responseLeases -= 1;
1779
+ this.maybeDisposeRatelessDispatchLifecycle(targetLifecycle.lifecycle);
1780
+ };
1781
+ slotRow.activeReleases.add(releaseLogical);
1812
1782
  return {
1813
1783
  process,
1814
1784
  authorized,
1815
1785
  remaining,
1816
1786
  signal: targetLifecycle.controller.signal,
1817
1787
  release: (options) => {
1818
- if (released) {
1788
+ if (physicalReleased) {
1819
1789
  return;
1820
1790
  }
1821
- released = true;
1822
- if (options?.rollback) {
1823
- for (const hash of authorized) {
1824
- process.consumedResponseHashes.delete(hash);
1825
- }
1826
- }
1827
- targetLifecycle.responseLeases -= 1;
1828
- this.activeRatelessResponseCount -= 1;
1829
- const activeForPeer = (this.activeRatelessResponseCountByPeer.get(target) ?? 1) - 1;
1830
- if (activeForPeer === 0) {
1831
- this.activeRatelessResponseCountByPeer.delete(target);
1791
+ physicalReleased = true;
1792
+ try {
1793
+ releaseLogical();
1832
1794
  }
1833
- else {
1834
- this.activeRatelessResponseCountByPeer.set(target, activeForPeer);
1795
+ finally {
1796
+ if (options?.rollback) {
1797
+ for (const hash of authorized) {
1798
+ process.consumedResponseHashes.delete(hash);
1799
+ }
1800
+ }
1801
+ this.activeRatelessResponseCount -= 1;
1802
+ slotRow.active -= 1;
1803
+ if (slotRow.attached) {
1804
+ const activeForPeer = (this.activeRatelessResponseCountByPeer.get(target) ?? 1) - 1;
1805
+ if (activeForPeer === 0) {
1806
+ this.activeRatelessResponseCountByPeer.delete(target);
1807
+ }
1808
+ else {
1809
+ this.activeRatelessResponseCountByPeer.set(target, activeForPeer);
1810
+ }
1811
+ this.ratelessPeerSlotRows.maybeDropIdle(slotRow);
1812
+ }
1835
1813
  }
1836
- this.maybeDisposeRatelessDispatchLifecycle(targetLifecycle.lifecycle);
1837
1814
  },
1838
1815
  };
1839
1816
  }
1817
+ getOrCreateRatelessResponseSlotRow(peer) {
1818
+ return this.ratelessPeerSlotRows.ensure(peer);
1819
+ }
1820
+ detachRatelessResponseSlotRow(peer) {
1821
+ const row = this.ratelessPeerSlotRows.detach(peer);
1822
+ if (!row) {
1823
+ return;
1824
+ }
1825
+ this.activeRatelessResponseCountByPeer.delete(peer);
1826
+ // Release logical lifecycle ownership immediately. Each underlying
1827
+ // shipment retains its global physical-work permit until its own finally.
1828
+ for (const releaseLogical of [...row.activeReleases]) {
1829
+ releaseLogical();
1830
+ }
1831
+ }
1840
1832
  async onMessage(message, context) {
1841
1833
  const profile = this.properties.sync?.profile;
1842
1834
  if (message instanceof StartSync) {
@@ -2628,10 +2620,14 @@ export class RatelessIBLTSynchronizer {
2628
2620
  }
2629
2621
  }
2630
2622
  for (const targetLifecycle of [
2631
- ...(this.ratelessDispatchTargets.get(target) ?? []),
2623
+ ...(this.ratelessDispatchRegistry.activeTargets.get(target) ?? []),
2632
2624
  ]) {
2633
2625
  this.abortRatelessDispatchTarget(targetLifecycle, new Error("rateless sync target disconnected"));
2634
2626
  }
2627
+ // A response ship for this peer may never settle. Detach current-generation
2628
+ // quota and logical ownership, but keep its global physical permit charged
2629
+ // until settlement. open() likewise preserves physical accounting.
2630
+ this.detachRatelessResponseSlotRow(target);
2635
2631
  return this.simple.onPeerDisconnected(target);
2636
2632
  }
2637
2633
  open() {