Skip to content

Commit de6995d

Browse files
hubcionuminnex
andauthored
refactor(server): replace slab ECS with LeftRight-based global metadata (#2555)
Centralizing metadata into a single LeftRight store provides lock-free reads across shards and eliminates coordination complexity inherent in the distributed slab approach. Shards now read from a shared snapshot while shard 0 exclusively handles writes, ensuring consistency without per-read synchronization. --------- Co-authored-by: Grzegorz Koszyk <112548209+numinnex@users.noreply.github.com>
1 parent 4fb1fc7 commit de6995d

File tree

144 files changed

+7832
-9738
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

144 files changed

+7832
-9738
lines changed

Cargo.lock

Lines changed: 80 additions & 164 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ serde_yaml_ng = "0.10.0"
178178
serial_test = "3.3.1"
179179
server = { path = "core/server" }
180180
simd-json = { version = "0.17.0", features = ["serde_impl"] }
181+
slab = "0.4.1"
181182
strum = { version = "0.27.2", features = ["derive"] }
182183
strum_macros = "0.27.2"
183184
sysinfo = "0.37.2"
@@ -212,7 +213,7 @@ uuid = { version = "1.19.0", features = [
212213
"zerocopy",
213214
] }
214215
webpki-roots = "1.0.5"
215-
zip = "=7.0.0"
216+
zip = { version = "7.1.0", default-features = false, features = ["deflate"] }
216217

217218
[profile.release]
218219
lto = true

DEPENDENCIES.md

Lines changed: 22 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,7 @@ anstyle-query: 1.1.5, "Apache-2.0 OR MIT",
3131
anstyle-wincon: 3.0.11, "Apache-2.0 OR MIT",
3232
anyhow: 1.0.100, "Apache-2.0 OR MIT",
3333
apache-avro: 0.17.0, "Apache-2.0",
34-
arbitrary: 1.4.2, "Apache-2.0 OR MIT",
3534
arc-swap: 1.8.0, "Apache-2.0 OR MIT",
36-
arcshift: 0.4.2, "Apache-2.0 OR MIT",
3735
argon2: 0.5.3, "Apache-2.0 OR MIT",
3836
array-init: 2.1.0, "Apache-2.0 OR MIT",
3937
arrayref: 0.3.9, "BSD-2-Clause",
@@ -57,7 +55,7 @@ assert_cmd: 2.1.2, "Apache-2.0 OR MIT",
5755
astral-tokio-tar: 0.5.6, "Apache-2.0 OR MIT",
5856
async-broadcast: 0.7.2, "Apache-2.0 OR MIT",
5957
async-channel: 2.5.0, "Apache-2.0 OR MIT",
60-
async-compression: 0.4.19, "Apache-2.0 OR MIT",
58+
async-compression: 0.4.37, "Apache-2.0 OR MIT",
6159
async-dropper: 0.3.1, "MIT",
6260
async-dropper-derive: 0.3.1, "MIT",
6361
async-dropper-simple: 0.2.6, "MIT",
@@ -74,8 +72,8 @@ atomic-polyfill: 1.0.3, "Apache-2.0 OR MIT",
7472
atomic-waker: 1.1.2, "Apache-2.0 OR MIT",
7573
autocfg: 1.5.0, "Apache-2.0 OR MIT",
7674
autotools: 0.2.7, "MIT",
77-
aws-lc-rs: 1.15.3, "(Apache-2.0 OR ISC) AND ISC",
78-
aws-lc-sys: 0.36.0, "(Apache-2.0 OR ISC) AND ISC AND OpenSSL",
75+
aws-lc-rs: 1.15.2, "(Apache-2.0 OR ISC) AND ISC",
76+
aws-lc-sys: 0.35.0, "(Apache-2.0 OR ISC) AND ISC AND OpenSSL",
7977
axum: 0.8.8, "MIT",
8078
axum-core: 0.5.6, "MIT",
8179
axum-macros: 0.5.0, "MIT",
@@ -122,13 +120,11 @@ bytemuck: 1.24.0, "Apache-2.0 OR MIT OR Zlib",
122120
byteorder: 1.5.0, "MIT OR Unlicense",
123121
bytes: 1.11.0, "MIT",
124122
bytestring: 1.5.0, "Apache-2.0 OR MIT",
125-
bzip2: 0.5.2, "Apache-2.0 OR MIT",
126123
bzip2: 0.6.1, "Apache-2.0 OR MIT",
127-
bzip2-sys: 0.1.13+1.0.8, "Apache-2.0 OR MIT",
128124
camino: 1.2.2, "Apache-2.0 OR MIT",
129125
cargo-platform: 0.3.2, "Apache-2.0 OR MIT",
130126
cargo_metadata: 0.23.1, "MIT",
131-
cc: 1.2.53, "Apache-2.0 OR MIT",
127+
cc: 1.2.52, "Apache-2.0 OR MIT",
132128
cesu8: 1.1.0, "Apache-2.0 OR MIT",
133129
cfg-if: 1.0.4, "Apache-2.0 OR MIT",
134130
cfg_aliases: 0.2.1, "MIT",
@@ -160,14 +156,15 @@ compio-quic: 0.6.0, "MIT",
160156
compio-runtime: 0.10.1, "MIT",
161157
compio-tls: 0.8.0, "MIT",
162158
compio-ws: 0.2.0, "MIT",
159+
compression-codecs: 0.4.36, "Apache-2.0 OR MIT",
160+
compression-core: 0.4.31, "Apache-2.0 OR MIT",
163161
concurrent-queue: 2.5.0, "Apache-2.0 OR MIT",
164162
consensus: 0.1.0, "Apache-2.0",
165163
console: 0.16.2, "MIT",
166164
console_error_panic_hook: 0.1.7, "Apache-2.0 OR MIT",
167165
const-oid: 0.9.6, "Apache-2.0 OR MIT",
168166
const-random: 0.1.18, "Apache-2.0 OR MIT",
169167
const-random-macro: 0.1.16, "Apache-2.0 OR MIT",
170-
constant_time_eq: 0.3.1, "Apache-2.0 OR CC0-1.0 OR MIT-0",
171168
constant_time_eq: 0.4.2, "Apache-2.0 OR CC0-1.0 OR MIT-0",
172169
convert_case: 0.6.0, "MIT",
173170
convert_case: 0.10.0, "MIT",
@@ -177,7 +174,7 @@ core-foundation-sys: 0.8.7, "Apache-2.0 OR MIT",
177174
core2: 0.4.0, "Apache-2.0 OR MIT",
178175
core_affinity: 0.8.3, "Apache-2.0 OR MIT",
179176
cpufeatures: 0.2.17, "Apache-2.0 OR MIT",
180-
crc: 3.3.0, "Apache-2.0 OR MIT",
177+
crc: 3.4.0, "Apache-2.0 OR MIT",
181178
crc-catalog: 2.4.0, "Apache-2.0 OR MIT",
182179
crc32c: 0.6.8, "Apache-2.0 OR MIT",
183180
crc32fast: 1.5.0, "Apache-2.0 OR MIT",
@@ -219,12 +216,10 @@ dashmap: 6.1.0, "MIT",
219216
data-encoding: 2.10.0, "MIT",
220217
dbus: 0.9.10, "Apache-2.0 OR MIT",
221218
dbus-secret-service: 4.1.0, "Apache-2.0 OR MIT",
222-
deflate64: 0.1.10, "MIT",
223219
der: 0.7.10, "Apache-2.0 OR MIT",
224220
der-parser: 10.0.0, "Apache-2.0 OR MIT",
225221
deranged: 0.5.5, "Apache-2.0 OR MIT",
226222
derive-new: 0.7.0, "MIT",
227-
derive_arbitrary: 1.4.2, "Apache-2.0 OR MIT",
228223
derive_builder: 0.20.2, "Apache-2.0 OR MIT",
229224
derive_builder_core: 0.20.2, "Apache-2.0 OR MIT",
230225
derive_builder_macro: 0.20.2, "Apache-2.0 OR MIT",
@@ -286,7 +281,7 @@ figlet-rs: 0.1.5, "Apache-2.0",
286281
figment: 0.10.19, "Apache-2.0 OR MIT",
287282
file-operation: 0.8.11, "MIT",
288283
filetime: 0.2.26, "Apache-2.0 OR MIT",
289-
find-msvc-tools: 0.1.8, "Apache-2.0 OR MIT",
284+
find-msvc-tools: 0.1.7, "Apache-2.0 OR MIT",
290285
flatbuffers: 25.12.19, "Apache-2.0",
291286
flate2: 1.1.8, "Apache-2.0 OR MIT",
292287
float-cmp: 0.10.0, "MIT",
@@ -437,7 +432,7 @@ jni: 0.21.1, "Apache-2.0 OR MIT",
437432
jni-sys: 0.3.0, "Apache-2.0 OR MIT",
438433
jobserver: 0.1.34, "Apache-2.0 OR MIT",
439434
journal: 0.1.0, "Apache-2.0",
440-
js-sys: 0.3.85, "Apache-2.0 OR MIT",
435+
js-sys: 0.3.83, "Apache-2.0 OR MIT",
441436
jsonwebtoken: 10.2.0, "MIT",
442437
jwalk: 0.8.1, "MIT",
443438
keccak: 0.1.5, "Apache-2.0 OR MIT",
@@ -461,6 +456,8 @@ libdbus-sys: 0.2.7, "Apache-2.0 OR MIT",
461456
libflate: 2.2.1, "MIT",
462457
libflate_lz77: 2.2.0, "MIT",
463458
libgit2-sys: 0.18.3+1.9.2, "Apache-2.0 OR MIT",
459+
liblzma: 0.4.5, "Apache-2.0 OR MIT",
460+
liblzma-sys: 0.4.4, "Apache-2.0 OR MIT",
464461
libm: 0.2.15, "MIT",
465462
libmimalloc-sys: 0.1.44, "MIT",
466463
libredox: 0.1.12, "MIT",
@@ -480,8 +477,6 @@ logos-derive: 0.15.1, "Apache-2.0 OR MIT",
480477
loom: 0.7.2, "MIT",
481478
lru-slab: 0.1.2, "Apache-2.0 OR MIT OR Zlib",
482479
lz4_flex: 0.11.5, "MIT",
483-
lzma-rust2: 0.15.4, "Apache-2.0",
484-
lzma-sys: 0.1.20, "Apache-2.0 OR MIT",
485480
macro_rules_attribute: 0.1.3, "MIT",
486481
macro_rules_attribute-proc_macro: 0.1.3, "MIT",
487482
matchers: 0.2.0, "MIT",
@@ -570,7 +565,6 @@ passterm: 2.0.1, "BSD-3-Clause",
570565
password-hash: 0.5.0, "Apache-2.0 OR MIT",
571566
paste: 1.0.15, "Apache-2.0 OR MIT",
572567
pastey: 0.2.1, "Apache-2.0 OR MIT",
573-
pbkdf2: 0.12.2, "Apache-2.0 OR MIT",
574568
pear: 0.2.9, "Apache-2.0 OR MIT",
575569
pear_codegen: 0.2.9, "Apache-2.0 OR MIT",
576570
peg: 0.6.3, "MIT",
@@ -599,7 +593,6 @@ portable-atomic-util: 0.2.4, "Apache-2.0 OR MIT",
599593
postcard: 1.1.3, "Apache-2.0 OR MIT",
600594
potential_utf: 0.1.4, "Unicode-3.0",
601595
powerfmt: 0.2.0, "Apache-2.0 OR MIT",
602-
ppmd-rust: 1.3.0, "CC0-1.0",
603596
ppv-lite86: 0.2.21, "Apache-2.0 OR MIT",
604597
predicates: 3.1.3, "Apache-2.0 OR MIT",
605598
predicates-core: 1.0.9, "Apache-2.0 OR MIT",
@@ -684,10 +677,10 @@ rustix: 1.1.3, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
684677
rustls: 0.23.36, "Apache-2.0 OR ISC OR MIT",
685678
rustls-native-certs: 0.8.3, "Apache-2.0 OR ISC OR MIT",
686679
rustls-pemfile: 2.2.0, "Apache-2.0 OR ISC OR MIT",
687-
rustls-pki-types: 1.14.0, "Apache-2.0 OR MIT",
680+
rustls-pki-types: 1.13.2, "Apache-2.0 OR MIT",
688681
rustls-platform-verifier: 0.6.2, "Apache-2.0 OR MIT",
689682
rustls-platform-verifier-android: 0.1.1, "Apache-2.0 OR MIT",
690-
rustls-webpki: 0.103.9, "ISC",
683+
rustls-webpki: 0.103.8, "ISC",
691684
rustversion: 1.0.22, "Apache-2.0 OR MIT",
692685
ryu: 1.0.22, "Apache-2.0 OR BSL-1.0",
693686
same-file: 1.0.6, "MIT OR Unlicense",
@@ -884,16 +877,16 @@ wait-timeout: 0.2.1, "Apache-2.0 OR MIT",
884877
walkdir: 2.5.0, "MIT OR Unlicense",
885878
want: 0.3.1, "MIT",
886879
wasi: 0.11.1+wasi-snapshot-preview1, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
887-
wasip2: 1.0.2+wasi-0.2.9, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
880+
wasip2: 1.0.1+wasi-0.2.4, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
888881
wasite: 0.1.0, "Apache-2.0 OR BSL-1.0 OR MIT",
889-
wasm-bindgen: 0.2.108, "Apache-2.0 OR MIT",
890-
wasm-bindgen-futures: 0.4.58, "Apache-2.0 OR MIT",
891-
wasm-bindgen-macro: 0.2.108, "Apache-2.0 OR MIT",
892-
wasm-bindgen-macro-support: 0.2.108, "Apache-2.0 OR MIT",
893-
wasm-bindgen-shared: 0.2.108, "Apache-2.0 OR MIT",
882+
wasm-bindgen: 0.2.106, "Apache-2.0 OR MIT",
883+
wasm-bindgen-futures: 0.4.56, "Apache-2.0 OR MIT",
884+
wasm-bindgen-macro: 0.2.106, "Apache-2.0 OR MIT",
885+
wasm-bindgen-macro-support: 0.2.106, "Apache-2.0 OR MIT",
886+
wasm-bindgen-shared: 0.2.106, "Apache-2.0 OR MIT",
894887
wasm-streams: 0.4.2, "Apache-2.0 OR MIT",
895888
wasmtimer: 0.4.3, "MIT",
896-
web-sys: 0.3.85, "Apache-2.0 OR MIT",
889+
web-sys: 0.3.83, "Apache-2.0 OR MIT",
897890
web-time: 1.1.0, "Apache-2.0 OR MIT",
898891
webpki-root-certs: 1.0.5, "CDLA-Permissive-2.0",
899892
webpki-roots: 0.26.11, "CDLA-Permissive-2.0",
@@ -961,12 +954,11 @@ windows_x86_64_msvc: 0.52.6, "Apache-2.0 OR MIT",
961954
windows_x86_64_msvc: 0.53.1, "Apache-2.0 OR MIT",
962955
winnow: 0.5.40, "MIT",
963956
winnow: 0.7.14, "MIT",
964-
wit-bindgen: 0.51.0, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
957+
wit-bindgen: 0.46.0, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
965958
writeable: 0.6.2, "Unicode-3.0",
966959
wyz: 0.5.1, "MIT",
967960
x509-parser: 0.18.0, "Apache-2.0 OR MIT",
968961
xattr: 1.6.1, "Apache-2.0 OR MIT",
969-
xz2: 0.1.7, "Apache-2.0 OR MIT",
970962
yansi: 1.0.1, "Apache-2.0 OR MIT",
971963
yasna: 0.5.2, "Apache-2.0 OR MIT",
972964
yew: 0.22.0, "Apache-2.0 OR MIT",
@@ -984,7 +976,7 @@ zeroize_derive: 1.4.3, "Apache-2.0 OR MIT",
984976
zerotrie: 0.2.3, "Unicode-3.0",
985977
zerovec: 0.11.5, "Unicode-3.0",
986978
zerovec-derive: 0.11.2, "Unicode-3.0",
987-
zip: 7.0.0, "MIT",
979+
zip: 7.1.0, "MIT",
988980
zlib-rs: 0.5.5, "Zlib",
989981
zmij: 1.0.14, "MIT",
990982
zopfli: 0.8.3, "Apache-2.0",

0 commit comments

Comments
 (0)