Wie erreicht Titan mit HBase / Cassandra eine konstante Zeitsuche?

In dem O'Reilly-Buch "Graph Databases" in Kapitel 6, in dem es darum geht, wie Neo4j eine Graph-Datenbank speichert, heißt es:

Um zu verstehen, warum die native Diagrammverarbeitung so viel effizienter ist als Diagramme, die auf einer starken Indizierung basieren, sollten Sie Folgendes berücksichtigen. Abhängig von der Implementierung können Index-Lookups eine algorithmische Komplexität von O (log n) im Vergleich zu O (1) aufweisen, um unmittelbare Beziehungen zu ermitteln. Um ein Netzwerk mit m Schritten zu durchlaufen, übersteigen die Kosten des indizierten Ansatzes bei O (m log n) die Kosten von O (m) für eine Implementierung, die indexfreie Adjazenz verwendet.

s wird dann erklärt, dass Neo4j diese konstante Zeitsuche durch Speichern aller Knoten und Beziehungen als Datensätze mit fester Größe erreich

Bei Datensätzen mit fester Größe und zeigerähnlichen Datensatz-IDs werden Durchquerungen einfach durch Verfolgen von Zeigern in einer Datenstruktur implementiert, was mit sehr hoher Geschwindigkeit durchgeführt werden kann. Um eine bestimmte Beziehung von einem Knoten zu einem anderen zu durchlaufen, führt die Datenbank mehrere kostengünstige ID-Berechnungen durch (diese Berechnungen sind viel billiger als das Durchsuchen globaler Indizes, wie wir dies tun müssten, wenn ein Diagramm in einer nativen Nicht-Diagramm-Datenbank gefälscht wird).

Dieser letzte Satz wirft meine Frage auf: Wie kann Titan, das Cassandra oder HBase als Speicher-Backend verwendet, diese Leistungssteigerungen erzielen oder diese wettmachen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage