Background
A significant percentage of user_properties row is owned by GrowthExperiments. We should invest some effort into removing the rows we don't need, or consolidate the properties. We might benefit from conditional defaults, which we created for Echo as part of T353225: Echo: Make use of conditional user defaults.
This is a March 2022 analysis of the amount of user properties we consume:
In [23]: pivot_df.sort_values('Growth %', ascending=False) Out[23]: Variable Growth Growth_no_mentorship Total Growth % wiki arwiki 2436441 2237462 14499219 16.80 viwiki 778427 715775 5022918 15.50 kowiki 431262 391826 3449192 12.50 cswiki 297077 270141 2570822 11.56 frwiki 2043960 1899497 22215626 9.20 bnwiki 162257 156591 2107438 7.70 In [24]:
This is the list of properties occupying the most rows from that time:
mysql:research@dbstore1007.eqiad.wmnet [cswiki]> select up_property, count(*) from user_properties where up_property like 'growthexperiments-%' or up_property='welcomesurvey-responses' group by up_property having count(*) > 1500 order by count(*) desc; +--------------------------------------------------------+----------+ | up_property | count(*) | +--------------------------------------------------------+----------+ | growthexperiments-help-panel-tog-help-panel | 40789 | | growthexperiments-homepage-enable | 35194 | | growthexperiments-homepage-pt-link | 35035 | | growthexperiments-tour-help-panel | 32918 | | growthexperiments-tour-homepage-mentorship | 32007 | | growthexperiments-mentor-id | 26936 | | growthexperiments-tour-homepage-discovery | 20520 | | growthexperiments-homepage-variant | 19715 | | growthexperiments-tour-homepage-welcome | 17258 | | growthexperiments-homepage-suggestededits-activated | 12661 | | growthexperiments-homepage-suggestededits-preactivated | 7211 | | growthexperiments-homepage-se-filters | 6098 | | growthexperiments-homepage-se-ores-topic-filters | 4030 | | welcomesurvey-responses | 2793 | | growthexperiments-homepage-tutorial-completed | 2646 | +--------------------------------------------------------+----------+ 15 rows in set (0.107 sec) mysql:research@dbstore1007.eqiad.wmnet [cswiki]>
We seem to be getting worse in this. For example, this is a October 2025 overview:
mysql:research@dbstore1007.eqiad.wmnet [cswiki]> select count(*) from user_properties; +----------+ | count(*) | +----------+ | 2989718 | +----------+ 1 row in set (1.832 sec) mysql:research@dbstore1007.eqiad.wmnet [cswiki]> select count(*) from user_properties where up_property like 'growthexperiments-%'; +----------+ | count(*) | +----------+ | 564289 | +----------+ 1 row in set (0.143 sec) mysql:research@dbstore1007.eqiad.wmnet [cswiki]> select 564289 / 2989718 * 100; +------------------------+ | 564289 / 2989718 * 100 | +------------------------+ | 18.8743 | +------------------------+ 1 row in set (0.001 sec) mysql:research@dbstore1007.eqiad.wmnet [cswiki]> mysql:research@dbstore1008.eqiad.wmnet [arwiki]> select count(*) from user_properties; +----------+ | count(*) | +----------+ | 17455549 | +----------+ 1 row in set (20.160 sec) mysql:research@dbstore1008.eqiad.wmnet [arwiki]> select count(*) from user_properties where up_property like 'growthexperiments-%'; +----------+ | count(*) | +----------+ | 4308029 | +----------+ 1 row in set (3.378 sec) mysql:research@dbstore1008.eqiad.wmnet [arwiki]> select 4308029 / 17455549 * 100; +--------------------------+ | 4308029 / 17455549 * 100 | +--------------------------+ | 24.6800 | +--------------------------+ 1 row in set (0.000 sec) mysql:research@dbstore1008.eqiad.wmnet [arwiki]>
We went from ~11% of rows to ~19% of rows on cswiki and from ~17% to ~25% on arwiki.
Problem
As of now, this essentially prevents us from adding new user_properties row, as we are the most prominent user of them already.
Solution
Lower the usage of user properties below XX% in average across the pilot wikis. Exact number TBD.