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:

  • G06F11/20 FISICA.G06 CALCULO; CONTEO.G06F PROCESAMIENTO ELECTRICO DE DATOS DIGITALES (sistemas de computadores basados en modelos de cálculo específicos G06N). › G06F 11/00 Detección de errores; Corrección de errores; Monitorización (detección, corrección o monitorización de errores en el almacenamiento de información basado en el movimiento relativo entre el soporte de registro y el transductor G11B 20/18; monitorización, es decir, supervisión del progreso del registro o reproducción G11B 27/36; en memorias estáticas G11C 29/00). › utilizando un enmascaramiento activo del defecto, p. ej. desconectando los elementos debilitados o insertando los elementos de recambio.
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 en sí misma. En una característica adicional de la solución se usa un "almacenamiento temporal de escritura" para almacenar un NAE o algunos NAEs.

El objetivo de la invención es alcanzar, de acuerdo con la reivindicación 1 con una ejecución del método en un sistema informático para duplicar o ejecutar el 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 desde un programa en ejecución para enviar un mensaje de salida,...

 


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.


         

        Patentes similares o relacionadas:

        Imagen de 'SISTEMA DE CONTROL TOLERANTE A FALLOS'SISTEMA DE CONTROL TOLERANTE A FALLOS, del 6 de Noviembre de 2009, de SAAB AB: Un sistema de procesamiento de datos tolerante a fallos para controlar un proceso en tiempo real, siendo dicho sistema tolerante a fallos sistemáticos producidos […]

        Restauración de aceleración de servicio, del 10 de Junio de 2020, de Microsoft Technology Licensing, LLC: Un método para restaurar la aceleración del servicio para un servicio, el método que comprende: determinar que la aceleración del servicio para el […]

        Procedimiento para hacer funcionar un sistema de transmisión de datos y sistema de transmisión de datos, del 29 de Abril de 2020, de Siemens Mobility GmbH: Procedimiento para hacer funcionar un sistema de transmisión de datos en el que - un primer equipo de transmisión de datos está conectado […]

        Procedimiento y aparato para la eliminación y la adición de CPU en caliente durante el funcionamiento, del 25 de Marzo de 2020, de HUAWEI TECHNOLOGIES CO., LTD.: Un procedimiento de eliminación de unidades centrales de procesamiento CPU en caliente, donde el procedimiento se puede aplicar a un único servidor con una primera […]

        Inducción de un nodo en un grupo, del 4 de Diciembre de 2019, de Wandisco, Inc: Un método implementado por ordenador para un nodo inductor en un sistema informático distribuido para inducir un nodo inducido en el sistema informático distribuido […]

        Estación de control para vehículos aéreos no tripulados y procedimiento de trabajo, del 14 de Agosto de 2019, de Airbus Defence and Space SA: Estación de control para vehículos aéreos no tripulados , que comprende sistemas críticos que implementan funciones relacionadas con la seguridad, […]

        Sistemas y métodos para comunicaciones tolerantes a fallos, del 27 de Mayo de 2019, de SAS Institute Inc: Un método implementado por ordenador, que comprende: transmitir, de un nodo de control primario conectado a uno o más nodos trabajadores […]

        Procedimiento y dispositivo de parada de un aparato eléctrico alimentado por una pluralidad de fuentes de energía, aparato equipado con tal dispositivo y sistema que incluye tal aparato, del 24 de Abril de 2019, de MGE-UPS SYSTEMS: Procedimiento de parada de un aparato eléctrico que tiene una duración de parada durante la cual la alimentación eléctrica del aparato no debe perturbarse, […]

        Utilizamos cookies para mejorar nuestros servicios y mostrarle publicidad relevante. Si continua navegando, consideramos que acepta su uso. Puede obtener más información aquí. .