PayPal JunoDB DBMS kodini ochdi

PayPal kalit-qiymat formatida ma'lumotlarni boshqaradigan xatolarga chidamli JunoDB DBMSning manba kodini ochdi. Tizim dastlab yuqori darajadagi xavfsizlik, gorizontal miqyoslilik, nosozliklarga chidamlilik va bashorat qilinadigan kechikishlar bilan bir vaqtda yuz minglab ulanishlarni boshqarish qobiliyati bilan ishlab chiqilgan. PayPal-da deyarli barcha xizmatlar, foydalanuvchi loginlaridan tortib moliyaviy tranzaksiyalarni qayta ishlashgacha JunoDB bilan bog'langan. Loyiha kodi Go (Java mijozlar kutubxonasi) da yozilgan va Apache 2.0 litsenziyasi ostida tarqatiladi. Keyingi rivojlanish jamiyat tomonidan tuzatishlar, yaxshilanishlar va o'zgarishlarni qabul qiladi.

JunoDB arxitekturasi mijoz ilovalari soʻrovlarini qabul qiluvchi va soʻrov bajarilganda bir vaqtning oʻzida saqlash serverlari guruhiga kirishni taʼminlovchi proksi-serverlar oʻrtasida taqsimlovchi yuk balanslagichidan foydalanishga asoslangan. Har bir proksi-server bir vaqtning o'zida barcha saqlash serverlariga ulanish o'rnatadi va so'rovlarni taqsimlangan saqlash tizimi va boshqalar konfiguratsiyasida saqlanadigan bo'lim indeksiga asoslangan saqlash serverlari guruhiga yo'naltiradi.

PayPal JunoDB DBMS kodini ochdi

Ma'lumotlar bo'linadi va xeshlash yordamida saqlash tugunlari bilan bog'lanadi, bu esa klasterdagi tugunlar o'sishi yoki qisqarishi natijasida ma'lumotlar harakatini kamaytiradi. Xatolarga chidamliligini ta'minlash uchun har bir ma'lumot bir nechta saqlash tugunlarida takrorlanadi, bu esa alohida serverlar ishlamay qolganda ma'lumotni saqlash imkonini beradi. Geografik taqsimlangan omborlarni yaratish qo'llab-quvvatlanadi, ularda tugunlar guruhlari turli ma'lumotlar markazlarida joylashgan.

PayPal JunoDB DBMS kodini ochdi

Ma'lumotlarni saqlash tugunlarida ular RAMda yoki RocksDB kutubxonasiga asoslangan mahalliy xotirada joylashgan. Doimiy saqlanganida, ma'lumotlar shifrlangan shaklda saqlanadi (shifrlash kaliti mijoz tomonidan aniqlanishi yoki proksi-server darajasida o'rnatilishi mumkin).

PayPal JunoDB DBMS kodini ochdi

Ilovalardan ma'lumotlar bazasiga kirish uchun Java, Go va C++ ilovalari uchun API taqdim etuvchi mijoz kutubxonasi taqdim etiladi. Mijoz qismi imkon qadar soddalashtirilgan va murakkab mantiq va sozlamalar imkon qadar DBMS tomoniga o'tkaziladi. Mijoz va balanslashtiruvchi yoki proksi-server o'rtasidagi o'zaro aloqa shifrlangan aloqa kanali orqali amalga oshiriladi. So'rovlarni boshqarish va yuborish uchun siz mijoz API ning barcha imkoniyatlarini takrorlaydigan buyruq qatori interfeysidan foydalanishingiz mumkin.

Tizim prognoz qilinadigan past kechikishlar bilan so'rovlarni qayta ishlash uchun mo'ljallangan, masalan, n1-highmem-32 muhitidan (32 ta Intel Xeon 2.30 Gigagertsli protsessor, 214 G RAM va 450 G SSD asosidagi xotira) yaratilgan uchta saqlash tugunlari va bitta proksi-serverdan iborat klaster. , bir vaqtning o'zida 2.5 ming TLS ulanishini qayta ishlashda 95% hollarda 16 ms va 99% da 200 ms dan oshmaydigan sobit kechikishlarni va sekundiga 15 ming so'rov oqimini (bir vaqtning o'zida 3000 ulanish va 80 ming so'rov oqimi bilan) ta'minlay oldi. soniyada kechikishlar 6% hollarda 95 ms va 15% da 99 ms dan oshmadi. PayPal-da JunoDB-ga asoslangan xizmatlar kuniga 350 milliardga yaqin so'rovlarga xizmat qiladi.

PayPal JunoDB DBMS kodini ochdi


Manba: opennet.ru

a Izoh qo'shish