CI Report:
https://ci-tests.linuxserver.io/linuxserver/tautulli/develop-bf4deaa7-ls12/index.html
LinuxServer Changes:
No changes
Remote Changes:
Read each notifier's newest notify_log row with an index seek
get_notifiers() joined notify_log and grouped by notifier for the last
triggered time. The join read every log row. The settings Notification
Agents table and the get_notifiers API waited for it.
Measurement
On a real database copy with 875,205 log rows and 30 notifiers the join
took 3132 ms. Per-notifier subqueries took under 8 ms and returned the
same rows. They read one entry of idx_notify_log_notifier_id each.
Change
last_triggered and last_success come from two correlated subqueries.
A tie in the same second now picks the row written last. The join
picked an arbitrary row.
Tests
tests/test_notifiers_last_triggered.py checks the values, the tie, the
notifier filter, and that query work stays flat as the log grows.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com