3 ms·
Mostly "made in Rust", but from the github readme[0] "MeiliSearch uses LMDB as the internal key-value store. The key-value store allows us to handle updates and
by beagle3 7y ago
Mostly "made in Rust", but from the github readme[0] "MeiliSearch uses LMDB as the internal key-value store. The key-value store allows us to handle updates and queries with small memory and CPU overheads."; so a lot of the credit goes to LMDB, and safety implied by "made in Rust" is not, in fact, guaranteed.
Not that I'm complaining - I love LMDB, and it's been rock solid and bug free in my experience (thanks, Howard!) - but it's low level C, not rust, and if you expect the certainty that Rust provides w.r.t to security, race conditions and leaks, be aware that you are not completely getting it.
But other than that: Thanks! This looks like a great project!
[0] https://github.com/meilisearch/MeiliSearch#how-it-works https://github.com/meilisearch/MeiliSearch#how-it-works
- burntsushi 7y agoTrue, but there are significant components in pure Rust, such as `fst` (full disclaimer, I wrote it). Which is written in purely safe Rust. > and safety implied by "made in Rust" is not, in fact, guaranteed Just about every Rust program depends on some C code, usually at least in the form of a libc. So you could lodge this criticism against almost every Rust project. > and if you expect the certainty that Rust provides w.r.t to security, race conditions and leaks Rust's safety story covers neither race conditions nor leaks.
- comex 7y ago> Rust's safety story covers neither race conditions nor leaks. It covers a type of race condition, namely unsynchronized concurrent access to memory.
- burntsushi 7y agoData races and race conditions are orthogonal, according to some: https://blog.regehr.org/archives/490 https://blog.regehr.org/archives/490 I think you've disagreed with this in the past, and I don't know how to resolve that. But certainly, I think we can agree that saying that Rust's safety story prevents race conditions is, at minimum, very imprecise.
- comex 7y agoOops, I wasn't trying to reopen an argument. I didn't recall us having discussed it before (still don't, but I forget things easily). And yeah, I'd agree with your last sentence.
- burntsushi 7y agoAh yeah, it could have been someone else... Not sure. It was a while ago. Anyway, I don't personally have a strong opinion here on definitions here. (I'm not qualified to.)
- hyc_symas 7y ago(I find this whole post ironic. We made LMDB as a standalone library so other projects could use it, of course. But for applications like this - scalable, fulltext search, nothing comes anywhere close to OpenLDAP. Somebody else in this thread mentioned "triple-digit queries per second" as if that was a difficult achievement. OpenLDAP handles queries with complex filters at millions of queries per second. It also has a complete security model, providing fine grained access control, something none of these newer projects have even begun to think about. You guys all need to study existing tech better before starting to write your own solutions...)
- pixiemaster 7y ago> You guys all need to study existing tech better before starting to write your own solutions that would be a first