PayPal ilifungua msimbo wa JunoDB DBMS

PayPal imefungua msimbo wa chanzo wa DBMS JunoDB inayostahimili hitilafu, ambayo hubadilisha data katika umbizo la thamani kuu. Hapo awali mfumo uliundwa kwa usalama wa hali ya juu, usawaziko, ustahimilivu wa hitilafu, na uwezo wa kushughulikia mamia ya maelfu ya miunganisho ya wakati mmoja na kuchelewesha kutabirika akilini. Katika PayPal, karibu huduma zote, kutoka kwa kuingia kwa mtumiaji hadi usindikaji wa shughuli za kifedha, zimefungwa kwa JunoDB. Msimbo wa mradi umeandikwa katika Go (maktaba ya mteja wa Java) na inasambazwa chini ya leseni ya Apache 2.0. Maendeleo zaidi yatakubali masahihisho, maboresho na mabadiliko kutoka kwa jamii.

Usanifu wa JunoDB unatokana na utumiaji wa kisawazisha mzigo ambacho hukubali maombi kutoka kwa programu za mteja na kuzisambaza kati ya seva mbadala ambazo hufikia wakati huo huo kundi la seva za hifadhi wakati ombi linatekelezwa. Kila seva mbadala huanzisha miunganisho kwa seva zote za hifadhi mara moja na kupeleka maombi kwa kundi la seva za hifadhi kulingana na faharasa ya kizigeu, ambayo huhifadhiwa katika usanidi wa mfumo wa hifadhi uliosambazwa etcd.

PayPal ilifungua msimbo wa JunoDB DBMS

Data hugawanywa na kuunganishwa na nodi za kuhifadhi kwa kutumia hashing, ambayo hupunguza uhamishaji wa data kadiri nodi kwenye nguzo zinavyokua au kupungua. Ili kuhakikisha uvumilivu wa makosa, kila kipande cha data kinarudiwa kwenye nodes kadhaa za hifadhi, ambayo inakuwezesha kuokoa habari wakati seva za kibinafsi zinashindwa. Uundaji wa hifadhi za kijiografia za kijiografia zinasaidiwa, ambazo vikundi vya nodes ziko katika vituo tofauti vya data.

PayPal ilifungua msimbo wa JunoDB DBMS

Kwenye nodi za kuhifadhi data, ziko kwenye RAM au kwenye hifadhi ya ndani kulingana na maktaba ya RocksDB. Inapohifadhiwa kabisa, data huhifadhiwa katika fomu iliyosimbwa (ufunguo wa usimbaji unaweza kubainishwa na mteja au kuwekwa katika kiwango cha seva mbadala).

PayPal ilifungua msimbo wa JunoDB DBMS

Ili kufikia hifadhidata kutoka kwa programu, maktaba ya mteja hutolewa ambayo hutoa API ya programu katika Java, Go na C++. Sehemu ya mteja hurahisishwa iwezekanavyo, na mantiki changamano na mipangilio huhamishiwa upande wa DBMS kila inapowezekana. Mwingiliano kati ya mteja na sawazisha au wakala unafanywa kupitia njia iliyosimbwa ya mawasiliano. Ili kudhibiti na kutuma maombi, unaweza kutumia kiolesura cha mstari wa amri, ambacho kinaiga uwezo wote wa API ya mteja.

Mfumo huu umeundwa kushughulikia maombi yenye muda wa chini unaotabirika, kwa mfano, kundi la nodi tatu za hifadhi na proksi moja, iliyoundwa kutoka mazingira ya n1-highmem-32 (CPU 32 za Intel Xeon 2.30GHz, RAM 214G na hifadhi ya 450G SSD) , iliweza kutoa ucheleweshaji usiozidi ms 2.5 katika 95% ya kesi na 16 ms katika 99% wakati wa kuchakata viunganisho vya TLS elfu 200 kwa wakati mmoja na mtiririko wa maombi elfu 15 kwa sekunde (na miunganisho 3000 ya wakati mmoja na mtiririko wa maombi elfu 80. kwa sekunde, ucheleweshaji haukuzidi 6 ms katika 95% ya kesi na 15 ms katika 99%). Katika PayPal, huduma za JunoDB hutumikia takriban maombi bilioni 350 kwa siku.

PayPal ilifungua msimbo wa JunoDB DBMS


Chanzo: opennet.ru

Kuongeza maoni