system-design-bangla

Database Sharding এর সুবিধাগুলো

Sharding Techniques

Range Based Sharding

Range Based Sharding এ মূলত একটি নির্দিষ্ট রেঞ্জ এর ভিত্তিতে ডেটা বিভিন্ন সার্ড-এ ডিস্ট্রিবিউট হয়ে থাকে।

range based sharding

উপরের ছবিতে দেখা যাচ্ছে, রেঞ্জ ১০ থেকে ২০ id একটি সার্ড-এর মধ্যে থাকবে অপর সার্ড-এ ২১ থেকে ৩৫ id পর্যন্ত ডেটা থাকবে।

Hash Based Sharding

Hash Based Sharding এ মূলত একটি হ্যাশ ফাংশন থাকবে যা বলে দিবে কোন row এর ডেটা কোন সার্ড এ যাবে।

hash based sharding

উপরের ছবিতে দেখা যাচ্ছে, হ্যাশ ফাংশন প্রসেস করার পর ১০ এবং ১৫ id সার্ড ১ এ থাকবে। বাকিগুলো সার্ড ২ এ।

Directory Based Sharding

Directory Based Sharding এ মূলত একটি Lookup table থাকবে যা বলে দিবে কোন row এর ডেটা কোন সার্ড এ যাবে।

directory based sharding

Sharding in SQL, NoSQL and Cloud

AWS Database Sharding যেভাবে করে

PostgreSQL এ natively Database Sharding সাপোর্ট করে না তবে PostgreSQL 11 Foreign Data Wrappers এর মাধ্যমে আমরা ডাটা বিভিন্ন সার্ভারে ডিস্ট্রিবিউট এবং read করতে পারি।

আমরা Connection Pool এবং Proxy হিসেবে Pgcat ব্যবহার করে আমরা ডেটা বিভিন্ন shard এর মধ্যে ডিস্ট্রিবিউট করতে পারি।

sharding

When not to shard a table

(চলমান)

Difference between Sharding and Partitioning

Sharding মূলত ডাটাবেসের ডেটাগুলোকে একাধিক সার্ভারের ভিতর একাধিক টেবিল এর মধ্যে ডিস্ট্রিবিউট করে থাকে অন্যদিকে Partition একটি সার্ভারের ভিতর একাধিক টেবিল এর মধ্যে ডিস্ট্রিবিউট করে।