Skip to content
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

backport SOLR-17343: Live-updating Global Circuit Breakers via ClusterProperties #209

Open
wants to merge 20 commits into
base: fs/branch_9_3
Choose a base branch
from

Conversation

nginthfs
Copy link
Collaborator

@nginthfs nginthfs commented Jul 1, 2024

This PR backports SOLR-17343: Live-updating Global Circuit Breakers via ClusterProperties, as well as SOLR-16974 and SOLR-17277, two PRs that SOLR-17343 depend on.

There are some changes that are not direct cherry-picks:

  1. checked out EnvUtils.java and EnvToSyspropMappings.properties from SOLR-17277 commit - these were added in a different large PR, and I didn't want to cherry pick the whole thing. The rest of it will be pulled in when we merge with 9.4+
  2. removed CircuitBreakerManager.java - this is not being used by us currently and is deleted from main. I removed it since it isn't compatible with these changes.
  3. removed legacy circuit breaker tests (these are removed upstream as well, and no longer apply after these cherry picks)
  4. removed an unused empty constructor in CPUCircuitBreaker - this is still there upstream, but is also unused there, and it makes the GlobalCircuitBreakerFactory logic more complex if it were to stay, so I removed it here and in the upstream PR

janhoy and others added 20 commits July 1, 2024 09:24
Tripped soft (i.e. 'warnOnly=true') breakers are logged in a single
message for each request, whether or not there are any 'hard' breakers
that will ultimately block the request from proceeding.

Circuit breakers are "hard" by default, but may be put into warn-only
mode by:
  - adding a `<bool name="warnOnly">true</bool>` setting under the
    `<circuitBreaker/>` tag for collection-level CB's.
  - adding a 'warnonly'-suffixed envvar/sysprop for "global" CB's.
    (e.g. `SOLR_CIRCUITBREAKER_QUERY_MEM_WARNONLY=true`)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants