Hello Kudu Jenkins,

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


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

Change subject: WIP disk failure: forced shutdown of replicas

WIP disk failure: forced shutdown of replicas

When a disk fails, replicas with data on the failed disk must shut
down. Normally, when a replica is shutdown, it must wait for all
transactions to finish. However, transactions that fail due to disk
failure will not complete.

This patch adds the ability to Cancel transactions. Unlike Aborts, which
cannot end a transaction that is in the APPLYING state (must be
RESERVED), Cancels can end any transaction. This is only "safe" because
the tablet to whom the MvccManager belongs is expected to shutdown.

In addition to this, a new tablet state is added: FAILED_AND_SHUTDOWN.
Like QUIESCING and SHUTDOWN, TabletReplica::Shutdown() can wait on
FAILED_AND_SHUTDOWN. This is needed to shut down failed tablets that
need to be replicated: calling Shutdown() cannot leave the replica in
the FAILED state, and the SHUTDOWN state cannot itself indicate the
need for a tablet copy.

WIP because there is no testing and I'm not sure this is the best design
for what I'm trying to accomplish.

This is part of a series of patches to address disk failure. To see how
this patch fits in, see section 2.3 of:

Change-Id: I983620f27e7226806a2cca253db7619731914d42
M src/kudu/tablet/metadata.proto
M src/kudu/tablet/mvcc.cc
M src/kudu/tablet/mvcc.h
M src/kudu/tablet/tablet_replica.cc
M src/kudu/tablet/tablet_replica.h
M src/kudu/tablet/transactions/alter_schema_transaction.h
M src/kudu/tablet/transactions/transaction.h
M src/kudu/tablet/transactions/transaction_driver.cc
M src/kudu/tablet/transactions/transaction_driver.h
M src/kudu/tablet/transactions/transaction_tracker-test.cc
M src/kudu/tablet/transactions/transaction_tracker.cc
M src/kudu/tablet/transactions/transaction_tracker.h
M src/kudu/tablet/transactions/write_transaction.cc
M src/kudu/tablet/transactions/write_transaction.h
14 files changed, 107 insertions(+), 22 deletions(-)

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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I983620f27e7226806a2cca253db7619731914d42
Gerrit-PatchSet: 5
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: David Ribeiro Alves <davidral...@gmail.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy <mpe...@apache.org>
Gerrit-Reviewer: Todd Lipcon <t...@apache.org>

Reply via email to