El pilar y la hiedra

Una pequeña imagen para el desvalido de las ciencias de la computación. El libro de texto no miente. Solo le falta la hiedra.

La matemática discreta está llena de pequeñas cosas que parecen obvias. Esa es la trampa.

Estás sentado en la clase. El profesor dibuja algo en la pizarra. Un invariante es una propiedad P que se mantiene en cada punto de control de una operación. Lo anotas, te encoges de hombros, te vas a tomar un café. Y entonces, diez años más tarde, estás depurando un sistema distribuido a las 2 de la mañana... y solo entonces la palabra empieza a significar algo para ti.

Esto es para la versión de ti que todavía está en la clase.

Un pilar en un campo

Imagina un viejo pilar de piedra que se yergue solo en un campo. Nada a su alrededor. Nada le sucede.

Eso es lo que te da la definición del libro de texto. Solo el pilar.

El profesor olvidó la hiedra

Mi profesor era excelente, por cierto. El libro de texto no miente. Es solo que la imagen está incompleta.

Así que ahora haz crecer hiedra sobre el pilar. Enredaderas que tiran de la piedra. Pájaros que anidan. Un turista con un rotulador. Un pequeño terremoto. Una tormenta. Doscientos años de intemperie.

El pilar sigue ahí. Desde su perspectiva, no ha pasado nada.

Eso es el invariante.

Ahora vuelve a leer la línea del libro de texto: una propiedad P que se mantiene en cada punto de control de una operación. El pilar es la propiedad. La hiedra es la operación. El punto de control es el momento en que pasas caminando y miras. Se mantiene es solo una forma rebuscada de decir que al pilar no le importa la hiedra.

Donde lo seguirás encontrando

Una vez que tienes el pilar, empiezas a verlo por todas partes.

Un invariante de bucle. El cuerpo de tu bucle es la hiedra. Tu invariante es el pilar. El cuerpo puede romperlo por un instante, como una enredadera que tira de la piedra. Para el siguiente punto de control, el pilar ha vuelto a donde estaba.

Una transacción de base de datos. Entre BEGIN y COMMIT, los datos pueden hacer acrobacias. ROLLBACK es el jardinero que viene y arranca la hiedra. El pilar —tu estado consistente— sigue en pie.

ACID. Claves foráneas. Sistemas de tipos. Reintentos distribuidos. Todos pilares. Todos de pie en medio de su propia hiedra.

Un pilar que puedes abrazar

Una pequeña recompensa, ya que sigues leyendo.

Existe un concepto hermano llamado idempotencia. Una operación idempotente es algo que puedes hacer muchas veces y el resultado es el mismo que hacerlo una sola vez. Llamar a ROLLBACK diez veces es lo mismo que llamarlo una vez. Poner un interruptor de luz en "encendido" diez veces es lo mismo que ponerlo una vez.

Si la invariancia es el pilar que no cambia mientras la hiedra se desboca, entonces la idempotencia es el pilar que puedes abrazar cuantas veces quieras, y no le molesta.

Junta los dos y tienes el estándar de oro para los sistemas tolerantes a fallos. ¿Se cae la red? Reintenta. ¿Se cuelga el servidor? Reintenta. Acabarás en un estado válido, y puedes seguir reintentando sin romper nada.

Un pilar que sobrevive a la hiedra y sobrevive a que lo abracen mil veces. Casi toda la infraestructura moderna se construye, en silencio, sobre esto.

Un pequeño final

Esa es la imagen que ojalá alguien me hubiera dibujado hace diez años.

No es gran cosa. Una sola imagen. Pero a veces una sola imagen es la diferencia entre un concepto que vive en tus huesos y un concepto que vive en una nota al pie.

Si eres estudiante, o ingeniero junior, o simplemente alguien que lleva un tiempo asintiendo en silencio ante la palabra "invariante"... esto es para ti.

Al pilar no le importa la hiedra. Eso es todo.

De un desvalido a otro.


Comentarios

Boris D. Teoharov

Autor

Hola, soy Boris

No soy escritor. No soy filósofo. Solo soy un ingeniero backend de Bulgaria que se gana la vida entre colas de Laravel e índices de cientos de millones de filas. El resto del tiempo leo medicina que no me corresponde leer, novelas francesas que entiendo a medias y lo que sea que mi pequeña cabeza de goma quiera masticar. Dos callejeros rescatados me mantienen honesto.