Está en la página 1de 14

Temporal Index - Avances

Overview
Overview

● Recap

● Avances

● Desarrollo Futuro

● Demo
Recap
Proyecto Anterior
● Base de datos de grafos temporal
○ Sobre Neo4j

● Lenguaje de Consulta TGQL


○ Parser a Cypher (Neo4j)
○ Uso de procedures de Neo4j
● Caminos Continuos

Follows Follows
A B C
Proyecto Anterior - Caminos Continuos

A Intersección: [ 2010 - 2013 ] B

A Intersección vacía B
Proyecto Anterior
● Caminos Continuos -> función cPath -> procedure coTemporalPaths

TGQL

Cypher
Proyecto Anterior
● Las consultas para caminos pueden tardar mucho en bases de datos de
grandes tamaños
○ Algunas incluso exceden la memoria utilizable por Neo4j!
● Se necesita una manera eficiente de realizar las consultas
○ Un índice podría disminuir los tiempos de ejecución
● Se busca implementar un índice - para caminos continuos.
Temporal Index
● Subestructura en el mismo grafo
● Jerarquía del índice:
○ Root ROOT
○ Meta Nodes
■ Relationship Name
■ From Date
■ To Date :META:Friend
○ Index Nodes 2010-2015
■ From Date
■ To Date
■ Source
Source: 14
■ Destination
Destination: 28
■ Intermediate Length: 4
■ Length 2010-2011
Avances
Avances
● Optimización de coTemporalPaths - Quick coTemporalPaths
● Creación del Índice
● Obtención de Caminos usando el Índice
○ Reconstrucción directa
○ Concatenación de caminos de longitud 2 (Consume menos espacio!)
● Integración con TGQL
○ Si el camino está en el índice, reconstruirlo
○ Si no, buscar el camino normalmente
Desarrollo Futuro
Desarrollo Futuro

● Cómputo de caminos utilizando sólo un nodo fuente


○ La implementación original requiere nodo fuente y destino
○ n nodos → n llamados a coTemporalPaths!
● Updates al índice
○ Actualizar el índice cuando se inserte un nodo (via TGQL), etc.
● Terminar integración a TGQL
● Pruebas en Casos Reales
○ Bases de datos grandes
○ Comparación de Performance
Demo

También podría gustarte