mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-22 18:19:42 +00:00
76 lines
1.9 KiB
Plaintext
76 lines
1.9 KiB
Plaintext
|
|
||
|
Here is a more formal statement of the important database design
|
||
|
rules. Each rule is given a 5 character mnemonic for referral
|
||
|
convenience.
|
||
|
|
||
|
|
||
|
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.
|
||
|
|
||
|
|
||
|
Basic Versioning [DBVER]
|
||
|
|
||
|
The rdata contents of a committed version 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 it is committed, the future version changes may be
|
||
|
rolled back.
|
||
|
|
||
|
|
||
|
Node Lookups [DBNLU]
|
||
|
|
||
|
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.
|