Arquitectura Orientada a Disco13 temas

Arquitectura Orientada a Disco

La base de datos no escribe ni lee directamente del disco. Usa dos componentes especializados: el Buffer Pool (memoria intermedia en RAM) y el Disk Manager (gestor de lectura/escritura de páginas). El motor de consultas solo habla con el Buffer Pool; nunca ve el disco.

Página: Unidad mínima de I/O de la BD — los datos se leen y escriben en bloques completos de 4–16 KB, nunca fila por fila. Dentro, cada página agrupa varias filas de una misma tabla.


Disk Manager

Es la capa que traduce Page IDs a posiciones físicas en disco y se encarga de leer y escribir páginas completas cuando el Buffer Pool se lo pide.


Buffer Pool

Área de memoria RAM donde la BD mantiene copias de páginas ya leídas desde disco. Su función es evitar que cada consulta tenga que bajar a disco.

Mecanismo:

  1. El motor de consultas solicita una página
  2. Buffer Pool busca la página en su caché
  3. Cache hit: la página ya está en RAM → respuesta inmediata (nanosegundos)
  4. Cache miss: la página no está → Disk Manager la trae desde disco (microsegundos a milisegundos)

El Buffer Pool tiene tamaño fijo definido por configuración. Cuando está lleno y llega una página nueva, debe desalojar una existente usando una política de reemplazo que decide qué página quitar.


Arquitectura orientada a disco: solicitud, motor de consultas, buffer pool, disk manager y disco

Consecuencia: 1 byte consultado → 8 KB transferidos. Menos columnas leídas, menos páginas visitadas.


Qué cambia según el tamaño del buffer pool y la página

Recurso Ventaja Desventaja
Buffer Pool grande Más cache hits, menos I/O a disco Consume RAM que podría usar el SO u otros procesos
Buffer Pool chico Deja más RAM disponible Más cache misses, consultas más lentas
Página grande (16 KB) Más datos por I/O, mejor throughput secuencial Desperdicio si las filas son chicas y los accesos son puntuales
Página chica (4 KB) Menos desperdicio en accesos individuales Más operaciones de I/O para el mismo volumen

Errores frecuentes

Error: agrandar el buffer pool siempre acelera las consultas.

Solo si hay cache misses. Si el working set ya entra en el buffer pool, agregar más RAM no mejora el rendimiento.


Error: con SSD el buffer pool ya no es necesario.

Falso. La RAM sigue siendo ~1000x más rápida que un SSD en latencia. El buffer pool evita pagar esa diferencia en cada acceso.

Autoevaluación: Arquitectura Orientada a Disco

1/3