Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tt replicaset upgrade upgrades database schema. #4641

Open
Tracked by #4682
TarantoolBot opened this issue Nov 19, 2024 · 0 comments
Open
Tracked by #4682

tt replicaset upgrade upgrades database schema. #4641

TarantoolBot opened this issue Nov 19, 2024 · 0 comments
Labels
tt cli upgrade Functionality related to upgrade/downgrade

Comments

@TarantoolBot
Copy link
Collaborator

TarantoolBot commented Nov 19, 2024

Product: tt cli
Since: tt 2.5.0
Audience/target: all
Root document: https://www.tarantool.io/en/doc/latest/reference/tooling/tt_cli/replicaset/
SME: @ mandesero @ oleg-jukovec

Details

The tt replicaset upgrade command allows for a automate upgrade of each
replicaset in a Tarantool cluster. The process is performed sequentially on
the master instance and its replicas to ensure data consistency. Below are
the steps involved:

For Each Replicaset:

  • On the Master Instance:

    1. Run the following commands in sequence to upgrade the schema and take
      a snapshot:
      box.schema.upgrade()
      box.snapshot()
  • On Each Replica:

    1. Wait for the replica to apply all transactions produced by the
      box.schema.upgrade() command executed on the master. This is done
      by monitoring the vector clocks (vclock) to ensure synchronization.
    2. Once the repica has caught up, run the following command to take
      a snapshot:
      box.snapshot()

Error Handling: If any errors occur during the upgrade process, the
operation will halt, and an error report will be generated.


  • Timeout for Synchronization

Replicas will wait for synchronization for a maximum of Timeout seconds.
The default timeout is set to 5 seconds, but this can be adjusted manually
using the --timeout option.

Example:

$ tt replicaset upgrade [<APP_NAME>] --timeout 10
  • Selecting Replicasets for Upgrade

You can specify which replicaset(s) to upgrade by using the --replicaset
or -r option to target specific replicaset names.

Example:

$ tt replicaset upgrade [<APP_NAME> | <URI>] --replicaset <RS_NAME_1> -r <RS_NAME_2> ...

This provides flexibility in upgrading only the desired parts of the cluster
without affecting the entire system.
Requested by @mandesero in tarantool/tt@d9d2545.


To be done together with #4661

@p7nov p7nov mentioned this issue Dec 10, 2024
5 tasks
@p7nov p7nov self-assigned this Dec 10, 2024
@p7nov p7nov added tt cli upgrade Functionality related to upgrade/downgrade labels Dec 10, 2024
@p7nov p7nov removed their assignment Dec 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tt cli upgrade Functionality related to upgrade/downgrade
Projects
None yet
Development

No branches or pull requests

2 participants