-
Notifications
You must be signed in to change notification settings - Fork 690
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
SOLR-8393: Component for resource usage planning #1638
base: main
Are you sure you want to change the base?
SOLR-8393: Component for resource usage planning #1638
Conversation
New component that attempts to extrapolate resources needed in the future by looking at resources currently used. Original idea by Steve Molloy, with additional parameter based on comment from Shawn Heisey. Documentation copied from the Jira ticket.
Revert to HttpSolrClient. With Http2SolrClient, "clustersizing" requests on a secured Solr (security.json) fail with HTTP 401 when trying to get the info of each core. Quick fix. A better solution should be available.
Fix compilation warnings
Setup PKI Authentication to request size per replica. Add unit test for ClusterSizing
…f [email protected]:igiguere/solr.git into SOLR-8393-Component-for-Solr-resource-usage-planning
I'd prefer to see a V2 api added instead of a V1 api. Adding more V1 api's is just adding to the backlog of work on our V2 migration, so I'd love to see that instead added...! |
The use of the hphenated (kebab style?) |
This looks very helpful, though I can't speak to if it's accurate or not... I'd love to see somethign replace the old excel spreadsheet that we recently removed as it was no longer useful/accurate. Maybe @janhoy you have some thoughts on this.... |
Agreed, but, as mentioned, this is from a pre-existing patch. Participation is welcomed! |
Address review comment: change output fields to camelCase
Add partial implementation for v2 api. fix unit tests.
About to take a look at the code and see if I can help with the v2 side of things, but before I dive into that I figured it was worth asking: Does I'm happy to be wrong if we have several groups of folks out there in the wild that are using it, but my initial reaction is to be a little skeptical that it's reliable enough to incorporate into Solr. Primarily because, well, modeling resource-usage is a really really tough problem. There's a reason that the community's only response to sizing questions has always been pretty much "You'll have to Guess-and-Check". And secondarily, because the spreadsheet this is all based off of was added in 2011 and hasn't really seen much iteration in the decade since. There's an absolute ton that's changed in both Lucene and Solr since then. |
Me, personally, no, I don't use it ;). I'll try to find out from client-facing people in the company. I doubt anyone has compiled usage vs success statistics. UPDATE: I couldn't find anyone who really used
The cluster sizing feature is documented to estimate (i.e.: guess) resource usage. We could make the documentation clearer that it's not a fool-proof measure. But, at least it beats holding a finger to the wind. And it's a bit less complicated that the xls and a calculator.
We're only calculating RAM, disk size, document size. Whatever has changed in Solr and Lucene, if it has an effect on RAM, disk space, doc size, then it should be reflected on the results... No? Note that this feature is meant to be used on a current "staging" deployment, to evaluate the eventual size of a "production" environment, for the same version of Solr. No one is expected to draw conclusions from a previous version, so changes from one version to another are not a concern in that way. As a more general note, I should add that I'm a linguist converted to Java dev. Not a mathematician ;) If there's an error in the math, I will never see it. |
Old-style V2 API, in ClusterAPI
Add ClusterSizingRequestBody Start implementation based on metrics... a lot more to be done, just to sift through the metrics!
…f [email protected]:igiguere/solr.git into SOLR-8393-Component-for-Solr-resource-usage-planning
https://issues.apache.org/jira/browse/SOLR-8393
DRAFT :
Description
New feature that attempts to extrapolate resources needed in the future by looking at resources currently used.
Original idea by Steve Molloy, with additional parameter based on comment from Shawn Heisey.
Documentation copied from the Jira ticket.
Solution
V1 API:
New component: SizeComponent.java. Component can be set on the /select handler to provide sizing for a single core.
New collection operation: ClusterSizing.java. Action 'clustersizing' is added to CollectionsHandler. Class ClusterSizing calls the size component for each core.
Old-style V2 API:
Adding a method in ClusterApi.java. It calls the V1 implementation, so the question of accuracy remains
Tests
The size component is tested in SizeComponentTest.java
Cluster sizing response is tested in ClusterSizingTest.java
Full test on a running instance of Solr.
Checklist
Please review the following and check all that apply:
main
branch../gradlew check
.