[bind10-dev] (xfrout) ZoneIterator (was Re: revised/refactored data source design proposal)

JINMEI Tatuya / 神明達哉 jinmei at isc.org
Fri Jun 10 23:15:49 UTC 2011


At Tue, 07 Jun 2011 11:05:48 +0200,
Jelte Jansen <jelte at isc.org> wrote:

> > and tries to get RRs via mysql_fetch_row(result), other process or
> > thread cannot change (they should be able to start a write transaction
> > but cannot complete committing it) the database until this client
> > performs "mysql_free_result(result)".
> > 
> > A common practice in such a case is to use mysql_store_result()
> > instead of mysql_use_result(conn), but I suspect it's also problematic
> > for a huge zone because the resulting data can be very big and may
> > even bigger for the reasonably available memory for the server.
> > 
> 
> I think we should let this depend on the specific backend then;
[...]
I'll make a separate thread about this point.

> What I also miss in the proposal is how to do IXFR-out, regardless
> of how to do it in a backend implementation, how to store
> diffs/history or even whether a specific backend supports it). Would
> this be an option in ZoneIterator, or really a separate class (which
> then perhaps uses zoneiterator, as ixfr is in some ways an iteration
> of iterations, where axfr could be seen as a special case of that,
> with only 1 'outer' iteration)?

You're right; the initial design (wiki) document doesn't include
consideration on IXFR-out (actually not so much for IXFR-in either).
I thought we'd have a separate "journal", which is probably another DB
table and/or an in-house plain file (like BIND 9's journal file) and
records the update history.  We'll then have a separate class that
gets access to the journal to retrieve a specific range of history to
build IXFR-out responses.

---
JINMEI, Tatuya



More information about the bind10-dev mailing list