Quantità di dati per nodo in Neo4j


14

Devo archiviare notevoli quantità di dati per nodo in Neo4j. I dati sono pezzi di testo Unicode. In realtà non tutti i nodi avranno grossi pezzi, ma molti di loro lo faranno.

Ho esaminato la documentazione ma non ho trovato alcuna menzione sulla dimensione del nodo: la quantità di dati che può contenere un singolo nodo.

Qualcuno ha qualche idea?


Quanto sono grandi i tuoi pezzi in generale? Dovresti assicurarti di trovare un string_block_size adatto per mantenere il numero di blocchi di stringhe nella memoria a un livello ragionevole, oltre a non sprecare troppo spazio solo in blocchi riempiti per metà. Come verranno utilizzati i dati? Appena reso o anche interrogato / elaborato altrimenti? Se è necessario risparmiare spazio, la compressione + archiviazione come array di byte può essere un'opzione.
Michael Hunger,

Risposte:


13

In definitiva, dipende dall'architettura della tua macchina.


(background) I nodi possono archiviare esclusivamente i dati nelle loro proprietà. Le loro proprietà vengono archiviate utilizzando un archivio valori-chiave. (per qui )

Il valore in ciascuna proprietà è limitato alle primitive Java (ints, float, ecc.), Alle stringhe e alle matrici di primitive / stringhe.

Pertanto, la quantità massima di dati che può contenere una determinata proprietà sarebbe limitata alla dimensione massima per una stringa o alla dimensione massima per una matrice di stringhe (ovvero per nodo ). Questo limite (per macchine a 32 bit) è di 4 GB. (Si noti che questo può essere limitato a 2-3 GB .)

(Inoltre, detto questo, in precedenza c'era un bug che limitava la dimensione della stringa a 1 MB . Mi aspetto che sia stato risolto.)

Naturalmente, ciò solleva la questione se più proprietà possano memorizzare più di 4 GB per nodo. Poiché l'elenco delle proprietà è essenzialmente un archivio di valori-chiave, ci si aspetterebbe che la dimensione massima sia limitata dallo spazio su disco e dalla selezione della chiave. Non riesco a trovare nulla per supportare o negare questo, tuttavia.


Ciò non risponde definitivamente alla tua domanda, ma da quello che ho capito dovresti essere in grado di archiviare grandi quantità di dati per nodo (fino alla capacità di spazio su disco).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.