PayPal avas JunoDB andmebaasi lÀhtekoodi

PayPal avaldas JunoDB, mittetĂ€ieliku andmebaasi lĂ€htekoodid, mis manipuleerivad vĂ”tme-vÀÀrtuse formaadis andmeid. SĂŒsteem on algselt projekteeritud kĂ”rge turvalisuse, horisontaalse skaleeritavuse, rikkete kindluse ning vĂ”imekuse jaoks töödelda sadu tuhandeid samaaegseid ĂŒhendusi ettearvatavate viivitustega. Peaaegu kĂ”ik PayPali teenused, alates kasutajate sisselogimisest kuni rahandustehingute töötlemiseni, sĂ”ltuvad JunoDB-st. Projekti kood on kirjutatud Go keeles (klienditeeki Java keeles) ja jagatakse Apache 2.0 litsentsi alusel. Edasises arenduses vĂ”etakse kogukonna parandusi, tĂ€iustusi ja muudatusi arvesse.

JunoDB arhitektuur pĂ”hineb koormuse tasakaalustajal, mis vĂ”tab vastu pĂ€ringud kliendirakendustelt ja jagab need edasi vaheserveritele, mis samal ajal pöördudes andmebaasi rĂŒhma poole serverite pĂ€ringu tĂ€itmise ajal. Iga vaheserver loob ĂŒhenduse kĂ”igi serveritega and redirects requests to the storage server group based on a partitioning index, which is stored in a distributed storage configuration system called etcd.

PayPal avas JunoDB andmebaasi lÀhtekoodi

Data is partitioned and mapped to storage nodes using hashing, which reduces data movement when nodes in the cluster are added or removed. To ensure fault tolerance, each portion of data is replicated across multiple storage nodes, preserving information in the event of individual server failures. Territorially distributed storages are supported, where groups of nodes are located in different data centers.

PayPal avas JunoDB andmebaasi lÀhtekoodi

On storage nodes, data is placed in memory or in local storage based on the RocksDB library. For persistent storage, data is stored in an encrypted format (the encryption key can be defined by either the client or set at the proxy level).

PayPal avas JunoDB andmebaasi lÀhtekoodi

Andmebaasi juurdepÀÀsuks saadetakse rakendustele kliendiraamatukogu, mis pakub API-d Java, Go ja C++ keelte rakendustele. Kliendi osa on maksimaalselt lihtsustatud ning keeruline loogika ja seadistused on vĂ”imalusel viidud andmebaasi poolele. Kliendi ja tasakaalustaja vĂ”i proksi vaheline suhtlemine toimub krĂŒpteeritud suhtluskanali kaudu. Juhtimiseks ja pĂ€ringute saatmiseks saab kasutada kĂ€surealiidest, mis katab kogu kliendi API vĂ”imalused.

SĂŒsteem on projekteeritud töötlema pĂ€ringuid ettearvatavate madalate viivitustega; nĂ€iteks kolmepoolne salvestuskluster ja ĂŒks proksi, mis on moodustatud n1-highmem-32 (32 CPU Intel Xeon 2.30GHz, 214G RAM ja 450G SSD-pĂ”hine salvestus) keskkondadest, suutis pakkuda fikseeritud viivitusi, mis ei ĂŒletanud 2,5 ms 95% juhtudest ja 16 ms 99% juhtudest 200 000 samaaegse TLS-ĂŒhenduse ja 15 000 pĂ€ringu kohta sekundis (3000 samaaegse ĂŒhenduse ja 80 000 pĂ€ringu mahu korral ei ĂŒletanud viivitused 6 ms 95% juhtudest ja 15 ms 99% juhtudest). PayPalis teenindavad JunoDB baasil teenused umbes 350 miljardit pĂ€ringut pĂ€evas.

PayPal avas JunoDB andmebaasi lÀhtekoodi


Allikas: opennet.ru
Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster