[ https://issues.apache.org/jira/browse/KUDU-635?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Grant Henke updated KUDU-635: ----------------------------- Labels: kudu-roadmap (was: ) > Implement clean shutdown > ------------------------ > > Key: KUDU-635 > URL: https://issues.apache.org/jira/browse/KUDU-635 > Project: Kudu > Issue Type: Bug > Components: recovery > Affects Versions: M5 > Reporter: Adar Dembo > Priority: Trivial > Labels: kudu-roadmap > > Today, a Kudu node's "shutdown" routine is merely exiting abruptly upon > receipt of a signal, be it SIGINT, SIGTERM, or (obviously) SIGKILL. Any > in-memory state (like MRS or DRS) is lost, and on startup, the WAL must be > replayed as part of bootstrap. > It's not hard to conceive of a cleaner shutdown routine.It'd probably be > issued via RPC, and it would perform the following steps: > # Quiesce the server so that future RPCs are dropped. > # Abdicate quorum leadership. > # Flush every MRS/DRS. > # GC every WAL. > # Exit gracefully (i.e. run through the TS/Master destructor). > Kudu is meant to recover in the event of a crash, so why bother with a clean > shutdown? Why not make every shutdown an "abrupt" one? Well, a clean shutdown > would take more time to run, but would also guarantee faster startup because > there'd be less work to do during bootstrap. With a clean shutdown, > time("work at shutdown") < time("work at startup"), and that would also help > making Kudu rolling restarts more efficient. A similar tack was recently > taken in HDFS for the same reason. > The easy part (step #5 from the above list) was recently implemented > [here|http://gerrit.sjc.cloudera.com:8080/#/c/6080/]. -- This message was sent by Atlassian JIRA (v7.6.3#76005)