Page MenuHomePhabricator

Add a missing DaemonLogEvent key for garbage collection
ClosedPublic

Authored by epriestley on Oct 26 2017, 8:08 PM.
Tags
None
Referenced Files
F18701195: D18733.diff
Sat, Sep 27, 5:51 PM
F18566424: D18733.id.diff
Tue, Sep 9, 2:36 PM
F18561547: D18733.id.diff
Tue, Sep 9, 1:36 AM
F18501766: D18733.diff
Sep 4 2025, 9:57 PM
F18431657: D18733.id44970.diff
Aug 31 2025, 5:31 AM
F18244939: D18733.diff
Aug 21 2025, 8:43 AM
F18099301: D18733.id44970.diff
Aug 9 2025, 3:35 AM
F18099242: D18733.id44964.diff
Aug 9 2025, 3:03 AM
Subscribers
None

Details

Summary

See PHI176. This is issued periodically by the garbage collector. Normally this table is relatively small-ish so this missing key isn't hugely noticeable.

Test Plan

Ran ./bin/garbage collect --collector daemon.processes --trace to get the query the GC runs.

Ran DELETE FROM `daemon_logevent` WHERE epoch < 1508443504 LIMIT 100 before and after the key, saw a much better query plan afterward:

Before:

mysql> explain DELETE FROM `daemon_logevent` WHERE epoch < 1508443504 LIMIT 100;
+----+-------------+-----------------+------+---------------+------+---------+------+-------+-------------+
| id | select_type | table           | type | possible_keys | key  | key_len | ref  | rows  | Extra       |
+----+-------------+-----------------+------+---------------+------+---------+------+-------+-------------+
|  1 | SIMPLE      | daemon_logevent | ALL  | NULL          | NULL | NULL    | NULL | 19325 | Using where |
+----+-------------+-----------------+------+---------------+------+---------+------+-------+-------------+
1 row in set (0.00 sec)

After:

mysql> explain DELETE FROM `daemon_logevent` WHERE epoch < 1508443504 LIMIT 100;
+----+-------------+-----------------+-------+---------------+-----------+---------+-------+------+-------------+
| id | select_type | table           | type  | possible_keys | key       | key_len | ref   | rows | Extra       |
+----+-------------+-----------------+-------+---------------+-----------+---------+-------+------+-------------+
|  1 | SIMPLE      | daemon_logevent | range | key_epoch     | key_epoch | 4       | const |    1 | Using where |
+----+-------------+-----------------+-------+---------------+-----------+---------+-------+------+-------------+
1 row in set (0.00 sec)

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable