ITS#8747 Load balancer (lloadd)
Preview of the load balancer merge request.
Adds a new server lloadd in servers/ with slapd integration. There are two ways of building the balancer:
-
--enable-balancer(=yes)builds a standalonelloadddaemon, some advanced functionality is disabled in this mode -
--enable-balancer=modbuildslloaddas a loadable module, allowing for runtime configuration andcn=monitorintegration
TODO before removing WIP status while we can still rebase at will:
-
reformat to get a consistent starting point -
probably drop unnecessary K&R macros in servers/lloaddthat phase most tools that try to operate on source code
-
-
integrate in our CI -
adapt to latest changes landed in 2.5 since last proper rebase -
fix ITS#7926 fallout on standalone lloadd (!110 (merged)) -
reorder and cleanup config tables (and renumber OIDs to make more sense)
-
-
!54 (merged) -
!62 (merged) -
!103 (merged) -
!121 (merged) -
!125 (merged) -
!138 (merged) -
!140 (merged) -
!166 (merged) -
!175 (merged) -
!187 (merged)
-
Known issues not handled at this point:
- lloadd carries (near) copies of slapd code for
main.candconfig.c(taking stuff fromconfig.candbconfig.c), mostly to support standalone lloadd, but sometimes to deal with symbols being unavailable as they are declared static or because they would indirectly pull in the rest of slapd. This cannot be dealt with easily without invasive changes to slapd and has to remain a TODO for later - it is not possible to compile both
lloaddandlloadd.soat the same time - if compiling lloadd but not slapd, its test suite is disabled, we cannot test lloadd without an LDAP server to put behind it
This work has been sponsored by Ericsson.
Edited by Ondřej Kuzník