BIND 10 #2107: redefine in-memory zone data

BIND 10 Development do-not-reply at isc.org
Sat Jun 30 08:48:08 UTC 2012


#2107: redefine in-memory zone data
-------------------------------------+-------------------------------------
            Reporter:  jinmei        |                        Owner:
                Type:  task          |                       Status:  new
            Priority:  medium        |                    Milestone:  Next-
           Component:  data source   |  Sprint-Proposed
           Sensitive:  0             |                     Keywords:
         Sub-Project:  DNS           |              Defect Severity:  N/A
Estimated Difficulty:  0             |  Feature Depending on Ticket:
         Total Hours:  0             |  scalable inmemory
                                     |          Add Hours to Ticket:  0
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------
 We'll need a memory encoded form of zone data.  My suggestion
 is to revise the current `ZoneData` structure so that it will be
 simpler data-only structure, and allocated/deallocated using
 static method and a memory segment, e.g.:

 {{{#!cpp
 template <typename TreeType, typename TreeNodeType>
 struct ZoneData {
     static ZoneData* allocate(MemorySegment& segment, RRClass zone_class,;
                               const Name& zone_name);
     static void deallocate(MemorySegment& segment);

     // These will be initialized on allocation and won't change
     const RRClass zone_class;
     // some other attributes
     offset_ptr<TreeType> const tree;
     offset_ptr<TreeNodeType> const origin_node;

     const RBTree& getNSEC3Tree() const; // for ZoneFinder
     RBTree& getNSEC3Tree(); // for ZoneUpdater/loader
 private:
     offset_ptr<TreeType> nsec3_tree_;  // build this on-demand
 };

 This is essentially a private structure for other implementation
 details of in-memory data source client (finder/updater, etc), which
 will use the member variables directly.

-- 
Ticket URL: <http://bind10.isc.org/ticket/2107>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list