mirror of
https://github.com/isc-projects/bind9.git
synced 2026-04-23 23:28:18 -04:00
own CVS tree will help minimize CVS conflicts. Maybe not. Blame Graff for getting me to trim all trailing whitespace.
93 lines
No EOL
2.4 KiB
Text
93 lines
No EOL
2.4 KiB
Text
Copyright (C) 1999, 2000 Internet Software Consortium.
|
|
See COPYRIGHT in the source root or http://www.isc.org/copyright for terms.
|
|
|
|
$Id: db_rules,v 1.5 2000/08/01 01:18:08 tale Exp $
|
|
|
|
Here is a more formal statement of the important database design
|
|
rules. Each rule has a 5 character mnemonic, for use in source code
|
|
comments.
|
|
|
|
|
|
Reference Safety [DBREF]
|
|
|
|
1) Any node reference retrieved from the database shall remain
|
|
valid until discarded by the caller.
|
|
|
|
2) Any rdataset retrieved from the database shall remain valid,
|
|
with its rdata contents unaltered, until it has been discarded
|
|
by the caller.
|
|
|
|
|
|
Database Type [DBTYP]
|
|
|
|
Every database is either a zone database or a cache database. This
|
|
type is chosen when the database is created and cannot be altered.
|
|
|
|
|
|
Basic Versioning [DBVER]
|
|
|
|
The rdata contents of a committed version in a zone database
|
|
do not change.
|
|
|
|
|
|
Database Future Version [DBFUV]
|
|
|
|
1) Zone databases may have at most one open future version.
|
|
|
|
2) When committed, the future version becomes the current version.
|
|
|
|
3) Until committed, the future version changes may be rolled
|
|
back.
|
|
|
|
|
|
Node Lookups [DBNLU]
|
|
|
|
A node lookup shall return:
|
|
|
|
1) A node handle if the node was found.
|
|
|
|
2) A result code.
|
|
|
|
3) Ancestor information. (XXX MORE INFO XXX)
|
|
|
|
|
|
Zone Node Lookups [DBZNL]
|
|
|
|
A node zone lookup returns the requested node, if it exists, in the
|
|
version specified, or DNS_R_NONEXISTENT otherwise.
|
|
|
|
|
|
Zone Rdataset Lookups [DBZRL]
|
|
|
|
A zone lookup returns the requested data, if any, in the
|
|
version specified, or DNS_R_NONEXISTENT otherwise.
|
|
|
|
|
|
Cache Node Lookups [DBCNL]
|
|
|
|
1) A node lookup shall return a handle to the desired node,
|
|
if it exists.
|
|
|
|
2) If there is a negative caching entry for the desired node,
|
|
DNS_R_NONEXISTENT shall be returned.
|
|
|
|
3) If the desired node does not exist, and there is not a
|
|
negative caching entry, DNS_R_UNKNOWN shall be returned.
|
|
|
|
|
|
Cache Rdataset Lookups [DBCRL]
|
|
|
|
1) A cache lookup returns the most recently written data
|
|
(if any).
|
|
|
|
2) If there is a negative caching entry for the desired data,
|
|
DNS_R_NONEXISTENT shall be returned.
|
|
|
|
3) If the requested data does not exist, and there is not a
|
|
negative caching entry, DNS_R_UNKNOWN shall be returned.
|
|
|
|
|
|
Cache Updates [DBCUP]
|
|
|
|
Concurrent attempts to update the same rdataset type of a given
|
|
node must appear to execute in some order. |