PayPal-ek JunoDB DBMS kodea ireki zuen

PayPal-ek akatsekiko tolerantzia duen JunoDB DBMS iturburu-kodea ireki du, datuak gako-balio formatuan manipulatzen dituena. Hasieran, segurtasun handiko, eskalagarritasun horizontala, akatsen tolerantzia eta ehunka mila aldibereko konexioak aurreikusteko latentzia kontuan hartuta kudeatzeko gaitasunarekin diseinatu zen. PayPal-en, ia zerbitzu guztiak, erabiltzaileen saio-hasieratik hasi eta finantza-transakzio prozesatzeraino, JunoDB-rekin lotuta daude. Proiektuaren kodea Go-n (Java bezero liburutegia) idatzita dago eta Apache 2.0 lizentziapean banatzen da. Geroago garapenak komunitatearen zuzenketak, hobekuntzak eta aldaketak onartuko ditu.

JunoDB-ren arkitektura bezero-aplikazioen eskaerak onartzen dituen karga-orekatzaile baten erabileran oinarritzen da eta eskaera exekutatzen denean biltegiratze-zerbitzari talde batera sartzen diren proxy-zerbitzarien artean banatzen ditu. Proxy zerbitzari bakoitzak biltegiratze-zerbitzari guztiekin konexioak ezartzen ditu aldi berean eta biltegiratze-zerbitzari talde batera bidaltzen ditu eskaerak, partizio-indizean oinarrituta, biltegiratze-sistema banatuaren etab. konfigurazioan gordetzen dena.

PayPal-ek JunoDB DBMS kodea ireki zuen

Datuak partikatutako eta biltegiratze-nodoetara lotzen dira hashing-a erabiliz, eta horrek datuen mugimendua murrizten du klusterreko nodoak hazi edo txikitu ahala. Akatsen tolerantzia bermatzeko, datu bakoitza hainbat biltegiratze-nodotan errepikatzen da, eta horri esker, informazioa gorde dezakezu banakako zerbitzariek huts egiten dutenean. Geografikoki banatutako biltegiratzeen sorrera onartzen da, eta horietan nodo taldeak datu-zentro ezberdinetan kokatzen dira.

PayPal-ek JunoDB DBMS kodea ireki zuen

Datuak biltegiratzeko nodoetan, RAM edo RocksDB liburutegian oinarritutako biltegiratze lokalean kokatzen dira. Betiko biltegiratzen direnean, datuak zifratuta gordetzen dira (zifratze-gakoa bezeroak zehaztu dezake edo proxy mailan ezarri daiteke).

PayPal-ek JunoDB DBMS kodea ireki zuen

Aplikazioetatik datu-basera sartzeko, Java, Go eta C++ aplikazioetarako API bat eskaintzen duen liburutegi bezero bat hornitzen da. Bezeroaren zatia ahalik eta gehien sinplifikatu egiten da, eta logika eta ezarpen konplexuak DBMS aldera transferitzen dira ahal den guztietan. Bezeroaren eta balantzailearen edo proxyaren arteko elkarrekintza enkriptatutako komunikazio kanal baten bidez egiten da. Eskaerak kudeatzeko eta bidaltzeko, komando-lerroko interfazea erabil dezakezu, bezeroaren APIaren gaitasun guztiak errepikatzen dituena.

Sistema latentzia baxu aurreikusten duten eskaerak prozesatzeko diseinatuta dago, adibidez, hiru biltegiratze-nodo eta proxy bakarreko multzo bat, n1-highmem-32 ingurunez osatua (32 Intel Xeon 2.30GHz CPU, 214G RAM eta 450G SSD-n oinarritutako biltegiratzea) , 2.5 ms-tik gorako atzerapen finkoak eman ahal izan ditu kasuen % 95ean eta 16 ms % 99an 200 mila TLS konexio aldibereko prozesatzean eta segundoko 15 mila eskaeraren fluxua (3000 aldibereko konexio eta 80 mila eskaeraren fluxua). segundoko, atzerapenak ez ziren 6 ms gainditu kasuen %95ean eta 15 ms %99an. PayPal-en, JunoDBn oinarritutako zerbitzuek egunean 350 milioi eskaera inguru betetzen dituzte.

PayPal-ek JunoDB DBMS kodea ireki zuen


Iturria: opennet.ru

Gehitu iruzkin berria