@peerbit/shared-log 10.2.0 → 10.3.0-a4ac71a
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/blocks.d.ts.map +1 -1
- package/dist/src/blocks.js.map +1 -1
- package/dist/src/index.d.ts +12 -6
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +47 -100
- package/dist/src/index.js.map +1 -1
- package/dist/src/ranges.d.ts +0 -4
- package/dist/src/ranges.d.ts.map +1 -1
- package/dist/src/ranges.js +3 -10
- package/dist/src/ranges.js.map +1 -1
- package/dist/src/sync/rateless-iblt.d.ts +1 -0
- package/dist/src/sync/rateless-iblt.d.ts.map +1 -1
- package/dist/src/sync/rateless-iblt.js +14 -1
- package/dist/src/sync/rateless-iblt.js.map +1 -1
- package/package.json +70 -70
- package/src/blocks.ts +0 -1
- package/src/index.ts +74 -110
- package/src/ranges.ts +4 -12
- package/src/sync/rateless-iblt.ts +13 -1
package/dist/src/blocks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/blocks.ts"],"names":[],"mappings":"AACA,OAAO,EACN,YAAY,EACZ,aAAa,EAEb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,qBACa,aAAc,SAAQ,gBAAgB;IAElD,OAAO,EAAE,YAAY,GAAG,aAAa,CAAC;gBAE1B,OAAO,EAAE,YAAY,GAAG,aAAa;
|
|
1
|
+
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/blocks.ts"],"names":[],"mappings":"AACA,OAAO,EACN,YAAY,EACZ,aAAa,EAEb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,qBACa,aAAc,SAAQ,gBAAgB;IAElD,OAAO,EAAE,YAAY,GAAG,aAAa,CAAC;gBAE1B,OAAO,EAAE,YAAY,GAAG,aAAa;CAIjD"}
|
package/dist/src/blocks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/blocks.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACN,YAAY,EACZ,aAAa,EACb,YAAY,IAAI,aAAa,GAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGzC,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,gBAAgB;IAElD,OAAO,CAA+B;IAEtC,YAAY,OAAqC;QAChD,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/blocks.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACN,YAAY,EACZ,aAAa,EACb,YAAY,IAAI,aAAa,GAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGzC,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,gBAAgB;IAElD,OAAO,CAA+B;IAEtC,YAAY,OAAqC;QAChD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;CACD,CAAA;AANA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;;8CACO;AAF1B,aAAa;IADzB,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;GACH,aAAa,CAQzB"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -4,12 +4,13 @@ import { type AppendOptions, type Change, Entry, Log, type LogEvents, type LogPr
|
|
|
4
4
|
import { Program, type ProgramEvents } from "@peerbit/program";
|
|
5
5
|
import { SubscriptionEvent, UnsubcriptionEvent } from "@peerbit/pubsub-interface";
|
|
6
6
|
import { RPC, type RequestContext } from "@peerbit/rpc";
|
|
7
|
+
import { BlocksMessage } from "./blocks.js";
|
|
7
8
|
import { type CPUUsage, CPUUsageIntervalLag } from "./cpu.js";
|
|
8
9
|
import { type DebouncedAccumulatorMap } from "./debounce.js";
|
|
9
10
|
import { MAX_U32, MAX_U64, type NumberFromType, type Numbers } from "./integers.js";
|
|
10
11
|
import { TransportMessage } from "./message.js";
|
|
11
12
|
import { PIDReplicationController } from "./pid.js";
|
|
12
|
-
import { type EntryReplicated, EntryReplicatedU32, EntryReplicatedU64, type ReplicationChange, type ReplicationChanges, ReplicationIntent, type ReplicationRangeIndexable
|
|
13
|
+
import { type EntryReplicated, EntryReplicatedU32, EntryReplicatedU64, type ReplicationChange, type ReplicationChanges, ReplicationIntent, type ReplicationRangeIndexable } from "./ranges.js";
|
|
13
14
|
import { type ReplicationDomainHash, createReplicationDomainHash } from "./replication-domain-hash.js";
|
|
14
15
|
import { type ReplicationDomainTime, createReplicationDomainTime } from "./replication-domain-time.js";
|
|
15
16
|
import { type ExtractDomainArgs, type ReplicationDomain, type ReplicationDomainConstructor } from "./replication-domain.js";
|
|
@@ -52,6 +53,7 @@ export type FixedReplicationOptions = {
|
|
|
52
53
|
offset?: number | bigint;
|
|
53
54
|
};
|
|
54
55
|
export type ReplicationOptions<R extends "u32" | "u64" = any> = DynamicReplicationOptions<R> | FixedReplicationOptions | FixedReplicationOptions[] | number | boolean | "resume";
|
|
56
|
+
export { BlocksMessage };
|
|
55
57
|
interface IndexableDomain<R extends "u32" | "u64"> {
|
|
56
58
|
numbers: Numbers<R>;
|
|
57
59
|
constructorEntry: new (properties: {
|
|
@@ -85,6 +87,9 @@ export type SharedLogOptions<T, D extends ReplicationDomain<any, T, R>, R extend
|
|
|
85
87
|
distributionDebounceTime?: number;
|
|
86
88
|
compatibility?: number;
|
|
87
89
|
domain?: ReplicationDomainConstructor<D>;
|
|
90
|
+
earlyBlocks?: boolean | {
|
|
91
|
+
cacheSize?: number;
|
|
92
|
+
};
|
|
88
93
|
};
|
|
89
94
|
export declare const DEFAULT_MIN_REPLICAS = 2;
|
|
90
95
|
export declare const WAIT_FOR_REPLICATOR_TIMEOUT = 9000;
|
|
@@ -180,9 +185,10 @@ export declare class SharedLog<T, D extends ReplicationDomain<any, T, R>, R exte
|
|
|
180
185
|
replicate(rangeOrEntry?: ReplicationOptions<R> | Entry<T> | Entry<T>[], options?: {
|
|
181
186
|
reset?: boolean;
|
|
182
187
|
checkDuplicates?: boolean;
|
|
188
|
+
rebalance?: boolean;
|
|
183
189
|
mergeSegments?: boolean;
|
|
184
190
|
announce?: (msg: AllReplicatingSegmentsMessage | AddedReplicationSegmentMessage) => void;
|
|
185
|
-
}): Promise<ReplicationRangeIndexable<R>[]
|
|
191
|
+
}): Promise<ReplicationRangeIndexable<R>[]>;
|
|
186
192
|
unreplicate(rangeOrEntry?: Entry<T> | {
|
|
187
193
|
id: Uint8Array;
|
|
188
194
|
}[]): Promise<void>;
|
|
@@ -192,13 +198,13 @@ export declare class SharedLog<T, D extends ReplicationDomain<any, T, R>, R exte
|
|
|
192
198
|
private removeReplicationRanges;
|
|
193
199
|
private addReplicationRange;
|
|
194
200
|
startAnnounceReplicating(range: ReplicationRangeIndexable<R>[], options?: {
|
|
195
|
-
syncStatus?: SyncStatus;
|
|
196
201
|
reset?: boolean;
|
|
197
202
|
checkDuplicates?: boolean;
|
|
203
|
+
rebalance?: boolean;
|
|
198
204
|
announce?: (msg: AllReplicatingSegmentsMessage | AddedReplicationSegmentMessage) => void;
|
|
199
205
|
}): Promise<void>;
|
|
200
206
|
private removePeerFromGidPeerHistory;
|
|
201
|
-
|
|
207
|
+
addPeersToGidPeerHistory(gid: string, publicKeys: Iterable<string>, reset?: boolean): Set<string>;
|
|
202
208
|
append(data: T, options?: SharedAppendOptions<T> | undefined): Promise<{
|
|
203
209
|
entry: Entry<T>;
|
|
204
210
|
removed: ShallowOrFullEntry<T>[];
|
|
@@ -221,7 +227,7 @@ export declare class SharedLog<T, D extends ReplicationDomain<any, T, R>, R exte
|
|
|
221
227
|
close(from?: Program): Promise<boolean>;
|
|
222
228
|
drop(from?: Program): Promise<boolean>;
|
|
223
229
|
recover(): Promise<void>;
|
|
224
|
-
|
|
230
|
+
onMessage(msg: TransportMessage, context: RequestContext): Promise<void>;
|
|
225
231
|
calculateTotalParticipation(options?: {
|
|
226
232
|
sum?: boolean;
|
|
227
233
|
}): Promise<number>;
|
|
@@ -296,7 +302,7 @@ export declare class SharedLog<T, D extends ReplicationDomain<any, T, R>, R exte
|
|
|
296
302
|
getNonPrunable(roleAge?: number): Promise<Entry<any>[]>;
|
|
297
303
|
rebalanceAll(options?: {
|
|
298
304
|
clearCache?: boolean;
|
|
299
|
-
}): Promise<
|
|
305
|
+
}): Promise<false | undefined>;
|
|
300
306
|
waitForPruned(): Promise<void>;
|
|
301
307
|
onReplicationChange(changeOrChanges: ReplicationChanges<ReplicationRangeIndexable<R>> | ReplicationChanges<ReplicationRangeIndexable<R>>[]): Promise<false | undefined>;
|
|
302
308
|
_onUnsubscription(evt: CustomEvent<UnsubcriptionEvent>): Promise<void>;
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -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
|
@@ -17,7 +17,7 @@ import { logger as loggerFn } from "@peerbit/logger";
|
|
|
17
17
|
import { ClosedError, Program } from "@peerbit/program";
|
|
18
18
|
import { SubscriptionEvent, UnsubcriptionEvent, } from "@peerbit/pubsub-interface";
|
|
19
19
|
import { RPC } from "@peerbit/rpc";
|
|
20
|
-
import { AcknowledgeDelivery, DeliveryMode, NotStartedError, SeekDelivery, SilentDelivery, } from "@peerbit/stream-interface";
|
|
20
|
+
import { AcknowledgeDelivery, AnyWhere, DeliveryMode, NotStartedError, SeekDelivery, SilentDelivery, } from "@peerbit/stream-interface";
|
|
21
21
|
import { AbortError, waitFor } from "@peerbit/time";
|
|
22
22
|
import pDefer, {} from "p-defer";
|
|
23
23
|
import PQueue from "p-queue";
|
|
@@ -29,7 +29,7 @@ import { EntryWithRefs, ExchangeHeadsMessage, RequestIPrune, ResponseIPrune, cre
|
|
|
29
29
|
import { MAX_U32, MAX_U64, bytesToNumber, createNumbers, denormalizer, } from "./integers.js";
|
|
30
30
|
import { TransportMessage } from "./message.js";
|
|
31
31
|
import { PIDReplicationController } from "./pid.js";
|
|
32
|
-
import { EntryReplicatedU32, EntryReplicatedU64, ReplicationIntent, ReplicationRangeIndexableU32, ReplicationRangeIndexableU64, ReplicationRangeMessage,
|
|
32
|
+
import { EntryReplicatedU32, EntryReplicatedU64, ReplicationIntent, ReplicationRangeIndexableU32, ReplicationRangeIndexableU64, ReplicationRangeMessage, appromixateCoverage, countCoveringRangesSameOwner, debounceAggregationChanges, getAllMergeCandiates, getCoverSet, getSamples, isMatured, isReplicationRangeMessage, mergeRanges, minimumWidthToCover, shouldAssigneToRangeBoundary as shouldAssignToRangeBoundary, toRebalance, } from "./ranges.js";
|
|
33
33
|
import { createReplicationDomainHash, } from "./replication-domain-hash.js";
|
|
34
34
|
import { createReplicationDomainTime, } from "./replication-domain-time.js";
|
|
35
35
|
import {} from "./replication-domain.js";
|
|
@@ -55,6 +55,7 @@ const getLatestEntry = (entries) => {
|
|
|
55
55
|
}
|
|
56
56
|
return latest;
|
|
57
57
|
};
|
|
58
|
+
export { BlocksMessage };
|
|
58
59
|
const isAdaptiveReplicatorOption = (options) => {
|
|
59
60
|
if (typeof options === "number") {
|
|
60
61
|
return false;
|
|
@@ -235,7 +236,7 @@ let SharedLog = class SharedLog extends Program {
|
|
|
235
236
|
) */
|
|
236
237
|
() => intervalTime);
|
|
237
238
|
}
|
|
238
|
-
async _replicate(options, { reset, checkDuplicates, announce, mergeSegments, } = {}) {
|
|
239
|
+
async _replicate(options, { reset, checkDuplicates, announce, mergeSegments, rebalance, } = {}) {
|
|
239
240
|
let offsetWasProvided = false;
|
|
240
241
|
if (isUnreplicationOptions(options)) {
|
|
241
242
|
await this.unreplicate();
|
|
@@ -261,7 +262,7 @@ let SharedLog = class SharedLog extends Program {
|
|
|
261
262
|
const maybeRange = await this.getDynamicRange();
|
|
262
263
|
if (!maybeRange) {
|
|
263
264
|
// not allowed
|
|
264
|
-
return;
|
|
265
|
+
return [];
|
|
265
266
|
}
|
|
266
267
|
rangesToReplicate = [maybeRange];
|
|
267
268
|
offsetWasProvided = true;
|
|
@@ -286,7 +287,7 @@ let SharedLog = class SharedLog extends Program {
|
|
|
286
287
|
}
|
|
287
288
|
if (rangeArgs.length === 0) {
|
|
288
289
|
// nothing to do
|
|
289
|
-
return;
|
|
290
|
+
return [];
|
|
290
291
|
}
|
|
291
292
|
for (const rangeArg of rangeArgs) {
|
|
292
293
|
let timestamp = undefined;
|
|
@@ -369,6 +370,7 @@ let SharedLog = class SharedLog extends Program {
|
|
|
369
370
|
reset: resetRanges ?? false,
|
|
370
371
|
checkDuplicates,
|
|
371
372
|
announce,
|
|
373
|
+
rebalance,
|
|
372
374
|
});
|
|
373
375
|
if (rangesToUnreplicate.length > 0) {
|
|
374
376
|
await this.rpc.send(new StoppedReplicating({
|
|
@@ -379,6 +381,7 @@ let SharedLog = class SharedLog extends Program {
|
|
|
379
381
|
}
|
|
380
382
|
return rangesToReplicate;
|
|
381
383
|
}
|
|
384
|
+
return [];
|
|
382
385
|
}
|
|
383
386
|
setupDebouncedRebalancing(options) {
|
|
384
387
|
this.cpuUsage?.stop?.();
|
|
@@ -576,12 +579,13 @@ let SharedLog = class SharedLog extends Program {
|
|
|
576
579
|
this.rebalanceParticipationDebounced?.();
|
|
577
580
|
}
|
|
578
581
|
}
|
|
579
|
-
async addReplicationRange(ranges, from, { reset, checkDuplicates, timestamp: ts, } = {}) {
|
|
582
|
+
async addReplicationRange(ranges, from, { reset, checkDuplicates, timestamp: ts, rebalance, } = {}) {
|
|
580
583
|
if (this._isTrustedReplicator && !(await this._isTrustedReplicator(from))) {
|
|
581
584
|
return undefined;
|
|
582
585
|
}
|
|
583
586
|
let isNewReplicator = false;
|
|
584
587
|
let timestamp = BigInt(ts ?? +new Date());
|
|
588
|
+
rebalance = rebalance == null ? true : rebalance;
|
|
585
589
|
let diffs;
|
|
586
590
|
let deleted = undefined;
|
|
587
591
|
if (reset) {
|
|
@@ -603,11 +607,20 @@ let SharedLog = class SharedLog extends Program {
|
|
|
603
607
|
isNewReplicator = prevCount === 0 && ranges.length > 0;
|
|
604
608
|
}
|
|
605
609
|
else {
|
|
606
|
-
let
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
610
|
+
let batchSize = 100;
|
|
611
|
+
let existing = [];
|
|
612
|
+
for (let i = 0; i < ranges.length; i += batchSize) {
|
|
613
|
+
const results = await this.replicationIndex
|
|
614
|
+
.iterate({
|
|
615
|
+
query: (ranges.length <= batchSize
|
|
616
|
+
? ranges
|
|
617
|
+
: ranges.slice(i, i + batchSize)).map((x) => new ByteMatchQuery({ key: "id", value: x.id })),
|
|
618
|
+
}, { reference: true })
|
|
619
|
+
.all();
|
|
620
|
+
for (const result of results) {
|
|
621
|
+
existing.push(result.value);
|
|
622
|
+
}
|
|
623
|
+
}
|
|
611
624
|
if (existing.length === 0) {
|
|
612
625
|
let prevCount = await this.replicationIndex.count({
|
|
613
626
|
query: new StringMatch({ key: "hash", value: from.hashcode() }),
|
|
@@ -629,7 +642,7 @@ let SharedLog = class SharedLog extends Program {
|
|
|
629
642
|
}
|
|
630
643
|
let existingMap = new Map();
|
|
631
644
|
for (const result of existing) {
|
|
632
|
-
existingMap.set(result.
|
|
645
|
+
existingMap.set(result.idString, result);
|
|
633
646
|
}
|
|
634
647
|
let changes = ranges
|
|
635
648
|
.map((x) => {
|
|
@@ -686,7 +699,13 @@ let SharedLog = class SharedLog extends Program {
|
|
|
686
699
|
this.events.dispatchEvent(new CustomEvent("replicator:mature", {
|
|
687
700
|
detail: { publicKey: from },
|
|
688
701
|
}));
|
|
689
|
-
|
|
702
|
+
if (rebalance && diff.range.mode !== ReplicationIntent.Strict) {
|
|
703
|
+
// TODO this statement (might) cause issues with triggering pruning if the segment is strict and maturity timings will affect the outcome of rebalancing
|
|
704
|
+
this.replicationChangeDebounceFn.add({
|
|
705
|
+
...diff,
|
|
706
|
+
matured: true,
|
|
707
|
+
}); // we need to call this here because the outcom of findLeaders will be different when some ranges become mature, i.e. some of data we own might be prunable!
|
|
708
|
+
}
|
|
690
709
|
pendingRanges.delete(diff.range.idString);
|
|
691
710
|
if (pendingRanges.size === 0) {
|
|
692
711
|
this.pendingMaturity.delete(diff.range.hash);
|
|
@@ -737,7 +756,7 @@ let SharedLog = class SharedLog extends Program {
|
|
|
737
756
|
}));
|
|
738
757
|
}
|
|
739
758
|
}
|
|
740
|
-
if (diffs.length > 0) {
|
|
759
|
+
if (rebalance && diffs.length > 0) {
|
|
741
760
|
for (const diff of diffs) {
|
|
742
761
|
this.replicationChangeDebounceFn.add(diff);
|
|
743
762
|
}
|
|
@@ -940,12 +959,10 @@ let SharedLog = class SharedLog extends Program {
|
|
|
940
959
|
const localBlocks = await new AnyBlockStore(await storage.sublevel("blocks"));
|
|
941
960
|
this.remoteBlocks = new RemoteBlocks({
|
|
942
961
|
local: localBlocks,
|
|
943
|
-
publish: (message, options) => this.rpc.send(new BlocksMessage(message),
|
|
944
|
-
mode: options?.to
|
|
945
|
-
? new SilentDelivery({ to: options.to, redundancy: 1 })
|
|
946
|
-
: undefined,
|
|
947
|
-
}),
|
|
962
|
+
publish: (message, options) => this.rpc.send(new BlocksMessage(message), options.mode instanceof AnyWhere ? undefined : options),
|
|
948
963
|
waitFor: this.rpc.waitFor.bind(this.rpc),
|
|
964
|
+
publicKey: this.node.identity.publicKey,
|
|
965
|
+
earlyBlocks: options?.earlyBlocks ?? true,
|
|
949
966
|
});
|
|
950
967
|
await this.remoteBlocks.start();
|
|
951
968
|
const logScope = await this.node.indexer.scope(id);
|
|
@@ -1079,7 +1096,7 @@ let SharedLog = class SharedLog extends Program {
|
|
|
1079
1096
|
await this.rpc.open({
|
|
1080
1097
|
queryType: TransportMessage,
|
|
1081
1098
|
responseType: TransportMessage,
|
|
1082
|
-
responseHandler: (query, context) => this.
|
|
1099
|
+
responseHandler: (query, context) => this.onMessage(query, context),
|
|
1083
1100
|
topic: this.topic,
|
|
1084
1101
|
});
|
|
1085
1102
|
this._onSubscriptionFn =
|
|
@@ -1291,7 +1308,7 @@ let SharedLog = class SharedLog extends Program {
|
|
|
1291
1308
|
return this.log.recover();
|
|
1292
1309
|
}
|
|
1293
1310
|
// Callback for receiving a message from the network
|
|
1294
|
-
async
|
|
1311
|
+
async onMessage(msg, context) {
|
|
1295
1312
|
try {
|
|
1296
1313
|
if (!context.from) {
|
|
1297
1314
|
throw new Error("Missing from in update role message");
|
|
@@ -1552,49 +1569,9 @@ let SharedLog = class SharedLog extends Program {
|
|
|
1552
1569
|
}
|
|
1553
1570
|
else if (await this.syncronizer.onMessage(msg, context)) {
|
|
1554
1571
|
return; // the syncronizer has handled the message
|
|
1555
|
-
}
|
|
1556
|
-
const requestHashes: string[] = [];
|
|
1557
|
-
|
|
1558
|
-
for (const hash of msg.hashes) {
|
|
1559
|
-
const inFlight = this.syncInFlightQueue.get(hash);
|
|
1560
|
-
if (inFlight) {
|
|
1561
|
-
if (
|
|
1562
|
-
!inFlight.find((x) => x.hashcode() === context.from!.hashcode())
|
|
1563
|
-
) {
|
|
1564
|
-
inFlight.push(context.from);
|
|
1565
|
-
let inverted = this.syncInFlightQueueInverted.get(
|
|
1566
|
-
context.from.hashcode(),
|
|
1567
|
-
);
|
|
1568
|
-
if (!inverted) {
|
|
1569
|
-
inverted = new Set();
|
|
1570
|
-
this.syncInFlightQueueInverted.set(
|
|
1571
|
-
context.from.hashcode(),
|
|
1572
|
-
inverted,
|
|
1573
|
-
);
|
|
1574
|
-
}
|
|
1575
|
-
inverted.add(hash);
|
|
1576
|
-
}
|
|
1577
|
-
} else if (!(await this.log.has(hash))) {
|
|
1578
|
-
this.syncInFlightQueue.set(hash, []);
|
|
1579
|
-
requestHashes.push(hash); // request immediately (first time we have seen this hash)
|
|
1580
|
-
}
|
|
1581
|
-
}
|
|
1582
|
-
requestHashes.length > 0 &&
|
|
1583
|
-
(await this.requestSync(requestHashes, [context.from.hashcode()]));
|
|
1584
|
-
} else if (msg instanceof ResponseMaybeSync) {
|
|
1585
|
-
// TODO perhaps send less messages to more receivers for performance reasons?
|
|
1586
|
-
// TODO wait for previous send to target before trying to send more?
|
|
1587
|
-
for await (const message of createExchangeHeadsMessages(
|
|
1588
|
-
this.log,
|
|
1589
|
-
msg.hashes,
|
|
1590
|
-
)) {
|
|
1591
|
-
await this.rpc.send(message, {
|
|
1592
|
-
mode: new SilentDelivery({ to: [context.from!], redundancy: 1 }),
|
|
1593
|
-
});
|
|
1594
|
-
}
|
|
1595
|
-
} */
|
|
1572
|
+
}
|
|
1596
1573
|
else if (msg instanceof BlocksMessage) {
|
|
1597
|
-
await this.remoteBlocks.onMessage(msg.message);
|
|
1574
|
+
await this.remoteBlocks.onMessage(msg.message, context.from.hashcode());
|
|
1598
1575
|
}
|
|
1599
1576
|
else if (msg instanceof RequestReplicationInfoMessage) {
|
|
1600
1577
|
// TODO this message type is never used, should we remove it?
|
|
@@ -1840,12 +1817,13 @@ let SharedLog = class SharedLog extends Program {
|
|
|
1840
1817
|
}
|
|
1841
1818
|
}
|
|
1842
1819
|
: undefined;
|
|
1820
|
+
let assumeSynced = options?.replicate &&
|
|
1821
|
+
typeof options.replicate !== "boolean" &&
|
|
1822
|
+
options.replicate.assumeSynced;
|
|
1843
1823
|
const persistCoordinate = async (entry) => {
|
|
1844
1824
|
const minReplicas = decodeReplicas(entry).getValue(this);
|
|
1845
1825
|
const leaders = await this.findLeaders(await this.createCoordinates(entry, minReplicas), entry, { persist: {} });
|
|
1846
|
-
if (
|
|
1847
|
-
typeof options.replicate !== "boolean" &&
|
|
1848
|
-
options.replicate.assumeSynced) {
|
|
1826
|
+
if (assumeSynced) {
|
|
1849
1827
|
// make sure we dont start to initate syncing process outwards for this entry
|
|
1850
1828
|
this.addPeersToGidPeerHistory(entry.meta.gid, leaders.keys());
|
|
1851
1829
|
}
|
|
@@ -1875,6 +1853,7 @@ let SharedLog = class SharedLog extends Program {
|
|
|
1875
1853
|
if (options?.replicate) {
|
|
1876
1854
|
let messageToSend = undefined;
|
|
1877
1855
|
await this.replicate(entriesToReplicate, {
|
|
1856
|
+
rebalance: assumeSynced ? false : true,
|
|
1878
1857
|
checkDuplicates: true,
|
|
1879
1858
|
mergeSegments: typeof options.replicate !== "boolean" && options.replicate
|
|
1880
1859
|
? options.replicate.mergeSegments
|
|
@@ -1896,6 +1875,7 @@ let SharedLog = class SharedLog extends Program {
|
|
|
1896
1875
|
}
|
|
1897
1876
|
},
|
|
1898
1877
|
});
|
|
1878
|
+
// it is importat that we call persistCoordinate after this.replicate(entries) as else there might be a prune job deleting the entry before replication duties has been assigned to self
|
|
1899
1879
|
for (const entry of entriesToPersist) {
|
|
1900
1880
|
await persistCoordinate(entry);
|
|
1901
1881
|
}
|
|
@@ -1906,39 +1886,6 @@ let SharedLog = class SharedLog extends Program {
|
|
|
1906
1886
|
}
|
|
1907
1887
|
}
|
|
1908
1888
|
}
|
|
1909
|
-
/*
|
|
1910
|
-
private async updateLeaders(
|
|
1911
|
-
cursor: NumberFromType<R>,
|
|
1912
|
-
prev: EntryReplicated<R>,
|
|
1913
|
-
options?: {
|
|
1914
|
-
roleAge?: number;
|
|
1915
|
-
},
|
|
1916
|
-
): Promise<{
|
|
1917
|
-
isLeader: boolean;
|
|
1918
|
-
leaders: Map<string, { intersecting: boolean }>;
|
|
1919
|
-
}> {
|
|
1920
|
-
// we consume a list of coordinates in this method since if we are leader of one coordinate we want to persist all of them
|
|
1921
|
-
const leaders = await this._findLeaders(cursor, options);
|
|
1922
|
-
const isLeader = leaders.has(this.node.identity.publicKey.hashcode());
|
|
1923
|
-
const isAtRangeBoundary = shouldAssignToRangeBoundary(leaders, 1);
|
|
1924
|
-
|
|
1925
|
-
// dont do anthing if nothing has changed
|
|
1926
|
-
if (prev.assignedToRangeBoundary !== isAtRangeBoundary) {
|
|
1927
|
-
return { isLeader, leaders };
|
|
1928
|
-
}
|
|
1929
|
-
|
|
1930
|
-
await this.entryCoordinatesIndex.put(
|
|
1931
|
-
new this.indexableDomain.constructorEntry({
|
|
1932
|
-
assignedToRangeBoundary: isAtRangeBoundary,
|
|
1933
|
-
coordinate: cursor,
|
|
1934
|
-
meta: prev.meta,
|
|
1935
|
-
hash: prev.hash,
|
|
1936
|
-
}),
|
|
1937
|
-
);
|
|
1938
|
-
|
|
1939
|
-
return { isLeader, leaders };
|
|
1940
|
-
}
|
|
1941
|
-
*/
|
|
1942
1889
|
async _waitForReplicators(cursors, entry, waitFor, options = { timeout: this.waitForReplicatorTimeout }) {
|
|
1943
1890
|
const timeout = options.timeout ?? this.waitForReplicatorTimeout;
|
|
1944
1891
|
return new Promise((resolve, reject) => {
|
|
@@ -2458,7 +2405,7 @@ let SharedLog = class SharedLog extends Program {
|
|
|
2458
2405
|
this._gidPeersHistory.clear();
|
|
2459
2406
|
}
|
|
2460
2407
|
const timestamp = BigInt(+new Date());
|
|
2461
|
-
this.onReplicationChange((await this.getAllReplicationSegments()).map((x) => {
|
|
2408
|
+
return this.onReplicationChange((await this.getAllReplicationSegments()).map((x) => {
|
|
2462
2409
|
return { range: x, type: "added", timestamp };
|
|
2463
2410
|
}));
|
|
2464
2411
|
}
|