Rocks is a fork of Level, and Level is well known for data corruption and other bugs. They are both "run at production scale", but at least back when I worked on stuff that used Level, nobody talked publicly about all the toil spent on cleaning up and repairing Level to keep the services based on it running. Whenever you see an advertisement like this (these posts are ads for the companies publishing them), they will…
How we replaced Elasticsearch and MongoDB with Rust and RocksDB
51–60 of 104 posts
Re: How we replaced Elasticsearch and MongoDB with Rust and RocksDB
#52Rocks is a fork of Level, and Level is well known for data corruption and other bugs. They are both "run at production scale", but at least back when I worked on stuff that used Level, nobody talked publicly about all the toil spent on cleaning up and repairing Level to keep the services based on it running. Whenever you see an advertisement like this (these posts are ads for the companies publishing them), they will…
Re: How we replaced Elasticsearch and MongoDB with Rust and RocksDB
#53Side note 1: ES can also be embedded in your app (on the JVM). Note 2: I actually used RocksDB to solve many use cases and it’s quite powerful and very performant. If anything from this post take this, it’s open source and a very solid building block. Note 3: I would like to test drive quickwit as an ES replacement. Haven’t got the time yet.
Re: How we replaced Elasticsearch and MongoDB with Rust and RocksDB
#54Earlier quoted context omitted.
Lots of other options here if you don't like managing. You can use Elastic cloud, Bonsai.io, and others
A lot of places can't put their data just anywhere.
Re: How we replaced Elasticsearch and MongoDB with Rust and RocksDB
#55Earlier quoted context omitted.
In my experience, the care and feeding that goes into an Elastic Search cluster feels like it's often substantially higher than that involved in the primary data store, which has always struck me as a little odd (particularly in cases where the primary data store is an RDBMS). I'd be very happy to use simpler more bulletproof solutions with a subset of ES's features for different use cases.
Check out manticoresearch - it's older than Lucene (which elasticsearch is built on), faster and simpler.
Re: How we replaced Elasticsearch and MongoDB with Rust and RocksDB
#56I'm wondering if anyone here has experience with LMDB and can comment on how they compare?
I'm looking at it next for a project which has to cache and serve relatively small static data, and write and look up millions of individual points per minute.
Re: How we replaced Elasticsearch and MongoDB with Rust and RocksDB
#57Earlier quoted context omitted.
Is it good? What's left to innovate on in this space? I don't really want experimental data stores. Give me something rock solid.
I don't disagree that rock solid is a good choice, but there is a ton of innovation necessary for data stores. Especially in the context of embedding search, which this article is also trying to do. We need database that can efficiently store/query high-dimensional embeddings, and handle the nuance of real-world applications as well such as filtered-ANN. There is a ton of innovation in this space and it's crucial to…
Re: How we replaced Elasticsearch and MongoDB with Rust and RocksDB
#58They're not open sourcing it though?
It's a bit difficult at the moment, given we have a lot of proprietary data at the moment and a lot of the logic follows it. I'm hoping we can get it to a state where it can be indexed and serving OSM data but that is going to take some time. That being said, we are currently working on getting our Google S2 Rust bindings open-sourced. This is a geo-hashing library that makes it very easy to write a reverse geocoder,…
Re: How we replaced Elasticsearch and MongoDB with Rust and RocksDB
#59Earlier quoted context omitted.
Doesn't sound like it, but it's a nice writeup of the tools they stitched together. For someone to copy and open source... hopefully :)
There are a few piece of this that rely on proprietary data, especially the FastText training step, so that's a dead-end unfortunately (would love to be proven wrong). I'd consider subbing in a small bert model with a classifier head for something FOSS without access to tons of user data, but then you lose the ability to serve high qps.