Skip to content

Document new bootstrap_strategy configuration option #3296

@TarantoolBot

Description

@TarantoolBot

Product: Tarantool
Since: 2.11
Root document: https://www.tarantool.io/en/doc/latest/reference/configuration/#cfg-replication-replication-connect-quorum
SME: @ sergepetrenko

Details

Default behaviour of replica set bootstrap, replica recovery when
connecting to remote nodes and replication reconfiguration is changed.
The new behaviour is controlled by the option bootstrap_strategy,
which has the default value "auto".

Now replication_connect_quorum configuration option takes no effect,
and the effective quorum value for each stage of configuration (quorum
of established connections, quorum of synced nodes) is determined
automatically.

On replica set bootstrap, the nodes will refuse to boot, unless a
majority is reached (this would mean replication_connect_quorum = 3,
when #box.cfg.repilcation is 4 or 5, for example, or
replication_connect_quorum = 2, when #box.cfg.replication is 2 or 3).
Moreover, the bootstrap leader will fail to boot unless it sees that
every connected node chose it as the bootstrap leader.

On new replica join to an existing cluster, the replica will fail to
boot only if it couldn't connect to anyone. As long as at least one
connection is established, the replica will try to join like before.

Moreover, the replica will check that its box.cfg.replication table
contains every registered node in the cluster, thus ensuring that it has
tried to connect to everyone and chose the best bootstrap leader
possible.

On replication reconfiguration on a working instance and recovery from
local WAL files, the node will try to connect to everyone specified in
box.cfg.replication. Any number of connections (even no connections)
will be deemed a success, but the replica will stay in orphan mode until
it is synced with everyone connected.

If you wish to return to the old behavior, a deprecated setting
bootstrap_strategy = "legacy" is left for now. With
bootstrap_strategy = "legacy", the node behaves exactly like before:
quorum for both connection and synchronisation is determined by
replication_connect_quorum, and neither bootstrap leader nor joining
replicas perform any additional checks on bootstrap.
Requested by @sergepetrenko in tarantool/tarantool@2f8e2d9.

Metadata

Metadata

Assignees

Labels

2.112.11 release and the associated technical debtbehavior change[nature] Сhange in existing behaviorfeatureA new functionalityreplication[area] Related to Replication

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions