In case the user wants to decommission a bookie, the following process is useful to follow in order to verify if the decommissioning was safely done.

Before we decommission

  1. Ensure state of your cluster can support the decommissioning of the target bookie. Check if EnsembleSize >= Write Quorum >= Ack Quorum stays true with one less bookie

  2. Ensure target bookie shows up in the listbookies command.

  3. Ensure that there is no other process ongoing (upgrade etc).

Process of Decommissioning

  1. Log on to the bookie node, check if there are underreplicated ledgers.

If there are, the decommission command will force them to be replicated. $ bin/bookkeeper shell listunderreplicated

  1. Stop the bookie $ bin/bookkeeper-daemon.sh stop bookie

  2. Run the decommission command. If you have logged onto the node you wish to decommission, you don’t need to provide -bookieid If you are running the decommission command for target bookie node from another bookie node you should mention the target bookie id in the arguments for -bookieid $ bin/bookkeeper shell decommissionbookie or $ bin/bookkeeper shell decommissionbookie -bookieid <target bookieid>

  3. Validate that there are no ledgers on decommissioned bookie $ bin/bookkeeper shell listledgers -bookieid <target bookieid>

Last step to verify is you could run this command to check if the bookie you decommissioned doesn’t show up in list bookies:

./bookkeeper shell listbookies -rw -h
./bookkeeper shell listbookies -ro -h

An entry is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Entries are also known as records.

A ledger is a sequence of entries written to BookKeeper. Entries are written sequentially to ledgers and at most once, giving ledgers append-only semantics.

A bookie is an individual BookKeeper storage server.

Bookies store the content of ledgers and act as a distributed ensemble.

A subsystem that runs in the background on bookies to ensure that ledgers are fully replicated even if one bookie from the ensemble is down.

Striping is the process of distributing BookKeeper ledgers to sub-groups of bookies rather than to all bookies in a BookKeeper ensemble.

Striping is essential to ensuring fast performance.

Striping is the process of distributing BookKeeper ledgers to sub-groups of bookies rather than to all bookies in a BookKeeper ensemble.

Striping is essential to ensuring fast performance.

A journal file stores BookKeeper transaction logs.

When a reader forces a ledger to close, preventing any further entries from being written to the ledger.

A record is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Records are also known as entries.