- Redis Inc ने source-closed (SSPL में बदलाव) के फैसले से कम्युनिटी के भरोसे को झटका दिया, लेकिन Valkey fork के आसपास developer community एकजुट हुई और तेज़ innovation व contribution जारी रहे
- Redis 8.0 फिर से open source में लौटा, और संस्थापक Antirez की वापसी के साथ नए features और optimizations पर काम हो रहा है, इसलिए दोनों पक्षों में तेज़ प्रगति दिख रही है
- नवीनतम benchmark नतीजों में, 8vCPU environment पर Valkey 8.1.1 का SET performance Redis 8.0 से 37% अधिक रहा, और p99 latency भी कम मापी गई (GET performance भी 16% आगे)
- IO threads/core pinning जैसी production tuning techniques के जरिए, Valkey ने multithreading environment में 3 गुना से अधिक throughput बढ़ोतरी और latency minimization हासिल की
- real-world usage के करीब benchmark और tuning know-how भी साझा किए गए हैं, साथ ही benchmark results की व्याख्या करते समय सावधानियां और actual production environment में लागू करने के तरीके भी बताए गए हैं
Redis source बंद होना और Valkey का आगमन
- एक साल पहले Redis Inc (पूर्व Garantia Data) ने open source license बदलाव (SSPL अपनाने) के कारण community के साथ भरोसे का रिश्ता कमजोर कर दिया
- इसके समाधान के रूप में बना open fork Valkey, distributed systems, cache, real-time data processing जैसे क्षेत्रों में व्यापक रूप से इस्तेमाल होने वाली तकनीकी संपत्ति बन गया
- Redis पक्ष ने भी बाद में Antirez (संस्थापक) की वापसी, performance/features में सुधार, और Redis 8.0 को फिर से open source बनाने जैसे कदमों से भरोसा बहाल करने की कोशिश की
Valkey 8.1 vs Redis 8.0: performance तुलना
- समान 8vCPU AWS c8g.2xl instance, 1KB item/3M keyspace/500 connections की शर्तों पर SET benchmark
- Valkey 8.1.1: 999.8K RPS(p99 0.8ms)
- Redis 8.0: 729.4K RPS(p99 0.99ms)
- SET में Valkey 37% आगे, GET में 16% आगे, और SET p99 30%, GET p99 60% तेज़
- 6 IO threads लागू करने पर, Valkey 239K → 678K RPS(2.8 गुना↑), p99 1.68ms → 0.93ms(44%↓)
- Redis में भी IO threads के साथ 235K → 563K RPS, p99 1.35ms → 0.84ms(40%↓)
multithreading/core tuning का प्रभाव
- IO threads का असर 3 या उससे अधिक threads पर स्पष्ट रूप से बढ़ता है, और Valkey में 4 threads के बाद Redis से बड़ा अंतर दिखता है
- IRQ (interrupt) cores को 2 तक सीमित करने के बाद, Redis/Valkey को बाकी 6 cores पर fix (pinning) करने से अतिरिक्त performance gain मिला
- Valkey: 832K → 999.8K RPS(core/IRQ pinning, CPU 80% उपयोग)
- IRQ और application cores को अलग करने से cache efficiency और tail latency कम होती है
- Docker में
cpuset-cpus,--io-threadsआदि के उपयोग के actual examples भी दिए गए हैं
benchmark दोहराना और practical tips
- नवीनतम AWS Graviton4(c8g.2xlarge) instance, cluster placement group का उपयोग
- core pinning/IRQ separation/connection tuning(लगभग 400~500) से अधिकतम performance हासिल
- keyspace/item size की tuning भी ज़रूरी है; छोटे values/keyspace से L3 cache hit rate बढ़ती है
- valkey-benchmark या rpc-perf (real-world usage के ज्यादा करीब Rust-आधारित tool) जैसे multithreaded benchmark tools के सक्रिय उपयोग की सिफारिश
docker run --network="host" --rm --cpuset-cpus="2-7" \ valkey/valkey:8.0.1 valkey-benchmark \ -h 172.31.4.92 -p 6379 -t SET,GET -n 100000000 -c 256 \ -r 3000000 --threads 6 -d 1024
performance measurement की सीमाएं और सावधानियां
-
benchmark results actual production environment से अलग हो सकते हैं
- actual workload में SET:GET mix, load fluctuation, TPS target, network latency जैसे कई संयुक्त कारक होते हैं
- connections अचानक बढ़ने पर queue latency, throughput में कमी, और tail latency में बढ़ोतरी भी देखी गई
- benchmark tool/options, network topology आदि के अनुसार नतीजे काफी बदल सकते हैं
प्रमुख विकास यात्रा और community प्रगति
Valkey project ने पिछले एक साल में कई पहलुओं में सक्रिय प्रगति की है
- GitHub आदि पर कई developers और कंपनियों के सहयोग से features जोड़े गए, bugs ठीक किए गए, और security improvements की गईं
- documentation और user support पर भी ध्यान देकर नए users के लिए entry barrier कम किया गया
- project संचालन में transparent decision-making और community voting जैसी प्रक्रियाओं पर ज़ोर दिया गया
industry और तकनीकी महत्व
Valkey की प्रमुख ताकतें इस प्रकार हैं
- license restrictions के बिना कोई भी इसका उपयोग कर सकता है, इसलिए यह cloud service vendors और बड़ी web service कंपनियों के लिए आकर्षक विकल्प है
- Redis के साथ उच्च compatibility होने से migration आसान है
- community-driven development होने के कारण विभिन्न जरूरतों को शामिल करना और तेज़ लगातार updates देना संभव है
निष्कर्ष और संकेत
- Valkey ने Redis fork बनने के सिर्फ एक साल में technology/performance/community तीनों मोर्चों पर Redis से आगे निकलने जैसे परिणाम दिखाए हैं
- IO threads, core/IRQ separation, connection tuning जैसी practical optimization techniques और tools इसकी कुंजी हैं
- performance अपने आप नहीं आती; system/workload/infrastructure के अनुरूप लगातार optimization ज़रूरी है
- actual service environment में सिर्फ benchmark numbers पर निर्भर न रहकर, अलग-अलग परिस्थितियों में सीधे परीक्षण करने वाला व्यावहारिक दृष्टिकोण आवश्यक है
4 टिप्पणियां
Redis ने भले ही कई गलत फैसले लिए हों, लेकिन यह अफसोस की बात है कि मेहनत कोई और करे और पैसा कोई और ले जाए।
Facebook "Redis User Group" पर पोस्ट किया गया
Valkey 8 में कौन-कौन से सुधार किए गए हैं, इसे संक्षेप में समझाने वाली सामग्री है।
https://www.facebook.com/groups/rediskorea/posts/3927030954110001/
ऊपर की सामग्री के साथ इसे भी देखें, तो समझने में मदद मिलेगी।
असल में Valkey ने कुछ किया हो ऐसा नहीं है... उधर वाले खुद ही अपने आप बर्बाद हो गए...
Hacker News राय