On 22/6/2019 17:36, Wietse Venema wrote:

Sharing a non-persistent cache (memcache) is the only option because
it can respond with low latency both for old and new queries. But
that of course limits the cache size.

Sharing a persistent cache is not an option because that requires
a DBMS with milliscond query latency (with a query latency of 50ms,
one postscreen instance would handle at most 20 clients per second).

DBMS would very possibly be slow for large backscatter scenarios.

You could try to combine a shared memcache and a shared persistent
cache, but that will only improve the best case where most connections
come from a limited set of clients. The memcache will not improve
the worst case, for example a backscatter scenario where most clients
are clients new. In that case the postscreen performance would be
exactly as bad as in the previous paragraph.

Wouldn't the worst case scenario with many new clients improve also by reducing latency though? I suspect this has a lot to do with DNSBL response time(???) or maybe there are other important delay factors besides that? What I have in mind is a local only postscreen DNSBL and the 50ms can easily go down to a millisecond.

With Internet services, it would be a mistake to optimize the best
case only; especially if it makes worst-case behavior worse.

Lefteris

Reply via email to