Twitter Mitarbeiter Kevin Weil sprach an der Veranstaltung Strange Loop über den Einsatz von NoSQL Technologien bei Twitter.com. Er sprach davon, dass Twitter zwar sehr viele MySQL Datenbanken im Einsatz hat, aber auch dort mit NoSQL Lösungen arbeitet, wo eine klassische Datenbank an ihre Grenzen stösst.
Twitter Benutzer laden täglich 12 Terrabyte an Daten auf Twitter.com hoch. Das sind 4 Petabytes pro Jahr, wobei sich das Datenvolumen jedes Jahr mindestens verdoppelt. Um diese Datenflut zu bewältigen arbeitet Twitter mit verschiedenen Technologien:
Scribe
Scribe ist ein flexibles Logging System, welches von Facebook entwickelt wurde. Twitter hat das System mit eigenen Patches an seine Bedürfnisse angepasst. Twitter loggt 80 verschiedene Kategorien von Daten mit Scribe. Die Logdaten werden in Hadoop geschrieben
Hadoop
Twitter schreibt mehr Daten pro Tag als jede Harddisc zu schreiben schafft. Daher arbeitet Twitter mit Cluster Systemen welche die Schreiblast verteilen. Diese Cluster werden mit Cloudera’s Hadoop Distribution betrieben. MySQL wäre mit der Menge an Daten überfordert welche bei Twitter anfallen, deswegen benutzt Twitter das eigene FlockDB System, welches als OpenSource vorliegt.
Pig
Weil sagte die normale Sprache um mit dem Hadoop Cluster zu kommunizieren sei Java. Java ist aber zu komplex und zuwenig skalierbar um mit der grossen Menge an Daten umgehen zu können. Daher kommt bei Twitter die Sprache Pig zum Einsatz um die Cluster Systeme anzusprechen. Pig wurde von Yahoo entwickelt und Weil meinte es sei leicht zu erlernen.
Hbase
Hbase ist ebenfalls ein Aufsatz von Hadoop und wird gebraucht um super schnelle Cluster Zugriffe zu realisieren. Twitter nutzt Hbase für seine Benutzersuche.
FlockDB
FlockDB ist eine verteilte realtime Datenbank welche von Twitter selber entwickelt wurde. Es basiert im Kern auf MySQL wurde aber auf Geschwindigkeit und kurze Zugriffe optimiert. Twitter stellt FlockDB als OpenSource zur Verfügung. FlockDB kommt zum Beispiel bei er Erkennung von @Replies zum Einsatz.
Anbei noch die Präsentation von Weils Kollege Nick Kallen welcher auf die Verwendung der Daten bei Twitter eingeht:
Fazit:
Wer die Technologien von Twitter und Facebook vergleicht, stellt fest das sehr viele Tools bei beiden Seiten eingesetzt werden. Einiges ist von Facebook entwickelt worden, anderes von Twitter. Gemeinsam haben diese Lösungen, dass sie als OpenSource vorliegen. Twitter wie Facebook entwickeln sehr viele Lösungen selber, und treiben dadurch die Entwicklung von hochverfügbaren Datenbanksystemen und Clustern weiter voran.
Pingback: Tweets that mention Übersicht der bei Twitter.com eingesetzten Technologien » Twitter, Daten, FlockDB, Cluster, Hadoop, Einsatz » iFrick.ch -- Topsy.com