PayPal opnaði JunoDB DBMS kóðann

PayPal hefur opnað frumkóðann á villuþolnu DBMS JunoDB, sem vinnur með gögn á lykilgildissniði. Kerfið var upphaflega hannað með miklu öryggi, láréttri sveigjanleika, bilanaþoli og getu til að höndla hundruð þúsunda samtímis tenginga með fyrirsjáanlegar töf í huga. Hjá PayPal er næstum öll þjónusta, allt frá innskráningu notenda til vinnslu fjármálaviðskipta, tengd JunoDB. Verkefniskóðinn er skrifaður í Go (Java viðskiptavinasafni) og er dreift undir Apache 2.0 leyfinu. Frekari þróun mun taka við leiðréttingum, endurbótum og breytingum frá samfélaginu.

Arkitektúr JunoDB byggist á notkun álagsjafnara sem tekur við beiðnum frá forritum viðskiptavinar og dreifir þeim á milli proxy-þjóna sem hafa samtímis aðgang að hópi geymsluþjóna þegar beiðnin er framkvæmd. Hver proxy-þjónn kemur á tengingum við alla geymsluþjóna í einu og sendir beiðnir áfram til hóps geymsluþjóna sem byggir á skiptingarvísitölunni, sem er geymd í dreifðu geymslukerfi etcd stillingum.

PayPal opnaði JunoDB DBMS kóðann

Gögn eru skipt í skiptingu og tengd við geymsluhnúta með því að nota hashing, sem dregur úr gagnaflutningi þegar hnútar í þyrpingunni stækka eða minnka. Til að tryggja bilanaþol er hvert gagnastykki afritað á nokkrum geymsluhnútum, sem gerir þér kleift að vista upplýsingar þegar einstakir netþjónar bila. Stuðningur er við að búa til landfræðilega dreifðar geymslur, þar sem hópar hnúta eru staðsettir í mismunandi gagnaverum.

PayPal opnaði JunoDB DBMS kóðann

Á gagnageymsluhnútum eru þeir staðsettir í vinnsluminni eða í staðbundinni geymslu byggð á RocksDB bókasafninu. Þegar þau eru geymd varanlega eru gögnin geymd á dulkóðuðu formi (dulkóðunarlykillinn er annaðhvort hægt að ákvarða af viðskiptavininum eða stilla á proxy-stigi).

PayPal opnaði JunoDB DBMS kóðann

Til að fá aðgang að gagnagrunninum frá forritum fylgir biðlarasafn sem veitir API fyrir forrit í Java, Go og C++. Biðlarahlutinn er einfaldaður eins og hægt er og flókin rökfræði og stillingar eru fluttar yfir á DBMS hliðina þegar það er hægt. Samskiptin milli viðskiptavinarins og jafnvægisaðilans eða umboðsins fara fram í gegnum dulkóðaða samskiptarás. Til að stjórna og senda beiðnir geturðu notað skipanalínuviðmótið, sem endurtekur alla möguleika viðskiptavinar API.

Kerfið er hannað til að vinna úr beiðnum með fyrirsjáanlegum lágum töfum, til dæmis, þyrping af þremur geymsluhnútum og einum umboðsmanni, myndað úr n1-highmem-32 umhverfi (32 Intel Xeon 2.30GHz örgjörvar, 214G vinnsluminni og 450G SSD byggð geymslu) , gat veitt fastar tafir sem voru ekki meiri en 2.5 ms í 95% tilvika og 16 ms í 99% þegar unnið var úr 200 þúsund samtímis TLS tengingum og flæði upp á 15 þúsund beiðnir á sekúndu (með 3000 samtímis tengingum og flæði upp á 80 þúsund beiðnir á sekúndu voru tafir ekki meiri en 6 ms í 95% tilvika og 15 ms í 99%. Hjá PayPal þjónar JunoDB-undirstaða þjónusta um 350 milljörðum beiðna á dag.

PayPal opnaði JunoDB DBMS kóðann


Heimild: opennet.ru

Bæta við athugasemd