PayPal avas JunoDB andmebaasi allika koodi

PayPal avas oma avatud lĂ€htekoodiga talletuslike andmebaasi JunoDB, mis manipuleerib andmetega vĂ”tme-vÀÀrtuse formaadis. SĂŒsteem on algselt projekteeritud kĂ”rgendatud turvalisuse, horisontaalse skaleeritavuse, talitlushĂ€irete taluvuse ja vĂ”imega töödelda sadu tuhandeid samasuguseid ĂŒhendusi prognoositavate viivitustega. PayPalis on praktiliselt kĂ”ik teenused, alates kasutajate sisselogimisest kuni rahatehingute töötlemiseni, seotud JunoDB-ga. Projekti kood on kirjutatud Go keeles (klientraamatukogu Java-s) ja seda jagatakse Apache 2.0 litsentsi alusel. Edasiarendamisel vĂ”etakse vastu muudatused, parandused ja tĂ€iendused kogukonnalt.

JunoDB arhitektuur pĂ”hineb koormuse tasandamise kasutamisel, mis vĂ”tab vastu pĂ€ringud klientrakendustelt ja jagab need edasi proxy-serverite vahel, mis samal ajal ĂŒhenduvad andmehoidla grupiga. serverid Iga proxy-server loob ĂŒhendused kohe kĂ”igi serveritega andmehoidlatega ja suunab pĂ€ringud andmehoidla serverite gruppi, tuginedes sektsioonide indekseerimisele, mis salvestatakse jaotatud konfiguratsioonihaldussĂŒsteemis etcd.

PayPal avas JunoDB andmebaasi allika koodi

Andmed jaotatakse ja siduvad neid andmehoidlatele kasutades hajutatud indekseerimist, mis vĂ€hendab andmete liikumist klastris sĂ”lmede suurendamise vĂ”i vĂ€hendamise korral. TalitlushĂ€irete taluvuse tagamiseks kopeeritakse iga andmepartii mitmele andmehoidla sĂ”lmele, mis vĂ”imaldab teavet sĂ€ilitada ĂŒksikute serverite rikke korral. Toetatakse territoriaalselt jaotatud talletusi, kus sĂ”lmede grupid on paigutatud erinevatesse andmekeskustesse.

PayPal avas JunoDB andmebaasi allika koodi

Andmed talletatakse andmehoidla sĂ”lmedes kas operatiivmĂ€lu vĂ”i kohaliku salvestussĂŒsteemi pĂ”hjal, kasutades RocksDB raamatukogu. PĂŒsivalt salvestamise korral talletatakse andmed krĂŒpteeritud kujul (krĂŒpteerimise vĂ”ti vĂ”ib olla mÀÀratud nii kliendi poolt kui ka proxy tasandil).

PayPal avas JunoDB andmebaasi allika koodi

Rakendustest andmebaasile juurdepÀÀsuks on saadaval klienditeek, mis pakub API-d rakenduste jaoks, mis on kirjutatud Java, Go ja C++ keeltes. Kliendi osa on maksimaalselt lihtsustatud, keeruline loogika ja seaded on vĂ”imaluse korral viidud andmebaasi poole. Suhtlemine kliendi ja koormuse tasakaalustaja vĂ”i proxy vahel toimub krĂŒpteeritud suhtluskanali kaudu. Halduseks ja pĂ€ringute saatmiseks on vĂ”imalik kasutada kĂ€surealiidest, mis tagab kĂ”ik kliendi API vĂ”imalused.

SĂŒsteem on projekteeritud töötlema pĂ€ringuid ettearvatava madala latentsusega. NĂ€iteks kolmest salvestusnode ja ĂŒhest proxy'st koosnev klaster, mis on loodud keskkondadest n1-highmem-32 (32 CPU Intel Xeon 2.30GHz, 214G RAM ja 450G SSD-pĂ”hise salvestust), suudab pakkuda fikseeritud latentsust, mis ei ĂŒleta 2.5 ms 95% juhtudest ja 16 ms 99% puhul, töötades 200 000 samaaegse TLS-ĂŒhenduse ja 15 000 pĂ€ringu vooguga sekundis (3000 samaaegse ĂŒhenduse ja 80 000 pĂ€ringu voogu töötlemisel ei ĂŒletanud latentsus 6 ms 95% juhtudest ja 15 ms 99% puhul). PayPalis teenindavad JunoDB pĂ”hised teenused umbes 350 miljardit pĂ€ringut pĂ€evas.

PayPal avas JunoDB andmebaasi allika koodi


Allikas: opennet.ru
Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster