[bind10-dev] Shared memory data source ideas
Stephen Morris
stephen at isc.org
Fri Mar 16 10:46:20 UTC 2012
On 16/03/2012 09:49, Michal 'vorner' Vaner wrote:
>
> Another disadvantage about the forking is while it might be
> relatively cheap, it is not completely. Creating a process costs
> something (copying the whole MMU table, for example) and having
> <number of cores> * <several hundred> new processes per second
> might be too much. It might also confuse administrators if the
> auths are swarming like this.
I don't think the idea is to have several hundred new processes per
second. As I read the paragraph, the auth processes are replaced when
an update is done. Although we mayd get lots of updates per second,
we could decide to give the user control over how often the the active
processes refresh. For example, publishing the updated contents of
the zone(s) once a minute might well be enough for most users.
> Another thing to build is designing the internal layout. We
> probably don't want to store the Name objects and RRset objects
> like now, but something like the wire format and something based
> on the #404 ticket. I know this is technical details and design,
> but we should note we need to decide the representation before we
> start doing the shared memory ‒ because the current representation
> would be hell to fit into it, while the new one might be designed
> to be simpler in that.
+1 to this.
Looking at the current objects (Name, RRset, etc.), heavy use is made
of STL objects such as string and vector. These allocate their own
memory and getting them to allocate memory in a shared memory segment
is likely to be - er - interesting. (Have a look at items 10 and 11
in Scott Meyers's "Effective STL".)
Stephen
More information about the bind10-dev
mailing list