PayPal je otvorio JunoDB DBMS kod

PayPal je otvorio izvorni kod DBMS-a JunoDB otpornog na pogreške, koji manipulira podacima u formatu ključ-vrijednost. Sustav je inicijalno dizajniran s visokom sigurnošću, horizontalnom skalabilnošću, tolerancijom grešaka i sposobnošću rukovanja stotinama tisuća istodobnih veza s predvidljivim kašnjenjima na umu. U PayPalu su gotovo sve usluge, od prijave korisnika do obrade financijskih transakcija, vezane uz JunoDB. Kôd projekta napisan je u Go (biblioteci Java klijenta) i distribuira se pod licencom Apache 2.0. Daljnji razvoj će prihvatiti ispravke, poboljšanja i promjene od zajednice.

Arhitektura JunoDB-a temelji se na korištenju balansera opterećenja koji prihvaća zahtjeve od klijentskih aplikacija i distribuira ih između proxy poslužitelja koji istovremeno pristupaju grupi poslužitelja za pohranu kada se zahtjev izvrši. Svaki proxy poslužitelj uspostavlja veze sa svim poslužiteljima za pohranu odjednom i prosljeđuje zahtjeve grupi poslužitelja za pohranu na temelju indeksa particije, koji je pohranjen u konfiguraciji distribuiranog sustava za pohranu etcd.

PayPal je otvorio JunoDB DBMS kod

Podaci se particioniraju i povezuju s čvorovima za pohranu pomoću hashiranja, što smanjuje kretanje podataka kako čvorovi u klasteru rastu ili se smanjuju. Kako bi se osigurala tolerancija na greške, svaki dio podataka se replicira na nekoliko čvorova za pohranu, što vam omogućuje spremanje informacija kada pojedinačni poslužitelji zakažu. Podržano je stvaranje zemljopisno raspodijeljenih skladišta u kojima se grupe čvorova nalaze u različitim podatkovnim centrima.

PayPal je otvorio JunoDB DBMS kod

Na čvorovima za pohranu podataka oni se nalaze u RAM-u ili u lokalnoj pohrani na temelju biblioteke RocksDB. Kada se trajno pohranjuju, podaci se pohranjuju u šifriranom obliku (ključ za šifriranje može odrediti klijent ili postaviti na proxy razini).

PayPal je otvorio JunoDB DBMS kod

Za pristup bazi podataka iz aplikacija isporučuje se klijentska biblioteka koja pruža API za aplikacije u Javi, Go i C++. Klijentski dio je maksimalno pojednostavljen, a složena logika i postavke se prenose na stranu DBMS-a kad god je to moguće. Interakcija između klijenta i balansera ili proxyja odvija se putem šifriranog komunikacijskog kanala. Za upravljanje i slanje zahtjeva možete koristiti sučelje naredbenog retka, koje replicira sve mogućnosti API-ja klijenta.

Sustav je dizajniran za obradu zahtjeva s predvidljivim niskim latencijama, na primjer, klaster od tri čvora za pohranu i jedan proxy, formiran od n1-highmem-32 okruženja (32 procesora Intel Xeon 2.30 GHz, 214 G RAM-a i 450 G SSD-a za pohranu) , bio je u mogućnosti osigurati fiksna kašnjenja koja ne prelaze 2.5 ms u 95% slučajeva i 16 ms u 99% pri obradi 200 tisuća istodobnih TLS veza i protoku od 15 tisuća zahtjeva u sekundi (s 3000 istovremenih veza i protoku od 80 tisuća zahtjeva po sekundi, kašnjenja nisu prelazila 6 ms u 95% slučajeva i 15 ms u 99%). Na PayPalu, usluge temeljene na JunoDB-u služe oko 350 milijardi zahtjeva dnevno.

PayPal je otvorio JunoDB DBMS kod


Izvor: opennet.ru

Dodajte komentar