Improve tags handling in CI
Right now we rely on the gem acts-as-taggable to handle tags. There are about 17.4 million rows in this table, and due to lack of indexes in https://gitlab.com/gitlab-org/gitlab-ce/issues/43927, it seems that this table is causing significant performance issues. It seems that CI is the main user of these:
gitlabhq_production=# SELECT count(*), taggable_type FROM taggings GROUP BY taggable_type;
count | taggable_type
----------+---------------
64092 | Ci::Runner
167 | Ci::Job
74632 | Project
17468756 | CommitStatus
53855 | Issue
125 | MergeRequest
(6 rows)
https://gitlab.com/gitlab-org/gitlab-ce/issues/32279 has some details on how cleaning up this table, but it seems every commit/build we add an entry to point to an entry in the tags table.
How can we reduce the amount of rows necessary here?