@peerbit/shared-log 13.1.16 → 13.1.17

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 (39) hide show
  1. package/dist/benchmark/native-graph.d.ts +2 -0
  2. package/dist/benchmark/native-graph.d.ts.map +1 -0
  3. package/dist/benchmark/native-graph.js +249 -0
  4. package/dist/benchmark/native-graph.js.map +1 -0
  5. package/dist/benchmark/sync-batch-sweep.js +72 -24
  6. package/dist/benchmark/sync-batch-sweep.js.map +1 -1
  7. package/dist/benchmark/sync-phase-profile.d.ts +2 -0
  8. package/dist/benchmark/sync-phase-profile.d.ts.map +1 -0
  9. package/dist/benchmark/sync-phase-profile.js +303 -0
  10. package/dist/benchmark/sync-phase-profile.js.map +1 -0
  11. package/dist/src/checked-prune.d.ts +55 -0
  12. package/dist/src/checked-prune.d.ts.map +1 -0
  13. package/dist/src/checked-prune.js +244 -0
  14. package/dist/src/checked-prune.js.map +1 -0
  15. package/dist/src/index.d.ts +10 -9
  16. package/dist/src/index.d.ts.map +1 -1
  17. package/dist/src/index.js +265 -164
  18. package/dist/src/index.js.map +1 -1
  19. package/dist/src/sync/index.d.ts +9 -1
  20. package/dist/src/sync/index.d.ts.map +1 -1
  21. package/dist/src/sync/profile.d.ts +3 -0
  22. package/dist/src/sync/profile.d.ts.map +1 -0
  23. package/dist/src/sync/profile.js +2 -0
  24. package/dist/src/sync/profile.js.map +1 -0
  25. package/dist/src/sync/rateless-iblt.d.ts +25 -11
  26. package/dist/src/sync/rateless-iblt.d.ts.map +1 -1
  27. package/dist/src/sync/rateless-iblt.js +597 -106
  28. package/dist/src/sync/rateless-iblt.js.map +1 -1
  29. package/dist/src/sync/simple.d.ts +5 -0
  30. package/dist/src/sync/simple.d.ts.map +1 -1
  31. package/dist/src/sync/simple.js +224 -74
  32. package/dist/src/sync/simple.js.map +1 -1
  33. package/package.json +17 -13
  34. package/src/checked-prune.ts +331 -0
  35. package/src/index.ts +429 -282
  36. package/src/sync/index.ts +11 -1
  37. package/src/sync/profile.ts +9 -0
  38. package/src/sync/rateless-iblt.ts +768 -128
  39. package/src/sync/simple.ts +256 -94
@@ -1 +1 @@
1
- {"version":3,"file":"rateless-iblt.js","sourceRoot":"","sources":["../../../src/sync/rateless-iblt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rateless-iblt.js","sourceRoot":"","sources":["../../../src/sync/rateless-iblt.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,7 @@ export declare class ConfirmEntriesMessage extends TransportMessage {
31
31
  hashes: string[];
32
32
  });
33
33
  }
34
+ export declare const SYNC_MESSAGE_PRIORITY = 1;
34
35
  export declare class SimpleSyncronizer<R extends "u32" | "u64"> implements Syncronizer<R> {
35
36
  syncInFlightQueue: Map<SyncableKey, PublicSignKey[]>;
36
37
  syncInFlightQueueInverted: Map<string, Set<SyncableKey>>;
@@ -65,6 +66,7 @@ export declare class SimpleSyncronizer<R extends "u32" | "u64"> implements Syncr
65
66
  private refreshRepairSessionState;
66
67
  private markRepairSessionResolvedHashes;
67
68
  private runRepairSession;
69
+ private getQueuedSyncKey;
68
70
  startRepairSession(properties: {
69
71
  entries: Map<string, EntryReplicated<R>>;
70
72
  targets: string[];
@@ -91,6 +93,9 @@ export declare class SimpleSyncronizer<R extends "u32" | "u64"> implements Syncr
91
93
  onEntryAdded(entry: Entry<any>): void;
92
94
  onEntryRemoved(hash: string): void;
93
95
  private clearSyncProcessKey;
96
+ private clearSyncInFlightKey;
97
+ private getKnownAliases;
98
+ private clearSyncInFlightForPeer;
94
99
  private clearSyncProcess;
95
100
  onPeerDisconnected(key: PublicSignKey | string): Promise<void> | void;
96
101
  private clearSyncProcessPublicKeyHash;
@@ -1 +1 @@
1
- {"version":3,"file":"simple.d.ts","sourceRoot":"","sources":["../../../src/sync/simple.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simple.d.ts","sourceRoot":"","sources":["../../../src/sync/simple.ts"],"names":[],"mappings":"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"}
@@ -36,9 +36,10 @@ import { field, variant, vec } from "@dao-xyz/borsh";
36
36
  import { Cache } from "@peerbit/cache";
37
37
  import { Compare, IntegerCompare, Or, } from "@peerbit/indexer-interface";
38
38
  import { Entry, Log } from "@peerbit/log";
39
- import { SilentDelivery } from "@peerbit/stream-interface";
39
+ import { CONVERGENCE_MESSAGE_PRIORITY, SilentDelivery, } from "@peerbit/stream-interface";
40
40
  import { EntryWithRefs, createExchangeHeadsMessages, } from "../exchange-heads.js";
41
41
  import { TransportMessage } from "../message.js";
42
+ import { emitSyncProfileDuration, syncProfileStart } from "./profile.js";
42
43
  let RequestMaybeSync = (() => {
43
44
  let _classDecorators = [variant([0, 1])];
44
45
  let _classDescriptor;
@@ -199,6 +200,9 @@ const SESSION_POLL_INTERVAL_MS = 100;
199
200
  const DEFAULT_MAX_HASHES_PER_MESSAGE = 1_024;
200
201
  const DEFAULT_MAX_COORDINATES_PER_MESSAGE = 1_024;
201
202
  const DEFAULT_MAX_CONVERGENT_TRACKED_HASHES = 4_096;
203
+ // Keep convergence sync above the default/background lane. Dropping it to the
204
+ // background priority lets repair traffic starve behind foreground work.
205
+ export const SYNC_MESSAGE_PRIORITY = CONVERGENCE_MESSAGE_PRIORITY;
202
206
  // Retry missing entry requests when the first response was lost (for example, due to
203
207
  // pubsub stream warmup). Keep it coarse-grained so we do not hammer the network under
204
208
  // large historical backfills.
@@ -441,6 +445,22 @@ export class SimpleSyncronizer {
441
445
  });
442
446
  }
443
447
  }
448
+ getQueuedSyncKey(key) {
449
+ if (this.syncInFlightQueue.has(key)) {
450
+ return key;
451
+ }
452
+ if (typeof key === "string") {
453
+ for (const queuedKey of this.syncInFlightQueue.keys()) {
454
+ if (typeof queuedKey === "bigint" &&
455
+ this.coordinateToHash.get(queuedKey) === key) {
456
+ return queuedKey;
457
+ }
458
+ }
459
+ return undefined;
460
+ }
461
+ const hash = this.coordinateToHash.get(key);
462
+ return hash && this.syncInFlightQueue.has(hash) ? hash : undefined;
463
+ }
444
464
  startRepairSession(properties) {
445
465
  const mode = properties.mode ?? "best-effort";
446
466
  const startedAt = Date.now();
@@ -450,7 +470,8 @@ export class SimpleSyncronizer {
450
470
  : DEFAULT_CONVERGENT_REPAIR_TIMEOUT_MS)));
451
471
  const retryIntervalsMs = this.normalizeRetryIntervals(mode, properties.retryIntervalsMs);
452
472
  const allHashes = this.getPrioritizedHashes(properties.entries);
453
- const trackedHashes = mode === "convergent" && allHashes.length > this.maxConvergentTrackedHashes
473
+ const trackedHashes = mode === "convergent" &&
474
+ allHashes.length > this.maxConvergentTrackedHashes
454
475
  ? allHashes.slice(0, this.maxConvergentTrackedHashes)
455
476
  : allHashes;
456
477
  const truncated = trackedHashes.length < allHashes.length;
@@ -513,16 +534,30 @@ export class SimpleSyncronizer {
513
534
  },
514
535
  };
515
536
  }
516
- onMaybeMissingEntries(properties) {
537
+ async onMaybeMissingEntries(properties) {
538
+ const profile = this.syncOptions?.profile;
539
+ const startedAt = syncProfileStart(profile);
517
540
  const hashes = this.getPrioritizedHashes(properties.entries);
518
541
  const chunks = this.chunk(hashes, this.maxHashesPerMessage);
519
- return chunks.reduce((promise, chunk) => promise.then(() => this.rpc.send(new RequestMaybeSync({ hashes: chunk }), {
520
- priority: 1,
521
- mode: new SilentDelivery({
522
- to: properties.targets,
523
- redundancy: 1,
524
- }),
525
- })), Promise.resolve());
542
+ try {
543
+ await chunks.reduce((promise, chunk) => promise.then(() => this.rpc.send(new RequestMaybeSync({ hashes: chunk }), {
544
+ priority: SYNC_MESSAGE_PRIORITY,
545
+ mode: new SilentDelivery({
546
+ to: properties.targets,
547
+ redundancy: 1,
548
+ }),
549
+ })), Promise.resolve());
550
+ }
551
+ finally {
552
+ if (profile) {
553
+ emitSyncProfileDuration(profile, startedAt, {
554
+ name: "simple.onMaybeMissingEntries",
555
+ entries: hashes.length,
556
+ messages: chunks.length,
557
+ targets: properties.targets.length,
558
+ });
559
+ }
560
+ }
526
561
  }
527
562
  async onMessage(msg, context) {
528
563
  const from = context.from;
@@ -533,21 +568,63 @@ export class SimpleSyncronizer {
533
568
  else if (msg instanceof ResponseMaybeSync) {
534
569
  // TODO perhaps send less messages to more receivers for performance reasons?
535
570
  // TODO wait for previous send to target before trying to send more?
536
- for await (const message of createExchangeHeadsMessages(this.log, msg.hashes)) {
537
- await this.rpc.send(message, {
538
- mode: new SilentDelivery({ to: [context.from], redundancy: 1 }),
539
- });
571
+ const profile = this.syncOptions?.profile;
572
+ const startedAt = syncProfileStart(profile);
573
+ let messages = 0;
574
+ try {
575
+ for await (const message of createExchangeHeadsMessages(this.log, msg.hashes)) {
576
+ messages += 1;
577
+ await this.rpc.send(message, {
578
+ mode: new SilentDelivery({ to: [context.from], redundancy: 1 }),
579
+ });
580
+ }
581
+ }
582
+ finally {
583
+ if (profile) {
584
+ emitSyncProfileDuration(profile, startedAt, {
585
+ name: "simple.exchangeHeads",
586
+ entries: msg.hashes.length,
587
+ messages,
588
+ targets: 1,
589
+ details: { source: "responseMaybeSync" },
590
+ });
591
+ }
540
592
  }
541
593
  return true;
542
594
  }
543
595
  else if (msg instanceof RequestMaybeSyncCoordinate) {
596
+ const profile = this.syncOptions?.profile;
597
+ const lookupStartedAt = syncProfileStart(profile);
544
598
  const hashes = await getHashesFromSymbols(msg.hashNumbers, this.entryIndex, this.coordinateToHash);
545
- for await (const message of createExchangeHeadsMessages(this.log, hashes)) {
546
- await this.rpc.send(message, {
547
- mode: new SilentDelivery({ to: [context.from], redundancy: 1 }),
548
- // dont set priority 1 here because this will block other messages that should higher priority
599
+ if (profile) {
600
+ emitSyncProfileDuration(profile, lookupStartedAt, {
601
+ name: "simple.coordinateLookup",
602
+ entries: hashes.size,
603
+ symbols: msg.hashNumbers.length,
549
604
  });
550
605
  }
606
+ const exchangeStartedAt = syncProfileStart(profile);
607
+ let messages = 0;
608
+ try {
609
+ for await (const message of createExchangeHeadsMessages(this.log, hashes)) {
610
+ messages += 1;
611
+ await this.rpc.send(message, {
612
+ mode: new SilentDelivery({ to: [context.from], redundancy: 1 }),
613
+ // dont set priority 1 here because this will block other messages that should higher priority
614
+ });
615
+ }
616
+ }
617
+ finally {
618
+ if (profile) {
619
+ emitSyncProfileDuration(profile, exchangeStartedAt, {
620
+ name: "simple.exchangeHeads",
621
+ entries: hashes.size,
622
+ messages,
623
+ targets: 1,
624
+ details: { source: "requestMaybeSyncCoordinate" },
625
+ });
626
+ }
627
+ }
551
628
  return true;
552
629
  }
553
630
  else {
@@ -558,87 +635,125 @@ export class SimpleSyncronizer {
558
635
  const resolvedHashes = [];
559
636
  for (const entry of properties.entries) {
560
637
  resolvedHashes.push(entry.entry.hash);
561
- const set = this.syncInFlight.get(properties.from.hashcode());
562
- if (set) {
563
- set.delete(entry.entry.hash);
564
- if (set?.size === 0) {
565
- this.syncInFlight.delete(properties.from.hashcode());
566
- }
567
- }
638
+ this.clearSyncInFlightForPeer(properties.from.hashcode(), entry.entry.hash);
568
639
  }
569
640
  this.markRepairSessionResolvedHashes(resolvedHashes);
570
641
  }
571
642
  async queueSync(keys, from, options) {
572
643
  const requestHashes = [];
573
- for (const coordinateOrHash of keys) {
574
- const inFlight = this.syncInFlightQueue.get(coordinateOrHash);
575
- if (inFlight) {
576
- if (!inFlight.find((x) => x.hashcode() === from.hashcode())) {
577
- inFlight.push(from);
644
+ const profile = this.syncOptions?.profile;
645
+ const startedAt = syncProfileStart(profile);
646
+ try {
647
+ for (const key of keys) {
648
+ const coordinateOrHash = this.getQueuedSyncKey(key) ?? key;
649
+ const inFlight = this.syncInFlightQueue.get(coordinateOrHash);
650
+ if (inFlight) {
651
+ if (!inFlight.find((x) => x.hashcode() === from.hashcode())) {
652
+ inFlight.push(from);
653
+ let inverted = this.syncInFlightQueueInverted.get(from.hashcode());
654
+ if (!inverted) {
655
+ inverted = new Set();
656
+ this.syncInFlightQueueInverted.set(from.hashcode(), inverted);
657
+ }
658
+ inverted.add(coordinateOrHash);
659
+ }
660
+ }
661
+ else if (options?.skipCheck ||
662
+ !(await this.checkHasCoordinateOrHash(coordinateOrHash))) {
663
+ // Track the initial sender so we can retry if the first request is lost.
664
+ this.syncInFlightQueue.set(coordinateOrHash, [from]);
578
665
  let inverted = this.syncInFlightQueueInverted.get(from.hashcode());
579
666
  if (!inverted) {
580
667
  inverted = new Set();
581
668
  this.syncInFlightQueueInverted.set(from.hashcode(), inverted);
582
669
  }
583
670
  inverted.add(coordinateOrHash);
671
+ requestHashes.push(coordinateOrHash); // request immediately (first time we have seen this hash)
584
672
  }
585
673
  }
586
- else if (options?.skipCheck ||
587
- !(await this.checkHasCoordinateOrHash(coordinateOrHash))) {
588
- // Track the initial sender so we can retry if the first request is lost.
589
- this.syncInFlightQueue.set(coordinateOrHash, [from]);
590
- let inverted = this.syncInFlightQueueInverted.get(from.hashcode());
591
- if (!inverted) {
592
- inverted = new Set();
593
- this.syncInFlightQueueInverted.set(from.hashcode(), inverted);
594
- }
595
- inverted.add(coordinateOrHash);
596
- requestHashes.push(coordinateOrHash); // request immediately (first time we have seen this hash)
674
+ requestHashes.length > 0 &&
675
+ (await this.requestSync(requestHashes, [from.hashcode()]));
676
+ }
677
+ finally {
678
+ if (profile) {
679
+ emitSyncProfileDuration(profile, startedAt, {
680
+ name: "simple.queueSync",
681
+ entries: keys.length,
682
+ targets: 1,
683
+ details: {
684
+ requested: requestHashes.length,
685
+ skipCheck: options?.skipCheck === true,
686
+ },
687
+ });
597
688
  }
598
689
  }
599
- requestHashes.length > 0 &&
600
- (await this.requestSync(requestHashes, [from.hashcode()]));
601
690
  }
602
691
  async requestSync(hashes, to) {
603
692
  if (hashes.length === 0) {
604
693
  return;
605
694
  }
606
- const now = +new Date();
607
- for (const node of to) {
608
- let map = this.syncInFlight.get(node);
609
- if (!map) {
610
- map = new Map();
611
- this.syncInFlight.set(node, map);
695
+ const profile = this.syncOptions?.profile;
696
+ const startedAt = syncProfileStart(profile);
697
+ let coordinateMessages = 0;
698
+ let stringMessages = 0;
699
+ let coordinateHashCount = 0;
700
+ let stringHashCount = 0;
701
+ try {
702
+ const now = +new Date();
703
+ for (const node of to) {
704
+ let map = this.syncInFlight.get(node);
705
+ if (!map) {
706
+ map = new Map();
707
+ this.syncInFlight.set(node, map);
708
+ }
709
+ for (const hash of hashes) {
710
+ map.set(hash, { timestamp: now });
711
+ }
612
712
  }
713
+ const coordinateHashes = [];
714
+ const stringHashes = [];
613
715
  for (const hash of hashes) {
614
- map.set(hash, { timestamp: now });
615
- }
616
- }
617
- const coordinateHashes = [];
618
- const stringHashes = [];
619
- for (const hash of hashes) {
620
- if (typeof hash === "bigint") {
621
- coordinateHashes.push(hash);
716
+ if (typeof hash === "bigint") {
717
+ coordinateHashes.push(hash);
718
+ }
719
+ else {
720
+ stringHashes.push(hash);
721
+ }
622
722
  }
623
- else {
624
- stringHashes.push(hash);
723
+ coordinateHashCount = coordinateHashes.length;
724
+ stringHashCount = stringHashes.length;
725
+ if (coordinateHashes.length > 0) {
726
+ const chunks = this.chunk(coordinateHashes, this.maxCoordinatesPerMessage);
727
+ coordinateMessages = chunks.length;
728
+ for (const chunk of chunks) {
729
+ await this.rpc.send(new RequestMaybeSyncCoordinate({ hashNumbers: chunk }), {
730
+ mode: new SilentDelivery({ to, redundancy: 1 }),
731
+ priority: SYNC_MESSAGE_PRIORITY,
732
+ });
733
+ }
625
734
  }
626
- }
627
- if (coordinateHashes.length > 0) {
628
- const chunks = this.chunk(coordinateHashes, this.maxCoordinatesPerMessage);
629
- for (const chunk of chunks) {
630
- await this.rpc.send(new RequestMaybeSyncCoordinate({ hashNumbers: chunk }), {
631
- mode: new SilentDelivery({ to, redundancy: 1 }),
632
- priority: 1,
633
- });
735
+ if (stringHashes.length > 0) {
736
+ const chunks = this.chunk(stringHashes, this.maxHashesPerMessage);
737
+ stringMessages = chunks.length;
738
+ for (const chunk of chunks) {
739
+ await this.rpc.send(new ResponseMaybeSync({ hashes: chunk }), {
740
+ mode: new SilentDelivery({ to, redundancy: 1 }),
741
+ priority: SYNC_MESSAGE_PRIORITY,
742
+ });
743
+ }
634
744
  }
635
745
  }
636
- if (stringHashes.length > 0) {
637
- const chunks = this.chunk(stringHashes, this.maxHashesPerMessage);
638
- for (const chunk of chunks) {
639
- await this.rpc.send(new ResponseMaybeSync({ hashes: chunk }), {
640
- mode: new SilentDelivery({ to, redundancy: 1 }),
641
- priority: 1,
746
+ finally {
747
+ if (profile) {
748
+ emitSyncProfileDuration(profile, startedAt, {
749
+ name: "simple.requestSync",
750
+ entries: hashes.length,
751
+ messages: coordinateMessages + stringMessages,
752
+ targets: Array.isArray(to) ? to.length : to.size,
753
+ details: {
754
+ coordinateHashes: coordinateHashCount,
755
+ stringHashes: stringHashCount,
756
+ },
642
757
  });
643
758
  }
644
759
  }
@@ -745,9 +860,44 @@ export class SimpleSyncronizer {
745
860
  }
746
861
  this.syncInFlightQueue.delete(key);
747
862
  }
863
+ this.clearSyncInFlightKey(key);
864
+ }
865
+ clearSyncInFlightKey(key) {
866
+ for (const [peer, map] of this.syncInFlight) {
867
+ map.delete(key);
868
+ if (map.size === 0) {
869
+ this.syncInFlight.delete(peer);
870
+ }
871
+ }
872
+ }
873
+ getKnownAliases(hash) {
874
+ const aliases = new Set([hash]);
875
+ for (const key of [
876
+ ...this.syncInFlightQueue.keys(),
877
+ ...[...this.syncInFlight.values()].flatMap((map) => [...map.keys()]),
878
+ ]) {
879
+ if (typeof key === "bigint" && this.coordinateToHash.get(key) === hash) {
880
+ aliases.add(key);
881
+ }
882
+ }
883
+ return [...aliases];
884
+ }
885
+ clearSyncInFlightForPeer(publicKeyHash, hash) {
886
+ const map = this.syncInFlight.get(publicKeyHash);
887
+ if (!map) {
888
+ return;
889
+ }
890
+ for (const key of this.getKnownAliases(hash)) {
891
+ map.delete(key);
892
+ }
893
+ if (map.size === 0) {
894
+ this.syncInFlight.delete(publicKeyHash);
895
+ }
748
896
  }
749
897
  clearSyncProcess(hash) {
750
- this.clearSyncProcessKey(hash);
898
+ for (const key of this.getKnownAliases(hash)) {
899
+ this.clearSyncProcessKey(key);
900
+ }
751
901
  }
752
902
  onPeerDisconnected(key) {
753
903
  const publicKeyHash = typeof key === "string" ? key : key.hashcode();