[bind10-dev] multiple datasources with the new API

Jelte Jansen jelte at isc.org
Thu Oct 6 14:00:09 UTC 2011


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


As decided on the call, I'd start a discussion here about how to handle
multiple datasources.

So right now, with the old datasources, we have a MetaDataSrc that acts
as one data source but is actually a container that includes other
datasources, and it'll find the 'best' one and return an answer from
that. We also have some memorydatasrc-specific code in there because at
the time the API's weren't aligned yet.

Now we have aligned API's, but no meta (yet), and no logic to choose
between them. We will need to be able to handle multiple datasources (if
nothing else, we'd want the 'chaos' one and some 'real' one by default),
and whether or not we go the 'meta'-route again, the same logic needs to
be implemented somewhere (or the current code converted and moved, of
course).

So one option is to do it directly; given the datasources configured,
simply make a list of them and go through them one by one and pick the
right answer, possibly using some caching or hints about which zones
they know about to not have to try all of them every time we need
something that isn't in the hotspot cache. This can be done directly,
transparently through a meta datasource, or explicitely.

We can make the order in which they are tried purely based on the order
of configuration, or we can add some smartness (some datasources have
explicit zone configuration, or even hardcoded zone data, and it is much
easier to find out if we need those than the datasources that can
contain any data, which may even have been changed since last time we
looked).

We also have an option to only allow one of those latter ones at a time
(per class, for instance).

Given the current API it's probably even easier to implement this in a
meta data source but this is mostly just a place to put the logic.

Of course there are probably things i'm not thinking of right now :)

Jelte
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk6NtGkACgkQ4nZCKsdOncWjhwCZAbFkf9BDEKzienl32oYWfF7z
Qd0An0LXTA0Qu98SxqyADu2Xgq1p83e2
=9P3w
-----END PGP SIGNATURE-----



More information about the bind10-dev mailing list