প্রকল্প সম্পর্কে
Citus একটি PostgreSQL এক্সটেনশন যা একটি একক Postgres ডেটাবেসকে একটি ডিস্ট্রিবিউটেড ডেটাবেসে রূপান্তরিত করে, যা আপনাকে একাধিক নোড জুড়ে স্কেল আউট করতে দেয়, পাশাপাশি স্ট্যান্ডার্ড PostgreSQL টুল এবং এক্সটেনশন ব্যবহার চালিয়ে যেতে পারে।
README-তে বর্ণিত মূল ক্ষমতাগুলি:
- ডিস্ট্রিবিউটেড টেবিল: টেবিলগুলি PostgreSQL নোডের একটি ক্লাস্টার জুড়ে শার্ড করা হয়, যা CPU, মেমরি, স্টোরেজ এবং I/O ক্ষমতা একত্রিত করে। create_distributed_table ফাংশন একটি টেবিলকে স্থানীয়ভাবে বা ওয়ার্কার নোড জুড়ে শার্ড করে।
- রেফারেন্স টেবিল: ডিস্ট্রিবিউশন কলাম অন্তর্ভুক্ত নয় এমন জয়েন এবং ফরেন কী সমর্থন করতে এবং পড়ার কর্মক্ষমতা উন্নত করতে সমস্ত নোডে প্রতিলিপি করা হয়।
- ডিস্ট্রিবিউটেড কোয়েরি ইঞ্জিন: ক্লাস্টার জুড়ে SELECT, DML এবং অন্যান্য অপারেশন রুট এবং সমান্তরাল করে। ডিস্ট্রিবিউশন কলামে ফিল্টার করা কোয়েরিগুলি একটি একক ওয়ার্কারে রুট করা হয়; অন্যান্য কোয়েরিগুলি শার্ড জুড়ে সমান্তরাল করা হয়।
- কলামার স্টোরেজ: একটি USING columnar টেবিল অ্যাক্সেস পদ্ধতি যা ডেটা সংকুচিত করে, স্ক্যান দ্রুত করে এবং দ্রুত প্রজেকশন সমর্থন করে, যা নিয়মিত বা ডিস্ট্রিবিউটেড টেবিলে ব্যবহারযোগ্য। কলামার টেবিলে আপডেট, ডিলিট এবং ফরেন কী সমর্থিত নয়; COPY বা INSERT..SELECT এর মাধ্যমে ব্যাচ লোডিং সুপারিশ করা হয়।
- যেকোনো নোড থেকে কোয়েরি: ক্লাস্টারের যেকোনো নোড থেকে ডিস্ট্রিবিউটেড কোয়েরি জারি করা যেতে পারে, যখন স্কিমা পরিবর্তন এবং ক্লাস্টার প্রশাসন এখনও কোঅর্ডিনেটরের মাধ্যমে যায়।
- স্কিমা-ভিত্তিক শার্ডিং (Citus 12.0 থেকে): একটি শেয়ার্ড-ডেটাবেস, পৃথক-স্কিমা মডেল যেখানে প্রতিটি স্কিমা একটি লজিক্যাল শার্ড হিসাবে কাজ করে, যা কোয়েরি পরিবর্তন ছাড়াই মাল্টি-টেন্যান্ট অ্যাপ এবং মাইক্রোসার্ভিসের জন্য দরকারী।
- create_distributed_table_concurrently: একটি বিদ্যমান টেবিলকে পড়া এবং লেখা ব্লক না করে ডিস্ট্রিবিউটেড টেবিলে রূপান্তর করে।
- কো-লোকেশন: একটি ডিস্ট্রিবিউশন কলাম ভাগ করে এমন ডিস্ট্রিবিউটেড টেবিলগুলিকে কো-লোকেট করা যেতে পারে যাতে দক্ষ ডিস্ট্রিবিউটেড জয়েন, ফরেন কী, INSERT..SELECT, স্টোরড প্রসিডিউর এবং ডিস্ট্রিবিউটেড ট্রানজেকশন সক্ষম হয়।
ডিপ্লয়মেন্ট বিকল্পগুলির মধ্যে রয়েছে Azure-এ একটি ম্যানেজড সার্ভিস (Azure Database for PostgreSQL Flexible Server-এ Elastic Clusters), একটি Docker ইমেজ (citusdata/citus), এবং Ubuntu/Debian এবং Red Hat-এর জন্য স্থানীয় প্যাকেজ। মাল্টি-নোড ক্লাস্টারগুলি ওয়ার্কার নোড যোগ করে এবং শার্ড রিব্যালেন্স করে তৈরি করা হয়। Patroni 3.0-এর মাধ্যমে উচ্চ প্রাপ্যতা সমর্থিত, যার প্রথম-শ্রেণীর Citus সমর্থন রয়েছে।
README-তে Citus-কে একটি একক PostgreSQL নোডের চেয়ে বড় অ্যাপ্লিকেশন এবং স্কেলে PostgreSQL বৈশিষ্ট্য প্রয়োজন এমন ওয়ার্কলোডের জন্য অবস্থান করা হয়েছে, যেমন মাল্টি-টেন্যান্ট SaaS, রিয়েল-টাইম অ্যানালিটিক্স ড্যাশবোর্ড, টাইম-সিরিজ এবং IoT ডেটা। ডকুমেন্টেশন, ব্যবহার-কেস গাইড এবং একটি SIGMOD '21 পেপার উল্লেখ করা হয়েছে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.