Add Performance workflow benchmarking OpenDJ vs OpenLDAP
Adds .github/workflows/performance.yml plus supporting assets under
.github/performance/ to run an automated LDAP benchmark comparing the
latest OpenDJ and OpenLDAP Docker images.
- Triggers: manual (workflow_dispatch) and after the Release workflow
(workflow_run). Image tags and load profile (threads/duration/rampup/
jmeter_version) are configurable inputs, defaulting to latest images and
the original 256-thread/600s profile.
- Benchmarks OpenLDAP (osixia/openldap) first, then OpenDJ
(openidentityplatform/opendj), sequentially so only one server is under
load at a time.
- JMeter plan (benchmark.jmx): the admin bind is cached once per thread
(Once Only Controller, labelled ADMIN_CONNECT and excluded from metrics);
ADD/SEARCH/COMPARE/MODIFY/DELETE/ADD WITHOUT DELETE run on that admin
connection; the measured BIND is a single bind/unbind (test=sbind, own
connection) as the per-thread user with the password MODIFY sets, so real
password-hash verification is exercised.
- Captures versions via shipped tools (OpenLDAP slapd -VV, OpenDJ rootDSE
fullVendorVersion) and writes versions, a per-operation comparison table
and two comparative Mermaid xychart-beta charts to GITHUB_STEP_SUMMARY;
full JMeter HTML dashboards are uploaded as the jmeter-reports artifact.