PayPal avasi JunoDB DBMS -koodin

PayPal on avannut vikasietoisen DBMS JunoDB:n lähdekoodin, joka käsittelee tietoja avainarvomuodossa. Järjestelmä suunniteltiin alun perin korkeaa turvallisuutta, horisontaalista skaalautuvuutta, vikasietoisuutta ja kykyä käsitellä satoja tuhansia samanaikaisia ​​yhteyksiä ennakoitavissa olevat latenssit huomioon ottaen. PayPalissa lähes kaikki palvelut käyttäjien kirjautumisesta rahoitustapahtumien käsittelyyn on sidottu JunoDB:hen. Projektikoodi on kirjoitettu Golla (Java-asiakaskirjasto) ja sitä jaetaan Apache 2.0 -lisenssillä. Jatkokehitys hyväksyy korjauksia, parannuksia ja muutoksia yhteisöltä.

JunoDB:n arkkitehtuuri perustuu kuormantasaajan käyttöön, joka hyväksyy pyynnöt asiakassovelluksista ja jakaa ne välityspalvelinten kesken, jotka samanaikaisesti käyttävät tallennuspalvelinryhmää pyynnön suoritettaessa. Jokainen välityspalvelin muodostaa yhteydet kaikkiin tallennuspalvelimiin kerralla ja välittää pyynnöt ryhmälle tallennuspalvelimia osioindeksin perusteella, joka on tallennettu hajautetun tallennusjärjestelmän etcd-kokoonpanoon.

PayPal avasi JunoDB DBMS -koodin

Tiedot osioidaan ja linkitetään tallennussolmuihin hajautustekniikalla, mikä vähentää tiedon liikkumista klusterin solmujen kasvaessa tai pienentyessä. Vikasietoisuuden varmistamiseksi jokainen tieto replikoidaan useisiin tallennussolmuihin, mikä mahdollistaa tietojen tallentamisen yksittäisten palvelimien epäonnistuessa. Tuetaan maantieteellisesti hajautettujen varastojen luomista, joissa solmuryhmät sijaitsevat eri datakeskuksissa.

PayPal avasi JunoDB DBMS -koodin

Tiedontallennussolmuissa ne sijaitsevat RAM-muistissa tai paikallisessa tallennustilassa, joka perustuu RocksDB-kirjastoon. Pysyvästi tallennettuna tiedot tallennetaan salatussa muodossa (salausavaimen voi määrittää joko asiakas tai asettaa välityspalvelintasolla).

PayPal avasi JunoDB DBMS -koodin

Tietokannan käyttämiseksi sovelluksista toimitetaan asiakaskirjasto, joka tarjoaa API:n Java-, Go- ja C++-sovelluksille. Asiakasosaa yksinkertaistetaan mahdollisimman paljon ja monimutkainen logiikka ja asetukset siirretään DBMS-puolelle aina kun mahdollista. Vuorovaikutus asiakkaan ja tasapainottimen tai välityspalvelimen välillä tapahtuu salatun viestintäkanavan kautta. Pyyntöjen hallintaan ja lähettämiseen voidaan käyttää komentorivikäyttöliittymää, joka toistaa kaikki asiakassovellusliittymän ominaisuudet.

Järjestelmä on suunniteltu käsittelemään pyyntöjä ennustettavissa olevilla pienillä viiveillä, esimerkiksi kolmen tallennussolmun ja yhden välityspalvelimen klusteri, joka on muodostettu n1-highmem-32-ympäristöistä (32 Intel Xeon 2.30 GHz -suoritinta, 214G RAM ja 450G SSD-pohjainen tallennustila) , pystyi tarjoamaan kiinteitä viiveitä, jotka eivät ylitä 2.5 ms 95 %:ssa tapauksista ja 16 ms 99 %:ssa käsitellessään 200 tuhatta samanaikaista TLS-yhteyttä ja 15 tuhatta pyyntöä sekunnissa (3000 samanaikaisella yhteydellä ja 80 tuhannen pyynnön virtauksella sekunnissa viiveet eivät ylittäneet 6 ms 95 prosentissa tapauksista ja 15 ms 99 prosentissa tapauksista. PayPalissa JunoDB-pohjaiset palvelut palvelevat noin 350 miljardia pyyntöä päivässä.

PayPal avasi JunoDB DBMS -koodin


Lähde: opennet.ru

Lisää kommentti