BIND 10 #1259: framework for adding/deleting RR in datasource from xfrin
BIND 10 Development
do-not-reply at isc.org
Wed Sep 28 22:57:12 UTC 2011
#1259: framework for adding/deleting RR in datasource from xfrin
-------------------------------------+-------------------------------------
Reporter: jinmei | Owner:
Type: task | Status: new
Priority: blocker | Milestone:
Component: xfrin | Sprint-20111011
Sensitive: 0 | Keywords:
Sub-Project: DNS | Defect Severity: N/A
Estimated Difficulty: 0 | Feature Depending on Ticket:
Total Hours: 0 | Add Hours to Ticket: 0
| Internal?: 0
-------------------------------------+-------------------------------------
This is a subtask of #1212 and can be independently done from other
subtasks.
It does not necessarily have to be exactly the same, but the tentative
proposal is to port BIND 9's ixfr_putdata(), ixfr_apply(), and
ixfr_commit() (implemented in lib/dns/xfrin.c), and
dns_difftuple_create() and dns_diff_apply() (lib/dns/diff.c). We
introduce a notion of "RR diff", which (conceptually) consists of an
operation mode (add or delete) and an RR (which would be an RRset
object containing only one RDATA in our API). dns_diff_apply()
accepts a list of RR diffs, combining them into RRset diffs (for
efficiency reasons), then make the corresponding changes on the zone
DB. ixfr_putdata() takes an operation (add or delete) and RR from the
main IXFR logic, creates an RR diff object, and maintains it in a
list. For every 100 diffs, it calls ixfr_apply(). ixfr_apply()
starts a new transaction (if it has already started transaction,
continue it) and makes changes for the RR diff list accumulated so far
under the transaction. ixfr_commit() calls ixfr_apply() to apply any
remaining diff and commits the transaction.
--
Ticket URL: <http://bind10.isc.org/ticket/1259>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list