OpenDJ vs OpenLDAP - OpenIdentityPlatform/OpenDJ GitHub Wiki

๐Ÿ”ฌ Benchmark: OpenLDAP vs OpenDJ

Reference links:

[!NOTE] you need to be signed in to GitHub

Versions

Server Version Image
OpenLDAP @(#) $OpenLDAP: slapd 2.6.10+dfsg-1 (May 29 2025 23:41:48) $ vegardit/openldap:latest
OpenDJ 5.1.2.0802aa4081e1c175c40bde1af59439a20fcc5670 openidentityplatform/opendj:latest

Totals (all operations, ADMIN_CONNECT excluded by the plan label)

Server Throughput (tests/s) Mean (ms) Samples Errors
OpenLDAP 1183.2 168.7 354870 0
OpenDJ 3124.3 63.7 940370 0

Per-operation latency

Operation mean ms OpenLDAP mean ms OpenDJ p99 ms OpenLDAP p99 ms OpenDJ err OpenLDAP err OpenDJ
ADD 52 62.6 350 132 0 0
SEARCH 20.5 55.4 259 123 0 0
COMPARE 12.1 53.8 105 121 0 0
MODIFY 33.2 54.5 129 122 0 0
BIND 973.6 86.1 1144 219 0 0
DELETE 37.9 65.9 254 141 0 0
READD 51.1 67.7 353 138 0 0

Total throughput (tests/s, higher is better)

Per-operation throughput is not charted: every op runs once per loop iteration, so each op's throughput just equals the loop rate. The meaningful throughput is the aggregate.

Total throughput (tests/s)

p99 latency per operation (ms, lower is better)

๐ŸŸฆ OpenLDAP ยท ๐ŸŸง OpenDJ โ€” grouped bars per operation.

p99 latency per operation (ms)

Notes

  • BIND is the measured user authentication (test=sbind, single bind/unbind on its own connection) as mail=u_<n>,ou=People with the password set by MODIFY. The admin connection bind (ADMIN_CONNECT) is cached once per thread and excluded from these results.
  • MODIFY sends the password in cleartext; each server hashes it on write with the same scheme ({SSHA}, Salted SHA-1) โ€” OpenLDAP via the ppolicy hash-cleartext overlay, OpenDJ via its Salted SHA-1 default scheme โ€” so BIND authentication is compared on equal footing.
  • Full interactive JMeter HTML dashboards are attached as the jmeter-reports artifact.