Opened 5 years ago

Last modified 4 years ago

#3492 reviewing enhancement

In-memory Database backend (contributed patch)

Reported by: tomek Owned by: contributor
Priority: medium Milestone: Outstanding Tasks
Component: database-all Version: git
Keywords: Cc:
CVSS Scoring: Parent Tickets:
Sensitive: no Defect Severity: N/A
Sub-Project: DHCP Feature Depending on Ticket:
Estimated Difficulty: 0 Add Hours to Ticket: 0
Total Hours: 0 Internal?: no


This is the second ticket for contributed patch by Shawn Lewis.


To utilize the advantages of many of the NoSQL Memory Databases, which provide the ability for storing
contextual information, High Availability failover, and a more distributed architecture, we are
implementing an additional database backend for the lease manager, which is named as “memdb”. The
new lease manager is derived from the base LeaseMgr, and will override/implement all the virtual
functions in LeaseMgr. Thus in the lib/dhcpsrv/ directory, we would introduce two new files,
memdb_lease_mgr.h(cc). Note that context-based lease allocation functions will be implemented in this
memdb_lease_mgr module. Other lease managers can also implement the context-based lease allocation
in later releases by overriding the related virtual functions.


Change History (8)

comment:1 Changed 5 years ago by tomek

  • Milestone changed from Kea-proposed to Kea1.0

As discussed on Kea meeting (2014-07-16) we not include this ticket in 0.9, due to lack of available processing time. Therefore moving to 1.0.

comment:2 Changed 5 years ago by tomek

  • Status changed from new to reviewing

There's not much code there, so the review will be very short.

I wouldn't like to add another abstraction layer on top of lease manager. I assume that this backend will use
Redis, so please name it Redis :) If we later decide to add support for any other memory storage, we'll
add yet another backend.

Your changes to look fine, but if you are going to use Redis, you must add checks that
will set up paths, something like mysql-config is called for MySQL or similar.

Make sure that the backend uses common DB backend tests as much as possible. Take a look at
src/lib/dhcpsrv/tests/ and how they are used in MySQL for example

comment:3 Changed 5 years ago by tomek

  • Version set to git

See ticket #3491 for the original patch.

comment:4 Changed 5 years ago by tomek

  • Milestone changed from Kea1.0 to Kea0.9.1

comment:5 Changed 5 years ago by tomek

  • Owner changed from UnAssigned to contributor

comment:6 Changed 5 years ago by tomek

  • Milestone changed from Kea0.9.1 to Kea0.9.2

Moving to 0.9.2 as discussed on Kea weekly call today (2014-10-08).

If we hear back from the contributor and receive updated patch, we'll move it back to 0.9.1.

comment:7 Changed 5 years ago by hschempf

  • Milestone changed from Kea0.9.2 to DHCP Outstanding Tasks

comment:8 Changed 4 years ago by tomek

  • Milestone changed from DHCP Outstanding Tasks to Outstanding Tasks

Milestone renamed

Note: See TracTickets for help on using tickets.