-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Impl intoBitset for IndexedDISI and Docvalues #14529
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
To keep things as simple as possible, I'm wondering about:
|
Thanks for feedback,
I won't assume But I'm not sure how much performance this approach gains, i agree to keep it simple as a first step.
I'm a bit confused on this, current patch has already been loading docs into a in-memory bitset and reuse |
I was wondering if we should go one step further and load the bitset into heap eagerly just after reading the block header, and then using it for nextDoc/advance too, instead of doing it lazily and just for intoBitSet. |
I'm not sure, would this cause heavy overreading in scenarios where only advance/advanceExact is required a few times in this block? E.g. we saw aggregation on hundreds of metrics with small total hits, which could be the case harmed by the overreading. |
Implement
intoBitset
forIndexedDISI
and Docvalues.intoBitset
of Docvalues has already been called in competitive iterators, and can also be used to speed up soft delete operations.Logic of this impl is different from default impl when calling
intoBitset
afteradvanceExact
return false, where default impl starts from a not-existing doc but this impl starts from the next doc. I do not know which one is intended, maybe this should just be undefined.relates: #14521