Zero* downtime upgrades

* = if read only mode is not considered “downtime” for you :wink:

If you have a giant database then upgrading your site could take anywhere from 10 to 60 minutes. A significant chunk of this goes in backup, schema migration, and patches. All of which require disabling writes on the database.

I’ve been working on reducing downtimes during upgrades, while we are yet to have super fancy and complex systems where writes are just moved to a separate system and “merged” later… what we can easily get is “read only” mode on sites. This does reduce “downtime” for many users or at least lessens the impact of downtime as you can still view things and work on them.

This feature is still a few weeks and a few reviews away before it lands in v14 but if you’re a developer or care about this stuff you can test it out on test sites by checking out this PR:
https://github.com/frappe/frappe/pull/18050

docs for setup: Zero* downtime migrations

Here’s how it looks btw:

12 Likes

backups can be made faster.

  1. For files snapshot: How to backup with restic to S3 compatible storage

  2. For mariadb snapshot: https://www.youtube.com/watch?v=b-KFj8GfvzE

4 Likes

This is super! Our database has grown to 17gb and it takes down our site during mysql dumps :slight_smile:

That’s Awsome

@revant_one last I heard mariabackup doesn’t work well with multitenant systems. It can’t do partial “logical” restore of an individual database.

Though for single tenant sites it can be very useful to reduce downtime :+1:

ref: https://mariadb.com/kb/en/backup-and-restore-overview/#logical-vs-physical-backups

Regarding files snapshot, IIRC we don’t backup files during upgrades.

This is now available in v14 as a feature toggle from v14.8.0

Docs: Zero* downtime migrations

5 Likes