PayPal avas JunoDB DBMS-i koodi

PayPal on avanud tõrketaluva DBMS-i JunoDB lähtekoodi, mis töötleb andmeid võtmeväärtuse vormingus. Süsteem loodi algselt kõrge turvalisuse, horisontaalse mastaapsuse, tõrketaluvuse ja võimega hallata sadu tuhandeid samaaegseid ühendusi, pidades silmas prognoositavaid latentsusaegu. PayPalis on peaaegu kõik teenused, alates kasutajate sisselogimisest kuni finantstehingute töötlemiseni, seotud JunoDB-ga. Projekti kood on kirjutatud Go-s (Java klienditeek) ja seda levitatakse Apache 2.0 litsentsi all. Edasine arendus võtab kogukonnalt vastu parandusi, parandusi ja muudatusi.

JunoDB arhitektuur põhineb koormuse tasakaalustaja kasutamisel, mis võtab vastu klientrakenduste päringuid ja jagab need puhverserverite vahel, mis pääsevad päringu täitmisel samaaegselt juurde salvestusserverite rühmale. Iga puhverserver loob ühendused kõigi salvestusserveritega korraga ja edastab päringud salvestusserverite rühmale partitsiooniindeksi alusel, mis on salvestatud hajutatud salvestussüsteemi jne konfiguratsioonis.

PayPal avas JunoDB DBMS-i koodi

Andmed jaotatakse ja lingitakse salvestussõlmedega räsimise abil, mis vähendab andmete liikumist, kui klastri sõlmed kasvavad või kahanevad. Veataluvuse tagamiseks kopeeritakse iga andmeosa mitmes salvestussõlmes, mis võimaldab salvestada teavet üksikute serverite rikke korral. Toetatakse geograafiliselt hajutatud hoidlate loomist, mille sõlmede rühmad asuvad erinevates andmekeskustes.

PayPal avas JunoDB DBMS-i koodi

Andmesalvestussõlmedes asuvad need RAM-is või kohalikus salvestusruumis, mis põhineb RocksDB teegil. Püsisalvestamisel salvestatakse andmed krüpteeritud kujul (krüpteerimisvõtme saab määrata kas klient või määrata puhverserveri tasemel).

PayPal avas JunoDB DBMS-i koodi

Andmebaasi rakendustest juurdepääsuks on kaasas klienditeegi, mis pakub API-d Java, Go ja C++ rakenduste jaoks. Kliendiosa on nii palju kui võimalik lihtsustatud ning keeruline loogika ja sätted kantakse võimalusel üle DBMS-i poolele. Kliendi ja tasakaalustaja või puhverserveri vaheline suhtlus toimub krüpteeritud sidekanali kaudu. Päringute haldamiseks ja saatmiseks saate kasutada käsurea liidest, mis kordab kõiki kliendi API võimalusi.

Süsteem on loodud töötlema taotlusi prognoositava madala latentsusajaga, näiteks kolmest salvestussõlmest ja ühest puhverserverist koosnev klaster, mis on moodustatud n1-highmem-32 keskkondadest (32 Intel Xeoni 2.30 GHz protsessorit, 214G RAM ja 450G SSD-põhine salvestusruum) , suutis 2.5 tuhande samaaegse TLS-ühenduse ja 95 tuhande päringu sekundis töötlemisel (16 samaaegse ühenduse ja 99 tuhande päringu vooga) pakkuda fikseeritud viivitusi, mis ei ületa 200% juhtudest 15 ms ja 3000% juhtudest 80 ms sekundis ei ületanud viivitused 6% juhtudest 95 ms ja 15% juhtudest 99 ms. PayPalis teenindavad JunoDB-põhised teenused umbes 350 miljardit päringut päevas.

PayPal avas JunoDB DBMS-i koodi


Allikas: opennet.ru

Lisa kommentaar