325 karma · joined October 19, 2021
This code also looks generally fixed in Lua5.4, https://github.com/lua/lua/blame/9ea06e61f20ae34974226074fc6.... Valkey and Redis really need to move to Lua that isn't so old.
It struggles a bit on certain types of workloads like hot keys, think heavy hitting a single sorted set. It's a cool architecture.
I'm not defending it, I'm trying to fix it. I want Amazon to contribute back. That's what I spend most of my time doing, but I can't just sit in a meeting and tell people we should give away code. It takes time to convince people that we should collaborate on the core and just compete on what we want to differentiate on. It takes time to convince people that building open-source in a vendor neutral space makes software that is better for everyone.
I hope that makes sense.
"They made certain improvements later", should be "we threw away the old implementation and built a better one."
[1] https://valkey.io/blog/unlock-one-million-rps-part2/ [2] https://valkey.io/blog/new-hash-table/
I worked with antirez a bit before he left the project in 2020, and I still look fondly back on that time since he was a wonderful person and he helped me learn a lot. I wish he had considered coming to work with Valkey instead of Redis, but maybe we'll find some some way to work together that benefits both communities.
https://cloud.google.com/blog/products/databases/announcing-... https://upcloud.com/blog/now-supporting-valkey https://aiven.io/blog/introducing-aiven-for-valkey https://www.instaclustr.com/blog/valkey-now-available/ https://elest.io/open-source/valkey
Hell, you might even be able to use a concurrent hash map implementation and show multi-threaded performance much better than Redis :).
The company now known as Redis didn't acquire the redis trademark until 2018, and didn't change their name to include redis until after that. That is probably the better timeframe to think about.
* AWS says they are moving: https://aws.amazon.com/blogs/opensource/why-aws-supports-val...
* Aiven added Valkey: https://aiven.io/blog/introducing-aiven-for-valkey
* Instaclustr mentioned moving: https://www.instaclustr.com/blog/redis-to-valkey/
* Oracle indicated support: https://blogs.oracle.com/cloud-infrastructure/post/oracle-su...
Azure is the main one sticking with Redis: https://azure.microsoft.com/de-de/blog/redis-license-update-...
I might edit this if I remember some more.
There shouldn't be any caveats of replacing Redis 7.2 and early to Valkey 8.0. I've talked with a few folks who have migrated and none so far have hit any issues, one even migrated from Redis 2.6.
One of the strategies that is being used in the multi-threading is using CPU memory prefetching to pull memory closing to the CPU so that we aren't stalling on fetching data from main memory while executing commands. We still want to try to apply these techniques without multi-threading to improve the efficiency of single or double core installations.
* A new I/O threading architecture that allows dynamically adding and removing threads and increasing the max throughput by almost 3x in some cases. * A new hash table layout for cluster mode that reduces per-key overhead ~15%. * Intelligently embedding keys into the main hash table to further reduce overhead ~8% and improve memory locality: * Share slot-migration state with replicas to make clusters more stable during failure modes. * Send the full-sync over a dedicated channel to improve bootstrapping new nodes into a cluster (up to 50% faster and with less copy on write). * New opt-in cluster metrics to identify hot slots in cluster mode. This should make it easy to plan rebalancing operations.