Add doc values range filtering benchmark tasks - #592
Conversation
romseygeek
left a comment
There was a problem hiding this comment.
I was just going to start working on this myself, thanks @sgup432 :). LGTM, but we should check with @mikemccand about adding more tasks to the default nightly set as IIRC there was some worry that these were starting to take too long to run every 24 hours.
Feel free to add more |
|
@mikemccand Do you mind taking a look at this again? |
|
Thank you I'll have a look! |
|
Looking at I wonder if we should plan to break this monolith file into different sub files based on the usecase. For example, less volatile tasks(like fuzzy maybe?) can go into a different file like And then a Also, would it be worth reducing jvmCount from 20 to 10? @mikemccand I know you're working on building a faster box, but should we consider above approach as well? |
Whoa, I love that idea! Maybe open spinoff issue for it -- give it its own identity?
That's also a great idea, and would be a substantial speedup. The tradeoff is more noise, but since each night (or three nights, or seven) we see a series as a bunch of repeated data points, that effectively stacks up the iterations and we get better visibility of the noise over time, and as long as signal (a real change in performance) is rare, that noise is visible without so many non-visible iterations each night. In fact, maybe we should fix the benchy to plot all 10 or 20 results on each night? Then we could visualize that variance, instead or in addition to the shaded variance bars we have today? I like sending more information to our eyes -- our visual system is insanely powerful/concurrent so we should utilize all that concurrency.
+1, thank you! And I'm not quite working on it yet ... thinking about it really. |
OK I opened #598 to explore this! |
Yeah I already create a spinoff for this one here - #594 |
There has been a lot of interesting work going on making range filter queries faster with doc values. Ideally, range filtering works best with BKD as it can quickly filter out the irrelevant branches and give the desired docs in specific range. Also lucene has IndexOrDocValuesQuery which decides based on cost, on what path to choose.
This PR tries to add benchmarks for range filtering case by using doc values only. I feel it would be useful to track this separately considering the work that has been going in lucene around this area, and we can catch any regressions if they were introduced?
I have added single field filter queries using doc values(skip index enabled) and with different cases - narrow and wide.
Also with some real world pattern like:
find documents matching a term AND within a date range. Tests interaction of inverted index + DV skip index.`Related issue- #549. Though this was focussed on multi field range filter usecase, for now this PR only covers single field.
Let me know if adding this makes sense.