-
Notifications
You must be signed in to change notification settings - Fork 136
Update Storm Simulation with NRTPerfTest #438
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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great! Do you have any example segment traces you could attach for some eye-candy? I'm curious what War & Peace times look like w/ the default ConcurrentMergeScheduler
...
Also, this tool (NRTPerfTest
) is used by the nightly benchmark, so I'd rather make these new options opt-in so we don't change the behavior for nightlies, at least on first cut. It produces this chart (phew, 14+ years of data now!).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the changes!
+1 for making these features opt-in so that people can use them to simulate update storms when needed.
Here is the aggregate graph and the segment graph with the default Yes made it opt-in so it doesn't disturb the nightlies for now. |
Hi @nipunbatra8 -- is this still a draft PR? Or it's ready for merging after review? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you @nipunbatra8! I'm still wondering how we could fold this into nightly benchy. Have you opened a spinoff issue for that?
Oh yes, I see it! #459 Thanks.
Hi @mikemccand. Yes, let me write a comment instead that explains the specific config options instead of spreading it through the tool and then I will mark for review. |
Ready for merging! |
This PR has not had activity in the past 2 weeks, labeling it as stale. If the PR is waiting for review, notify the [email protected] list. Thank you for your contribution! |
Motivation
Add a reproducible “update storm” workload to study merge behavior and evaluate a potential bandwidth-capped merge scheduler. This is also intended for future contributors to benchmark and tune their own merge schedulers under realistic update-storm conditions.
Summary of changes
setDeletesPctAllowed(2.0)
) for storm scenarios.InfoStream
to file for offline analysis and graphing.What we observe
Parameters varied (NRTPerfTest.java)
docsPerSec
(ramp ×2/20s),numIndexThreads
(≤ docsPerSec),runTimeSec
numSearchThreads
,reopenPerSec
setDeletesPctAllowed(2.0)
InfoStream
to fileOn-graph metrics tracked
Reproduce
python3 util/src/python/nrtPerf.py -source wikimediumall -dps 200 -rps 0.06 -nst 8 -nit 8 -rts 3000
cd util/src/python/
python3 -u infostream_to_segments.py ../../lucene-infostream.log test-output.pk
python3 -u segments_to_html.py test-output.pk out.html
out.html
orsegmetrics.html
).