Kea 2.7.1
libkea-database - Kea Database Library

Multi-Threading Consideration for Database

MySQL and PostgreSQL provide connection pools which are used to make lease, host, config, and forensic-log backends thread safe.

MySQL and PostgreSQL are inter-process safe only when transactions are used (including the MySQL auto-transaction mode which includes queries into a transaction). For MySQL this means that transactions must be supported by the database engine (the engine selection is done in the schema).

Note the InnoDB engine used by Kea for MySQL databases cancels a transaction when a deadlock is detected (rare but possible event) and leaves the responsibility to retry the transaction to the caller.