منصوبے کے بارے میں

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 پر ایک مینیجڈ سروس (Elastic Clusters in Azure Database for PostgreSQL Flexible Server)، ایک Docker امیج (citusdata/citus)، اور Ubuntu/Debian اور Red Hat کے لیے مقامی پیکجز شامل ہیں۔ ملٹی نوڈ کلسٹرز ورکر نوڈز شامل کر کے اور شیئرڈز کو ری بیلنس کر کے بنائے جاتے ہیں۔ ہائی ایویلیبیلٹی Patroni 3.0 کے ذریعے supported ہے، جس میں Citus کی فرسٹ کلاس حمایت موجود ہے۔ README Citus کو ان ایپلیکیشنز کے لیے پیش کرتا ہے جو ایک واحد PostgreSQL نوڈ سے بڑھ رہی ہیں اور ان ورک لوڈز کے لیے جنہیں پیمانے پر PostgreSQL خصوصیات کی ضرورت ہوتی ہے، جیسے ملٹی ٹیننٹ SaaS، ریئل ٹائم اینالیٹکس ڈیش بورڈز، ٹائم سیریز اور IoT ڈیٹا۔ مزید تفصیل کے لیے دستاویزات، یوز کیس گائیڈز اور ایک SIGMOD '21 پیپر کا حوالہ دیا گیا ہے۔