Redis on Flash (RoF) আমাদের সবচেয়ে জনপ্রিয় এন্টারপ্রাইজ কার্যকারিতাগুলির মধ্যে একটি, যা ব্যয়বহুল DRAM-এর পরিবর্তে SSD-এ 80% পর্যন্ত ডেটাসেট সংরক্ষণ করে ইন-মেমরি কম্পিউটিংকে সাশ্রয়ী করে তোলে এবং এখনও সাব-মিলিসেকেন্ড লেটেন্সি বজায় রাখে এবং Redis এর উচ্চ-থ্রুপুট। সাধারণ স্থাপনায়, RoF 70% পর্যন্ত TCO ছাড় প্রদান করে।
এখন দুটি নতুন, উত্তেজনাপূর্ণ সহযোগিতার সাথে, আমরা ঘোষণা করতে পেরে গর্বিত যে RoF এখন 3.7 গুণ পারফরম্যান্স সরবরাহ করতে পারে Redis এ বড় ডেটাসেট চালানোর জন্য মালিকানার একই আকর্ষণীয় মোট খরচ বজায় রাখার সময়। প্রথমত, AWS একটি নতুন প্রজন্মের দৃষ্টান্ত, Amazon EC2 I4i, তৃতীয় প্রজন্মের Intel Xeon Scalable প্রসেসর (কোড-নাম আইস লেক) এবং AWS Nitro SSD NVMe-ভিত্তিক স্টোরেজ দ্বারা চালিত সাধারণ উপলব্ধতা ঘোষণা করেছে। এই নতুন প্রজন্ম ডেটা-নিবিড় Redis গ্রাহকদের জন্য কর্মক্ষমতা একটি উল্লেখযোগ্য বৃদ্ধি প্রদানের প্রতিশ্রুতি দেয়। উপরন্তু, আমরা প্রথম বিকল্প হিসেবে Speedb-এর নতুন ঘোষিত প্রযুক্তির সাথে যেকোন RocksDB সামঞ্জস্যপূর্ণ ডাটাবেসে RoF-এর জন্য ডেটা ইঞ্জিন খোলার আমাদের পরিকল্পনা শেয়ার করতে পেরে আনন্দিত।
আমরা বিশ্বাস করি যে নতুন I4i দৃষ্টান্তের সংমিশ্রণ এবং গ্রাহকদের তাদের ডেটা ইঞ্জিনের জন্য একটি পছন্দ প্রদান করা RoF কে বিশাল ডেটাসেটের জন্য আরও আকর্ষণীয় করে তুলবে, কারণ আধুনিক অ্যাপ্লিকেশন বা কম লেটেন্সি মাইক্রোসার্ভিস আর্কিটেকচার নির্মাণকারী কোম্পানিগুলির জন্য রিয়েল-টাইম অভিজ্ঞতার প্রয়োজন বৃদ্ধি পায়।পি>
Amazon EC2 I4i এবং Speedb ফ্ল্যাশে Redis-এ কী নিয়ে আসে?
আসুন RoF-এ নতুন কি আছে তা জেনে নেই। AWS 4 টি অঞ্চল জুড়ে নতুন Amazon EC2 I4i ('i' হল ইন্টেলের জন্য) দৃষ্টান্ত অফার করছে। I4i দৃষ্টান্তগুলি সর্বশেষ প্রযুক্তি ব্যবহার করে, ইন্টেল আইস লেক প্রসেসর এবং AWS নাইট্রো SSD, যা IOPS উন্নত করে এবং I3 দৃষ্টান্তের আগের প্রজন্মের তুলনায় বিলম্ব কমায়।
হার্ডওয়্যার থেকে আলাদাভাবে, আমরা এমন উপায় খুঁজছি যাতে RoF আরও বেশি কর্মক্ষমতা প্রদান করতে পারে এবং গ্রাহক ও উদ্যোক্তাদের দ্বারা ডেটা ইঞ্জিনকে উদ্ভাবনের জন্য একটি সুযোগ চিহ্নিত করতে পারে। আমরা ঘোষণা করতে পেরে আনন্দিত যে RoF এখন যেকোনো RocksDB- সামঞ্জস্যপূর্ণ ডেটা ইঞ্জিনের জন্য উন্মুক্ত এবং Speedb হল Redis দ্বারা অফার করা প্রথম বিকল্প। আমাদের সাথে কাজ করে, Speedb-এর টিম RocksDB অভ্যন্তরীণ ডেটা স্ট্রাকচারকে নতুন করে ডিজাইন করেছে যা CPU রিসোর্স হ্রাস করার সাথে সাথে পারফরম্যান্স এবং স্কেল উভয়কেই চিত্তাকর্ষকভাবে বৃদ্ধি করে।
এই ব্লগ পোস্টে, আমরা শেয়ার করি কিভাবে Speedb আমাদের সাব-মিলিসেকেন্ড পরীক্ষায় RocksDB-এর তুলনায় প্রায় 50% এর উল্লেখযোগ্য কর্মক্ষমতা বৃদ্ধি করে, আমরা যে AWS EC2 উদাহরণ ব্যবহার করছি, I4i বা I3 যাই হোক না কেন।
Speedb এর সাথে RoF বর্তমানে ব্যক্তিগত প্রিভিউতে উপলব্ধ। Redis গ্রাহকরা অতিরিক্ত তথ্যের জন্য বা নতুন পরিষেবা ট্রায়াল করার জন্য তাদের অ্যাকাউন্ট টিমের সাথে যোগাযোগ করতে পারেন৷
৷ফ্ল্যাশে নতুন রেডিস বেঞ্চমার্ক করা
আমাদের পারফরম্যান্স ইঞ্জিনিয়াররা AWS' I4i দৃষ্টান্তে তাদের হাত পেতে এবং RoF-এর নতুন Speedb ডেটা ইঞ্জিনের সাথে পরীক্ষা করার জন্য অপেক্ষা করতে পারেনি। Amazon EC2 I4i দৃষ্টান্তগুলি পুঙ্খানুপুঙ্খভাবে পরীক্ষা করার জন্য আমরা প্রথম AWS অংশীদার হতে পেরে আনন্দিত৷ একটি অনুস্মারক হিসাবে, RoF বুদ্ধিমত্তার সাথে বড় ডেটাসেটগুলিকে শ্রেণীবদ্ধ করে এবং DRAM এর তুলনায় NVMe SSD-এর প্রতি GiB-এর কম দামের সুবিধা নেওয়ার জন্য ডিজাইন করা হয়েছিল। এটি আমাদের DRAM-ভিত্তিক দৃষ্টান্তের মালিকানার 30% মোট খরচে, এখন I4i দৃষ্টান্তগুলির সাথে আরও দ্রুত, Redis-গ্রেডের কর্মক্ষমতা প্রদান করতে সক্ষম করে।
বেঞ্চমার্ক ফলাফল এবং নম্বর পাওয়ার আগে, আসুন পর্যালোচনা করা যাক কখন একজন গ্রাহককে RoF বিবেচনা করা উচিত। আমরা এমন ক্ষেত্রে ব্যবহার করার জন্য RoF তৈরি করেছি যেখানে কাজের ডেটাসেট মোট ডেটাসেটের চেয়ে ছোট এবং অতিরিক্ত DRAM-এ যাওয়া খরচ-নিষিদ্ধ। আরেকটি সাধারণ RoF ব্যবহারের ক্ষেত্রে ব্যাচ ডেটা প্রসেসিং, যেখানে ব্যবসা-সমালোচনামূলক অ্যাপ্লিকেশনগুলির জন্য প্রচুর পরিমাণে ডেটা প্রক্রিয়াকরণ করা প্রয়োজন, যার জন্য সময়ের সাথে স্থির কম বিলম্ব এবং উচ্চ থ্রুপুট প্রয়োজন৷
এখন মজার অংশে, বেঞ্চমার্ক ফলাফল।
আমরা যা বেঞ্চমার্ক করেছি
আমরা চারটি AWS দৃষ্টান্তে ফ্ল্যাশে Redis-এর কর্মক্ষমতা তুলনা করেছি:
i3.8xlarge - 244GB RAM, 4xNVMe SSD ড্রাইভ, মোট 7.6TB এর জন্য
I4i.4x বড় – 128GB RAM, 1xNVMe SSD ড্রাইভ, মোট 3.75TB এর জন্য
I4i.8xlarge - 256GB RAM, 2xNVMe SSD ড্রাইভ, মোট 7.5TB এর জন্য
I4i.16x বড় – 512GB RAM, 4xNVMe SSD ড্রাইভ মোট 15TB
আমরা দুটি ডেটা ইঞ্জিনের কর্মক্ষমতা তুলনা করেছি
- রকসডিবি
- স্পিডবি
পরীক্ষার পরামিতি
আমরা 1KiB মান মাপ ব্যবহার করেছি, বেশিরভাগ মানক রেডিস ব্যবহারের ক্ষেত্রে কভার করে
আমরা 50% এবং 85% RAM হিট অনুপাত পরীক্ষা করেছি (অর্থাৎ অনেক অনুরোধ সরাসরি RAM থেকে পরিবেশিত হয়েছে)
আমরা 20:80 RAM:ফ্ল্যাশ অনুপাত পরীক্ষা করেছি
আমরা বিভিন্ন পঠন:লেখার অনুপাত:1:1, 4:1 এবং 1:4 বেঞ্চমার্ক করেছি
সমস্ত পরীক্ষা দুটি সার্ভার ব্যবহার করে করা হয়েছিল
নিচের ডাটাবেসের মাপগুলো আমরা দৃষ্টান্তের ধরন অনুযায়ী চালাই:
- I4i.4x বড়:500GB + প্রতিলিপি। 5টি প্রাথমিক শার্ড + 5টি রেপ্লিকা শার্ড
- i3.8xlarge:1TB + প্রতিলিপি। 10টি প্রাথমিক শার্ড + 10টি রেপ্লিকা শার্ড
- I4i.8x বড়:1TB + প্রতিলিপি। 10টি প্রাথমিক শার্ড + 10টি রেপ্লিকা শার্ড
- I4i.16x বড়:2TB + প্রতিলিপি। 20টি প্রাইমারি শার্ড + 20টি রেপ্লিকা শার্ড
প্রতিটি কনফিগারেশনে, আমরা পরীক্ষা করেছিলাম সাব-মিলিসেকেন্ড ক্লায়েন্ট লেটেন্সি (নেটওয়ার্ক সহ নয়) রাখার সময় কত অপ্স/সেকেন্ড অর্জন করা যেতে পারে।
আমরা যা পেয়েছি
নীচের গ্রাফটি দেখায় 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 |
নিচের গ্রাফটি Speedb-এ I4i-এর সাথে স্কেলিং দেখায় এবং বিভিন্ন রিড:রাইট রেশিও:
আমরা নিম্নলিখিত ফলাফল এবং উন্নতি দেখতে পারি:
স্কেলিং অনুসারে, আমরা দেখতে পাচ্ছি যে Speedb স্কেলের সাথে I4i তে RoF প্রায় রৈখিকভাবে।
4xবড় → 8xlarge-এর একটি ফ্যাক্টর আছে ~1.55x-1.8x
8xlarge → 16xlarge-এর একটি স্কেলিং ফ্যাক্টর আছে ~1.85x-1.95x
একটি দ্বিতীয় উল্লেখযোগ্য ফলাফল হল যে Speedb-এর সাথে I4i-এর RoF অ্যাপ্লিকেশন অ্যাক্সেস প্যাটার্নের (রিড:রাইট রেশিও) খুব অজ্ঞেয়বাদী। এর মানে কর্মক্ষমতা স্থির থাকে এবং অনুমানযোগ্য। একাধিক ভিন্ন অ্যাপ্লিকেশনের সাথে কাজ করার সময় বা যখন অ্যাক্সেস প্যাটার্ন সময়ের সাথে পরিবর্তিত হয় তখন এটি কার্যকর হতে পারে।
নীচের গ্রাফটি সামগ্রিক 3.7x কর্মক্ষমতা উন্নতি দেখায়:
পরিশিষ্ট:
বেঞ্চমার্ক সেটআপ
রেডিস এন্টারপ্রাইজ সংস্করণ:উবুন্টু 18.04-এ v. 6.2.8-39
ফ্ল্যাশ ডাটাবেসে রিডিস:উপরের উদাহরণে বিশদ বিবরণ দেখুন
ক্লায়েন্ট মেশিন:EC2 m5.8xlarge (32 VCPUs, 128 GB RAM)
লোড জেনারেশন টুল:মেমটিয়ার বেঞ্চমার্ক
85% রাম হিট অনুপাতের জন্য মেমটিয়ার নমুনা কমান্ড:
memtier_benchmark -s
–লুকান-হিস্টোগ্রাম –পাইপলাইন=1 -c 4 -t 256 -d 1000
-কী-সর্বোচ্চ=771141855 -কী-প্যাটার্ন=জি:জি -কী-stddev=50358491
–অনুপাত=1:1 –স্বতন্ত্র-ক্লায়েন্ট-বীজ –এলোমেলোভাবে –পরীক্ষার সময়=1200
সেটআপ চিত্র: