BIND 10 #2854: memory manager framework
BIND 10 Development
do-not-reply at isc.org
Wed Jun 12 19:10:17 UTC 2013
#2854: memory manager framework
-------------------------------------+-------------------------------------
Reporter: jinmei | Owner:
Type: task | jinmei
Priority: medium | Status:
Component: shmem | accepted
manager | Milestone:
Keywords: | Sprint-20130611
Sensitive: 0 | Resolution:
Sub-Project: DNS | CVSS Scoring:
Estimated Difficulty: 9 | Defect Severity: N/A
Total Hours: 0 | Feature Depending on Ticket:
| shared memory data source
| Add Hours to Ticket: 0
| Internal?: 0
-------------------------------------+-------------------------------------
Changes (by jinmei):
* milestone: Sprint-20130625 => Sprint-20130611
Comment:
trac2854 is (finally) ready for review.
It's based on a snapshot version of trac2853.
The effective branch point is commit e626839.
The branch is pretty big (estimation was correct, and in retrospect we
should have broken down into smaller tasks), but it consists of
several stages, each is quite clearly separated, so I believe the
review can be done step by step. If the total branch looks too big
we could also separate the review process.
- c27421b to 2379e41: it introduces a generic "server" module that
implements common behavior of BIND 10 server programs
(initialization, setup module CC session, running a loop, etc).
We've been using a similar code pattern like this for many of our
Python programs, so I thought it's now better to provide a common
framework. Hopefully it can be used (with more extensions) for the
revised versions of xfr's, too.
- 1b1c061 to 554c01b: some necessary updates and corrections to the
server_common.datasrc_clients_mgr module. 054d97c and 554c01b are
the "corrections". I did it wrong in #2946, and while it could be
done outside of this task, it will require a change to memmgr later
and would also affect the ongoing zonemgr work. So I chose to fix
it now.
- 2987b19: this is essentially a part of memmgr implementation, but I
chose to make it in a separate method so each module file will be
concise enough.
- 2987b19 and above: this is the main memmgr program. with all the
setup so far, this part itself isn't that big.
Some other notes:
- since the branch is getting bigger, I chose not to handle any other
commands than 'shutdown' within this task.
- as can be easily noticed, I introduced the concept of the
"generation ID" for the data source configuration. It's not yet
clear whether/how we use such a concept to handle full data source
reconfig, and in that sense it may be premature. I thought it's
still better to take it into account from the beginning to avoid
major updates at a later stage, but we can discuss it.
- details of some other parts are still not really fixed, like how the
"builder" will work, or how we handle reader modules such as auth.
I left some hints about how it would look like, but that can change
as we implement these parts.
Finally, I don't think we need a changelog entry for this yet; while
it's a runnable daemon it's still basically useless for users in
practice.
--
Ticket URL: <http://bind10.isc.org/ticket/2854#comment:5>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list