Lanzamiento del DBMS Nebula Graph 3.2 orientado a gráficos

Se ha publicado el lanzamiento del DBMS Nebula Graph 3.2 abierto, diseñado para el almacenamiento eficiente de grandes conjuntos de datos interconectados que forman un gráfico que puede contar con miles de millones de nodos y billones de conexiones. El proyecto está escrito en C++ y distribuido bajo la licencia Apache 2.0. Las bibliotecas cliente para acceder al DBMS están preparadas para los lenguajes Go, Python y Java.

El SGBD utiliza una arquitectura distribuida sin compartir recursos (shared-nothing), lo que implica el lanzamiento de procesos de procesamiento de consultas gráficas y procesos de almacenamiento almacenados independientes y autosuficientes. El metaservicio organiza el movimiento de datos y proporciona metainformación sobre el gráfico. Para garantizar la coherencia de los datos, se utiliza un protocolo basado en el algoritmo RAFT.

Características principales de Nebula Graph:

  • Garantizar la seguridad restringiendo el acceso solo a usuarios autenticados cuyos permisos se establecen a través de un sistema de control de acceso basado en roles (RBAC).
  • Posibilidad de conectar diferentes tipos de motores de almacenamiento. Soporte para ampliar el lenguaje de generación de consultas con nuevos algoritmos.
  • Garantizar una latencia mínima al leer o escribir datos y mantener un alto rendimiento. Cuando se probó en un grupo de un nodo gráfico y tres nodos almacenados, una base de datos de 632 GB, que incluía un gráfico de 1.2 mil millones de vértices y 8.4 mil millones de aristas, las latencias fueron de unos pocos milisegundos y el rendimiento fue de hasta 140 mil solicitudes por segundo.
  • Escalabilidad lineal.
  • Un lenguaje de consulta similar a SQL que es potente y fácil de entender. Las operaciones admitidas incluyen GO (recorrido bidireccional de los vértices del gráfico), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (usando el resultado de una consulta anterior). Se admiten índices y variables definidas por el usuario.
  • Garantizar alta disponibilidad y resiliencia ante fallas.
  • Soporte para crear instantáneas con una porción del estado de la base de datos para simplificar la creación de copias de seguridad.
  • Listo para uso industrial (ya utilizado en la infraestructura de JD, Meituan y Xiaohongshu).
  • La capacidad de cambiar el esquema de almacenamiento de datos y actualizarlo sin detener ni afectar las operaciones en curso.
  • Soporte TTL para limitar la vida útil de los datos.
  • Comandos para administrar configuraciones y hosts de almacenamiento.
  • Herramientas para la gestión de obra y programación de inicios de obra (de las obras soportadas actualmente son COMPACT y FLUSH).
  • Operaciones para encontrar el camino completo y el camino más corto entre vértices dados.
  • Interfaz OLAP para integración con plataformas de análisis de terceros.
  • Utilidades para importar datos desde archivos CSV o desde Spark.
  • Exporte métricas para monitoreo usando Prometheus y Grafana.
  • Interfaz web de Nebula Graph Studio para visualizar operaciones de gráficos, navegación de gráficos, diseño de almacenamiento de datos y esquemas de carga.

En el nuevo lanzamiento:

  • Se agregó soporte para la función extract() para extraer una subcadena que coincida con una expresión determinada.
  • Configuraciones optimizadas en el archivo de configuración.
  • Se agregaron reglas de optimización para eliminar el operador AppendVertices inútil y deshabilitar la aplicación de filtros de bordes y vértices.
  • Se ha reducido la cantidad de datos copiados para la operación JOIN, así como para los operadores Traverse y AppendVertices.
  • Rendimiento optimizado de RUTA MÁS CORTA y SUBGRAFO
  • Asignación de memoria mejorada (Arena Allocator habilitado).

Fuente: opennet.ru

Añadir un comentario