Skip to content
Release 2.4.0

Fencing and failover

- The new fencing feature protects a replicaset from the presence of
  multiple leaders when the network is partitioned. It forces an
  isolated leader to become read-only.

- New failover parameter `failover_timout` specifies the time (in
  seconds) used by membership to mark `suspect` members as `dead` which
  triggers failover. The default value of `failover_timeout` increased
  from 3 to 20 seconds (**important change**).

- The `rpc_*` functions now consider `suspect` members as healthy to be
  in agreement with failover (**important change**).

- All these parameters, `fencing_enabled`, `fencing_pause`,
  `fencing_timeout`, are available for customization via Lua and
  GraphQL API, and in WebUI too.

Zones and zone distances

- Add support of replica weights and zones via a cluster-wide config new
  section `zone_distances` and a server parameter `zone`.

- Update server details dialog in WebUI.

Issues and suggestions

- Fix `upstream.idle` issue tolerance to avoid unnecessary warnings
  "Replication: long idle (1 > 1)".

- Indicate config checksum mismatch in the issues list.

- Indicate the change of `arvertise_uri` in the issues list.

- Show an issue if the cluster-wide config is locked on an instance.

- Show a suggestion to heal the cluster after relocating servers and
  changing their `advertise_uri`.

- Don't get stuck in `ConnectingFullmesh` state when an instance is
  restarted with a different `advertise_uri`. Also, keep the "Server
  details" dialog in WebUI operable in this case.

- Allow applying config when an instance is in `OperationError` state.
  It doesn't cause a loss of quorum anymore.

Hot-reload

- Add new feature for hot reloading roles code without restarting an
  instance: `cartridge.reload_roles()`. The feature is experimental
  and should be enabled explicitly:
  `cartridge.cfg({roles_reload_allowed = true})`. Use it with caution.

Miscellaneous enhancements

- New `cartridge.cfg` option `swim_broadcast` to manage instances
  auto-discovery on start. Default: true.

- New argparse options for tarantool 2.5+: `replication_synchro_quorum`,
  `replication_synchro_timeout`, `memtx_use_mvcc_engine`.

- Stop vshard fibers when the corresponding role is disabled.

- Make `console.listen` error more clear when `console_sock` exceeds
  `UNIX_PATH_MAX` limit.

- Allow removing spaces from DDL schema for the sake of `drop`
  migrations.

- Make DDL schema validation stricter. Forbid redundant keys in schema
  top-level and make `spaces` mandatory.

- Refresh interval and stat refresh period variables can be customized
  via frontend-core `set_variable` feature or at runtime.

- Properly display errors on WebUI pages "Users" and "Code".