সিস্টেম ডিজাইনে Throughput হলো একটি সিস্টেম নির্দিষ্ট সময়ের মধ্যে কত দ্রুত ডেটা প্রসেস করতে পারে বা কত বেশি রিকোয়েস্ট হ্যান্ডেল করতে পারে তার পরিমাপ।
একটি রেস্টুরেন্টের উদাহরণ দিয়ে বিষয়টি সহজে বোঝা যায়—কাস্টমাররা এসে খাবার অর্ডার করার পর, নির্দিষ্ট সময়ের মধ্যে যত বেশি কাস্টমারকে খাবার প্রস্তুত করে পরিবেশন করা যাবে, রেস্টুরেন্টের Throughput তত বেশি। সিস্টেম ডিজাইনের ক্ষেত্রেও এটি সিস্টেমের দক্ষতা এবং সার্বিক পারফরম্যান্সের একটি অন্যতম প্রধান সূচক।
একটি সিস্টেমের পারফরম্যান্স মূলত তিনটি বিষয়ের ওপর নির্ভর করে:
Latency: একটি রিকোয়েস্ট প্রসেস করতে বা সাড়া দিতে যে সময় লাগে।
Throughput: একটি নির্দিষ্ট সময়ে (যেমন প্রতি সেকেন্ডে) কতগুলো রিকোয়েস্ট বা ট্রানজেকশন সফলভাবে সম্পন্ন হয়েছে।
Scalability: সিস্টেমে লোড বা ইউজারের সংখ্যা বাড়লে পারফরম্যান্স ধরে রাখার বা সিস্টেমকে সম্প্রসারিত করার ক্ষমতা।
একটি ব্যস্ত হাইওয়ের কথা চিন্তা করলে বিষয়টি আরও পরিষ্কার হয়। একটি নির্দিষ্ট গাড়ি হাইওয়ের এক প্রান্ত থেকে অন্য প্রান্তে যেতে যে সময় নেয়, তা হলো Latency। আর প্রতি মিনিটে ওই হাইওয়ে দিয়ে যতগুলো গাড়ি সফলভাবে গন্তব্যে পৌঁছাতে পারে, তা হলো Throughput। গাড়ির সংখ্যা বেড়ে গেলে লেন বাড়িয়ে যানজট কমানোর ক্ষমতাই হলো Scalability।
Throughput কীভাবে পরিমাপ করা হয়?
Throughput সাধারণত বিভিন্ন ইউনিটে পরিমাপ করা হয়, যা সিস্টেমের ধরনের ওপর নির্ভর করে:
RPS (Requests Per Second): একটি ওয়েব সার্ভার প্রতি সেকেন্ডে কতগুলো রিকোয়েস্ট হ্যান্ডেল করছে। (যেমন: ৫,০০০ রিকোয়েস্ট/সেকেন্ড)।
TPS (Transactions Per Second): একটি ডেটাবেস প্রতি সেকেন্ডে কতগুলো ট্রানজেকশন সফলভাবে সম্পন্ন করছে। (যেমন: ১০,০০০ ট্রানজেকশন/সেকেন্ড)।
Bps / MBps (Bytes/Megabytes Per Second): নেটওয়ার্ক বা স্টোরেজ সিস্টেমে প্রতি সেকেন্ডে কী পরিমাণ ডেটা ট্রান্সফার বা প্রসেস হচ্ছে। (যেমন: ১০০ মেগাবাইট/সেকেন্ড)।
Throughput বাড়ানোর কৌশল
সিস্টেমের Throughput বাড়ানোর জন্য এবং অধিক লোড সামলানোর জন্য বেশ কিছু কার্যকর কৌশল ব্যবহার করা হয়:
১. Parallel Processing (প্যারালাল প্রসেসিং):
একটি বড় কাজকে ছোট ছোট ভাগে ভাগ করে একাধিক CPU, Core বা Thread ব্যবহার করে একসাথে প্রসেস করা। যেমন, গুগল সার্চ ইঞ্জিন একই সময়ে হাজার হাজার সার্ভারে কোয়েরি প্রসেস করে দ্রুততম সময়ে রেজাল্ট দেখায়।
২. Load Balancing (লোড ব্যালেন্সিং):
সিস্টেমে আসা সমস্ত রিকোয়েস্ট কোনো একটি নির্দিষ্ট সার্ভারে না পাঠিয়ে Load Balancer-এর মাধ্যমে একাধিক সার্ভারে সমানভাবে ভাগ করে দেওয়া। অ্যামাজন বা নেটফ্লিক্স এভাবেই লক্ষ লক্ষ ইউজারের রিকোয়েস্ট একসাথে সামলায়।
৩. Caching (ক্যাশিং):
বারবার প্রয়োজন হয় এমন ডেটা মূল ডেটাবেস থেকে না এনে দ্রুততর মেমোরিতে (যেমন: Redis, Memcached) সংরক্ষণ করা। এতে ডেটাবেসের ওপর চাপ কমে এবং রিকোয়েস্ট দ্রুত প্রসেস হওয়ায় Throughput বহুগুণ বেড়ে যায়।
৪. Asynchronous Processing (অ্যাসিনক্রোনাস প্রসেসিং):
যে কাজগুলো তাৎক্ষণিকভাবে শেষ করার প্রয়োজন নেই, সেগুলোকে Message Queue (যেমন: RabbitMQ, Kafka) ব্যবহার করে Background Process-এ পাঠিয়ে দেওয়া। উদাহরণস্বরূপ, ইউটিউবে ভিডিও আপলোড করার পর ব্যাকগ্রাউন্ডে প্রসেসিং চলতে থাকে, যা ইউজারের মেইন ফ্লো-কে ব্লক করে না।
৫. Database Optimization (ডেটাবেস অপটিমাইজেশন):
ডেটাবেসে সঠিক Indexing, Partitioning, Sharding এবং Query Optimization করা। এর ফলে ডেটাবেসের ডেটা খোঁজার সময় কমে যায় এবং ডেটাবেস Throughput বৃদ্ধি পায়।
৬. Horizontal Scaling (হরাইজন্টাল স্কেলিং):
সার্ভারের ক্ষমতা না বাড়িয়ে সিস্টেমে নতুন সার্ভার বা নোড যুক্ত করা, যা সরাসরি সিস্টেমের সার্বিক ক্যাপাসিটি বাড়িয়ে দেয় এবং একসঙ্গে অনেক বেশি ট্রাফিক হ্যান্ডেল করতে সাহায্য করে।
Latency vs Throughput
বৈশিষ্ট্য | Latency | Throughput |
সংজ্ঞা | একটি একক রিকোয়েস্ট সম্পন্ন হতে কত সময় লাগে। | নির্দিষ্ট সময়ে মোট কতগুলো রিকোয়েস্ট সম্পন্ন হয়। |
পরিমাপের একক | Milliseconds (ms) বা Seconds (s) | RPS, TPS বা MBps |
লক্ষ্যমাত্রা | যত কম হবে, তত ভালো (Low is better)। | যত বেশি হবে, তত ভালো (High is better)। |
উন্নয়নের উপায় | ফাস্ট নেটওয়ার্ক, কোড অপটিমাইজেশন, ক্যাশিং। | প্যারালাল প্রসেসিং, লোড ব্যালেন্সিং, স্কেলিং। |
High Throughput একটি সফল সিস্টেমের অন্যতম প্রধান শর্ত, বিশেষ করে রিয়েল-টাইম সিস্টেমগুলোর ক্ষেত্রে (যেমন: অনলাইন ব্যাংকিং, স্টক ট্রেডিং, ই-কমার্স বা সোশ্যাল মিডিয়া)। Latency কমিয়ে এবং সঠিক আর্কিটেকচার ব্যবহার করে Throughput বাড়ানো সম্ভব। সিস্টেম ডিজাইনে দক্ষতা অর্জন করতে হলে Throughput এবং Latency-এর মধ্যে সঠিক ভারসাম্য বজায় রাখার কৌশল জানা অপরিহার্য, কারণ এটি সরাসরি ফাস্ট এবং স্মুথ ইউজার এক্সপেরিয়েন্স নিশ্চিত করে।