Some changes were just put into production that deal with message-filtering.
1. The filters are now stored differently in the database. Rather than a long "filter string" containing all of the filters, there's a separate table with one record for each filter.
2. Much of the work of filtering out unwanted posts, especially when reading in batch mode, has been moved to the database server, which should make life easier for the webserver.
3. The above change plus some other changes to the way filtering is handled in batch mode should result in speedier batch-mode screens and will likely result in the whole site being a little bit faster because of less loading on the webserver.
4. When reading in Batch mode, you'll get 10, 20, 50, or 100 messages now, no matter how many messages are skipped because they're filtered.
On April 28th (Monday), I'll be doing the following:
1. Removing all but the first 200 filters for premium members. 200 filters will now be the limit.
2. Removing all but the first 15 filters for free members. 15 filters will become the limit for free members.
3. Implementing a "sleep for filters" routine for free members. How this will work is that as a free member's number of filters goes up, so will the amount of time the system "sleeps" or pauses before outputting screens. This gives the webserver a bit of a break. There will be no extra pauses introduced for the first 5 filters, but for each filter beyond 5, the system will pause *on each screen* for 1/10th of a second. So, if you have 7 filters, that'll result in a 0.2 second pause on each screen and if you have 10, that'll result in a half-second pause per screen.
Pauses of less than half a second will likely not even be noticed, even on broadband. But they'll give the webserver some breathing room in return for making available a feature that has not only always been considered "value-added" (and therefore charged for), but also does impose a load on the system.