Agorodd PayPal y cod JunoDB DBMS

Mae PayPal wedi agor cod ffynhonnell ar gyfer JunoDB, DBMS sy'n goddef diffygion sy'n trin data mewn fformat gwerth allweddol. Cynlluniwyd y system yn wreiddiol gyda diogelwch uchel, graddadwyedd llorweddol, goddefgarwch namau a'r gallu i drin cannoedd o filoedd o gysylltiadau cydamserol gydag oedi rhagweladwy mewn golwg. Yn PayPal, mae bron pob gwasanaeth, o fewngofnodi defnyddwyr i brosesu trafodion ariannol, yn gysylltiedig Γ’ JunoDB. Mae cod y prosiect wedi'i ysgrifennu yn Go (llyfrgell cleientiaid Java) a'i ddosbarthu o dan drwydded Apache 2.0. Mewn datblygiad pellach, derbynnir cywiriadau, gwelliannau a newidiadau gan y gymuned.

Mae pensaernΓ―aeth JunoDB yn seiliedig ar ddefnyddio cydbwysedd llwyth sy'n derbyn ceisiadau gan gymwysiadau cleientiaid ac yn eu dosbarthu ymhlith gweinyddwyr dirprwyol sy'n cyrchu grΕ΅p o weinyddion storio ar yr un pryd pan wneir cais. Mae pob dirprwy yn sefydlu cysylltiadau Γ’'r holl weinyddion storio ar unwaith ac yn ailgyfeirio ceisiadau i grΕ΅p o weinyddion storio yn seiliedig ar y mynegai rhaniad sydd wedi'i storio yn system storio ddosbarthedig y cyfluniad ac ati.

Agorodd PayPal y cod JunoDB DBMS

Caiff data ei rannu a'i rwymo i nodau storio gan ddefnyddio stwnsh i leihau symudiad data wrth i nodau dyfu neu grebachu mewn clwstwr. Er mwyn sicrhau goddefgarwch namau, mae pob rhan o ddata yn cael ei ailadrodd ar sawl nod storio, sy'n eich galluogi i arbed gwybodaeth pan fydd gweinyddwyr unigol yn methu. Cefnogir creu storfeydd wedi'u dosbarthu'n ddaearyddol, lle mae grwpiau o nodau wedi'u lleoli mewn gwahanol ganolfannau data.

Agorodd PayPal y cod JunoDB DBMS

Ar nodau storio, rhoddir data mewn RAM neu mewn storfa leol yn seiliedig ar lyfrgell RocksDB. Gyda storio parhaus, mae data'n cael ei storio ar ffurf wedi'i hamgryptio (gall y cleient bennu'r allwedd amgryptio a'i gosod ar lefel y dirprwy).

Agorodd PayPal y cod JunoDB DBMS

I gael mynediad i'r gronfa ddata o gymwysiadau, darperir llyfrgell cleientiaid sy'n darparu API ar gyfer cymwysiadau yn Java, Go, a C++. Mae rhan y cleient yn cael ei symleiddio cymaint Γ’ phosibl, ac mae rhesymeg a gosodiadau cymhleth, os yn bosibl, yn cael eu symud i ochr y DBMS. Mae'r rhyngweithio rhwng y cleient a'r balancer neu ddirprwy yn cael ei wneud trwy sianel gyfathrebu wedi'i hamgryptio. Gallwch ddefnyddio rhyngwyneb llinell orchymyn i reoli ac anfon ceisiadau, sy'n dynwared ymarferoldeb llawn API y cleient.

Mae'r system wedi'i chynllunio i brosesu ceisiadau gyda hwyrni isel rhagweladwy, er enghraifft, clwstwr o dri nod storio ac un dirprwy, a ffurfiwyd o amgylcheddau n1-highmem-32 (32 CPU Intel Xeon 2.30GHz, 214G RAM a storfa 450G SSD) , yn gallu darparu oedi sefydlog heb fod yn fwy na 2.5 ms mewn 95% o achosion ac 16 ms mewn 99% wrth brosesu 200 mil o gysylltiadau TLS cydamserol a llif o 15 mil o geisiadau yr eiliad (gyda 3000 o gysylltiadau cydamserol a llif o 80 mil o geisiadau yr eiliad, nid oedd oedi yn fwy na 6 ms mewn 95% o achosion a 15ms mewn 99%). Yn PayPal, mae gwasanaethau JunoDB yn gwasanaethu tua 350 biliwn o geisiadau y dydd.

Agorodd PayPal y cod JunoDB DBMS


Ffynhonnell: opennet.ru

Ychwanegu sylw