PayPal otevřel kód JunoDB DBMS

PayPal otevřel zdrojový kód DBMS JunoDB odolný proti chybám, který manipuluje s daty ve formátu klíč-hodnota. Systém byl původně navržen s vysokou bezpečností, horizontální škálovatelností, odolností proti chybám a schopností zvládnout stovky tisíc současných připojení s ohledem na předvídatelné latence. V PayPalu jsou téměř všechny služby, od přihlášení uživatelů až po zpracování finančních transakcí, svázány s JunoDB. Kód projektu je napsán v Go (klientská knihovna Java) a je distribuován pod licencí Apache 2.0. Další vývoj bude přijímat opravy, vylepšení a změny od komunity.

Architektura JunoDB je založena na použití load balanceru, který přijímá požadavky z klientských aplikací a rozděluje je mezi proxy servery, které současně přistupují ke skupině úložných serverů, když je požadavek spuštěn. Každý proxy server vytváří spojení se všemi úložnými servery najednou a předává požadavky skupině úložných serverů na základě indexu oddílu, který je uložen v konfiguraci distribuovaného úložného systému atd.

PayPal otevřel kód JunoDB DBMS

Data jsou rozdělena a propojena s uzly úložišť pomocí hašování, které omezuje pohyb dat, protože uzly v clusteru rostou nebo se zmenšují. Aby byla zajištěna odolnost proti chybám, je každý kus dat replikován na několik storage nodů, což umožňuje ukládat informace, když jednotlivé servery selžou. Je podporováno vytváření geograficky distribuovaných úložišť, ve kterých jsou skupiny uzlů umístěny v různých datových centrech.

PayPal otevřel kód JunoDB DBMS

Na uzlech pro ukládání dat jsou umístěny v paměti RAM nebo v místním úložišti založeném na knihovně RocksDB. Při trvalém uložení jsou data uložena v zašifrované podobě (šifrovací klíč může určit buď klient, nebo nastavit na úrovni proxy).

PayPal otevřel kód JunoDB DBMS

Pro přístup k databázi z aplikací je dodávána klientská knihovna, která poskytuje API pro aplikace v Javě, Go a C++. Klientská část je maximálně zjednodušena a složitá logika a nastavení jsou přenášeny na stranu DBMS, kdykoli je to možné. Interakce mezi klientem a balancerem nebo proxy se provádí prostřednictvím šifrovaného komunikačního kanálu. Ke správě a odesílání požadavků můžete použít rozhraní příkazového řádku, které replikuje všechny možnosti klientského API.

Systém je navržen tak, aby zpracovával požadavky s předvídatelnou nízkou latencí, například cluster tří uzlů úložiště a jeden proxy, vytvořený z prostředí n1-highmem-32 (32 procesorů Intel Xeon 2.30 GHz, 214 G RAM a úložiště založené na 450 G SSD) , dokázala poskytnout pevná zpoždění nepřesahující 2.5 ms v 95 % případů a 16 ms v 99 % při zpracování 200 tisíc současných TLS spojení a toku 15 tisíc požadavků za sekundu (při 3000 simultánních spojeních a toku 80 tisíc požadavků za sekundu nepřesáhlo zpoždění 6 ms v 95 % případů a 15 ms v 99 %). V PayPalu obsluhují služby založené na JunoDB asi 350 miliard požadavků denně.

PayPal otevřel kód JunoDB DBMS


Zdroj: opennet.ru

Přidat komentář