Page MenuHomePhabricator

Move PAWS to it's own database (and away from ToolsDB)
Closed, ResolvedPublic

Description

PAWS hub uses ToolsDB as it's primary database. This isn't entirely an appropriate use of ToolsDB, which is ideally used for Toolforge tools, and ToolsDB has become an increasingly unstable service in need of replacing anyway. PAWS has relatively simple database needs and the DB could be maintained much more easily than ToolsDB overall.

The ideal would be a to use T212595: [Feature request] Database as a Service (Trove) for Cloud VPS projects. However, if we get around to it first, a couple little instances running mariadb in the PAWS cloud-vps project would be just fine.

Related Objects

StatusSubtypeAssignedTask
Resolved Bstorm
ResolvedAndrew
ResolvedAndrew
ResolvedAndrew
Resolvedtaavi
ResolvedJhancock.wm
ResolvedAndrew
ResolvedAndrew
Resolvedaborrero
Resolvedaborrero
Resolvedaborrero
ResolvedAndrew
ResolvedAndrew
ResolvedAndrew
ResolvedAndrew
ResolvedAndrew
ResolvedAndrew
Resolved Bstorm
ResolvedAndrew
OpenAndrew
OpenAndrew

Event Timeline

Bstorm created this task.
taavi subscribed.

We're going to do this with Trove at this point, marking that as a blocker.

The existing DB in toolsdb is < 10MB in size according to https://tool-db-usage.toolforge.org/. I've created a Trove instance of mysql that is 4 GB so it will have a lot of room to grow as well as enough quota to create a replica when we've enabled that feature in Trove. I won't move the paws system to that until we've got some operations docs and things set up.

Mentioned in SAL (#wikimedia-cloud) [2021-05-21T00:06:35Z] <bstorm> creating trove mysql instance pawsdb-1 T267683

@yuvipanda and @Chicocvenancio I have created a trove instance (mysql) on the paws project that has more than enough room for the database. We don't have replication ready in trove yet, so I plan to slap together a systemd timer to mysql dump the database on some kind of schedule until replication and trove backups are available in case we wanted to restore. I don't know how essential that is since we typically move to sqlite during database issues, but I think it makes sense to set up something like that.

I just wanted to make sure you were aware I was working on this. All that is needed is to change the hostname in secrets.yaml and it should Just Work. Decoupling this from toolsdb will mean less things that require non-volunteer support and, well, toolsdb has serious issues anyway. I may not have time to enable it this week, but that's the aim.

Change 699471 had a related patch set uploaded (by Bstorm; author: Bstorm):

[operations/puppet@production] paws: add a very simple backup server

https://gerrit.wikimedia.org/r/699471

Change 699471 merged by Bstorm:

[operations/puppet@production] paws: add a very simple backup server

https://gerrit.wikimedia.org/r/699471

Change 713672 had a related patch set uploaded (by Bstorm; author: Bstorm):

[operations/puppet@production] paws trove: actually install mariadb-client

https://gerrit.wikimedia.org/r/713672

Change 713672 merged by Bstorm:

[operations/puppet@production] paws trove: actually install mariadb-client

https://gerrit.wikimedia.org/r/713672

Bstorm claimed this task.