Giablihan sa PayPal ang JunoDB DBMS code

Giablihan sa PayPal ang source code sa fault-tolerant nga DBMS JunoDB, nga nagmaniobra sa datos sa usa ka key-value format. Ang sistema sa sinugdanan gidisenyo nga adunay taas nga seguridad, pinahigda nga scalability, fault tolerance, ug ang abilidad sa pagdumala sa gatusan ka libo nga dungan nga mga koneksyon nga adunay matag-an nga latency sa hunahuna. Sa PayPal, hapit tanan nga mga serbisyo, gikan sa mga login sa gumagamit hangtod sa pagproseso sa mga transaksyon sa pinansyal, gihigot sa JunoDB. Ang code sa proyekto gisulat sa Go (usa ka librarya sa kliyente sa Java) ug giapod-apod ubos sa lisensya sa Apache 2.0. Ang dugang nga pag-uswag modawat sa mga pagtul-id, pagpaayo ug pagbag-o gikan sa komunidad.

Ang arkitektura sa JunoDB gibase sa paggamit sa usa ka load balancer nga nagdawat sa mga hangyo gikan sa mga aplikasyon sa kliyente ug nag-apod-apod niini sa mga proxy server nga dungan nga nag-access sa usa ka grupo sa mga storage server kung ang hangyo gipatuman. Ang matag proxy server nagtukod og mga koneksyon sa tanang storage server sa makausa ug nagpasa sa mga hangyo ngadto sa grupo sa mga storage server base sa partition index, nga gitipigan sa distributed storage system etcd configuration.

Giablihan sa PayPal ang JunoDB DBMS code

Ang datos gibahin ug gisumpay sa mga storage node gamit ang hashing, nga makapamenos sa paglihok sa datos samtang ang mga node sa cluster motubo o mokunhod. Aron masiguro ang pagtugot sa sayup, ang matag piraso sa datos gisundog sa daghang mga node sa pagtipig, nga nagtugot kanimo sa pagtipig sa kasayuran kung mapakyas ang indibidwal nga mga server. Gisuportahan ang paghimo sa mga giapod-apod sa geograpiya, diin ang mga grupo sa mga node nahimutang sa lainlaing mga sentro sa datos.

Giablihan sa PayPal ang JunoDB DBMS code

Sa data storage nodes, sila nahimutang sa RAM o sa lokal nga storage base sa RocksDB library. Kung permanente nga gitipigan, ang datos gitipigan sa naka-encrypt nga porma (ang yawe sa pag-encrypt mahimong matino sa kliyente o ibutang sa lebel sa proxy).

Giablihan sa PayPal ang JunoDB DBMS code

Aron ma-access ang database gikan sa mga aplikasyon, usa ka librarya sa kliyente ang gihatag nga naghatag usa ka API alang sa mga aplikasyon sa Java, Go ug C++. Ang bahin sa kliyente gipasimple kutob sa mahimo, ug ang komplikado nga lohika ug mga setting gibalhin sa bahin sa DBMS kung mahimo. Ang interaksyon tali sa kliyente ug sa balancer o proxy gihimo pinaagi sa usa ka naka-encrypt nga channel sa komunikasyon. Sa pagdumala ug pagpadala sa mga hangyo, mahimo nimong gamiton ang command line interface, nga nagsundog sa tanang kapabilidad sa client API.

Ang sistema gidesinyo sa pagproseso sa mga hangyo nga adunay matag-an nga ubos nga mga latency, pananglitan, usa ka cluster sa tulo ka storage nodes ug usa ka proxy, nga naporma gikan sa n1-highmem-32 environment (32 Intel Xeon 2.30GHz CPUs, 214G RAM ug 450G SSD-based storage) , nakahimo sa paghatag og fixed nga mga paglangan nga dili molapas sa 2.5 ms sa 95% sa mga kaso ug 16 ms sa 99% sa pagproseso sa 200 ka libo nga dungan nga koneksyon sa TLS ug usa ka dagan sa 15 ka libo nga mga hangyo kada segundo (nga adunay 3000 ka dungan nga koneksyon ug usa ka dagan sa 80 ka libo nga mga hangyo matag segundo, ang mga paglangan dili molapas sa 6 ms sa 95% sa mga kaso ug 15 ms sa 99%). Sa PayPal, ang mga serbisyo nga nakabase sa JunoDB nagsilbi mga 350 bilyon nga hangyo matag adlaw.

Giablihan sa PayPal ang JunoDB DBMS code


Source: opennet.ru

Idugang sa usa ka comment