[ https://issues.apache.org/jira/browse/SOLR-15474?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17361865#comment-17361865 ]
Atri Sharma edited comment on SOLR-15474 at 6/11/21, 4:03 PM: -------------------------------------------------------------- Thanks for opening the Jira and your experiments, Christine! Circuit breakers are designed to be pluggable – through CircuitBreakerManager. Essentially, the idea is that if you want to add new circuit breakers, you implement CircuitBreakerManager and add your new circuit breakers there and then plug your CircuitBreakerManager implementation in solrconfig.xml. The other problem there is that CircuitBreakerManager acts as the single point of contact for all circuit breaker related aspects – hence no component outside of CircuitBreakerManager knows about any circuit breaker implementations. CircuitBreakerManager acts as the bus where all CB requests come in, and then are propagated to the relevant components, such as SearchHandler. I think the simplest way of allowing individual circuit breakers to be pluggable *without* having to write a custom CircuitBreakerManager is to simply have default CircuitBreakerManager read the registered Circuit Breakers from solrconfig.xml and pass on the PluginInfo instance to individual CircuitBreakers. This will ensure that each CircuitBreaker has its own way of dealing with configurations and there is no need for CircuitBreakerConfig, as you suggested. This will also not break back compatibility since solrconfig.xml is not changing. WDYT? P.S: If you are not planning to actively work on this JIRA, I can take it up for the next release. Please let me know. was (Author: atri): Thanks for opening the Jira and your experiments, Christine! Circuit breakers are designed to be pluggable – through CircuitBreakerManager. Essentially, the idea is that if you want to add new circuit breakers, you implement CircuitBreakerManager and add your new circuit breakers there and then plug your CircuitBreakerManager implementation in solrconfig.xml. The other problem there is that CircuitBreakerManager acts as the single point of contact for all circuit breaker related aspects – hence no component outside of CircuitBreakerManager knows about any circuit breaker implementations. CircuitBreakerManager acts as the bus where all CB requests come in, and then are propagated to the relevant components, such as SearchHandler. I think the simplest way of allowing individual circuit breakers pluggable *without* having to write a custom CircuitBreakerManager is to simply have default CircuitBreakerManager read the registered Circuit Breakers from solrconfig.xml and pass on the PluginInfo instance to individual CircuitBreakers. This will ensure that each CircuitBreaker has its own way of dealing with configurations and there is no need for CircuitBreakerConfig, as you suggested. This will also not break back compatibility since solrconfig.xml is not changing. WDYT? P.S: If you are not planning to actively work on this JIRA, I can take it up for the next release. Please let me know. > pluggable support for custom circuit breakers > --------------------------------------------- > > Key: SOLR-15474 > URL: https://issues.apache.org/jira/browse/SOLR-15474 > Project: Solr > Issue Type: New Feature > Reporter: Christine Poerschke > Priority: Major > > In https://github.com/apache/solr/pull/96#discussion_r644383152 onwards > making circuit breakers pluggable was mentioned. > Creating this ticket as a placeholder for such potential future work (but I > have to plans to work on it myself at this time). -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org