This is really inspiring. Reminds me of the quote "A complex system that works is invariably found to have evolved from a simple system that worked."<p>The interesting question of course is how to evolve a simple system into a successful complex system. One thing that seems important is nailing the right architecture early on - the simple system must contain all the right ideas in it and it is important to weed out bad ideas before they are entrenched in the code base. Still, planning the long-term evolution of a software system remains an arcane art to me. "Listen to your users and do what is necessary at the moment" is too simplistic.
This naming is so confusing.<p>For those not aware, LMDB is the memory mapped database that's powering OpenLDAP. <a href="https://symas.com/lightning-memory-mapped-database/" rel="nofollow">https://symas.com/lightning-memory-mapped-database/</a>
As someone who worked for a company for a few years on a vast Tcl codebase, a company in which almost every engineer lamented the fact that they were working in an unused and unknown language, it warms my heart to see that it was used for this.
antirez mentions that this forks to save, but I'm not seeing that. The backgroundsave procedure makes a copy of db to dbcopy, but then never saves dbcopy. I wonder how much further the TCL implementation was extended before antirez switched to C.<p>BTW, I hadn't heard of LLOOGG (the L in LMDB) before. It was this:<p>"LLOGG was web service I (Salvatore Sanfilippo) and my co-founder Fabio Pitrola ran for seven years for free."<p><a href="https://github.com/antirez/lloogg/blob/master/README.md" rel="nofollow">https://github.com/antirez/lloogg/blob/master/README.md</a>
If you enjoyed reading this, you might enjoy reading git's first self-hosted commit: <a href="https://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23ca2e25604af290" rel="nofollow">https://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23...</a>