> On Nov 5, 2019, at 1:27 AM, Dominique Devienne <ddevie...@gmail.com> wrote: > > AFAIK, that was one of the goals of SQLite4 [1], to change the backend to LSM.
LMDB (LiteTree's back-end) doesn't use LSM; it's a B-tree manager. The speedup appears to come from a combination of techniques like eliminating caching through memory-mapping, and eliminating locking through MVCC. There's a paper describing it in somewhat more detail[1]. I know there is memory-mapping support in SQLite, but it doesn't seem to result in as much speedup, and it has some nasty data-corruption bugs on macOS (possibly iOS too?) LSM and LMDB would seem to have differing goals — LSM is best for applications with high write throughput, while LMDB is optimized more for read performance. I would guess that the latter is closer to the majority of SQLite use cases, since small/embedded systems tend to take in less data than big servers do. —Jens [1]: http://www.lmdb.tech/media/20120829-LinuxCon-MDB-txt.pdf _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users