bigchaindb / bigchaindb/bigchaindb

New bigchaindb Command to Shut Down BigchainDB Server Cleanly

Open
#662 0 comments 0 reactions 1 assignee View on GitHub

@vrde is already working on this.

Since Oct 5, 2016.

Dominant language
Python
Stars
4k
Forks
758
PR merge metrics
No merged PRs in 30d

Description

We need a way to shut down BigchainDB Server cleanly and gracefully (e.g. a new bigchaindb something command-line command):

  • even if new HTTP requests continue to arrive at port 9984 (and are expected to keep arriving)
  • even if the node is part of a live cluster
  • even if new RethinkDB traffic (e.g. new transactions in the backlog table, etc.) is arriving on port 29015

We might allow RethinkDB to keep running. For example, if we want to change a BigchainDB Server configuration setting (e.g. the keyring), then all we really need to do is shut down BigchainDB Server. RethinkDB can keep running.

A sketch of what the command might do:

  1. Stop accepting new requests via the HTTP API (on port 9984)
  2. Block incoming traffic on port 29015 (but RethinkDB can be kept running)
  3. Wait for all BigchainDB queues (in multipipes) to become empty
  4. Stop all BigchainDB Server processes gracefully

This issue was inspired, in part, by issues #357 and #436

@vrde I'm going to assign this to you since I think you know the most about how to do it, being very familiar with the bigchaindb command and also multipipes.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.