@peerbit/shared-log 13.0.23 → 13.1.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.
@@ -213,6 +213,7 @@ export declare class SharedLog<T, D extends ReplicationDomain<any, T, R> = any,
213
213
  private _repairSweepRunning;
214
214
  private _repairSweepForceFreshPending;
215
215
  private _repairSweepAddedPeersPending;
216
+ private _topicSubscribersCache;
216
217
  private distributeQueue?;
217
218
  syncronizer: Syncronizer<R>;
218
219
  replicas: ReplicationLimits;
@@ -254,6 +255,8 @@ export declare class SharedLog<T, D extends ReplicationDomain<any, T, R> = any,
254
255
  private _appendDeliverToAllFanout;
255
256
  private _resolvePublicKeyFromHash;
256
257
  private _getTopicSubscribers;
258
+ private invalidateTopicSubscribersCache;
259
+ private invalidateSharedLogTopicSubscribersCache;
257
260
  private getRole;
258
261
  isReplicating(): Promise<boolean>;
259
262
  private setupRebalanceDebounceFunction;
@@ -391,6 +394,7 @@ export declare class SharedLog<T, D extends ReplicationDomain<any, T, R> = any,
391
394
  getDefaultMinRoleAge(): Promise<number>;
392
395
  findLeaders(cursors: NumberFromType<R>[], entry: Entry<T> | EntryReplicated<R> | ShallowEntry, options?: {
393
396
  roleAge?: number;
397
+ candidates?: Iterable<string>;
394
398
  onLeader?: (key: string) => void;
395
399
  persist?: {
396
400
  prev?: EntryReplicated<R>;
@@ -403,6 +407,7 @@ export declare class SharedLog<T, D extends ReplicationDomain<any, T, R> = any,
403
407
  replicas: number;
404
408
  }, options?: {
405
409
  roleAge?: number;
410
+ candidates?: Iterable<string>;
406
411
  onLeader?: (key: string) => void;
407
412
  persist?: {
408
413
  prev?: EntryReplicated<R>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -246,6 +246,7 @@ const RECALCULATE_PARTICIPATION_MIN_RELATIVE_CHANGE = 0.01;
246
246
  const RECALCULATE_PARTICIPATION_MIN_RELATIVE_CHANGE_WITH_CPU_LIMIT = 0.005;
247
247
  const RECALCULATE_PARTICIPATION_MIN_RELATIVE_CHANGE_WITH_MEMORY_LIMIT = 0.001;
248
248
  const RECALCULATE_PARTICIPATION_RELATIVE_DENOMINATOR_FLOOR = 1e-3;
249
+ const TOPIC_SUBSCRIBERS_CACHE_TTL_MS = 250;
249
250
  const ADAPTIVE_REBALANCE_IDLE_INTERVAL_MULTIPLIER = 5;
250
251
  const ADAPTIVE_REBALANCE_MIN_IDLE_AFTER_LOCAL_APPEND_MS = 10_000;
251
252
  const DEFAULT_DISTRIBUTION_DEBOUNCE_TIME = 500;
@@ -376,6 +377,7 @@ let SharedLog = (() => {
376
377
  _repairSweepRunning;
377
378
  _repairSweepForceFreshPending;
378
379
  _repairSweepAddedPeersPending;
380
+ _topicSubscribersCache;
379
381
  // regular distribution checks
380
382
  distributeQueue;
381
383
  syncronizer;
@@ -858,14 +860,25 @@ let SharedLog = (() => {
858
860
  this.node.services.pubsub.getPublicKey(hash));
859
861
  }
860
862
  async _getTopicSubscribers(topic) {
863
+ const cached = this._topicSubscribersCache.get(topic);
864
+ if (cached && cached.expiresAt > Date.now()) {
865
+ return cached.keys.slice();
866
+ }
861
867
  const maxPeers = 64;
868
+ const cache = (keys) => {
869
+ this._topicSubscribersCache.set(topic, {
870
+ expiresAt: Date.now() + TOPIC_SUBSCRIBERS_CACHE_TTL_MS,
871
+ keys,
872
+ });
873
+ return keys.slice();
874
+ };
862
875
  // Prefer the bounded peer set we already know from the fanout overlay.
863
876
  if (this._fanoutChannel && (topic === this.topic || topic === this.rpc.topic)) {
864
877
  const hashes = this._fanoutChannel
865
878
  .getPeerHashes({ includeSelf: false })
866
879
  .slice(0, maxPeers);
867
880
  if (hashes.length === 0)
868
- return [];
881
+ return cache([]);
869
882
  const keys = await Promise.all(hashes.map((hash) => this._resolvePublicKeyFromHash(hash)));
870
883
  const uniqueKeys = [];
871
884
  const seen = new Set();
@@ -881,7 +894,7 @@ let SharedLog = (() => {
881
894
  seen.add(hash);
882
895
  uniqueKeys.push(key);
883
896
  }
884
- return uniqueKeys;
897
+ return cache(uniqueKeys);
885
898
  }
886
899
  const selfHash = this.node.identity.publicKey.hashcode();
887
900
  const hashes = [];
@@ -943,7 +956,7 @@ let SharedLog = (() => {
943
956
  }
944
957
  }
945
958
  if (hashes.length === 0)
946
- return [];
959
+ return cache([]);
947
960
  const uniqueHashes = [];
948
961
  const seen = new Set();
949
962
  for (const h of hashes) {
@@ -964,7 +977,17 @@ let SharedLog = (() => {
964
977
  continue;
965
978
  uniqueKeys.push(key);
966
979
  }
967
- return uniqueKeys;
980
+ return cache(uniqueKeys);
981
+ }
982
+ invalidateTopicSubscribersCache(...topics) {
983
+ for (const topic of topics) {
984
+ if (!topic)
985
+ continue;
986
+ this._topicSubscribersCache.delete(topic);
987
+ }
988
+ }
989
+ invalidateSharedLogTopicSubscribersCache() {
990
+ this.invalidateTopicSubscribersCache(this.topic, this.rpc.topic);
968
991
  }
969
992
  // @deprecated
970
993
  async getRole() {
@@ -1854,6 +1877,7 @@ let SharedLog = (() => {
1854
1877
  const entries = await iterator.next(REPAIR_SWEEP_ENTRY_BATCH_SIZE);
1855
1878
  for (const entry of entries) {
1856
1879
  const entryReplicated = entry.value;
1880
+ const knownPeers = this._gidPeersHistory.get(entryReplicated.gid);
1857
1881
  const currentPeers = await this.findLeaders(entryReplicated.coordinates, entryReplicated, { roleAge: 0 });
1858
1882
  if (forceFreshDelivery) {
1859
1883
  for (const [currentPeer] of currentPeers) {
@@ -1865,7 +1889,7 @@ let SharedLog = (() => {
1865
1889
  }
1866
1890
  if (addedPeers.size > 0) {
1867
1891
  for (const peer of addedPeers) {
1868
- if (currentPeers.has(peer)) {
1892
+ if (currentPeers.has(peer) && !knownPeers?.has(peer)) {
1869
1893
  queueEntryForTarget(peer, entryReplicated);
1870
1894
  }
1871
1895
  }
@@ -2086,6 +2110,7 @@ let SharedLog = (() => {
2086
2110
  this._repairSweepRunning = false;
2087
2111
  this._repairSweepForceFreshPending = false;
2088
2112
  this._repairSweepAddedPeersPending = new Set();
2113
+ this._topicSubscribersCache = new Map();
2089
2114
  this.coordinateToHash = new Cache({ max: 1e6, ttl: 1e4 });
2090
2115
  this.recentlyRebalanced = new Cache({ max: 1e4, ttl: 1e5 });
2091
2116
  this.uniqueReplicators = new Set();
@@ -2175,6 +2200,16 @@ let SharedLog = (() => {
2175
2200
  maxPeers: 8,
2176
2201
  })) ?? []);
2177
2202
  },
2203
+ watchProviders: fanoutService
2204
+ ? (cid, opts) => fanoutService.watchProviders(blockProviderNamespace(cid), {
2205
+ signal: opts.signal,
2206
+ want: 8,
2207
+ ttlMs: 10_000,
2208
+ renewIntervalMs: 5_000,
2209
+ bootstrapMaxPeers: 2,
2210
+ onProviders: (providers) => opts.onProviders(providers.map((provider) => provider.hash)),
2211
+ })
2212
+ : undefined,
2178
2213
  onPut: async (cid) => {
2179
2214
  // Best-effort directory announce for "get without remote.from" workflows.
2180
2215
  try {
@@ -2905,6 +2940,7 @@ let SharedLog = (() => {
2905
2940
  this.coordinateToHash.clear();
2906
2941
  this.recentlyRebalanced.clear();
2907
2942
  this.uniqueReplicators.clear();
2943
+ this._topicSubscribersCache.clear();
2908
2944
  this._closeController.abort();
2909
2945
  clearInterval(this.interval);
2910
2946
  this.stopReplicatorLivenessSweep();
@@ -3599,6 +3635,17 @@ let SharedLog = (() => {
3599
3635
  let assumeSynced = options?.replicate &&
3600
3636
  typeof options.replicate !== "boolean" &&
3601
3637
  options.replicate.assumeSynced;
3638
+ const seedAssumeSyncedPeerHistory = async (entry) => {
3639
+ if (!assumeSynced) {
3640
+ return;
3641
+ }
3642
+ const minReplicas = decodeReplicas(entry).getValue(this);
3643
+ const leaders = await this.findLeaders(await this.createCoordinates(entry, minReplicas), entry, {
3644
+ roleAge: 0,
3645
+ persist: false,
3646
+ });
3647
+ this.addPeersToGidPeerHistory(entry.meta.gid, leaders.keys());
3648
+ };
3602
3649
  const persistCoordinate = async (entry) => {
3603
3650
  const minReplicas = decodeReplicas(entry).getValue(this);
3604
3651
  const leaders = await this.findLeaders(await this.createCoordinates(entry, minReplicas), entry, { persist: {} });
@@ -3631,6 +3678,11 @@ let SharedLog = (() => {
3631
3678
  await this.log.join(entries, joinOptions);
3632
3679
  if (options?.replicate) {
3633
3680
  let messageToSend = undefined;
3681
+ if (assumeSynced) {
3682
+ for (const entry of entriesToReplicate) {
3683
+ await seedAssumeSyncedPeerHistory(entry);
3684
+ }
3685
+ }
3634
3686
  await this.replicate(entriesToReplicate, {
3635
3687
  rebalance: assumeSynced ? false : true,
3636
3688
  checkDuplicates: true,
@@ -4040,48 +4092,53 @@ let SharedLog = (() => {
4040
4092
  // If it is still warming up (for example, only contains self), supplement with
4041
4093
  // current subscribers until we have enough candidates for this decision.
4042
4094
  let peerFilter = undefined;
4043
- const selfReplicating = await this.isReplicating();
4044
- if (this.uniqueReplicators.size > 0) {
4045
- peerFilter = new Set(this.uniqueReplicators);
4046
- if (selfReplicating) {
4047
- peerFilter.add(selfHash);
4048
- }
4049
- else {
4050
- peerFilter.delete(selfHash);
4051
- }
4052
- try {
4053
- const subscribers = await this._getTopicSubscribers(this.topic);
4054
- if (subscribers && subscribers.length > 0) {
4055
- for (const subscriber of subscribers) {
4056
- peerFilter.add(subscriber.hashcode());
4057
- }
4058
- if (selfReplicating) {
4059
- peerFilter.add(selfHash);
4060
- }
4061
- else {
4062
- peerFilter.delete(selfHash);
4063
- }
4064
- }
4065
- }
4066
- catch {
4067
- // Best-effort only; keep current peerFilter.
4068
- }
4095
+ if (options?.candidates) {
4096
+ peerFilter = new Set(options.candidates);
4069
4097
  }
4070
4098
  else {
4071
- try {
4072
- const subscribers = (await this._getTopicSubscribers(this.topic)) ?? undefined;
4073
- if (subscribers && subscribers.length > 0) {
4074
- peerFilter = new Set(subscribers.map((key) => key.hashcode()));
4075
- if (selfReplicating) {
4076
- peerFilter.add(selfHash);
4077
- }
4078
- else {
4079
- peerFilter.delete(selfHash);
4099
+ const selfReplicating = await this.isReplicating();
4100
+ if (this.uniqueReplicators.size > 0) {
4101
+ peerFilter = new Set(this.uniqueReplicators);
4102
+ if (selfReplicating) {
4103
+ peerFilter.add(selfHash);
4104
+ }
4105
+ else {
4106
+ peerFilter.delete(selfHash);
4107
+ }
4108
+ try {
4109
+ const subscribers = await this._getTopicSubscribers(this.topic);
4110
+ if (subscribers && subscribers.length > 0) {
4111
+ for (const subscriber of subscribers) {
4112
+ peerFilter.add(subscriber.hashcode());
4113
+ }
4114
+ if (selfReplicating) {
4115
+ peerFilter.add(selfHash);
4116
+ }
4117
+ else {
4118
+ peerFilter.delete(selfHash);
4119
+ }
4080
4120
  }
4081
4121
  }
4122
+ catch {
4123
+ // Best-effort only; keep current peerFilter.
4124
+ }
4082
4125
  }
4083
- catch {
4084
- // Best-effort only; if pubsub isn't ready, do a full scan.
4126
+ else {
4127
+ try {
4128
+ const subscribers = (await this._getTopicSubscribers(this.topic)) ?? undefined;
4129
+ if (subscribers && subscribers.length > 0) {
4130
+ peerFilter = new Set(subscribers.map((key) => key.hashcode()));
4131
+ if (selfReplicating) {
4132
+ peerFilter.add(selfHash);
4133
+ }
4134
+ else {
4135
+ peerFilter.delete(selfHash);
4136
+ }
4137
+ }
4138
+ }
4139
+ catch {
4140
+ // Best-effort only; if pubsub isn't ready, do a full scan.
4141
+ }
4085
4142
  }
4086
4143
  }
4087
4144
  return getSamples(cursors, this.replicationIndex, roleAge, this.indexableDomain.numbers, {
@@ -4555,13 +4612,10 @@ let SharedLog = (() => {
4555
4612
  }
4556
4613
  }
4557
4614
  const changed = false;
4558
- const replacedPeers = new Set();
4559
- for (const change of changes) {
4560
- if (change.type === "replaced" && change.range.hash !== selfHash) {
4561
- replacedPeers.add(change.range.hash);
4562
- }
4563
- }
4564
4615
  const addedPeers = new Set();
4616
+ const warmupPeers = new Set();
4617
+ const hasSelfWarmupChange = changes.some((change) => change.range.hash === selfHash &&
4618
+ (change.type === "added" || change.type === "replaced"));
4565
4619
  for (const change of changes) {
4566
4620
  if (change.type === "added" || change.type === "replaced") {
4567
4621
  const hash = change.range.hash;
@@ -4573,11 +4627,22 @@ let SharedLog = (() => {
4573
4627
  }
4574
4628
  if (change.type === "added") {
4575
4629
  const hash = change.range.hash;
4576
- if (hash !== selfHash && !replacedPeers.has(hash)) {
4630
+ if (hash !== selfHash) {
4577
4631
  addedPeers.add(hash);
4632
+ warmupPeers.add(hash);
4578
4633
  }
4579
4634
  }
4580
4635
  }
4636
+ const hasAdaptiveStorageLimit = this._isAdaptiveReplicating &&
4637
+ this.replicationController?.maxMemoryLimit != null;
4638
+ const useJoinWarmupFastPath = !forceFreshDelivery &&
4639
+ warmupPeers.size > 0 &&
4640
+ !hasSelfWarmupChange &&
4641
+ !hasAdaptiveStorageLimit;
4642
+ const immediateRebalanceChanges = useJoinWarmupFastPath
4643
+ ? changes.filter((change) => !(change.range.hash === selfHash &&
4644
+ (change.type === "added" || change.type === "replaced")))
4645
+ : changes;
4581
4646
  try {
4582
4647
  const uncheckedDeliver = new Map();
4583
4648
  const flushUncheckedDeliverTarget = (target) => {
@@ -4585,11 +4650,11 @@ let SharedLog = (() => {
4585
4650
  if (!entries || entries.size === 0) {
4586
4651
  return;
4587
4652
  }
4588
- const isJoinWarmupTarget = addedPeers.has(target);
4589
- const bypassRecentDedupe = isJoinWarmupTarget || forceFreshDelivery;
4653
+ const isWarmupTarget = warmupPeers.has(target);
4654
+ const bypassRecentDedupe = isWarmupTarget || forceFreshDelivery;
4590
4655
  this.dispatchMaybeMissingEntries(target, entries, {
4591
4656
  bypassRecentDedupe,
4592
- retryScheduleMs: isJoinWarmupTarget
4657
+ retryScheduleMs: isWarmupTarget
4593
4658
  ? JOIN_WARMUP_RETRY_SCHEDULE_MS
4594
4659
  : undefined,
4595
4660
  forceFreshDelivery,
@@ -4610,12 +4675,64 @@ let SharedLog = (() => {
4610
4675
  flushUncheckedDeliverTarget(target);
4611
4676
  }
4612
4677
  };
4613
- for await (const entryReplicated of toRebalance(changes, this.entryCoordinatesIndex, this.recentlyRebalanced, { forceFresh: forceFreshDelivery })) {
4614
- if (this.closed) {
4615
- break;
4616
- }
4617
- let oldPeersSet;
4618
- if (!forceFreshDelivery) {
4678
+ if (immediateRebalanceChanges.length > 0) {
4679
+ for await (const entryReplicated of toRebalance(immediateRebalanceChanges, this.entryCoordinatesIndex, this.recentlyRebalanced, {
4680
+ forceFresh: forceFreshDelivery || useJoinWarmupFastPath,
4681
+ })) {
4682
+ if (this.closed) {
4683
+ break;
4684
+ }
4685
+ if (useJoinWarmupFastPath) {
4686
+ let oldPeersSet;
4687
+ const gid = entryReplicated.gid;
4688
+ oldPeersSet = gidPeersHistorySnapshot.get(gid);
4689
+ if (!gidPeersHistorySnapshot.has(gid)) {
4690
+ const existing = this._gidPeersHistory.get(gid);
4691
+ oldPeersSet = existing ? new Set(existing) : undefined;
4692
+ gidPeersHistorySnapshot.set(gid, oldPeersSet);
4693
+ }
4694
+ for (const target of warmupPeers) {
4695
+ queueUncheckedDeliver(target, entryReplicated);
4696
+ }
4697
+ const candidatePeers = new Set([selfHash]);
4698
+ for (const target of warmupPeers) {
4699
+ candidatePeers.add(target);
4700
+ }
4701
+ if (oldPeersSet) {
4702
+ for (const oldPeer of oldPeersSet) {
4703
+ candidatePeers.add(oldPeer);
4704
+ }
4705
+ }
4706
+ const currentPeers = await this.findLeaders(entryReplicated.coordinates, entryReplicated, {
4707
+ roleAge: 0,
4708
+ candidates: candidatePeers,
4709
+ persist: false,
4710
+ });
4711
+ if (oldPeersSet) {
4712
+ for (const oldPeer of oldPeersSet) {
4713
+ if (!currentPeers.has(oldPeer)) {
4714
+ this.removePruneRequestSent(entryReplicated.hash);
4715
+ }
4716
+ }
4717
+ }
4718
+ this.addPeersToGidPeerHistory(entryReplicated.gid, currentPeers.keys(), true);
4719
+ if (!currentPeers.has(selfHash)) {
4720
+ this.pruneDebouncedFnAddIfNotKeeping({
4721
+ key: entryReplicated.hash,
4722
+ value: { entry: entryReplicated, leaders: currentPeers },
4723
+ });
4724
+ this.responseToPruneDebouncedFn.delete(entryReplicated.hash);
4725
+ }
4726
+ else {
4727
+ this.pruneDebouncedFn.delete(entryReplicated.hash);
4728
+ await this._pendingDeletes
4729
+ .get(entryReplicated.hash)
4730
+ ?.reject(new Error("Failed to delete, is leader again"));
4731
+ this.removePruneRequestSent(entryReplicated.hash);
4732
+ }
4733
+ continue;
4734
+ }
4735
+ let oldPeersSet;
4619
4736
  const gid = entryReplicated.gid;
4620
4737
  oldPeersSet = gidPeersHistorySnapshot.get(gid);
4621
4738
  if (!gidPeersHistorySnapshot.has(gid)) {
@@ -4623,50 +4740,74 @@ let SharedLog = (() => {
4623
4740
  oldPeersSet = existing ? new Set(existing) : undefined;
4624
4741
  gidPeersHistorySnapshot.set(gid, oldPeersSet);
4625
4742
  }
4626
- }
4627
- let isLeader = false;
4628
- let currentPeers = await this.findLeaders(entryReplicated.coordinates, entryReplicated, {
4629
- // we do this to make sure new replicators get data even though they are not mature so they can figure out if they want to replicate more or less
4630
- // TODO make this smarter because if a new replicator is not mature and want to replicate too much data the syncing overhead can be bad
4631
- roleAge: 0,
4632
- });
4633
- for (const [currentPeer] of currentPeers) {
4634
- if (currentPeer === this.node.identity.publicKey.hashcode()) {
4635
- isLeader = true;
4636
- continue;
4637
- }
4638
- if (!oldPeersSet?.has(currentPeer)) {
4639
- queueUncheckedDeliver(currentPeer, entryReplicated);
4743
+ let isLeader = false;
4744
+ const currentPeers = await this.findLeaders(entryReplicated.coordinates, entryReplicated, {
4745
+ // We do this to make sure new replicators get data even though
4746
+ // they are not mature so they can figure out if they want to
4747
+ // replicate more or less.
4748
+ roleAge: 0,
4749
+ });
4750
+ for (const [currentPeer] of currentPeers) {
4751
+ if (currentPeer === this.node.identity.publicKey.hashcode()) {
4752
+ isLeader = true;
4753
+ continue;
4754
+ }
4755
+ if (!oldPeersSet?.has(currentPeer)) {
4756
+ queueUncheckedDeliver(currentPeer, entryReplicated);
4757
+ }
4640
4758
  }
4641
- }
4642
- if (oldPeersSet) {
4643
- for (const oldPeer of oldPeersSet) {
4644
- if (!currentPeers.has(oldPeer)) {
4645
- this.removePruneRequestSent(entryReplicated.hash);
4759
+ if (oldPeersSet) {
4760
+ for (const oldPeer of oldPeersSet) {
4761
+ if (!currentPeers.has(oldPeer)) {
4762
+ this.removePruneRequestSent(entryReplicated.hash);
4763
+ }
4646
4764
  }
4647
4765
  }
4648
- }
4649
- this.addPeersToGidPeerHistory(entryReplicated.gid, currentPeers.keys(), true);
4650
- if (!isLeader) {
4651
- this.pruneDebouncedFnAddIfNotKeeping({
4652
- key: entryReplicated.hash,
4653
- value: { entry: entryReplicated, leaders: currentPeers },
4654
- });
4655
- this.responseToPruneDebouncedFn.delete(entryReplicated.hash); // don't allow others to prune because of expecting me to replicating this entry
4656
- }
4657
- else {
4658
- this.pruneDebouncedFn.delete(entryReplicated.hash);
4659
- await this._pendingDeletes
4660
- .get(entryReplicated.hash)
4661
- ?.reject(new Error("Failed to delete, is leader again"));
4662
- this.removePruneRequestSent(entryReplicated.hash);
4766
+ this.addPeersToGidPeerHistory(entryReplicated.gid, currentPeers.keys(), true);
4767
+ if (!isLeader) {
4768
+ this.pruneDebouncedFnAddIfNotKeeping({
4769
+ key: entryReplicated.hash,
4770
+ value: { entry: entryReplicated, leaders: currentPeers },
4771
+ });
4772
+ this.responseToPruneDebouncedFn.delete(entryReplicated.hash); // don't allow others to prune because of expecting me to replicating this entry
4773
+ }
4774
+ else {
4775
+ this.pruneDebouncedFn.delete(entryReplicated.hash);
4776
+ await this._pendingDeletes
4777
+ .get(entryReplicated.hash)
4778
+ ?.reject(new Error("Failed to delete, is leader again"));
4779
+ this.removePruneRequestSent(entryReplicated.hash);
4780
+ }
4663
4781
  }
4664
4782
  }
4665
- if (forceFreshDelivery || addedPeers.size > 0) {
4666
- // Schedule a coalesced background sweep for churn/join windows instead of
4667
- // scanning the whole index synchronously on each replication change.
4783
+ if (forceFreshDelivery) {
4784
+ // Removed/shrunk ranges still need the authoritative background pass.
4668
4785
  this.scheduleRepairSweep({ forceFreshDelivery, addedPeers });
4669
4786
  }
4787
+ else if (useJoinWarmupFastPath) {
4788
+ // Pure join warmup uses the cheap immediate maybe-missing dispatch above,
4789
+ // then defers the authoritative sweep so it does not compete with the
4790
+ // write burst itself.
4791
+ const peers = new Set(addedPeers);
4792
+ const timer = setTimeout(() => {
4793
+ this._repairRetryTimers.delete(timer);
4794
+ if (this.closed) {
4795
+ return;
4796
+ }
4797
+ this.scheduleRepairSweep({
4798
+ forceFreshDelivery: false,
4799
+ addedPeers: peers,
4800
+ });
4801
+ }, 250);
4802
+ timer.unref?.();
4803
+ this._repairRetryTimers.add(timer);
4804
+ }
4805
+ else if (addedPeers.size > 0) {
4806
+ this.scheduleRepairSweep({
4807
+ forceFreshDelivery: false,
4808
+ addedPeers,
4809
+ });
4810
+ }
4670
4811
  for (const target of [...uncheckedDeliver.keys()]) {
4671
4812
  flushUncheckedDeliverTarget(target);
4672
4813
  }
@@ -4696,6 +4837,7 @@ let SharedLog = (() => {
4696
4837
  if (!prev || prev < now) {
4697
4838
  this.latestReplicationInfoMessage.set(fromHash, now);
4698
4839
  }
4840
+ this.invalidateSharedLogTopicSubscribersCache();
4699
4841
  return this.handleSubscriptionChange(evt.detail.from, evt.detail.topics, false);
4700
4842
  }
4701
4843
  async _onSubscription(evt) {
@@ -4705,6 +4847,7 @@ let SharedLog = (() => {
4705
4847
  }
4706
4848
  this.remoteBlocks.onReachable(evt.detail.from);
4707
4849
  this._replicationInfoBlockedPeers.delete(evt.detail.from.hashcode());
4850
+ this.invalidateSharedLogTopicSubscribersCache();
4708
4851
  await this.handleSubscriptionChange(evt.detail.from, evt.detail.topics, true);
4709
4852
  }
4710
4853
  async rebalanceParticipation() {