[bind10-dev] Multicore Auth
Stephen Morris
stephen at isc.org
Sat Jul 16 11:25:55 UTC 2011
On 15/07/2011 22:38, JINMEI Tatuya / 神明達哉 wrote:
> At Fri, 15 Jul 2011 12:38:41 +0100,
> Stephen Morris <stephen at isc.org> wrote:
>
>>> - Another thing to be considered is how/whether to share hot spot
>>> cache between instances (threads/processes) running on different
>>> cores.
> [...]
>> If we were to use some form of receptionist process, that could hash the
>> qname and route the query to a server process based on result. As each
>> process then answers queries for 1/n the names, the hotspot cache could
>> be 1/n the size it would need to be if the process answered queries for
>> all names in the zone.
>
> I suspect this is not that trivial. For example, responses to queries
> for www.example.org and ftp.example.org would both contain
> example.org/NS in the authority section, so even if www.example.org
> and ftp.example.org are cached on different cores and we distribute
> the queries accordingly we still need to consider how to handle the
> NS (either accepting contention or consuming more memory).
I think that latter option (each process storing the NS records so
consuming more memory) would be acceptable; it would also avoid the
problems resulting from the need to overcome contention.
In the worst case, each process will hold 1/n of the names and all the
NS records, so the memory penalty over a single process system will be
(n - 1) * (amount of memory reserved for NS records)
(n = number of processes.)
Whether this is acceptable depends on the split between the number of NS
records held in the cache v number of non-NS records. If
number of non-NS records >> number of NS records
... the penalty is likely to be insignificant. If the numbers are more
equal, then we have to make a decision as to whether the overhead is
acceptable.
Stephen
More information about the bind10-dev
mailing list