sparknack
4b14ab14e3
enhance: mmap once for each group chunk ( #45487 )
...
issue: #45486
This commit refactors the chunk writing system by introducing a
two-phase
approach: size calculation followed by writing to a target. This enables
efficient group chunk creation where multiple fields share a single mmap
region, significantly reducing the number of mmap system calls and VMAs.
- Optimize `mmap` usage: single `mmap` per group chunk instead of per
field
- Split ChunkWriter into two phases:
- `calculate_size()`: Pre-compute required memory without allocation
- `write_to_target()`: Write data to a provided ChunkTarget
- Implement `ChunkMmapGuard` for unified mmap region lifecycle
management
- Handles `munmap` and file cleanup via RAII
- Shared via `std::shared_ptr` across multiple chunks in a group
Signed-off-by: Shawn Wang <shawn.wang@zilliz.com>
---------
Signed-off-by: Shawn Wang <shawn.wang@zilliz.com>
2025-11-26 10:37:08 +08:00
..
2025-10-16 10:04:00 +08:00
2025-11-26 10:37:08 +08:00
2025-11-26 10:37:08 +08:00
2024-02-27 20:58:40 +08:00
2025-11-25 17:27:07 +08:00
2025-06-04 09:58:39 +08:00
2025-09-08 10:21:55 +08:00
2025-08-20 10:27:46 +08:00
2025-08-20 10:27:46 +08:00
2025-11-26 10:15:07 +08:00
2025-11-26 10:37:08 +08:00
2025-11-25 17:27:07 +08:00
2025-09-22 14:28:06 +08:00
2025-11-26 10:37:08 +08:00
2024-10-28 15:19:30 +08:00
2025-09-19 10:30:01 +08:00
2025-07-03 15:00:44 +08:00
2025-06-04 10:28:32 +08:00
2025-11-14 17:51:37 +08:00
2025-11-14 17:51:37 +08:00
2025-07-03 15:00:44 +08:00
2025-03-04 11:56:02 +08:00
2025-09-08 10:21:55 +08:00
2025-09-28 19:43:05 +08:00
2025-08-27 20:57:50 +08:00
2025-09-08 10:21:55 +08:00
2025-11-25 14:17:07 +08:00
2025-09-08 10:21:55 +08:00
2025-11-04 13:01:32 +08:00
2025-09-28 19:43:05 +08:00
2025-08-25 14:43:51 +08:00
2025-08-25 14:43:51 +08:00
2025-09-08 10:21:55 +08:00
2025-11-10 11:37:35 +08:00
2025-09-08 10:21:55 +08:00
2025-09-08 10:21:55 +08:00
2025-09-19 10:30:01 +08:00
2025-09-16 16:14:00 +08:00
2025-09-16 16:14:00 +08:00
2025-09-19 20:20:02 +08:00
2025-11-14 11:21:37 +08:00
2025-08-29 11:37:50 +08:00
2025-11-07 17:07:34 +08:00
2025-09-18 20:06:00 +08:00
2025-09-08 10:21:55 +08:00
2024-07-27 17:27:52 +08:00
2023-04-07 15:34:29 +08:00
2025-11-13 15:37:38 +08:00
2025-08-27 11:15:52 +08:00
2025-11-13 15:37:38 +08:00
2025-09-16 21:20:02 +08:00
2025-09-08 10:21:55 +08:00
2025-07-19 20:22:52 +08:00
2025-09-19 10:30:01 +08:00
2025-06-12 20:46:36 +08:00
2024-04-25 09:49:26 +08:00
2025-04-28 10:52:40 +08:00
2025-11-26 10:15:07 +08:00
2025-09-19 20:20:02 +08:00
2025-09-19 20:20:02 +08:00
2025-09-19 20:20:02 +08:00
2025-10-16 10:04:00 +08:00
2025-09-03 23:45:53 +08:00
2025-09-28 19:43:05 +08:00
2024-05-06 20:29:30 +08:00
2025-05-08 10:12:54 +08:00
2025-11-03 19:59:32 +08:00
2025-11-03 19:59:32 +08:00
2025-07-19 20:22:52 +08:00
2025-11-03 19:59:32 +08:00
2025-09-08 10:21:55 +08:00
2025-09-19 20:20:02 +08:00
2025-11-26 10:15:07 +08:00
2025-11-14 11:21:37 +08:00
2025-09-22 14:28:06 +08:00
2025-09-22 14:28:06 +08:00
2025-05-22 11:30:24 +08:00
2025-11-26 10:15:07 +08:00
2025-11-26 10:15:07 +08:00
2025-09-22 14:28:06 +08:00
2025-09-18 20:06:00 +08:00
2025-10-15 10:25:59 +08:00
2025-11-26 10:15:07 +08:00
2025-11-26 10:15:07 +08:00
2025-10-13 14:37:58 +08:00
2025-09-08 10:21:55 +08:00
2025-11-25 14:19:07 +08:00
2025-08-29 11:37:50 +08:00
2025-09-08 10:21:55 +08:00
2025-11-20 21:39:04 +08:00
2025-09-09 16:46:04 +08:00
2025-11-20 21:39:04 +08:00
2025-10-28 14:52:10 +08:00
2025-09-09 16:46:04 +08:00
2025-10-15 10:25:59 +08:00
2025-11-14 11:21:37 +08:00
2025-11-14 11:21:37 +08:00
2025-09-03 23:45:53 +08:00
2025-09-19 10:30:01 +08:00
2025-08-27 20:57:50 +08:00
2025-08-20 10:27:46 +08:00