-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Add connection based FailureDetector #8491
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
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
Outdated
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
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
Outdated
Show resolved
Hide resolved
...ker/src/test/java/org/apache/pinot/broker/failuredetector/ConnectionFailureDetectorTest.java
Outdated
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
richardstartin
left a comment
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,CUSTOMpinot.broker.failure.detector.class: forCUSTOMtypepinot.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