Cohérence des données

Les données cohérentes sont des données identiques sur le réseau. En d’autres termes, si les données sont cohérentes, les données sur le serveur et tous les clients sont synchronisées. Un type de système logiciel qui fournit la cohérence des données est un système de contrôle de révision (RCS). Un tel système est généralement assez simple, avec un seul utilisateur autorisé à modifier un fichier spécifié à la fois. D’autres peuvent lire le fichier, mais ne peuvent pas le modifier.

L’utilisateur qui peut modifier un fichier est dit l’avoir extrait. L’utilisateur archive ensuite le fichier modifié afin que d’autres utilisateurs puissent voir les modifications. Ce n’est qu’une fois que l’utilisateur a ré-activé un fichier qu’un autre utilisateur peut le case activée.

Un RCS nécessite l’intervention active des utilisateurs pour fonctionner de manière utile. Un système de fichiers qui fonctionne sur un réseau doit gérer le problème automatiquement.

La mise en cache locale de données cohérentes est assez simple lorsque vous avez un thread sur un client qui accède à un fichier sur le réseau à la fois. Toutefois, dans la plupart des cas, de nombreux threads différents sur un ou plusieurs ordinateurs peuvent lire le même fichier. Cette situation est encore assez simple. Étant donné que les données du fichier sont statiques, chaque ordinateur client peut avoir sa propre copie locale sans aucune incidence sur la cohérence des données.

Une situation plus courante est qu’un thread modifie le fichier et de nombreux autres threads le lisant. Au moment où une opération d’écriture se produit, tous les caches locaux de ce fichier sont obsolètes. Le serveur doit avertir chaque client d’abandonner son cache. Toutes les opérations de lecture suivantes pour le fichier doivent être effectuées sur le réseau.

Dans une autre situation courante, plusieurs threads sur un ou plusieurs clients réseau peuvent essayer d’écrire dans le même fichier. Cette situation est similaire à celle dans laquelle plusieurs utilisateurs RCS souhaitent tous apporter des modifications au même fichier. Chaque utilisateur dans l’ordre doit case activée le fichier, apporter des modifications, puis case activée le fichier à nouveau. De même, dans un schéma de mise en cache local, le serveur doit céder le privilège d’écrire dans un fichier dans un thread client à la fois.