PayPal je otvorio JunoDB DBMS kod

PayPal je otvorio izvorni kod za JunoDB, DBMS otporan na greške koji manipulira podacima u formatu ključ/vrijednost. Sistem je prvobitno dizajniran sa visokom bezbednošću, horizontalnom skalabilnosti, tolerancijom grešaka i sposobnošću da rukuje stotinama hiljada istovremenih veza sa predvidljivim kašnjenjima na umu. U PayPal-u su gotovo sve usluge, od prijavljivanja korisnika do obrade finansijskih transakcija, vezane za JunoDB. Kod projekta je napisan u Go (Java klijentska biblioteka) i distribuiran pod licencom Apache 2.0. U daljem razvoju, ispravke, poboljšanja i promjene od strane zajednice će biti prihvaćene.

JunoDB arhitektura je zasnovana na upotrebi balansera opterećenja koji prihvata zahteve od klijentskih aplikacija i distribuira ih između proxy servera koji istovremeno pristupaju grupi servera za skladištenje kada je zahtev napravljen. Svaki proxy uspostavlja veze sa svim serverima skladištenja odjednom i preusmjerava zahtjeve na grupu servera za skladištenje na osnovu indeksa particije pohranjenog u distribuiranom sistemu skladištenja etcd konfiguracije.

PayPal je otvorio JunoDB DBMS kod

Podaci se particioniraju i vezuju za čvorove za pohranu koristeći heširanje kako bi se smanjilo kretanje podataka kako čvorovi rastu ili se smanjuju u klasteru. Da bi se osigurala tolerancija grešaka, svaki dio podataka se replicira na nekoliko čvorova za pohranu, što vam omogućava da sačuvate informacije kada pojedinačni serveri pokvare. Podržano je kreiranje geografski distribuiranih skladišta u kojima se grupe čvorova nalaze u različitim centrima podataka.

PayPal je otvorio JunoDB DBMS kod

Na čvorovima za skladištenje, podaci se stavljaju u RAM ili u lokalnu memoriju zasnovanu na RocksDB biblioteci. Uz trajnu pohranu, podaci se pohranjuju u šifriranom obliku (ključ za šifriranje može odrediti i klijent i postaviti na proxy nivou).

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, ako je moguće, premješteni su na stranu DBMS-a. Interakcija između klijenta i balansera ili proxyja se odvija putem šifriranog komunikacijskog kanala. Možete koristiti sučelje komandne linije za upravljanje i slanje zahtjeva, što oponaša punu funkcionalnost klijentskog API-ja.

Sistem je dizajniran da obrađuje zahtjeve sa predvidljivom niskom latencijom, na primjer, klaster od tri čvora za pohranu i jednog proxyja, formiranog iz n1-highmem-32 okruženja (32 Intel Xeon 2.30GHz CPU-a, 214G RAM-a i 450G SSD-bazirane pohrane), nije bio u stanju da obezbijedi fiksiranje kašnjenja od 2.5% u slučajevima od 95 ms. % prilikom obrade 16 hiljada istovremenih TLS veza i protoka od 99 hiljada zahteva u sekundi (sa 200 istovremenih veza i protokom od 15 hiljada zahteva u sekundi, kašnjenja nisu prelazila 3000 ms u 80% slučajeva i 6 ms u 95%). U PayPal-u, usluge zasnovane na JunoDB-u opslužuju oko 15 milijardi zahtjeva dnevno.

PayPal je otvorio JunoDB DBMS kod


izvor: opennet.ru

Dodajte komentar