Consistència (informàtica)

En informàtica, la consistència és la capacitat d'un sistema per reflectir en la còpia d'una determinada informació els canvis realitzats en altres còpies d'aquestes dades. Aquesta noció s'utilitza principalment en tres dominis informàtics: sistemes de fitxers, bases de dades i memòries compartides. Un model de consistència restringit (consistència "forta") permet un comportament intuïtiu i simplifica la comprensió del comportament del programa, però els models de coherència "febles" o "relaxats" sovint permeten millorar el rendiment del sistema, i descarrega sobre el programari la comprovació de la consistència de les dades.

Exemple modifica

Suposem que tenim el cas següent:

La fila X es replica als nodes M i N.
Un client A escriu la fila X al node N.
Després d'un període t, el client B llegeix la fila X des del node M.

El model de consistència ha de determinar si el client B veu l'escriptura del client A o no.

Consistència forta i feble modifica

Una primera distinció de consistència s'utilitza en els sistemes de bases de dades. Un sistema de coherència fort assegura que qualsevol lectura d'una còpia d'un element de dades reflectirà els canvis realitzats abans de la lectura en qualsevol còpia de les dades. Un sistema consistència feble garanteix que, si es modifica una còpia, totes les còpies de les dades reflecteixen aquests canvis després d'un cert temps, però el canvi no és necessàriament immediat.

Si tenim una dada A, aquesta dada es pot llegir i modificar en diverses còpies {C1, C2, ... Cn}. Suposem la còpia C1 es modifica a C1'. El sistema de gestió de la dada A garanteix una consistència forta si la lectura de qualsevol còpia Cx, després de la modificació retorna C1'. En un sistema amb consistència feble, la lectura d'une Cx podria donar una versió antiga de la dada A.

Models de consistència modifica

Hi ha diversos models de consistència, que dividirem en dos grups segons inclouen o no instruccions de sincronització que permetran una consistència de les dades més forta.

Models sense sincronització modifica

  • Consistència estricta.
  • Consistència forta.
  • Consistència seqüencial.
  • Consistència immediata.
  • Consistència causal.
  • Consistència cau.
  • Consistència PRAM (o FIFO).

Models amb sincronització modifica

  • Consistència feble.
  • Consistència relaxada.
  • Consistència Delta.
  • Consistència vectorial.