summaryrefslogtreecommitdiffstats
path: root/src/lib/database/database.dox
blob: 6612d6d21b3f2793627f1cd2cceeab3c8e15163d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Copyright (C) 2020-2022 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.

/**
 @page libdatabase libkea-database - Kea Database Library

@section databaseMTConsiderations Multi-Threading Consideration for Database

MySQL and PostgreSQL provide connection pools which are used to make
lease, host and legal 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.

*/