Live data from Hacker News

Kvrocks: Redis-compatible distributed key value NoSQL database

kvrocks.apache.org

11–17 of 17 posts

Re: Kvrocks: Redis-compatible distributed key value NoSQL database

#11
We use it for a year now in production and so far so good. We couldn't handle anymore having huge instances with a lot of RAM to hold data in Redis.

It looks like a normal database to me: disk storage for most of the data, and some cache in memory to speed up read queries. Everything is customizable.

I'm still waiting for a nice way to deploy it in a Kubernetes cluster, like a Helm Chart to easily setup a cluster with primaries and replicas. Also, the lack of keys eviction like LRU is problematic for us in some cases, it would be a nice addition.

Re: Kvrocks: Redis-compatible distributed key value NoSQL database

#12
post #9

I am confused. "key value NoSQL". Is it a key-value store (that is obviously not SQL), which is capable of doing some rudimentary JSON store/retrieve operations like RedisJSON? Because for me a NoSQL database is a document-based, schema-less database like MongoDB. I tried finding some examples but they don't even have an `examples` directory on GitHub. So I just assume that this is RedisJSON + per namespace passwords…

I don't think it is "focused" on the JSON part of Redis, they have added a lot of commands from Redis, not only JSON. They are also working on storing vectors too for instance.

As for the drivers compatible, if you mean "clients", in our case we use the official Python Redis client with Kvrocks and it works perfectly with the commands we use.

Re: Kvrocks: Redis-compatible distributed key value NoSQL database

#13
post #9

I am confused. "key value NoSQL". Is it a key-value store (that is obviously not SQL), which is capable of doing some rudimentary JSON store/retrieve operations like RedisJSON? Because for me a NoSQL database is a document-based, schema-less database like MongoDB. I tried finding some examples but they don't even have an `examples` directory on GitHub. So I just assume that this is RedisJSON + per namespace passwords…

So DynamoDB would not fit your definition of NoSQL? I think it would, for most people. It's just a much larger category than Mongo and things like it.

Re: Kvrocks: Redis-compatible distributed key value NoSQL database

#14

It seems to be written in C++. Did some corporation just dump this on Apache so they could write this off on their taxes? Also, RocksDB? Why? Your data is just going to go there to vanish forever, never to be seen again

> Also, RocksDB? Why? Your data is just going to go there to vanish forever, never to be seen again

If you're storing anything in Redis or a Redis-like database that you can't recover from loosing, you're using Redis wrong.

Re: Kvrocks: Redis-compatible distributed key value NoSQL database

#15

We use it for a year now in production and so far so good. We couldn't handle anymore having huge instances with a lot of RAM to hold data in Redis. It looks like a normal database to me: disk storage for most of the data, and some cache in memory to speed up read queries. Everything is customizable. I'm still waiting for a nice way to deploy it in a Kubernetes cluster, like a Helm Chart to easily setup a cluster wit…

I’ve been testing kvrocks as a replacement for a Scylla use case where we have TBs of data and uniform TTLs. In many of these LSM dbs, compaction is the thing that really kills throughput, making TTLs (or really any updates/deletes) difficult.

KVRocks doesn’t expose it directly right now so it requires code changes, but so far I have had good success with FIFO compaction. When an sstable gets old enough, it just gets dropped.

Re: Kvrocks: Redis-compatible distributed key value NoSQL database

#16
> Status Execute(engine::Context &ctx, Server srv, Connection conn, std::string *output)

curious why they did pointer in-out param instead of references here. They could also just return these values as well? in-out param style is something I'd expect in C but not in modern C++.

Re: Kvrocks: Redis-compatible distributed key value NoSQL database

#17

As this is backed by RocksDB, does that mean it’s disk-based? I’ve been looking for a way to utilize Redis but with hot (memory) and warm (nvme disk) mechanisms to boost my capacity affordably.

Yes, there are a bunch of redis+disk projects out there, one big consideration is the size of your values: some must hold all keys in memory and only offload values to disk, while others (kvrocks, other rocksdb dbs) can offload both keys and values to disk, with some other tradeoffs.
Post reply on HN