@peerbit/pubsub 5.3.11 → 5.4.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.
Files changed (50) hide show
  1. package/dist/src/index.d.ts +31 -13
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +622 -145
  4. package/dist/src/index.js.map +1 -1
  5. package/package.json +8 -7
  6. package/src/index.ts +914 -216
  7. package/dist/benchmark/fanout-tree-parent-upgrade-default-ready.d.ts +0 -3
  8. package/dist/benchmark/fanout-tree-parent-upgrade-default-ready.d.ts.map +0 -1
  9. package/dist/benchmark/fanout-tree-parent-upgrade-default-ready.js +0 -90
  10. package/dist/benchmark/fanout-tree-parent-upgrade-default-ready.js.map +0 -1
  11. package/dist/benchmark/fanout-tree-parent-upgrade-eval.d.ts +0 -2
  12. package/dist/benchmark/fanout-tree-parent-upgrade-eval.d.ts.map +0 -1
  13. package/dist/benchmark/fanout-tree-parent-upgrade-eval.js +0 -712
  14. package/dist/benchmark/fanout-tree-parent-upgrade-eval.js.map +0 -1
  15. package/dist/benchmark/fanout-tree-parent-upgrade-multi-eval.d.ts +0 -2
  16. package/dist/benchmark/fanout-tree-parent-upgrade-multi-eval.d.ts.map +0 -1
  17. package/dist/benchmark/fanout-tree-parent-upgrade-multi-eval.js +0 -1591
  18. package/dist/benchmark/fanout-tree-parent-upgrade-multi-eval.js.map +0 -1
  19. package/dist/benchmark/fanout-tree-parent-upgrade-prepush.d.ts +0 -2
  20. package/dist/benchmark/fanout-tree-parent-upgrade-prepush.d.ts.map +0 -1
  21. package/dist/benchmark/fanout-tree-parent-upgrade-prepush.js +0 -297
  22. package/dist/benchmark/fanout-tree-parent-upgrade-prepush.js.map +0 -1
  23. package/dist/benchmark/fanout-tree-parent-upgrade-preset.d.ts +0 -73
  24. package/dist/benchmark/fanout-tree-parent-upgrade-preset.d.ts.map +0 -1
  25. package/dist/benchmark/fanout-tree-parent-upgrade-preset.js +0 -183
  26. package/dist/benchmark/fanout-tree-parent-upgrade-preset.js.map +0 -1
  27. package/dist/benchmark/fanout-tree-sim-lib.d.ts +0 -303
  28. package/dist/benchmark/fanout-tree-sim-lib.d.ts.map +0 -1
  29. package/dist/benchmark/fanout-tree-sim-lib.js +0 -1752
  30. package/dist/benchmark/fanout-tree-sim-lib.js.map +0 -1
  31. package/dist/benchmark/fanout-tree-sim.d.ts +0 -2
  32. package/dist/benchmark/fanout-tree-sim.d.ts.map +0 -1
  33. package/dist/benchmark/fanout-tree-sim.js +0 -870
  34. package/dist/benchmark/fanout-tree-sim.js.map +0 -1
  35. package/dist/benchmark/index.d.ts +0 -8
  36. package/dist/benchmark/index.d.ts.map +0 -1
  37. package/dist/benchmark/index.js +0 -62
  38. package/dist/benchmark/index.js.map +0 -1
  39. package/dist/benchmark/pubsub-topic-sim-lib.d.ts +0 -86
  40. package/dist/benchmark/pubsub-topic-sim-lib.d.ts.map +0 -1
  41. package/dist/benchmark/pubsub-topic-sim-lib.js +0 -680
  42. package/dist/benchmark/pubsub-topic-sim-lib.js.map +0 -1
  43. package/dist/benchmark/pubsub-topic-sim.d.ts +0 -9
  44. package/dist/benchmark/pubsub-topic-sim.d.ts.map +0 -1
  45. package/dist/benchmark/pubsub-topic-sim.js +0 -134
  46. package/dist/benchmark/pubsub-topic-sim.js.map +0 -1
  47. package/dist/benchmark/sim/bench-utils.d.ts +0 -25
  48. package/dist/benchmark/sim/bench-utils.d.ts.map +0 -1
  49. package/dist/benchmark/sim/bench-utils.js +0 -141
  50. package/dist/benchmark/sim/bench-utils.js.map +0 -1
@@ -1,183 +0,0 @@
1
- const PARENT_UPGRADE_RUNTIME_OPTION_KEYS = [
2
- "parentUpgradeIntervalMs",
3
- "parentUpgradeLeafOnly",
4
- "parentUpgradeMinLevelGain",
5
- "parentUpgradeRootMinLevelGain",
6
- "parentUpgradeRootMinSubtreeGain",
7
- "parentUpgradeNonRootMinLevelGain",
8
- "parentUpgradeMinFreeSlots",
9
- "parentUpgradeRootMinFreeSlots",
10
- "parentUpgradeMaxChildLoadRatio",
11
- "parentUpgradeRootMaxChildLoadRatio",
12
- "parentUpgradeCooldownMs",
13
- "parentUpgradeFailedBackoffMinMs",
14
- "parentUpgradeFailedBackoffMaxMs",
15
- "parentUpgradeQuietMs",
16
- "parentUpgradeRepairQuietMs",
17
- "parentUpgradeMaxPerPeer",
18
- "parentUpgradeRepairGuard",
19
- "parentUpgradeDataGuard",
20
- "parentUpgradeMode",
21
- "parentUpgradeVerifyStaleRootCapacity",
22
- "parentUpgradeStaleRootProbeProbability",
23
- "parentProbeTimeoutMs",
24
- "parentProbeMaxPerRound",
25
- "parentProbeMaxLagMessages",
26
- "parentProbeRejectCooldownMs",
27
- "parentProbeRejectCooldownMaxMs",
28
- "parentShadowObserveMs",
29
- "parentShadowMinObservations",
30
- "parentShadowDualPathMs",
31
- "parentShadowDualPathMinMessages",
32
- ];
33
- export const DEFAULT_CANDIDATE_PRESET = "default-candidate";
34
- export const DEFAULT_PARENT_UPGRADE_SEEDS = [1, 2, 3];
35
- export const DEFAULT_PARENT_UPGRADE_SEED_CSV = DEFAULT_PARENT_UPGRADE_SEEDS.join(",");
36
- export const DEFAULT_PARENT_UPGRADE_FAST_SEED_CSV = "1";
37
- const RAW_STALE_ROOT_PROBE_PROBABILITY = 0.015625;
38
- const DEFAULT_CANDIDATE_STALE_ROOT_PROBE_PROBABILITY = 0.00390625;
39
- export const PARENT_UPGRADE_FRONTIER_ROOT_CAPS = [
40
- "0.2",
41
- "0.225",
42
- "0.25",
43
- "0.4",
44
- ];
45
- export const PARENT_UPGRADE_HELP_TEXT = [
46
- " --parentUpgradePreset NAME preset to evaluate (raw|default-candidate, default: raw)",
47
- " --parentUpgradeIntervalMs MS upgrade check interval for treatment run (default: 1000)",
48
- " --parentUpgradeLeafOnly 0|1 restrict treatment upgrades to leaves (default: 1)",
49
- " --parentUpgradeMinLevelGain N min tree-level gain for treatment upgrades (default: 2)",
50
- " --parentUpgradeRootMinLevelGain N min tree-level gain for root treatment targets (default: 3)",
51
- " --parentUpgradeRootMinSubtreeGain N min level-gain times local branch size for root treatment targets (default: parentUpgradeRootMinLevelGain)",
52
- " --parentUpgradeNonRootMinLevelGain N min tree-level gain for non-root treatment targets (default: 2)",
53
- " --parentUpgradeMinFreeSlots N min free slots for treatment upgrade targets (default: 8)",
54
- " --parentUpgradeRootMinFreeSlots N min free slots for root treatment targets (default: parentUpgradeMinFreeSlots)",
55
- " --parentUpgradeMaxChildLoadRatio R max child load ratio after accepting treatment child (default: 0.5)",
56
- " --parentUpgradeRootMaxChildLoadRatio R max root child load ratio after accepting treatment child (default: min(parentUpgradeMaxChildLoadRatio, 0.4))",
57
- " --parentUpgradeCooldownMs MS cooldown after successful treatment upgrades (default: 5000)",
58
- " --parentUpgradeFailedBackoffMinMs MS initial backoff after failed probe/shadow rounds (default: 5000)",
59
- " --parentUpgradeFailedBackoffMaxMs MS max backoff after failed probe/shadow rounds (default: 60000)",
60
- " --parentUpgradeQuietMs MS min quiet time since parent data before upgrades (default: 5000)",
61
- " --parentUpgradeRepairQuietMs MS min quiet time since repair before upgrades (default: parentUpgradeQuietMs)",
62
- " --parentUpgradeMaxPerPeer N max successful treatment upgrades per peer, 0 = unlimited (default: 2)",
63
- " --parentUpgradeRepairGuard 0|1 skip treatment upgrades while missing data (default: 1)",
64
- " --parentUpgradeDataGuard 0|1 wait for finite channel completion before treatment upgrades (default: 1)",
65
- " --parentUpgradeMode MODE treatment upgrade mode (direct|probe|shadow, default: preset-dependent)",
66
- " --parentUpgradeVerifyStaleRootCapacity 0|1 allow shadow probes against tracker-full root (default: 1 for default-candidate, otherwise 0)",
67
- " --parentUpgradeStaleRootProbeProbability R base sample for tracker-full root probes per peer (default: 0.015625, default-candidate: 0.00390625)",
68
- " --parentProbeTimeoutMs MS timeout for probe-mode parent checks (default: 500)",
69
- " --parentProbeMaxPerRound N max probe-mode candidates per upgrade check (default: 2)",
70
- " --parentProbeMaxLagMessages N max sequence lag for probe-mode candidates (default: 0)",
71
- " --parentProbeRejectCooldownMs MS cooldown after rejected parent probes (default: 10000)",
72
- " --parentProbeRejectCooldownMaxMs MS max adaptive cooldown after rejected parent probes (default: 60000)",
73
- " --parentShadowObserveMs MS min healthy shadow observation window before promotion (default: 2000)",
74
- " --parentShadowMinObservations N min successful shadow observations before promotion (default: 2)",
75
- " --parentShadowDualPathMs MS keep old parent during active-flow shadow cutover until candidate data is observed (default: 5000 for default-candidate, otherwise 0)",
76
- " --parentShadowDualPathMinMessages N min candidate data messages before active-flow cutover (default: 32 for default-candidate, otherwise 1)",
77
- ];
78
- export const defaultCandidateArgs = (...args) => [
79
- "--parentUpgradePreset",
80
- DEFAULT_CANDIDATE_PRESET,
81
- ...args,
82
- ];
83
- export const parentUpgradeRuntimeOptions = (config, enabled = true) => Object.fromEntries(PARENT_UPGRADE_RUNTIME_OPTION_KEYS.map((key) => [
84
- key,
85
- key === "parentUpgradeIntervalMs" && !enabled ? 0 : config[key],
86
- ]));
87
- export const parseBool01 = (value, fallback) => {
88
- if (value === undefined)
89
- return fallback;
90
- return value === "1";
91
- };
92
- export const parseCsvNumbers = (value, fallback) => {
93
- if (!value)
94
- return [...fallback];
95
- const parsed = value
96
- .split(",")
97
- .map((part) => Number(part.trim()))
98
- .filter((part) => Number.isFinite(part));
99
- return parsed.length > 0 ? parsed : [...fallback];
100
- };
101
- export const ratioLimit = (baseline, ratio, absoluteSlack = 1e-9) => Math.max(absoluteSlack, baseline * ratio + absoluteSlack);
102
- export const avgFinite = (values) => {
103
- const finite = values.filter((value) => Number.isFinite(value));
104
- return finite.length === 0
105
- ? NaN
106
- : finite.reduce((sum, value) => sum + value, 0) / finite.length;
107
- };
108
- export const maxFinite = (values) => {
109
- const finite = values.filter((value) => Number.isFinite(value));
110
- return finite.length === 0 ? NaN : Math.max(...finite);
111
- };
112
- export const fmt = (value, digits = 2) => Number.isFinite(value) ? value.toFixed(digits) : "NaN";
113
- export const parseParentUpgradePreset = (value) => {
114
- const preset = value ?? "raw";
115
- if (preset !== "raw" && preset !== DEFAULT_CANDIDATE_PRESET) {
116
- throw new Error(`Unknown parent upgrade preset: ${preset}`);
117
- }
118
- return preset;
119
- };
120
- export const isDefaultCandidatePreset = (preset) => preset === DEFAULT_CANDIDATE_PRESET;
121
- export const defaultEvidenceLimitsForPreset = (preset, harness) => {
122
- const defaultCandidate = isDefaultCandidatePreset(preset);
123
- return {
124
- maxProbePerUpgrade: defaultCandidate ? (harness === "multi" ? 8 : 5) : 2,
125
- maxRootChildrenDelta: defaultCandidate ? 2 : 4,
126
- maxRootUploadPctDelta: 1,
127
- };
128
- };
129
- export const parseParentUpgradePresetConfig = (get) => {
130
- const parentUpgradePreset = parseParentUpgradePreset(get("--parentUpgradePreset"));
131
- const defaultCandidate = isDefaultCandidatePreset(parentUpgradePreset);
132
- const parentUpgradeQuietMs = Number(get("--parentUpgradeQuietMs") ?? 5_000);
133
- const parentUpgradeMaxChildLoadRatio = Number(get("--parentUpgradeMaxChildLoadRatio") ?? 0.5);
134
- const parentUpgradeRootMinLevelGain = Number(get("--parentUpgradeRootMinLevelGain") ?? 3);
135
- const parentUpgradeMinFreeSlots = Number(get("--parentUpgradeMinFreeSlots") ?? 8);
136
- const parentUpgradeRootMaxChildLoadRatio = Number(get("--parentUpgradeRootMaxChildLoadRatio") ??
137
- Math.min(parentUpgradeMaxChildLoadRatio, 0.4));
138
- const parentUpgradeModeRaw = get("--parentUpgradeMode");
139
- const parentUpgradeMode = parentUpgradeModeRaw === "probe" || parentUpgradeModeRaw === "shadow"
140
- ? parentUpgradeModeRaw
141
- : parentUpgradeModeRaw === "direct"
142
- ? "direct"
143
- : defaultCandidate
144
- ? "shadow"
145
- : "direct";
146
- return {
147
- parentUpgradePreset,
148
- parentUpgradeIntervalMs: Number(get("--parentUpgradeIntervalMs") ?? 1_000),
149
- parentUpgradeLeafOnly: parseBool01(get("--parentUpgradeLeafOnly"), true),
150
- parentUpgradeMinLevelGain: Number(get("--parentUpgradeMinLevelGain") ?? 2),
151
- parentUpgradeRootMinLevelGain,
152
- parentUpgradeRootMinSubtreeGain: Number(get("--parentUpgradeRootMinSubtreeGain") ?? parentUpgradeRootMinLevelGain),
153
- parentUpgradeNonRootMinLevelGain: Number(get("--parentUpgradeNonRootMinLevelGain") ?? 2),
154
- parentUpgradeMinFreeSlots,
155
- parentUpgradeRootMinFreeSlots: Number(get("--parentUpgradeRootMinFreeSlots") ?? parentUpgradeMinFreeSlots),
156
- parentUpgradeMaxChildLoadRatio,
157
- parentUpgradeRootMaxChildLoadRatio,
158
- parentUpgradeCooldownMs: Number(get("--parentUpgradeCooldownMs") ?? 5_000),
159
- parentUpgradeFailedBackoffMinMs: Number(get("--parentUpgradeFailedBackoffMinMs") ?? 5_000),
160
- parentUpgradeFailedBackoffMaxMs: Number(get("--parentUpgradeFailedBackoffMaxMs") ?? 60_000),
161
- parentUpgradeQuietMs,
162
- parentUpgradeRepairQuietMs: Number(get("--parentUpgradeRepairQuietMs") ?? parentUpgradeQuietMs),
163
- parentUpgradeMaxPerPeer: Number(get("--parentUpgradeMaxPerPeer") ?? 2),
164
- parentUpgradeRepairGuard: parseBool01(get("--parentUpgradeRepairGuard"), true),
165
- parentUpgradeDataGuard: parseBool01(get("--parentUpgradeDataGuard"), true),
166
- parentUpgradeMode,
167
- parentUpgradeVerifyStaleRootCapacity: parseBool01(get("--parentUpgradeVerifyStaleRootCapacity"), defaultCandidate),
168
- parentUpgradeStaleRootProbeProbability: Number(get("--parentUpgradeStaleRootProbeProbability") ??
169
- (defaultCandidate
170
- ? DEFAULT_CANDIDATE_STALE_ROOT_PROBE_PROBABILITY
171
- : RAW_STALE_ROOT_PROBE_PROBABILITY)),
172
- parentProbeTimeoutMs: Number(get("--parentProbeTimeoutMs") ?? 500),
173
- parentProbeMaxPerRound: Number(get("--parentProbeMaxPerRound") ?? 2),
174
- parentProbeMaxLagMessages: Number(get("--parentProbeMaxLagMessages") ?? 0),
175
- parentProbeRejectCooldownMs: Number(get("--parentProbeRejectCooldownMs") ?? 10_000),
176
- parentProbeRejectCooldownMaxMs: Number(get("--parentProbeRejectCooldownMaxMs") ?? 60_000),
177
- parentShadowObserveMs: Number(get("--parentShadowObserveMs") ?? 2_000),
178
- parentShadowMinObservations: Number(get("--parentShadowMinObservations") ?? 2),
179
- parentShadowDualPathMs: Number(get("--parentShadowDualPathMs") ?? (defaultCandidate ? 5_000 : 0)),
180
- parentShadowDualPathMinMessages: Number(get("--parentShadowDualPathMinMessages") ?? (defaultCandidate ? 32 : 1)),
181
- };
182
- };
183
- //# sourceMappingURL=fanout-tree-parent-upgrade-preset.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fanout-tree-parent-upgrade-preset.js","sourceRoot":"","sources":["../../benchmark/fanout-tree-parent-upgrade-preset.ts"],"names":[],"mappings":"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"}
@@ -1,303 +0,0 @@
1
- import { InMemoryNetwork } from "@peerbit/libp2p-test-utils/inmemory-libp2p.js";
2
- export type FanoutTreeSimParams = {
3
- nodes: number;
4
- rootIndex: number;
5
- bootstraps: number;
6
- bootstrapMaxPeers: number;
7
- subscribers: number;
8
- relayFraction: number;
9
- messages: number;
10
- secondBatchMessages: number;
11
- secondBatchSettleMs: number;
12
- msgRate: number;
13
- msgSize: number;
14
- intervalMs: number;
15
- settleMs: number;
16
- deadlineMs: number;
17
- maxDataAgeMs: number;
18
- timeoutMs: number;
19
- seed: number;
20
- topic: string;
21
- rootUploadLimitBps: number;
22
- rootMaxChildren: number;
23
- relayUploadLimitBps: number;
24
- relayMaxChildren: number;
25
- allowKick: boolean;
26
- bidPerByte: number;
27
- bidPerByteRelay: number;
28
- bidPerByteLeaf: number;
29
- repair: boolean;
30
- repairWindowMessages: number;
31
- repairMaxBackfillMessages: number;
32
- repairIntervalMs: number;
33
- repairMaxPerReq: number;
34
- neighborRepair: boolean;
35
- neighborRepairPeers: number;
36
- neighborMeshPeers: number;
37
- neighborAnnounceIntervalMs: number;
38
- neighborMeshRefreshIntervalMs: number;
39
- neighborHaveTtlMs: number;
40
- neighborRepairBudgetBps: number;
41
- neighborRepairBurstMs: number;
42
- streamRxDelayMs: number;
43
- streamHighWaterMarkBytes: number;
44
- dialDelayMs: number;
45
- joinConcurrency: number;
46
- joinReqTimeoutMs: number;
47
- candidateShuffleTopK: number;
48
- candidateScoringMode: "ranked-shuffle" | "ranked-strict" | "weighted";
49
- parentUpgradeIntervalMs: number;
50
- parentUpgradeLeafOnly: boolean;
51
- parentUpgradeMinLevelGain: number;
52
- parentUpgradeRootMinLevelGain: number;
53
- parentUpgradeRootMinSubtreeGain: number;
54
- parentUpgradeNonRootMinLevelGain: number;
55
- parentUpgradeMinFreeSlots: number;
56
- parentUpgradeRootMinFreeSlots: number;
57
- parentUpgradeMaxChildLoadRatio: number;
58
- parentUpgradeRootMaxChildLoadRatio: number;
59
- parentUpgradeCooldownMs: number;
60
- parentUpgradeFailedBackoffMinMs: number;
61
- parentUpgradeFailedBackoffMaxMs: number;
62
- parentUpgradeQuietMs: number;
63
- parentUpgradeRepairQuietMs: number;
64
- parentUpgradeMaxPerPeer: number;
65
- parentUpgradeRepairGuard: boolean;
66
- parentUpgradeDataGuard: boolean;
67
- parentUpgradeMode: "direct" | "probe" | "shadow";
68
- parentUpgradeVerifyStaleRootCapacity: boolean;
69
- parentUpgradeStaleRootProbeProbability: number;
70
- parentProbeTimeoutMs: number;
71
- parentProbeMaxPerRound: number;
72
- parentProbeMaxLagMessages: number;
73
- parentProbeRejectCooldownMs: number;
74
- parentProbeRejectCooldownMaxMs: number;
75
- parentShadowObserveMs: number;
76
- parentShadowMinObservations: number;
77
- parentShadowDualPathMs: number;
78
- parentShadowDualPathMinMessages: number;
79
- bootstrapEnsureIntervalMs: number;
80
- trackerQueryIntervalMs: number;
81
- joinAttemptsPerRound: number;
82
- candidateCooldownMs: number;
83
- joinPhases: boolean;
84
- joinPhaseSettleMs: number;
85
- lateRootConnectAfterMs: number;
86
- lateRootDuringPublish: boolean;
87
- lateRootMaxChildren: number;
88
- lateRootConnectFraction: number;
89
- maxLatencySamples: number;
90
- profile: boolean;
91
- progress: boolean;
92
- progressEveryMs: number;
93
- dropDataFrameRate: number;
94
- churnEveryMs: number;
95
- churnDownMs: number;
96
- churnFraction: number;
97
- assertMinJoinedPct: number;
98
- assertMinDeliveryPct: number;
99
- assertMinDeadlineDeliveryPct: number;
100
- assertMaxUploadFracPct: number;
101
- assertMaxOverheadFactor: number;
102
- assertMaxControlBpp: number;
103
- assertMaxTrackerBpp: number;
104
- assertMaxTrackerBytes: number;
105
- assertMaxRepairBpp: number;
106
- assertAttachP95Ms: number;
107
- assertMaxTreeLevelP95: number;
108
- assertMaxFormationScore: number;
109
- assertMinReparentUpgradeTotal: number;
110
- assertMinActiveShadowPromoteTotal: number;
111
- assertMaxOrphans: number;
112
- assertRecoveryP95Ms: number;
113
- assertMaxReparentsPerMin: number;
114
- assertMaxOrphanArea: number;
115
- };
116
- export type FanoutTreeSimResult = {
117
- params: FanoutTreeSimParams;
118
- bootstrapCount: number;
119
- subscriberCount: number;
120
- relayCount: number;
121
- joinedCount: number;
122
- joinedPct: number;
123
- joinMs: number;
124
- attachSamples: number;
125
- attachP50: number;
126
- attachP95: number;
127
- attachP99: number;
128
- attachMax: number;
129
- formationTreeMaxLevel: number;
130
- formationTreeLevelP95: number;
131
- formationTreeLevelAvg: number;
132
- formationTreeOrphans: number;
133
- formationTreeChildrenP95: number;
134
- formationTreeChildrenMax: number;
135
- formationTreeRootChildren: number;
136
- formationUnderlayEdges: number;
137
- formationUnderlayDistP95: number;
138
- formationUnderlayDistMax: number;
139
- formationStretchP95: number;
140
- formationStretchMax: number;
141
- formationScore: number;
142
- publishMs: number;
143
- expected: number;
144
- delivered: number;
145
- deliveredPct: number;
146
- deliveredWithinDeadline: number;
147
- deliveredWithinDeadlinePct: number;
148
- duplicates: number;
149
- secondBatchExpected: number;
150
- secondBatchDelivered: number;
151
- secondBatchDeliveredPct: number;
152
- secondBatchDeliveredWithinDeadline: number;
153
- secondBatchDeliveredWithinDeadlinePct: number;
154
- secondBatchLatencySamples: number;
155
- secondBatchLatencyP50: number;
156
- secondBatchLatencyP95: number;
157
- secondBatchLatencyP99: number;
158
- secondBatchLatencyMax: number;
159
- secondBatchLatencyP95ByHash: Record<string, number>;
160
- latencySamples: number;
161
- latencyP50: number;
162
- latencyP95: number;
163
- latencyP99: number;
164
- latencyMax: number;
165
- droppedForwardsTotal: number;
166
- droppedForwardsMax: number;
167
- droppedForwardsMaxNode?: string;
168
- staleForwardsDroppedTotal: number;
169
- staleForwardsDroppedMax: number;
170
- staleForwardsDroppedMaxNode?: string;
171
- dataWriteDropsTotal: number;
172
- dataWriteDropsMax: number;
173
- dataWriteDropsMaxNode?: string;
174
- reparentDisconnectTotal: number;
175
- reparentStaleTotal: number;
176
- reparentKickedTotal: number;
177
- publishActiveReparentUpgradeTotal: number;
178
- publishActiveReparentUpgradeSkipDataTotal: number;
179
- publishActiveReparentUpgradeSkipRepairTotal: number;
180
- publishActiveReparentUpgradeSkipQuietTotal: number;
181
- publishActiveParentProbeReqSentTotal: number;
182
- publishActiveParentShadowStartTotal: number;
183
- publishActiveParentShadowPromoteTotal: number;
184
- reparentUpgradeTotal: number;
185
- upgradedPeerHashes: string[];
186
- upgradedBranchPeerHashes: string[];
187
- reparentUpgradeSkipLeafTotal: number;
188
- reparentUpgradeSkipRepairTotal: number;
189
- reparentUpgradeSkipDataTotal: number;
190
- reparentUpgradeSkipCooldownTotal: number;
191
- reparentUpgradeSkipQuietTotal: number;
192
- reparentUpgradeSkipBudgetTotal: number;
193
- reparentUpgradeSkipCandidateLevelTotal: number;
194
- reparentUpgradeSkipCandidateSlotsTotal: number;
195
- reparentUpgradeSkipCandidatePressureTotal: number;
196
- reparentUpgradeSkipRootPressureTotal: number;
197
- reparentUpgradeSkipProbeNoReplyTotal: number;
198
- reparentUpgradeSkipProbeNotRootedTotal: number;
199
- reparentUpgradeSkipProbeRepairTotal: number;
200
- reparentUpgradeSkipProbeLagTotal: number;
201
- reparentUpgradeSkipProbeOverloadedTotal: number;
202
- reparentUpgradeSkipProbeCooldownTotal: number;
203
- parentProbeReqSentTotal: number;
204
- parentProbeReqReceivedTotal: number;
205
- parentProbeReplySentTotal: number;
206
- parentProbeReplyReceivedTotal: number;
207
- parentUpgradeRootReservationCreatedTotal: number;
208
- parentUpgradeRootReservationConsumedTotal: number;
209
- parentUpgradeRootReservationRejectedTotal: number;
210
- parentUpgradeRootReservationMarginRejectedTotal: number;
211
- parentUpgradeRootReservationBlockedTotal: number;
212
- parentUpgradeRootReservationExpiredTotal: number;
213
- parentShadowStartTotal: number;
214
- parentShadowObserveTotal: number;
215
- parentShadowPromoteTotal: number;
216
- parentShadowResetTotal: number;
217
- parentShadowRejectNoReplyTotal: number;
218
- parentShadowRejectNotRootedTotal: number;
219
- parentShadowRejectCapacityTotal: number;
220
- parentShadowRejectRepairTotal: number;
221
- parentShadowRejectLagTotal: number;
222
- parentShadowRejectOverloadedTotal: number;
223
- parentShadowRejectLevelTotal: number;
224
- treeMaxLevel: number;
225
- treeLevelP95: number;
226
- treeLevelAvg: number;
227
- treeOrphans: number;
228
- treeChildrenP95: number;
229
- treeChildrenMax: number;
230
- treeRootChildren: number;
231
- maxUploadBps: number;
232
- maxUploadFracPct: number;
233
- maxUploadNode?: string;
234
- rootUploadBps: number;
235
- rootUploadFracPct: number;
236
- streamQueuedBytesTotal: number;
237
- streamQueuedBytesMax: number;
238
- streamQueuedBytesP95: number;
239
- streamQueuedBytesMaxNode?: string;
240
- streamQueuedBytesByLane: number[];
241
- churnEvents: number;
242
- churnedPeersTotal: number;
243
- maintDurationMs: number;
244
- maintSamples: number;
245
- maintMaxOrphans: number;
246
- maintOrphanArea: number;
247
- maintRecoveryCount: number;
248
- maintRecoveryP50Ms: number;
249
- maintRecoveryP95Ms: number;
250
- maintReparentsPerMin: number;
251
- maintMaxReparentsPerPeer: number;
252
- maintLevelP95DriftMax: number;
253
- maintChildrenP95DriftMax: number;
254
- overheadFactorData: number;
255
- controlBpp: number;
256
- trackerBpp: number;
257
- repairBpp: number;
258
- earningsTotal: number;
259
- earningsRelayCount: number;
260
- earningsRelayP50: number;
261
- earningsRelayP95: number;
262
- earningsRelayMax: number;
263
- protocolControlSends: number;
264
- protocolControlBytesSent: number;
265
- protocolControlBytesSentJoin: number;
266
- protocolControlBytesSentRepair: number;
267
- protocolControlBytesSentTracker: number;
268
- protocolControlReceives: number;
269
- protocolControlBytesReceived: number;
270
- protocolDataSends: number;
271
- protocolDataPayloadBytesSent: number;
272
- protocolDataReceives: number;
273
- protocolDataPayloadBytesReceived: number;
274
- protocolRepairReqSent: number;
275
- protocolFetchReqSent: number;
276
- protocolIHaveSent: number;
277
- protocolTrackerAnnounceSent: number;
278
- protocolTrackerQuerySent: number;
279
- protocolTrackerReplySent: number;
280
- protocolTrackerFeedbackSent: number;
281
- protocolCacheHitsServed: number;
282
- protocolHoleFillsFromNeighbor: number;
283
- protocolRouteCacheHits: number;
284
- protocolRouteCacheMisses: number;
285
- protocolRouteCacheExpirations: number;
286
- protocolRouteCacheEvictions: number;
287
- protocolRouteProxyQueries: number;
288
- protocolRouteProxyTimeouts: number;
289
- protocolRouteProxyFanout: number;
290
- network: InMemoryNetwork["metrics"];
291
- profile?: {
292
- cpuUserMs: number;
293
- cpuSystemMs: number;
294
- rssMb: number;
295
- heapUsedMb: number;
296
- eventLoopDelayP95Ms: number;
297
- eventLoopDelayMaxMs: number;
298
- };
299
- };
300
- export declare const resolveFanoutTreeSimParams: (input: Partial<FanoutTreeSimParams>) => FanoutTreeSimParams;
301
- export declare const formatFanoutTreeSimResult: (r: FanoutTreeSimResult) => string;
302
- export declare const runFanoutTreeSim: (input: Partial<FanoutTreeSimParams>) => Promise<FanoutTreeSimResult>;
303
- //# sourceMappingURL=fanout-tree-sim-lib.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fanout-tree-sim-lib.d.ts","sourceRoot":"","sources":["../../benchmark/fanout-tree-sim-lib.ts"],"names":[],"mappings":"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"}