PayPal otvoril kód JunoDB DBMS

PayPal otvoril zdrojový kód pre JunoDB, DBMS odolný voči chybám, ktorý manipuluje s údajmi vo formáte kľúč-hodnota. Systém bol pôvodne navrhnutý s vysokou bezpečnosťou, horizontálnou škálovateľnosťou, odolnosťou voči chybám a schopnosťou zvládnuť státisíce súčasných pripojení s ohľadom na predvídateľné oneskorenia. V PayPal sú takmer všetky služby, od prihlásenia používateľa až po spracovanie finančných transakcií, naviazané na JunoDB. Kód projektu je napísaný v Go (klientská knižnica Java) a distribuovaný pod licenciou Apache 2.0. V ďalšom vývoji budú akceptované opravy, vylepšenia a zmeny zo strany komunity.

Architektúra JunoDB je založená na použití vyrovnávača záťaže, ktorý prijíma požiadavky z klientskych aplikácií a distribuuje ich medzi proxy servery, ktoré súčasne pristupujú k skupine úložných serverov, keď je požiadavka vykonaná. Každý proxy vytvorí spojenia so všetkými úložnými servermi naraz a presmeruje požiadavky na skupinu úložných serverov na základe indexu oddielu uloženého v distribuovanom úložnom systéme konfigurácie etcd.

PayPal otvoril kód JunoDB DBMS

Údaje sú rozdelené a viazané na úložné uzly pomocou hashovania na zníženie pohybu údajov, keď uzly rastú alebo sa zmenšujú v klastri. Na zabezpečenie odolnosti voči chybám je každá časť údajov replikovaná na niekoľkých úložných uzloch, čo vám umožňuje ukladať informácie, keď jednotlivé servery zlyhajú. Podporuje sa vytváranie geograficky distribuovaných úložísk, v ktorých sú skupiny uzlov umiestnené v rôznych dátových centrách.

PayPal otvoril kód JunoDB DBMS

Na úložných uzloch sú dáta umiestnené v RAM alebo v lokálnom úložisku na základe knižnice RocksDB. Pri perzistentnom ukladaní sa dáta ukladajú v zašifrovanej podobe (šifrovací kľúč môže určiť klient aj nastaviť na úrovni proxy).

PayPal otvoril kód JunoDB DBMS

Na prístup k databáze z aplikácií sa dodáva klientska knižnica, ktorá poskytuje API pre aplikácie v jazykoch Java, Go a C++. Klientska časť je maximálne zjednodušená a zložitá logika a nastavenia, ak je to možné, sa presúvajú na stranu DBMS. Interakcia medzi klientom a balancerom alebo proxy sa uskutočňuje prostredníctvom šifrovaného komunikačného kanála. Na správu a odosielanie požiadaviek môžete použiť rozhranie príkazového riadka, ktoré napodobňuje plnú funkčnosť klientskeho API.

Systém je navrhnutý tak, aby spracovával požiadavky s predvídateľnou nízkou latenciou, napríklad klaster troch úložných uzlov a jeden proxy, vytvorený z prostredí n1-highmem-32 (32 procesorov Intel Xeon 2.30 GHz, 214G RAM a 450G úložisko založené na SSD) , dokázala poskytnúť pevné oneskorenia nepresahujúce 2.5 ms v 95 % prípadov a 16 ms v 99 % pri spracovaní 200 tisíc súčasných TLS spojení a toku 15 tisíc požiadaviek za sekundu (s 3000 simultánnymi spojeniami a tokom 80 tisíc žiadostí za sekundu oneskorenie nepresiahlo 6 ms v 95 % prípadov a 15 ms v 99 %). V službe PayPal obsluhujú služby založené na JunoDB približne 350 miliárd žiadostí denne.

PayPal otvoril kód JunoDB DBMS


Zdroj: opennet.ru

Pridať komentár