Hello Tidy Bot, Mike Percy, David Ribeiro Alves, Kudu Jenkins,

I'd like you to reexamine a change. Please visit

    http://gerrit.cloudera.org:8080/8245

to look at the new patch set (#5).

Change subject: KUDU-2048. consensus: only evict unresponsive nodes if 
remaining voters are viable
......................................................................

KUDU-2048. consensus: only evict unresponsive nodes if remaining voters are 
viable

This adds a heuristic to the leader when it is deciding whether to evict
an unresponsive node. It will now only do so if the remaining nodes
appear viable (i.e they have recently had a successful communication
with the leader, are part of the most recent majority, etc).

Along the way, this cleans up various bits of the per-peer state
tracking and error handling code:

- removes the 'is_new', 'is_last_exchange_successful', and
  'needs_tablet_copy' booleans and replaces them with an enum tracking
  the status of the last exchange with each peer. This makes the code a
  little clearer since it resolves ambiguity about what a "successful"
  exchange is.

- renames 'last_successful_communication_time' to
  'last_communication_time' and clarifies the doc on this field. We
  actually update this time on any communication with the remote tablet
  server, even in cases where the remote replica is not in a good state
  (eg it needs a tablet copy or the tablet doesn't exist). We still
  update the field in this case, but the naming is now more
  representative.

- cleans up the code in Peer::ProcessResponse so that each response case
  is more clearly delineated. This clean-up exposed the fact that we
  have no test coverage of the 'CANNOT_PREPARE' case. Added a TODO about
  this.

Change-Id: I673f5b8a58b3954ea28066ecb334b3fdd60e7adb
---
M src/kudu/consensus/consensus_peers.cc
M src/kudu/consensus/consensus_queue-test.cc
M src/kudu/consensus/consensus_queue.cc
M src/kudu/consensus/consensus_queue.h
M src/kudu/integration-tests/tablet_replacement-itest.cc
5 files changed, 321 insertions(+), 112 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/45/8245/5
--
To view, visit http://gerrit.cloudera.org:8080/8245
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I673f5b8a58b3954ea28066ecb334b3fdd60e7adb
Gerrit-Change-Number: 8245
Gerrit-PatchSet: 5
Gerrit-Owner: Todd Lipcon <t...@apache.org>
Gerrit-Reviewer: David Ribeiro Alves <davidral...@gmail.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy <mpe...@apache.org>
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon <t...@apache.org>

Reply via email to