WiredTiger es el storage engine que administra cómo MongoDB representa, comprime, lee, modifica y recupera datos e índices. Sus componentes —cache, pages, checkpoints, journal, snapshots e history store— explican gran parte del comportamiento de memoria, disco y concurrencia.
Texto
query o write
→ páginas en cache
→ journal para recuperación
→ checkpoint
→ data files
No debe “tunearse” copiando parámetros de otra instalación. Primero identifica el síntoma y confirma la recomendación para la versión y hardware actuales.
Colecciones e índices se organizan en estructuras de páginas. Una query recorre páginas de índice y, cuando necesita el documento, páginas de colección.
Las páginas en disco están comprimidas; en cache se mantienen representaciones útiles para operar. Por eso tamaño en disco, tamaño lógico y memoria no son equivalentes.
La cache guarda páginas activas, updates y metadata. MongoDB calcula un tamaño predeterminado según entorno, pero containers y hosts compartidos requieren revisar límites reales.
Señales:
bytes in cache;
dirty bytes;
pages read/written;
eviction;
application threads helping eviction;
cache full events.
Modificar el tamaño sin comprender OS cache y otros procesos puede empeorar el sistema.
WiredTiger utiliza control de concurrencia multiversión. Lectores pueden observar una snapshot mientras writers avanzan. Esto reduce bloqueos globales, pero obliga a conservar versiones antiguas cuando existen readers o transacciones largas.
Texto
versión 10 actual
versión 9 todavía visible para snapshot antiguo
→ history store conserva historia
Transacciones largas aumentan presión en history store, cache y disco.
MongoDB aplica locking a varios niveles y WiredTiger gestiona concurrencia interna. Dos writers sobre el mismo documento pueden producir write conflict; el servidor o driver puede reintentar según operación.
No confundas atomicidad documental con ausencia de contention. Hot documents siguen limitando throughput.
Un checkpoint crea una vista consistente de data files desde la cual el storage engine puede recuperarse. Ocurre periódicamente y coordina páginas dirty.
Durante checkpoint puede aumentar actividad de disco. Si el storage no mantiene el ritmo:
crecen dirty bytes;
aumenta eviction pressure;
sube p99;
se acumula trabajo.
El journal cubre operaciones posteriores al último checkpoint según garantías.
Después de un shutdown limpio, recovery suele ser sencillo. Después de crash, WiredTiger utiliza checkpoint y journal.
No copies ni manipules manualmente archivos de datos. Para corrupción o errores de recovery sigue herramientas y procedimientos soportados de la versión, preservando backup y evidencia.
WiredTiger conecta memoria, concurrencia y persistencia. La cache mantiene páginas activas; MVCC conserva snapshots; checkpoints crean puntos consistentes y journal recupera cambios posteriores. Los problemas se diagnostican correlacionando workload, eviction, history store y storage, no ajustando parámetros internos sin evidencia.
Comprueba lo aprendido
¿Qué diferencia existe entre página en disco y en cache?