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