Cianplan

Nivel 0: Orientación y prerrequisitos · L0.2 Fundamentos de sistema operativo y hardware para arquitectos

Durabilidad: ¿cuándo se guardan de verdad los datos?

Explicar la page cache, fsync y por qué write() no es durabilidad.

12 min · Gratis

Lo que te llevas

  • write() copia a la page cache del sistema operativo y regresa; los datos están en RAM volátil, no en el disco.
  • fsync() es la llamada que pide que estén en un medio estable, y cuesta ~0.5–2 ms incluso en NVMe.
  • Las bases de datos hacen fsync de un write-ahead log, no de los archivos de datos, y juntan muchos commits en un solo fsync (group commit).
  • La durabilidad es una elección con precio: el buffering es rápido y pierde las escrituras recientes; un fsync por commit es seguro y limita a un solo escritor a unos cientos de commits por segundo.

Cómo está armada la clase

  1. El problema
  2. La versión simple
  3. Las capas entre tu código y el disco
  4. Cuánto cuesta, y qué hacen las bases de datos al respecto
  5. Jerarquía de memoria
  6. Procesos e hilos
  7. I/O asíncrono
  8. Durabilidad
  9. Comprueba lo que entendiste