September 19th, 2024

Show HN: EloqKV – Scalable distributed ACID key-value database with Redis API

EloqData has launched EloqKV, a high-performance, ACID-compliant distributed key-value database compatible with Redis API, allowing flexible deployment, independent resource scaling, and supporting Apache Cassandra and RocksDB for storage.

Read original articleLink Icon
Show HN: EloqKV – Scalable distributed ACID key-value database with Redis API

EloqData has announced the public preview of EloqKV, a new high-performance, ACID-compliant, distributed key-value database that is compatible with the Redis API. Built on the innovative Data Substrate technology, EloqKV aims to provide exceptional performance, handling millions of operations per second with sub-millisecond latencies. Unlike traditional key-value stores that require all data to be in memory, EloqKV allows users to enable or disable ACID transactions as needed, minimizing costs and overhead. The database is designed for scalability, allowing independent scaling of resources such as memory, CPU, and storage. It can be deployed in various configurations, functioning as an in-memory cache, an in-memory database with durability, or a larger-than-memory database. EloqKV supports two persistent storage options: Apache Cassandra and RocksDB, enhancing its flexibility and availability. The architecture is user-friendly, enabling easy deployment as a single-node or distributed system without complex configurations. EloqKV's performance optimizations aim to deliver best-in-class results, and the company encourages users to test it with their workloads. Future updates will include performance benchmarks and additional features.

- EloqKV is a new ACID-compliant, distributed key-value database compatible with Redis API.

- It allows users to enable or disable ACID transactions to optimize performance and costs.

- The database supports independent scaling of resources and can be deployed in multiple configurations.

- It offers persistent storage options with Apache Cassandra and RocksDB for enhanced flexibility.

- EloqKV is currently in public preview, inviting users to test its performance with their workloads.

Link Icon 13 comments
By @apavlo - 7 months
> EloqKV brings significant innovations to database design

What is the novel part? I read your "Introduction to Data Substrate" blog article and the architecture you are describing sounds like NuoDB from the early 2010s. The only difference is that NuoDB scales out the in-memory cache by adding more of what they call "Transaction Engine" nodes whereas you are scaling up the "TxMap" node?

See also Viktor Leis' CIDR 2023 paper with the Great Phil Bernstein:

* https://www.cidrdb.org/cidr2023/papers/p50-ziegler.pdf

* https://youtu.be/tiMvcqIfWyA

By @fizx - 7 months
Redis's transaction api is terrible, and doesn't work across shards. Any reasonable transactions are done in Lua, and because Lua mostly works well, there's not a lot of pressure to fix transactions.

However, if you're giving redis access to different tenants, Lua is too dangerous.

I'd love to see a "real" transaction API for Redis.

By @the_precipitate - 7 months
This is really interesting! The performance looks impressive. I’ve always struggled with the Redis/MySQL two-tier architecture because they are two completely different systems. Porting an application is always tricky due to API incompatibility, and maintaining consistency between the two is a huge hassle. If there’s any issue on the cache side (like performance jitters or a few servers going down), the DBMS part can quickly get overwhelmed. This kind of cascading failure is a common problem in distributed systems. There are some great discussions on this topic over at https://danluu.com/cache-incidents/. BTW, although the formatting is a bit rough, it's a great read for anyone interested in caching. Back to the topic, I always hoped that new advancements in database systems can alleviate or eliminate this problem, your work seems to be on the right track.
By @jacobn - 7 months
Jepsen test?
By @hodr_super - 7 months
It's interesting that you have a Cassandra version. I usually think of Cassandra as a standalone database. Why would you layer one database on top of another?
By @henning - 7 months
Show us the Jepsen tests. Hire Aphyr to test your database.
By @hodr_super - 7 months
It does seem that there are a lot of activities to replace/enhance/improve Redis lately. Dragonfly, Garnet from Microsoft, and the BSD licensed Redis fork Valkey, to name just a few. Now this.
By @PeterZaitsev - 7 months
What is license ? I see Download but it is not clear if it is Open Source
By @hubertzhang - 7 months
Note that this binary release is a preview of EloqKV. We're actively developing a cloud-native version with seamless scalability and a serverless experience. Stay tuned—it's coming soon!
By @gregwebs - 7 months
Is the WAL 1:1 with a TxMap instance? Is the TxMap 1:1 with a node? For a distributed transaction with distributed storage and multiple nodes how does a transaction get coordinated?
By @AtlasBarfed - 7 months
Yet another distributed database announcement with nary a mention of CAP tradeoffs. Then again, no sales pitch starts with the limitations. Also, one man's ACID isn't another person's. At least they aren't advertising SQL joins with handwaves to the distributed complexities.

It superficially sounds like a series of server processes fronting actual database servers, which sounds like another layer of partition vulnerability and points of failure. But I also had similar high level concerns about the complexity of FoundationDB, people seem satisfied as to the validity of that architecture.

I fail to see how one would scale underlying resources if the persistence is done by various storage systems, and you'd be subject to limitations of those persistence engines. That sounds like a suspect claim, like the "Data Substrate" is a big distributed cache that scales in front of delayed persistence to an actual database. Again, sounds like oodles of opportunities for failure.

"Data substrate draws inspirations from the canonical design of single-node relational database management systems (RDBMS)." Look, I don't think a good distributed database starts from a CA system and bolts on partition tolerance. I get you can get far with big nodes, fast networks, and sharding but ... I mean, they talk about B+ trees but a foundational aspect of Cassandra and other distributed databases is that B+ trees don't scale past a certain point, because there exist trees so deep/tall that even modern hardware chokes on it, and updating the B+ tree with new data gets harder as it gets bigger.

As others have said, I'll leave it to Aphyr to possibly explain.

By @hubertzhang - 7 months
This binary release is a preview of EloqKV. We're actively developing a cloud-native version with seamless scalability and a serverless experience. Stay tuned—it's coming soon!
By @marcodiego - 7 months
License?