5 ms·
First let me say redis has served me well for years. Before rspamd I used spamasassassin - another perfectly fine piece of software. Having more options is a go
by quags 3y ago
First let me say redis has served me well for years. Before rspamd I used spamasassassin - another perfectly fine piece of software. Having more options is a good thing. For redis I started with single instances and moved to master (for writes), slaves (for reads), or sharding/hashing depending on what rspamd uses. I moved one section so far to dragonflydb called reputation module. This is performing better for my usage.
As for email, if email was broken down and nicely distributed over the same period I likely would have no issues. However, there are times where there is much more scanning going on, and a good 4 hours of peak time. This is where issues can crop up. If rspamd scan can't get a return fast enough, that test will be skipped. It still works, but I'd rather have all tests go through. So lets then take a single email and where redis is used
*Ratelimit checking
* Replies plugin
* Some multi map are stored in redis
*mx check module
* neural module (a bit like bayes but automatic and short term)
* fuzzy module used from spam traps
* history module - for redis admin, stats
So a single email is doing more than a single redis query for each email. The mail server (for smtp), which is not rspamd, is also using redis on its own.
Now imagine a spike of emails, perhaps a large spamming activity that is being stopped. Needing to scan 100 emails in a second isn't impossible at peak. The scanning is also for incoming and outgoing email.
- qeternity 3y agoYeah I appreciate there is a lot going on. But is it really 1k ops/message? Even at 100 ops/message you should be able to do > 1k messages/sec without breaking a sweat.