Précédent : Présentation générale et
objectifs Remonter : Projet SOR, Systèmes Objets Répartis
Suivant : Grands domaines d'application
Résumé : Une des fonctions principales d'un système informatique est le partage de l'information entre utilisateurs et entre programmes. Or, les ordinateurs d'un système réparti ne partagent pas de mémoire. Ils peuvent communiquer par messages, mais ceux-ci sont coûteux et d'utilisation complexe. La réplication des données s'impose donc, mais celle-ci pose des problèmes fondamentaux. Ajouté à la difficulté inhérente au parallélisme, tout cela rend fort difficile l'écriture de programmes répartis. La recherche des solutions efficaces aux problèmes liés au partage d'information, notamment dans les systèmes de grande échelle, est au centre des activités du projet SOR.
Mais l'invocation distante est coûteuse, et ne passe pas à l'échelle si l'objet partagé constitue un goulot d'étranglement. De plus, si ce schéma simplifie la communication, il ne résout pas les problèmes plus profonds de la répartition: parallélisme, défaillances, coûts, etc.
Le coût de l'accès distant et la présence de ressources
matérielles abondantes condui-sent naturellement à gérer des
copies, ou réplicats, de la donnée distante. La réplication augmente la
disponibilité des données. Lorsque les données sont accédées en
lecture, elle élimine les goulots d'étranglement. Si une donnée
répliquée est modifiée, les autres réplicats deviennent
incohérents, et il faut propager la mise à jour. La réplication à
grande échelle rencontre une contradiction majeure: assurer la
cohérence des réplicats tout en conservant des performances
acceptables. Un protocole de cohérence fort [LH89] est simple mais ne
passe pas à l'échelle, d'où des recherches actives sur des
cohérences affaiblies [KCZ92,GC89,BZ91,GL91]. Il y a lieu de
rechercher un compromis entre contraintes de cohérence, tolérance
aux fautes et performances. Malheureusement, aucun compromis ne
satisfait les attentes de toutes les applications.
Nos recherches dans ce domaine concernent d'une part, les
moyens offerts aux programmeurs pour exprimer les compromis qui
répondent le mieux à leurs attentes et d'autre part, des modèles
de cohérence faible pour nos applications cibles (voir § et
§
).
Pourtant, l'importance de la persistance est généralement
négligée par la communauté des systèmes répartis. Les
programmeurs ont l'habitude de la gérer manuellement (grâce aux
systèmes de fichiers ou aux bases de données) et les algorithmes
de ramasse-miettes répartis sont mal connus. Pour le projet SOR
il s'agit d'un axe central (§) dans
lequel nous avons une avance certaine [1,4,5].