Kerollmops
Joined 10 years ago
Joined 10 years ago
[1]: https://pijul.org/posts/2021-02-06-rethinking-sanakirja
But now that it's LMDB 1.0, I need to find a better way to make it be the official one but I can't really rename heed3 into heed and heed into heed-0.9...
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 words.
Being able to do it in parallel is necessary, especially when you have billions of entries to operate on.
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 compaction of the database and write performances are way better after that. We never had any major DB corruption... I mean... other than when using it on Azure. Azure never works, that's expected, I suppose.
[1]: https://mastodon.social/@hyc/116838499082046918 [2]: https://bugs.openldap.org/show_bug.cgi?id=10522 [3]: https://github.com/meilisearch/meilisearch
That would also be a good fit for [the new delta-encoded posting lists I am working on](https://github.com/meilisearch/meilisearch/pull/5985). Let's see how good it can get. My early benchmarks showed a 50% reduction in disk usage.
[1]: https://github.com/meilisearch/meilisearch/issues/5504#issue...
[1]: https://github.com/meilisearch/meilisearch/releases/tag/v1.1...
While Meilisearch is capable of limiting it's resident (actual mallocs) memory. However, it requires a bare minimum (about 1GiB).
[1]: https://blog.kerollmops.com/meilisearch-vs-qdrant-tradeoffs-...
Also, every time you need to reboot the engine you would have to reindex everything from scratch. Not a good strategy, believe me.
It would be simpler to keep Meilisearch and its key-value store out of Postgres' WAL and stuff and better propose a good SQL exporter (in the plan).
I have GitHub and Twitter accounts. I let you guess my handles.