PayPal ka hapur kodin e DB JunoDB

Kompania PayPal ka hapur kodet burimore të një sistemi të besueshëm të menaxhimit të bazës së të dhënave JunoDB, i cili manipulon të dhënat në formatin çelës-vlerë. Sistemi është projektuar fillimisht me fokus në sigurinë e lartë, shkallëzueshmërinë horizontale, besueshmërinë dhe aftësinë për të përballuar qindra mijëra lidhje në të njëjtën kohë me vonesa të parashikueshme. Tek PayPal, praktisht të gjithë shërbimet, nga identifikimi i përdoruesve deri te përpunimi i transaksioneve financiare, janë të lidhura me JunoDB. Kodi i projektit është shkruar në gjuhën Go (biblioteka klientore në Java) dhe shpërndahet nën licencën Apache 2.0. Gjatë zhvillimit të mëtejshëm do të pranohen rregullime, përmirësime dhe ndryshime nga komuniteti.

Arkitektura JunoDB Ă«shtĂ« e bazuar nĂ« pĂ«rdorimin e njĂ« balancuesi ngarkese qĂ« pranon kĂ«rkesat nga aplikacionet klient dhe i shpĂ«rndan ato midis serverĂ«ve proxy, tĂ« cilĂ«t gjithashtu lidhen me njĂ« grup serverĂ«sh ruajtjeje gjatĂ« pĂ«rmbushjes sĂ« kĂ«rkesĂ«s. Çdo server proxy vendos lidhjet menjĂ«herĂ« me tĂ« gjitha serverĂ« ruajtjeve dhe drejton kĂ«rkesat nĂ« grupin e serverĂ«ve tĂ« ruajtjes nĂ« bazĂ« tĂ« indeksit tĂ« seksionimit, i cili ruhet nĂ« njĂ« sistem tĂ« shpĂ«rndarĂ« ruajtjeje konfigurimi etcd.

PayPal ka hapur kodin e DB JunoDB

Të dhënat ndahen dhe lidhen me nyjat e ruajtjes duke përdorur hashing, gjë që zvogëlon lëvizjen e të dhënave gjatë rritjes ose zvogëlimit të njësive të klasterit. Për të siguruar besueshmërinë, çdo grup të dhënash riprodhohet në disa nyje ruajtjeje, duke siguruar ruajtjen e informacionit kur disa serverë dështojnë. Mbështetet krijimi i ruajtjeve të shpërndara gjeografikisht, ku grupet e nyjave janë të vendosura në qendra të dhënash të ndryshme.

PayPal ka hapur kodin e DB JunoDB

Në nyjat e ruajtjes, të dhënat vendosen në memorie ose në ruajtje lokale bazuar në bibliotekën RocksDB. Kur janë në ruajtje të përhershme, të dhënat ruhen në formë të enkriptuar (çelësi i enkriptimit mund të përcaktohet si nga klienti ashtu edhe të skedohet në nivelin e proxy).

PayPal ka hapur kodin e DB JunoDB

Për qasjen në BD nga aplikacionet ofrohet një bibliotekë klienti që siguron një API për aplikacionet në gjuhët Java, Go dhe C++. Pjesa klienti është maksimalisht e thjeshtëzuar, dhe logjika e ndërlikuar dhe konfigurimet janë sa më shumë të mundshme të transferuara në anën e DBMS. Ndërveprimi midis klientit dhe balancuesit ose proksit bëhet përmes një kanali të koduar të komunikimit. Për menaxhimin dhe dërgimin e kërkesave mund të përdoret ndërfaqja e linjës së komandës, e cila riprodhon të gjitha mundësitë e API-së së klientit.

Sistemi është projektuar për të përpunuar kërkesa me vonesa të parashikueshme të ulta, për shembull, një grumbull prej tre nyjeve ruajtjeje dhe një proksi, i formuar nga ambientet n1-highmem-32 (32 CPU Intel Xeon 2.30GHz, 214G RAM dhe 450G ruajtje mbi SSD), ka arritur të ofrojë vonesa fikse që nuk tejkalojnë 2.5 ms në 95% të rasteve dhe 16 ms në 99% gjatë përpunimit të 200 mijë lidhjeve TLS në të njëjtën kohë dhe një fluksi prej 15 mijë kërkesash në sekondë (në 3000 lidhje të njëkohshme dhe një fluks prej 80 mijë kërkesash në sekondë vonesat nuk tejkaluan 6 ms në 95% të rasteve dhe 15 ms në 99%). Në PayPal, shërbimet mbi bazën e JunoDB trajtojnë rreth 350 miliard kërkesa në ditë.

PayPal ka hapur kodin e DB JunoDB


Burimi: opennet.ru
Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster