Cantidad de datos por nodo en Neo4j

14

Necesito almacenar cantidades sustanciales de datos por nodo en Neo4j. Los datos son fragmentos de texto Unicode. En realidad, no todos los nodos tendrán grandes fragmentos, pero muchos de ellos sí.

Leí la documentación pero no encontré ninguna mención sobre el tamaño del Nodo: la cantidad de datos que puede contener un solo nodo.

¿Alguien tiene alguna idea?

codificador de árboles
fuente
¿Qué tan grandes son tus trozos en general? Debe asegurarse de encontrar un string_block_size adecuado para mantener el número de bloques de cadena en el almacenamiento a un nivel razonable, así como no desperdiciar demasiado espacio solo en bloques a medio llenar. ¿Cómo se usarán los datos? ¿Acaba de procesarse o también se consulta / procesa de otra manera? Si necesita ahorrar espacio, la compresión + almacenamiento como conjunto de bytes puede ser una opción.
Michael Hunger

Respuestas:

13

En última instancia, depende de la arquitectura que tenga su máquina.


(fondo) Los nodos solo pueden almacenar datos en sus propiedades. Sus propiedades se almacenan utilizando un almacén de valores clave. (por aquí )

El valor en cada propiedad está limitado a primitivas Java (ints, flotantes, etc.), cadenas y matrices de primitivas / cadenas.

Por lo tanto, la cantidad máxima de datos que puede contener una propiedad particular se limitaría al tamaño máximo de una cadena o al tamaño máximo de una matriz de cadenas (que es por nodo ). Este límite (para máquinas de 32 bits) es de 4 GB. (Tenga en cuenta que esto puede estar limitado a 2-3 GB ).

(Además, una vez dicho esto, anteriormente había un error que limitaba el tamaño de la cadena a 1 MB . Espero que esto se resuelva).

Por supuesto, esto plantea la cuestión de si varias propiedades podrían almacenar más de 4 GB por nodo. Dado que la lista de propiedades es esencialmente un almacén de valores clave, se esperaría que el tamaño máximo estuviera limitado por el espacio en disco y la selección de claves. Sin embargo, no puedo encontrar nada para apoyar o negar esto.


Eso definitivamente no responde a su pregunta, pero por lo que entiendo, debería poder almacenar grandes cantidades de datos por nodo (hasta la capacidad de espacio en disco).

Ricardo
fuente