Alexey Serbin has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/14943


Change subject: [consensus] respond lock-free to RequestVote() if busy
......................................................................

[consensus] respond lock-free to RequestVote() if busy

I saw cases of contention on replica's RaftConsensus lock when the
filesystem was slow on updating Raft metadata files to record a vote
that has just been granted by the replica.  As it turned out, the fast
path was also acquiring the RaftConsensus object lock, but it's easy
to avoid that.

This patch updates the code by not acquiring the lock in such cases.
It should help a bit with overflowing of the RaftConsensus RPC queue.

In addition, I turned the LOG(INFO) message about this event into
VLOG(1) since it's not so important to report about such events on the
responder side: its state doesn't change upon responding with
ServiceUnavailable anyways.

Change-Id: I95d5cbe455fefc4cdc540ee1e7b69e1f21b6ebc0
---
M src/kudu/consensus/raft_consensus.cc
M src/kudu/consensus/raft_consensus.h
2 files changed, 40 insertions(+), 21 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/43/14943/1
--
To view, visit http://gerrit.cloudera.org:8080/14943
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I95d5cbe455fefc4cdc540ee1e7b69e1f21b6ebc0
Gerrit-Change-Number: 14943
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin <[email protected]>

Reply via email to