AllyDB - An in-memory database similar to Redis

Hey, everyone.

I am currently working on AllyDB, which is basically my own Redis, which I am writing in Elixir.

Currently, the database is nowhere close to being ready, as you can see in the roadmap, but I am doing my best to add stuff as fast as possible.

Currently the implementation is very simple, with an in memory table, an append log persistence system, as well as an interval persistence system as a backup.

The database could definitely be optimized further, especially when it comes to persistence, which I am planning to do in the future.

I’m also planning to use Rust NIFs for specific tasks for the performance gains over Elixir and BEAM.

Writes and deletes are currently asynchronous, but I will add blocking versions of them soon.

I am trying to make the system as fault tolerant as possible, and currently everything except the TCP connections are fault tolerant.

Feel free to check the project and the roadmap out, and let me know what I could improve or give feature or optimization ideas!

I would love to especially get some ideas or tips on how I can perhaps make the database more performant, by maybe changing the way I use ETS, OTP features or the way I persist data, and if you see a bad practice, feel free to let me know, because after all I am trying to learn at the same time and every bit helps.

Thanks, and have a nice one!

1 Like

will it be a drop in replacement for redis ?

1 Like

I haven’t fully decided yet, but maybe.

I would not recommend using it over Redis, though, since Redis is simply more stable and faster.