SlideShare a Scribd company logo
1 of 39
Download to read offline
What's New in OpenLDAP
Howard Chu
OpenLDAP Project
●

Open source code project

●

Founded 1998

●

Three core team members

●

A dozen or so contributors

●

Feature releases every 12-18 months

●

Maintenance releases roughly monthly
A Word About Symas
●

Founded 1999

●

Founders from Enterprise Software world
– platinum Technology (Locus Computing)
– IBM

●

Howard joined OpenLDAP in 1999
– One of the Core Team members
– Appointed Chief Architect January 2007

●

No debt, no VC investments
Intro
Howard Chu
●

●

Founder and CTO Symas Corp.
Developing Free/Open Source software since
1980s
– GNU compiler toolchain, e.g. "gmake -j", etc.
– Many other projects, check ohloh.net...

●

Worked for NASA/JPL, wrote software for
Space Shuttle, etc.

4
What's New
●

Lightning Memory-Mapped Database (LMDB)
and its knock-on effects
●

Within OpenLDAP code

●

Other projects

●

New HyperDex clustered backend

●

New Samba4/AD integration work

●

Other features

●

What's missing
LMDB
●

Introduced at LDAPCon 2011
●
●

Full ACID transactions
MVCC, readers and writers don't block each
other

●

Ultra-compact, compiles to under 32KB

●

Memory-mapped, lightning fast zero-copy reads

●

Much greater CPU and memory efficiency

●

Much simpler configuration
LMDB Impact
●

Within OpenLDAP
●

●

Revealed other frontend bottlenecks that were
hidden by BerkeleyDB-based backends
Addressed in OpenLDAP 2.5
●

●

Thread pool enhanced, support multiple work
queues to reduce mutex contention
Connection manager enhanced, simplify write
synchronization
OpenLDAP Frontend
●

Testing in 2011 (16 core server):
●

back-hdb, 62000 searches/sec, 1485 % CPU

●

back-mdb, 75000 searches/sec, 1000 % CPU

●

●

back-mdb, 2 slapds, 127000 searches/sec,
1250 % CPU - network limited

We should not have needed two processes to
hit this rate
Efficiency Note
●

back-hdb 62000 searches/sec @ 1485 %
●

●

back-mdb 127000 searches/sec @1250 %
●

●
●

41.75 searches per CPU %
101.60 searches per CPU %

2.433x as many searches per unit of CPU
"Performance" isn't the point, *Efficiency* is
what matters
OpenLDAP Frontend
●

Threadpool contention
●

Analyzed using mutrace

●

Found #1 bottleneck in threadpool mutex

●

Modified threadpool to support multiple queues

●

●
●

On quad-core laptop, using 4 queues reduced mutex
contended time by factor of 6.
Reduced condition variable contention by factor of 3.
Overall 20 % improvement in throughput on quadcore VM
OpenLDAP Frontend
●

Connection Manager
●

●

Also a single thread, accepting new connections and
polling for read/write ready on existing
Now can be split to multiple threads
●

●

Impact depends on number of connections

Polling for write is no longer handled by the listener thread
●
●
●

Removes one level of locks and indirection
Simplifies WriteTimeout implementation
Typically no benchmark impact, only significant when blocking
on writes due to slow clients
OpenLDAP Frontend
Frontend Improvements, Quadcore VM
40000

35000

30000

Ops/Second

25000

SearchRate
AuthRate
ModRate

20000

15000

10000

5000

0
OL 2.4

OL 2.5
LMDB Impact
●

Adoption by many other projects
●

Outperforms all other embedded databases in
common applications
●

●

CFengine, Postfix, PowerDNS, etc.

Has none of the reliability/integrity weaknesses
of other databases

●

Has none of the licensing issues...

●

Integrated into multiple NoSQL projects
●

Redis, SkyDB, Memcached, HyperDex, etc.
LMDB Microbenchmark
●
●

●

Comparisons based on Google's LevelDB
Also tested against Kyoto Cabinet's TreeDB,
SQLite3, and BerkeleyDB
Tested using RAM filesystem (tmpfs), reiserfs
on SSD, and multiple filesystems on HDD
– btrfs, ext2, ext3, ext4, jfs, ntfs, reiserfs, xfs, zfs
– ext3, ext4, jfs, reiserfs, xfs also tested with
external journals
LMDB Microbenchmark
Relative Footprint
text

data

bss

dec

hex

filename

272247

1456

328

274031

42e6f db_bench

1675911

2288

304

1678503

199ca7 db_bench_bdb

90423

1508

304

92235

1684b db_bench_mdb

653480

7768

1688

662936

a2764 db_bench_sqlite3

296572

4808

1096

302476

49d8c db_bench_tree_db

Clearly LMDB has the smallest footprint
– Carefully written C code beats C++ every time
LMDB Microbenchmark
Read Performance

Read Performance

Small Records

Small Records

16000000

800000

14000000

700000

12000000

600000

10000000

500000

8000000

400000

6000000

300000

4000000

200000

2000000

100000

0

0
Sequential
SQLite3

TreeDB

LevelDB

Random
BDB

MDB

SQLite3

TreeDB

LevelDB

BDB

MDB
LMDB Microbenchmark
Read Performance

Read Performance

Large Records

Large Records

35000000

2000000
30303030

30000000

1718213

1800000
1600000

25000000

1400000
1200000

20000000

1000000
15000000

800000
600000

10000000

400000
5000000
0

7402

16514

299133

200000
9133

0

7047

14518

Sequential
SQLite3

TreeDB

LevelDB

15183

8646

Random
BDB

MDB

SQLite3

TreeDB

LevelDB

BDB

MDB
LMDB Microbenchmark
Read Performance

Read Performance

Large Records

Large Records

100000000

30303030

10000000

1718213
1000000

1000000

299133

100000

100000
10000

10000000

7402

16514

10000

9133

7047

14518

15183

8646

1000

1000

100

100
10

10

1

1
Sequential
SQLite3

TreeDB

LevelDB

BDB

Random
MDB

SQLite3

TreeDB

LevelDB

BDB

MDB
LMDB Microbenchmark
Asynchronous Write Performance

Asynchronous Write Performance

Large Records, tmpfs

Large Records, tmpfs

14000

12905

14000

12000

12000

10000

10000

8000

12735

8000
5860

6000
4000
2000

5709

6000
4000

3366
2029

1920

2000

0

2004

1902
742

0
Sequential
SQLite3

TreeDB

LevelDB

Random
BDB

MDB

SQLite3

TreeDB

LevelDB

BDB

MDB
LMDB Microbenchmark
Batched Write Performance

Batched Write Performance

Large Records, tmpfs

Large Records, tmpfs

14000

13215

14000

12000

12000

10000

10000

8000

13099

8000
5860

6000
4000
2000

5709

6000
4000

3138
2068

1952

2000

0

3079
2041

1939

0
Sequential
SQLite3

TreeDB

LevelDB

Random
BDB

MDB

SQLite3

TreeDB

LevelDB

BDB

MDB
LMDB Microbenchmark
Synchronous Write Performance

Synchronous Write Performance

Large Records, tmpfs

Large Records, tmpfs

14000

12916

14000

12000

12000

10000

10000

8000

8000

6000

12665

6000

4000
2000

3121

4000

3368

2026

1913

2000

0

1996

2162

1893
745

0
Sequential
SQLite3

TreeDB

LevelDB

Random
BDB

MDB

SQLite3

TreeDB

LevelDB

BDB

MDB
MemcacheDB

Read Performance

Write Performance

Single Thread, Log Scale

Single Thread, Log Scale
1000

100

msec

1

0.1

100

min
avg
max90th
max95th
max99th
max

10
msec

min
avg
max90th
max95th
max99th
max

10

1

0.1

0.01

0.01
BDB 4.7

MDB

Memcached

BDB 4.7

MDB

Memcached
MemcacheDB

Read Performance

Write Performance

4 Threads, Log Scale

4 Threads, Log Scale

10

1000

msec

1

100

min
avg
max90th
max95th
max99th
max

10
msec

min
avg
max90th
max95th
max99th
max

1

0.1
0.1

0.01

0.01
BDB 4.7

MDB

Memcached

BDB 4.7

MDB

Memcached
HyperDex
●

New generation NoSQL database server
●

http://hyperdex.org

●

Simple configuration/deployment

●

Multidimensional indexing/sharding

●

Efficient distributed search engine

●

●

Built on Google LevelDB, evolved to their fixed
version HyperLevelDB
Ported to LMDB
LMDB, HyperDex
LMDB, HyperDex
●

CPU time used for inserts :
●
●

●

●

LMDB 19:44.52
HyperLevelDB 96:46.96

HyperLevelDB used 4.9x more CPU for same
number of operations
Again, performance isn't the point. Throwing
extra CPU at a job to "make it go faster" is
stupid.
LMDB, HyperDex
LMDB, HyperDex
●

CPU time used for read/update :
– LMDB 1:33.17
– HyperLevelDB 3:37.67

●

HyperLevelDB used 2.3x more CPU for same
number of operations
LMDB, HyperDex
LMDB, HyperDex
●

CPU time used for inserts :
●
●

●

LMDB 227:26
HyperLevelDB 3373:13

HyperLevelDB used 14.8x more CPU for
same number of operations
LMDB, HyperDex
LMDB, HyperDex
●

CPU time used for read/update :
– LMDB 4:21.41
– HyperLevelDB 17:27

●

HyperLevelDB used 4.0x more CPU for same
number of operations
back-hyperdex
●

New clustered backend built on HyperDex
●

●

Existing back-ndb clustered backend is deprecated,
Oracle has refused to cooperate on support

Nearly complete LDAP support
●
●

●

Currently has limited search filter support
Uses flat (back-bdb style) namespace, not
hierarchical
Still in prototype stage as HyperDex API is still in
flux
Samba4/AD
●

Samba4 provides its own ActiveDirectorycompatible LDAP service
●
●

●

built on Samba ldb/tdb libraries
supports AD replication

Has some problems
●
●

●

Incompatible with Samba3+OpenLDAP deployments
Originally attempted to interoperate with OpenLDAP,
but that work was abandoned
Poor performance
Samba4/AD
●

OpenLDAP interop work revived
●

two opposite approaches being pursued in
parallel
●
●

resurrect original interop code
port functionality into slapd overlays

●

currently about 75 % of the test suite passes

●

keep an eye on contrib/slapd-modules/samba4
Other Features
●

cn=config enhancements
●
●

●

Support LDAPDelete op
Support slapmodify/slapdelete offline tools

LDAP transactions
●

●

Needed for Samba4 support

Frontend/overlay restructuring
●

Rationalize Bind and ExtendedOp result handling

●

Other internal API cleanup
What's Missing
●

Deprecated BerkeleyDB-based backends
●

back-bdb was deprecated in 2.4

●

back-hdb deprecated in 2.5

●

both scheduled for deletion in 2.6

●

configure switches renamed, so existing
packager scripts can no longer enable them
without explicit action
Questions?

38
Thanks!

More Related Content

What's hot

Introduction to Node (15th May 2017)
Introduction to Node (15th May 2017)Introduction to Node (15th May 2017)
Introduction to Node (15th May 2017)Lucas Jellema
 
Securing your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server dataSecuring your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server dataColin Charles
 
How fluentd fits into the modern software landscape
How fluentd fits into the modern software landscapeHow fluentd fits into the modern software landscape
How fluentd fits into the modern software landscapePhil Wilkins
 
High Performance Object Pascal Code on Servers (at EKON 22)
High Performance Object Pascal Code on Servers (at EKON 22)High Performance Object Pascal Code on Servers (at EKON 22)
High Performance Object Pascal Code on Servers (at EKON 22)Arnaud Bouchez
 
Microservices and modularity with java
Microservices and modularity with javaMicroservices and modularity with java
Microservices and modularity with javaDPC Consulting Ltd
 
Advanced Git - Functionality and Features
Advanced Git - Functionality and FeaturesAdvanced Git - Functionality and Features
Advanced Git - Functionality and FeaturesAll Things Open
 
"[WORKSHOP] K8S for developers", Denis Romanuk
"[WORKSHOP] K8S for developers", Denis Romanuk"[WORKSHOP] K8S for developers", Denis Romanuk
"[WORKSHOP] K8S for developers", Denis RomanukFwdays
 
Ready player 2 Multiplayer Red Teaming Against macOS
Ready player 2  Multiplayer Red Teaming Against macOSReady player 2  Multiplayer Red Teaming Against macOS
Ready player 2 Multiplayer Red Teaming Against macOSCody Thomas
 
OpenDaylight OpenFlow clustering
OpenDaylight OpenFlow clusteringOpenDaylight OpenFlow clustering
OpenDaylight OpenFlow clusteringOpenDaylight
 
Directories for the REST of Us: REST to LDAP in OpenDJ 2.6
Directories for the REST of Us: REST to LDAP in OpenDJ 2.6Directories for the REST of Us: REST to LDAP in OpenDJ 2.6
Directories for the REST of Us: REST to LDAP in OpenDJ 2.6ForgeRock
 
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12cDeveloping Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12cBruno Borges
 
Series of Unfortunate Netflix Container Events - QConNYC17
Series of Unfortunate Netflix Container Events - QConNYC17Series of Unfortunate Netflix Container Events - QConNYC17
Series of Unfortunate Netflix Container Events - QConNYC17aspyker
 
Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020Michel Schildmeijer
 
Walking the Bifrost: An Operator's Guide to Heimdal & Kerberos on macOS
Walking the Bifrost: An Operator's Guide to Heimdal & Kerberos on macOSWalking the Bifrost: An Operator's Guide to Heimdal & Kerberos on macOS
Walking the Bifrost: An Operator's Guide to Heimdal & Kerberos on macOSCody Thomas
 
Bash-ing brittle indicators: Red teaming mac-os without bash or python
Bash-ing brittle indicators: Red teaming mac-os without bash or pythonBash-ing brittle indicators: Red teaming mac-os without bash or python
Bash-ing brittle indicators: Red teaming mac-os without bash or pythonCody Thomas
 
January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12Howard Greenberg
 
Lessons from database failures
Lessons from database failuresLessons from database failures
Lessons from database failuresColin Charles
 

What's hot (20)

Introduction to Node (15th May 2017)
Introduction to Node (15th May 2017)Introduction to Node (15th May 2017)
Introduction to Node (15th May 2017)
 
Securing your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server dataSecuring your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server data
 
How fluentd fits into the modern software landscape
How fluentd fits into the modern software landscapeHow fluentd fits into the modern software landscape
How fluentd fits into the modern software landscape
 
High Performance Object Pascal Code on Servers (at EKON 22)
High Performance Object Pascal Code on Servers (at EKON 22)High Performance Object Pascal Code on Servers (at EKON 22)
High Performance Object Pascal Code on Servers (at EKON 22)
 
Microservices and modularity with java
Microservices and modularity with javaMicroservices and modularity with java
Microservices and modularity with java
 
OpenCms Days 2015 OCEE explained
OpenCms Days 2015 OCEE explainedOpenCms Days 2015 OCEE explained
OpenCms Days 2015 OCEE explained
 
Advanced Git - Functionality and Features
Advanced Git - Functionality and FeaturesAdvanced Git - Functionality and Features
Advanced Git - Functionality and Features
 
"[WORKSHOP] K8S for developers", Denis Romanuk
"[WORKSHOP] K8S for developers", Denis Romanuk"[WORKSHOP] K8S for developers", Denis Romanuk
"[WORKSHOP] K8S for developers", Denis Romanuk
 
Ready player 2 Multiplayer Red Teaming Against macOS
Ready player 2  Multiplayer Red Teaming Against macOSReady player 2  Multiplayer Red Teaming Against macOS
Ready player 2 Multiplayer Red Teaming Against macOS
 
OpenDaylight OpenFlow clustering
OpenDaylight OpenFlow clusteringOpenDaylight OpenFlow clustering
OpenDaylight OpenFlow clustering
 
Directories for the REST of Us: REST to LDAP in OpenDJ 2.6
Directories for the REST of Us: REST to LDAP in OpenDJ 2.6Directories for the REST of Us: REST to LDAP in OpenDJ 2.6
Directories for the REST of Us: REST to LDAP in OpenDJ 2.6
 
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12cDeveloping Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
 
Super Size Your Search
Super Size Your SearchSuper Size Your Search
Super Size Your Search
 
Series of Unfortunate Netflix Container Events - QConNYC17
Series of Unfortunate Netflix Container Events - QConNYC17Series of Unfortunate Netflix Container Events - QConNYC17
Series of Unfortunate Netflix Container Events - QConNYC17
 
Apache ManifoldCF
Apache ManifoldCFApache ManifoldCF
Apache ManifoldCF
 
Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020
 
Walking the Bifrost: An Operator's Guide to Heimdal & Kerberos on macOS
Walking the Bifrost: An Operator's Guide to Heimdal & Kerberos on macOSWalking the Bifrost: An Operator's Guide to Heimdal & Kerberos on macOS
Walking the Bifrost: An Operator's Guide to Heimdal & Kerberos on macOS
 
Bash-ing brittle indicators: Red teaming mac-os without bash or python
Bash-ing brittle indicators: Red teaming mac-os without bash or pythonBash-ing brittle indicators: Red teaming mac-os without bash or python
Bash-ing brittle indicators: Red teaming mac-os without bash or python
 
January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12
 
Lessons from database failures
Lessons from database failuresLessons from database failures
Lessons from database failures
 

Viewers also liked

A Backend to tie them all?
A Backend to tie them all?A Backend to tie them all?
A Backend to tie them all?LDAPCon
 
What makes a LDAP server running fast ? An bit of insight about the various b...
What makes a LDAP server running fast ? An bit of insight about the various b...What makes a LDAP server running fast ? An bit of insight about the various b...
What makes a LDAP server running fast ? An bit of insight about the various b...LDAPCon
 
LSC - Synchronizing identities @ Loadays 2010
 LSC - Synchronizing identities @ Loadays 2010 LSC - Synchronizing identities @ Loadays 2010
LSC - Synchronizing identities @ Loadays 2010RUDDER
 
Manage password policy in OpenLDAP
Manage password policy in OpenLDAPManage password policy in OpenLDAP
Manage password policy in OpenLDAPLDAPCon
 
Nis Vs Ldap
Nis Vs LdapNis Vs Ldap
Nis Vs LdapJuan Bau
 
Ldap Synchronization Connector @ 2011.RMLL
Ldap Synchronization Connector @ 2011.RMLLLdap Synchronization Connector @ 2011.RMLL
Ldap Synchronization Connector @ 2011.RMLLsbahloul
 
OpenLDAP configuration brought to Apache Directory Studio
OpenLDAP configuration brought to Apache Directory StudioOpenLDAP configuration brought to Apache Directory Studio
OpenLDAP configuration brought to Apache Directory StudioLDAPCon
 
Installing & Configuring OpenLDAP (Hands On Lab)
Installing & Configuring OpenLDAP (Hands On Lab)Installing & Configuring OpenLDAP (Hands On Lab)
Installing & Configuring OpenLDAP (Hands On Lab)Michael Lamont
 
RMLL 2013 - Synchronize OpenLDAP and Active Directory with LSC
RMLL 2013 - Synchronize OpenLDAP and Active Directory with LSCRMLL 2013 - Synchronize OpenLDAP and Active Directory with LSC
RMLL 2013 - Synchronize OpenLDAP and Active Directory with LSCClément OUDOT
 
Synchronize OpenLDAP with Active Directory with LSC project
Synchronize OpenLDAP with Active Directory with LSC projectSynchronize OpenLDAP with Active Directory with LSC project
Synchronize OpenLDAP with Active Directory with LSC projectClément OUDOT
 
Active Directory & LDAP Authentication Without Triggers
Active Directory & LDAP Authentication Without TriggersActive Directory & LDAP Authentication Without Triggers
Active Directory & LDAP Authentication Without TriggersPerforce
 
Benchmarks on LDAP directories
Benchmarks on LDAP directoriesBenchmarks on LDAP directories
Benchmarks on LDAP directoriesLDAPCon
 
RMLL 2014 - OpenLDAP - Manage password policy
RMLL 2014 - OpenLDAP - Manage password policyRMLL 2014 - OpenLDAP - Manage password policy
RMLL 2014 - OpenLDAP - Manage password policyClément OUDOT
 
Synchronize AD and OpenLDAP with LSC
Synchronize AD and OpenLDAP with LSCSynchronize AD and OpenLDAP with LSC
Synchronize AD and OpenLDAP with LSCLDAPCon
 
Open LDAP vs. Active Directory
Open LDAP vs. Active DirectoryOpen LDAP vs. Active Directory
Open LDAP vs. Active DirectoryAhmad Haghighi
 
System Engineer: OpenLDAP and Samba Server
System Engineer: OpenLDAP and Samba ServerSystem Engineer: OpenLDAP and Samba Server
System Engineer: OpenLDAP and Samba ServerTola LENG
 
Ldap system administration
Ldap system administrationLdap system administration
Ldap system administrationAli Abdo
 

Viewers also liked (20)

A Backend to tie them all?
A Backend to tie them all?A Backend to tie them all?
A Backend to tie them all?
 
What makes a LDAP server running fast ? An bit of insight about the various b...
What makes a LDAP server running fast ? An bit of insight about the various b...What makes a LDAP server running fast ? An bit of insight about the various b...
What makes a LDAP server running fast ? An bit of insight about the various b...
 
LSC - Synchronizing identities @ Loadays 2010
 LSC - Synchronizing identities @ Loadays 2010 LSC - Synchronizing identities @ Loadays 2010
LSC - Synchronizing identities @ Loadays 2010
 
Manage password policy in OpenLDAP
Manage password policy in OpenLDAPManage password policy in OpenLDAP
Manage password policy in OpenLDAP
 
Nis Vs Ldap
Nis Vs LdapNis Vs Ldap
Nis Vs Ldap
 
Ldap Synchronization Connector @ 2011.RMLL
Ldap Synchronization Connector @ 2011.RMLLLdap Synchronization Connector @ 2011.RMLL
Ldap Synchronization Connector @ 2011.RMLL
 
IAO’s importance on sound student services in educational institutions
IAO’s importance on sound student services in educational institutionsIAO’s importance on sound student services in educational institutions
IAO’s importance on sound student services in educational institutions
 
OpenLDAP configuration brought to Apache Directory Studio
OpenLDAP configuration brought to Apache Directory StudioOpenLDAP configuration brought to Apache Directory Studio
OpenLDAP configuration brought to Apache Directory Studio
 
Installing & Configuring OpenLDAP (Hands On Lab)
Installing & Configuring OpenLDAP (Hands On Lab)Installing & Configuring OpenLDAP (Hands On Lab)
Installing & Configuring OpenLDAP (Hands On Lab)
 
RMLL 2013 - Synchronize OpenLDAP and Active Directory with LSC
RMLL 2013 - Synchronize OpenLDAP and Active Directory with LSCRMLL 2013 - Synchronize OpenLDAP and Active Directory with LSC
RMLL 2013 - Synchronize OpenLDAP and Active Directory with LSC
 
Synchronize OpenLDAP with Active Directory with LSC project
Synchronize OpenLDAP with Active Directory with LSC projectSynchronize OpenLDAP with Active Directory with LSC project
Synchronize OpenLDAP with Active Directory with LSC project
 
Active Directory & LDAP Authentication Without Triggers
Active Directory & LDAP Authentication Without TriggersActive Directory & LDAP Authentication Without Triggers
Active Directory & LDAP Authentication Without Triggers
 
Rhel6
Rhel6Rhel6
Rhel6
 
Benchmarks on LDAP directories
Benchmarks on LDAP directoriesBenchmarks on LDAP directories
Benchmarks on LDAP directories
 
RMLL 2014 - OpenLDAP - Manage password policy
RMLL 2014 - OpenLDAP - Manage password policyRMLL 2014 - OpenLDAP - Manage password policy
RMLL 2014 - OpenLDAP - Manage password policy
 
Synchronize AD and OpenLDAP with LSC
Synchronize AD and OpenLDAP with LSCSynchronize AD and OpenLDAP with LSC
Synchronize AD and OpenLDAP with LSC
 
Open LDAP vs. Active Directory
Open LDAP vs. Active DirectoryOpen LDAP vs. Active Directory
Open LDAP vs. Active Directory
 
AD & LDAP
AD & LDAPAD & LDAP
AD & LDAP
 
System Engineer: OpenLDAP and Samba Server
System Engineer: OpenLDAP and Samba ServerSystem Engineer: OpenLDAP and Samba Server
System Engineer: OpenLDAP and Samba Server
 
Ldap system administration
Ldap system administrationLdap system administration
Ldap system administration
 

Similar to What's New in OpenLDAP

What's in the Box?: An Intro to HFM System Utilities
What's in the Box?: An Intro to HFM System Utilities What's in the Box?: An Intro to HFM System Utilities
What's in the Box?: An Intro to HFM System Utilities Alithya
 
Blackray @ SAPO CodeBits 2009
Blackray @ SAPO CodeBits 2009Blackray @ SAPO CodeBits 2009
Blackray @ SAPO CodeBits 2009fschupp
 
Lua as a business logic language in high load application
Lua as a business logic language in high load applicationLua as a business logic language in high load application
Lua as a business logic language in high load applicationIlya Martynov
 
Apache Spark Performance Observations
Apache Spark Performance ObservationsApache Spark Performance Observations
Apache Spark Performance ObservationsAdam Roberts
 
BlackRay - The open Source Data Engine
BlackRay - The open Source Data EngineBlackRay - The open Source Data Engine
BlackRay - The open Source Data Enginefschupp
 
IBM Runtimes Performance Observations with Apache Spark
IBM Runtimes Performance Observations with Apache SparkIBM Runtimes Performance Observations with Apache Spark
IBM Runtimes Performance Observations with Apache SparkAdamRobertsIBM
 
Introduction to Apache Spark
Introduction to Apache SparkIntroduction to Apache Spark
Introduction to Apache Sparkdatamantra
 
Devoxx : being productive with JHipster
Devoxx : being productive with JHipsterDevoxx : being productive with JHipster
Devoxx : being productive with JHipsterJulien Dubois
 
MariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introductionMariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introductionMariaDB plc
 
Scaling up and accelerating Drupal 8 with NoSQL
Scaling up and accelerating Drupal 8 with NoSQLScaling up and accelerating Drupal 8 with NoSQL
Scaling up and accelerating Drupal 8 with NoSQLOSInet
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...OW2
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDoku
 
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...Linaro
 
LCE13: Test and Validation Summit: The future of testing at Linaro
LCE13: Test and Validation Summit: The future of testing at LinaroLCE13: Test and Validation Summit: The future of testing at Linaro
LCE13: Test and Validation Summit: The future of testing at LinaroLinaro
 
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese..."Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...Edge AI and Vision Alliance
 

Similar to What's New in OpenLDAP (20)

What's in the Box?: An Intro to HFM System Utilities
What's in the Box?: An Intro to HFM System Utilities What's in the Box?: An Intro to HFM System Utilities
What's in the Box?: An Intro to HFM System Utilities
 
Blackray @ SAPO CodeBits 2009
Blackray @ SAPO CodeBits 2009Blackray @ SAPO CodeBits 2009
Blackray @ SAPO CodeBits 2009
 
Lua as a business logic language in high load application
Lua as a business logic language in high load applicationLua as a business logic language in high load application
Lua as a business logic language in high load application
 
Apache Spark Performance Observations
Apache Spark Performance ObservationsApache Spark Performance Observations
Apache Spark Performance Observations
 
BlackRay - The open Source Data Engine
BlackRay - The open Source Data EngineBlackRay - The open Source Data Engine
BlackRay - The open Source Data Engine
 
IBM Runtimes Performance Observations with Apache Spark
IBM Runtimes Performance Observations with Apache SparkIBM Runtimes Performance Observations with Apache Spark
IBM Runtimes Performance Observations with Apache Spark
 
Introduction to Apache Spark
Introduction to Apache SparkIntroduction to Apache Spark
Introduction to Apache Spark
 
Devoxx : being productive with JHipster
Devoxx : being productive with JHipsterDevoxx : being productive with JHipster
Devoxx : being productive with JHipster
 
MariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introductionMariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introduction
 
Scaling up and accelerating Drupal 8 with NoSQL
Scaling up and accelerating Drupal 8 with NoSQLScaling up and accelerating Drupal 8 with NoSQL
Scaling up and accelerating Drupal 8 with NoSQL
 
2014 hadoop wrocław jug
2014 hadoop   wrocław jug2014 hadoop   wrocław jug
2014 hadoop wrocław jug
 
Embedded Linux on ARM
Embedded Linux on ARMEmbedded Linux on ARM
Embedded Linux on ARM
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winner
 
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
 
LCE13: Test and Validation Summit: The future of testing at Linaro
LCE13: Test and Validation Summit: The future of testing at LinaroLCE13: Test and Validation Summit: The future of testing at Linaro
LCE13: Test and Validation Summit: The future of testing at Linaro
 
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese..."Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
 
Nodejs
NodejsNodejs
Nodejs
 
Go at uber
Go at uberGo at uber
Go at uber
 
DPDK In Depth
DPDK In DepthDPDK In Depth
DPDK In Depth
 

More from LDAPCon

Building Open Source Identity Management with FreeIPA
Building Open Source Identity Management with FreeIPABuilding Open Source Identity Management with FreeIPA
Building Open Source Identity Management with FreeIPALDAPCon
 
Build your LDAP Web Interface with LinID Directory Manager
Build your LDAP Web Interface with LinID Directory ManagerBuild your LDAP Web Interface with LinID Directory Manager
Build your LDAP Web Interface with LinID Directory ManagerLDAPCon
 
Do The Right Thing! How LDAP servers should help LDAP clients
Do The Right Thing! How LDAP servers should help LDAP clientsDo The Right Thing! How LDAP servers should help LDAP clients
Do The Right Thing! How LDAP servers should help LDAP clientsLDAPCon
 
Distributed Virtual Transaction Directory Server
Distributed Virtual Transaction Directory ServerDistributed Virtual Transaction Directory Server
Distributed Virtual Transaction Directory ServerLDAPCon
 
Making Research "Social" using LDAP
Making Research "Social" using LDAPMaking Research "Social" using LDAP
Making Research "Social" using LDAPLDAPCon
 
Bridging the gap: Adding missing client (security) features using OpenLDAP pr...
Bridging the gap: Adding missing client (security) features using OpenLDAP pr...Bridging the gap: Adding missing client (security) features using OpenLDAP pr...
Bridging the gap: Adding missing client (security) features using OpenLDAP pr...LDAPCon
 
Fortress Open Source IAM on LDAPv3
Fortress Open Source IAM on LDAPv3Fortress Open Source IAM on LDAPv3
Fortress Open Source IAM on LDAPv3LDAPCon
 
eSCIMo - User Provisioning over Web
eSCIMo - User Provisioning over WebeSCIMo - User Provisioning over Web
eSCIMo - User Provisioning over WebLDAPCon
 
How AD has been re-engineered to extend to the cloud
How AD has been re-engineered to extend to the cloudHow AD has been re-engineered to extend to the cloud
How AD has been re-engineered to extend to the cloudLDAPCon
 
IAM to IRM: The Shift to Identity Relationship Management
IAM to IRM: The Shift to Identity Relationship ManagementIAM to IRM: The Shift to Identity Relationship Management
IAM to IRM: The Shift to Identity Relationship ManagementLDAPCon
 

More from LDAPCon (10)

Building Open Source Identity Management with FreeIPA
Building Open Source Identity Management with FreeIPABuilding Open Source Identity Management with FreeIPA
Building Open Source Identity Management with FreeIPA
 
Build your LDAP Web Interface with LinID Directory Manager
Build your LDAP Web Interface with LinID Directory ManagerBuild your LDAP Web Interface with LinID Directory Manager
Build your LDAP Web Interface with LinID Directory Manager
 
Do The Right Thing! How LDAP servers should help LDAP clients
Do The Right Thing! How LDAP servers should help LDAP clientsDo The Right Thing! How LDAP servers should help LDAP clients
Do The Right Thing! How LDAP servers should help LDAP clients
 
Distributed Virtual Transaction Directory Server
Distributed Virtual Transaction Directory ServerDistributed Virtual Transaction Directory Server
Distributed Virtual Transaction Directory Server
 
Making Research "Social" using LDAP
Making Research "Social" using LDAPMaking Research "Social" using LDAP
Making Research "Social" using LDAP
 
Bridging the gap: Adding missing client (security) features using OpenLDAP pr...
Bridging the gap: Adding missing client (security) features using OpenLDAP pr...Bridging the gap: Adding missing client (security) features using OpenLDAP pr...
Bridging the gap: Adding missing client (security) features using OpenLDAP pr...
 
Fortress Open Source IAM on LDAPv3
Fortress Open Source IAM on LDAPv3Fortress Open Source IAM on LDAPv3
Fortress Open Source IAM on LDAPv3
 
eSCIMo - User Provisioning over Web
eSCIMo - User Provisioning over WebeSCIMo - User Provisioning over Web
eSCIMo - User Provisioning over Web
 
How AD has been re-engineered to extend to the cloud
How AD has been re-engineered to extend to the cloudHow AD has been re-engineered to extend to the cloud
How AD has been re-engineered to extend to the cloud
 
IAM to IRM: The Shift to Identity Relationship Management
IAM to IRM: The Shift to Identity Relationship ManagementIAM to IRM: The Shift to Identity Relationship Management
IAM to IRM: The Shift to Identity Relationship Management
 

Recently uploaded

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 

Recently uploaded (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

What's New in OpenLDAP

  • 1. What's New in OpenLDAP Howard Chu
  • 2. OpenLDAP Project ● Open source code project ● Founded 1998 ● Three core team members ● A dozen or so contributors ● Feature releases every 12-18 months ● Maintenance releases roughly monthly
  • 3. A Word About Symas ● Founded 1999 ● Founders from Enterprise Software world – platinum Technology (Locus Computing) – IBM ● Howard joined OpenLDAP in 1999 – One of the Core Team members – Appointed Chief Architect January 2007 ● No debt, no VC investments
  • 4. Intro Howard Chu ● ● Founder and CTO Symas Corp. Developing Free/Open Source software since 1980s – GNU compiler toolchain, e.g. "gmake -j", etc. – Many other projects, check ohloh.net... ● Worked for NASA/JPL, wrote software for Space Shuttle, etc. 4
  • 5. What's New ● Lightning Memory-Mapped Database (LMDB) and its knock-on effects ● Within OpenLDAP code ● Other projects ● New HyperDex clustered backend ● New Samba4/AD integration work ● Other features ● What's missing
  • 6. LMDB ● Introduced at LDAPCon 2011 ● ● Full ACID transactions MVCC, readers and writers don't block each other ● Ultra-compact, compiles to under 32KB ● Memory-mapped, lightning fast zero-copy reads ● Much greater CPU and memory efficiency ● Much simpler configuration
  • 7. LMDB Impact ● Within OpenLDAP ● ● Revealed other frontend bottlenecks that were hidden by BerkeleyDB-based backends Addressed in OpenLDAP 2.5 ● ● Thread pool enhanced, support multiple work queues to reduce mutex contention Connection manager enhanced, simplify write synchronization
  • 8. OpenLDAP Frontend ● Testing in 2011 (16 core server): ● back-hdb, 62000 searches/sec, 1485 % CPU ● back-mdb, 75000 searches/sec, 1000 % CPU ● ● back-mdb, 2 slapds, 127000 searches/sec, 1250 % CPU - network limited We should not have needed two processes to hit this rate
  • 9. Efficiency Note ● back-hdb 62000 searches/sec @ 1485 % ● ● back-mdb 127000 searches/sec @1250 % ● ● ● 41.75 searches per CPU % 101.60 searches per CPU % 2.433x as many searches per unit of CPU "Performance" isn't the point, *Efficiency* is what matters
  • 10. OpenLDAP Frontend ● Threadpool contention ● Analyzed using mutrace ● Found #1 bottleneck in threadpool mutex ● Modified threadpool to support multiple queues ● ● ● On quad-core laptop, using 4 queues reduced mutex contended time by factor of 6. Reduced condition variable contention by factor of 3. Overall 20 % improvement in throughput on quadcore VM
  • 11. OpenLDAP Frontend ● Connection Manager ● ● Also a single thread, accepting new connections and polling for read/write ready on existing Now can be split to multiple threads ● ● Impact depends on number of connections Polling for write is no longer handled by the listener thread ● ● ● Removes one level of locks and indirection Simplifies WriteTimeout implementation Typically no benchmark impact, only significant when blocking on writes due to slow clients
  • 12. OpenLDAP Frontend Frontend Improvements, Quadcore VM 40000 35000 30000 Ops/Second 25000 SearchRate AuthRate ModRate 20000 15000 10000 5000 0 OL 2.4 OL 2.5
  • 13. LMDB Impact ● Adoption by many other projects ● Outperforms all other embedded databases in common applications ● ● CFengine, Postfix, PowerDNS, etc. Has none of the reliability/integrity weaknesses of other databases ● Has none of the licensing issues... ● Integrated into multiple NoSQL projects ● Redis, SkyDB, Memcached, HyperDex, etc.
  • 14. LMDB Microbenchmark ● ● ● Comparisons based on Google's LevelDB Also tested against Kyoto Cabinet's TreeDB, SQLite3, and BerkeleyDB Tested using RAM filesystem (tmpfs), reiserfs on SSD, and multiple filesystems on HDD – btrfs, ext2, ext3, ext4, jfs, ntfs, reiserfs, xfs, zfs – ext3, ext4, jfs, reiserfs, xfs also tested with external journals
  • 15. LMDB Microbenchmark Relative Footprint text data bss dec hex filename 272247 1456 328 274031 42e6f db_bench 1675911 2288 304 1678503 199ca7 db_bench_bdb 90423 1508 304 92235 1684b db_bench_mdb 653480 7768 1688 662936 a2764 db_bench_sqlite3 296572 4808 1096 302476 49d8c db_bench_tree_db Clearly LMDB has the smallest footprint – Carefully written C code beats C++ every time
  • 16. LMDB Microbenchmark Read Performance Read Performance Small Records Small Records 16000000 800000 14000000 700000 12000000 600000 10000000 500000 8000000 400000 6000000 300000 4000000 200000 2000000 100000 0 0 Sequential SQLite3 TreeDB LevelDB Random BDB MDB SQLite3 TreeDB LevelDB BDB MDB
  • 17. LMDB Microbenchmark Read Performance Read Performance Large Records Large Records 35000000 2000000 30303030 30000000 1718213 1800000 1600000 25000000 1400000 1200000 20000000 1000000 15000000 800000 600000 10000000 400000 5000000 0 7402 16514 299133 200000 9133 0 7047 14518 Sequential SQLite3 TreeDB LevelDB 15183 8646 Random BDB MDB SQLite3 TreeDB LevelDB BDB MDB
  • 18. LMDB Microbenchmark Read Performance Read Performance Large Records Large Records 100000000 30303030 10000000 1718213 1000000 1000000 299133 100000 100000 10000 10000000 7402 16514 10000 9133 7047 14518 15183 8646 1000 1000 100 100 10 10 1 1 Sequential SQLite3 TreeDB LevelDB BDB Random MDB SQLite3 TreeDB LevelDB BDB MDB
  • 19. LMDB Microbenchmark Asynchronous Write Performance Asynchronous Write Performance Large Records, tmpfs Large Records, tmpfs 14000 12905 14000 12000 12000 10000 10000 8000 12735 8000 5860 6000 4000 2000 5709 6000 4000 3366 2029 1920 2000 0 2004 1902 742 0 Sequential SQLite3 TreeDB LevelDB Random BDB MDB SQLite3 TreeDB LevelDB BDB MDB
  • 20. LMDB Microbenchmark Batched Write Performance Batched Write Performance Large Records, tmpfs Large Records, tmpfs 14000 13215 14000 12000 12000 10000 10000 8000 13099 8000 5860 6000 4000 2000 5709 6000 4000 3138 2068 1952 2000 0 3079 2041 1939 0 Sequential SQLite3 TreeDB LevelDB Random BDB MDB SQLite3 TreeDB LevelDB BDB MDB
  • 21. LMDB Microbenchmark Synchronous Write Performance Synchronous Write Performance Large Records, tmpfs Large Records, tmpfs 14000 12916 14000 12000 12000 10000 10000 8000 8000 6000 12665 6000 4000 2000 3121 4000 3368 2026 1913 2000 0 1996 2162 1893 745 0 Sequential SQLite3 TreeDB LevelDB Random BDB MDB SQLite3 TreeDB LevelDB BDB MDB
  • 22. MemcacheDB Read Performance Write Performance Single Thread, Log Scale Single Thread, Log Scale 1000 100 msec 1 0.1 100 min avg max90th max95th max99th max 10 msec min avg max90th max95th max99th max 10 1 0.1 0.01 0.01 BDB 4.7 MDB Memcached BDB 4.7 MDB Memcached
  • 23. MemcacheDB Read Performance Write Performance 4 Threads, Log Scale 4 Threads, Log Scale 10 1000 msec 1 100 min avg max90th max95th max99th max 10 msec min avg max90th max95th max99th max 1 0.1 0.1 0.01 0.01 BDB 4.7 MDB Memcached BDB 4.7 MDB Memcached
  • 24. HyperDex ● New generation NoSQL database server ● http://hyperdex.org ● Simple configuration/deployment ● Multidimensional indexing/sharding ● Efficient distributed search engine ● ● Built on Google LevelDB, evolved to their fixed version HyperLevelDB Ported to LMDB
  • 26. LMDB, HyperDex ● CPU time used for inserts : ● ● ● ● LMDB 19:44.52 HyperLevelDB 96:46.96 HyperLevelDB used 4.9x more CPU for same number of operations Again, performance isn't the point. Throwing extra CPU at a job to "make it go faster" is stupid.
  • 28. LMDB, HyperDex ● CPU time used for read/update : – LMDB 1:33.17 – HyperLevelDB 3:37.67 ● HyperLevelDB used 2.3x more CPU for same number of operations
  • 30. LMDB, HyperDex ● CPU time used for inserts : ● ● ● LMDB 227:26 HyperLevelDB 3373:13 HyperLevelDB used 14.8x more CPU for same number of operations
  • 32. LMDB, HyperDex ● CPU time used for read/update : – LMDB 4:21.41 – HyperLevelDB 17:27 ● HyperLevelDB used 4.0x more CPU for same number of operations
  • 33. back-hyperdex ● New clustered backend built on HyperDex ● ● Existing back-ndb clustered backend is deprecated, Oracle has refused to cooperate on support Nearly complete LDAP support ● ● ● Currently has limited search filter support Uses flat (back-bdb style) namespace, not hierarchical Still in prototype stage as HyperDex API is still in flux
  • 34. Samba4/AD ● Samba4 provides its own ActiveDirectorycompatible LDAP service ● ● ● built on Samba ldb/tdb libraries supports AD replication Has some problems ● ● ● Incompatible with Samba3+OpenLDAP deployments Originally attempted to interoperate with OpenLDAP, but that work was abandoned Poor performance
  • 35. Samba4/AD ● OpenLDAP interop work revived ● two opposite approaches being pursued in parallel ● ● resurrect original interop code port functionality into slapd overlays ● currently about 75 % of the test suite passes ● keep an eye on contrib/slapd-modules/samba4
  • 36. Other Features ● cn=config enhancements ● ● ● Support LDAPDelete op Support slapmodify/slapdelete offline tools LDAP transactions ● ● Needed for Samba4 support Frontend/overlay restructuring ● Rationalize Bind and ExtendedOp result handling ● Other internal API cleanup
  • 37. What's Missing ● Deprecated BerkeleyDB-based backends ● back-bdb was deprecated in 2.4 ● back-hdb deprecated in 2.5 ● both scheduled for deletion in 2.6 ● configure switches renamed, so existing packager scripts can no longer enable them without explicit action