Key-Value-Datenbank: PayPal veröffentlicht Code seiner internen Datenbank JunoDB

Ursprünglich nur für eigene Zwecke entwickelt, sollen nun auch andere von PayPals selbst entwickelter Schlüssel-Werte-Datenbank JunoDB profitieren können.

In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen

(Bild: iX)

Lesezeit: 2 Min.

Der Betreiber des Online-Bezahldienstes PayPal hat die intern entwickelte Datenbank JunoDB als quelloffenes Projekt bei Github veröffentlicht. JunoDB ist eine verteilte Schlüssel-Werte-Datenbank (Distributed Key-Value-Store).

Daten speichert die nun quelloffene Datenbank auf Wunsch auf Festplatten statt im Arbeitsspeicher und eignet sich daher auch für persistente Speicherungen. Im Speicher liegen die Daten verschlüsselt, beim Transfer sind sie über das TLS-Protokoll verschlüsselt. Bei der Architektur setzt die Datenbank auf drei Komponenten: Zwischen der Client-Bibliothek in Anwendungen und den JunoDB-Storage-Servern sind Proxies zwischengeschaltet, die die Client-seitigen Anfragen verteilen und so eine horizontale Verbindungs-Skalierung ermöglichen. Die JunoDB-Thin-Client-Bibliothek ist in verschiedenen Programmiersprachen wie Java, Golang, C++, Node und Python verfügbar.

Drei Ebenen zeichnen die Architektur von JunoDB aus: Clients, Proxies und Server.

(Bild: PayPal)

PayPal nennt auch einige konkrete Anwendungsfälle für JunoDB im Unternehmen: Neben dem temporären Caching von User-Einstellungen, Access Tokens und ähnlichen Daten komme sie auch bei der Idempotenz, also der Vermeidung von Doppelverarbeitungen – etwa von Zahlungen – zum Einsatz. Obwohl man JunoDB außerdem nicht als permanentes System of Record (SOR) betrachte, nutze man die Datenbank in einigen Fällen als solches. Obendrein nutze man das System mit seiner Inter-Cluster-Replikation zur Latenzüberbrückung.

Eine eigene Datenbank habe man entwickelt, weil es "vor über einer Dekade" weder ein kommerzielles noch ein Open-Source-Projekt gegeben habe, das den Ansprüchen des Unternehmens an horizontale Skalierbarkeit entsprochen habe. Als C++-Programm gestartet, ist JunoDB inzwischen vollständig neu in Go geschrieben. Entstanden sei so eine "extrem skalierbare, sichere und hochverfügbare NoSQL-Infrastruktur", wie Paypal im Medium-Blogpost zur Quellöffnung verspricht. Intern setze PayPal JunoDB bereits in nahezu allen Kern-Backend-Anwendungen ein – täglich würde die Datenbank so 350 Milliarden Anfragen verarbeiten. JunoDB steht unter der Apache-2-Lizenz quelloffen bei GitHub zur Verfügung.

(jvo)