-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Add connection based FailureDetector #8491
Conversation
d4426b0
to
2e82aeb
Compare
Codecov Report
@@ Coverage Diff @@
## master #8491 +/- ##
=============================================
- Coverage 70.53% 27.10% -43.44%
=============================================
Files 1681 1674 -7
Lines 87913 87842 -71
Branches 13309 13305 -4
=============================================
- Hits 62009 23809 -38200
- Misses 21601 61817 +40216
+ Partials 4303 2216 -2087
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
9e050a3
to
8a69cc8
Compare
...java/org/apache/pinot/broker/failuredetector/BaseExponentialBackoffRetryFailureDetector.java
Show resolved
Hide resolved
...java/org/apache/pinot/broker/failuredetector/BaseExponentialBackoffRetryFailureDetector.java
Outdated
Show resolved
Hide resolved
pinot-broker/src/main/java/org/apache/pinot/broker/failuredetector/FailureDetectorFactory.java
Outdated
Show resolved
Hide resolved
*/ | ||
@ThreadSafe | ||
public abstract class BaseExponentialBackoffRetryFailureDetector implements FailureDetector { | ||
protected final Logger _logger = LoggerFactory.getLogger(getClass()); |
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.
I'm curious why this (and the _name
variable) aren't static. Is there a convention in the Pinot code base? Just FYI, I found 437 instances of static final Logger LOGGER
, and 14 of final Logger _logger
(a few of which were actually static).
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 is a base class, and we want to log the actual class name that extends this base class, so it cannot be static. E.g. I want the logger to log under ConnectionFailureDetector
instead of BaseExponentialBackoffRetryFailureDetector
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 clarifying...but why do you want classes that extend BaseExponentialBackoffRetryFailureDetector
to use its logger? Is there some issue with the concrete class having its own logger?
Just asking because I see 25+ instances of abstract classes with private static loggers, but only one other class BaseSegmentJob
that does the same thing as here.
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.
BaseSegmentFetcher
is also following this pattern, but you are right the majority of the abstract classes use the static logger. IMO it doesn't matter because there is only one single failure detector instance running, so no extra overhead, but I'm okay changing it to a static one for consistency
pinot-broker/src/main/java/org/apache/pinot/broker/routing/BrokerRoutingManager.java
Outdated
Show resolved
Hide resolved
pinot-broker/src/main/java/org/apache/pinot/broker/routing/BrokerRoutingManager.java
Show resolved
Hide resolved
...ker/src/test/java/org/apache/pinot/broker/failuredetector/ConnectionFailureDetectorTest.java
Show resolved
Hide resolved
pinot-core/src/main/java/org/apache/pinot/core/transport/ServerChannels.java
Outdated
Show resolved
Hide resolved
pinot-core/src/main/java/org/apache/pinot/core/transport/ServerRoutingInstance.java
Outdated
Show resolved
Hide resolved
pinot-core/src/test/java/org/apache/pinot/core/query/reduce/StreamingReduceServiceTest.java
Outdated
Show resolved
Hide resolved
8a69cc8
to
5f739d2
Compare
- Add FailureDetector module to the broker - Add QueryResponse interface - Add ConnectionFailureDetector to detect server connection failures
5f739d2
to
daf6dce
Compare
daf6dce
to
86d6469
Compare
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.
👍🏻
LGTM. |
For issue #8490
Description
Release Notes
Added the following failure detector related configs to the broker config:
pinot.broker.failure.detector.type
: can beNO_OP
(default),CONNECTION
,CUSTOM
pinot.broker.failure.detector.class
: forCUSTOM
typepinot.broker.failure.detector.retry.initial.delay.ms
: 5000 by defaultpinot.broker.failure.detector.retry.delay.factor
: 2 by defaultpinot.broker.failure.detector.max.retries
: 10 by default