As Samba use grows, so does the use of Samba at large organizations. Recent performance work has taken Samba from a scale at around 10,000 - 20,000 objects to happily operating at the 100,000 object scale.
Samba 4.5 and 4.6 brings significant improvement in our scale, to around 30,000 users, and this talk will look at how we got there, share some war stories along the way, and what have done for Samba 4.7, where we expect to be at the 100,000 size and beyond.
We will look at what worked, but also the 'obvious' things that should have helped, but actually didn't.
For example, while many suggested replacing our database layer, one quite ambitious project (the OpenLDAP backend) never got beyond prototypes, and another (using LMDB) showed little advantage until the major overriding issues were first addressed.
We will take a look at the tools we found most helpful - linux perf and the FlameGraphs project in particular, and the issues they illuminated. For example, we found that no matter how much we might hope, using unlikely() still doesn't mean the branch is free!
The talk will advocate for incremental, rather than fundmental rewrites of badly performing code, celebrate the victories so