فتح PayPal رمز JunoDB DBMS

لقد فتحت PayPal الكود المصدري لنظام إدارة قواعد البيانات JunoDB المتسامح مع الأخطاء، والذي يعالج البيانات بتنسيق قيمة المفتاح. تم تصميم النظام في البداية مع توفير مستوى عالٍ من الأمان وقابلية التوسع الأفقي والتسامح مع الأخطاء والقدرة على التعامل مع مئات الآلاف من الاتصالات المتزامنة مع مراعاة فترات الاستجابة المتوقعة. في PayPal، ترتبط جميع الخدمات تقريبًا، بدءًا من تسجيلات دخول المستخدم وحتى معالجة المعاملات المالية، بـ JunoDB. كود المشروع مكتوب بلغة Go (مكتبة عملاء Java) ويتم توزيعه بموجب ترخيص Apache 2.0. المزيد من التطوير سيقبل التصحيحات والتحسينات والتغييرات من المجتمع.

تعتمد بنية JunoDB على استخدام موازن التحميل الذي يقبل الطلبات من تطبيقات العميل ويوزعها بين الخوادم الوكيلة التي تصل في نفس الوقت إلى مجموعة من خوادم التخزين عند تنفيذ الطلب. يقوم كل خادم وكيل بإنشاء اتصالات بجميع خوادم التخزين مرة واحدة وإعادة توجيه الطلبات إلى مجموعة من خوادم التخزين بناءً على فهرس القسم، الذي يتم تخزينه في تكوين نظام التخزين الموزع وما إلى ذلك.

فتح PayPal رمز JunoDB DBMS

يتم تقسيم البيانات وربطها بعقد التخزين باستخدام التجزئة، مما يقلل من حركة البيانات مع نمو العقد الموجودة في المجموعة أو تقلصها. لضمان التسامح مع الخطأ، يتم نسخ كل جزء من البيانات على عدة عقد تخزين، مما يسمح لك بحفظ المعلومات عند فشل الخوادم الفردية. يتم دعم إنشاء مخازن موزعة جغرافيًا، حيث توجد مجموعات من العقد في مراكز بيانات مختلفة.

فتح PayPal رمز JunoDB DBMS

في عقد تخزين البيانات، توجد في ذاكرة الوصول العشوائي (RAM) أو في وحدة التخزين المحلية بناءً على مكتبة RocksDB. عند تخزينها بشكل دائم، يتم تخزين البيانات في شكل مشفر (يمكن تحديد مفتاح التشفير إما بواسطة العميل أو تعيينه على مستوى الوكيل).

فتح PayPal رمز JunoDB DBMS

للوصول إلى قاعدة البيانات من التطبيقات، يتم توفير مكتبة عميل توفر واجهة برمجة تطبيقات للتطبيقات في Java وGo وC++. يتم تبسيط جزء العميل قدر الإمكان، ويتم نقل المنطق والإعدادات المعقدة إلى جانب نظام إدارة قواعد البيانات كلما أمكن ذلك. يتم التفاعل بين العميل والموازن أو الوكيل من خلال قناة اتصال مشفرة. لإدارة الطلبات وإرسالها، يمكنك استخدام واجهة سطر الأوامر، التي تكرر كافة إمكانيات واجهة برمجة تطبيقات العميل.

تم تصميم النظام لمعالجة الطلبات بزمن وصول منخفض يمكن التنبؤ به، على سبيل المثال، مجموعة من ثلاث عقد تخزين ووكيل واحد، تم تشكيلها من بيئات n1-highmem-32 (32 وحدة معالجة مركزية Intel Xeon بسرعة 2.30 جيجا هرتز، وذاكرة الوصول العشوائي (RAM) سعة 214 جيجا بايت، وتخزين قائم على SSD سعة 450 جيجا بايت) ، تمكنت من توفير تأخيرات ثابتة لا تتجاوز 2.5 مللي ثانية في 95% من الحالات و16 مللي ثانية في 99% عند معالجة 200 ألف اتصال TLS متزامن وتدفق 15 ألف طلب في الثانية (مع 3000 اتصال متزامن وتدفق 80 ألف طلب) في الثانية، لم يتجاوز التأخير 6 مللي ثانية في 95% من الحالات و15 مللي ثانية في 99%. في PayPal، تخدم الخدمات المستندة إلى JunoDB حوالي 350 مليار طلب يوميًا.

فتح PayPal رمز JunoDB DBMS


المصدر: opennet.ru

إضافة تعليق