[bind10-dev] writable datasources 2/3; Ideas and open issues
JINMEI Tatuya / 神明達哉
jinmei at isc.org
Thu May 13 07:27:09 UTC 2010
Some random comments...
At Mon, 10 May 2010 10:43:09 +0200,
Jelte Jansen <jelte at isc.org> wrote:
>
> I'm not entirely sure yet how 'smart' add and delete need to be (since
> our base 'unit' is the RRset, the current addRRset would add the
> contents of the given RRset to any RRset that already exists, but we
> could make these really dumb and provide a smarter add() function that
> fetches any existing rrset first, adds to it, then deletes the old one
> and stores the new. For instance. This would make full loads for
> loadzone and axfr quite a lot more efficient, and you could error on
> duplicates).
FYI: BIND 9 uses a "merge" flag and passes an "rdataset" (which is
equivalent to RRset in our current model) to a database (= a data
source instance in our case) with the flag to perform dynamic update.
The underlying database will be responsible for the actual merge.
We don't necessarily have to do this in the same way, of course.
> High-level functions:
>
> - - Replace all rrsets for a given zone (load/axfr)
> - - Delete and add a set of records (ixfr)
> - - Do Dynamic update
I think "do dynamic update" is quite special in that it's deeply
related to a specific DNS (message) protocol, i.e., DNS update. IMO,
we should clearly separate this layer from more abstract level of data
source manipulation (just add/delete something, find something, etc)
that is not directly related to a particular part of DNS message
handling. This applies to the general query processing, too.
---
JINMEI, Tatuya
More information about the bind10-dev
mailing list