Paypal Open-Sources JunoDB: Sein verteilter Schlüsselwertspeicher

0
25


Paypal hat kürzlich JunoDB als Open-Supply-Lösung bereitgestellt, einen verteilten Schlüsselwertspeicher, der auf RocksDB basiert. Täglich verarbeitet JunoDB, die hochverfügbare und sicherheitsorientierte Datenbank von PayPal, 350 Milliarden Anfragen.

Die vielfältigen Anwendungen von PayPal basieren stark auf JunoDB, einem verteilten Schlüsselwertspeicher. JunoDB wird für praktisch alle wichtigen Backend-Dienste bei PayPal verwendet, einschließlich Authentifizierung, Risikobewertung und Transaktionsabwicklung. Mit JunoDB können Daten zwischengespeichert und von Apps aus schnell abgerufen werden, wodurch die Belastung für Backend-Dienste und relationale Datenbanken verringert wird. JunoDB ist jedoch keine gewöhnliche NoSQL-Datenbank. Es wurde entwickelt, um die spezifischen Anforderungen von PayPal zu erfüllen. Dadurch können viele gleichzeitige Benutzer und Verbindungen gleichzeitig verwaltet werden, ohne dass es zu einer Verlangsamung kommt. Ursprünglich in Single-Threaded C++ erstellt, wurde es in Golang umgeschrieben, um die Vorteile der Parallelverarbeitung und vieler Kerne zu nutzen.

Die JunoDB-Architektur ist ein zuverlässiges und erweiterbares System, bei dem Benutzerfreundlichkeit, Skalierbarkeit, Sicherheit und Flexibilität im Vordergrund stehen. Proxy-basiertes Design vereinfacht die Entwicklung, indem es komplexe Logik und Setup von Anwendungen abstrahiert und eine lineare horizontale Verbindungsskalierung ermöglicht. Beim Erweitern oder Verkleinern von Clustern verwendet JunoDB konsistentes Hashing, um Daten aufzuteilen und die Datenmenge zu reduzieren, die verschoben werden muss. JunoDB verwendet ein Quorum-basiertes Protokoll und ein zweiphasiges Commit, um die Datenkonsistenz zu gewährleisten und sicherzustellen, dass es nie zu Ausfallzeiten für die Datenbank kommt.

Der Schutz von Informationen sowohl bei der Übertragung als auch im Ruhezustand hat hohe Priorität. Daher sind TLS-Unterstützung und Payload-Verschlüsselung implementiert. Schließlich werden die Flexibilität und die Fähigkeit von JunoDB, sich im Laufe der Zeit anzupassen, durch das steckbare Speicher-Engine-Design gewährleistet, das den Wechsel zu neuen Speichertechnologien vereinfacht, sobald diese verfügbar sind.

Der Kern von JunoDB besteht aus drei voneinander abhängigen Teilen:

  1. Der JunoDB-Proxy ermöglicht dank der bereitgestellten API der JunoDB-Clientbibliothek das einfache Speichern, Abrufen und Aktualisieren von Anwendungsdaten. Durch die Unterstützung von Sprachen wie Java, Golang, C++, Node und Python kann die JunoDB-Skinny-Shopper-Bibliothek problemlos in Programme integriert werden, die in verschiedenen Sprachen erstellt wurden.
  2. Clientabfragen und Replikationsverkehr von Remotestandorten werden von Proxy-Instanzen von JunoDB verarbeitet, die von einem Load Balancer gesteuert werden. Jeder Proxy stellt eine Verbindung zu allen JunoDB-Speicherserverinstanzen her und leitet Anforderungen entsprechend der in ETCD gespeicherten Shard-Zuordnung an eine Reihe von Speicherserverinstanzen weiter.
  3. JunoDB verwendet RocksDB, um Daten im Arbeitsspeicher oder im persistenten Speicher zu speichern, wenn eine Betriebsanforderung von einem Proxy empfangen wird.

JunoDB sorgt für ein hohes Maß an Zugänglichkeit und Systemreaktionsfähigkeit und unterstützt gleichzeitig viele Clientverbindungen. Es verwaltet auch die Datenerweiterung und sorgt für einen hohen Lese-/Schreibdurchsatz, selbst wenn das Datenvolumen und die Zugriffsraten steigen. Um eine Systemverfügbarkeit von sechs Neunen zu erreichen, verwendet JunoDB eine Mischung aus Lösungen, einschließlich Datenreplikation innerhalb und außerhalb von Rechenzentren und Failover-Mechanismen.

JunoDB bietet außergewöhnliche Leistung im großen Maßstab und bewältigt selbst die intensivsten Arbeitslasten mit Reaktionszeiten im Millisekundenbereich und ohne Beeinträchtigung des Benutzererlebnisses. Darüber hinaus bietet JunoDB einen hohen Durchsatz und geringe Latenzen, sodass Anwendungen linear skaliert werden können, ohne dass die Leistung beeinträchtigt wird.

Benutzer können den Quellcode für JunoDB, veröffentlicht unter der Apache-2-Lizenz, auf GitHub erhalten. PayPal hat Tutorial-Movies zur Serverkonfiguration und Shopper-Entwicklung erstellt, um Entwicklern die Datenbanknutzung zu erleichtern. Das Crew plant, in Zukunft einen Golang-Shopper und einen JunoDB-Operator für Kubernetes einzubeziehen.


Besuche die Referenzartikel. Vergessen Sie nicht, mitzumachen unser 23k+ ML SubReddit, Discord-Kanal, Und E-Mail-Newsletter, wo wir die neuesten Nachrichten aus der KI-Forschung, coole KI-Projekte und mehr teilen. Wenn Sie Fragen zum obigen Artikel haben oder uns etwas entgangen ist, schreiben Sie uns gerne eine E-Mail an Asif@marktechpost.com

🚀 Schauen Sie sich 100 KI-Tools im AI Tools Club an


Tanushree Shenwai ist Beratungspraktikantin bei MarktechPost. Derzeit absolviert sie ihren B.Tech am Indian Institute of Expertise (IIT) in Bhubaneswar. Sie ist eine begeisterte Knowledge-Science-Enthusiastin und hat großes Interesse am Anwendungsbereich künstlicher Intelligenz in verschiedenen Bereichen. Ihre Leidenschaft gilt der Erforschung neuer technologischer Fortschritte und ihrer praktischen Anwendung.




Source link

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here