Neo4j
Características de Manejadores de Base de Datos
Descripción
Neo4j es un software
libre de Base de datos orientada a grafos, implementado en Java. Los
desarrolladores describen a Neo4j como un motor de persistencia embebido, basado
en disco, implementado en Java, completamente transaccional, que almacena datos
estructurados en grafos en lugar de en tablas ("embedded, disk-based,
fully transactional Java persistence engine that stores data structured in
graphs rather than in tables"). La versión 1.0 de Neo4j fue lanzada en
febrero de 2010. La base de datos está licenciada en un modelo dual, tanto bajo
Affero General Public License (AGPL) v3 como bajo licencia comercial.
Neo4j fue desarrollado
por Neo Technology, una startup sueca con base en Malmö y San Francisco Bay
Area en Estados Unidos. El Consejo de administración de Neo Technology consta
de: Magnus Christerson (Vicepresidente de Intentional Software Corp.), Nikolaj
Nyholm (CEO de Rosa polar), Sami Ahvenniemi (socio de Conor Venture Partners) y
Johan Svensson (CTO de Neo
Technology).
S.O soportados por Neo4J
Linux
OS X
Solaris
Windows
Aplicaciones
•
Recomendaciones en tiempo real
•
Gestión de datos maestros
•
Gestión de identidades y acceso
•
Red y Operaciones de TI
•
Detección de fraude
•
Gráfico basado en la búsqueda
Escalabilidad
•
No.
Usuarios concurrentes
Sin
datos
•
Transacciones
Cuenta
con transacciones ACID. ACID es un grupo de 4 propiedades que garantizan que
las transacciones en las bases de datos se realicen de forma confiable. Veamos
en detalle este interesante concepto.
ACID,
letra por letra
Atomicidad
La
Atomicidad requiere que cada transacción sea "todo o nada": si una
parte de la transacción falla, todas las operaciones de la transacción fallan,
y por lo tanto la base de datos no sufre cambios. Un sistema atómico tiene que
garantizar la atomicidad en cualquier operación y situación, incluyendo fallas
de alimentación eléctrica, errores y caídas del sistema.
Consistencia
La
propiedad de Consistencia se asegura que cualquier transacción llevará a la
base de datos de un estado válido a otro estado válido. Cualquier dato que se
escriba en la base de datos tiene que ser válido de acuerdo a todas las reglas
definidas, incluyendo (pero no limitado a) los constraints, los cascades, los
triggers, y cualquier combinación de estos.
Aislamiento
El
aislamiento ("Isolation" en inglés) se asegura que la ejecución
concurrente de las transacciones resulte en un estado del sistema que se
obtendría si estas transacciones fueran ejecutadas una atrás de otra. Cada
transacción debe ejecutarse en aislamiento total; por ejemplo, si T1 y T2 se
ejecutan concurrentemente, luego cada una debe mantenerse independiente de la
otra.
Durabilidad
La
durabilidad significa que una vez que se confirmó una transacción (commit),
quedará persistida, incluso ante eventos como pérdida de alimentación
eléctrica, errores y caídas del sistema. Por ejemplo, en las bases de datos
relacionales, una vez que se ejecuta un grupo de sentencias SQL, los resultados
tienen que almacenarse inmediatamente (incluso si la base de datos se cae
inmediatamente luego).
•
Herramientas
de apoyo
Guias
paso a paso como:
http://www.santiagomarquezsolis.com/herramientas-para-big-data-neo4j-parte-2/
y
http://www.javamexico.org/blogs/ezamudio/neo4j_base_de_datos_orientada_grafos
Soporte técnico
Neo4j cuenta con 3
opciones de soporte técnico
•
Stackoverflow (para preguntas técnicas en un blog)
•
Google Group (donde se comparten ideas y experiencia)
•
Atención al cliente (para los usuarios con licencia comercial)
Costo y tipos de licencia
Tipo de Licencia:
Open Source
Última actualización
Neo4j 3.1 última actualización
enero del 2017
Clientes importantes que la usan
EBAY, WALMART, CISCO, UBS, HP, CENTURYLINK, TELENOR,
TOMTOM, TELENOR, LA NATIONAL GEOGRAPHIC SOCIETY
Requisitos de instalación
•
Ubuntu 12.04 64 bits
•
Oracle Java SDK 1.7.0_51-b13
•
Neo4j 2.1.1 – community edition
Requisitos de software
Neo4j requiere Java
Virtual Machine, JVM, para operar. Los instaladores de Community Edition para
Windows y Mac incluyen una JVM para mayor comodidad. Todas las demás
distribuciones, incluidas todas las distribuciones de Neo4j Enterprise Edition,
requieren una JVM preinstalada.
Requisitos de almacenamiento
El almacenamiento de
Neo4j está organizado en archivos basados en registros por estructura de
datos: nodos, relaciones, propiedades, etiquetas, etc. Cada nodo y bloque de
registro de relación es directamente direccionable por su id.
Los bloques tienen
diferentes tamaños para acomodar los diferentes tipos de datos que contienen:
Registros de nodos:
etiquetas, puntero a la primera relación, puntero al primer bloque de
propiedades.
Registros de relación:
tipo de relación, punteros a: inicio-nodo, nodo final, primer bloque de
propiedad, próxima relación y relación anterior para los nodos de inicio y
final
Registros de
propiedades: hasta cuatro entradas de propiedad, cada una con un identificador
de clave de propiedad y un valor de propiedad codificada / comprimida o un
puntero a una lista de almacenamiento de cadenas o arrays
Los nodos ocupan 15B
de espacio, las relaciones ocupan 31B de espacio y las propiedades ocupan 41B
de espacio.
•
Mantenga la caché de objetos en un tamaño razonable (2 a 16 GB,
aproximadamente el 50% de la pila)
•
Aumente el caché de archivos (de 2 GB hasta 200 GB o más en
circunstancias excepcionales)
•
Aumentar el porcentaje del almacén asignado en la memoria caché del
sistema de archivos
•
Invertir en discos más rápidos: SSDs o hardware flash empresarial
Lenguajes soportados
Cualquiera ya que es
un software flexible.
REFERENCIAS
No hay comentarios:
Publicar un comentario