Skip to content

gh-156379: Avoid materializing large sequence ranges in mailbox.MH.get_sequences - #156442

Open
sundeep8967 wants to merge 1 commit into
python:mainfrom
sundeep8967:fix-mh-sequence-ranges
Open

gh-156379: Avoid materializing large sequence ranges in mailbox.MH.get_sequences#156442
sundeep8967 wants to merge 1 commit into
python:mainfrom
sundeep8967:fix-mh-sequence-ranges

Conversation

@sundeep8967

Copy link
Copy Markdown

Summary

In mailbox.MH.get_sequences(), sequence ranges declared in .mh_sequences (e.g. 1-10000000) previously materialized every single integer in the interval (keys.update(range(start, stop + 1))) before filtering against all_keys. For small mailboxes with wide sequence range definitions, this resulted in unnecessary memory allocation and CPU overhead.

This PR optimizes get_sequences() to intersect declared ranges directly with existing mailbox keys (all_keys), reducing execution time by orders of magnitude (~9000x on 10M ranges) and eliminating redundant memory allocation while preserving exact ordering and format validation semantics.

Issue reference

Fixes gh-156379

….MH.get_sequences

Intersect declared ranges directly with all_keys instead of enumerating the entire interval into a set.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

mailbox.MH.get_sequences() unnecessarily materializes large sequence ranges

1 participant