@peerbit/shared-log 15.0.0 → 16.0.1

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 (53) hide show
  1. package/dist/src/checked-prune.d.ts.map +1 -1
  2. package/dist/src/checked-prune.js +12 -0
  3. package/dist/src/checked-prune.js.map +1 -1
  4. package/dist/src/index.d.ts +7 -13
  5. package/dist/src/index.d.ts.map +1 -1
  6. package/dist/src/index.js +81 -598
  7. package/dist/src/index.js.map +1 -1
  8. package/dist/src/instance-lifecycle.d.ts.map +1 -1
  9. package/dist/src/instance-lifecycle.js +9 -0
  10. package/dist/src/instance-lifecycle.js.map +1 -1
  11. package/dist/src/peer-session.d.ts.map +1 -1
  12. package/dist/src/peer-session.js +9 -0
  13. package/dist/src/peer-session.js.map +1 -1
  14. package/dist/src/pid.d.ts +0 -2
  15. package/dist/src/pid.d.ts.map +1 -1
  16. package/dist/src/pid.js +0 -5
  17. package/dist/src/pid.js.map +1 -1
  18. package/dist/src/replication-announcement.d.ts +3 -106
  19. package/dist/src/replication-announcement.d.ts.map +1 -1
  20. package/dist/src/replication-announcement.js +0 -521
  21. package/dist/src/replication-announcement.js.map +1 -1
  22. package/dist/src/replication-info-v2-receive.d.ts +14 -43
  23. package/dist/src/replication-info-v2-receive.d.ts.map +1 -1
  24. package/dist/src/replication-info-v2-receive.js +24 -199
  25. package/dist/src/replication-info-v2-receive.js.map +1 -1
  26. package/dist/src/replication-info-v2-send.d.ts +0 -1
  27. package/dist/src/replication-info-v2-send.d.ts.map +1 -1
  28. package/dist/src/replication-info-v2-send.js +0 -6
  29. package/dist/src/replication-info-v2-send.js.map +1 -1
  30. package/dist/src/replication.d.ts +0 -1
  31. package/dist/src/replication.d.ts.map +1 -1
  32. package/dist/src/replication.js +2 -17
  33. package/dist/src/replication.js.map +1 -1
  34. package/dist/src/role.d.ts +0 -4
  35. package/dist/src/role.d.ts.map +1 -1
  36. package/dist/src/role.js +0 -9
  37. package/dist/src/role.js.map +1 -1
  38. package/dist/src/sync/factory.d.ts +0 -1
  39. package/dist/src/sync/factory.d.ts.map +1 -1
  40. package/dist/src/sync/factory.js +20 -36
  41. package/dist/src/sync/factory.js.map +1 -1
  42. package/package.json +8 -8
  43. package/src/checked-prune.ts +12 -0
  44. package/src/index.ts +104 -817
  45. package/src/instance-lifecycle.ts +9 -0
  46. package/src/peer-session.ts +9 -0
  47. package/src/pid.ts +0 -6
  48. package/src/replication-announcement.ts +8 -739
  49. package/src/replication-info-v2-receive.ts +25 -271
  50. package/src/replication-info-v2-send.ts +0 -7
  51. package/src/replication.ts +1 -20
  52. package/src/role.ts +0 -13
  53. package/src/sync/factory.ts +24 -38
@@ -1,439 +1,12 @@
1
- import { logger as loggerFn } from "@peerbit/logger";
2
- import { AcknowledgeDelivery, CONVERGENCE_MESSAGE_PRIORITY, DeliveryError, } from "@peerbit/stream-interface";
3
- import { TimeoutError, debounceFixedInterval } from "@peerbit/time";
4
- import { isNotStartedError } from "./errors.js";
5
- import { AddedReplicationSegmentMessage, AllReplicatingSegmentsMessage, StoppedReplicating, } from "./replication.js";
6
- const logger = loggerFn("peerbit:shared-log");
7
- const REPLICATION_ANNOUNCEMENT_RETRY_INTERVAL = 1000;
8
- const REPLICATION_ANNOUNCEMENT_REPAIR_INTERVAL = 1000;
9
- const REPLICATION_ANNOUNCEMENT_REPAIR_MAX_ATTEMPTS = 3;
10
- // Repair one bounded cohort per mutation generation. The subscriber snapshot
11
- // is a best-effort cache and can contain thousands of entries, so attempting
12
- // the whole cache after every role mutation would turn convergence repair into
13
- // an unbounded burst of separately signed, acknowledged messages. A cursor
14
- // retained across generations rotates best-effort coverage over later changes.
15
- const REPLICATION_ANNOUNCEMENT_REPAIR_TARGETS_PER_GENERATION = 8;
16
- /**
17
- * Replication announcements are best-effort convergence messages. A detached
18
- * fanout shard can time out even though the shared log itself remains open.
19
- * Keep retries deliberately limited to concrete TimeoutErrors: abort/close and
20
- * unexpected programming/data errors must retain their existing semantics.
21
- *
22
- * Exact constructor/name checks complement `instanceof` for errors crossing
23
- * worker or duplicate-package boundaries in browsers.
24
- */
25
- export const isTransientReplicationAnnouncementError = (error, seen = new Set()) => {
26
- if (error != null &&
27
- (typeof error === "object" || typeof error === "function")) {
28
- if (seen.has(error)) {
29
- return false;
30
- }
31
- seen.add(error);
32
- }
33
- if (error instanceof TimeoutError) {
34
- return true;
35
- }
36
- const nested = error?.errors;
37
- if (Array.isArray(nested) && nested.length > 0) {
38
- return nested.every((item) => isTransientReplicationAnnouncementError(item, new Set(seen)));
39
- }
40
- const cause = error?.cause;
41
- if (cause != null && isTransientReplicationAnnouncementError(cause, seen)) {
42
- return true;
43
- }
44
- const constructorName = typeof error?.constructor
45
- ?.name === "string"
46
- ? error.constructor.name
47
- : "";
48
- const name = typeof error?.name === "string"
49
- ? error.name
50
- : "";
51
- return constructorName === "TimeoutError" || name === "TimeoutError";
52
- };
53
- /**
54
- * Directed transport-delivery repair is allowed to retry explicit delivery
55
- * failures in addition to timeouts. A DirectStream ACK confirms receipt of the
56
- * signed envelope, not successful application by the receiver. Keep this
57
- * separate from the primary fanout classifier above so replicate() rejection
58
- * semantics remain unchanged for programming, serialization, and lifecycle
59
- * errors.
60
- */
61
- const isTransientReplicationAnnouncementRepairError = (error, seen = new Set()) => {
62
- if (error != null &&
63
- (typeof error === "object" || typeof error === "function")) {
64
- if (seen.has(error)) {
65
- return false;
66
- }
67
- seen.add(error);
68
- }
69
- if (error instanceof DeliveryError || error instanceof TimeoutError) {
70
- return true;
71
- }
72
- const nested = error?.errors;
73
- if (Array.isArray(nested) && nested.length > 0) {
74
- return nested.every((item) => isTransientReplicationAnnouncementRepairError(item, new Set(seen)));
75
- }
76
- const cause = error?.cause;
77
- if (cause != null &&
78
- isTransientReplicationAnnouncementRepairError(cause, seen)) {
79
- return true;
80
- }
81
- const constructorName = typeof error?.constructor
82
- ?.name === "string"
83
- ? error.constructor.name
84
- : "";
85
- const name = typeof error?.name === "string"
86
- ? error.name
87
- : "";
88
- return (constructorName === "DeliveryError" ||
89
- name === "DeliveryError" ||
90
- constructorName === "TimeoutError" ||
91
- name === "TimeoutError");
92
- };
93
- /**
94
- * One session per announcement window — rotated at exactly the sites that
95
- * bumped the legacy retry-generation counter: construction, resetForOpen,
96
- * cancelCurrentReplicationStateAnnouncementRetry, and the pre-send bump in
97
- * sendReplicationAnnouncement. Identity comparison replaces every numeric
98
- * generation compare. Unlike the number, identity cannot alias across open
99
- * cycles (the legacy reset-to-0 was safe only by the convention that a
100
- * companion controller check accompanied every compare site).
101
- */
102
- export class AnnouncementWorkerSession {
103
- createdAt = Date.now(); // diagnostics only
104
- }
105
- /**
106
- * The dormant legacy tail still broadcasts the retired wire classes when an
107
- * explicit compatibility open enabled it (impossible since B12 stage 1; the
108
- * tail is deleted in stage 3). Materialize the frame from the neutral
109
- * mutation locally so the tail keeps its exact byte semantics until then.
110
- */
111
- const toLegacyReplicationInfoFrame = (mutation) => {
112
- if ("full" in mutation) {
113
- return new AllReplicatingSegmentsMessage({
114
- segments: mutation.full.segments,
115
- });
116
- }
117
- if ("added" in mutation) {
118
- return new AddedReplicationSegmentMessage({
119
- segments: mutation.added.segments,
120
- });
121
- }
122
- return new StoppedReplicating({ segmentIds: mutation.stopped.segmentIds });
123
- };
124
1
  export class ReplicationAnnouncementCoordinator {
125
2
  deps;
126
- replicationAnnouncementRetryDebounced;
127
- _replicationAnnouncementRetryPending;
128
- _announcementSession;
129
- _replicationAnnouncementRetryController;
130
3
  // Publish local ownership announcements in committed mutation order. This
131
4
  // prevents an older Added message with a delayed transport completion from
132
5
  // overtaking a newer authoritative empty snapshot.
133
6
  _replicationAnnouncementSendTails;
134
- replicationAnnouncementRepairDebounced;
135
- _announcementRepairBinding;
136
- _replicationAnnouncementRepairFairCursorHash;
137
- _replicationAnnouncementRepairMaxAttempts;
138
- _replicationAnnouncementRepairController;
139
7
  constructor(deps) {
140
8
  this.deps = deps;
141
- this._replicationAnnouncementRetryPending = false;
142
- this._announcementSession = new AnnouncementWorkerSession();
143
- this._replicationAnnouncementRetryController = new AbortController();
144
9
  this._replicationAnnouncementSendTails = new WeakMap();
145
- this._announcementRepairBinding = this.createRepairBinding(this._announcementSession);
146
- this._replicationAnnouncementRepairFairCursorHash = undefined;
147
- this._replicationAnnouncementRepairMaxAttempts =
148
- REPLICATION_ANNOUNCEMENT_REPAIR_MAX_ATTEMPTS;
149
- this._replicationAnnouncementRepairController = new AbortController();
150
- }
151
- rotateAnnouncementSession() {
152
- return (this._announcementSession = new AnnouncementWorkerSession());
153
- }
154
- createRepairBinding(session) {
155
- return {
156
- session,
157
- controller: new AbortController(),
158
- pending: false,
159
- targets: new Map(),
160
- cohortSelected: false,
161
- };
162
- }
163
- resetForOpen() {
164
- this._replicationAnnouncementRetryPending = false;
165
- this.rotateAnnouncementSession();
166
- }
167
- queueCurrentReplicationStateAnnouncementRetry(error) {
168
- if (!this.deps.isLegacyReplicationInfoEnabled() ||
169
- this.deps.isClosed() ||
170
- this.deps.getCloseSignal().aborted ||
171
- this._replicationAnnouncementRetryController.signal.aborted ||
172
- !isTransientReplicationAnnouncementError(error)) {
173
- return false;
174
- }
175
- this._replicationAnnouncementRetryPending = true;
176
- void this.replicationAnnouncementRetryDebounced?.call();
177
- return true;
178
- }
179
- setupReplicationAnnouncementRetryFunction(interval = REPLICATION_ANNOUNCEMENT_RETRY_INTERVAL) {
180
- this.replicationAnnouncementRetryDebounced?.close();
181
- this._replicationAnnouncementRetryController?.abort();
182
- this._replicationAnnouncementRetryController = new AbortController();
183
- this.replicationAnnouncementRetryDebounced = debounceFixedInterval(() => this.retryCurrentReplicationStateAnnouncement(), interval, {
184
- leading: false,
185
- onError: (error) => {
186
- if (this.deps.isClosed() ||
187
- this.deps.getCloseSignal().aborted ||
188
- isNotStartedError(error)) {
189
- return;
190
- }
191
- logger.error(error);
192
- },
193
- });
194
- }
195
- setupReplicationAnnouncementRepairFunction(interval = REPLICATION_ANNOUNCEMENT_REPAIR_INTERVAL, maxAttempts = REPLICATION_ANNOUNCEMENT_REPAIR_MAX_ATTEMPTS) {
196
- if (!Number.isSafeInteger(maxAttempts) || maxAttempts <= 0) {
197
- throw new RangeError("Replication announcement repair attempts must be positive");
198
- }
199
- this.replicationAnnouncementRepairDebounced?.close();
200
- this._replicationAnnouncementRepairController?.abort();
201
- this._announcementRepairBinding?.controller.abort();
202
- this._replicationAnnouncementRepairController = new AbortController();
203
- this._announcementRepairBinding = this.createRepairBinding(this._announcementSession);
204
- this._replicationAnnouncementRepairFairCursorHash = undefined;
205
- this._replicationAnnouncementRepairMaxAttempts = maxAttempts;
206
- this.replicationAnnouncementRepairDebounced = debounceFixedInterval(() => this.runCurrentReplicationStateAnnouncementRepair(), interval, {
207
- leading: false,
208
- // The wrapper catches worker failures while it still owns the generation
209
- // context. Keep this boundary visibility-only: it must never mutate a
210
- // possibly newer generation's pending state.
211
- onError: (error) => logger.error(error),
212
- });
213
- }
214
- cancelCurrentReplicationStateAnnouncementRepair() {
215
- this._announcementRepairBinding.pending = false;
216
- this._replicationAnnouncementRepairController?.abort();
217
- this._announcementRepairBinding.controller.abort();
218
- this.replicationAnnouncementRepairDebounced?.close();
219
- this._announcementRepairBinding.targets.clear();
220
- }
221
- advanceCurrentReplicationStateAnnouncementRepairGeneration() {
222
- const session = this._announcementSession;
223
- if (session === this._announcementRepairBinding.session) {
224
- return;
225
- }
226
- // Abort acknowledged sends carrying the old full-state snapshot before the
227
- // primary announcement for the new mutation waits on transport. Otherwise a
228
- // stale batch can hold the current state behind DirectStream's seek timeout.
229
- this._announcementRepairBinding.controller.abort();
230
- this._announcementRepairBinding = this.createRepairBinding(session);
231
- }
232
- queueCurrentReplicationStateAnnouncementRepair() {
233
- if (!this.deps.isLegacyReplicationInfoEnabled() ||
234
- this.deps.isClosed() ||
235
- this.deps.getCloseSignal().aborted ||
236
- this._replicationAnnouncementRepairController.signal.aborted ||
237
- !this.replicationAnnouncementRepairDebounced) {
238
- return;
239
- }
240
- this.advanceCurrentReplicationStateAnnouncementRepairGeneration();
241
- this._announcementRepairBinding.pending = true;
242
- void this.replicationAnnouncementRepairDebounced.call();
243
- }
244
- /**
245
- * Single validity predicate for announcement-repair workers. "stale":
246
- * the store closed or a lifecycle controller aborted — exit silently.
247
- * "superseded": a newer announcement session took over — the worker
248
- * must requeue so the current session gets serviced. The binding
249
- * identity comparison stays at the one call site that historically
250
- * required it; folding it in here is a stage-5 semantic decision, not a
251
- * consolidation.
252
- */
253
- announcementRepairWorkerStatus(worker) {
254
- if (this.deps.isClosed() ||
255
- this.deps.getCloseSignal().aborted ||
256
- worker.lifecycleController.signal.aborted ||
257
- worker.binding.controller.signal.aborted) {
258
- return "stale";
259
- }
260
- if (worker.session !== this._announcementSession) {
261
- return "superseded";
262
- }
263
- return "current";
264
- }
265
- async runCurrentReplicationStateAnnouncementRepair() {
266
- const session = this._announcementSession;
267
- const lifecycleController = this._replicationAnnouncementRepairController;
268
- const binding = this._announcementRepairBinding;
269
- try {
270
- await this.repairCurrentReplicationStateAnnouncement({
271
- session,
272
- lifecycleController,
273
- binding,
274
- });
275
- }
276
- catch (error) {
277
- if (this.announcementRepairWorkerStatus({
278
- session,
279
- lifecycleController,
280
- binding,
281
- }) !== "current" ||
282
- binding !== this._announcementRepairBinding) {
283
- return;
284
- }
285
- if (isNotStartedError(error)) {
286
- return;
287
- }
288
- // Only the worker that still owns the current session may conclude
289
- // that its repair failed. A stale worker must not clear a newer call's
290
- // pending flag or attribute its error to the new session.
291
- this._announcementRepairBinding.pending = false;
292
- logger.error(error);
293
- }
294
- }
295
- async repairCurrentReplicationStateAnnouncement(context) {
296
- if (!this.deps.isLegacyReplicationInfoEnabled()) {
297
- this._announcementRepairBinding.pending = false;
298
- this._announcementRepairBinding.targets.clear();
299
- return;
300
- }
301
- if (!this._announcementRepairBinding.pending) {
302
- return;
303
- }
304
- const session = context?.session ?? this._announcementSession;
305
- const lifecycleController = context?.lifecycleController ??
306
- this._replicationAnnouncementRepairController;
307
- const binding = context?.binding ?? this._announcementRepairBinding;
308
- const segments = (await this.deps.getMyReplicationSegments()).map((range) => range.toReplicationRange());
309
- switch (this.announcementRepairWorkerStatus({
310
- session,
311
- lifecycleController,
312
- binding,
313
- })) {
314
- case "stale":
315
- return;
316
- case "superseded":
317
- this.queueCurrentReplicationStateAnnouncementRepair();
318
- return;
319
- }
320
- this.deps.validatePersistedReplicationRangeSnapshot(segments);
321
- const subscribers = (await this.deps.getSubscribers()) ?? [];
322
- switch (this.announcementRepairWorkerStatus({
323
- session,
324
- lifecycleController,
325
- binding,
326
- })) {
327
- case "stale":
328
- return;
329
- case "superseded":
330
- this.queueCurrentReplicationStateAnnouncementRepair();
331
- return;
332
- }
333
- const selfHash = this.deps.getSelfHash();
334
- const currentTargets = new Map();
335
- for (const key of subscribers) {
336
- const hash = key.hashcode();
337
- if (hash !== selfHash &&
338
- !this.deps.isBlockedPeer(hash) &&
339
- !currentTargets.has(hash)) {
340
- currentTargets.set(hash, key);
341
- }
342
- }
343
- for (const [hash, target] of this._announcementRepairBinding.targets) {
344
- if (target.session !== session || !currentTargets.has(hash)) {
345
- this._announcementRepairBinding.targets.delete(hash);
346
- }
347
- else {
348
- target.key = currentTargets.get(hash);
349
- }
350
- }
351
- if (!this._announcementRepairBinding.cohortSelected) {
352
- const candidates = [...currentTargets.entries()].sort(([left], [right]) => left.localeCompare(right));
353
- const cursorIndex = this._replicationAnnouncementRepairFairCursorHash
354
- ? candidates.findIndex(([hash]) => hash.localeCompare(this._replicationAnnouncementRepairFairCursorHash) > 0)
355
- : 0;
356
- const fairStart = cursorIndex < 0 ? 0 : cursorIndex;
357
- const fairOrder = [
358
- ...candidates.slice(fairStart),
359
- ...candidates.slice(0, fairStart),
360
- ];
361
- const cohort = fairOrder.slice(0, REPLICATION_ANNOUNCEMENT_REPAIR_TARGETS_PER_GENERATION);
362
- for (const [hash, key] of cohort) {
363
- this._announcementRepairBinding.targets.set(hash, {
364
- key,
365
- session,
366
- attempts: 0,
367
- done: false,
368
- });
369
- }
370
- if (cohort.length > 0) {
371
- this._replicationAnnouncementRepairFairCursorHash =
372
- cohort[cohort.length - 1][0];
373
- }
374
- this._announcementRepairBinding.cohortSelected = true;
375
- }
376
- const batch = [...this._announcementRepairBinding.targets.entries()].filter(([, target]) => !target.done);
377
- const snapshot = new AllReplicatingSegmentsMessage({ segments });
378
- const results = await Promise.allSettled(batch.map(([, target]) => this.deps.getRpc().send(snapshot, {
379
- mode: new AcknowledgeDelivery({
380
- to: [target.key],
381
- redundancy: 1,
382
- }),
383
- priority: CONVERGENCE_MESSAGE_PRIORITY,
384
- signal: binding.controller.signal,
385
- })));
386
- switch (this.announcementRepairWorkerStatus({
387
- session,
388
- lifecycleController,
389
- binding,
390
- })) {
391
- case "stale":
392
- return;
393
- case "superseded":
394
- this.queueCurrentReplicationStateAnnouncementRepair();
395
- return;
396
- }
397
- for (const [index, result] of results.entries()) {
398
- const [hash, attemptedTarget] = batch[index];
399
- const target = this._announcementRepairBinding.targets.get(hash);
400
- if (target !== attemptedTarget || target.session !== session) {
401
- continue;
402
- }
403
- if (result.status === "fulfilled") {
404
- // DirectStream ACKs confirm that the signed transport envelope reached
405
- // the target. Applying the contained replication state remains a
406
- // receiver-local, best-effort operation.
407
- target.done = true;
408
- continue;
409
- }
410
- target.attempts += 1;
411
- if (!isTransientReplicationAnnouncementRepairError(result.reason)) {
412
- target.done = true;
413
- logger.error(result.reason);
414
- }
415
- else if (target.attempts >= this._replicationAnnouncementRepairMaxAttempts) {
416
- target.done = true;
417
- logger.trace("Acknowledged replication announcement repair exhausted for %s", hash);
418
- }
419
- }
420
- if (session !== this._announcementSession) {
421
- this.queueCurrentReplicationStateAnnouncementRepair();
422
- return;
423
- }
424
- if ([...this._announcementRepairBinding.targets.values()].some((target) => !target.done)) {
425
- void this.replicationAnnouncementRepairDebounced?.call();
426
- return;
427
- }
428
- this._announcementRepairBinding.pending = false;
429
- this._announcementRepairBinding.targets.clear();
430
- }
431
- cancelCurrentReplicationStateAnnouncementRetry() {
432
- this.rotateAnnouncementSession();
433
- this._replicationAnnouncementRetryPending = false;
434
- this._replicationAnnouncementRetryController?.abort();
435
- this.replicationAnnouncementRetryDebounced?.close();
436
- this.cancelCurrentReplicationStateAnnouncementRepair();
437
10
  }
438
11
  async sendReplicationAnnouncement(mutation, ownershipLifecycleController = this.deps.captureReplicationOwnershipLifecycle(), options) {
439
12
  const tails = (this._replicationAnnouncementSendTails ??= new WeakMap());
@@ -445,105 +18,11 @@ export class ReplicationAnnouncementCoordinator {
445
18
  if (options?.shouldSend && !options.shouldSend()) {
446
19
  return;
447
20
  }
448
- // Advance before every post-mutation send, including successful ones. An
449
- // authoritative retry already in flight may have captured the previous
450
- // local state; the session mismatch forces one more current snapshot
451
- // after that stale send settles.
452
- this.rotateAnnouncementSession();
453
- this.advanceCurrentReplicationStateAnnouncementRepairGeneration();
454
21
  this.deps.enqueueReplicationInfoV2(mutation);
455
- if (!this.deps.isLegacyReplicationInfoEnabled()) {
456
- return;
457
- }
458
- try {
459
- await this.deps.getRpc().send(toLegacyReplicationInfoFrame(mutation), {
460
- priority: CONVERGENCE_MESSAGE_PRIORITY,
461
- signal: ownershipLifecycleController.signal,
462
- });
463
- this.deps.throwIfReplicationOwnershipLifecycleInactive(ownershipLifecycleController);
464
- this.deps.queueCurrentReplicationStateAnnouncementRepair();
465
- }
466
- catch (error) {
467
- // An old send can reject only after poison or close has installed a new
468
- // ownership generation. Never enqueue its retry work into that generation.
469
- this.deps.throwIfReplicationOwnershipLifecycleInactive(ownershipLifecycleController);
470
- // The local replication-index mutation precedes all calls to this
471
- // wrapper. Preserve the explicit caller's rejection, but independently
472
- // schedule an authoritative snapshot so peers eventually observe the
473
- // already-committed local state.
474
- this.deps.queueCurrentReplicationStateAnnouncementRetry(error);
475
- throw error;
476
- }
477
22
  });
478
23
  // Keep the ordering barrier usable after a caller-observed send rejection.
479
24
  tails.set(ownershipLifecycleController, send.catch(() => { }));
480
25
  return send;
481
26
  }
482
- async retryCurrentReplicationStateAnnouncement() {
483
- if (!this.deps.isLegacyReplicationInfoEnabled()) {
484
- this._replicationAnnouncementRetryPending = false;
485
- return;
486
- }
487
- const session = this._announcementSession;
488
- const controller = this._replicationAnnouncementRetryController;
489
- try {
490
- const segments = (await this.deps.getMyReplicationSegments()).map((range) => range.toReplicationRange());
491
- if (this.deps.isClosed() ||
492
- this.deps.getCloseSignal().aborted ||
493
- controller.signal.aborted) {
494
- return;
495
- }
496
- if (session !== this._announcementSession) {
497
- void this.replicationAnnouncementRetryDebounced?.call();
498
- return;
499
- }
500
- this.deps.validatePersistedReplicationRangeSnapshot(segments);
501
- await this.deps
502
- .getRpc()
503
- .send(new AllReplicatingSegmentsMessage({ segments }), {
504
- priority: CONVERGENCE_MESSAGE_PRIORITY,
505
- signal: controller.signal,
506
- });
507
- this.queueCurrentReplicationStateAnnouncementRepair();
508
- }
509
- catch (error) {
510
- if (this.deps.isClosed() ||
511
- this.deps.getCloseSignal().aborted ||
512
- controller.signal.aborted) {
513
- return;
514
- }
515
- if (this.queueCurrentReplicationStateAnnouncementRetry(error)) {
516
- return;
517
- }
518
- if (session === this._announcementSession) {
519
- this._replicationAnnouncementRetryPending = false;
520
- }
521
- else {
522
- void this.replicationAnnouncementRetryDebounced?.call();
523
- }
524
- throw error;
525
- }
526
- if (this.deps.isClosed() ||
527
- this.deps.getCloseSignal().aborted ||
528
- controller.signal.aborted) {
529
- return;
530
- }
531
- // A newer mutation announcement may have started while this snapshot was
532
- // in flight. In that case keep the repair pending so the newer current
533
- // state is also announced in full, regardless of whether its incremental
534
- // send succeeded or failed.
535
- if (session === this._announcementSession) {
536
- this._replicationAnnouncementRetryPending = false;
537
- if (!this.deps.isClosed() &&
538
- !this.deps.getCloseSignal().aborted &&
539
- !controller.signal.aborted &&
540
- this.deps.isAdaptiveReplicating()) {
541
- void this.deps.callRebalanceParticipationDebounced();
542
- }
543
- }
544
- else {
545
- void this.replicationAnnouncementRetryDebounced?.call();
546
- }
547
- }
548
27
  }
549
28
  //# sourceMappingURL=replication-announcement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"replication-announcement.js","sourceRoot":"","sources":["../../src/replication-announcement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replication-announcement.js","sourceRoot":"","sources":["../../src/replication-announcement.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,kCAAkC;IAMjB;IAL7B,0EAA0E;IAC1E,2EAA2E;IAC3E,mDAAmD;IACnD,iCAAiC,CAA2C;IAE5E,YAA6B,IAAiC;QAAjC,SAAI,GAAJ,IAAI,CAA6B;QAC7D,IAAI,CAAC,iCAAiC,GAAG,IAAI,OAAO,EAAE,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,2BAA2B,CAChC,QAAiC,EACjC,4BAA4B,GAAG,IAAI,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAC/E,OAAwC;QAExC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,iCAAiC,KAAK,IAAI,OAAO,EAGlE,CAAC,CAAC;QACL,MAAM,QAAQ,GACb,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,QAAQ;aACnB,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;aACf,IAAI,CAAC,KAAK,IAAI,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,4CAA4C,CACrD,4BAA4B,CAC5B,CAAC;YACF,IAAI,OAAO,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;gBAClD,OAAO;YACR,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACJ,2EAA2E;QAC3E,KAAK,CAAC,GAAG,CACR,4BAA4B,EAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CACpB,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}