METODO PARA MEJORAR LA TRANSFERENCIA DE REGISTROS DE EVENTOS PARA LA REPLICA DE PROGRAMAS EN EJECUCION.

Una ejecución del método en un sistema informático para duplicar una ejecución de programa en dicho sistema informático que tiene unos primeros medios de almacenamiento

, un destino que es accesible desde dicho sistema informático, dicho método que comprende los pasos de:

- si ocurre un suceso no determinístico, bloquear la petición de un programa en ejecución correspondiente a ese suceso;

- comprobar si el suceso no determinístico corresponde tanto a un mensaje que es una petición de entrada para el programa en ejecución a ser duplicado como si corresponde a una petición de salida de un programa en ejecución para enviar un mensaje de salida, denominado Suceso No Abortable o NAE que son sucesos que cambian irremediablemente el estado del mundo exterior, que no podemos hacer retroceder,

- si no ocurre la notificación NAE, registrar el suceso en los primeros medios de almacenamiento, entregando el suceso al programa en ejecución a ser duplicado y desbloquear la petición de entrada;

- si ocurre una notificación NAE, transferir el contenido de los primeros medios de almacenamiento al destino, esperando el reconocimiento y, cuando se recibe el reconocimiento, desbloquear la petición de salida e ir al primer paso

Tipo: Resumen de patente/invención. Número de Solicitud: W07053122EP.

Solicitante: INTERNATIONAL BUSINESS MACHINES CORPORATION.

Nacionalidad solicitante: Estados Unidos de América.

Dirección: NEW ORCHARD ROAD,ARMONK, NY 10504.

Inventor/es: VERTES,MARC, BERGHEAUD,PHILIPPE, SUBHRAVETI,DINESH.

Fecha de Publicación: .

Fecha Concesión Europea: 14 de Octubre de 2009.

Clasificación Internacional de Patentes:

  • G06F11/20F

Clasificación PCT:

  • SECCION G — FISICA > COMPUTO; CALCULO; CONTEO > TRATAMIENTO DE DATOS DIGITALES ELECTRICOS (computadores... > Detección de errores; Corrección de errores; Monitorización... > G06F11/20 (utilizando un enmascaramiento activo del defecto, p. ej. desconectando los elementos debilitados o insertando los elementos de recambio)
google+ twitter facebookPin it
METODO PARA MEJORAR LA TRANSFERENCIA DE REGISTROS DE EVENTOS PARA LA REPLICA DE PROGRAMAS EN EJECUCION.

Fragmento de la descripción:

Método para mejorar la transferencia de registros de eventos para la réplica de programas en ejecución.

Campo de la invención

La presente invención generalmente se refiere a la réplica de programas en ejecución desde una aplicación o módulos de un sistema operativo; más particularmente, le presente invención optimiza el proceso de grabar sucesos y transferirlos desde una máquina primaria en que se ejecutan los programas a un sistema informático de reserva.

Antecedentes de la invención

Se puede desear duplicar por completo en una segunda máquina, una aplicación o un sistema operativo que se ejecuta en una primera máquina. La réplica puede ser necesaria para el propósito de depurar programas. La réplica también puede ser necesaria para balancear cargas de trabajo de sistemas para el propósito de gestión de sistemas. También, la réplica puede ser necesaria debido a un fallo de la máquina primaria, la segunda máquina, la máquina de reserva, que se usa en sustitución de la máquina primaria. La gestión del sistema y los sistemas Tolerantes a Fallos (FT) que usan réplica tienen una necesidad de rendimiento. Una réplica instantánea se requiere incluso en estos casos.

La réplica se logra mediante grabación y repetición de sucesos que producen resultados no determinísticos. Los sucesos que producen resultados determinísticos no se graban, ya que se pueden reproducir por simple reejecución de los programas en la máquina de reserva. Las aplicaciones que implementan protocolos de comunicación o aplicaciones transaccionales, tales como las aplicaciones de servidor que comunican con el mundo exterior, reciben información de entrada candidata a registrar sucesos para la réplica y generar información de salida. Los sucesos de salida no tienen necesidad de ser registrados, solo son repetidos re-ejecutando la aplicación en la máquina de reserva. Por el contrario, cuando ocurre un suceso de entrada externo o interno, el suceso primero se registra localmente y se transfiere al sistema de reserva. Los datos transferidos se pueden usar inmediatamente en un modelo FT activo-activo o se pueden usar para una repetición posterior en un modelo FT activo-pasivo. La transferencia de datos de sucesos registrados grabados en el sistema primario al sistema de reserva donde se repetirán, debe ser hecha de forma segura y eficientemente.

Siempre es deseable y necesario para la réplica en sistemas tolerantes a fallos, mejorar la eficiencia de la grabación de la secuencia principal de sucesos en registros y la transferencia de este registro. Asumiendo que somos capaces de implementar la grabación y repetición localmente en la máquina primaria, almacenando el registro de suceso en el sistema de almacenamiento local, el siguiente paso lograr la tolerancia a fallos es ser capaz de transferir en tiempo real todos los datos necesarios (sucesos grabados) a la máquina de reserva. El paso más costoso en el proceso de réplica para los sistemas tolerantes a fallos es esta transferencia de información entre los sistemas primario y de reserva; el registro local cuesta alrededor de unos pocos nanosegundos en CPUs de flujo de memoria de 1 Gb/s así como la transferencia del reconocimiento cuesta alrededor de decenas de microsegundos en enlace Gbit Ethernet.

No obstante, el proceso se debe hacer de manera segura, este requisito que se logra si el sistema de reserva es capaz de recuperarse de un fallo del sistema primario sin importar cuándo se produce el fallo. En caso de fallo de la máquina en funcionamiento, todos los datos deben estar disponibles para repetir la aplicación hasta el punto donde ocurrió el fallo, y entonces, la aplicación puede seguir en la de reserva sin interrupción visible desde el mundo exterior. Durante la ejecución de la aplicación en la máquina en funcionamiento, un fallo puede ocurrir en cualquier momento. En particular, un fallo puede impactar la transferencia del registro en sí mismo, induciendo a la pérdida de los datos críticos repetidos.

Los sistemas de transferencia de registros existentes, los cuales son rápidos pero inseguros, se han diseñado sin asegurar la integridad de los datos; tales soluciones rápidas e inseguras no son aceptables para sistemas FT. Un ejemplo de tal protocolo rápido e inseguro es UDP o IP Multidifusión, como el usado en sistemas de difusión de secuencias multimedia.

Otras soluciones estándar son seguras pero lentas. Un ejemplo es el protocolo de réplica de Transacción de Bases de Datos Diez Veces sobre TCP-IP, de Oracle, cuando se usa en modo síncrono para asegurar tolerancia a fallos. Para evitar el impacto negativo de la pérdida del último suceso grabado, una posible solución, denominada en el resto del documento la solución estándar, es transferir cualquier suceso a la de reserva antes de su procesado por la aplicación en la máquina primaria en funcionamiento. La máquina primaria, entonces, recibe resultados o sucesos no determinísticos solamente después de que han sido transmitidos a la de reserva. Esta solución estándar implica una latencia en la aplicación que corresponde al registro y transferencia de sucesos, seguida por la transferencia y recepción del reconocimiento. Esta solución estándar impone una gran cantidad de puntos de serialización en la ejecución de la aplicación, o una gran cantidad de datos a ser transferidos frecuentemente. Cada entrada se retrasa antes de ser proporcionada a la aplicación.

El documento D1 = FR-A-2 881 309 está considerado como que es la técnica previa más cercana al motivo-asunto de la reivindicación 1 dado que D1 expone un método y sistema en donde se proporciona transmisión optimizada de series actuales de datos de registro que representan sucesos que aparecen en el desplazamiento de un proceso registrado entre sucesos desencadenantes y bloqueantes desde un nodo a otro nodo.

El motivo-asunto de la reivindicación 1 se aparta de D1 en que proporciona las características de la réplica de programas en ejecución de una aplicación o módulos de un OS dentro de una programa en ejecución duplicado. Más en detalle, el proceso de grabar sucesos y transferirlos desde la primaria a la duplicada se optimiza porque SOLAMENTE los sucesos externos que corresponden a una petición de un programa en ejecución para enviar un mensaje de salida y llamados Sucesos No Abortables (NAEs) que constituyen un punto de no retorno (y no pueden ser hechos retroceder) se transfieren directamente al emplazamiento duplicado de acuerdo a un protocolo de "Bloqueo hasta Reconocimiento", mientras que los NO NAEs primero se registran localmente y más tarde se transfieren a réplica dependiendo del estado de culminación del registro y/o el criterio de tiempo límite.

Hay una necesidad de mejorar la eficiencia del registro y la transferencia de sucesos mientras se preserva la integridad de los datos aplicable por ejemplo cuando se duplica una aplicación en sistemas tolerantes a fallos.

Resumen de la invención

Es un objetivo de la presente invención reducir el tiempo de espera durante el registro y la transferencia de sucesos que ocurren durante la ejecución de los programas, por ejemplo de una aplicación, mejorando la eficiencia de procesar éstos durante la réplica, por ejemplo en un sistema Tolerante a Fallos.

La solución incluye una caracterización de los Sucesos No Abortables (NAEs). Los Sucesos No Abortables son sucesos externos (sucesos de salida no determinísticos) que constituyen el punto de no retorno. Los Sucesos No Abortables cambian irremediablemente el estado del mundo exterior, que no puede ser hecho retroceder, incluso si la máquina primaria se puede hacer retroceder...

 


Reivindicaciones:

1. Una ejecución del método en un sistema informático para duplicar una ejecución de programa en dicho sistema informático que tiene unos primeros medios de almacenamiento, un destino que es accesible desde dicho sistema informático, dicho método que comprende los pasos de:

    - si ocurre un suceso no determinístico, bloquear la petición de un programa en ejecución correspondiente a ese suceso;
    - comprobar si el suceso no determinístico corresponde tanto a un mensaje que es una petición de entrada para el programa en ejecución a ser duplicado como si corresponde a una petición de salida de un programa en ejecución para enviar un mensaje de salida, denominado Suceso No Abortable o NAE que son sucesos que cambian irremediablemente el estado del mundo exterior, que no podemos hacer retroceder,
    - si no ocurre la notificación NAE, registrar el suceso en los primeros medios de almacenamiento, entregando el suceso al programa en ejecución a ser duplicado y desbloquear la petición de entrada;
    - si ocurre una notificación NAE, transferir el contenido de los primeros medios de almacenamiento al destino, esperando el reconocimiento y, cuando se recibe el reconocimiento, desbloquear la petición de salida e ir al primer paso.

2. El método de la reivindicación 1, que además comprende después del paso de registro:

Si están llenos dichos primeros medios de almacenamiento, transferir el contenido de los primeros medios de almacenamiento al destino, esperando el reconocimiento y, cuando se recibe el reconocimiento, desbloquear la petición del programa en ejecución e ir al primer paso.

    3. El método en la reivindicación 1 o 2, que además comprende después del paso de registro:

    Si expira un temporizador, reiniciar en cada aparición de una notificación NAE, transfiriendo el contenido de los primeros medios de almacenamiento al destino, esperar el reconocimiento y, cuando se recibe el reconocimiento, desbloquear la petición de entrada e ir al primer paso.

      4. El método de cualquiera de las reivindicaciones 1 a 3 en donde si ocurre una notificación NAE, se ejecutan los siguientes pasos de sustitución:

        - escribir el NAE en unos segundos medios de almacenamiento y ejecutar en paralelo los siguientes pasos:
        - desbloquear la petición del programa en ejecución e ir al primer paso; y, en paralelo,
        - transferir el contenido de los primeros medios de almacenamiento al destino, esperando el reconocimiento y, cuando se recibe el reconocimiento, realizar la petición, eliminando el NAE de los segundos medios de almacenamiento e ir al primer paso.

      5. El método de la reivindicación 4 que además comprende si ocurre una notificación NAE:

      Si dichos segundos medios de almacenamiento están llenos, volver a probar si dichos segundos medios de almacenamiento están llenos hasta que un paso de eliminación se ejecute y dichos segundos medios de almacenamiento no estén llenos más.

        6. El método de cualquiera de las reivindicaciones 1 a 5 en donde si ocurre una notificación NAE se ejecutan los siguientes pasos de sustitución:

          - si dichos segundos medios de almacenamiento no están llenos, escribir el NAE en unos segundos medios de almacenamiento, desbloquear la petición de programa en ejecución e ir al primer paso;
          - si dichos segundos medios de almacenamiento están llenos, para todos los NAEs en los segundos medios de almacenamiento y el último NAE, transferir el contenido de los primeros medios de almacenamiento hasta este NAE al destino, esperando el reconocimiento y, cuando se recibe el reconocimiento realizar la petición, eliminando el NAE de los segundos medios de almacenamiento e ir al primer paso.

        7. El método de cualquiera de las reivindicaciones 1 a 6 en donde el paso de registro en unos primeros medios de almacenamiento se realiza en un FIFO.

        8. El método de cualquiera de las reivindicaciones 4 a 7 en donde el paso de escribir en unos segundos medios de almacenamiento se realiza en una memoria de almacenamiento temporal.

        9. El método de la reivindicación 6, en donde el paso de escribir en unos segundos medios de almacenamiento se realiza en una memoria de almacenamiento temporal que tiene más de una entrada.

        10. Un producto de programa informático que comprende instrucciones de código de programación para ejecutar los pasos del método de acuerdo con cualquiera de las reivindicaciones 1 a 9 cuando dicho programa se ejecuta en un ordenador.

        11. Un sistema que comprende medios adaptados para llevar a cabo el método de acuerdo con cualquiera de las reivindicaciones 1 a 9.