
Database Internals
Alex Petrov
- Editorial
- O'Reilly
- Año
- 2019
- Páginas
- ~463
- Nivel
- Avanzado
De qué trata
Tratado técnico exhaustivo y de nivel avanzado escrito por Alex Petrov (committer de Apache Cassandra e ingeniero de infraestructura) y publicado por O'Reilly en 2019. La obra expone con gran precisión los mecanismos internos de bajo nivel y la teoría algorítmica sobre la que operan los sistemas de bases de datos modernos. Está dirigida a ingenieros de software senior, arquitectos de datos y especialistas en infraestructura que no se conforman con interactuar mediante APIs o SQL y desean entender cómo se estructuran, guardan, sincronizan y recuperan los datos en disco y en clústeres distribuidos. Requiere conocimientos previos sólidos sobre sistemas operativos, estructuras de datos, gestión de memoria y concurrencia.
El contenido se divide en dos bloques fundamentales: motores de almacenamiento (storage engines) y sistemas distribuidos. En el primer bloque profundiza en el almacenamiento orientado a filas frente a columnas, el funcionamiento interno de los árboles B y B+ (división de nodos, fusión, rebalanceo), formatos binarios y estructuras de páginas con ranuras (slotted pages), control de concurrencia mediante cerrojos y latches (Two-Phase Locking o 2PL), algoritmos de recuperación ante fallos como ARIES apoyados en el Write-Ahead Log (WAL), gestión de caché de páginas y buffer pools (políticas LRU y Clock), y motores estructurados en log (LSM-trees, MemTables, SSTables, compactación y filtros de Bloom). En el segundo bloque aborda la detección de fallos (heartbeats y detectores Phi Accrual), algoritmos de elección de líder y consenso (Paxos y Raft), modelos de replicación (líder único, multilíder, sin líder / Dynamo), cuórums de lectura y escritura, transacciones distribuidas con Two-Phase Commit (2PC) y modelos de consistencia formal (linearizabilidad, consistencia secuencial, causal y eventual).
Es un texto conceptual, riguroso y analítico que no incluye proyectos de código ni ejercicios de implementación paso a paso, sino esquemas anatómicos detallados, pseudocódigo y comparativas con bases de datos reales como PostgreSQL, MySQL (InnoDB), Apache Cassandra, RocksDB y SQLite. Su valor es inmenso para quienes deseen desmitificar el funcionamiento interno de las bases de datos y tomar decisiones fundamentadas al configurarlas o ajustarlas a gran escala. Por su densidad teórica y nivel de detalle algorítmico, demanda una lectura pausada y un bagaje técnico sólido.
- Motores de almacenamiento
- Árboles B y B+
- LSM-Trees y SSTables
- Write-Ahead Log (WAL)
- Buffer Pool y Page Cache
- Algoritmo ARIES
- Concurrencia y 2PL
- Consenso (Paxos y Raft)
- Replicación y Cuórums
- Two-Phase Commit (2PC)
- Modelos de consistencia
¿Cómo enseña?
Teórico
- ✗ Sin ejercicios
- ✗ Sin proyectos

