mirror of
https://github.com/rustfs/rustfs.git
synced 2026-10-30 15:55:55 +00:00
34e883e16a
* perf(filemeta): avoid clones and intermediate allocations in xl.meta codec - Slice version headers and metadata payloads directly from the xl.meta buffer in FileMeta::unmarshal_msg instead of allocating temporary header/metadata buffers per version. - Decode FileInfo directly from borrowed xl.meta slices in get_file_info without constructing an intermediate FileMeta, Vec<FileMetaShallowVersion>, or InlineData copy. - Validate and search InlineData keys on borrowed slices without per-key Vec/String allocations. - Borrow FileMetaVersion in FileMetaVersionHeader::from and stream object/delete-marker signatures directly into Xxh64Writer instead of cloning full version structs and marshaling temporary buffers. - Encode FileMetaVersionHeader into a stack buffer in FileMeta::marshal_msg and pre-size output buffers. - Decode msgpack struct field names onto a 16-byte stack buffer via read_small_str and unwrap PrependByteReader after reading submap headers. * test(filemeta): pin xl.meta codec compatibility Pin pre-optimization signatures for historical RustFS and MinIO fixtures, and cover direct reads across selectors and decode options. Preserve null inline keys, free-version selection, empty histories, and allocation boundaries for large version bodies. Co-Authored-By: heihutu <heihutu@gmail.com> Co-Authored-By: zhi22915 <qiuzgang@gmail.com> --------- Co-authored-by: Hauser <housemecn@gmail.com> Co-authored-by: heihutu <heihutu@gmail.com> Co-authored-by: zhi22915 <qiuzgang@gmail.com>