रेडिस ऑन फ्लैश (RoF) हमारी सबसे लोकप्रिय एंटरप्राइज कार्यक्षमताओं में से एक रहा है, जो महंगे DRAM के बजाय SSD में डेटासेट का 80% तक स्टोर करके इन-मेमोरी कंप्यूटिंग को लागत-प्रभावी बनाता है, और फिर भी रेडिस की सब-मिलीसेकंड लेटेंसी और उच्च-थ्रूपुट को बनाए रखता है। सामान्य तैनाती में, RoF 70% तक TCO छूट प्रदान करता है।
अब दो नए, रोमांचक सहयोगों के साथ, हमें यह घोषणा करते हुए गर्व हो रहा है कि RoF अब 3.7x तक प्रदर्शन प्रदान कर सकता है जबकि बड़े डेटासेट को रेडिस पर चलाने के लिए समान आकर्षक कुल स्वामित्व लागत बनाए रखता है। पहला, AWS ने एक नई पीढ़ी के इंस्टेंस, अमेज़ॅन EC2 I4i की सामान्य उपलब्धता की घोषणा की है, जो तीसरी पीढ़ी के इंटेल Xeon स्केलेबल प्रोसेसर (कोड-नाम आइस लेक) और AWS नाइट्रो SSD NVMe-आधारित स्टोरेज द्वारा संचालित है। यह नई पीढ़ी डेटा-गहन रेडिस ग्राहकों के लिए प्रदर्शन में उल्लेखनीय वृद्धि देने का वादा करती है। इसके अतिरिक्त, हम नए घोषित प्रौद्योगिकी से स्पीडब को पहले विकल्प के रूप में, किसी भी RocksDB-संगत डेटाबेस के लिए RoF के डेटा इंजन को खोलने की अपनी योजनाओं को साझा करने से प्रसन्न हैं।
हम मानते हैं कि नए I4i इंस्टेंस का संयोजन और ग्राहकों को उनके डेटा इंजन के लिए एक विकल्प प्रदान करना RoF को बड़े डेटासेट के लिए और भी अधिक आकर्षक बना देगा, क्योंकि आधुनिक एप्लिकेशन या कम विलंबता माइक्रोसर्विस आर्किटेक्चर बनाने वाली कंपनियों के लिए रीयल-टाइम अनुभवों की आवश्यकता बढ़ जाती है।
अमेज़ॅन EC2 I4i और स्पीडब रेडिस ऑन फ्लैश में क्या लाते हैं?
आइए RoF पर नई चीजों में गोता लगाएं। AWS 4 क्षेत्रों में नए अमेज़ॅन EC2 I4i ('i' इंटेल के लिए है) इंस्टेंस की पेशकश कर रहा है। I4i इंस्टेंस नवीनतम तकनीक, इंटेल आइस लेक प्रोसेसर और AWS नाइट्रो SSD का उपयोग करते हैं, जो पिछली पीढ़ी के I3 इंस्टेंस की तुलना में IOPS में सुधार करते हैं और लेटेंसी को कम करते हैं।
हार्डवेयर से अलग, हम उन तरीकों की तलाश कर रहे हैं जिनसे RoF और भी अधिक प्रदर्शन प्रदान कर सके और ग्राहकों और उद्यमियों द्वारा नवाचार के लिए डेटा इंजन खोलने का अवसर पहचाना। हमें यह घोषणा करते हुए खुशी हो रही है कि RoF अब किसी भी RocksDB-संगत डेटा इंजन के लिए खुला है और स्पीडब रेडिस द्वारा पेश किया जाने वाला पहला विकल्प है। हमारे साथ काम करते हुए, स्पीडब की टीम ने RocksDB आंतरिक डेटा संरचना को फिर से डिज़ाइन किया है जो प्रभावशाली रूप से प्रदर्शन और स्केल दोनों को बढ़ाता है जबकि CPU संसाधनों को कम करता है।
इस ब्लॉग पोस्ट में, हम साझा करते हैं कि कैसे स्पीडब हमारे सब-मिलीसेकंड परीक्षणों में RocksDB की तुलना में लगभग 50% का महत्वपूर्ण प्रदर्शन बढ़ावा प्रदान करता है, चाहे हम किसी भी AWS EC2 इंस्टेंस का उपयोग कर रहे हों, I4i या I3।
स्पीडब के साथ RoF वर्तमान में निजी पूर्वावलोकन में उपलब्ध है। रेडिस ग्राहक अतिरिक्त जानकारी के लिए या नई सेवा का परीक्षण करने के लिए अपनी खाता टीम से संपर्क कर सकते हैं।
नए रेडिस ऑन फ्लैश का बेंचमार्किंग
हमारे प्रदर्शन इंजीनियर AWS के I4i इंस्टेंस पर अपना हाथ पाने और उन्हें RoF के नए स्पीडब डेटा इंजन के साथ परीक्षण करने के लिए इंतजार नहीं कर सके। हमें AWS पार्टनर के रूप में अमेज़ॅन EC2 I4i इंस्टेंस का पूरी तरह से परीक्षण करने वाला पहला होने पर खुशी हो रही है। एक अनुस्मारक के रूप में, RoF बड़े डेटासेट को बुद्धिमानी से टियर करता है और DRAM की तुलना में NVMe SSDs के प्रति GiB कम कीमत का लाभ उठाने के लिए डिज़ाइन किया गया था। यह हमें DRAM-आधारित इंस्टेंस के 30% कुल स्वामित्व लागत पर रेडिस-ग्रेड प्रदर्शन देने में सक्षम बनाता है, अब I4i इंस्टेंस के साथ और भी तेज़।
बेंचमार्क परिणामों और संख्याओं पर पहुंचने से पहले, आइए समीक्षा करें कि एक ग्राहक को RoF पर कब विचार करना चाहिए। हमने RoF को उन उपयोग के मामलों के लिए विकसित किया जहां वर्किंग डेटासेट कुल डेटासेट से छोटा है और अतिरिक्त DRAM पर जाना लागत-निषेधात्मक है। RoF का एक और सामान्य उपयोग मामला बैच डेटा प्रोसेसिंग है, जहां व्यावसायिक-महत्वपूर्ण अनुप्रयोगों के लिए बड़ी मात्रा में डेटा को संसाधित करने की आवश्यकता होती है, जिन्हें समय के साथ स्थिर कम विलंबता और उच्च थ्रूपुट की आवश्यकता होती है।
अब मजेदार हिस्से पर, बेंचमार्क परिणाम।
हमने क्या बेंचमार्क किया
हमने चार AWS इंस्टेंस पर रेडिस ऑन फ्लैश के प्रदर्शन की तुलना की:
i3.8xlarge – 244GB RAM, 4xNVMe SSD ड्राइव, कुल 7.6TB के लिए
I4i.4xlarge – 128GB RAM, 1xNVMe SSD ड्राइव, कुल 3.75TB के लिए
I4i.8xlarge – 256GB RAM, 2xNVMe SSD ड्राइव, कुल 7.5TB के लिए
I4i.16xlarge – 512GB RAM, 4xNVMe SSD ड्राइव कुल 15TB के लिए
हमने दो डेटा इंजन के प्रदर्शन की तुलना की
- RocksDB
- Speedb
परीक्षण पैरामीटर
हमने 1KiB मूल्य आकार का उपयोग किया, जो अधिकांश मानक रेडिस उपयोग के मामलों को कवर करता है
हमने 50% और 85% RAM हिट अनुपात का परीक्षण किया (यानी कई अनुरोध सीधे RAM से सेवा किए गए)
हमने 20:80 RAM:फ्लैश अनुपात का परीक्षण किया
हमने विभिन्न रीड:राइट अनुपातों का बेंचमार्क किया: 1:1, 4:1 और 1:4
सभी परीक्षण दो सर्वरों का उपयोग करके किए गए
निम्नलिखित डेटाबेस आकार हैं जिन्हें हम इंस्टेंस प्रकारों के अनुसार चलाते हैं:
- I4i.4xlarge: 500GB + रेप्लिकेशन। 5 प्राथमिक शार्ड + 5 रेप्लिका शार्ड
- i3.8xlarge: 1TB + रेप्लिकेशन। 10 प्राथमिक शार्ड + 10 रेप्लिका शार्ड
- I4i.8xlarge: 1TB + रेप्लिकेशन। 10 प्राथमिक शार्ड + 10 रेप्लिका शार्ड
- I4i.16xlarge: 2TB + रेप्लिकेशन। 20 प्राथमिक शार्ड + 20 रेप्लिका शार्ड
प्रत्येक कॉन्फ़िगरेशन में, हमने परीक्षण किया कि सब-मिलीसेकंड क्लाइंट लेटेंसी (नेटवर्क को छोड़कर) रखते हुए कितने ops/sec प्राप्त किए जा सकते हैं
हमने क्या पाया
नीचे दिया गया ग्राफ i3 बनाम I4i और RocksDB बनाम Speedb दिखाता है:
हम निम्नलिखित सुधार देख सकते हैं:
| से | तक | स्पीडअप फैक्टर |
| i3.8xlarge rocksdb | i3.8xlarge speedb | 1.3x |
| I4i.8xlarge rocksdb | I4i.8xlarge speedb | 1.46x |
| i3.8xlarge rocksdb | I4i.8xlarge rocksdb | 1.94x |
| i3.8xlarge speedb | I4i.8xlarge speedb | 2.16x |
| i3.8xlarge rocksdb | I4i.8xlarge speedb | 2.83x |
नीचे दिया गया ग्राफ स्पीडब पर I4i के साथ स्केलिंग और विभिन्न रीड:राइट अनुपात दिखाता है:
हम निम्नलिखित परिणाम और सुधार देख सकते हैं:
स्केलिंग के लिहाज से, हम देख सकते हैं कि स्पीडब पर RoF I4i के साथ लगभग रैखिक रूप से स्केल करता है।
4xlarge → 8xlarge का फैक्टर ~1.55x-1.8x है
8xlarge → 16xlarge का स्केलिंग फैक्टर ~1.85x-1.95x है
एक दूसरा उल्लेखनीय परिणाम यह है कि स्पीडब पर RoF I4i एप्लिकेशन एक्सेस पैटर्न (रीड:राइट अनुपात) के लिए बहुत अज्ञेय है। इसका मतलब है कि प्रदर्शन स्थिर और अनुमानित रहता है। यह कई अलग-अलग एप्लिकेशन के साथ काम करते समय या जब एक्सेस पैटर्न समय के साथ बदलता है तो उपयोगी हो सकता है।
नीचे दिया गया ग्राफ समग्र 3.7x प्रदर्शन सुधार दिखाता है:
परिशिष्ट:
बेंचमार्क सेटअप
रेडिस एंटरप्राइज संस्करण: v. 6.2.8-39 उबंटू 18.04 पर
रेडिस ऑन फ्लैश डेटाबेस: ऊपर प्रति इंस्टेंस विवरण देखें
क्लाइंट मशीन: EC2 m5.8xlarge (32 VCPUs, 128 GB RAM)
लोड जनरेशन टूल: memtier बेंचमार्क
85% RAM हिट अनुपात के लिए Memtier नमूना कमांड:
memtier_benchmark -s <database host IP> -p <database port>
–hide-histogram –pipeline=1 -c 4 -t 256 -d 1000
–key-maximum=771141855 –key-pattern=G:G –key-stddev=50358491
–ratio=1:1 –distinct-client-seed –randomize –test-time=1200
सेटअप चित्रण: