I think I am ready to put this to rest post this commit: FEATURE: implement capping of new/unread · discourse/discourse@335be27 · GitHub
Copied from commit message:
We cap new and unread at 2/5th of SiteSetting.max_tracked_new_unread
This dynamic capping is applied under 2 conditions:
-
New capping is applied once every 15 minutes in the periodical job, this effectively ensures that usually even super active sites are capped at 200 new items (+ number of new topics created in 15 minutes)
-
Unread capping is applied if a user hits max_tracked_new_unread,
meaning if new + unread == 500, we defer a job that runs within 15 minutes that will cap user at 200 unread
This logic ensures that at worst case a user gets “bad” numbers for 15 minutes and then the system goes ahead and fixes itself up
This resolves the issue completely even for super active sites like @charleswalter heloforos, with ZERO config needed by users or admins, and no confusing message to end users.