PayPal je odprl kodo JunoDB DBMS

PayPal je odprl izvorno kodo DBMS JunoDB, odpornega na napake, ki manipulira s podatki v obliki ključ-vrednost. Sistem je bil prvotno zasnovan z visoko varnostjo, vodoravno razširljivostjo, odpornostjo na napake in zmožnostjo obvladovanja več sto tisoč hkratnih povezav z upoštevanjem predvidljivih zakasnitev. Pri PayPalu so skoraj vse storitve, od prijav uporabnikov do obdelave finančnih transakcij, vezane na JunoDB. Koda projekta je napisana v Go (odjemalska knjižnica Java) in se distribuira pod licenco Apache 2.0. Nadaljnji razvoj bo sprejel popravke, izboljšave in spremembe skupnosti.

Arhitektura JunoDB temelji na uporabi izravnalnika obremenitve, ki sprejema zahteve iz odjemalskih aplikacij in jih distribuira med proxy strežnike, ki hkrati dostopajo do skupine strežnikov za shranjevanje, ko se zahteva izvede. Vsak strežnik proxy vzpostavi povezave z vsemi strežniki za shranjevanje hkrati in posreduje zahteve skupini strežnikov za shranjevanje na podlagi indeksa particije, ki je shranjen v konfiguraciji porazdeljenega sistema za shranjevanje etcd.

PayPal je odprl kodo JunoDB DBMS

Podatki so particionirani in povezani z vozlišči za shranjevanje s pomočjo zgoščevanja, kar zmanjša premik podatkov, ko vozlišča v gruči rastejo ali krčijo. Da bi zagotovili odpornost na napake, se vsak del podatkov replicira na več vozliščih za shranjevanje, kar vam omogoča shranjevanje informacij, ko posamezni strežniki odpovejo. Podprto je ustvarjanje geografsko porazdeljenih shramb, v katerih so skupine vozlišč v različnih podatkovnih centrih.

PayPal je odprl kodo JunoDB DBMS

Na vozliščih za shranjevanje podatkov se nahajajo v RAM-u ali v lokalnem pomnilniku, ki temelji na knjižnici RocksDB. Pri trajni hrambi so podatki shranjeni v šifrirani obliki (šifrirni ključ lahko določi odjemalec ali nastavi na ravni proxyja).

PayPal je odprl kodo JunoDB DBMS

Za dostop do baze podatkov iz aplikacij je na voljo odjemalska knjižnica, ki ponuja API za aplikacije v Javi, Go in C++. Odjemalski del je čim bolj poenostavljen, kompleksna logika in nastavitve pa se, kadar je to mogoče, prenesejo na stran DBMS. Interakcija med odjemalcem in balanserjem ali proxyjem se izvaja preko šifriranega komunikacijskega kanala. Za upravljanje in pošiljanje zahtev lahko uporabite vmesnik ukazne vrstice, ki posnema vse zmožnosti odjemalskega API-ja.

Sistem je zasnovan za obdelavo zahtev s predvidljivimi nizkimi zakasnitvami, na primer gruče treh pomnilniških vozlišč in enega proxyja, oblikovanega iz okolij n1-highmem-32 (32 procesorjev Intel Xeon 2.30 GHz, 214 G RAM-a in 450 G shramba na osnovi SSD) , je lahko zagotovil fiksne zakasnitve, ki niso presegle 2.5 ms v 95 % primerov in 16 ms v 99 % pri obdelavi 200 tisoč sočasnih povezav TLS in pretoku 15 tisoč zahtev na sekundo (s 3000 sočasnimi povezavami in pretokom 80 tisoč zahtev na sekundo zakasnitve niso presegle 6 ms v 95 % primerov in 15 ms v 99 %). Pri PayPalu storitve, ki temeljijo na JunoDB, služijo približno 350 milijardam zahtev na dan.

PayPal je odprl kodo JunoDB DBMS


Vir: opennet.ru

Dodaj komentar