You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We have different logic inside Heartbeater::Thread::TryHeartbeat single method, particularly functionality for gathering tserver metrics for putting them into Heartbeat RPC.
For tablet splitting, we also need to put splitting-related information about tablets into Hearbeat
RPC. Overloading Heartbeater::Thread::TryHeartbeat with such extra functionality leads to unnecessary dependencies, tight coupling and unnecessary knowledge of Heartbeater about other components. Also, it makes Heartbeater code larger each time we need to add something new into Heartbeat.
Idea is to introduce HeartbeatDataProvider interface and move out of Heartbeater logic for
gathering tserver metrics into TServerMetricsHeartbeatDataProvider thus reducing Heartbeater complexity and removing unnecessary dependencies.
This framework will be used to implement TabletSplittingDataProvider for sending tablet splitting related data inside Heartbeat RPC.
The text was updated successfully, but these errors were encountered:
Summary:
We have different logic inside `Heartbeater::Thread::TryHeartbeat` single method,
particularly functionality for gathering tserver metrics for putting them into Heartbeat RPC.
For tablet splitting we also need to put splitting-related information about tablets into Hearbeat
RPC. Overloading `Heartbeater::Thread::TryHeartbeat` with such extra functionality leads to
unnecessary dependencies, tight coupling and unnecessary knowledge of Heartbeater
about other components. Also it makes Heartbeater code larger each time we need to add something new
into Heartbeat.
This revision introduces HeartbeatDataProvider interface and moves out of Heartbeater logic for
gathering tserver metrics into TServerMetricsHeartbeatDataProvider thus reducing Heartbeater
complexity and removing unnecessary dependencies.
In subsequent revision for tablet splitting feature this framework will be used to implement
TabletSplittingDataProvider for sending tablet splitting related data inside Heartbeat RPC.
Fixed lint issues
Test Plan: Jenkins
Reviewers: mikhail, sergei, bogdan
Reviewed By: sergei
Subscribers: ybase
Differential Revision: https://phabricator.dev.yugabyte.com/D7913
We have different logic inside
Heartbeater::Thread::TryHeartbeat
single method, particularly functionality for gathering tserver metrics for putting them into Heartbeat RPC.For tablet splitting, we also need to put splitting-related information about tablets into Hearbeat
RPC. Overloading
Heartbeater::Thread::TryHeartbeat
with such extra functionality leads to unnecessary dependencies, tight coupling and unnecessary knowledge of Heartbeater about other components. Also, it makes Heartbeater code larger each time we need to add something new into Heartbeat.Idea is to introduce
HeartbeatDataProvider
interface and move out ofHeartbeater
logic forgathering tserver metrics into
TServerMetricsHeartbeatDataProvider
thus reducingHeartbeater
complexity and removing unnecessary dependencies.This framework will be used to implement TabletSplittingDataProvider for sending tablet splitting related data inside Heartbeat RPC.
The text was updated successfully, but these errors were encountered: