@peerbit/document 10.0.4 → 10.1.1
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 +114 -59
- package/dist/benchmark/index.js.map +1 -1
- package/dist/benchmark/iterate-replicate-2.js +117 -63
- package/dist/benchmark/iterate-replicate-2.js.map +1 -1
- package/dist/benchmark/iterate-replicate.js +106 -56
- package/dist/benchmark/iterate-replicate.js.map +1 -1
- package/dist/benchmark/memory/child.js +114 -59
- package/dist/benchmark/memory/child.js.map +1 -1
- package/dist/benchmark/replication.js +106 -52
- package/dist/benchmark/replication.js.map +1 -1
- package/dist/src/domain.d.ts.map +1 -1
- package/dist/src/domain.js +1 -3
- package/dist/src/domain.js.map +1 -1
- package/dist/src/events.d.ts +1 -1
- package/dist/src/events.d.ts.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/most-common-query-predictor.d.ts +3 -3
- package/dist/src/most-common-query-predictor.d.ts.map +1 -1
- package/dist/src/most-common-query-predictor.js.map +1 -1
- package/dist/src/operation.js +175 -81
- package/dist/src/operation.js.map +1 -1
- package/dist/src/prefetch.d.ts +2 -2
- package/dist/src/prefetch.d.ts.map +1 -1
- package/dist/src/prefetch.js.map +1 -1
- package/dist/src/program.d.ts +2 -2
- package/dist/src/program.d.ts.map +1 -1
- package/dist/src/program.js +550 -508
- package/dist/src/program.js.map +1 -1
- package/dist/src/resumable-iterator.d.ts.map +1 -1
- package/dist/src/resumable-iterator.js +44 -0
- package/dist/src/resumable-iterator.js.map +1 -1
- package/dist/src/search.d.ts +14 -10
- package/dist/src/search.d.ts.map +1 -1
- package/dist/src/search.js +2477 -2120
- package/dist/src/search.js.map +1 -1
- package/package.json +21 -19
- package/src/domain.ts +1 -3
- package/src/events.ts +1 -1
- package/src/index.ts +1 -0
- package/src/most-common-query-predictor.ts +19 -5
- package/src/prefetch.ts +12 -3
- package/src/program.ts +7 -5
- package/src/resumable-iterator.ts +44 -0
- package/src/search.ts +564 -196
|
@@ -1,11 +1,36 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
6
27
|
};
|
|
7
|
-
var
|
|
8
|
-
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
9
34
|
};
|
|
10
35
|
import { yamux } from "@chainsafe/libp2p-yamux";
|
|
11
36
|
import { field, option, variant } from "@dao-xyz/borsh";
|
|
@@ -19,52 +44,81 @@ import * as B from "tinybench";
|
|
|
19
44
|
import { v4 as uuid } from "uuid";
|
|
20
45
|
import { Documents } from "../src/program.js";
|
|
21
46
|
// Run with "node --loader ts-node/esm ./benchmark/iterate-replicate.ts"
|
|
22
|
-
let Document =
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
47
|
+
let Document = (() => {
|
|
48
|
+
let _classDecorators = [variant("document")];
|
|
49
|
+
let _classDescriptor;
|
|
50
|
+
let _classExtraInitializers = [];
|
|
51
|
+
let _classThis;
|
|
52
|
+
let _id_decorators;
|
|
53
|
+
let _id_initializers = [];
|
|
54
|
+
let _id_extraInitializers = [];
|
|
55
|
+
let _name_decorators;
|
|
56
|
+
let _name_initializers = [];
|
|
57
|
+
let _name_extraInitializers = [];
|
|
58
|
+
let _number_decorators;
|
|
59
|
+
let _number_initializers = [];
|
|
60
|
+
let _number_extraInitializers = [];
|
|
61
|
+
var Document = class {
|
|
62
|
+
static { _classThis = this; }
|
|
63
|
+
static {
|
|
64
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
65
|
+
_id_decorators = [field({ type: "string" })];
|
|
66
|
+
_name_decorators = [field({ type: option("string") })];
|
|
67
|
+
_number_decorators = [field({ type: option("u64") })];
|
|
68
|
+
__esDecorate(null, null, _id_decorators, { kind: "field", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _id_extraInitializers);
|
|
69
|
+
__esDecorate(null, null, _name_decorators, { kind: "field", name: "name", static: false, private: false, access: { has: obj => "name" in obj, get: obj => obj.name, set: (obj, value) => { obj.name = value; } }, metadata: _metadata }, _name_initializers, _name_extraInitializers);
|
|
70
|
+
__esDecorate(null, null, _number_decorators, { kind: "field", name: "number", static: false, private: false, access: { has: obj => "number" in obj, get: obj => obj.number, set: (obj, value) => { obj.number = value; } }, metadata: _metadata }, _number_initializers, _number_extraInitializers);
|
|
71
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
72
|
+
Document = _classThis = _classDescriptor.value;
|
|
73
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
74
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
31
75
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
variant("
|
|
48
|
-
|
|
49
|
-
]
|
|
50
|
-
let
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
76
|
+
id = __runInitializers(this, _id_initializers, void 0);
|
|
77
|
+
name = (__runInitializers(this, _id_extraInitializers), __runInitializers(this, _name_initializers, void 0));
|
|
78
|
+
number = (__runInitializers(this, _name_extraInitializers), __runInitializers(this, _number_initializers, void 0));
|
|
79
|
+
constructor(opts) {
|
|
80
|
+
__runInitializers(this, _number_extraInitializers);
|
|
81
|
+
if (opts) {
|
|
82
|
+
this.id = opts.id;
|
|
83
|
+
this.name = opts.name;
|
|
84
|
+
this.number = opts.number;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
return Document = _classThis;
|
|
89
|
+
})();
|
|
90
|
+
let TestStore = (() => {
|
|
91
|
+
let _classDecorators = [variant("test_documents")];
|
|
92
|
+
let _classDescriptor;
|
|
93
|
+
let _classExtraInitializers = [];
|
|
94
|
+
let _classThis;
|
|
95
|
+
let _classSuper = Program;
|
|
96
|
+
let _docs_decorators;
|
|
97
|
+
let _docs_initializers = [];
|
|
98
|
+
let _docs_extraInitializers = [];
|
|
99
|
+
var TestStore = class extends _classSuper {
|
|
100
|
+
static { _classThis = this; }
|
|
101
|
+
static {
|
|
102
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
103
|
+
_docs_decorators = [field({ type: Documents })];
|
|
104
|
+
__esDecorate(null, null, _docs_decorators, { kind: "field", name: "docs", static: false, private: false, access: { has: obj => "docs" in obj, get: obj => obj.docs, set: (obj, value) => { obj.docs = value; } }, metadata: _metadata }, _docs_initializers, _docs_extraInitializers);
|
|
105
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
106
|
+
TestStore = _classThis = _classDescriptor.value;
|
|
107
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
108
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
109
|
+
}
|
|
110
|
+
docs = __runInitializers(this, _docs_initializers, void 0);
|
|
111
|
+
constructor() {
|
|
112
|
+
super();
|
|
113
|
+
__runInitializers(this, _docs_extraInitializers);
|
|
114
|
+
this.docs = new Documents();
|
|
115
|
+
}
|
|
116
|
+
async open(options) {
|
|
117
|
+
await this.docs.open({ ...options, type: Document });
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
return TestStore = _classThis;
|
|
121
|
+
})();
|
|
68
122
|
const peers = await Promise.all([
|
|
69
123
|
await createLibp2pExtended({
|
|
70
124
|
transports: [tcp()],
|
|
@@ -121,7 +175,6 @@ const client = await peers[1].open(host.clone(), {
|
|
|
121
175
|
await client.docs.log.waitForReplicator(host.node.identity.publicKey);
|
|
122
176
|
let iterator = undefined;
|
|
123
177
|
const suite = new B.Bench();
|
|
124
|
-
let x = 0;
|
|
125
178
|
let iterateBatchSize = 10;
|
|
126
179
|
suite.add("iterate", async () => {
|
|
127
180
|
// wait for reading
|
|
@@ -129,7 +182,6 @@ suite.add("iterate", async () => {
|
|
|
129
182
|
if (batch.length !== 10 && iterator.done() !== true) {
|
|
130
183
|
throw new Error("Missing results");
|
|
131
184
|
}
|
|
132
|
-
x += batch.length;
|
|
133
185
|
if (iterator.done() === true) {
|
|
134
186
|
iterator = client.docs.index.iterate(new SearchRequest({ sort: new Sort({ key: "number" }) }));
|
|
135
187
|
}
|
|
@@ -141,14 +193,12 @@ suite.add("iterate", async () => {
|
|
|
141
193
|
return iterator?.close();
|
|
142
194
|
},
|
|
143
195
|
});
|
|
144
|
-
let c = 0;
|
|
145
196
|
suite.add("iterate-replicate", async () => {
|
|
146
197
|
// wait for reading
|
|
147
198
|
const batch = await iterator.next(iterateBatchSize);
|
|
148
199
|
if (batch.length !== 10 && iterator.done() !== true) {
|
|
149
200
|
throw new Error("Missing results");
|
|
150
201
|
}
|
|
151
|
-
c += batch.length;
|
|
152
202
|
if (iterator.done() === true) {
|
|
153
203
|
iterator = client.docs.index.iterate(new SearchRequest({ sort: new Sort({ key: "number" }) }), { remote: { replicate: true } });
|
|
154
204
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iterate-replicate.js","sourceRoot":"","sources":["../../benchmark/iterate-replicate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"iterate-replicate.js","sourceRoot":"","sources":["../../benchmark/iterate-replicate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,36 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
6
27
|
};
|
|
7
|
-
var
|
|
8
|
-
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
9
34
|
};
|
|
10
35
|
// this benchmark will test how much memory is used to store 1m documents
|
|
11
36
|
import { field, option, variant } from "@dao-xyz/borsh";
|
|
@@ -17,60 +42,90 @@ import { v4 as uuid } from "uuid";
|
|
|
17
42
|
import { Documents } from "../../src/program.js";
|
|
18
43
|
// Run with "node --loader ts-node/esm ./benchmark/memory/index.ts"
|
|
19
44
|
// handle io from process and parent
|
|
20
|
-
let Document =
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
45
|
+
let Document = (() => {
|
|
46
|
+
let _classDecorators = [variant("document")];
|
|
47
|
+
let _classDescriptor;
|
|
48
|
+
let _classExtraInitializers = [];
|
|
49
|
+
let _classThis;
|
|
50
|
+
let _id_decorators;
|
|
51
|
+
let _id_initializers = [];
|
|
52
|
+
let _id_extraInitializers = [];
|
|
53
|
+
let _name_decorators;
|
|
54
|
+
let _name_initializers = [];
|
|
55
|
+
let _name_extraInitializers = [];
|
|
56
|
+
let _number_decorators;
|
|
57
|
+
let _number_initializers = [];
|
|
58
|
+
let _number_extraInitializers = [];
|
|
59
|
+
let _bytes_decorators;
|
|
60
|
+
let _bytes_initializers = [];
|
|
61
|
+
let _bytes_extraInitializers = [];
|
|
62
|
+
var Document = class {
|
|
63
|
+
static { _classThis = this; }
|
|
64
|
+
static {
|
|
65
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
66
|
+
_id_decorators = [field({ type: "string" })];
|
|
67
|
+
_name_decorators = [field({ type: option("string") })];
|
|
68
|
+
_number_decorators = [field({ type: option("u64") })];
|
|
69
|
+
_bytes_decorators = [field({ type: Uint8Array })];
|
|
70
|
+
__esDecorate(null, null, _id_decorators, { kind: "field", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _id_extraInitializers);
|
|
71
|
+
__esDecorate(null, null, _name_decorators, { kind: "field", name: "name", static: false, private: false, access: { has: obj => "name" in obj, get: obj => obj.name, set: (obj, value) => { obj.name = value; } }, metadata: _metadata }, _name_initializers, _name_extraInitializers);
|
|
72
|
+
__esDecorate(null, null, _number_decorators, { kind: "field", name: "number", static: false, private: false, access: { has: obj => "number" in obj, get: obj => obj.number, set: (obj, value) => { obj.number = value; } }, metadata: _metadata }, _number_initializers, _number_extraInitializers);
|
|
73
|
+
__esDecorate(null, null, _bytes_decorators, { kind: "field", name: "bytes", static: false, private: false, access: { has: obj => "bytes" in obj, get: obj => obj.bytes, set: (obj, value) => { obj.bytes = value; } }, metadata: _metadata }, _bytes_initializers, _bytes_extraInitializers);
|
|
74
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
75
|
+
Document = _classThis = _classDescriptor.value;
|
|
76
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
77
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
31
78
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
__metadata("design:type", BigInt)
|
|
45
|
-
], Document.prototype, "number", void 0);
|
|
46
|
-
__decorate([
|
|
47
|
-
field({ type: Uint8Array }),
|
|
48
|
-
__metadata("design:type", Uint8Array)
|
|
49
|
-
], Document.prototype, "bytes", void 0);
|
|
50
|
-
Document = __decorate([
|
|
51
|
-
variant("document"),
|
|
52
|
-
__metadata("design:paramtypes", [Document])
|
|
53
|
-
], Document);
|
|
54
|
-
let TestStore = class TestStore extends Program {
|
|
55
|
-
docs;
|
|
56
|
-
constructor(properties) {
|
|
57
|
-
super();
|
|
58
|
-
if (properties) {
|
|
59
|
-
this.docs = properties.docs;
|
|
79
|
+
id = __runInitializers(this, _id_initializers, void 0);
|
|
80
|
+
name = (__runInitializers(this, _id_extraInitializers), __runInitializers(this, _name_initializers, void 0));
|
|
81
|
+
number = (__runInitializers(this, _name_extraInitializers), __runInitializers(this, _number_initializers, void 0));
|
|
82
|
+
bytes = (__runInitializers(this, _number_extraInitializers), __runInitializers(this, _bytes_initializers, void 0));
|
|
83
|
+
constructor(opts) {
|
|
84
|
+
__runInitializers(this, _bytes_extraInitializers);
|
|
85
|
+
if (opts) {
|
|
86
|
+
this.id = opts.id;
|
|
87
|
+
this.name = opts.name;
|
|
88
|
+
this.number = opts.number;
|
|
89
|
+
this.bytes = opts.bytes;
|
|
90
|
+
}
|
|
60
91
|
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
92
|
+
};
|
|
93
|
+
return Document = _classThis;
|
|
94
|
+
})();
|
|
95
|
+
let TestStore = (() => {
|
|
96
|
+
let _classDecorators = [variant("test_documents")];
|
|
97
|
+
let _classDescriptor;
|
|
98
|
+
let _classExtraInitializers = [];
|
|
99
|
+
let _classThis;
|
|
100
|
+
let _classSuper = Program;
|
|
101
|
+
let _docs_decorators;
|
|
102
|
+
let _docs_initializers = [];
|
|
103
|
+
let _docs_extraInitializers = [];
|
|
104
|
+
var TestStore = class extends _classSuper {
|
|
105
|
+
static { _classThis = this; }
|
|
106
|
+
static {
|
|
107
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
108
|
+
_docs_decorators = [field({ type: Documents })];
|
|
109
|
+
__esDecorate(null, null, _docs_decorators, { kind: "field", name: "docs", static: false, private: false, access: { has: obj => "docs" in obj, get: obj => obj.docs, set: (obj, value) => { obj.docs = value; } }, metadata: _metadata }, _docs_initializers, _docs_extraInitializers);
|
|
110
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
111
|
+
TestStore = _classThis = _classDescriptor.value;
|
|
112
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
113
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
114
|
+
}
|
|
115
|
+
docs = __runInitializers(this, _docs_initializers, void 0);
|
|
116
|
+
constructor(properties) {
|
|
117
|
+
super();
|
|
118
|
+
__runInitializers(this, _docs_extraInitializers);
|
|
119
|
+
if (properties) {
|
|
120
|
+
this.docs = properties.docs;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
async open(options) {
|
|
124
|
+
await this.docs.open({ ...options, type: Document });
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
return TestStore = _classThis;
|
|
128
|
+
})();
|
|
74
129
|
const peersCount = 1;
|
|
75
130
|
const sendReady = () => process.send(JSON.stringify({ type: "ready" }));
|
|
76
131
|
let session;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"child.js","sourceRoot":"","sources":["../../../benchmark/memory/child.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"child.js","sourceRoot":"","sources":["../../../benchmark/memory/child.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,36 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
6
27
|
};
|
|
7
|
-
var
|
|
8
|
-
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
9
34
|
};
|
|
10
35
|
import { yamux } from "@chainsafe/libp2p-yamux";
|
|
11
36
|
import { field, option, variant } from "@dao-xyz/borsh";
|
|
@@ -19,52 +44,81 @@ import { v4 as uuid } from "uuid";
|
|
|
19
44
|
import { Documents } from "../src/program.js";
|
|
20
45
|
// Run with "node --loader ts-node/esm ./benchmark/replication.ts"
|
|
21
46
|
// put x 862 ops/sec ±4.75% (75 runs sampled)
|
|
22
|
-
let Document =
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
47
|
+
let Document = (() => {
|
|
48
|
+
let _classDecorators = [variant("document")];
|
|
49
|
+
let _classDescriptor;
|
|
50
|
+
let _classExtraInitializers = [];
|
|
51
|
+
let _classThis;
|
|
52
|
+
let _id_decorators;
|
|
53
|
+
let _id_initializers = [];
|
|
54
|
+
let _id_extraInitializers = [];
|
|
55
|
+
let _name_decorators;
|
|
56
|
+
let _name_initializers = [];
|
|
57
|
+
let _name_extraInitializers = [];
|
|
58
|
+
let _number_decorators;
|
|
59
|
+
let _number_initializers = [];
|
|
60
|
+
let _number_extraInitializers = [];
|
|
61
|
+
var Document = class {
|
|
62
|
+
static { _classThis = this; }
|
|
63
|
+
static {
|
|
64
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
65
|
+
_id_decorators = [field({ type: "string" })];
|
|
66
|
+
_name_decorators = [field({ type: option("string") })];
|
|
67
|
+
_number_decorators = [field({ type: option("u64") })];
|
|
68
|
+
__esDecorate(null, null, _id_decorators, { kind: "field", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _id_extraInitializers);
|
|
69
|
+
__esDecorate(null, null, _name_decorators, { kind: "field", name: "name", static: false, private: false, access: { has: obj => "name" in obj, get: obj => obj.name, set: (obj, value) => { obj.name = value; } }, metadata: _metadata }, _name_initializers, _name_extraInitializers);
|
|
70
|
+
__esDecorate(null, null, _number_decorators, { kind: "field", name: "number", static: false, private: false, access: { has: obj => "number" in obj, get: obj => obj.number, set: (obj, value) => { obj.number = value; } }, metadata: _metadata }, _number_initializers, _number_extraInitializers);
|
|
71
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
72
|
+
Document = _classThis = _classDescriptor.value;
|
|
73
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
74
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
31
75
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
variant("
|
|
48
|
-
|
|
49
|
-
]
|
|
50
|
-
let
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
76
|
+
id = __runInitializers(this, _id_initializers, void 0);
|
|
77
|
+
name = (__runInitializers(this, _id_extraInitializers), __runInitializers(this, _name_initializers, void 0));
|
|
78
|
+
number = (__runInitializers(this, _name_extraInitializers), __runInitializers(this, _number_initializers, void 0));
|
|
79
|
+
constructor(opts) {
|
|
80
|
+
__runInitializers(this, _number_extraInitializers);
|
|
81
|
+
if (opts) {
|
|
82
|
+
this.id = opts.id;
|
|
83
|
+
this.name = opts.name;
|
|
84
|
+
this.number = opts.number;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
return Document = _classThis;
|
|
89
|
+
})();
|
|
90
|
+
let TestStore = (() => {
|
|
91
|
+
let _classDecorators = [variant("test_documents")];
|
|
92
|
+
let _classDescriptor;
|
|
93
|
+
let _classExtraInitializers = [];
|
|
94
|
+
let _classThis;
|
|
95
|
+
let _classSuper = Program;
|
|
96
|
+
let _docs_decorators;
|
|
97
|
+
let _docs_initializers = [];
|
|
98
|
+
let _docs_extraInitializers = [];
|
|
99
|
+
var TestStore = class extends _classSuper {
|
|
100
|
+
static { _classThis = this; }
|
|
101
|
+
static {
|
|
102
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
103
|
+
_docs_decorators = [field({ type: Documents })];
|
|
104
|
+
__esDecorate(null, null, _docs_decorators, { kind: "field", name: "docs", static: false, private: false, access: { has: obj => "docs" in obj, get: obj => obj.docs, set: (obj, value) => { obj.docs = value; } }, metadata: _metadata }, _docs_initializers, _docs_extraInitializers);
|
|
105
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
106
|
+
TestStore = _classThis = _classDescriptor.value;
|
|
107
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
108
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
109
|
+
}
|
|
110
|
+
docs = __runInitializers(this, _docs_initializers, void 0);
|
|
111
|
+
constructor() {
|
|
112
|
+
super();
|
|
113
|
+
__runInitializers(this, _docs_extraInitializers);
|
|
114
|
+
this.docs = new Documents();
|
|
115
|
+
}
|
|
116
|
+
async open(options) {
|
|
117
|
+
await this.docs.open({ ...options, type: Document });
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
return TestStore = _classThis;
|
|
121
|
+
})();
|
|
68
122
|
const peers = await Promise.all([
|
|
69
123
|
await createLibp2pExtended({
|
|
70
124
|
transports: [tcp()],
|