[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