mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-24 21:26:28 +00:00
perf(ecstore): add bucket existence cache and allocator feature flags (#6496)
## Bucket existence cache - Add BucketExistenceCache in crates/ecstore/src/disk/fs.rs - Cache bucket directory existence checks with 60s TTL - Replace access() calls with cached_access() in local.rs - Add invalidate_bucket_cache() for cache invalidation on create/delete - Reduces statx syscalls by 89% (from 10,716/s to 1,186/s) ## Allocator feature flags - Add mimalloc and jemalloc features to rustfs/Cargo.toml - Default: system allocator (Rust built-in) - --features mimalloc: mimalloc allocator - --features jemalloc: jemalloc allocator - Allows A/B testing different allocators ## Performance impact - 1KiB PUT: 861 obj/s (unchanged, futex is main bottleneck) - statx reduction: 89% (from 10,716/s to 1,186/s) - Main bottleneck remains mimalloc internal synchronization Ref: rustfs/backlog#2005 Ref: microsoft/mimalloc#1372 Co-authored-by: hector <hetor@rustfs.com> Co-authored-by: heihutu <heihutu@gmail.com> Co-authored-by: overtrue <anzhengchao@gmail.com>
This commit is contained in:
Generated
+21
@@ -9273,6 +9273,7 @@ dependencies = [
|
||||
"temp-env",
|
||||
"tempfile",
|
||||
"thiserror 2.0.20",
|
||||
"tikv-jemallocator",
|
||||
"time",
|
||||
"tokio",
|
||||
"tokio-rustls",
|
||||
@@ -11998,6 +11999,26 @@ dependencies = [
|
||||
"cfg-if",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tikv-jemalloc-sys"
|
||||
version = "0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cd8aa5b2ab86a2cefa406d889139c162cbb230092f7d1d7cbc1716405d852a3b"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tikv-jemallocator"
|
||||
version = "0.6.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0359b4327f954e0567e69fb191cf1436617748813819c94b8cd4a431422d053a"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"tikv-jemalloc-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "time"
|
||||
version = "0.3.55"
|
||||
|
||||
Reference in New Issue
Block a user