PayPal otevřel kód databázového systému JunoDB

Společnost PayPal uvolnila zdrojové kódy vysoce dostupné databáze JunoDB, která manipuluje s daty ve formátu klíč-hodnota. Systém byl navržen s ohledem na vysokou bezpečnost, horizontální škálovatelnost, odolnost a schopnost zpracovávat stovky tisíc současných připojení s předvídatelnými zpožděními. V PayPal jsou prakticky všechny služby, od přihlašování uživatelů po zpracování finančních transakcí, závislé na JunoDB. Kód projektu je napsán v jazyce Go (klientská knihovna v Javě) a je šířen pod licencí Apache 2.0. Při dalším vývoji budou přijímány opravy, vylepšení a změny od komunity.

Architektura JunoDB je založena na používání vyrovnávacího serveru, který přijímá požadavky od klientských aplikací a distribuuje je mezi proxy servery, které současně přistupují ke skupině servery úložišť při vykonávání požadavku. Každý proxy server navazuje spojení se všemi servery úložišti a přesměrovává požadavky na skupinu serverů úložiště na základě indexu particionování, který je uchováván v distribuovaném úložišti konfigurace etcd.

PayPal otevřel kód databázového systému JunoDB

Data jsou partitionována a přiřazována k úložištním uzlům pomocí hashování, což umožňuje snížit pohyb dat při zvyšování nebo snižování uzlů v clusteru. Pro zajištění odolnosti se každá část dat replikovaná na několika úložištních uzlech, což umožňuje uchování informací při výpadku jednotlivých serverů. Je podporováno vytváření geograficky distribuovaných úložišť, kde jsou skupiny uzlů umístěny v různých datových centrech.

PayPal otevřel kód databázového systému JunoDB

Na úložištních uzlech jsou data umístěna v paměti nebo v místním úložišti na základě knihovny RocksDB. Při trvalém uložení jsou data umístěna v zašifrované podobě (klíč šifrování může určit jak klient, tak být nastaven na úrovni proxy).

PayPal otevřel kód databázového systému JunoDB

Pro aplikace je k dispozici klientská knihovna, která poskytuje API pro aplikace v jazycích Java, Go a C++. Klientská část je co nejvíce zjednodušená, zatímco složitá logika a konfigurace jsou co nejvíce přesunuty na stranu DBMS. Komunikace mezi klientem a vyrovnávacím serverem nebo proxy se uskutečňuje prostřednictvím šifrovaného komunikačního kanálu. Pro správu a odesílání požadavků lze použít rozhraní příkazového řádku, které reprodukuje veškeré možnosti klientského API.

Systém je navržen tak, aby zpracovával požadavky s předvídatelně nízkou latencí, například cluster tvořený třemi uzly úložiště a jedním proxy, vytvořený z prostředí n1-highmem-32 (32 CPU Intel Xeon 2.30GHz, 214G RAM a 450G úložiště založeného na SSD), dokáže poskytnout pevné latence, které nepřesahují 2,5 ms v 95 % případů a 16 ms v 99 % při zpracování 200 tisíc simultánních TLS připojení a toku 15 tisíc požadavků za sekundu (při 3000 simultánních připojeních a toku 80 tisíc požadavků za sekundu latence nepřesáhla 6 ms v 95 % případů a 15 ms v 99 %). V PayPal servery založené na JunoDB obsluhují přibližně 350 miliard požadavků denně.

PayPal otevřel kód databázového systému JunoDB


Zdroj: opennet.ru
Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster