@peerbit/shared-log 15.0.0 → 16.0.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.
- package/dist/src/index.d.ts +7 -12
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +66 -580
- package/dist/src/index.js.map +1 -1
- package/dist/src/replication-announcement.d.ts +3 -106
- package/dist/src/replication-announcement.d.ts.map +1 -1
- package/dist/src/replication-announcement.js +0 -521
- package/dist/src/replication-announcement.js.map +1 -1
- package/dist/src/replication-info-v2-receive.d.ts +10 -41
- package/dist/src/replication-info-v2-receive.d.ts.map +1 -1
- package/dist/src/replication-info-v2-receive.js +11 -192
- package/dist/src/replication-info-v2-receive.js.map +1 -1
- package/dist/src/replication-info-v2-send.d.ts +0 -1
- package/dist/src/replication-info-v2-send.d.ts.map +1 -1
- package/dist/src/replication-info-v2-send.js +0 -6
- package/dist/src/replication-info-v2-send.js.map +1 -1
- package/dist/src/replication.d.ts +0 -1
- package/dist/src/replication.d.ts.map +1 -1
- package/dist/src/replication.js +2 -17
- package/dist/src/replication.js.map +1 -1
- package/dist/src/sync/factory.d.ts +0 -1
- package/dist/src/sync/factory.d.ts.map +1 -1
- package/dist/src/sync/factory.js +20 -36
- package/dist/src/sync/factory.js.map +1 -1
- package/package.json +10 -10
- package/src/index.ts +87 -794
- package/src/replication-announcement.ts +8 -739
- package/src/replication-info-v2-receive.ts +17 -263
- package/src/replication-info-v2-send.ts +0 -7
- package/src/replication.ts +1 -20
- package/src/sync/factory.ts +24 -38
|
@@ -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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { type PublicSignKey } from "@peerbit/crypto";
|
|
2
|
-
import {
|
|
3
|
-
type LegacyReplicationInfoMessage = AllReplicatingSegmentsMessage | AddedReplicationSegmentMessage | StoppedReplicating;
|
|
2
|
+
import { type ReplicationInfoV2Message, RequestReplicationInfoV2Message } from "./replication.js";
|
|
4
3
|
export type ReplicationInfoV2ReceivePhase = "awaiting-full" | "active" | "resync";
|
|
5
4
|
type LocalCapabilityReady = {
|
|
6
5
|
peerHash: string;
|
|
@@ -23,13 +22,17 @@ type LocalCapabilityReadyProperties = {
|
|
|
23
22
|
};
|
|
24
23
|
export type ReplicationInfoV2LocalCapabilityAdvertisementHandle = {
|
|
25
24
|
firstAttempt: Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* B12: the two-phase legacy barrier is retired — an ACKed advert promotes
|
|
27
|
+
* readiness immediately. Retained as a no-op so the handle shape (and the
|
|
28
|
+
* tests that drive it) stay stable.
|
|
29
|
+
*/
|
|
26
30
|
releaseLegacyBarrier(): void;
|
|
27
31
|
};
|
|
28
32
|
export type ReplicationInfoV2LocalCapabilityContext = {
|
|
29
33
|
peerHash: string;
|
|
30
34
|
target: PublicSignKey;
|
|
31
35
|
lifecycleSignal: AbortSignal;
|
|
32
|
-
legacyBarrierReleased: boolean;
|
|
33
36
|
};
|
|
34
37
|
export type ReplicationInfoV2LocalCapabilityAdvertisement = {
|
|
35
38
|
peerHash: string;
|
|
@@ -74,18 +77,6 @@ export type ReplicationInfoV2ReceiveState = {
|
|
|
74
77
|
requestsSinceCapabilityRefresh: number;
|
|
75
78
|
requestParked: boolean;
|
|
76
79
|
capabilityRefreshRequired: boolean;
|
|
77
|
-
legacyFallbackTimer?: ReturnType<typeof setTimeout>;
|
|
78
|
-
legacyFallbackFingerprint?: Uint8Array;
|
|
79
|
-
legacyFallbackTimestamp?: bigint;
|
|
80
|
-
legacyFallbackAmbiguous: boolean;
|
|
81
|
-
lastCommittedTransportTimestamp?: bigint;
|
|
82
|
-
recentCommittedPayloads: Array<{
|
|
83
|
-
fingerprint: Uint8Array;
|
|
84
|
-
transportTimestamp: bigint;
|
|
85
|
-
}>;
|
|
86
|
-
lastLegacyObservationTimestamp?: bigint;
|
|
87
|
-
lastLegacyObservationFingerprint?: Uint8Array;
|
|
88
|
-
lastLegacyObservationAmbiguous: boolean;
|
|
89
80
|
reservedAdmission?: ReplicationInfoV2ReceiveAdmission;
|
|
90
81
|
};
|
|
91
82
|
export type ReplicationInfoV2ReceiveAdmission = {
|
|
@@ -121,7 +112,6 @@ export type ReplicationInfoV2ReceiveDeps = {
|
|
|
121
112
|
requestRetryMs?: number;
|
|
122
113
|
maxRequestRetryMs?: number;
|
|
123
114
|
requestMaxAttempts?: number;
|
|
124
|
-
legacyFallbackDelayMs?: number;
|
|
125
115
|
};
|
|
126
116
|
/**
|
|
127
117
|
* Authenticated receive grants and sender-authoritative ordering for
|
|
@@ -140,7 +130,6 @@ export declare class ReplicationInfoV2ReceiveCoordinator {
|
|
|
140
130
|
private readonly requestRetryMs;
|
|
141
131
|
private readonly maxRequestRetryMs;
|
|
142
132
|
private readonly requestMaxAttempts;
|
|
143
|
-
private readonly legacyFallbackDelayMs;
|
|
144
133
|
constructor(deps: ReplicationInfoV2ReceiveDeps);
|
|
145
134
|
resetForOpen(): void;
|
|
146
135
|
clearForClose(): void;
|
|
@@ -156,10 +145,9 @@ export declare class ReplicationInfoV2ReceiveCoordinator {
|
|
|
156
145
|
private armLocalCapabilityAdvertisement;
|
|
157
146
|
private runLocalCapabilityAdvertisement;
|
|
158
147
|
/**
|
|
159
|
-
* Start local authenticated-apply advertisement
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
* after the host releases the legacy barrier. Failed attempts leave one
|
|
148
|
+
* Start local authenticated-apply advertisement. Readiness is promoted as
|
|
149
|
+
* soon as the ACK lands (B12: the legacy publication this once ordered
|
|
150
|
+
* behind a two-phase barrier is retired). Failed attempts leave one
|
|
163
151
|
* exact-session worker retrying with capped exponential backoff.
|
|
164
152
|
*/
|
|
165
153
|
advertiseLocalCapability(properties: {
|
|
@@ -168,13 +156,10 @@ export declare class ReplicationInfoV2ReceiveCoordinator {
|
|
|
168
156
|
receiveEpoch: object | null;
|
|
169
157
|
signal: AbortSignal;
|
|
170
158
|
}): ReplicationInfoV2LocalCapabilityAdvertisementHandle;
|
|
171
|
-
private releaseLocalCapabilityLegacyBarrier;
|
|
172
159
|
private promoteLocalCapabilityAdvertisement;
|
|
173
160
|
/**
|
|
174
161
|
* Re-advertise one exact current recovery epoch from the stable membership
|
|
175
|
-
* context captured during opening.
|
|
176
|
-
* recovery never bypasses a legacy snapshot or role publication still in
|
|
177
|
-
* progress.
|
|
162
|
+
* context captured during opening.
|
|
178
163
|
*/
|
|
179
164
|
reAdvertiseLocalCapabilityForRecovery(properties: {
|
|
180
165
|
peerHash: string;
|
|
@@ -226,7 +211,6 @@ export declare class ReplicationInfoV2ReceiveCoordinator {
|
|
|
226
211
|
receiveEpoch: object | null;
|
|
227
212
|
}): boolean;
|
|
228
213
|
private transitionToResync;
|
|
229
|
-
isLegacyCutover(peerSession: object | null): boolean;
|
|
230
214
|
prepare(message: ReplicationInfoV2Message, properties: {
|
|
231
215
|
from: PublicSignKey;
|
|
232
216
|
peerSession: object;
|
|
@@ -243,21 +227,6 @@ export declare class ReplicationInfoV2ReceiveCoordinator {
|
|
|
243
227
|
transportTimestamp: bigint;
|
|
244
228
|
}): ReplicationInfoV2ReceiveAdmission | undefined;
|
|
245
229
|
release(admission: ReplicationInfoV2ReceiveAdmission): void;
|
|
246
|
-
/**
|
|
247
|
-
* B9 can lose its sender grant while keeping the topic session open. Its
|
|
248
|
-
* unmatched legacy sidecar is the compatibility signal to re-handshake; a
|
|
249
|
-
* matching V2 payload before or after the legacy copy suppresses the timer.
|
|
250
|
-
*/
|
|
251
|
-
noteLegacyAnnouncement(properties: {
|
|
252
|
-
peerHash: string;
|
|
253
|
-
peerSession: object;
|
|
254
|
-
receiveEpoch: object | null;
|
|
255
|
-
senderTransportSession: bigint;
|
|
256
|
-
transportTimestamp: bigint;
|
|
257
|
-
message: LegacyReplicationInfoMessage;
|
|
258
|
-
}): boolean;
|
|
259
|
-
private armLegacyFallback;
|
|
260
|
-
private clearLegacyFallback;
|
|
261
230
|
isAdmissionCurrent(admission: ReplicationInfoV2ReceiveAdmission): boolean;
|
|
262
231
|
commit(admission: ReplicationInfoV2ReceiveAdmission): boolean;
|
|
263
232
|
requireFullAfterFailure(admission: ReplicationInfoV2ReceiveAdmission): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replication-info-v2-receive.d.ts","sourceRoot":"","sources":["../../src/replication-info-v2-receive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAA2B,MAAM,iBAAiB,CAAC;AAM9E,OAAO,
|
|
1
|
+
{"version":3,"file":"replication-info-v2-receive.d.ts","sourceRoot":"","sources":["../../src/replication-info-v2-receive.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,6 @@ const REQUIRED_SENDER_CAPABILITIES = SYNC_CAPABILITY_REPLICATION_INFO_V2_DECODE
|
|
|
8
8
|
const DEFAULT_REQUEST_RETRY_MS = 1_000;
|
|
9
9
|
const DEFAULT_MAX_REQUEST_RETRY_MS = 30_000;
|
|
10
10
|
const DEFAULT_REQUEST_MAX_ATTEMPTS = 7;
|
|
11
|
-
const DEFAULT_LEGACY_FALLBACK_DELAY_MS = 5_000;
|
|
12
11
|
const MAX_U64 = (1n << 64n) - 1n;
|
|
13
12
|
const MAX_BACKOFF_EXPONENT = 20;
|
|
14
13
|
const bytesEqual = (left, right) => {
|
|
@@ -22,6 +21,10 @@ const bytesEqual = (left, right) => {
|
|
|
22
21
|
}
|
|
23
22
|
return true;
|
|
24
23
|
};
|
|
24
|
+
// Q4 (B12): fingerprints keep constructing the legacy-class canonical forms.
|
|
25
|
+
// They are byte-stable local-only hash inputs, never sent; these are the only
|
|
26
|
+
// sanctioned legacy-frame construction sites in src (see the no-legacy-
|
|
27
|
+
// machinery source ratchet's narrowed whitelist).
|
|
25
28
|
const replicationInfoPayloadFingerprint = (message) => {
|
|
26
29
|
const canonical = message instanceof FullReplicationInfoV2Message
|
|
27
30
|
? new AllReplicatingSegmentsMessage({ segments: message.segments })
|
|
@@ -49,14 +52,12 @@ export class ReplicationInfoV2ReceiveCoordinator {
|
|
|
49
52
|
requestRetryMs;
|
|
50
53
|
maxRequestRetryMs;
|
|
51
54
|
requestMaxAttempts;
|
|
52
|
-
legacyFallbackDelayMs;
|
|
53
55
|
constructor(deps) {
|
|
54
56
|
this.deps = deps;
|
|
55
57
|
this.now = deps.now ?? Date.now;
|
|
56
58
|
this.requestRetryMs = Math.max(1, deps.requestRetryMs ?? DEFAULT_REQUEST_RETRY_MS);
|
|
57
59
|
this.maxRequestRetryMs = Math.max(this.requestRetryMs, deps.maxRequestRetryMs ?? DEFAULT_MAX_REQUEST_RETRY_MS);
|
|
58
60
|
this.requestMaxAttempts = Math.max(1, Math.floor(deps.requestMaxAttempts ?? DEFAULT_REQUEST_MAX_ATTEMPTS));
|
|
59
|
-
this.legacyFallbackDelayMs = Math.max(this.requestRetryMs, deps.legacyFallbackDelayMs ?? DEFAULT_LEGACY_FALLBACK_DELAY_MS);
|
|
60
61
|
this._receiveStates = new Map();
|
|
61
62
|
this._cutoverPeerSessions = new WeakSet();
|
|
62
63
|
this._localCapabilityReadyBySession = new WeakMap();
|
|
@@ -123,10 +124,6 @@ export class ReplicationInfoV2ReceiveCoordinator {
|
|
|
123
124
|
clearTimeout(state.requestTimer);
|
|
124
125
|
state.requestTimer = undefined;
|
|
125
126
|
}
|
|
126
|
-
if (state.legacyFallbackTimer) {
|
|
127
|
-
clearTimeout(state.legacyFallbackTimer);
|
|
128
|
-
state.legacyFallbackTimer = undefined;
|
|
129
|
-
}
|
|
130
127
|
state.controller.abort();
|
|
131
128
|
state.version++;
|
|
132
129
|
if (this._receiveStates.get(state.peerHash) === state) {
|
|
@@ -186,9 +183,6 @@ export class ReplicationInfoV2ReceiveCoordinator {
|
|
|
186
183
|
if (state.timer || state.inFlight || state.ready) {
|
|
187
184
|
return;
|
|
188
185
|
}
|
|
189
|
-
if (state.acknowledgedReady && !state.context.legacyBarrierReleased) {
|
|
190
|
-
return;
|
|
191
|
-
}
|
|
192
186
|
if (!this.isLocalCapabilityAdvertisementOwnerCurrent(state)) {
|
|
193
187
|
this.clearLocalCapabilityAdvertisement(state);
|
|
194
188
|
return;
|
|
@@ -229,9 +223,7 @@ export class ReplicationInfoV2ReceiveCoordinator {
|
|
|
229
223
|
return;
|
|
230
224
|
}
|
|
231
225
|
if (state.acknowledgedReady) {
|
|
232
|
-
|
|
233
|
-
this.promoteLocalCapabilityAdvertisement(state);
|
|
234
|
-
}
|
|
226
|
+
this.promoteLocalCapabilityAdvertisement(state);
|
|
235
227
|
return;
|
|
236
228
|
}
|
|
237
229
|
if (!this.isLocalCapabilityAdvertisementReadyOpen(state)) {
|
|
@@ -284,19 +276,16 @@ export class ReplicationInfoV2ReceiveCoordinator {
|
|
|
284
276
|
}
|
|
285
277
|
else if (this.isLocalCapabilityAdvertisementGenerationCurrent(state) &&
|
|
286
278
|
!state.ready) {
|
|
287
|
-
|
|
288
|
-
this.armLocalCapabilityAdvertisement(state);
|
|
289
|
-
}
|
|
279
|
+
this.armLocalCapabilityAdvertisement(state);
|
|
290
280
|
}
|
|
291
281
|
});
|
|
292
282
|
state.inFlight = operation;
|
|
293
283
|
await operation;
|
|
294
284
|
}
|
|
295
285
|
/**
|
|
296
|
-
* Start local authenticated-apply advertisement
|
|
297
|
-
*
|
|
298
|
-
*
|
|
299
|
-
* after the host releases the legacy barrier. Failed attempts leave one
|
|
286
|
+
* Start local authenticated-apply advertisement. Readiness is promoted as
|
|
287
|
+
* soon as the ACK lands (B12: the legacy publication this once ordered
|
|
288
|
+
* behind a two-phase barrier is retired). Failed attempts leave one
|
|
300
289
|
* exact-session worker retrying with capped exponential backoff.
|
|
301
290
|
*/
|
|
302
291
|
advertiseLocalCapability(properties) {
|
|
@@ -325,7 +314,6 @@ export class ReplicationInfoV2ReceiveCoordinator {
|
|
|
325
314
|
peerHash,
|
|
326
315
|
target: properties.target,
|
|
327
316
|
lifecycleSignal: properties.signal,
|
|
328
|
-
legacyBarrierReleased: false,
|
|
329
317
|
};
|
|
330
318
|
this._localCapabilityContextBySession.set(properties.peerSession, context);
|
|
331
319
|
}
|
|
@@ -377,36 +365,14 @@ export class ReplicationInfoV2ReceiveCoordinator {
|
|
|
377
365
|
}
|
|
378
366
|
const firstAttempt = state.firstAttempt ??
|
|
379
367
|
(state.firstAttempt = this.runLocalCapabilityAdvertisement(state));
|
|
380
|
-
const advertisement = state;
|
|
381
368
|
return {
|
|
382
369
|
firstAttempt,
|
|
383
|
-
releaseLegacyBarrier: () =>
|
|
370
|
+
releaseLegacyBarrier: () => { },
|
|
384
371
|
};
|
|
385
372
|
}
|
|
386
|
-
releaseLocalCapabilityLegacyBarrier(peerSession, context) {
|
|
387
|
-
if (context.legacyBarrierReleased) {
|
|
388
|
-
return;
|
|
389
|
-
}
|
|
390
|
-
if (this._localCapabilityContextBySession.get(peerSession) !== context ||
|
|
391
|
-
context.lifecycleSignal.aborted ||
|
|
392
|
-
this.deps.isClosed() ||
|
|
393
|
-
!this.deps.isPeerSessionCurrent(context.peerHash, peerSession)) {
|
|
394
|
-
return;
|
|
395
|
-
}
|
|
396
|
-
context.legacyBarrierReleased = true;
|
|
397
|
-
const state = this._localCapabilityAdvertisementsByPeer.get(context.peerHash);
|
|
398
|
-
if (state?.peerSession === peerSession && state.context === context) {
|
|
399
|
-
if (!this.isLocalCapabilityAdvertisementOwnerCurrent(state)) {
|
|
400
|
-
this.clearLocalCapabilityAdvertisement(state);
|
|
401
|
-
return;
|
|
402
|
-
}
|
|
403
|
-
this.promoteLocalCapabilityAdvertisement(state);
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
373
|
promoteLocalCapabilityAdvertisement(state) {
|
|
407
374
|
const ready = state.acknowledgedReady;
|
|
408
375
|
if (state.ready ||
|
|
409
|
-
!state.context.legacyBarrierReleased ||
|
|
410
376
|
!ready ||
|
|
411
377
|
ready.receiveEpoch !== state.receiveEpoch ||
|
|
412
378
|
ready.advertisement !== state ||
|
|
@@ -433,9 +399,7 @@ export class ReplicationInfoV2ReceiveCoordinator {
|
|
|
433
399
|
}
|
|
434
400
|
/**
|
|
435
401
|
* Re-advertise one exact current recovery epoch from the stable membership
|
|
436
|
-
* context captured during opening.
|
|
437
|
-
* recovery never bypasses a legacy snapshot or role publication still in
|
|
438
|
-
* progress.
|
|
402
|
+
* context captured during opening.
|
|
439
403
|
*/
|
|
440
404
|
reAdvertiseLocalCapabilityForRecovery(properties) {
|
|
441
405
|
const context = this._localCapabilityContextBySession.get(properties.peerSession);
|
|
@@ -587,9 +551,6 @@ export class ReplicationInfoV2ReceiveCoordinator {
|
|
|
587
551
|
requestsSinceCapabilityRefresh: 0,
|
|
588
552
|
requestParked: false,
|
|
589
553
|
capabilityRefreshRequired: retainedCutover,
|
|
590
|
-
legacyFallbackAmbiguous: false,
|
|
591
|
-
recentCommittedPayloads: [],
|
|
592
|
-
lastLegacyObservationAmbiguous: false,
|
|
593
554
|
};
|
|
594
555
|
this._receiveStates.set(peerHash, state);
|
|
595
556
|
const ready = this._localCapabilityReadyBySession.get(peerSession);
|
|
@@ -697,9 +658,6 @@ export class ReplicationInfoV2ReceiveCoordinator {
|
|
|
697
658
|
this.armRequest(state, 0);
|
|
698
659
|
}
|
|
699
660
|
}
|
|
700
|
-
isLegacyCutover(peerSession) {
|
|
701
|
-
return peerSession !== null && this._cutoverPeerSessions.has(peerSession);
|
|
702
|
-
}
|
|
703
661
|
prepare(message, properties) {
|
|
704
662
|
const peerHash = properties.from.hashcode();
|
|
705
663
|
const state = this._receiveStates.get(peerHash);
|
|
@@ -809,10 +767,6 @@ export class ReplicationInfoV2ReceiveCoordinator {
|
|
|
809
767
|
clearTimeout(state.requestTimer);
|
|
810
768
|
state.requestTimer = undefined;
|
|
811
769
|
}
|
|
812
|
-
if (state.legacyFallbackTimer) {
|
|
813
|
-
clearTimeout(state.legacyFallbackTimer);
|
|
814
|
-
state.legacyFallbackTimer = undefined;
|
|
815
|
-
}
|
|
816
770
|
return admission;
|
|
817
771
|
}
|
|
818
772
|
release(admission) {
|
|
@@ -843,126 +797,6 @@ export class ReplicationInfoV2ReceiveCoordinator {
|
|
|
843
797
|
// worker so the exact current generation cannot become stranded.
|
|
844
798
|
this.armRequest(state, 0);
|
|
845
799
|
}
|
|
846
|
-
if (currentState === state &&
|
|
847
|
-
this.isStateCurrent(state) &&
|
|
848
|
-
state.phase === "active" &&
|
|
849
|
-
state.legacyFallbackFingerprint !== undefined) {
|
|
850
|
-
// A reservation also pauses compat sidecar recovery. Matching commits
|
|
851
|
-
// clear the evidence; an uncommitted or non-matching frame restores its
|
|
852
|
-
// bounded fallback without invalidating work in the host apply lane.
|
|
853
|
-
this.armLegacyFallback(state);
|
|
854
|
-
}
|
|
855
|
-
}
|
|
856
|
-
/**
|
|
857
|
-
* B9 can lose its sender grant while keeping the topic session open. Its
|
|
858
|
-
* unmatched legacy sidecar is the compatibility signal to re-handshake; a
|
|
859
|
-
* matching V2 payload before or after the legacy copy suppresses the timer.
|
|
860
|
-
*/
|
|
861
|
-
noteLegacyAnnouncement(properties) {
|
|
862
|
-
const state = this._receiveStates.get(properties.peerHash);
|
|
863
|
-
if (!state ||
|
|
864
|
-
state.peerSession !== properties.peerSession ||
|
|
865
|
-
state.receiveEpoch !== properties.receiveEpoch ||
|
|
866
|
-
state.senderTransportSession !== properties.senderTransportSession ||
|
|
867
|
-
!this._cutoverPeerSessions.has(properties.peerSession) ||
|
|
868
|
-
!this.isStateCurrent(state)) {
|
|
869
|
-
return false;
|
|
870
|
-
}
|
|
871
|
-
const fingerprint = replicationInfoPayloadFingerprint(properties.message);
|
|
872
|
-
if (state.lastCommittedTransportTimestamp !== undefined &&
|
|
873
|
-
properties.transportTimestamp < state.lastCommittedTransportTimestamp) {
|
|
874
|
-
return true;
|
|
875
|
-
}
|
|
876
|
-
if (state.recentCommittedPayloads.some((committed) => properties.transportTimestamp <= committed.transportTimestamp &&
|
|
877
|
-
bytesEqual(committed.fingerprint, fingerprint))) {
|
|
878
|
-
return true;
|
|
879
|
-
}
|
|
880
|
-
if (state.lastLegacyObservationTimestamp !== undefined) {
|
|
881
|
-
if (properties.transportTimestamp < state.lastLegacyObservationTimestamp) {
|
|
882
|
-
return true;
|
|
883
|
-
}
|
|
884
|
-
if (properties.transportTimestamp === state.lastLegacyObservationTimestamp) {
|
|
885
|
-
if (state.lastLegacyObservationAmbiguous ||
|
|
886
|
-
(state.lastLegacyObservationFingerprint !== undefined &&
|
|
887
|
-
bytesEqual(state.lastLegacyObservationFingerprint, fingerprint))) {
|
|
888
|
-
return true;
|
|
889
|
-
}
|
|
890
|
-
state.lastLegacyObservationAmbiguous = true;
|
|
891
|
-
}
|
|
892
|
-
else {
|
|
893
|
-
state.lastLegacyObservationTimestamp = properties.transportTimestamp;
|
|
894
|
-
state.lastLegacyObservationFingerprint = fingerprint.slice();
|
|
895
|
-
state.lastLegacyObservationAmbiguous = false;
|
|
896
|
-
}
|
|
897
|
-
}
|
|
898
|
-
else {
|
|
899
|
-
state.lastLegacyObservationTimestamp = properties.transportTimestamp;
|
|
900
|
-
state.lastLegacyObservationFingerprint = fingerprint.slice();
|
|
901
|
-
state.lastLegacyObservationAmbiguous = false;
|
|
902
|
-
}
|
|
903
|
-
const reserved = this._reservedAdmissionsByPeer.get(properties.peerHash);
|
|
904
|
-
if (reserved?.state === state &&
|
|
905
|
-
!bytesEqual(reserved.payloadFingerprint, fingerprint)) {
|
|
906
|
-
// A legacy sidecar observed while a different V2 payload is applying
|
|
907
|
-
// cannot be erased by that commit. The transport has already ACKed the
|
|
908
|
-
// sidecar, so require one authoritative successor after release.
|
|
909
|
-
reserved.resyncAfterRelease = true;
|
|
910
|
-
}
|
|
911
|
-
if (!state.legacyFallbackFingerprint) {
|
|
912
|
-
state.legacyFallbackFingerprint = fingerprint;
|
|
913
|
-
state.legacyFallbackTimestamp = properties.transportTimestamp;
|
|
914
|
-
state.legacyFallbackAmbiguous = false;
|
|
915
|
-
}
|
|
916
|
-
else {
|
|
917
|
-
if (!bytesEqual(state.legacyFallbackFingerprint, fingerprint)) {
|
|
918
|
-
state.legacyFallbackAmbiguous = true;
|
|
919
|
-
}
|
|
920
|
-
if (state.legacyFallbackTimestamp === undefined ||
|
|
921
|
-
properties.transportTimestamp > state.legacyFallbackTimestamp) {
|
|
922
|
-
state.legacyFallbackTimestamp = properties.transportTimestamp;
|
|
923
|
-
}
|
|
924
|
-
}
|
|
925
|
-
if (state.phase !== "active") {
|
|
926
|
-
if (state.requestParked) {
|
|
927
|
-
this.transitionToResync(state, {
|
|
928
|
-
force: true,
|
|
929
|
-
refreshCapability: true,
|
|
930
|
-
});
|
|
931
|
-
}
|
|
932
|
-
return true;
|
|
933
|
-
}
|
|
934
|
-
if (state.legacyFallbackTimer) {
|
|
935
|
-
return true;
|
|
936
|
-
}
|
|
937
|
-
this.armLegacyFallback(state);
|
|
938
|
-
return true;
|
|
939
|
-
}
|
|
940
|
-
armLegacyFallback(state) {
|
|
941
|
-
if (state.legacyFallbackTimer ||
|
|
942
|
-
state.phase !== "active" ||
|
|
943
|
-
state.legacyFallbackFingerprint === undefined ||
|
|
944
|
-
this._reservedAdmissionsByPeer.has(state.peerHash)) {
|
|
945
|
-
return;
|
|
946
|
-
}
|
|
947
|
-
state.legacyFallbackTimer = setTimeout(() => {
|
|
948
|
-
state.legacyFallbackTimer = undefined;
|
|
949
|
-
if (this.isStateCurrent(state) && state.phase === "active") {
|
|
950
|
-
this.transitionToResync(state, {
|
|
951
|
-
force: true,
|
|
952
|
-
refreshCapability: true,
|
|
953
|
-
});
|
|
954
|
-
}
|
|
955
|
-
}, this.legacyFallbackDelayMs);
|
|
956
|
-
state.legacyFallbackTimer.unref?.();
|
|
957
|
-
}
|
|
958
|
-
clearLegacyFallback(state) {
|
|
959
|
-
if (state.legacyFallbackTimer) {
|
|
960
|
-
clearTimeout(state.legacyFallbackTimer);
|
|
961
|
-
state.legacyFallbackTimer = undefined;
|
|
962
|
-
}
|
|
963
|
-
state.legacyFallbackFingerprint = undefined;
|
|
964
|
-
state.legacyFallbackTimestamp = undefined;
|
|
965
|
-
state.legacyFallbackAmbiguous = false;
|
|
966
800
|
}
|
|
967
801
|
isAdmissionCurrent(admission) {
|
|
968
802
|
const { state } = admission;
|
|
@@ -1000,21 +834,6 @@ export class ReplicationInfoV2ReceiveCoordinator {
|
|
|
1000
834
|
state.requestsSinceCapabilityRefresh = 0;
|
|
1001
835
|
state.requestParked = false;
|
|
1002
836
|
state.capabilityRefreshRequired = false;
|
|
1003
|
-
state.lastCommittedTransportTimestamp = admission.transportTimestamp;
|
|
1004
|
-
state.recentCommittedPayloads.push({
|
|
1005
|
-
fingerprint: admission.payloadFingerprint.slice(),
|
|
1006
|
-
transportTimestamp: admission.transportTimestamp,
|
|
1007
|
-
});
|
|
1008
|
-
if (state.recentCommittedPayloads.length > 8) {
|
|
1009
|
-
state.recentCommittedPayloads.shift();
|
|
1010
|
-
}
|
|
1011
|
-
if ((state.legacyFallbackTimestamp !== undefined &&
|
|
1012
|
-
admission.transportTimestamp > state.legacyFallbackTimestamp) ||
|
|
1013
|
-
(!state.legacyFallbackAmbiguous &&
|
|
1014
|
-
state.legacyFallbackFingerprint !== undefined &&
|
|
1015
|
-
bytesEqual(state.legacyFallbackFingerprint, admission.payloadFingerprint))) {
|
|
1016
|
-
this.clearLegacyFallback(state);
|
|
1017
|
-
}
|
|
1018
837
|
if (state.requestTimer) {
|
|
1019
838
|
clearTimeout(state.requestTimer);
|
|
1020
839
|
state.requestTimer = undefined;
|