A PayPal nyilvánosságra hozta a JunoDB adatbázis-kezelő kódját.

A PayPal cég megnyitotta a JunoDB hibajavító relációs adatbázis-kezelő rendszerének forráskódját, amely kulcs-érték formátumban kezeli az adatokat. A rendszer eredetileg magas biztonságra, horizontális skálázhatóságra, hibamentességre és a számos egyidejű kapcsolat feldolgozására lett tervezve, előre látható késésekkel. A PayPal-nál gyakorlatilag minden szolgáltatás, a felhasználók bejelentkezésétől kezdve a pénzügyi tranzakciók feldolgozásáig, a JunoDB-re épül. A projekt kódját Go nyelven írták (a kliens könyvtár Java nyelven) és az Apache 2.0 licenc alatt terjesztik. A további fejlesztések során a közösség által benyújtott javításokat, fejlesztéseket és változtatásokat is figyelembe fogják venni.

A JunoDB architektúrája egy terheléselosztóra épül, amely a kliensalkalmazásoktól érkező kéréseket fogadja és elosztja őket a proxy-szerverek között, amelyek egyszerre több tárolási csoporthoz kapcsolódnak. szerverek Minden proxy-szerver egyszerre minden tárolási csoporttal kapcsolatot létesít a kérés végrehajtásakor. szerverek A kérdéseket a tárolási csoport szervereihez irányítja a szegmentálási index alapján, amely a konfigurációs etcd elosztott tárolási rendszerben található.

A PayPal nyilvánosságra hozta a JunoDB adatbázis-kezelő kódját.

Az adatok szegmentálva vannak, és tárolócsomópontokhoz kötődnek, hash-elés segítségével, ami csökkenti az adatok mozgását a klaszter csomópontok bővítése vagy csökkentése során. A hibamentesség biztosítása érdekében a minden egyes adatcsomagot több tárolócsomóponton replikálnak, ami lehetővé teszi az információk megőrzését egyes szerverek leállása esetén. Támogatott a földrajzilag elosztott tárolók létrehozása, ahol a csomópontok csoportjai különböző adatközpontokban helyezkednek el.

A PayPal nyilvánosságra hozta a JunoDB adatbázis-kezelő kódját.

A tároló csomópontokon az adatok a memóriában vagy a helyi RocksDB alapú tárolóban helyezkednek el. Tartós tárolás esetén az adatokat titkosított formában tárolják (a titkosítási kulcsot lehet ügyfél által meghatározni, vagy állítható a proxy szinten).

A PayPal nyilvánosságra hozta a JunoDB adatbázis-kezelő kódját.

Az alkalmazások adatbázisokhoz való eléréséhez egy kliens könyvtár áll rendelkezésre, amely API-t biztosít Java, Go és C++ nyelvű alkalmazásokhoz. A kliens oldala a lehető legegyszerűbb, a bonyolult logika és beállítások a lehetőségekhez mérten a DBMS oldalára kerülnek. A kliens és a terheléselosztó vagy proxy közötti interakció titkosított kapcsolat révén valósul meg. A vezérléshez és kérések küldéséhez parancssori felület használható, amely reprodukálja a kliens API összes lehetőségét.

A rendszer úgy lett megtervezve, hogy előrejelzhető alacsony késleltetésű kéréseket kezeljen, például egy három tárolócsomópontból és egy proxyból álló klaszter, amely az n1-highmem-32 (32 CPU Intel Xeon 2.30GHz, 214G RAM és 450G SSD alapú tároló) környezeteiből készült, képes volt 95% -ban 2,5 ms-nál rövidebb késleltetést és 99% -ban 16 ms-t biztosítani 200 ezer egyidejű TLS-kapcsolat és 15 ezer kérés másodpercenkénti áramlása mellett (3000 egyidejű kapcsolattal és 80 ezer kérés másodpercenkénti áramlással a késleltetés 95% -ban nem haladta meg a 6 ms-t, míg 99% -ban 15 ms-t). A PayPal szolgáltatások, amelyek JunoDB-n alapulnak, napi körülbelül 350 milliárd kérést kezelnek.

A PayPal nyilvánosságra hozta a JunoDB adatbázis-kezelő kódját.


Forrás: opennet.ru
Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster