[bind10-dev] Multicore Auth

Stephen Morris stephen at isc.org
Fri Jul 15 11:38:41 UTC 2011


On 15/07/2011 02:15, JINMEI Tatuya / 神明達哉 wrote:
> - One key question is how often we want to be able to reflect changes.
>   If we want to support, say, 1000 dynamic updates / sec and want to
>   make the changes visible "instantly", I can hardly imagine any other
>   approach than multi threads + locking (there may be a clever way to
>   achieve the goal with, e.g., shared memory + multiple processes,
>   still involving very few synchronization overhead, but I have no
>   specific idea right now).  If we can allow some delay in propagating
>   changes so that we can apply a set of changes at once and
>   periodically (e.g., every 30sec), other approaches such as multi
>   process + shared memory image can be a solution.  Do we have any
>   specific goal/requirement regarding this question?

Could we ask the sponsors for their input?

But as a data point, Nominet updates the .co.uk zone via dynamic updates
once a minute.


> - Another thing to be considered is how/whether to share hot spot
>   cache between instances (threads/processes) running on different
>   cores.  I've not fully thought about that, but I suspect we'd end up
>   each instance having separate cache.  That would lead to increase
>   total memory footprint, which may or may not be a big issue.  If
>   it's substantial, we need to consider a nice way to deal with that.

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.

Advantages
* Smaller cache size for each server process

Disadvantages
* Extra overhead of a receptionist process and message transfer
* Single point of failure in the receptionist process


Stephen



More information about the bind10-dev mailing list