Facebook Open Sources den eingebettete Datenbank-Code

2013-12-30  |  Comebuy News

Dicht auf den Fersen ist Release von seiner Presto verteilte SQL-Abfrage-Engine für die open-Source-Gemeinschaft Anfang dieses Monats, der sozialen Vernetzung Riese war wieder auf es heute--dies Mal öffnen, Beschaffung von RocksDB, eine integrierte, leistungsfähige, Einzelknoten-Datenbank-Engine.

Comebuy Verwandte Artikel: geht open-Source mit seiner Arbeitspferd eingebettete Daten StoreThe TAO der Daten ManagementHow gebaut, Graph Such- und was bedeutet es für soziale MediaHappy Geburtstag OpenSocial, ein Jahr OldGoogle Android Vs: der Gewinner erhält alle

"Jedes Mal, wenn einer der 1,2 Milliarden Menschen, die die Seite besucht haben, sehen sie eine einzigartige, dynamisch generierte Homepage," sagt Dhruba Borthakur, ist Ingenieur für Datenbank-engineering-Team. "Es gibt mehrere Anwendungen, die diese Erfahrung-- und andere auf der ganzen Site--einschalten, die erfordern globale, Echtzeit-Daten abrufen."

Aber speichern und Zugriff auf Ebenen von Daten, vor allem bei den Geschwindigkeiten erfordert keine Kleinigkeit ist, Borthakur erklärt. Ist eines der Werkzeuge-verwendet, um dieser Herausforderung zu stellen RocksDB, ein integrierbarer persistenter Schlüssel-Wert-Speicher für schnelle Speicherung, das auf Googles LevelDB aufbaut öffnen Source Schlüsselwert Datenbank-Bibliothek.

Wo scheint RocksDB

RocksDB ist für Anwendungen gedacht, die Latenzzeiten Datenbankzugriffe benötigen. Borthakur verweist auf eine Reihe von Anwendungsfällen, einschließlich der folgenden:

Benutzer gerichteten-Anwendungen, die die Anzeige-Geschichte und Stand der speichern verwendet eine WebsiteSpam-Erkennung-Anwendungen, die schnell AccessGraph-Suchanfragen benötigen, die Scannen von Datensätzen in RealtimeCaching Daten von Hadoop, so dass apps zum Abfragen von Hadoop in RealtimeMessage-Warteschlangen, die eine hohe Anzahl von Einsätzen unterstützen müssen und löscht

Borthakur sagt, dass er erwartet, dass die Zahl der Anwendungsfälle schnell zu wachsen.

Gründe für eine eingebettete Datenbank

Traditionell auf Anwendungen ihre Daten über Remoteprozeduraufrufe über eine Netzwerkverbindung zugreifen. Es funktioniert, aber es ist nicht schnell, vor allem Benutzer gerichteten Produkte, auf die Daten in Echtzeit Zugriff müssen. Geben Sie die eingebettete Datenbank: statt den Zugriff auf Daten über ein Netzwerk, viele neuere Anwendungen sind zu vermeiden, dass Chokepoint durch die Verwaltung ihrer eigenen Dataset auf flash-Speicher.

"Es gibt mehrere Gründe für die Wahl einer eingebetteten Datenbank," sagt Borthakur. "Wenn Datenbankanforderungen häufig aus dem Gedächtnis oder von sehr schnellen flash-Speicher bedient werden, kann Netzwerklatenz der Abfrage Reaktionszeit zu langsam. Zugriff auf das Netzwerk in einem Rechenzentrum kann ca. 50 µs dauern, da schnell-Latenz Flash kann. Dies bedeutet, dass den Zugriff auf Daten über ein Netzwerk potentiell doppelt so langsam wie eine Anwendung, die Zugriff auf Daten lokal sein könnte."

Darüber hinaus Borthakur sagt, Servern gewinnen eine zunehmende Zahl von Kernen und Speicher IOPS sind Millionen von Anforderungen pro Sekunde erreichen.

"Sperrungskonflikte und eine hohe Anzahl von Kontextwechsel in dieser Software verhindert es, die Lagerung IOPS zu sättigen," stellt er fest. "Wir finden, dass wir neue Datenbanksoftware benötigen, der flexibel genug für viele dieser neue Hardware Trends angepasst werden."

Von vollständig verwenden die IOPS angeboten von flash-Speicher, Borthakur sagt, dass RocksDB führt schneller als LevelDB über zufällige lesen, schreiben und Massen-Uploads--10-mal schneller für eine rein zufälligen Schreibzugriffen Arbeitsauslastung und Bulk-Upload und 30 Prozent schneller für reine wahlfreien lesen.

Der RocksDB Code ist jetzt live.

Thor Olavsrud deckt es Sicherheit, Big Data, Open Source, Microsoft-Tools und Server für CIO. Folgen Sie Thor auf @ThorOlavsrud. Alles von CIO auf @CIOonline, folgen, Google + und LinkedIn.

« Back