BIND 10 #1634: Abstract pool/lease store: initial requirements list

BIND 10 Development do-not-reply at isc.org
Tue Feb 21 13:06:53 UTC 2012


#1634: Abstract pool/lease store: initial requirements list
-------------------------------------+-------------------------------------
                   Reporter:  tomek  |                 Owner:  tomek
                       Type:  task   |                Status:  reviewing
                   Priority:  major  |             Milestone:  Sprint-
                  Component:  dhcp   |  DHCP-20120220
                   Keywords:         |            Resolution:
            Defect Severity:  N/A    |             Sensitive:  0
Feature Depending on Ticket:         |           Sub-Project:  DHCP
        Add Hours to Ticket:  0      |  Estimated Difficulty:  0
                  Internal?:  0      |           Total Hours:  0
-------------------------------------+-------------------------------------

Comment (by tomek):

 Replying to [comment:7 shane]:
 > I haven't looked at Stephen's or Shawn's comments yet, so there may be
 some duplication.
 >
 > First, I think the requirements need an introduction. Something to
 describe what the point of an abstract lease storage is, and how it fits
 into Kea. So, talking about the model of having multiple concrete types of
 lease storage, and so on. It should also discuss the basic functionality
 that lease storage provides, which seems to be both lease storage an pool
 definition according to this document.
 Agree. Wrote a paragraph about reasons for abstract API and a bit of
 background info.

 > From the general requirements, does it make sense to explicitly mention
 that we want both administrative and programmatic (via an externally-
 exposed API) ability to change leases?
 Added M5 requirement, but do we really want to do that? We will get "why
 only leases? My tool needs to change pools/hosts/subnets/whatever as well"
 type of questions really soon. I imagine that many changes will be done
 over b10-cmdctl. We will probably be exposing SQL DB itself, so I'm not
 sure if we need to design API for that.

 > We should probably say what happens when a pool is removed during
 operation. Possibly when one is added too.
 Added question 10 (part of my response to Shawn) about that. Adding pool
 is trivial. We start with pool that has zero leases in it and gradually
 start assigning leases from it. Now that you mentioned it, I just
 remembered that there is a nice feature in Dibbler about pool selection
 that we can use. See question 11.

 > There is nothing in this document about how lease selection works. From
 a requirements level, we need to say if we want there to be alternative
 algorithms for lease selection. I have a vague feeling that we do,
 although we don't in DHCP 4.x so perhaps that is not important. In any
 case, if we decide that we don't want alternative algorithms we should
 also write that down too.
 Good point. Included this in question 11.

 > We should note that although at an abstract level lease and pool
 definitions must support for a wide range of scaling, concrete
 implementations may not. For example, SQLite does not support wide
 parallelism, but is certainly appropriate for smallish servers.
 Clarified that API and concrete implementation support are not the same
 thing.

 > Maybe we also want to note support for really, really small scale sites?
 Like SOHO stuff with <10 devices?
 That's a completely different topic. Few days ago I guys from R&D office
 of Telekomunikacja Polska (largest Polish telecom). They are working on
 CPE and complained that both Dibbler and ISC DHCP are way too large for
 their need, so they picked WIDE implementation. We started talking with
 Stephen what could be done to make Kea really small. One of the options
 would be to implement kind of b10-dhcp4-mini and b10-dhcp6-mini that would
 be stand-alone and not use most of the B10 stuff. It would basically be
 wrappers around libdhcp++. We could also rip features unnecessary in CPE
 environment, like DNS Update (somewhat debatable, but would save quite a
 bit of space), failover, confirm support etc.

 > Finally, I think it might make sense to separate out the requirements
 into:
 >
 >   1. General
 >   1. DHCP
 >   1. DHCPv6
 Requirements for v4 and v6 are really very similar. I proposed a slightly
 different split. See if you like it. If not, please propose a better one.

 > Because it's a bit confusing having them all combined.
 Agree.

 > Now I can look at the other comments and see how much overlap there is.
 :)
 No need to do that. I already did that.

-- 
Ticket URL: <http://bind10.isc.org/ticket/1634#comment:12>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list