PayPal ir atvēris Datu bāzes JunoDB kodu

Uzņēmums PayPal ir publicējis avota kodu izturīgai datu bāzei JunoDB, kas apstrādā datus atslēga-vērtība formātā. Sistēma sākotnēji projektēta ar ņemšanu vērā augstu drošību, horizontālu mērogojamību, izturīgumu un spēju apstrādāt simtiem tūkstošu vienlaicīgu savienojumu ar prognozējamu aizturi. PayPal faktiski visi pakalpojumi, sākot no lietotāju pieteikšanās līdz finanšu darījumu apstrādei, ir atkarīgi no JunoDB. Projekta kods ir uzrakstīts valodā Go (klientu bibliotēka Java) un tiek izplatīts saskaņā ar Apache 2.0 licenci. Turpmākajā attīstībā tiks pieņemti labojumi, uzlabojumi un izmaiņas no kopienas.

JunoDB arhitektūra balstās uz slodzes balansētāja izmantošanu, kas pieņem pieprasījumus no klientu lietojumprogrammām un sadala tos starp starpserveriem, kas vienlaicīgi piekļūst grupai serveriem uzglabāšanas izvietošanas laikā. Katrs starpserveris izveido savienojumus ar visiem serveriem uzglabāšanas serveriem un novirza pieprasījumus grupai uzglabāšanas serveru, pamatojoties uz fragmentācijas indeksu, kas tiek glabāts izplatītā konfigurācijas uzglabāšanas sistēmā etcd.

PayPal ir atvēris Datu bāzes JunoDB kodu

Dati tiek fragmentēti un sasaistīti ar uzglabāšanas mezgliem, izmantojot hashes, kas samazina datu pārvietošanu, palielinoties vai samazinoties mezglu skaitam klasterī. Lai nodrošinātu izturīgumu, katrs datu bloks tiek replikēts vairākos uzglabāšanas mezglos, ļaujot saglabāt informāciju, ja atsevišķi serveri izkrīt. Tiek atbalstīta teritoriāli sadalītu uzglabāšanas sistēmu izveide, kur grupas mezgli ir izvietoti dažādos datu centros.

PayPal ir atvēris Datu bāzes JunoDB kodu

Uzglabāšanas mezglos dati tiek glabāti operatīvajā atmiņā vai vietējā uzglabāšanā, pamatojoties uz bibliotēku RocksDB. Uz pastāvīgu glabāšanu tiek šifrēti dati (šifrēšanas atslēga var tikt noteikta gan no klienta, gan noteikta līmenī starpserveriem).

PayPal ir atvēris Datu bāzes JunoDB kodu

Lai piekļūtu datu bāzei no lietojumprogrammām, tiek piegādāta klienta bibliotēka, kas nodrošina API Java, Go un C++ valodās. Klienta daļa ir maksimāli vienkāršota, bet sarežģītā loģika un iestatījumi ir pārcelti uz SDB pusi. Saziņa starp klientu un slodzes balansētāju vai proksi notiek, izmantojot šifru kanālu. Lai pārvaldītu un nosūtītu pieprasījumus, var izmantot komandrindas interfeisu, kas atspoguļo visas klienta API iespējas.

Sistēma ir projektēta, lai apstrādātu pieprasījumus ar prognozējami zemu latentumu, piemēram, klasteris no trim uzglabāšanas mezgliem un viena proksi, kas izveidots no vides n1-highmem-32 (32 CPU Intel Xeon 2.30GHz, 214G RAM un 450G SSD uzglabāšana), spēj nodrošināt stabilus latentumus, kas nepārsniedz 2.5 ms 95% gadījumu un 16 ms 99% gadījumos, apstrādājot 200 tūkstošus vienlaicīgu TLS savienojumu un plūsmu 15 tūkstošus pieprasījumu sekundē (pie 3000 vienlaicīgiem savienojumiem un plūsmā 80 tūkstoši pieprasījumu sekundē latentums nepārsniedza 6 ms 95% gadījumu un 15 ms 99%). PayPal pakalpojumi, kas balstīti uz JunoDB, apkalpo apmēram 350 miljardus pieprasījumu dienā.

PayPal ir atvēris Datu bāzes JunoDB kodu


Avots: opennet.lv
Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster