@sovereignbase/sequencer 0.0.1 → 0.0.2
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/README.md +29 -24
- package/dist/index.cjs +107 -55
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +107 -55
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -25,44 +25,43 @@ lifecycle workload and API throughput bursts. Full results are available for
|
|
|
25
25
|
[lifecycle](benchmark/.results/lifecycle.md) and
|
|
26
26
|
[throughput](benchmark/.results/throughput.md).
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
public API call, weighted by call count across
|
|
28
|
+
Current throughput results, measured on 12 October 2026. Latencies are in µs per
|
|
29
|
+
public API call, weighted by call count across three runs.
|
|
30
30
|
|
|
31
31
|
| Operation | 100 initial insertions | 1,000 initial insertions | 10,000 initial insertions |
|
|
32
32
|
| ----------------------------------- | ---------------------: | -----------------------: | ------------------------: |
|
|
33
|
-
| `new Projection(actorID, sequence)` |
|
|
34
|
-
| `insert`, random position | 1.
|
|
35
|
-
| `remove`, middle | 1.
|
|
36
|
-
| `replace`, middle | 1.
|
|
37
|
-
| `sequence()` | 0.
|
|
38
|
-
| `value`, random position | 0.
|
|
39
|
-
| `values()` | 4.
|
|
33
|
+
| `new Projection(actorID, sequence)` | 2.013 | 1.598 | 1.503 |
|
|
34
|
+
| `insert`, random position | 1.108 | 1.045 | 1.076 |
|
|
35
|
+
| `remove`, middle | 1.534 | 1.605 | 1.493 |
|
|
36
|
+
| `replace`, middle | 1.507 | 1.364 | 1.625 |
|
|
37
|
+
| `sequence()` | 0.288 | 0.320 | 0.331 |
|
|
38
|
+
| `value`, random position | 0.090 | 0.082 | 0.155 |
|
|
39
|
+
| `values()` | 4.787 | 174.213 | 1252.987 |
|
|
40
40
|
|
|
41
41
|
Environment: Node 24.16.0, V8 13.6.233.17-node.49, Windows x64, Intel Core
|
|
42
42
|
i5-10210U. Generated Strip lengths are 1–100 Frames. Each case warms up for
|
|
43
|
-
|
|
43
|
+
2,048 calls, then measures a burst of approximately 100 ms or at most 8,192 calls.
|
|
44
44
|
|
|
45
45
|
## Memory efficiency
|
|
46
46
|
|
|
47
|
-
Retained
|
|
47
|
+
Retained memory for eight Projections, each containing 6,000 consecutive
|
|
48
48
|
single-Frame insertions. These are five-run medians from isolated Node processes:
|
|
49
49
|
|
|
50
|
-
| Measurement |
|
|
51
|
-
| --------------------------- |
|
|
52
|
-
| Additional JS heap after GC |
|
|
53
|
-
| Shared WASM memory capacity |
|
|
50
|
+
| Measurement | Current |
|
|
51
|
+
| --------------------------- | -------: |
|
|
52
|
+
| Additional JS heap after GC | 0.501 MB |
|
|
53
|
+
| Shared WASM memory capacity | 1.049 MB |
|
|
54
54
|
|
|
55
55
|
Module import and a small warm-up are excluded from the heap delta. WASM
|
|
56
56
|
capacity includes the initial 1 MiB allocation. These are not process RSS or
|
|
57
|
-
per-Projection total memory.
|
|
58
|
-
retained in [the optimization report](archives/optimizations/flat_sequence/README.md).
|
|
57
|
+
per-Projection total memory.
|
|
59
58
|
|
|
60
59
|
### Moderate bundle size
|
|
61
60
|
|
|
62
61
|
| Format | Raw | Minified | Minified + gzip |
|
|
63
62
|
| -------- | -------: | -------: | --------------: |
|
|
64
|
-
| ESM |
|
|
65
|
-
| CommonJS |
|
|
63
|
+
| ESM | 120.9 kB | 101.6 kB | 36.8 kB |
|
|
64
|
+
| CommonJS | 121.0 kB | 102.4 kB | 37.0 kB |
|
|
66
65
|
|
|
67
66
|
Both bundles include the WASM module. Minified sizes use Terser with three
|
|
68
67
|
compression passes; source maps and type declarations are excluded. kB and MB
|
|
@@ -76,9 +75,13 @@ arrays. Generic content, called Footage, stays in JavaScript; only numeric
|
|
|
76
75
|
metadata enters WASM.
|
|
77
76
|
|
|
78
77
|
`sequence()` returns `[words, footage]`: one numeric array and one content
|
|
79
|
-
array, with no nested insertion or acknowledgement arrays.
|
|
80
|
-
|
|
81
|
-
|
|
78
|
+
array, with no nested insertion or acknowledgement arrays. Small snapshots use
|
|
79
|
+
six-word records after length-prefixed acknowledgements. From 64 retained
|
|
80
|
+
insertions onward, predictable fields are omitted as WASM writes the snapshot;
|
|
81
|
+
`[0, frontiersEnd, insertionCount]` identifies this compact numeric layout.
|
|
82
|
+
Coordinates, acknowledgements and content order are preserved. The runtime
|
|
83
|
+
reads both layouts; compact snapshots require an updated reader.
|
|
84
|
+
Positive insertion lengths identify successive spans of `footage`.
|
|
82
85
|
An empty Sequence is `[[], []]`. Construction and `merge()` accept numeric
|
|
83
86
|
arrays or `Uint32Array` metadata; exported numeric arrays can be sent as JSON.
|
|
84
87
|
|
|
@@ -98,7 +101,7 @@ their removal Gossip, and a snapshot captured before removal:
|
|
|
98
101
|
| Workload | Average bytes per operation or insertion | JSON | JSON + gzip | gzip reduction |
|
|
99
102
|
| ---------------------------------------------- | ---------------------------------------: | ------: | ----------: | -------------: |
|
|
100
103
|
| 1,000 one-frame insertions | 44.8 B | 45.8 kB | 5.1 kB | 88.9% |
|
|
101
|
-
| 1,000 one-frame removals |
|
|
104
|
+
| 1,000 one-frame removals | 65.8 B | 66.8 kB | 7.5 kB | 88.8% |
|
|
102
105
|
| Snapshot containing 1,000 one-frame insertions | 4.0 B | 4.0 kB | 0.1 kB | 98.3% |
|
|
103
106
|
|
|
104
107
|
Gossip sizes include acknowledgements and content where present. Delta averages
|
|
@@ -114,7 +117,9 @@ Sizes vary with Session IDs and content.
|
|
|
114
117
|
typechecks tests, runs unit, convergence, integration and generative stress suites
|
|
115
118
|
with V8 coverage, then runs runtime and browser compatibility checks.
|
|
116
119
|
|
|
117
|
-
The latest verification passed
|
|
120
|
+
The latest verification passed 170 Vitest tests and 88 compatibility checks.
|
|
121
|
+
The configured 100% coverage threshold remains unmet (95.66% statements,
|
|
122
|
+
94.94% branches, 100% functions, 97.23% lines).
|
|
118
123
|
Convergence tests include 1,024 generated editing histories for each compaction
|
|
119
124
|
mode. See the [test suites](test/README.md) and
|
|
120
125
|
[automated test report](https://sovereignbase.dev/sequencer/tests/).
|