[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Asrg] SICS
Laird Breyer <laird at lbreyer.com> wrote:
> While your 40 million user database has constant activity, I presume
> the vast majority of usernames have a long lifetime, a few days at
> least. So if you build username snapshots at fixed intervals, then
> users would have to wait a little for their new address to become
> "live" etc.
If you're willing to suffer a _few_ false positives on the filtering,
and do a little more arithmetic, you can do better. Construct some
number of hash functions whose output is an address that holds 1 bit.
Hash each email address with each function, and turn the pointed-at
bit on. When email comes in, apply all the hash functions and check
the pointed-at bits. If they're all on, pass the message through.
A new user gets turned on immediately, by turning on the necessary
bits in the table. A deleted user doesn't go away until the next full
rebuild. There's a small chance (depends on hash table size, number
of hash functions, number of valid email addresses) of a random
address being accepted due to collisions, but this can be made
acceptably small. (Using a parameterized set of hash functions allows
them to be changed every rebuild, to avoid the chance that a commonly
attacked bad address passes.)
Seth
_______________________________________________
Asrg mailing list
Asrg at ietf.org
https://www1.ietf.org/mailman/listinfo/asrg