2012-10-19 14 views
11

Mi chiedo perché neo4j abbia un limite di capacità su nodi e relazioni. Il limite su Nodi e Relazioni è 2^35 1 che è un bit "piccolo" in più rispetto al "normale" 2^32 intero. Database SQL comuni per esempio mysql memorizza la chiave primaria come int (2^32) o bigint (2^64) 2. Puoi spiegarmi i vantaggi di questa decisione? Secondo me questo è un punto di decisione chiave nella scelta di un database.Perché esiste questo limite di capacità su nodi e relazioni in neo4j?

+0

Hanno rimosso tutti questi vincoli in neo4j 3.0. Vedi la mia risposta [in basso] (http://stackoverflow.com/a/37033847/1925109). – Hassan

risposta

11

È un limite artificiale. Stanno per rimuoverlo in un futuro non troppo lontano, anche se non ho sentito alcun ETA ufficiale.

Spesso, si verificano limiti hardware su una singola macchina prima che si raggiunga effettivamente questo limite.

L'opzione corrente consiste nel suddividere manualmente i grafici su macchine diverse. Non è l'ideale per alcuni casi d'uso, ma funziona in altri casi. In futuro avranno un modo per dividere automaticamente i dati - nessun ETA neanche su questo.

Aggiornamento: Ho imparato un po 'di più sugli interni di storage neo4j. Il motivo per cui i limiti sono esattamente ciò che sono, sono perché i numeri di identificazione sono memorizzati su disco come puntatori in diversi punti (record di nodi, record di relazioni, ecc.). Per aumentarlo con un'altra potenza di 2, avrebbero bisogno di aumentare 1 byte per nodo e 1 byte per relazione - è attualmente imballato fino in fondo senza dover utilizzare più byte su disco. Per saperne di più a questo grande post del blog: http://digitalstain.blogspot.com/2010/10/neo4j-internals-file-storage.html

Aggiornamento 2:
Ho sentito che in 2.1 essi saranno in aumento di questi limiti a circa un ordine di grandezza superiore a quello che attualmente sono.

0

A partire da neo4j 3.0, tutti questi vincoli vengono rimossi.

La compressione dinamica del puntatore espande lo spazio di indirizzi disponibili di Neo4j secondo necessità, rendendo possibile la memorizzazione di grafici di qualsiasi dimensione. Esatto: non più 34 miliardi di limiti di nodi!

Per ulteriori informazioni, visitare http://neo4j.com/blog/neo4j-3-0-massive-scale-developer-productivity.

Problemi correlati