fix: remove expensive clone in bitmap search#5409
Merged
westonpace merged 1 commit intolance-format:mainfrom Dec 4, 2025
Merged
fix: remove expensive clone in bitmap search#5409westonpace merged 1 commit intolance-format:mainfrom
westonpace merged 1 commit intolance-format:mainfrom
Conversation
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
Member
Author
|
Tested with the microbenchmark |
wjones127
approved these changes
Dec 4, 2025
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
jackye1995
pushed a commit
to jackye1995/lance
that referenced
this pull request
Dec 5, 2025
lance-format@82df343 parallelizes bitmap loading but it introduced a clone of the bitmap index. Since this was a clone of the index itself and not just an arc clone it ended up being a very expensive deep clone, especially at scale. It also led to unbounded memory usage since all clones needed to live at the same time and this could cause the search to crash. Fortunately, these clones are not needed, so we can simply remove them.
jackye1995
pushed a commit
that referenced
this pull request
Dec 5, 2025
82df343 parallelizes bitmap loading but it introduced a clone of the bitmap index. Since this was a clone of the index itself and not just an arc clone it ended up being a very expensive deep clone, especially at scale. It also led to unbounded memory usage since all clones needed to live at the same time and this could cause the search to crash. Fortunately, these clones are not needed, so we can simply remove them.
jackye1995
pushed a commit
to jackye1995/lance
that referenced
this pull request
Jan 21, 2026
lance-format@82df343 parallelizes bitmap loading but it introduced a clone of the bitmap index. Since this was a clone of the index itself and not just an arc clone it ended up being a very expensive deep clone, especially at scale. It also led to unbounded memory usage since all clones needed to live at the same time and this could cause the search to crash. Fortunately, these clones are not needed, so we can simply remove them.
wkalt
pushed a commit
to wkalt/lance
that referenced
this pull request
Jan 26, 2026
lance-format@82df343 parallelizes bitmap loading but it introduced a clone of the bitmap index. Since this was a clone of the index itself and not just an arc clone it ended up being a very expensive deep clone, especially at scale. It also led to unbounded memory usage since all clones needed to live at the same time and this could cause the search to crash. Fortunately, these clones are not needed, so we can simply remove them.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
82df343 parallelizes bitmap loading but it introduced a clone of the bitmap index. Since this was a clone of the index itself and not just an arc clone it ended up being a very expensive deep clone, especially at scale. It also led to unbounded memory usage since all clones needed to live at the same time and this could cause the search to crash.
Fortunately, these clones are not needed, so we can simply remove them.