PayPal har öppnat koden för databashanteringssystemet JunoDB

Företaget PayPal har öppnat kÀllkoden för den felresistenta databashanteraren JunoDB, som hanterar data i ett nyckel-vÀrde-format. Systemet Àr ursprungligen designat med fokus pÄ hög sÀkerhet, horisontell skalbarhet, felresistens och förmÄgan att hantera hundratusentals samtidiga anslutningar med förutsÀgbara fördröjningar. Hos PayPal Àr nÀstan alla tjÀnster, frÄn anvÀndarinloggning till behandling av finansiella transaktioner, kopplade till JunoDB. Projektets kod Àr skriven i Go (klientbibliotek i Java) och distribueras under Apache 2.0-licensen. Vid vidare utveckling kommer Àndringar, förbÀttringar och förÀndringar frÄn gemenskapen att beaktas.

Arkitekturen för JunoDB Àr baserad pÄ anvÀndning av en lastbalanserare som tar emot förfrÄgningar frÄn klientapplikationer och distribuerar dem mellan proxyservrar som samtidigt kontaktar en grupp servrar lagringsservrar vid utförandet av en förfrÄgan. Varje proxyserver kopplar upp sig mot alla servrar lagringsservrar och omdirigerar förfrÄgningarna till lagringsservergruppen baserat pÄ en partitioneringsindex som lagras i det distribuerade konfigurationslagret etcd.

PayPal har öppnat koden för databashanteringssystemet JunoDB

Data partitioneras och kopplas till lagringsnoder med hjÀlp av hashning, vilket minskar datarörelser vid ökning eller minskning av noder i klustret. För att sÀkerstÀlla felresistens replikerar varje databasparti pÄ flera lagringsnoder, vilket gör att informationen bevaras vid haveri av enskilda servrar. Stöd för skapande av geografiskt distribuerade lagringssystem finns, dÀr grupper av noder Àr placerade i olika datacenter.

PayPal har öppnat koden för databashanteringssystemet JunoDB

Data pÄ lagringsnoder lagras i det operativa minnet eller i lokalt lagring baserat pÄ RocksDB-biblioteket. Vid permanent lagring lagras data i krypterad form (krypteringsnyckeln kan definieras bÄde av klienten och faststÀllas pÄ proxy-nivÄ).

PayPal har öppnat koden för databashanteringssystemet JunoDB

För att fÄ Ätkomst till databasen frÄn applikationer tillhandahÄlls ett klientbibliotek som erbjuder ett API för applikationer pÄ sprÄk som Java, Go och C++. Klientdelen Àr sÄ enkel som möjligt, och komplex logik och instÀllningar har i möjligaste mÄn flyttats till databashanteraren. Interaktionen mellan klienten och lastbalanseraren eller proxy sker via en krypterad kommunikationskanal. För att hantera och skicka förfrÄgningar kan kommandoradsgrÀnssnittet anvÀndas, vilket Äterskapar alla funktioner i klientens API.

Systemet Àr utformat för att hantera förfrÄgningar med förutsÀgbara lÄga latensnivÄer. Till exempel kunde en kluster av tre lagringsnoder och en proxy, uppbyggd av miljöerna n1-highmem-32 (32 CPU Intel Xeon 2.30GHz, 214G RAM och 450G lagring baserat pÄ SSD), leverera stabila latensnivÄer som inte översteg 2,5 ms i 95 % av fallen och 16 ms i 99 % vid hantering av 200 000 samtidiga TLS-anslutningar och en flöde pÄ 15 000 förfrÄgningar per sekund (vid 3000 samtidiga anslutningar och en flöde pÄ 80 000 förfrÄgningar per sekund översteg latensen inte 6 ms i 95 % av fallen och 15 ms i 99 %). PÄ PayPal hanterar tjÀnster baserade pÄ JunoDB cirka 350 miljarder förfrÄgningar per dag.

PayPal har öppnat koden för databashanteringssystemet JunoDB


KĂ€lla: opennet.ru
Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster