Active Data: A Programming Model for Managing Big Data Life Cycle
Résumé
The Big Data challenge consists in managing, storing, analyzing and visualizing these ever growing huge datasets to extract sense and knowledge. As the volume of data grows exponentially, the management of these data becomes more complex in proportion. A key point is to handle the complexity of the data life cycle, i.e. the various operations performed on data: transfer, archiving, replication, deletion... To alleviate the complexity of the data life cycle, we propose Active Data, a programming model to automate and improve the expressiveness of data management applications. We first introduce the concept of data life cycle and define a formal model based on Petri Net. We present the concept of the Active Data programming model, which allows code execution at each stage of the data life cycle. With Active Data, routines provided by programmers are executed when a set of events (creation, replication, transfer, deletion) happen to any data. We implement and evaluate the model with three use cases: a storage cache to Amazon S3, a cooperative sensor network, and an incremental implementation of the MapReduce programming model. Altogether, these scenarios illustrate the adequateness of the model to program applications which manage distributed and dynamic data. We also show that applications that do not leverage on data life cycle can benefit from Active Data to improve their performances.
Le défi Big Data consiste à gérer, stocker, analyser et visualiser des jeux de données toujours plus grands pour en extraire sens et connaissance. Alors que ces volumes de données croissent de manière exponentielle, leur gestion s'en complique d'autant. Un point clef est d'aborder la complexité du cycle de vie des données, c'est à dire les diverses opérations dans lesquelles elles sont impliquées : transfert, archivage, réplication, suppression... Pour diminuer la complexité des cycles de vie des données, nous proposons Active Data, un modèle de programmation pour automatiser et améliorer l'expressivité des applications de gestion de données. Premièrement, nous présentons le concept de cycle de vie de données et définissons un modèle formel basé sur les Réseaux de Pétri. Nous présentons ensuite le modèle de programmation Active Data qui permet l'exécution de code à chaque étape du cycle de vie d'une donnée. Avec Active Data, des routines fournies par le programmeur sont exécutées lorsqu'un ensemble d'événements (création, réplication, transfert, suppression) se produit sur n'importe quelle donnée. Nous implémentons et évaluons le modèle avec 3 cas d'utilisation : un cache entre une application et Amazon S3, un réseau de senseurs coopératifs et une implémentation incrémentale du modèle de programmation MapReduce. Ces scénarios illustrent l'adéquation du modèle avec la programmation d'applications qui gèrent des données distribuées et dynamiques. Nous montrons également que des applications qui ne tirent pas partie du cycle de vie des données peuvent bénéficier d'Active Data pour améliorer leurs performances.
Origine | Fichiers produits par l'(les) auteur(s) |
---|