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