Database Reference
In-Depth Information
Fallstudie: Facebooks Messaging-Index-Tabelle
Facebook nutzt HBase als grundlegende Komponente seiner Messaging-Infrastruk-
tur, und zwar sowohl zur Speicherung von Nachrichten-Daten, als auch zur Pflege
eines invertierten Indexes für die Suche.
Bei seinem Index-Tabellen-Schema:
￿ sind die Zeilenschlüssel Benutzer-IDs;
￿ sind Spalten-Bezeichner Wörter, die in den Nachrichten der Benutzer vorkom-
men;
￿ sind Zeitstempel Nachrichten-IDs, die dieses Wort enthalten.
Nachrichten zwischen Nutzern sind unveränderlich, weshalb auch die Indexeinträ-
ge für eine Nachricht statisch sind. Das Konzept versionierter Werte ist hier nicht
sinnvoll.
Für Facebook bietet die Manipulation des Zeitstempels zum Matching von Nachrich-
ten-IDs eine zusätzliche Dimension zur Speicherung von Daten.
Tabellen ändern
Bislang besteht unser Wiki-Schema aus Seiten mit Titeln, Text und einer
integrierten Versions-Historie, mehr aber auch nicht. Wir wollen das wie folgt
erweitern:
￿ In unserem Wiki wird eine Seite eindeutig über ihren Titel identifiziert.
￿ Eine Seite kann beliebig oft überarbeitet werden.
￿ Eine Überarbeitung wird über ihren Zeitstempel identifiziert.
￿ Eine Überarbeitung enthält Text und optional einen Commit-Kommentar.
￿ Eine Überarbeitung erfolgt durch einen Autor, der über seinen Namen
identifiziert wird.
Visuell lassen sich unsere Anforderungen wie in Abbildung 15, Anforderun-
gen an eine Wiki-Seite (mit Zeitdimension) , auf Seite 112 darstellen. Bei die-
ser abstrakten Darstellung unserer Anforderungen einer Seite erkennen wir,
dass jede Überarbeitung einen Autor, einen Commit-Kommentar, den Arti-
keltext und einen Zeitstempel enthält. Der Titel der Seite ist nicht Teil der
Überarbeitung, da wir ihn als ID für die Überarbeitungen einer Seite nutzen.
Die Abbildung unserer Vorstellungen in eine HBase-Tabelle verlangt eine et-
was andere Form, die in Abbildung 16, Aktualisierte Wiki-Tabellenarchitektur
(ohne Zeitdimension) , auf Seite 112 zu sehen ist. Unsere Wiki-Tabelle ver-
wendet den Titel als Zeilenschlüssel und gruppiert weitere Seiten-Daten in
zwei Spaltenfamilien namens text und revision . Die Spaltenfamilie text ist
 
Search WWH ::




Custom Search