Background
The Growth team is moving the mentor/mentee relationship to a database table in extension1, called growthexperiments_mentor_mentee.
Information about table size
Answers questions from https://wikitech.wikimedia.org/wiki/Creating_new_tables.
- Should this table be replicated to wiki replicas (does it contain private data)?: No, it should be private
- Size of the table/Table growth: the table should never be bigger than the number of rows in user (if T227876 gets prioritized, the number of rows there will be doubled)
- Expected amount of queries, both writes and reads: new account creation causes a write; reads are frequent (this information is cached in memcached, and it might be needed on all pageviews by an user with the features enabled)
- Examples of queries that will be using the table:
- SELECT gemm_mentor_id FROM growthexperiments_mentor_mentee WHERE gemm_mentee_id=XXX
- SELECT gemm_mentee_id FROM growthexperiments_mentor_mentee WHERE gemm_mentor_id=XXX
- Release plan
- This is not a new feature, it is refactoring the storage backend for mentor/mentee relationship to use a dedicated database table. This is to allow software to get mentees for a mentor (second example query). We want to make the switch on all our target wikis (see https://github.com/wikimedia/operations-mediawiki-config/blob/master/dblists/growthexperiments.dblist for list) at once, if possible.
Table creation
Table should be created for all wikis in growthexperiments.dblist. The table should not be replicated.
Checklist
- Add to private_tables in Puppet
- Wait for https://gerrit.wikimedia.org/r/c/mediawiki/extensions/GrowthExperiments/+/677921 to get merged
- A deployer creates the database tables