martes, 28 de febrero de 2017

Neo4j

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