-
Notifications
You must be signed in to change notification settings - Fork 43
Database hot standby #4436
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
Database hot standby #4436
Conversation
fe01b27
to
6776c4d
Compare
6776c4d
to
a6e76c9
Compare
a6e76c9
to
aa50e0b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍
This mode can be used to provide failover without :ref:`replication <replication>`. | ||
|
||
Suppose there are two cluster applications. | ||
Each cluster has one instance with the same configuration: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can't guess from this example the correct way to use this mode in multi-instance apps. Set it for all instances of two identical apps? Or maybe select a subset of instances to run in standby?
Not sure though if the deeper explanation is needed in the reference. Perhaps somewhere in a task-oriented page in the admin's guide (out of this PR's scope).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can't guess from this example the correct way to use this mode in multi-instance apps.
The correct way is using two cluster applications
with each cluster having one instance
. And the GitHub examples at the end should help a reader. I agree that we can document this feature better. But, honestly, I don't think it is a very popular use case for Tarantool (maybe, I'm wrong).
Set it for all instances of two identical apps? Or maybe select a subset of instances to run in standby?
This sounds like a feature request for a new configuration approach. For example, we can allow a user to add two instances, set replication.failover
to smth like hot_standby
, and provide the same path to WALs/snapshots for both instances. But still not sure that this scenario might be popular. cc @Totktonada
|
||
* If :ref:`wal.mode <configuration_reference_wal_mode>` is set to ``none``. | ||
* If :ref:`wal.dir_rescan_delay <configuration_reference_wal_dir_rescan_delay>` is set to a large value on macOS or FreeBSD. On these platforms, the hot standby mode is designed so that the loop repeats every ``wal.dir_rescan_delay`` seconds. | ||
* If spaces are created with :ref:`engine <space_opts_engine>` set to ``vinyl``. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The old wording was clearer:
for spaces created with engine = ‘vinyl’
Now it's ambiguous:
- if there are vinyl spaces?
- if all spaces are vinyl?
- has no effect only on vinyl spaces?
Fixes #3858.
Staging: https://docs.d.tarantool.io/en/doc/database-hot-standby/reference/configuration/configuration_reference/#configuration-reference-database-hot-standby