DynamoDB একটি প্রোডাকশন-গ্রেড NoSQL ডেটাবেস সার্ভিস যা ওয়েব অ্যাপ্লিকেশন এবং অন্যান্য সিস্টেমে ডেটা সংরক্ষণ এবং অ্যাক্সেস করতে ব্যবহৃত হয়। DynamoDB এর পারফরম্যান্স এবং খরচ পরিচালনা করার জন্য, Read Capacity Units (RCU) এবং Write Capacity Units (WCU) ব্যবহার করা হয়। এগুলি হল টেবিলের পারফরম্যান্স কনফিগারেশনের প্রধান অংশ এবং ডেটাবেসের ক্ষমতা পরিচালনা করতে সাহায্য করে।
1. Read Capacity Units (RCU)
RCU (Read Capacity Unit) হল একক অপারেশনের জন্য অ্যাপ্লিকেশন কত দ্রুত ডেটা পড়তে পারে তার পরিমাপ। যখন আপনি DynamoDB টেবিল থেকে ডেটা পড়েন, তখন আপনি নির্দিষ্ট সংখ্যক RCU ব্যবহার করবেন।
RCU হিসাব করার নিয়ম:
- 1 RCU হল একটি Strongly Consistent Read অপারেশন, যা প্রতি সেকেন্ডে ৪ KB ডেটা পড়তে পারে।
- 1 RCU হল একটি Eventually Consistent Read অপারেশন, যা প্রতি সেকেন্ডে ৮ KB ডেটা পড়তে পারে।
Strongly Consistent Read মানে হল যে ডেটা সবসময় সর্বশেষ আপডেট হওয়া রেকর্ড প্রদর্শন করবে। অন্যদিকে, Eventually Consistent Read অল্প সময়ের জন্য পুরনো ডেটাও ফেরত দিতে পারে, কিন্তু এতে পারফরম্যান্স কিছুটা ভালো হয়।
উদাহরণ:
- যদি আপনার টেবিল থেকে 8 KB ডেটা পড়তে হয় এবং আপনি Strongly Consistent Read ব্যবহার করেন, তাহলে আপনাকে 2 RCU প্রয়োজন হবে (কারণ 1 RCPU 4KB পড়তে সক্ষম)।
- Eventually Consistent Read ব্যবহার করলে আপনি 1 RCU দিয়ে 8KB পড়তে পারবেন।
2. Write Capacity Units (WCU)
WCU (Write Capacity Unit) হল একক অপারেশনের জন্য অ্যাপ্লিকেশন কত দ্রুত ডেটা লিখতে পারে তার পরিমাপ। যখন আপনি DynamoDB টেবিলের মধ্যে নতুন ডেটা লেখেন বা বিদ্যমান ডেটা আপডেট করেন, তখন আপনি নির্দিষ্ট সংখ্যক WCU ব্যবহার করবেন।
WCU হিসাব করার নিয়ম:
- 1 WCU হল ১ সেকেন্ডে ১ KB ডেটা লেখার জন্য।
- প্রতিটি Write অপারেশন ১ KB ডেটা লেখে, তবে যদি আপনি ১ KB এর চেয়ে বড় ডেটা লিখেন, তবে WCU এর সংখ্যা বাড়বে। উদাহরণস্বরূপ, যদি আপনি ৩ KB ডেটা লেখেন, তবে ৩ WCU প্রয়োজন হবে।
উদাহরণ:
- যদি আপনি 3 KB ডেটা আপডেট করেন, তবে আপনাকে 3 WCU প্রয়োজন।
- যদি আপনি 2 KB ডেটা লিখেন, তবে 2 WCU প্রয়োজন।
3. RCU এবং WCU এর মধ্যে পার্থক্য:
- RCU এবং WCU উভয়ই DynamoDB টেবিলের স্কেলিং এবং পারফরম্যান্সকে নিয়ন্ত্রণ করে।
- RCU ডেটা রিডিং অপারেশন এবং WCU ডেটা রাইটিং অপারেশন নিয়ন্ত্রণ করে।
- RCU শুধুমাত্র রিড অপারেশন সম্পর্কিত এবং WCU শুধুমাত্র রাইট অপারেশন সম্পর্কিত।
4. Provisioned Mode এবং On-Demand Mode এ RCPU এবং WCPU এর প্রভাব
DynamoDB এ দুটি মুড রয়েছে যেখানে আপনি RCU এবং WCU কনফিগার করতে পারবেন:
- Provisioned Mode: আপনি নির্দিষ্ট সংখ্যক RCU এবং WCU প্রিপেইডভাবে কনফিগার করেন। এর ফলে, অ্যাপ্লিকেশন যখন ডেটা অ্যাক্সেস করে, তখন DynamoDB ওই সংখ্যক ইউনিট বরাদ্দ করে।
- On-Demand Mode: এখানে DynamoDB স্বয়ংক্রিয়ভাবে প্রয়োজন অনুযায়ী RCPU এবং WCPU বরাদ্দ করে। আপনি নির্দিষ্ট কনফিগারেশন বা সীমানা সেট করতে না পারেন, তবে খরচ বেশি হবে যদি আপনার ট্রাফিক হঠাৎ বেড়ে যায়।
5. RCPU এবং WCPU কিভাবে কনফিগার করবেন:
Provisioned Mode এ RCPU এবং WCPU কনফিগার করা:
- AWS Management Console এ গিয়ে DynamoDB টেবিল খুলুন।
- Capacity ট্যাবে যান।
- আপনি Read capacity units (RCU) এবং Write capacity units (WCU) নির্ধারণ করতে পারবেন।
- আপনার প্রয়োজনীয় স্কেল এবং ট্রাফিকের ভিত্তিতে মান নির্ধারণ করুন।
On-Demand Mode এ RCPU এবং WCPU কনফিগার করা:
On-Demand Mode তে, আপনি RCU এবং WCU কনফিগার করতে পারেন না। DynamoDB স্বয়ংক্রিয়ভাবে এই মান নির্ধারণ করে এবং ট্রাফিকের পরিবর্তন অনুযায়ী এটি বাড়াতে বা কমাতে থাকে।
6. RCPU এবং WCPU কনফিগারেশনের চ্যালেঞ্জ:
- ওভারপ্রাইসিং: যদি আপনি বেশি RCPU/WCPU বরাদ্দ করেন, তবে অপ্রয়োজনীয় খরচ হতে পারে। তাই ব্যবহারের ধরন এবং লোডের ওপর ভিত্তি করে মাপ নেওয়া উচিত।
- থ্রুপুট সীমা: প্রয়োজনের তুলনায় খুব কম RCPU/WCPU কনফিগার করলে, পারফরম্যান্স কমে যেতে পারে এবং থ্রুপুট সীমা অতিক্রম হতে পারে, যার ফলে থ্রোটলিং হতে পারে।
সারাংশ:
- RCU এবং WCPU হল DynamoDB টেবিলের পারফরম্যান্সের মূল উপাদান, যা সঠিকভাবে কনফিগার করতে হয়।
- Provisioned Mode এবং On-Demand Mode এর মধ্যে পার্থক্য বুঝে আপনাকে আপনার অ্যাপ্লিকেশনের জন্য উপযুক্ত কনফিগারেশন নির্বাচন করতে হবে।
এগুলি সঠিকভাবে কনফিগার করলে, আপনার DynamoDB টেবিলের পারফরম্যান্স ও খরচ উভয়ই অপটিমাইজ করা সম্ভব।