Hello David Ribeiro Alves, Mike Percy, Todd Lipcon,
I'd like you to do a code review. Please visit
http://gerrit.cloudera.org:8080/7331
to review the following change.
Change subject: WIP: consensus_peers: schedule raft heartbeats through messenger
......................................................................
WIP: consensus_peers: schedule raft heartbeats through messenger
This patch switches Peer to a Messenger-based approach (i.e.
Messenger::ScheduleOnReactor) for scheduling heartbeats. The problem with
ResettableHeartbeater was that it creates a dedicated thread per replica,
and I didn't see an easy way to share it across replicas.
The scheduling is inspired by libev's "Let the timer time out, but then
re-arm it as required." approach[1]. Callbacks are never canceled (since
Messenger doesn't provide a way to do that); instead, both the desired
period and time of last heartbeat are maintained as out-of-band state.
WIP because I want feedback on the general approach, and because it needs
better encapsulation and docs.
1.
http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#code_ev_timer_code_relative_and_opti
Change-Id: Iac8e09fe02dd32885ef0cf644cb093b1c8e6afb8
---
M src/kudu/consensus/consensus-test-util.h
M src/kudu/consensus/consensus_peers-test.cc
M src/kudu/consensus/consensus_peers.cc
M src/kudu/consensus/consensus_peers.h
M src/kudu/consensus/leader_election-test.cc
M src/kudu/consensus/peer_manager.cc
M src/kudu/consensus/raft_consensus_quorum-test.cc
7 files changed, 148 insertions(+), 39 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/31/7331/1
--
To view, visit http://gerrit.cloudera.org:8080/7331
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Iac8e09fe02dd32885ef0cf644cb093b1c8e6afb8
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <[email protected]>
Gerrit-Reviewer: David Ribeiro Alves <[email protected]>
Gerrit-Reviewer: Mike Percy <[email protected]>
Gerrit-Reviewer: Todd Lipcon <[email protected]>