@peerbit/shared-log 9.0.10 → 9.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.
- package/dist/benchmark/index.js +2 -2
- package/dist/benchmark/index.js.map +1 -1
- package/dist/benchmark/replication.js +3 -3
- package/dist/benchmark/replication.js.map +1 -1
- package/dist/src/index.d.ts +46 -31
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +426 -229
- package/dist/src/index.js.map +1 -1
- package/dist/src/pid.d.ts.map +1 -1
- package/dist/src/pid.js +20 -19
- package/dist/src/pid.js.map +1 -1
- package/dist/src/ranges.d.ts +13 -3
- package/dist/src/ranges.d.ts.map +1 -1
- package/dist/src/ranges.js +207 -335
- package/dist/src/ranges.js.map +1 -1
- package/dist/src/replication-domain-hash.d.ts +5 -0
- package/dist/src/replication-domain-hash.d.ts.map +1 -0
- package/dist/src/replication-domain-hash.js +30 -0
- package/dist/src/replication-domain-hash.js.map +1 -0
- package/dist/src/replication-domain-time.d.ts +14 -0
- package/dist/src/replication-domain-time.d.ts.map +1 -0
- package/dist/src/replication-domain-time.js +59 -0
- package/dist/src/replication-domain-time.js.map +1 -0
- package/dist/src/replication-domain.d.ts +33 -0
- package/dist/src/replication-domain.d.ts.map +1 -0
- package/dist/src/replication-domain.js +6 -0
- package/dist/src/replication-domain.js.map +1 -0
- package/dist/src/replication.d.ts +10 -8
- package/dist/src/replication.d.ts.map +1 -1
- package/dist/src/replication.js +64 -46
- package/dist/src/replication.js.map +1 -1
- package/dist/src/role.d.ts +2 -1
- package/dist/src/role.d.ts.map +1 -1
- package/dist/src/role.js +6 -5
- package/dist/src/role.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +604 -310
- package/src/pid.ts +20 -19
- package/src/ranges.ts +291 -371
- package/src/replication-domain-hash.ts +43 -0
- package/src/replication-domain-time.ts +85 -0
- package/src/replication-domain.ts +50 -0
- package/src/replication.ts +50 -46
- package/src/role.ts +6 -5
package/dist/src/ranges.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ranges.js","sourceRoot":"","sources":["../../src/ranges.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ranges.js","sourceRoot":"","sources":["../../src/ranges.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type ReplicationDomain } from "./replication-domain.js";
|
|
2
|
+
export declare const hashToU32: (hash: Uint8Array) => number;
|
|
3
|
+
export type ReplicationDomainHash = ReplicationDomain<undefined, any>;
|
|
4
|
+
export declare const createReplicationDomainHash: () => ReplicationDomainHash;
|
|
5
|
+
//# sourceMappingURL=replication-domain-hash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replication-domain-hash.d.ts","sourceRoot":"","sources":["../../src/replication-domain-hash.ts"],"names":[],"mappings":"AAGA,OAAO,EAEN,KAAK,iBAAiB,EAEtB,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,SAAS,SAAU,UAAU,WAKzC,CAAC;AAiBF,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACtE,eAAO,MAAM,2BAA2B,EAAE,MAAM,qBAU/C,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { BinaryReader, BinaryWriter } from "@dao-xyz/borsh";
|
|
2
|
+
import { sha256 } from "@peerbit/crypto";
|
|
3
|
+
import {} from "./replication-domain.js";
|
|
4
|
+
export const hashToU32 = (hash) => {
|
|
5
|
+
const seedNumber = new BinaryReader(hash.subarray(hash.length - 4, hash.length)).u32();
|
|
6
|
+
return seedNumber;
|
|
7
|
+
};
|
|
8
|
+
const hashTransformer = async (entry) => {
|
|
9
|
+
// For a fixed set or members, the choosen leaders will always be the same (address invariant)
|
|
10
|
+
// This allows for that same content is always chosen to be distributed to same peers, to remove unecessary copies
|
|
11
|
+
// Convert this thing we wan't to distribute to 8 bytes so we get can convert it into a u64
|
|
12
|
+
// modulus into an index
|
|
13
|
+
const utf8writer = new BinaryWriter();
|
|
14
|
+
utf8writer.string(entry.meta.gid);
|
|
15
|
+
const seed = await sha256(utf8writer.finalize());
|
|
16
|
+
// convert hash of slot to a number
|
|
17
|
+
return hashToU32(seed);
|
|
18
|
+
};
|
|
19
|
+
export const createReplicationDomainHash = () => {
|
|
20
|
+
return {
|
|
21
|
+
type: "hash",
|
|
22
|
+
fromEntry: hashTransformer,
|
|
23
|
+
fromArgs: async (args, log) => {
|
|
24
|
+
return {
|
|
25
|
+
offset: log.node.identity.publicKey,
|
|
26
|
+
};
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=replication-domain-hash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replication-domain-hash.js","sourceRoot":"","sources":["../../src/replication-domain-hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAIN,MAAM,yBAAyB,CAAC;AAEjC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAgB,EAAE,EAAE;IAC7C,MAAM,UAAU,GAAG,IAAI,YAAY,CAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAC3C,CAAC,GAAG,EAAE,CAAC;IACR,OAAO,UAAU,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAiC,KAAK,EAC1D,KAA8B,EAC7B,EAAE;IACH,8FAA8F;IAC9F,kHAAkH;IAElH,2FAA2F;IAC3F,wBAAwB;IACxB,MAAM,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;IACtC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEjD,mCAAmC;IACnC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAgC,GAAG,EAAE;IAC5E,OAAO;QACN,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,eAAe;QAC1B,QAAQ,EAAE,KAAK,EAAE,IAAe,EAAE,GAAQ,EAAE,EAAE;YAC7C,OAAO;gBACN,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS;aACnC,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ReplicationDomain, type ReplicationDomainMapper, type u32 } from "./replication-domain.js";
|
|
2
|
+
type TimeUnit = "seconds" | "milliseconds" | "microseconds" | "nanoseconds";
|
|
3
|
+
export declare const fromEntry: (origin: Date, unit?: TimeUnit) => ReplicationDomainMapper<any>;
|
|
4
|
+
type TimeRange = {
|
|
5
|
+
from: number;
|
|
6
|
+
to: number;
|
|
7
|
+
};
|
|
8
|
+
export type ReplicationDomainTime = ReplicationDomain<TimeRange, any> & {
|
|
9
|
+
fromTime: (time: number | Date) => u32;
|
|
10
|
+
fromDuration: (duration: number) => u32;
|
|
11
|
+
};
|
|
12
|
+
export declare const createReplicationDomainTime: (origin: Date, unit?: TimeUnit) => ReplicationDomainTime;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=replication-domain-time.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replication-domain-time.d.ts","sourceRoot":"","sources":["../../src/replication-domain-time.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,GAAG,EACR,MAAM,yBAAyB,CAAC;AAEjC,KAAK,QAAQ,GAAG,SAAS,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,CAAC;AAe5E,eAAO,MAAM,SAAS,WACb,IAAI,SACN,QAAQ,KACZ,uBAAuB,CAAC,GAAG,CAS7B,CAAC;AAEF,KAAK,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9C,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG;IACvE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,GAAG,CAAC;IACvC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,CAAC;CACxC,CAAC;AAEF,eAAO,MAAM,2BAA2B,WAC/B,IAAI,SACN,QAAQ,KACZ,qBAsCF,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import {} from "./replication-domain.js";
|
|
2
|
+
const scalarNanoToUnit = {
|
|
3
|
+
seconds: BigInt(1e9),
|
|
4
|
+
milliseconds: BigInt(1e6),
|
|
5
|
+
microseconds: BigInt(1e3),
|
|
6
|
+
nanoseconds: BigInt(1),
|
|
7
|
+
};
|
|
8
|
+
const scalarMilliToUnit = {
|
|
9
|
+
seconds: 1e3,
|
|
10
|
+
milliseconds: 1,
|
|
11
|
+
microseconds: 1e-3,
|
|
12
|
+
nanoseconds: 1e-6,
|
|
13
|
+
};
|
|
14
|
+
export const fromEntry = (origin, unit = "milliseconds") => {
|
|
15
|
+
const scalar = scalarNanoToUnit[unit];
|
|
16
|
+
const originTime = +origin / scalarMilliToUnit[unit];
|
|
17
|
+
const fn = (entry) => {
|
|
18
|
+
const cursor = entry.meta.clock.timestamp.wallTime / scalar;
|
|
19
|
+
return Math.round(Number(cursor) - originTime);
|
|
20
|
+
};
|
|
21
|
+
return fn;
|
|
22
|
+
};
|
|
23
|
+
export const createReplicationDomainTime = (origin, unit = "milliseconds") => {
|
|
24
|
+
const originScaled = +origin * scalarMilliToUnit[unit];
|
|
25
|
+
const fromMilliToUnit = scalarMilliToUnit[unit];
|
|
26
|
+
const fromTime = (time) => {
|
|
27
|
+
return ((typeof time === "number" ? time : +time * fromMilliToUnit) - originScaled);
|
|
28
|
+
};
|
|
29
|
+
const fromDuration = (duration) => {
|
|
30
|
+
return duration;
|
|
31
|
+
};
|
|
32
|
+
return {
|
|
33
|
+
type: "time",
|
|
34
|
+
fromTime,
|
|
35
|
+
fromDuration,
|
|
36
|
+
fromEntry: fromEntry(origin, unit),
|
|
37
|
+
fromArgs: async (args, log) => {
|
|
38
|
+
if (!args) {
|
|
39
|
+
return {
|
|
40
|
+
offset: log.node.identity.publicKey,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
offset: fromTime(args.from),
|
|
45
|
+
length: fromDuration(args.to - args.from),
|
|
46
|
+
};
|
|
47
|
+
/* roleAge = roleAge ?? (await log.getDefaultMinRoleAge());
|
|
48
|
+
const ranges = await getCoverSet(
|
|
49
|
+
log.replicationIndex,
|
|
50
|
+
roleAge,
|
|
51
|
+
fromTime(args.from),
|
|
52
|
+
fromDuration(args.to - args.from),
|
|
53
|
+
undefined,
|
|
54
|
+
);
|
|
55
|
+
return [...ranges]; */
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=replication-domain-time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replication-domain-time.js","sourceRoot":"","sources":["../../src/replication-domain-time.ts"],"names":[],"mappings":"AACA,OAAO,EAIN,MAAM,yBAAyB,CAAC;AAIjC,MAAM,gBAAgB,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;CACtB,CAAC;AACF,MAAM,iBAAiB,GAAG;IACzB,OAAO,EAAE,GAAG;IACZ,YAAY,EAAE,CAAC;IACf,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,MAAY,EACZ,OAAiB,cAAc,EACA,EAAE;IACjC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,CAAC,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAErD,MAAM,EAAE,GAAG,CAAC,KAA8B,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,MAAM,CAAC;QAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC;IAChD,CAAC,CAAC;IACF,OAAO,EAAE,CAAC;AACX,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAC1C,MAAY,EACZ,OAAiB,cAAc,EACP,EAAE;IAC1B,MAAM,YAAY,GAAG,CAAC,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,CAAC,IAAmB,EAAO,EAAE;QAC7C,OAAO,CACN,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,eAAe,CAAC,GAAG,YAAY,CAC1E,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAO,EAAE;QAC9C,OAAO,QAAQ,CAAC;IACjB,CAAC,CAAC;IACF,OAAO;QACN,IAAI,EAAE,MAAM;QACZ,QAAQ;QACR,YAAY;QACZ,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC;QAClC,QAAQ,EAAE,KAAK,EAAE,IAA2B,EAAE,GAAG,EAAE,EAAE;YACpD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACX,OAAO;oBACN,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS;iBACnC,CAAC;YACH,CAAC;YACD,OAAO;gBACN,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC3B,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;aACzC,CAAC;YACF;;;;;;;;sCAQuB;QACxB,CAAC;KACD,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { PublicSignKey } from "@peerbit/crypto";
|
|
2
|
+
import { type Index } from "@peerbit/indexer-interface";
|
|
3
|
+
import type { Entry, ShallowEntry } from "@peerbit/log";
|
|
4
|
+
import type { ReplicationLimits, ReplicationRangeIndexable } from "./replication.js";
|
|
5
|
+
export type u32 = number;
|
|
6
|
+
export type ReplicationDomainMapper<T> = (entry: Entry<T> | ShallowEntry) => Promise<u32> | u32;
|
|
7
|
+
export type Log = {
|
|
8
|
+
replicas: ReplicationLimits;
|
|
9
|
+
node: {
|
|
10
|
+
identity: {
|
|
11
|
+
publicKey: PublicSignKey;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
syncInFlight: Map<string, Map<string, {
|
|
15
|
+
timestamp: number;
|
|
16
|
+
}>>;
|
|
17
|
+
replicationIndex: Index<ReplicationRangeIndexable>;
|
|
18
|
+
getDefaultMinRoleAge: () => Promise<number>;
|
|
19
|
+
};
|
|
20
|
+
export type ReplicationDomainCoverSet<Args> = (log: Log, roleAge: number | undefined, args: Args) => Promise<string[]> | string[];
|
|
21
|
+
type CoverRange = {
|
|
22
|
+
offset: number | PublicSignKey;
|
|
23
|
+
length?: number;
|
|
24
|
+
};
|
|
25
|
+
export type ReplicationDomain<Args, T> = {
|
|
26
|
+
type: string;
|
|
27
|
+
fromEntry: ReplicationDomainMapper<T>;
|
|
28
|
+
fromArgs: (args: Args | undefined, log: Log) => Promise<CoverRange> | CoverRange;
|
|
29
|
+
};
|
|
30
|
+
export declare const uniformToU32: (cursor: number) => number;
|
|
31
|
+
export type ExtractDomainArgs<T> = T extends ReplicationDomain<infer Args, any> ? Args : never;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=replication-domain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replication-domain.d.ts","sourceRoot":"","sources":["../../src/replication-domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EACX,iBAAiB,EACjB,yBAAyB,EACzB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC;AACzB,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,CACxC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,KAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAExB,MAAM,MAAM,GAAG,GAAG;IACjB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE;QACL,QAAQ,EAAE;YACT,SAAS,EAAE,aAAa,CAAC;SACzB,CAAC;KACF,CAAC;IACF,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC9D,gBAAgB,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACnD,oBAAoB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5C,CAAC;AACF,MAAM,MAAM,yBAAyB,CAAC,IAAI,IAAI,CAC7C,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,IAAI,EAAE,IAAI,KACN,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC;AAElC,KAAK,UAAU,GAAG;IACjB,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,MAAM,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC,IAAI;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IACtC,QAAQ,EAAE,CACT,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,GAAG,EAAE,GAAG,KACJ,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,YAAY,WAAY,MAAM,WAE1C,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAC9B,CAAC,SAAS,iBAAiB,CAAC,MAAM,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replication-domain.js","sourceRoot":"","sources":["../../src/replication-domain.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,MAAM,4BAA4B,CAAC;AAMxD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqCpC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,EAAE;IAC9C,OAAO,MAAM,GAAG,OAAO,CAAC;AACzB,CAAC,CAAC"}
|
|
@@ -7,8 +7,8 @@ export type ReplicationLimits = {
|
|
|
7
7
|
max?: MinReplicas;
|
|
8
8
|
};
|
|
9
9
|
export declare enum ReplicationIntent {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
NonStrict = 0,// indicates that the segment will be replicated and nearby data might be replicated as well
|
|
11
|
+
Strict = 1
|
|
12
12
|
}
|
|
13
13
|
export declare const getSegmentsFromOffsetAndRange: (offset: number, factor: number) => [[number, number], [number, number]];
|
|
14
14
|
export declare class ReplicationRange {
|
|
@@ -16,11 +16,13 @@ export declare class ReplicationRange {
|
|
|
16
16
|
timestamp: bigint;
|
|
17
17
|
private _offset;
|
|
18
18
|
private _factor;
|
|
19
|
+
mode: ReplicationIntent;
|
|
19
20
|
constructor(properties: {
|
|
20
21
|
id: Uint8Array;
|
|
21
22
|
offset: number;
|
|
22
23
|
factor: number;
|
|
23
24
|
timestamp: bigint;
|
|
25
|
+
mode: ReplicationIntent;
|
|
24
26
|
});
|
|
25
27
|
get factor(): number;
|
|
26
28
|
get offset(): number;
|
|
@@ -35,12 +37,13 @@ export declare class ReplicationRangeIndexable {
|
|
|
35
37
|
start2: number;
|
|
36
38
|
end2: number;
|
|
37
39
|
width: number;
|
|
38
|
-
|
|
40
|
+
mode: ReplicationIntent;
|
|
39
41
|
constructor(properties: {
|
|
40
42
|
id?: Uint8Array;
|
|
43
|
+
normalized?: boolean;
|
|
41
44
|
offset: number;
|
|
42
45
|
length: number;
|
|
43
|
-
|
|
46
|
+
mode?: ReplicationIntent;
|
|
44
47
|
timestamp?: bigint;
|
|
45
48
|
} & ({
|
|
46
49
|
publicKeyHash: string;
|
|
@@ -77,15 +80,15 @@ export declare class ResponseRoleMessage extends TransportMessage {
|
|
|
77
80
|
constructor(properties: {
|
|
78
81
|
role: Observer | Replicator;
|
|
79
82
|
});
|
|
80
|
-
toReplicationInfoMessage():
|
|
83
|
+
toReplicationInfoMessage(): AllReplicatingSegmentsMessage;
|
|
81
84
|
}
|
|
82
|
-
export declare class
|
|
85
|
+
export declare class AllReplicatingSegmentsMessage extends TransportMessage {
|
|
83
86
|
segments: ReplicationRange[];
|
|
84
87
|
constructor(properties: {
|
|
85
88
|
segments: ReplicationRange[];
|
|
86
89
|
});
|
|
87
90
|
}
|
|
88
|
-
export declare class
|
|
91
|
+
export declare class AddedReplicationSegmentMessage extends TransportMessage {
|
|
89
92
|
segments: ReplicationRange[];
|
|
90
93
|
constructor(properties: {
|
|
91
94
|
segments: ReplicationRange[];
|
|
@@ -115,6 +118,5 @@ export declare const maxReplicas: (log: SharedLog, entries: {
|
|
|
115
118
|
data?: Uint8Array;
|
|
116
119
|
};
|
|
117
120
|
}>) => number;
|
|
118
|
-
export declare const hashToUniformNumber: (hash: Uint8Array) => number;
|
|
119
121
|
export {};
|
|
120
122
|
//# sourceMappingURL=replication.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replication.d.ts","sourceRoot":"","sources":["../../src/replication.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"replication.d.ts","sourceRoot":"","sources":["../../src/replication.ts"],"names":[],"mappings":"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"}
|
package/dist/src/replication.js
CHANGED
|
@@ -7,44 +7,46 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
import {
|
|
10
|
+
import { deserialize, field, option, serialize, variant, vec, } from "@dao-xyz/borsh";
|
|
11
11
|
import { PublicSignKey, equals, randomBytes } from "@peerbit/crypto";
|
|
12
12
|
import { id } from "@peerbit/indexer-interface";
|
|
13
13
|
import { TransportMessage } from "./message.js";
|
|
14
|
-
import { Observer, Replicator, Role,
|
|
14
|
+
import { MAX_U32, Observer, Replicator, Role, scaleToU32 } from "./role.js";
|
|
15
15
|
export var ReplicationIntent;
|
|
16
16
|
(function (ReplicationIntent) {
|
|
17
|
-
ReplicationIntent[ReplicationIntent["
|
|
18
|
-
ReplicationIntent[ReplicationIntent["
|
|
17
|
+
ReplicationIntent[ReplicationIntent["NonStrict"] = 0] = "NonStrict";
|
|
18
|
+
ReplicationIntent[ReplicationIntent["Strict"] = 1] = "Strict";
|
|
19
19
|
})(ReplicationIntent || (ReplicationIntent = {}));
|
|
20
20
|
export const getSegmentsFromOffsetAndRange = (offset, factor) => {
|
|
21
21
|
let start1 = offset;
|
|
22
22
|
let end1Unscaled = offset + factor; // only add factor if it is not 1 to prevent numerical issues (like (0.9 + 1) % 1 => 0.8999999)
|
|
23
|
-
let end1 = Math.min(end1Unscaled,
|
|
23
|
+
let end1 = Math.min(end1Unscaled, MAX_U32);
|
|
24
24
|
return [
|
|
25
25
|
[start1, end1],
|
|
26
|
-
end1Unscaled >
|
|
27
|
-
? [0, (factor !==
|
|
26
|
+
end1Unscaled > MAX_U32
|
|
27
|
+
? [0, (factor !== MAX_U32 ? offset + factor : offset) % MAX_U32]
|
|
28
28
|
: [start1, end1],
|
|
29
29
|
];
|
|
30
30
|
};
|
|
31
|
-
|
|
31
|
+
let ReplicationRange = class ReplicationRange {
|
|
32
32
|
id;
|
|
33
33
|
timestamp;
|
|
34
34
|
_offset;
|
|
35
35
|
_factor;
|
|
36
|
+
mode;
|
|
36
37
|
constructor(properties) {
|
|
37
|
-
const { id, offset, factor, timestamp } = properties;
|
|
38
|
+
const { id, offset, factor, timestamp, mode } = properties;
|
|
38
39
|
this.id = id;
|
|
39
|
-
this._offset =
|
|
40
|
-
this._factor =
|
|
40
|
+
this._offset = offset;
|
|
41
|
+
this._factor = factor;
|
|
41
42
|
this.timestamp = timestamp;
|
|
43
|
+
this.mode = mode;
|
|
42
44
|
}
|
|
43
45
|
get factor() {
|
|
44
|
-
return this._factor
|
|
46
|
+
return this._factor;
|
|
45
47
|
}
|
|
46
48
|
get offset() {
|
|
47
|
-
return this._offset
|
|
49
|
+
return this._offset;
|
|
48
50
|
}
|
|
49
51
|
toReplicationRangeIndexable(key) {
|
|
50
52
|
return new ReplicationRangeIndexable({
|
|
@@ -53,9 +55,10 @@ export class ReplicationRange {
|
|
|
53
55
|
offset: this.offset,
|
|
54
56
|
length: this.factor,
|
|
55
57
|
timestamp: this.timestamp,
|
|
58
|
+
mode: this.mode,
|
|
56
59
|
});
|
|
57
60
|
}
|
|
58
|
-
}
|
|
61
|
+
};
|
|
59
62
|
__decorate([
|
|
60
63
|
field({ type: Uint8Array }),
|
|
61
64
|
__metadata("design:type", Uint8Array)
|
|
@@ -72,6 +75,15 @@ __decorate([
|
|
|
72
75
|
field({ type: "u32" }),
|
|
73
76
|
__metadata("design:type", Number)
|
|
74
77
|
], ReplicationRange.prototype, "_factor", void 0);
|
|
78
|
+
__decorate([
|
|
79
|
+
field({ type: "u8" }),
|
|
80
|
+
__metadata("design:type", Number)
|
|
81
|
+
], ReplicationRange.prototype, "mode", void 0);
|
|
82
|
+
ReplicationRange = __decorate([
|
|
83
|
+
variant(0),
|
|
84
|
+
__metadata("design:paramtypes", [Object])
|
|
85
|
+
], ReplicationRange);
|
|
86
|
+
export { ReplicationRange };
|
|
75
87
|
export class ReplicationRangeIndexable {
|
|
76
88
|
id;
|
|
77
89
|
hash;
|
|
@@ -81,23 +93,30 @@ export class ReplicationRangeIndexable {
|
|
|
81
93
|
start2;
|
|
82
94
|
end2;
|
|
83
95
|
width;
|
|
84
|
-
|
|
96
|
+
mode;
|
|
85
97
|
constructor(properties) {
|
|
86
98
|
this.id = properties.id ?? randomBytes(32);
|
|
87
99
|
this.hash =
|
|
88
100
|
properties.publicKeyHash ||
|
|
89
101
|
properties.publicKey.hashcode();
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
102
|
+
if (!properties.normalized) {
|
|
103
|
+
this.transform({ length: properties.length, offset: properties.offset });
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
this.transform({
|
|
107
|
+
length: scaleToU32(properties.length),
|
|
108
|
+
offset: scaleToU32(properties.offset),
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
this.mode = properties.mode ?? ReplicationIntent.NonStrict;
|
|
93
112
|
this.timestamp = properties.timestamp || BigInt(0);
|
|
94
113
|
}
|
|
95
114
|
transform(properties) {
|
|
96
115
|
const ranges = getSegmentsFromOffsetAndRange(properties.offset, properties.length);
|
|
97
|
-
this.start1 = Math.round(ranges[0][0]
|
|
98
|
-
this.end1 = Math.round(ranges[0][1]
|
|
99
|
-
this.start2 = Math.round(ranges[1][0]
|
|
100
|
-
this.end2 = Math.round(ranges[1][1]
|
|
116
|
+
this.start1 = Math.round(ranges[0][0]);
|
|
117
|
+
this.end1 = Math.round(ranges[0][1]);
|
|
118
|
+
this.start2 = Math.round(ranges[1][0]);
|
|
119
|
+
this.end2 = Math.round(ranges[1][1]);
|
|
101
120
|
this.width =
|
|
102
121
|
this.end1 -
|
|
103
122
|
this.start1 +
|
|
@@ -106,7 +125,8 @@ export class ReplicationRangeIndexable {
|
|
|
106
125
|
this.end1 > 0xffffffff ||
|
|
107
126
|
this.start2 > 0xffffffff ||
|
|
108
127
|
this.end2 > 0xffffffff ||
|
|
109
|
-
this.width > 0xffffffff
|
|
128
|
+
this.width > 0xffffffff ||
|
|
129
|
+
this.width < 0) {
|
|
110
130
|
throw new Error("Segment coordinate out of bounds");
|
|
111
131
|
}
|
|
112
132
|
}
|
|
@@ -129,26 +149,27 @@ export class ReplicationRangeIndexable {
|
|
|
129
149
|
toReplicationRange() {
|
|
130
150
|
return new ReplicationRange({
|
|
131
151
|
id: this.id,
|
|
132
|
-
offset: this.start1
|
|
133
|
-
factor: this.width
|
|
152
|
+
offset: this.start1,
|
|
153
|
+
factor: this.width,
|
|
134
154
|
timestamp: this.timestamp,
|
|
155
|
+
mode: this.mode,
|
|
135
156
|
});
|
|
136
157
|
}
|
|
137
158
|
distanceTo(point) {
|
|
138
|
-
let wrappedPoint =
|
|
159
|
+
let wrappedPoint = MAX_U32 - point;
|
|
139
160
|
return Math.min(Math.abs(this.start1 - point), Math.abs(this.end2 - point), Math.abs(this.start1 - wrappedPoint), Math.abs(this.end2 - wrappedPoint));
|
|
140
161
|
}
|
|
141
162
|
get wrapped() {
|
|
142
163
|
return this.end2 < this.end1;
|
|
143
164
|
}
|
|
144
165
|
get widthNormalized() {
|
|
145
|
-
return this.width /
|
|
166
|
+
return this.width / MAX_U32;
|
|
146
167
|
}
|
|
147
168
|
equals(other) {
|
|
148
169
|
if (equals(this.id, other.id) &&
|
|
149
170
|
this.hash === other.hash &&
|
|
150
171
|
this.timestamp === other.timestamp &&
|
|
151
|
-
this.
|
|
172
|
+
this.mode === other.mode &&
|
|
152
173
|
this.start1 === other.start1 &&
|
|
153
174
|
this.end1 === other.end1 &&
|
|
154
175
|
this.start2 === other.start2 &&
|
|
@@ -161,9 +182,9 @@ export class ReplicationRangeIndexable {
|
|
|
161
182
|
toString() {
|
|
162
183
|
let roundToTwoDecimals = (num) => Math.round(num * 100) / 100;
|
|
163
184
|
if (Math.abs(this.start1 - this.start2) < 0.0001) {
|
|
164
|
-
return `([${roundToTwoDecimals(this.start1 /
|
|
185
|
+
return `([${roundToTwoDecimals(this.start1 / MAX_U32)}, ${roundToTwoDecimals(this.end1 / MAX_U32)}])`;
|
|
165
186
|
}
|
|
166
|
-
return `([${roundToTwoDecimals(this.start1 /
|
|
187
|
+
return `([${roundToTwoDecimals(this.start1 / MAX_U32)}, ${roundToTwoDecimals(this.end1 / MAX_U32)}] [${roundToTwoDecimals(this.start2 / MAX_U32)}, ${roundToTwoDecimals(this.end2 / MAX_U32)}])`;
|
|
167
188
|
}
|
|
168
189
|
}
|
|
169
190
|
__decorate([
|
|
@@ -201,7 +222,7 @@ __decorate([
|
|
|
201
222
|
__decorate([
|
|
202
223
|
field({ type: "u8" }),
|
|
203
224
|
__metadata("design:type", Number)
|
|
204
|
-
], ReplicationRangeIndexable.prototype, "
|
|
225
|
+
], ReplicationRangeIndexable.prototype, "mode", void 0);
|
|
205
226
|
export class MinReplicas {
|
|
206
227
|
getValue(log) {
|
|
207
228
|
throw new Error("Not implemented");
|
|
@@ -244,7 +265,7 @@ let ResponseRoleMessage = class ResponseRoleMessage extends TransportMessage {
|
|
|
244
265
|
this.role = properties.role;
|
|
245
266
|
}
|
|
246
267
|
toReplicationInfoMessage() {
|
|
247
|
-
return new
|
|
268
|
+
return new AllReplicatingSegmentsMessage({
|
|
248
269
|
segments: this.role instanceof Replicator
|
|
249
270
|
? this.role.segments.map((x) => {
|
|
250
271
|
return new ReplicationRange({
|
|
@@ -252,6 +273,7 @@ let ResponseRoleMessage = class ResponseRoleMessage extends TransportMessage {
|
|
|
252
273
|
offset: x.offset,
|
|
253
274
|
factor: x.factor,
|
|
254
275
|
timestamp: x.timestamp,
|
|
276
|
+
mode: ReplicationIntent.NonStrict,
|
|
255
277
|
});
|
|
256
278
|
})
|
|
257
279
|
: [],
|
|
@@ -267,7 +289,7 @@ ResponseRoleMessage = __decorate([
|
|
|
267
289
|
__metadata("design:paramtypes", [Object])
|
|
268
290
|
], ResponseRoleMessage);
|
|
269
291
|
export { ResponseRoleMessage };
|
|
270
|
-
let
|
|
292
|
+
let AllReplicatingSegmentsMessage = class AllReplicatingSegmentsMessage extends TransportMessage {
|
|
271
293
|
segments;
|
|
272
294
|
constructor(properties) {
|
|
273
295
|
super();
|
|
@@ -277,13 +299,13 @@ let ResponseReplicationInfoMessage = class ResponseReplicationInfoMessage extend
|
|
|
277
299
|
__decorate([
|
|
278
300
|
field({ type: vec(ReplicationRange) }),
|
|
279
301
|
__metadata("design:type", Array)
|
|
280
|
-
],
|
|
281
|
-
|
|
302
|
+
], AllReplicatingSegmentsMessage.prototype, "segments", void 0);
|
|
303
|
+
AllReplicatingSegmentsMessage = __decorate([
|
|
282
304
|
variant([1, 2]),
|
|
283
305
|
__metadata("design:paramtypes", [Object])
|
|
284
|
-
],
|
|
285
|
-
export {
|
|
286
|
-
let
|
|
306
|
+
], AllReplicatingSegmentsMessage);
|
|
307
|
+
export { AllReplicatingSegmentsMessage };
|
|
308
|
+
let AddedReplicationSegmentMessage = class AddedReplicationSegmentMessage extends TransportMessage {
|
|
287
309
|
segments;
|
|
288
310
|
constructor(properties) {
|
|
289
311
|
super();
|
|
@@ -293,12 +315,12 @@ let StartedReplicating = class StartedReplicating extends TransportMessage {
|
|
|
293
315
|
__decorate([
|
|
294
316
|
field({ type: vec(ReplicationRange) }),
|
|
295
317
|
__metadata("design:type", Array)
|
|
296
|
-
],
|
|
297
|
-
|
|
318
|
+
], AddedReplicationSegmentMessage.prototype, "segments", void 0);
|
|
319
|
+
AddedReplicationSegmentMessage = __decorate([
|
|
298
320
|
variant([1, 3]),
|
|
299
321
|
__metadata("design:paramtypes", [Object])
|
|
300
|
-
],
|
|
301
|
-
export {
|
|
322
|
+
], AddedReplicationSegmentMessage);
|
|
323
|
+
export { AddedReplicationSegmentMessage };
|
|
302
324
|
let StoppedReplicating = class StoppedReplicating extends TransportMessage {
|
|
303
325
|
segmentIds;
|
|
304
326
|
constructor(properties) {
|
|
@@ -353,8 +375,4 @@ export const maxReplicas = (log, entries) => {
|
|
|
353
375
|
const numberOfLeaders = Math.max(Math.min(higher, max), lower);
|
|
354
376
|
return numberOfLeaders;
|
|
355
377
|
};
|
|
356
|
-
export const hashToUniformNumber = (hash) => {
|
|
357
|
-
const seedNumber = new BinaryReader(hash.subarray(hash.length - 4, hash.length)).u32();
|
|
358
|
-
return seedNumber / 0xffffffff; // bounded between 0 and 1
|
|
359
|
-
};
|
|
360
378
|
//# sourceMappingURL=replication.js.map
|