Distributed Data Management with the Rule-Based Language: Webdamlog Émilien Antoine
Total Page:16
File Type:pdf, Size:1020Kb
Distributed data management with the rule-based language: Webdamlog Émilien Antoine To cite this version: Émilien Antoine. Distributed data management with the rule-based language: Webdamlog. Databases [cs.DB]. Université Paris Sud - Paris XI, 2013. English. tel-00908155v1 HAL Id: tel-00908155 https://tel.archives-ouvertes.fr/tel-00908155v1 Submitted on 22 Nov 2013 (v1), last revised 20 Jan 2014 (v5) HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. UNIVERSITÉ PARIS-SUD ÉCOLE DOCTORALE D’INFORMATIQUE DE PARIS-SUD LABORATOIRE SPÉCIFICATION ET VÉRIFICATION (LSV ) – ENS DE CACHAN DISCIPLINE :INFORMATIQUE THÈSE DE DOCTORAT Soutenue le 5 décembre 2013 par Émilien ANTOINE Gestion des données distribuées avec le langage de règles: Webdamlog Distributed data management with the rule-based language: Webdamlog Directeur de thèse : Serge ABITEBOUL D.R. Inria Saclay Composition du jury : Présidente du jury : Nicole BIDOIT Prof. Univ. Paris-Sud Rapporteurs : Christine COLLET Prof. Grenoble INP Pascal MOLLI Prof. Univ. Nantes Examinateurs : Bogdan CAUTIS Prof. Univ. Paris-Sud David GROSS-AMBLARD Prof. Univ. Rennes 1 ii Résumé Notre but est de permettre à un utilisateur du Web d’organiser la gestion de ses données distribuées en place, c’est à dire sans l’obliger à centraliser ses données chez un unique hôte. Par conséquent, notre système diffère de Facebook et des autres systèmes centralisés, et propose une alternative permettant aux utilisa- teurs de lancer leurs propres pairs sur leurs machines gérant localement leurs données personnelles et collaborant éventuellement avec des services Web ex- ternes. Dans ma thèse, je présente Webdamlog, un langage dérivé de datalog pour la gestion de données et de connaissances distribuées. Le langage étend data- log de plusieurs manières, principalement avec une nouvelle propriété la délé- gation, autorisant les pairs à échanger non seulement des faits (les données) mais aussi des règles (la connaissance). J’ai mené une étude utilisateur pour démontrer l’utilisation du langage. Je décris le moteur d’évaluation de Web- damlog qui étend un moteur d’évaluation de datalog distribué nommé Bud, avec le support de la délégation et d’autres innovations telles que la possibil- ité d’avoir des variables pour les noms de pairs et des relations. J’aborde de nouvelles techniques d’optimisation, notamment basées sur la provenance des faits et des règles. Je présente des expérimentations qui démontrent que le coût du support des nouvelles propriétés de Webdamlog reste raisonnable même pour de gros volumes de données. Finalement, je présente l’implémentation d’un pair Webdamlog qui fourni l’environnement pour le moteur. En parti- culier, certains adaptateurs permettant aux pairs Webdamlog d’échanger des données avec d’autres pairs sur Internet. Pour illustrer l’utilisation de ces pairs, j’ai implémenté une application de partage de photo dans un réseau social en Webdamlog. Mots clefs Distribution ; Datalog ; Base de connaissances ; Pair à pair ; Gestion de données du Web. iii iv Abstract Our goal is to enable a Web user to easily specify distributed data management tasks in place, i.e. without centralizing the data to a single provider. Our sys- tem is therefore not a replacement for Facebook, or any centralized system, but an alternative that allows users to launch their own peers on their machines processing their own local personal data, and possibly collaborating with Web services. We introduce Webdamlog, a datalog-style language for managing distributed data and knowledge. The language extends datalog in a number of ways, no- tably with a novel feature, namely delegation, allowing peers to exchange not only facts but also rules. We present a user study that demonstrates the usabil- ity of the language. We describe a Webdamlog engine that extends a distributed datalog engine, namely Bud, with the support of delegation and of a number of other novelties of Webdamlog such as the possibility to have variables de- noting peers or relations. We mention novel optimization techniques, notably one based on the provenance of facts and rules. We exhibit experiments that demonstrate that the rich features of Webdamlog can be supported at reason- able cost and that the engine scales to large volumes of data. Finally, we discuss the implementation of a Webdamlog peer system that provides an environment for the engine. In particular, a peer supports wrappers to exchange Webdamlog data with non-Webdamlog peers. We illustrate these peers by presenting a pic- ture management application that we used for demonstration purposes. Keywords Distribution ; Datalog ; Knowledge Base ; Peer to Peer ; Web Data Management. v vi Contents Acknowledgement ix Résumé en Français xi 1 Introduction 1 2 State of the Art 3 2.1 Distributed Information Systems . 3 2.1.1 Distributed systems . 3 2.1.2 Distributed databases . 4 2.1.3 Data on the Web . 4 2.1.4 Peer-to-peer systems . 5 2.1.5 Social networks . 6 2.1.6 Contribution . 7 2.2 Knowledge bases . 7 2.2.1 Processing knowledge . 7 2.2.2 Datalog . 8 2.2.3 Distributed datalog . 10 2.2.4 Provenance and optimization . 11 2.2.5 Contribution . 11 2.3 Webdam exchange . 11 3 Webdamlog language 15 3.1 Model of data . 17 3.1.1 Informal presentation . 17 3.1.2 Formal definitions . 19 3.2 Key observations . 24 3.3 Expressive power . 27 3.3.1 Traces and simulations . 27 3.3.2 Expressivity results . 28 3.4 Convergence of Webdamlog ....................... 33 3.4.1 Positive Webdamlog ....................... 33 vii viii CONTENTS 3.4.2 Strongly-stratified Webdamlog . 41 4 Webdamlog rule engine 51 4.1 Datalog inside . 51 4.2 Connection between Bud and Webdamlog . 52 4.2.1 Webdamlog computation on Bud . 52 4.2.2 Implementing Webdamlog rules . 54 4.3 Optimization of the evaluation . 58 4.4 Optimization for view maintenance . 60 4.4.1 Provenance graphs . 60 4.4.2 Deletions . 63 4.4.3 Running the fixpoint . 63 4.5 Performance evaluation . 64 4.5.1 Cost of delegation . 64 4.5.2 Cost of dynamism . 68 5 Architecture of a Webdamlog peer 75 5.1 Peer architecture . 76 5.1.1 Event-driven system . 77 5.1.2 Module interactions . 80 5.2 Wrappers . 81 5.3 Demonstration . 84 5.3.1 Wepic application . 84 5.3.2 Demonstration Scenario . 87 5.3.3 Access control . 91 6 User Study 93 6.1 Webdamlog tutorial . 93 6.2 Test . 96 6.3 Results . 99 7 Conclusion 101 Self references 103 External references 105 Acknowledgement [TODO]: acknowledgement ix x ACKNOWLEDGEMENT Résumé en Français [TODO]: reread all this section and complete todos Le volume d’informations présentes sur le Web s’accroît exponentiellement. Les utilisateurs comme les compagnies partagent de plus en plus leurs don- nées, qui se trouvent distribuées sur les nombreuses machines qu’ils possè- dent, ou via des services Web ils stockent leurs infromations sur des machines externes. En particulier, l’émergence de l’infonuagique1 et des réseaux soci- aux permet aux utilisateurs de partager encore plus de données personels. La multitude de services spécialisés offrant chacun une expérience différente à l’utilisateur complique énormément la gestion de ces informations et la col- laboration des ces services dépassent rapidement l’expertise humaine. Les in- formations manipulées par les utilisateurs ont de nombreuses facettes : elles concernent des données personnelles (photos, films, musique, mails), des don- nées sociales (annotations, recommandation, liens sociaux), la localisation des données (marque-pages), les informations de contrôle d’accès (mots de passe, clés privées), les services Web (moteur de recherche, archives), la sémantique (ontologies), la croyance et la provenance. Les tâches exécutées par les utilisa- teurs sont très variées : recherches par mots clef, requêtes structurées, mise-à- jour, authentification, fouille de données et extraction de connaissances. Dans cette thèse, nous montrons que toute cette information devrait être modélisée comme un problème de gestion d’une base de connaissance distribuée. Nous soutenons aussi que datalog et ses extensions est une base formelle sûre pour représenter ces informations et ces tâches. Ce travail fait partie du projet ERC Webdam [ERC13] sur les fondations de la gestion des données du Web. Le but de ce projet est de participer au développement de fondations formelles unifiées pour la gestion de données distribuées, le manque actuel de telles fon- dations ralentissant les progrès dans ce domaine. [TODO]: exemple 1cloud computing xi xii RÉSUMÉ EN FRANÇAIS Contributions Les contributions de cette thèse sont les suivantes : • Je présente Webdamlog, un nouveau langage à base de règles pour la ges- tion de données distribuées qui combine dans un cadre formel les rè- gles déductives de datalog avec négation pour la définition des faits in- tentionnels et les règles actives de datalog ¬¬ pour les mises-à-jour et les communications. Le modèle met un accent fort sur la dynamique et les interactions typiques du Web 2.0, principalement grâce à une nou- veauté du langage Webdamlog, la délégation de règles permettant aux pairs de collaborer. Ce modèle est à la fois suffisamment puissant pour spécifier des systèmes distribués complexes et suffisamment simple pour permettre une étude formelle de la distribution, de la concurrence et de l’expressivité dans un système de pairs autonomes. • Je présente l’implémentation du moteur d’évaluation de programmes Web- damlog qui étend le moteur datalog distribuée avec mise à jour nommé Bud, de deux manières.