!djTaTBQyWEPRQxrPTb:nixos.org

Nixpkgs Architecture Team

230 Members
https://github.com/nixpkgs-architecture, weekly public meetings on Wednesday 15:00-16:00 UTC at https://meet.jit.si/nixpkgs-architecture51 Servers

Load older messages


SenderMessageTime
20 Jun 2023
@raitobezarius:matrix.orgraitobezariussafe migrations does not exist10:23:45
@raitobezarius:matrix.orgraitobezariusbut unsafe migrations can always be made safe10:23:54
@raitobezarius:matrix.orgraitobezariusdepend on how much resources you are ready to commit for it10:24:01
@piegames:matrix.org@piegames:matrix.org But how 10:27:24
@raitobezarius:matrix.orgraitobezariustrivial safe migration algorithm:10:33:42
@raitobezarius:matrix.orgraitobezarius * trivial safe migration algorithm based on unsafe procedure M10:33:50
@raitobezarius:matrix.orgraitobezariustake a snapshot of the service you are migrating S10:34:10
@raitobezarius:matrix.orgraitobezariusdo M10:34:12
@raitobezarius:matrix.orgraitobezariusit's safe because you don't lose data, you only availability10:34:31
@raitobezarius:matrix.orgraitobezarius * it's safe because you don't lose data, you only lose availability10:34:36
@raitobezarius:matrix.orgraitobezariusyou can go back to version N - 1 by restoring S as long as you don't create new data of course which should be fine if you have a broken service resulting of an unsafe migration10:35:01
@raitobezarius:matrix.orgraitobezarius * take a data snapshot of the service you are migrating S10:35:08
@raitobezarius:matrix.orgraitobezariusyou could automate restoring S based on criteria: "the systemd unit really doesn't want to restart", "all requests are 500", etc.10:35:30
@raitobezarius:matrix.orgraitobezariusavailability then can be restored via this mechanism10:35:51
@piegames:matrix.org@piegames:matrix.orgYeah but how do you want to take a snapshot of only a single service? And what about services that interact with others (e.g. a database)?10:36:05
@raitobezarius:matrix.orgraitobezariusideally, the nixos module should provide the facts about your servicesd10:36:27
@raitobezarius:matrix.orgraitobezarius * ideally, the nixos module should provide the facts about your services10:36:28
@raitobezarius:matrix.orgraitobezariusStateDirectory10:36:31
@raitobezarius:matrix.orgraitobezariuspostgresql database10:36:36
@raitobezarius:matrix.orgraitobezariusredis database10:36:40
@raitobezarius:matrix.orgraitobezariusetc.10:36:42
@raitobezarius:matrix.orgraitobezariusthen "taking a snapshot" for the service is taking a snapshot of all its constitutents10:36:52
@raitobezarius:matrix.orgraitobezariusand this is an implem detail on how you take such snapshots10:36:59
@piegames:matrix.org@piegames:matrix.orgSo you have three services connecting to postgres, and one of them fails during upgrade. That's not an implementation detail, that's a fundamental problem IMO10:37:15
@raitobezarius:matrix.orgraitobezariusyou can take diff snapshots using the filesystem features if this makes sense, you can take application level snapshots if it's possible10:37:18
@raitobezarius:matrix.orgraitobezarius
In reply to @piegames:matrix.org
So you have three services connecting to postgres, and one of them fails during upgrade. That's not an implementation detail, that's a fundamental problem IMO
taking a PGSQL database snapshot without affecting the other is a requirement
10:37:45
@raitobezarius:matrix.orgraitobezariusok let's define it further10:37:52
@raitobezarius:matrix.orgraitobezariuswe have services in nixpkgs which are shared with different applications living on the same machine10:38:04
@raitobezarius:matrix.orgraitobezariuslet's say that the rollback/snapshot granularity is at the database level for PGSQL (and similar things)10:38:29
@raitobezarius:matrix.orgraitobezarius3 services get upgraded, are using 1 database each, one of them fails during upgrade10:38:38

Show newer messages


Back to Room ListRoom Version: 9