Currently, the database may only be truncated when leaving backup mode, but
the issue will be the same when neoctl gets a new command to truncate at an
arbitrary tid: we want to be sure that all nodes are truncated before anything
Therefore, we stop sending Truncate orders before stopping operation because
nodes could fail/exit before actually processing them. Truncation must also
happen before asking nodes their last ids.
With this commit, if a truncation is requested:
- this is always the first thing done when a storage node connects to the
primary master during the RECOVERING phase,
- and the cluster does not start automatically if there are missing nodes,
unless an admin forces it.
- Connections to storage nodes don't need to be aborted anymore when leaving
- The master always initiates communication when a storage node identifies,
which simplifies code and reduces the number of exchanged packets.