پی پال کد JunoDB DBMS را باز کرد

پی پال کد منبع JunoDB را باز کرده است، یک DBMS مقاوم در برابر خطا که داده ها را در قالب کلید-مقدار دستکاری می کند. این سیستم در ابتدا با امنیت بالا، مقیاس پذیری افقی، تحمل خطا و توانایی مدیریت صدها هزار اتصال همزمان با تاخیرهای قابل پیش بینی طراحی شده بود. در پی پال، تقریباً تمام خدمات، از ورود کاربر گرفته تا پردازش تراکنش‌های مالی، به JunoDB مرتبط هستند. کد پروژه در Go (کتابخانه کلاینت جاوا) نوشته شده و تحت مجوز Apache 2.0 توزیع شده است. در توسعه بیشتر، اصلاحات، بهبودها و تغییرات از جامعه پذیرفته خواهد شد.

معماری JunoDB مبتنی بر استفاده از یک متعادل کننده بار است که درخواست های برنامه های مشتری را می پذیرد و آنها را بین سرورهای پروکسی توزیع می کند که به طور همزمان به گروهی از سرورهای ذخیره سازی هنگام درخواست دسترسی دارند. هر پروکسی به طور همزمان به همه سرورهای ذخیره سازی ارتباط برقرار می کند و درخواست ها را به گروهی از سرورهای ذخیره سازی بر اساس شاخص پارتیشن ذخیره شده در سیستم ذخیره سازی توزیع شده پیکربندی etcd هدایت می کند.

پی پال کد JunoDB DBMS را باز کرد

داده ها با استفاده از هش کردن به گره های ذخیره سازی پارتیشن بندی می شوند تا حرکت داده ها را با رشد یا کوچک شدن گره ها در یک خوشه کاهش دهند. برای اطمینان از تحمل خطا، هر بخش از داده ها در چندین گره ذخیره سازی تکرار می شود، که به شما امکان می دهد در صورت خرابی سرورهای جداگانه، اطلاعات را ذخیره کنید. ایجاد ذخیره‌سازی‌های توزیع‌شده جغرافیایی پشتیبانی می‌شود، که در آن گروه‌هایی از گره‌ها در مراکز داده مختلف قرار دارند.

پی پال کد JunoDB DBMS را باز کرد

در گره های ذخیره سازی، داده ها بر اساس کتابخانه RocksDB در RAM یا در حافظه محلی قرار می گیرند. با ذخیره سازی مداوم، داده ها به صورت رمزگذاری شده ذخیره می شوند (کلید رمزگذاری را می توان هم توسط مشتری تعیین کرد و هم در سطح پروکسی تنظیم کرد).

پی پال کد JunoDB DBMS را باز کرد

برای دسترسی به پایگاه داده از برنامه ها، یک کتابخانه کلاینت ارائه شده است که یک API برای برنامه های کاربردی در Java، Go و C++ ارائه می دهد. بخش مشتری تا حد امکان ساده شده است و منطق و تنظیمات پیچیده در صورت امکان به سمت DBMS منتقل می شود. تعامل بین مشتری و متعادل کننده یا پروکسی از طریق یک کانال ارتباطی رمزگذاری شده انجام می شود. می توانید از یک رابط خط فرمان برای مدیریت و ارسال درخواست ها استفاده کنید که عملکرد کامل API مشتری را تقلید می کند.

این سیستم برای پردازش درخواست‌هایی با تاخیر کم قابل پیش‌بینی طراحی شده است، به عنوان مثال، مجموعه‌ای از سه گره ذخیره‌سازی و یک پروکسی، که از محیط‌های n1-highmem-32 (32 پردازنده Intel Xeon 2.30GHz، رم 214G و حافظه مبتنی بر SSD 450G) تشکیل شده‌اند. ، توانست در هنگام پردازش 2.5 هزار اتصال TLS همزمان و جریان 95 هزار درخواست در ثانیه (با 16 اتصال همزمان و جریان 99 هزار درخواست، تاخیرهای ثابت در 200٪ موارد 15 میلی ثانیه و در 3000٪ 80 میلی ثانیه را ارائه دهد. تأخیر در هر ثانیه در 6 درصد موارد از 95 میلی ثانیه و در 15 درصد موارد از 99 میلی ثانیه تجاوز نکرد. در PayPal، خدمات مبتنی بر JunoDB حدود 350 میلیارد درخواست در روز ارائه می کنند.

پی پال کد JunoDB DBMS را باز کرد


منبع: opennet.ru

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