-
mini-redis
Incomplete Redis client and server implementation using Tokio - for learning purposes only
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
memKeyDB
MemKeyDB is a fork of Redis, adjusted to store objects on both Intel Optane Persistent Memory and DRAM.
-
Tendis
Tendis is a high-performance distributed storage system fully compatible with the Redis protocol.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
I went through the wiki, certainly it was interesting. I believe the implementation is at fastlock.cpp [0], I will go through it. You said earlier:
> If we spin too long the thread will sleep although we wait much longer than any other lock you’ll find.
Did you do any tweaks to mitigate this?
> Generally speaking you don't want to be dealing with this stuff unless you really have to.
Ofcourse. I am just way too curious and excited to learn about these!
[0] - https://github.com/EQ-Alpha/KeyDB/blob/v6.0.16/src/fastlock....
Tokio async runtime for Rust has a tutorial in its user guide https://tokio.rs/tokio/tutorial on writing a mini-redis (https://github.com/tokio-rs/mini-redis).
We (me and some folks at my old consultancy) wrote an Erlang version of Redis (https://github.com/cbd/edis) for some of the same reasons - multithreading changes some of the scaling semantics in interesting ways. It was mostly for fun but ended up in some real projects as a simple REDIS protocol implementation front-end where the backend could be replaced with whatever the implementor wants.
https://github.com/raitechnology/raids/.
If you go to the landing page of the above, scroll down to the bottom, there is a TCP bypass solution graphed, using Solarflare Open Onload and it is capable of running several times as fast as the Linux Kernel TCP. I didn't test Redis with Open Onload, but I'm pretty sure you'll get a similar results since TCP is a major performance bottleneck in Redis as well.
Does anyone have any experience with these other Redis clones? I need to write a benchmark on these someday (the outline for the blog post is already written), but have restricted my yak shaving recently:
- https://github.com/Tencent/Tendis
- https://github.com/Netflix/dynomite
On a separate note, is FLASH supposed to be an acronym? I can't tell if they're referring to flash storage (SSD, NVMe) or they're referring to perhaps a special algorithm that uses flash storage +/- some other features, or some altogether proprietary hardware.
Does anyone have any experience with these other Redis clones? I need to write a benchmark on these someday (the outline for the blog post is already written), but have restricted my yak shaving recently:
- https://github.com/Tencent/Tendis
- https://github.com/Netflix/dynomite
On a separate note, is FLASH supposed to be an acronym? I can't tell if they're referring to flash storage (SSD, NVMe) or they're referring to perhaps a special algorithm that uses flash storage +/- some other features, or some altogether proprietary hardware.