mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-25 05:26:50 +00:00
ba4cd69438
* feat(allocator): replace mimalloc/libmimalloc-sys with rustfs-mimalloc/rustfs-mimalloc-sys Replace the upstream xonatius/mimalloc_rust.git fork (mimalloc + libmimalloc-sys) with the published rustfs-mimalloc (v0.5.0) and rustfs-mimalloc-sys (v0.5.0) crates from crates.io. The new crates are based on mimalloc V3 (v3.5.0) and provide: - MiMalloc global allocator with safe API (collect, stats_json, process_info) - Heap management and arena operations (heap module) - Full FFI bindings to mimalloc V3 Changes: - Workspace deps: mimalloc + libmimalloc-sys (git) → rustfs-mimalloc + rustfs-mimalloc-sys (crates.io) - allocator_reclaim.rs: libmimalloc_sys::mi_collect → rustfs_mimalloc::MiMalloc::collect - memory_observability.rs: raw FFI mi_stats_get_json → MiMalloc::stats_json() - main.rs: heap ownership tests use Heap::contains() (V3 API) - deny.toml: remove xonatius/mimalloc_rust.git from allow-git Co-Authored-By: heihutu <heihutu@gmail.com> * fix(ecstore): default rename fanout to parallel early-ack path Switch the default rename_data commit fanout from serial join_all to the parallel JoinSet early-ack path. The serial path (#5987) was the primary cause of the 1MiB PUT regression (-71.7%) observed in rc.3 benchmarks. A/B verification on testing 4-node cluster (c=64, 1MiB PUT, 2min): - Serial (join_all): 96.99 MiB/s, P50=644ms - Early ack (JoinSet): 177.46 MiB/s, P50=407ms (+83%) Also: - Update rename_data_reclaims_synthetic_inline_rollback_dir_after_commit to use rename_data_owned and await tail_drain for proper cleanup. - Update rename_data_waits_for_tail_disk_after_write_quorum to explicitly test the serial path (now non-default) via env override. - Add error source chain to HTTP Body stream transport error log (backlog#2005) so the underlying cause is visible. Ref: rustfs/backlog#2005 Ref: rustfs/backlog#1792#issuecomment-5384346238 Ref: rustfs/backlog#1792#issuecomment-5384370938 Co-Authored-By: heihutu <heihutu@gmail.com> --------- Co-authored-by: heihutu <heihutu@gmail.com>