PayPal mbukak kode DBMS JunoDB

PayPal wis mbukak kode sumber DBMS JunoDB sing toleran fault, sing ngapusi data ing format nilai kunci. Sistem kasebut wiwitane dirancang kanthi keamanan dhuwur, skalabilitas horisontal, toleransi kesalahan, lan kemampuan kanggo nangani atusan ewu sambungan simultan kanthi latensi sing bisa diprediksi. Ing PayPal, meh kabeh layanan, saka login pangguna kanggo ngolah transaksi finansial, diikat karo JunoDB. Kode proyek ditulis ing Go (perpustakaan klien Java) lan disebarake miturut lisensi Apache 2.0. Pangembangan luwih lanjut bakal nampa koreksi, perbaikan lan owah-owahan saka komunitas.

Arsitèktur JunoDB adhedhasar panggunaan load balancer sing nampa panjalukan saka aplikasi klien lan disebaraké ing antarane server proxy sing bebarengan ngakses grup server panyimpenan nalika panyuwunan dileksanakake. Saben server proxy nggawe sambungan menyang kabeh server panyimpenan bebarengan lan nerusake panjalukan menyang klompok server panyimpenan adhedhasar indeks partisi, sing disimpen ing konfigurasi sistem panyimpenan sing disebarake etcd.

PayPal mbukak kode DBMS JunoDB

Data dipisahake lan disambung menyang simpul panyimpenan nggunakake hashing, sing nyuda gerakan data nalika simpul ing kluster tuwuh utawa nyusut. Kanggo mesthekake toleransi fault, saben Piece saka data replicated ing sawetara simpul panyimpenan, sing ngijini sampeyan kanggo nyimpen informasi nalika server individu gagal. Penciptaan panyimpenan sing disebarake sacara geografis didhukung, ing ngendi klompok simpul dumunung ing pusat data sing beda-beda.

PayPal mbukak kode DBMS JunoDB

Ing simpul panyimpenan data, padha dumunung ing RAM utawa ing panyimpenan lokal adhedhasar perpustakaan RocksDB. Nalika disimpen kanthi permanen, data disimpen ing wangun ndhelik (kunci enkripsi bisa ditemtokake dening klien utawa disetel ing tingkat proxy).

PayPal mbukak kode DBMS JunoDB

Kanggo ngakses database saka aplikasi, perpustakaan klien diwenehake sing nyedhiyakake API kanggo aplikasi ing Jawa, Go lan C ++. Bagian klien disederhanakake sabisane, lan logika lan setelan sing rumit ditransfer menyang sisih DBMS kapan bisa. Interaksi antarane klien lan balancer utawa proxy ditindakake liwat saluran komunikasi sing dienkripsi. Kanggo ngatur lan ngirim panjalukan, sampeyan bisa nggunakake antarmuka baris printah, kang replicates kabeh kemampuan saka API klien.

Sistem iki dirancang kanggo proses panjalukan karo latency kurang katebak, Contone, klompok telung kelenjar panyimpenan lan siji proxy, kawangun saka n1-highmem-32 lingkungan (32 Intel Xeon 2.30GHz CPU, 214G RAM lan 450G panyimpenan basis SSD). , bisa nyedhiyakake wektu tundha tetep ora ngluwihi 2.5 ms ing 95% kasus lan 16 ms ing 99% nalika ngolah 200 ewu sambungan TLS simultan lan aliran 15 ewu panjalukan per detik (kanthi 3000 sambungan simultan lan aliran 80 ewu panjalukan per detik, wektu tundha ora ngluwihi 6 ms ing 95% kasus lan 15 ms ing 99%). Ing PayPal, layanan basis JunoDB nglayani udakara 350 milyar panjalukan saben dina.

PayPal mbukak kode DBMS JunoDB


Source: opennet.ru

Add a comment