KAFKA-7283 enabled lazy mmap on index files by initializing indices on-demand rather than performing costly disk/memory operations when creating all indices on broker startup. This helped reducing the startup time of brokers. However, segment indices are still created on closing segments, regardless of whether they need to be closed or not.
Ideally we should:
- Improve shutdown performance via lazy accessing the offset and time indices.
- Eliminate redundant disk accesses and memory mapped operations while deleting or renaming files that back segment indices.
- Prevent illegal accesses to underlying indices of a closed segment, which would lead to memory leaks due to recreation of the underlying memory mapped objects.