The dhcpd-j's architecture is similar to common dynamic web server. It relies on a central database holding all persistent data, and one or more front-end servers (first tier server). This is a well proven architecture principle allowing for a wide range of scalability and high-availability solutions.
This architecture is a logical view. It can be used through a wide range of configuration, from a simple stand-alone LAN server to a ISP-wide DHCP for millions of customers.
[shema]
In this example, the dhcp-server is a all-in-one Java process holding all functions at once. It is very simple to install and works out-of-the-box. The front-end and database engine run in the same Java process.
The network topology is stored in a XML file, the dhcp-leases are stored via a HSQL database.
[shema]
Here, front-ends and back-end are on separate servers. Front-ends are deployed in server farms and load-balancing is done via separate network load balancers. More than one server farms can be deployed on separate sites, as long as they have a permanent connection to the database.
The database holds the network topology and the dhcp-leases. Database engine can be Oracle (work in progress) or MySQL (work in progress). It is highly recommended to build high-availability databases through clusters.