BIND 10 #2918: support config generation ID

BIND 10 Development do-not-reply at isc.org
Fri Apr 12 16:39:12 UTC 2013


#2918: support config generation ID
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:
  jinmei                             |                Status:  new
                       Type:  task   |             Milestone:  New Tasks
                   Priority:         |              Keywords:
  medium                             |             Sensitive:  0
                  Component:         |           Sub-Project:  DNS
  configuration                      |  Estimated Difficulty:  0
               CVSS Scoring:         |           Total Hours:  0
            Defect Severity:  N/A    |
Feature Depending on Ticket:         |
  shared memory data source          |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------
 For some types of configuration we'll need to be able to distinguish
 different versions ("generations") so we can gracefully migrate one
 to another.  We'll specifically need this concept for data sources,
 for which the user modules need to keep an old version while a new one
 is being prepared, and multiple modules may need to exchange
 information on old or new versions of the config.

 So, in this task, we'll introduce the concept of config "generation
 ID", implement it in cfgmgr and data_sources config spec.

 A configuration item for a module will have following items at its top
 level:

 - "generation-id-mode" (string): "none" or "auto", default is "none"
 - "generation-id" ((unsigned) int): monotonically increasing ID of the
   configurations of that module.  The latest ID is saved in
   b10-config.db and will be used on restart.

 When cfgmgr gets config update, it examines the top level of each
 module config to see if it contains "generation-id-mode" and it's set
 to "auto".  If both are the case, it checks a "generation-id" item (if
 not yet defined assume it to be 0", increment it by one, and
 distribute the config to user modules and save it with the updated
 generation ID.

 Revised data_sources config would look like:

 {{{
     "data_sources": {
         "generation-id-mode": "auto",
         "generation-id": 42,
         "classes": {
             "IN": [{
                 "type": "sqlite3",
                 "params": { "database_file": "zone.sqlite3" }
             }]
         }
     }
 }}}

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


More information about the bind10-tickets mailing list