Designing a temporal graph management system for IoT application domains
Gestion distribuée de grands graphes dynamiques : application à l'IOT
Abstract
Graphs are frequently used to model real-world interactions as a collection of nodes and relationships. There has been substantial development in the design of graph-oriented databases that incorporate special query storage and evaluation techniques optimized for graph data models. Given their expressiveness, graph models have been used in many applications. However, many of these graphs undergo continuous or sporadic changes such that more important information can be extracted from the analysis of the history of these graphs than a single static state. In this thesis, we mainly focus on the case of Thing'in, a research platform initiated by Orange, managing a graph of objects, where the nodes are objects (mainly IoT objects) and the edges are relations between them. The users of Thing'in are companies and public administrations developing services around smart cities. The majority of nodes in the Thing'in graph represent IoT devices (e.g., machines, motion sensors, or cameras). While the other nodes are related to the environment of these devices (e.g., cities, buildings or rooms). When the platform was initiated in 2017, Thing'in's graph contained 50 thousand connected objects. This number has steadily increased to 50 million, a number that will steadily increase shortly. Since the graph of Thing'in is dynamic, important questions about the past states of the graph can be asked, which motivated the management of the time dimension in the platform. For a smart factory, Thing'in's graph history allows tracking of a product's various positions throughout the manufacturing pipeline, detecting the causes of manufacturing delays or product losses, and reconstructing the state of the graph before a system failure. Reasoning about the past and responding to temporal queries of Thign'in use cases is only possible if the history of the graph is managed. At the beginning of this thesis, the Thing'in platform was not designed to support the temporal dimension. Thus, the objective of this thesis is to design a management system for temporal graphs and to integrate it into the Thing'in platform. Although many existing systems are designed with time support, none of these systems fully meets our requirements. To overcome these limitations, we designed Clock-G, a time graph management system. The main features of Clock-G, thus the main contributions of this thesis are : the definition of the temporal graph query language T-Cypher which allows to leverage pattern matching and navigational queries with the temporal dimension which cannot be expressed by existing languages ; the proposal and implementation of a storage strategy which is based on the concepts of materialization of the states of the graph at temporal instants in order to be able to access them easily during the query. The proposed method provides a balance between space and query response time which cannot be achieved with traditional storage methods ; the proposal and implementation of a T-Cypher query processor that chooses greedily the best evaluation plan of a temporal query taking into account the requested time interval of the queries.
Les graphes sont fréquemment utilisés pour modéliser les interactions du monde réel comme une collection de nœuds et de relations. Il y a eu un développement substantiel dans la conception de bases de données orientées graphes qui intègrent des techniques spéciales de stockage et d'évaluation de requêtes optimisées pour les modèles de données de graphes. Compte tenu de leur expressivité, les modèles de graphes ont été utilisés dans de nombreuses applications. Cependant, un grand nombre de ces graphes subissent des changements continus ou sporadiques tel que des informations plus importantes peuvent être extraites de l'analyse de l'historique de ces graphes plutôt qu'un seul état statique. Dans cette thèse, nous nous concentrons principalement sur le cas de Thing'in, une plateforme de recherche initiée par orange, gérant un graphe d'objets, où les nœuds sont des objets (principalement des objets IoT) et les arêtes sont des relations entre eux. Les utilisateurs de Thing'in sont des entreprises et des administrations publiques développant des services autour des villes intelligentes. La majorité des nœuds du graphe Thing'in représentent des appareils IoT (par exemple, des machines, des détecteurs de mouvement ou des caméras). Alors que les autres nœuds sont liés à l'environnement de ces appareils (par exemple, des villes, des bâtiments ou des pièces). Lorsque la plateforme a été initiée en 2017, le graphe de Thing’in contenait 50 milliers d’objets connectés. Ce nombre a régulièrement augmenté pour atteindre 50 millions, un nombre qui continuera à augmenter dans le proche avenir. Le graphe de Thing'in étant non statique, des questions importantes sur les états passés du graphe peuvent être posées ce qui a motivé la gestion de la dimension temporelle dans la plateforme. Pour une usine intelligente, l’historique du graphe de Thing’in permet le suivi des différentes positions d'un produit tout au long du pipeline de fabrication, la détection des causes des retards de fabrication ou des pertes de produit et la reconstitution de l'état du graphe avant une défaillance du système. Raisonner sur le passé et répondre aux requêtes temporelles des cas d’usage de Thign’in possible que si l’historique du graphe est géré. Au début de cette thèse, la plateforme Thing’in n’était pas conçue pour supporter la dimension temporelle et seul le dernier état du graphe était conservé. Ainsi, l’objectif de cette thèse est de concevoir un système de gestion des graphes temporelles et de l’intégrer dans la plateforme Thing’in. Bien que de nombreux systèmes existants soient conçus avec un support temporel, aucun de ces systèmes ne répond complètement à nos exigences. Pour pallier ces limitations, nous avons conçu Clock-G, un système de gestion des graphes temporels. Les principales caractéristiques de Clock-G, ainsi les principales contributions de cette thèse sont : la définition du langage de requête de graphe temporel T-Cypher qui permet d'exprimer des requêtes de pattern matching ou de parcours de graphes temporelles qui ne peuvent pas être exprimé par les langages existants ; la proposition et implémentation d'une stratégie de stockage qui est basée sur les concepts de matérialisation des états du graphe à des instants temporels pour pouvoir y accéder facilement lors du requêtage. La méthode proposée offre un équilibre entre l'espace de stockage et le temps de réponse des requêtes ce qui ne peut pas être atteint avec les méthodes de stockage traditionnelles ; la proposition et implémentation d'un processeur de requêtes T-Cypher qui choisit de façon greedy le meilleur plan d'évaluation d'une requête temporelle en tenant compte de l'intervalle temporel des requêtes.
Origin | Version validated by the jury (STAR) |
---|