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 standalonelloadd
daemon, some advanced functionality is disabled in this mode -
--enable-balancer=mod
buildslloadd
as a loadable module, allowing for runtime configuration andcn=monitor
integration
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/lloadd
that 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.c
andconfig.c
(taking stuff fromconfig.c
andbconfig.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
lloadd
andlloadd.so
at 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