
_____________________________ Fiche descriptive _____________________________ 
 Proposition de projet M1 SAR 2005-2006 
 
Encadrant(s): Cécile Le Pape et Stéphane Gançarski 
 
Nombre d'étudiants concernés : 1 binôme. 
 
Sujet du projet : Evaluation du contrôle de fraîcheur de données relationnelles répliquées dans 
une configuration multimaître. 
 
Objectifs et approche : Le cadre général de ce projet est celui d’une base de données 
relationnelle sur lesquelles sont exécutées des transactions. La base de données est répliquée 
sur une grappe de PCs. La réplication est asynchrone, c’est-à-dire qu’une mise à jour est 
effectuée d’abord sur un nœud, puis propagée plus tard sur les autres nœuds. Un intergiciel 
s’intercale entre le client qui envoie les transactions et les nœuds. Dans une configuration 
multimaître, l’intergiciel peut choisir n’importe quel PC (ou nœud) pour exécuter une 
transaction envoyée par un client. Le choix du nœud d’exécution doit permettre d’améliorer 
l’équilibrage de charge et donc les performances. L’intergiciel gère la cohérence des nœuds, 
de façon à ce que les mises à jour touchant la même donnée soient propagées à terme sur tous 
les nœuds et y soient exécutées sans conflit, dans le même ordre. En revanche, deux 
transactions qui ne touchent pas les mêmes données peuvent être exécutées en parallèle dans 
n’importe quel ordre. De plus, les requêtes en lecture seule peuvent accepter des données 
raisonnablement obsolètes, en garantissant que leur fraîcheur satisfait un contrat spécifié par 
l’application. Par exemple, une requête pour calculer le chiffre d’affaires annuel d’une 
entreprise peut tolérer de ne pas prendre en compte les ventes effectuées dans la journée.Le 
premier objectif de ce projet est d’implémenter un algorithme de contrôle de la fraîcheur. Cet 
algorithme a été décrit dans [WDIDDR]. L’implémentation devra étendre le prototype 
REFRESCO fonctionnant actuellement pour une configuration monomaître, c’est-à-dire pour 
laquelle un seul nœud (appelé nœud maître) exécutent les mises à jour qui sont ensuite 
propagées sur les autres nœuds (appelés nœuds esclaves).  
 
De plus, différentes stratégies de propagation des mises à jour devront être testées. Une 
stratégie simple consiste par exemple à propager une mise à jour dès que possible, de façon à 
maintenir tous les nœuds les plus frais possible. Une autre possibilité est de propager les 
mises à jour au dernier moment (« à la demande »). Différentes stratégies ont été proposées 
dans [WDIDDR]. Le deuxième objectif de ce projet est de tester les performances du système 
(temps moyen de réponse des transactions) en fonction de la charge applicative (fréquence des 
mises à jour, fraîcheur demandée, etc.). 
 
Langages de spécification, de programmation : SQL, Java, UML, notions de bash. 
 
Environnement de développement : Linux, j2sdk1.4.2, postgresql-7.3.4 
 
Bibliographie : [WDIDDR] "Fined-grain Refresh Strategies for Managing Replication in 
Database Clusters", Stephane Gancarski, Hubert Naacke and Cécile Le Pape, VLDB 
Workshop on Design, Implementation and Deployement of Database Replication, pg. 47-54, 
august 2005, Trondheim (Norway) .