Basically, fully embrace systemd for mariadb instead of using its backwards compatibility layer.
Description
Details
Status | Subtype | Assigned | Task | ||
---|---|---|---|---|---|
Invalid | None | T168494 tracking task: jessie -> stretch | |||
Resolved | jcrespo | T168356 Prepare mysql hosts for stretch | |||
Resolved | jcrespo | T116903 Adapt wmf-mariadb101 package for stretch and adapt its service to systemd |
Event Timeline
This is now possible for 10.1, and I have packages for stretch that do that. We have to decide if to maintain the systemd unit on puppet or on the package.
My two cents: From a high level view I personally prefer the systemd unit to be in the Debian package since it's part of the general package logic. For packages where we anticipate many changes to the unit it sometimes makes sense to manage it rather via puppet, but (after some initial experimentation) I'd expect the systemd unit for wmf-mariadb10 to be fairly static. If add the unit to the package this would also simplify a step-wise migration from sysvinit to systemd by upgrading the package (since the migration requires a restart of mysqld anyway).
we will repurpose this for stretch, we'll keep probably 10.0 on jesssie using inet.d.
I have installed wmf-mariadb101_10.1.23-1_amd64.deb on a fresh stretch to play around with it - will get back to you if I see issues!
Change 357626 had a related patch set uploaded (by Jcrespo; owner: Jcrespo):
[operations/software@master] mariadb: Improve systemd and package management
Change 360845 had a related patch set uploaded (by Jcrespo; owner: Jcrespo):
[operations/puppet@production] mariadb: Initial stretch support for wmf package with systemd
Change 360845 merged by Jcrespo:
[operations/puppet@production] mariadb: Initial stretch support for wmf package with systemd
The currrent package works ok, but there are 2 little details, which I am not 100% sure if to solve as config defaults or as package defaults. 2 options need to change with the new package:
socket = /var/run/mysqld/mysql.sock basedir = /opt/wmf-mariadb101
The first one, because we no longer allow to use /tmp for that. The second because without mysqld_safe, it defaults to look for them on /usr/local. There are some merits on doing it on package, to have working default, but I think they should be on config to allow clearly multi-instance in the future and avoid uninteded bad defaults.
For that, we need basically T148507.
+1 to place it on config rather than in package.
I would prefer to be able to configure it thru puppet instead of hardcoding it in the package. As you already mentioned, the nearest future use case is mult-instance config.
Change 357626 merged by Jcrespo:
[operations/software@master] mariadb: Improve systemd and package management
I am going to resolve this because technically, the package and systemd are correct- the things missing are the socket and the basedir which we have decided are configuration; but the package can work as it is now as a bare minimum. That doesn't mean we are happy with it, it is just ok to move on and keep improving.
Change 371450 had a related patch set uploaded (by Jcrespo; owner: Jcrespo):
[operations/puppet@production] mariadb: Remove package hacks for MariaDB 10.1 on jessie
Change 371450 merged by Jcrespo:
[operations/puppet@production] mariadb: Remove package hacks for MariaDB 10.1 on jessie