Nei O'Reilly libro "database del grafico" nel capitolo 6, che è su come Neo4j memorizza un database grafico che dice:In che modo Titan ottiene una ricerca costante del tempo utilizzando HBase/Cassandra?
Per comprendere il motivo per cui l'elaborazione grafico nativo è così molto più efficiente di grafici basati su indicizzazione pesante, considerare quanto segue. A seconda dell'implementazione, le ricerche dell'indice potrebbero essere O (log n) in complessità algoritmica rispetto a O (1) per cercare relazioni immediate. Per attraversare una rete di m passi, il costo dell'approccio indicizzato, a O (m log n), fa sembrare nullo il costo di O (m) per un'implementazione che utilizza l'adiacenza dell'indice senza indici.
Esso viene poi spiegato che Neo4j raggiunge questo ricerca costante di tempo memorizzando tutti i nodi e le relazioni come record dimensione fissa:
Con record di dimensioni fisse e ID record puntatore simili, attraversamenti sono implementati semplicemente inseguendo i puntatori attorno a una struttura dati, che può essere eseguita a velocità molto elevata con . Per attraversare una particolare relazione da un nodo a un altro, il database esegue diversi calcoli di ID economici (questi calcoli sono molto più economici di cercando indici globali, come dovremmo fare se simulare un grafico in un documento non nativo non grafico database)
Quest'ultima frase fa scattare la mia domanda: in che modo Titan, che utilizza Cassandra o HBase come back-end di archiviazione, raggiunge questi miglioramenti di prestazioni o compensa?
E voterei per la stessa domanda per OrientDB! –
Buona domanda, si. OrientDB gestisce la propria memoria, quindi suppongo che abbiano qualcosa di simile a Neo4j, ma mi piacerebbe saperlo. –
Neo4j è O (1) in complessità algoritmica, indipendentemente dal fatto che si stia accedendo a un oggetto memorizzato nella cache oa uno su disco, poiché semplicemente insegue i puntatori anziché richiamare un indice esterno per le relazioni di movimento. Neubauer e Rodriguez (vedi sopra) chiamano questa "adiacenza indice-libera" e sospetto che sia centrale per tutti i database di dati sensibili. –