{"slug": "lmdb", "name": "LMDB", "category": "databases", "category_name": "Databases", "description": "", "recommenders": 3, "commenters": 5, "warners": 1, "score": 2.034, "rising": -0.98, "first": "2026-05-28", "latest": "2026-07-03", "why": "It has worked well for me as a way to read mutable (by any client) parameters during synthesis", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 0, "compare": 1, "warn": 1}, "spark": [0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "It has worked well for me as a way to read mutable (by any client) parameters during synthesis", "icon": true, "domain": "lmdb.tech", "github_repo": null, "official_url": "http://www.lmdb.tech/doc/", "pricing": "", "aliases": ["LMDB"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 780366657, "item_id": 48772916, "url": "https://news.ycombinator.com/item?id=48772916", "by": "Kerollmops", "date": "2026-07-03", "stance": "recommend", "quote": "I also added support for parallel read your own writes", "excerpt": "Yeah, and I also added support for parallel read your own writes where you can write tons of entries and spawn multi children read-only transactions from your writes where transaction and read from them in parallel. We use this in Meilisearch [1] to post-process cache for our most common prefixes i.e., \"w\" will match \"work\", \"word\"... and computing this requires doing large unions of the documents matching those word", "context": "Meilisearch developer", "use_case": "storage engine for search", "switched_from": "", "story": "Lightning Memory-Mapped Database Manager (LMDB) 1.0"}, {"id": 780365984, "item_id": 48772874, "url": "https://news.ycombinator.com/item?id=48772874", "by": "Kerollmops", "date": "2026-07-03", "stance": "recommend", "quote": "I love LMDB, we use it in Meilisearch", "excerpt": "I recently talked to Howard [1] about lies he was saying about Sanakirja, an LMDB-inspired disk allocator. That's always the same arguments: C is better than Rust for X, Y or Z reasons. While I reported a segfault just two weeks earlier... [2]. I love LMDB, we use it in Meilisearch (second most stared search engine on GitHub) [3] for about 7 years now. The main issues were related to write speed but we do a compactio", "context": "uses LMDB in Meilisearch for about 7 years", "use_case": "storage engine for search", "switched_from": "", "story": "Lightning Memory-Mapped Database Manager (LMDB) 1.0"}, {"id": 780296288, "item_id": 48768518, "url": "https://news.ycombinator.com/item?id=48768518", "by": "erikschoster", "date": "2026-07-02", "stance": "recommend", "quote": "It has worked well for me as a way to read mutable (by any client) parameters during synthesis", "excerpt": "I use it as a session store for a computer music system. It has worked well for me as a way to read mutable (by any client) parameters during synthesis, clients will often read dozens of parameters during a block of computation (a relatively short window of time in the low milliseconds typically) without adding any noticeable overhead to the render time for each block. Edit: I also tried using it for larger blobs of ", "context": "computer music system developer", "use_case": "session store for computer music", "switched_from": "", "story": "Lightning Memory-Mapped Database Manager (LMDB) 1.0"}, {"id": 780282080, "item_id": 48767630, "url": "https://news.ycombinator.com/item?id=48767630", "by": "ChrisTrenkamp", "date": "2026-07-02", "stance": "recommend", "quote": "As long as you stick to the safe LMDB options, which are the default options, it's reliable.", "excerpt": "I can't go into specifics, but I use LMDB for the commandline application I maintain for my employer. I also extended it into a web service for internal use. As long as you stick to the safe LMDB options, which are the default options, it's reliable. The documentation clearly outlines what safety guarantees you lose when you enable/disable certain options: http://www.lmdb.tech/doc/group__mdb.html#ga32a193c6bf4d7d5c5d", "context": "maintains a commandline application for employer", "use_case": "CLI app and internal web service storage", "switched_from": "", "story": "Lightning Memory-Mapped Database Manager (LMDB) 1.0"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 780310865, "item_id": 48769429, "url": "https://news.ycombinator.com/item?id=48769429", "by": "nomel", "date": "2026-07-02", "stance": "warn", "quote": "I think lmdb is mostly unusable, for many use cases.", "excerpt": "I think lmdb is mostly unusable, for many use cases. I switched to libmdbx, which fixes all the issues [2] I (and most sibling comments) ran into with lmdb. [1] https://github.com/Mithril-mine/libmdbx#improvements-beyond-lmdb", "context": "", "use_case": "embedded key-value database", "switched_from": "", "story": "Lightning Memory-Mapped Database Manager (LMDB) 1.0"}]}], "who": [{"by": "Kerollmops", "context": "Meilisearch developer", "url": "https://news.ycombinator.com/item?id=48772916", "date": "2026-07-03"}, {"by": "erikschoster", "context": "computer music system developer", "url": "https://news.ycombinator.com/item?id=48768518", "date": "2026-07-02"}, {"by": "ChrisTrenkamp", "context": "maintains a commandline application for employer", "url": "https://news.ycombinator.com/item?id=48767630", "date": "2026-07-02"}], "tags": [], "use_cases": ["storage engine for search", "embedded key-value database", "session store for computer music", "cli app and internal web service storage", "key/value storage"], "compared": [{"slug": "meilisearch", "name": "Meilisearch", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=48766598", "title": "Lightning Memory-Mapped Database Manager (LMDB) 1.0", "mentions": 5}, {"url": "https://news.ycombinator.com/item?id=48262160", "title": "The Green Side of the Lua", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {}, "2026-02": {}, "2026-03": {}, "2026-04": {}, "2026-05": {"compare": 1}, "2026-06": {}, "2026-07": {"recommend": 3, "warn": 1}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 780366657, "item_id": 48772916, "url": "https://news.ycombinator.com/item?id=48772916", "by": "Kerollmops", "date": "2026-07-03", "stance": "recommend", "quote": "I also added support for parallel read your own writes", "excerpt": "Yeah, and I also added support for parallel read your own writes where you can write tons of entries and spawn multi children read-only transactions from your writes where transaction and read from them in parallel. We use this in Meilisearch [1] to post-process cache for our most common prefixes i.e., \"w\" will match \"work\", \"word\"... and computing this requires doing large unions of the documents matching those word", "context": "Meilisearch developer", "use_case": "storage engine for search", "switched_from": "", "story": "Lightning Memory-Mapped Database Manager (LMDB) 1.0"}, {"id": 780365984, "item_id": 48772874, "url": "https://news.ycombinator.com/item?id=48772874", "by": "Kerollmops", "date": "2026-07-03", "stance": "recommend", "quote": "I love LMDB, we use it in Meilisearch", "excerpt": "I recently talked to Howard [1] about lies he was saying about Sanakirja, an LMDB-inspired disk allocator. That's always the same arguments: C is better than Rust for X, Y or Z reasons. While I reported a segfault just two weeks earlier... [2]. I love LMDB, we use it in Meilisearch (second most stared search engine on GitHub) [3] for about 7 years now. The main issues were related to write speed but we do a compactio", "context": "uses LMDB in Meilisearch for about 7 years", "use_case": "storage engine for search", "switched_from": "", "story": "Lightning Memory-Mapped Database Manager (LMDB) 1.0"}, {"id": 780310865, "item_id": 48769429, "url": "https://news.ycombinator.com/item?id=48769429", "by": "nomel", "date": "2026-07-02", "stance": "warn", "quote": "I think lmdb is mostly unusable, for many use cases.", "excerpt": "I think lmdb is mostly unusable, for many use cases. I switched to libmdbx, which fixes all the issues [2] I (and most sibling comments) ran into with lmdb. [1] https://github.com/Mithril-mine/libmdbx#improvements-beyond-lmdb", "context": "", "use_case": "embedded key-value database", "switched_from": "", "story": "Lightning Memory-Mapped Database Manager (LMDB) 1.0"}, {"id": 780296288, "item_id": 48768518, "url": "https://news.ycombinator.com/item?id=48768518", "by": "erikschoster", "date": "2026-07-02", "stance": "recommend", "quote": "It has worked well for me as a way to read mutable (by any client) parameters during synthesis", "excerpt": "I use it as a session store for a computer music system. It has worked well for me as a way to read mutable (by any client) parameters during synthesis, clients will often read dozens of parameters during a block of computation (a relatively short window of time in the low milliseconds typically) without adding any noticeable overhead to the render time for each block. Edit: I also tried using it for larger blobs of ", "context": "computer music system developer", "use_case": "session store for computer music", "switched_from": "", "story": "Lightning Memory-Mapped Database Manager (LMDB) 1.0"}, {"id": 780282080, "item_id": 48767630, "url": "https://news.ycombinator.com/item?id=48767630", "by": "ChrisTrenkamp", "date": "2026-07-02", "stance": "recommend", "quote": "As long as you stick to the safe LMDB options, which are the default options, it's reliable.", "excerpt": "I can't go into specifics, but I use LMDB for the commandline application I maintain for my employer. I also extended it into a web service for internal use. As long as you stick to the safe LMDB options, which are the default options, it's reliable. The documentation clearly outlines what safety guarantees you lose when you enable/disable certain options: http://www.lmdb.tech/doc/group__mdb.html#ga32a193c6bf4d7d5c5d", "context": "maintains a commandline application for employer", "use_case": "CLI app and internal web service storage", "switched_from": "", "story": "Lightning Memory-Mapped Database Manager (LMDB) 1.0"}, {"id": 772982274, "item_id": 48311392, "url": "https://news.ycombinator.com/item?id=48311392", "by": "Rochus", "date": "2026-05-28", "stance": "compare", "quote": "Depending on read/write frequency, lmdb or tidesdb might be a better fit.", "excerpt": "When you consider SQLite, you might want to get around SQL for impedance and performance reasons. There is a robust and decently fast key/value store in the backend. I used it in some of my projects (e.g. https://github.com/rochus-keller/udb used e.g. in https://github.com/rochus-keller/crossline/). Depending on read/write frequency, lmdb or tidesdb might be a better fit.", "context": "", "use_case": "key/value storage", "switched_from": "", "story": "The Green Side of the Lua"}]}