This is part of annual plan for FY 25-26. Commons database has grown to an extremely large size (2TB) and we have no choice but to split it. The most cost-benefit efficient way is to move the links tables to a dedicated cluster (x4) which would cut its size to half.
These tables must be moved to x4:
- linktarget
- externallinks
- pagelinks
- templatelinks
- categorylinks
- collation
- imagelinks
- globalimagelinks
- iwlinks
- existencelinks
Maybe:
- langlinks
This can be done via introducing a new core virtual domain (virtual-links) and then migrating queries. Any query that join with page or other tables must be split to be two queries hitting different connections and if not possible, it should be done in a different way (e.g. T309738: Move MediaWiki QueryPages computation to Hadoop) or gets disabled in commons.
We need to set up back ups and wikireplicas too.
For now, we should assume page and redirect tables will exist in both databases. Depending on how many cases directly join and not easy to split, we could consider having those tables being shared.