Modelo
- El sistema está conformado por un conjunto de procesos independientes; cada uno puede fallar aleatoriamente
- Los errores en la comunicación son manejados transparentemente por la capa de comunicación
- Storage estable:
- Se implementa con discos
- La probabilidad de perder los datos es extremadamente pequeña
Primitivas
- BEGIN TRANSACTION: marca el inicio de la transacción
- END TRANSACTION: finalizar la transacción y tratar de hacer commit
- ABORT TRANSACTION: finalizar forzadamente la transacción y restaurar los valores anteriores
- READ: leer datos de un archivo u otro objeto
- WRITE: escribir datos a un archivo u otro objeto
Propiedades
- Atómicas: la transacción no puede ser dividida
- Consistentes: la transacción cumple con todos los invariantes del sistema
- Aisladas o serializadas: las transacciones concurrentes no interfieren con ellas mismas
- Durables: una vez que se commitean los cambios, son permanentes (Excepción: transacciones anidadas no son durables)
En inglés, ACID
Implementación