PayPal je odprl kodo SODB JunoDB

Podjetje PayPal je odprlo izvorno kodo odporne podatkovne baze JunoDB, ki upravlja podatke v formatu ključ-vrednost. Sistem je bil prvotno zasnovan z mislijo na visoko varnost, horizontalno razširljivost, odpornost na napake in sposobnost obdelave stotin tisoč hkratnih povezav s predvidljivimi zamudami. V PayPalu so praktično vse storitve, od prijave uporabnikov do obdelave finančnih transakcij, odvisne od JunoDB. Koda projekta je napisana v jeziku Go (odjemalska knjižnica v Javi) in se distribuiše pod licenco Apache 2.0. V nadaljnjem razvoju bodo sprejete izboljšave, popravki in spremembe s strani skupnosti.

Arhitektura JunoDB temelji na uporabi uravnoteževalnika obremenitve, ki sprejema zahteve od odjemalskih aplikacij in jih razporeja med proxy strežniki, ki hkrati dostopajo do skupine strežnikov hranilnikov pri obdelavi zahteve. Vsak proxy strežnik vzpostavi povezave takoj z vsemi strežniki hranilniki in preusmeri zahteve na skupino strežnikov za shranjevanje na podlagi indeksa particioniranja, ki se hrani v razporejeni sistemu za shranjevanje konfiguracije etcd.

PayPal je odprl kodo SODB JunoDB

Podatki se particionirajo in povezujejo z enotami shranjevanja z uporabo hashranja, kar zmanjša premikanje podatkov ob povečevanju ali zmanjševanju enot v grozdu. Za zagotavljanje odpornosti na napake se vsak del podatkov replicira na več enotah shranjevanja, kar omogoča ohranitev informacij v primeru okvare posameznih strežnikov. Podprto je tudi ustvarjanje geografsko razporejenih shranjevanj, kjer so skupine enot nameščene v različnih podatkovnih centrih.

PayPal je odprl kodo SODB JunoDB

Na enotah shranjevanja podatki ležijo v pomnilniku ali v lokalnem shranjevanju na osnovi knjižnice RocksDB. Pri stalnem shranjevanju so podatki shranjeni v šifrirani obliki (ključe šifriranja lahko definira tako odjemalec kot se nastavi na ravni proxy strežnika).

PayPal je odprl kodo SODB JunoDB

Za dostop do baze podatkov iz aplikacij je na voljo odjemalska knjižnica, ki nudi API za aplikacije v programskih jezikih Java, Go in C++. Odjemalska komponenta je čim bolj poenostavljena, kompleksna logika in nastavitve pa so po možnosti prenesene na stran SGBD. Interakcija med odjemalcem in obteževalnikom ali proxyjem poteka preko šifriranega komunikacijskega kanala. Za upravljanje in pošiljanje zahtevkov lahko uporabite vmesnik ukazne vrstice, ki ponavlja vse možnosti odjemalskega API-ja.

Sistem je zasnovan za obdelavo zahtevkov z napovedljivo nizkimi zakasnitvami, na primer, grozd iz treh shranjevalnih vozlišč in enega proxyja, oblikovan iz okolij n1-highmem-32 (32 CPU Intel Xeon 2.30GHz, 214G RAM in 450G shranjevanja na osnovi SSD), je lahko zagotovil fiksne zakasnitve, ki niso presegale 2,5 ms v 95% primerov in 16 ms v 99% pri obdelavi 200 tisoč hkratnih TLS povezav in toku 15 tisoč zahtevkov na sekundo (pri 3000 hkratnih povezavah in toku 80 tisoč zahtevkov na sekundo zakasnitve niso presegale 6 ms v 95% primerov in 15 ms v 99%). V PayPal-ovih storitvah, ki temeljijo na JunoDB, obravnavajo približno 350 milijard zahtevkov na dan.

PayPal je odprl kodo SODB JunoDB


Izvor: opennet.ru
Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster