PayPal muka kode JunoDB DBMS

PayPal parantos muka kode sumber pikeun JunoDB, DBMS toleran lepat anu ngamanipulasi data dina format nilai konci. Sistim nu asalna dirancang kalayan kaamanan tinggi, scalability horizontal, kasabaran sesar tur kamampuhan pikeun nanganan ratusan rébu tina sambungan simultaneous kalawan Nepi diprediksi dina pikiran. Dina PayPal, ampir kabéh jasa, ti login pamaké pikeun ngolah transaksi finansial, dihijikeun ka JunoDB. Kodeu proyék ditulis dina Go (perpustakaan klien Java) sareng disebarkeun dina lisénsi Apache 2.0. Dina pamekaran salajengna, koréksi, perbaikan sareng parobihan ti komunitas bakal ditampi.

Arsitéktur JunoDB didasarkeun kana pamakean pangimbang beban anu nampi pamenta ti aplikasi klien sareng nyebarkeunana diantara server proxy anu sakaligus ngaksés grup server panyimpen nalika aya pamundut. Unggal proxy ngadegkeun sambungan ka sadaya server gudang sakaligus tur alihan requests ka grup server gudang dumasar kana indéks partisi disimpen dina sistem gudang disebarkeun tina konfigurasi jsb.

PayPal muka kode JunoDB DBMS

Data dipisahkeun sareng dibeungkeut kana tempat panyimpen nganggo hashing pikeun ngirangan gerakan data nalika titik tumbuh atanapi ngaleutikan dina klaster. Pikeun mastikeun kasabaran sesar, unggal porsi data ditiron dina sababaraha tempat panyimpen, anu ngamungkinkeun anjeun ngahémat inpormasi nalika server individu gagal. Penciptaan panyimpen anu disebarkeun sacara geografi dirojong, dimana kelompok titik aya di pusat data anu béda.

PayPal muka kode JunoDB DBMS

Dina titik panyimpen, data disimpen dina RAM atanapi dina panyimpenan lokal dumasar kana perpustakaan RocksDB. Kalayan panyimpen anu terus-terusan, data disimpen dina bentuk énkripsi (konci énkripsi tiasa ditangtukeun ku klien sareng disetel dina tingkat proxy).

PayPal muka kode JunoDB DBMS

Pikeun ngaksés pangkalan data tina aplikasi, perpustakaan klien disayogikeun anu nyayogikeun API pikeun aplikasi dina Java, Go, sareng C++. Bagian klien disederhanakeun saloba mungkin, sareng logika sareng setelan rumit, upami mungkin, dipindahkeun ka sisi DBMS. Interaksi antara klien sareng balancer atanapi proxy dilaksanakeun ngaliwatan saluran komunikasi énkripsi. Anjeun tiasa make panganteur garis paréntah pikeun ngatur jeung ngirim requests, nu mimics fungsionalitas pinuh tina API klien.

Sistim nu dirancang pikeun ngolah requests kalawan latency low bisa diprediksi, Contona, klaster tina tilu titik gudang sarta hiji proxy, kabentuk tina n1-highmem-32 lingkungan (32 Intel Xeon 2.30GHz CPUs, 214G RAM na 450G SSD basis gudang), éta bisa nyadiakeun latency tetep teu ngaleuwihan 2.5 sarébu ms jeung 95% T 16 ms ngolah dina 99% T mult. Sambungan LS sareng aliran 200 rébu paménta per detik (kalayan 15 sambungan sakaligus sareng aliran 3000 rébu pamundut per detik, telat henteu langkung ti 80 ms dina 6% kasus sareng 95 ms dina 15%). Di PayPal, jasa basis JunoDB ngalayanan sakitar 99 milyar pamundut per dinten.

PayPal muka kode JunoDB DBMS


sumber: opennet.ru

Tambahkeun komentar