علی بابا کد PolarDB را باز کرده است، یک DBMS توزیع شده بر اساس PostgreSQL.

علی بابا، یکی از بزرگترین شرکت های فناوری اطلاعات چین، کد منبع DBMS PolarDB توزیع شده را بر اساس PostgreSQL باز کرده است. PolarDB قابلیت های PostgreSQL را با ابزارهایی برای ذخیره سازی داده های توزیع شده با یکپارچگی و پشتیبانی از تراکنش های ACID در زمینه کل پایگاه داده جهانی توزیع شده در گره های خوشه ای مختلف گسترش می دهد. PolarDB همچنین از پردازش پرس و جوی SQL توزیع شده، تحمل خطا و ذخیره سازی داده های اضافی برای بازیابی اطلاعات پس از شکست یک یا چند گره پشتیبانی می کند. اگر نیاز به گسترش فضای ذخیره سازی خود دارید، می توانید به سادگی گره های جدیدی را به خوشه اضافه کنید. کد تحت مجوز Apache 2.0 باز است.

PolarDB از دو جزء تشکیل شده است - افزونه ها و مجموعه ای از وصله ها برای PostgreSQL. وصله‌ها قابلیت‌های هسته PostgreSQL را گسترش می‌دهند و برنامه‌های افزودنی شامل اجزایی هستند که به طور جداگانه از PostgreSQL پیاده‌سازی می‌شوند، مانند مکانیزم مدیریت تراکنش توزیع‌شده، سرویس‌های جهانی، پردازشگر جستجوی SQL توزیع‌شده، ابرداده‌های اضافی، ابزارهایی برای مدیریت خوشه، استقرار یک خوشه، و ساده‌سازی مهاجرت سیستم های موجود به آن

وصله ها یک نسخه توزیع شده از مکانیسم کنترل دسترسی موازی به داده ها با استفاده از چند نسخه (MVCC، کنترل همزمانی چند نسخه) را برای سطوح مختلف جداسازی به هسته PostgreSQL اضافه می کنند. بیشتر قابلیت های PolarDB در برنامه های افزودنی گنجانده شده است که وابستگی به PostgreSQL را کاهش می دهد و به روز رسانی و پیاده سازی راه حل های مبتنی بر PolarDB را ساده می کند (این انتقال به نسخه های جدید PostgreSQL و حفظ سازگاری کامل با PostgreSQL را ساده می کند). برای مدیریت خوشه، از جعبه ابزار pgxc_ctl بر اساس ابزاری مشابه از PostgreSQL-XC و PostgreSQL-XL استفاده می شود.

سه جزء اساسی در یک خوشه وجود دارد: گره های پایگاه داده (DN)، مدیر خوشه (CM) و خدمات مدیریت تراکنش (TM). علاوه بر این، می توان از یک متعادل کننده بار پروکسی استفاده کرد. هر کامپوننت فرآیند جداگانه ای است و می تواند بر روی سرور متفاوتی اجرا شود. گره های پایگاه داده پرس و جوهای SQL را از مشتریان ارائه می کنند و در عین حال به عنوان هماهنگ کننده اجرای پرس و جو توزیع شده با مشارکت سایر گره های پایگاه داده عمل می کنند. مدیر خوشه وضعیت هر گره پایگاه داده را نظارت می کند، پیکربندی خوشه را ذخیره می کند و ابزارهایی را برای مدیریت، پشتیبان گیری، تعادل بار، به روز رسانی، راه اندازی و توقف گره ها فراهم می کند. سرویس مدیریت تراکنش مسئول حفظ یکپارچگی کلی در کل خوشه است.

علی بابا کد PolarDB را باز کرده است، یک DBMS توزیع شده بر اساس PostgreSQL.

PolarDB مبتنی بر معماری محاسباتی توزیع شده Shared-nothing است که بر اساس آن داده ها هنگام ذخیره بر روی گره های مختلف، بدون استفاده از ذخیره سازی مشترک برای همه گره ها توزیع می شوند و هر گره مسئول بخشی از داده های مرتبط با آن است و پرس و جوهای مرتبط را انجام می دهد. به داده ها هر جدول با استفاده از هش بر اساس کلید اصلی به قطعات (sharding) تقسیم می شود. اگر درخواست شامل داده های واقع در گره های مختلف باشد، یک مکانیسم اجرای تراکنش توزیع شده و یک هماهنگ کننده تراکنش فعال می شوند تا از اتمی، سازگاری، جداسازی و قابلیت اطمینان (ACID) اطمینان حاصل شود.

برای اطمینان از تحمل خطا، هر بخش حداقل به سه گره تکرار می شود. برای صرفه‌جویی در منابع، داده‌های کامل تنها شامل دو نسخه است و یکی به ذخیره‌سازی گزارش بازگشتی (WAL) محدود می‌شود. یکی از دو گره با کپی کامل به عنوان رهبر انتخاب می شود و در پردازش درخواست ها شرکت می کند. گره دوم به عنوان یدکی برای بخش داده مورد نظر عمل می کند و گره سوم در انتخاب گره پیشرو شرکت می کند و می تواند برای بازیابی اطلاعات در صورت خرابی دو گره با کپی کامل استفاده شود. همانندسازی داده ها بین گره های خوشه ای با استفاده از الگوریتم Paxos سازماندهی می شود، که یک تعریف سازگار از اجماع را در شبکه ای با گره های بالقوه غیر قابل اعتماد تضمین می کند.

اشاره شده است که قرار است عملکرد کامل DBMS PolarDB در سه نسخه آشکار شود: در نسخه اول، ابزارهای تکرار، دسترسی بالا و مدیریت خوشه منتشر خواهد شد. نسخه دوم دارای یک سیستم اجرای تراکنش توزیع شده است که از ACID متقاطع و اجرای SQL توزیع شده پشتیبانی می کند. نسخه سوم شامل یک پلاگین برای PostgreSQL و ابزارهایی برای توزیع انعطاف‌پذیر داده در گره‌ها، از جمله قرار دادن تطبیقی ​​بخش‌ها برای دستیابی به عملکرد بهینه و توانایی گسترش خوشه با افزودن گره‌های جدید است.

منبع: opennet.ru

اضافه کردن نظر