[bind10-dev] Data source development
Michael Graff
mgraff at isc.org
Mon Jan 4 18:51:40 UTC 2010
Jelte Jansen wrote:
> On 12/30/2009 08:13 PM, Michael Graff wrote:
>> Shane has asked if we could have this done by the end of the next
>> bind-10 meeting summit in January.
>>
>> I believe the only hard part right now that I need to solve is simple:
>> Do we use a "compiled" format (where something, either the system or the
>> admin, compiles a zone into an sqlite3 or bdb format) or do we accept
>> text directly and have an in memory system?
>>
>
> imo, either is fine right now (the other one should be the first next
> thing anyway)
Agreed.
> i think there's a more important decision; where exactly does the
> 'smartness' live, above or below the data source API? (this choice is
> already implied in your list, separated by the 'if we can't do sigs+' line)
I believe the basic smartness should be "below" the API. We might
actually eventually split it into three separate areas: the server
proper (which knows only how to ask for records it needs), a
middle-layer which acts as a smart layer when needed, and a low-level
layer which acts very close to the data itself.
This was the original discussion from a year ago: the smarts can live as
close to the database layer itself, or one layer above, if needed. This
is done so a simple database can be written fast and easily, and then
later made faster by migrating the smarts bit-by-bit lower.
The simplest way I can think of doing this is a superclass that has all
the smarts in it, but doesn't talk to a database directly. The lower
layer MUST implement "find this RRSet" and may return signatures. If
the zone is marked as signed (probably need zone meta-data in the
database or at least provided) then this superclass will query for the
signature RRSET.
Caching may also want to live in this layer as well, perhaps a simple
"remember for 5 minutes, 50 MB, or unless told to forget my cache" method.
--Michael
More information about the bind10-dev
mailing list