Erlang/OTP Tolerancia a Fallos

erlang

Continuando con las características de este lenguaje, nos encontramos con la “Tolerancia a Fallos”.

Erlang tiene un manejo de excepciones además de un sistema de fallos de procesos muy eficiente, conocido como “Process Link” o “Enlace de Procesos”.

Cuando un proceso falla, este genera una señal/signal de salida. La cual llegan a todos los procesos que están relacionados, de esta forma los procesos que reciben la señal la envían a sus procesos relacionados y así sucesivamente; hasta que todos los procesos vinculados directamente o indirectamente han salido. Este comportamiento en escala nos permite no tener que preocuparnos por encontrar y matar/kill todos los procesos relacionados.

La filosofía de Erlang es “let it crash” (dejar que se estrelle). Esto para tratar de evitar el salvar una situación que probablemente no sea capaz de arreglar. De esta forma deja todo limpio para empezar de nuevo.

Los procesos tienen la capacidad de capturar un mensaje de salida y comprobarlos para tomar medidas. Para esto en Erlang existen los “Processes Supervisor” o “Supervisores”.

Los supervisores nos permiten agrupar un subsistema y reiniciarlo. La OTP trae consigo varias librerías que nos permitirán optimizar dicho proceso de reinicio sin necesidad de reiniciar el sistema completo. Los supervisores están siempre atentos a lo que sucede con los procesos. Estos supervisores están jerarquizados, es decir, existen supervisores para todo el sistema, supervisores para los subsistemas y supervisores para los procesos. De esta forma si un proceso falla, el supervisor informa a su supervisor mayor y así sucesivamente, hasta lograr restablecer el sistema.

Listo, esto por el momento!

Marco

Etiquetas de Technorati: erlang,otp,concurrencia,lenguaje,programación,tolerancia a fallos,fallos,funcional,procesos

[tweetmeme only_single=”false”]
Advertisements

Agregar un comentario

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Google+ photo

You are commenting using your Google+ account. Log Out / Cambiar )

Connecting to %s