Inventos patentados en España.

Inventos patentados en España.

Inventos patentados en España en los últimos 80 años. Clasificación Internacional de Patentes CIP 2013.

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

Resumen:

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.

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 de la Concesión: 18 de Marzo de 2010.

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

Clasificación Internacional de Patentes: G06F11/20F.

Clasificación PCT: G06F11/20 (...utilizando un enmascaramiento activo del defecto, p. ej. desconectando los elementos debilitados o insertando los elementos de recambio [3]).

Volver al resumen de la patente.

METODO PARA MEJORAR LA TRANSFERENCIA DE REGISTROS DE EVENTOS PARA LA REPLICA DE PROGRAMAS EN EJECUCION.
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, 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 desbloqueando la petición de entrada;
    - si ocurre la 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.

El objetivo de la invención se alcanza, de acuerdo con la reivindicación 2 con el método de la reivindicación 1 que además comprende después del paso de registro:

Si dichos primeros medios de almacenamiento están completos, 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.

    El objetivo de la invención se alcanza, de acuerdo con la reivindicación 3 con el método de la reivindicación 1 ó 2 que además comprende después del paso de registro:

    Si un contador de tiempo, reestablecido en cada aparición de una notificación NAE, expira, transferir el contenido de los primeros medios de almacenamiento al destino, esperando el reconocimiento y, cuando se recibe el reconocimiento, bloquear la petición de entrada e ir al primer paso.

      El objetivo de la invención se alcanza, de acuerdo con la reivindicación 4 con 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, quitando el NAE de los segundos medios de almacenamiento e ir al primer paso.

      El objetivo de la invención se alcanza, de acuerdo con la reivindicación 5 con 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 comprobar si dichos segundos medios de almacenamiento están llenos hasta que se ejecuta un paso de eliminación y dichos segundos medios de almacenamiento no están llenos más.

        El objetivo de la invención se alcanza, de acuerdo con la reivindicación 6 con el método de cualquiera de las reivindicaciones 1 a 5 en donde si ocurre una notificación NAE se ejecutan los siguientes pasos 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 del 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, quitando el NAE de los segundos medios de almacenamiento e ir al primer paso.

        El objetivo de la invención se alcanza, de acuerdo con la reivindicación 7 con 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.

        El objetivo de la invención se alcanza, de acuerdo con la reivindicación 8 con 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.

        El objetivo de la invención se alcanza, de acuerdo con la reivindicación 9 con el método de la reivindicación 6 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.

        El objetivo de la invención se alcanza, de acuerdo con la reivindicación 10 con 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.

        El objetivo de la invención se alcanza, de acuerdo con la reivindicación 11 con un sistema que comprende medios adaptados para llevar a cabo el método de acuerdo con cualquiera de las reivindicaciones 1 a 9.

        La solución de la invención trae ventajas adicionales:

          - con la presente solución, no hay que esperar más tiempo tras la recepción de una entrada a la aplicación, incluso si el procesamiento de los sucesos de salida se aumenta pero en una medida más baja. Una aplicación recibe típicamente entre diez y cien veces más entradas internas que entradas externas, pero una aplicación genera la misma aparición de sucesos de salidas externas que de entradas externas. Por lo tanto, impactando ligeramente el tiempo de procesamiento de los sucesos externos, uno típicamente baja cien veces menos que con la solución estándar. Sin cambiar las propiedades del protocolo de transferencia, y simplemente si el registro se transfiere tras una aparición de un suceso de salida externo más que una aparición de un suceso de entrada externa o interna, entonces se reduce considerablemente el encabezado.
          - como con la solución estándar, implementar la solución de la presente invención no implica ningún cambio en la aplicación.
          - el protocolo de transferencia permanece inalterado con la solución de la presente invención. El sistema FT que implementa la solución de la presente invención puede usar un protocolo de transferencia estándar tal como TCP que garantiza la integridad de los datos.
          - finalmente, una fuerte ventaja de la solución de la presente invención es la posibilidad de ser actualizable con un "almacenamiento temporal de escritura" opcional (estrategia de escritura diferida) que permite desbloquear las peticiones de salida de la aplicación. Activar esta opción requiere aumentar la capacidad de almacenamiento comparable al tamaño del registro con la solución estándar.
          - en el caso de sistemas primarios muti-cpu, la solución de la presente invención permite paralelismo total de transferencia, un procesador se podría dedicar a la transferencia de registro sin ralentizar la aplicación. Por el contrario, con la solución estándar debido a la serialización de la transferencia y la entrega del suceso, es inútil una CPU dedicada para mejorar el rendimiento.

        Generalización del uso de la invención:

          - la solución de la presente invención, que mejora el rendimiento de la transferencia del registro de suceso durante la réplica, se puede aplicar a cualquier entorno donde se necesite réplica. Los sistemas Tolerantes a Fallos se toman como ejemplo ya que son muy sensibles al rendimiento. La invención es más útil para sistemas tolerantes a fallos que aplican un modelo activo-activo, es decir, que tienen tanto la máquina primaria como la de reserva en modo activo. Pero la transferencia del registro de suceso de la invención se puede realizar en sistemas tolerantes a fallos que implementan un modelo activo-pasivo, es decir, que tienen la máquina primaria en modo activo y la máquina de reserva en modo pasivo. Los datos de registro de suceso se pueden enviar por la máquina primaria hacia una máquina remota que almacena los datos de registro de suceso para la repetición posterior en otra máquina; esta máquina remota que reconoce la recepción de los datos de registro de suceso de la máquina primaria. Esta configuración se puede usar para lograr el propósito cuando, por ejemplo, se requiere esto por ley.
          - la invención se puede implementar también para duplicar la aplicación para el propósito de depuración incluso si este uso es menos sensible al rendimiento.
          - finalmente, el ejemplo de réplica de aplicación tomado en el documento es suficientemente general para abarcar cualquier tipo de aplicación. La réplica es una solución para virtualización y hay muchos modelos de virtualización. En algunos modelos, las aplicaciones de usuario se virtualizan y de esta manera se pueden duplicar. En otros modelos, el hipervisor en el que funcionan las aplicaciones de usuario se virtualiza por sí mismo y de esta manera se pueden duplicar. Finalmente, una máquina virtual también se puede virtualizar y la máquina virtual entera puede ser duplicada en este caso. En todos los casos la mejora de la solución de la invención se puede aplicar para la transferencia del registro de suceso.

        Breve descripción de los dibujos

        La Fig. 1 ilustra un sistema FT que implementa la solución estándar de la técnica previa para la transferencia de registro de suceso;

        La Fig. 2 ilustra un modelo FT que implementa una solución para la transferencia de registro de suceso de acuerdo con la realización preferente, transferencia que se provoca por cada suceso de salida externo;

        La Fig. 3 ilustra los flujos de datos entre la máquina primaria y la de reserva del proceso opcional usando un almacenamiento temporal de escritura para diferir la entrega de salida externa;

        La Fig. 4 es un diagrama de flujo general del método de transferencia de registro de acuerdo con la realización preferente de la invención;

        La Fig. 5 es el diagrama de flujo general del método de transferencia de registro de acuerdo con la realización preferente de la invención en donde se usa una memoria de almacenamiento temporal de escritura que contiene un NAE;

        Las Fig. 6 es el diagrama de flujo general del método de transferencia de registro de acuerdo con la realización preferente de la invención en donde se usa una memoria de almacenamiento temporal de escritura que contiene más de un NAE.

        Descripción detallada de la realización preferente

        La réplica de unos programas en ejecución consiste en registrar la información que concierne a la ejecución de los programas en un instante en el tiempo en un sistema informático en el que se ejecutan los programas. Entonces, la información registrada se usa en otro sistema informático para repetir los programas y recrear el entorno de programas en ese instante en el tiempo en ese otro sistema informático. Esta réplica se hace para sistemas tolerantes a fallos, cuyo objetivo es mantener una máquina de reserva lista para reiniciar en cualquier momento la ejecución de los programas. La réplica también se puede usar para propósitos de archivo o para programas. La réplica se aplica normalmente a una aplicación completa que es el mejor ejemplo tomado en el resto de la descripción. Cabe señalar que cuando una aplicación se ejecuta en un ordenador los programas en ejecución pueden ser programas de la aplicación en sí mismos u otros programas tales como módulos del sistema operativo que se ejecutan para la aplicación.

        La información registrada es una serie de sucesos, los sucesos que se envían o reciben por los módulos de la aplicación o los módulos del sistema operativo que funciona en el sistema informático en el que la aplicación se está ejecutando. No hay necesidad de registrar sucesos determinísticos ya que se pueden repetir volviendo a ejecutar simplemente la aplicación. Los sucesos no determinísticos necesitan ser registrados porque se volverán a inyectar durante la repetición de la aplicación. El objetivo es tener un mínimo impacto en la ejecución de la aplicación durante el registro de sucesos. Las figuras ilustran los métodos para registrar sucesos y transferirlos para la réplica en un sistema tolerante a fallos, es decir cuando los sucesos registrados se transfieren a una máquina de reserva para repetición inmediata.

        La Fig. 1 ilustra, con un diálogo entre sus distintos componentes del sistema, un sistema FT que implementa la solución estándar "segura y lenta" de la técnica previa para la transferencia de registro de suceso. En esta solución, la transferencia de registro de suceso se provoca por cada suceso de entrada, es decir para cada suceso no determinístico recibido por la aplicación y registrado por el programa de réplica que realiza la grabación de la aplicación en una máquina primaria y la repetición de esta aplicación en una máquina de reserva. En la Fig. 1 la máquina en funcionamiento, la máquina primaria (110) ejecuta una aplicación (145) en el espacio de usuario (135). El programa de réplica (140) que realiza la grabación de la aplicación en la máquina primaria funciona en el espacio de núcleo (130) del sistema. Cuando se recibe una entrada (155) para la aplicación desde el mundo exterior, la red (100) o como una entrada interna desde otro proceso del núcleo (155), se captura por el programa de réplica (140) que implementa la solución estándar. La parte de grabación del programa de réplica crea un registro del suceso capturado que no se detalla aquí pero que se puede realizar de cualquier manera eficiente para grabar un suceso para su repetición en la fase de repetición de la réplica. El programa de réplica envía (160) el suceso de entrada capturado como un registro de suceso a la parte de repetición del programa de réplica (140) que funciona en el espacio de núcleo de una máquina de reserva (120). Entonces, la parte de repetición del programa de réplica en la máquina de reserva reconoce (165) la correcta recepción de la transmisión del registro de suceso. Tras la recepción del reconocimiento, la parte de grabación del programa de réplica en la máquina primaria puede reenviar (170) el suceso a la aplicación. En paralelo, ya que esto ilustra un sistema tolerante a fallos, la parte de repetición del programa de réplica que funciona en la máquina de reserva reenvía (175) el suceso a la aplicación que funciona en la máquina de reserva para mantenerlo actualizado en caso de fallo. Como se señaló anteriormente en el documento, la aplicación que se ejecuta en la máquina primaria recibe el suceso de entrada después de una latencia que comprende el retardo para capturar la entrada, registrarla, reenviar el suceso y para recibir el reconocimiento de correcta recepción por la máquina de reserva. Incluso si esta solución estándar se puede usar para cualquier situación donde se requiere la réplica de la aplicación, en el caso del sistema de tolerante a fallos las dos aplicaciones se deben mantener en fase en tiempo real, lo que supone que se desea una comunicación de alta velocidad entre la máquina primaria y la de reserva para las transmisiones (160, 165). Estas pueden implicar el uso de distintos enlaces físicos desde la red estándar (100), tal como conexiones de fibra óptica que se muestran en la Fig. 1.

        El problema de la solución estándar reside en la latencia de la transferencia del registro y el protocolo de reconocimiento, ahora impuestos a todas y cada una de las apariciones de sucesos, sean de la fuente externa o interna. Incluso con redes de interconexión de alta velocidad, esta latencia estaría en la gama de varios microsegundos (a lo mejor), lo cual es enorme comparado con la duración inicial de nanosegundos para sucesos internos. La latencia de registrar sucesos se sitúa en la fuente de los datos de entrada de la aplicación. Primero disminuye la velocidad de transmisión de datos externos de la aplicación. También hace muy lento el sistema operativo transformando sucesos no determinísticos muy frecuentes en puntos de serialización.

        La Fig. 2 ilustra un modelo FT que implementa una solución para la transferencia de registro de suceso de acuerdo a la realización preferente. En el sistema tolerante a fallos de la Fig. 2, el programa de réplica de la Fig. 1 se ha modificado (240) en las máquinas primaria (110) y de reserva (120) para implementar la invención de acuerdo a la realización preferente. Cuando se aplica repetición determinística a tolerancia a fallos de sistemas transaccionales conectados a clientes externos (que asumen que no se pueden hacer retroceder esos pares de comunicación remota), un punto importante a tener en cuenta es que un comportamiento divergente de la réplica se puede tolerar en tanto en cuanto no se envía el mensaje al mundo exterior. En un sistema tolerante a fallos basado en procesamiento concurrente, supone que el estado de la réplica debe ser idéntico al original en el momento que se envía un mensaje externo, por los medios de repetición determinística. Si ocurre un fallo, pueden ser ignorar todos los sucesos no determinísticos posteriores a la transmisión del último mensaje externo, y la réplica puede ser todavía coherente con el mundo exterior. Consecuentemente, la salida de un mensaje externo constituye un punto de no retorno. Es obligatorio asegurar que la de reserva puede alcanzar ese estado, teniendo la reserva que reconoce la recepción del registro del suceso no determinístico hasta ese punto, previo a enviar el mensaje externo. Permítasenos generalizar este concepto con "Suceso No Abortables" (NAE), que son sucesos que cambian irremediablemente el estado del mundo exterior, que no podemos hacer retroceder (podríamos hacer retroceder solamente el servidor). También podemos definir una "Secuencia Abortable de Sucesos" (ASE) como la lista de todos los sucesos no determinísticos que se pueden hacer caso omiso de manera segura en la recuperación de reserva. Son todos los sucesos que siguen al último NAE. Un NAE, que es por naturaleza un mensaje de salida, no es parte del registro de suceso, el contenido de salida que ya es determinado por el sistema de repetición. Es más bien una señal que indica que el registro de suceso debe ser entregado a la reserva antes de proceder, para asegurar la recuperabilidad. Una recuperación coherente de una aplicación transaccional que interactúa con el mundo exterior depende del hecho que los datos de registro críticos se han entregado en el momento de los Sucesos No Abortables, más que en la aparición del suceso no determinístico en sí mismo.

        Las dos entradas recibidas (150, 155) por la aplicación (145) que se ejecuta en el espacio de usuario de la máquina primaria no se capturan por el programa de réplica (140) y alcanzan la aplicación. Por el contrario, la parte grabada del programa de réplica que funciona en la máquina primaria (140) captura la salida (230) enviada desde la aplicación que es un NAE. Entonces, la parte de grabación del programa de réplica crea un registro del suceso capturado que no se detalla aquí pero que se puede realizar de cualquier forma eficaz para grabar un suceso para su repetición en la fase de repetición de la réplica. El programa de réplica envía (260) una señal a la parte de repetición del programa de réplica (240) que funciona en el espacio de núcleo de la máquina de reserva (120). Entonces, la parte de repetición del programa de réplica en la máquina de reserva reconoce (265) la correcta recepción de la transmisión del registro de suceso. Tras la recepción del reconocimiento, la parte de grabación del programa de réplica en la máquina primaria puede reenviar (240) la salida en nombre de la aplicación al mundo exterior, la red (100) en este caso. En paralelo, ya que esto ilustra un sistema tolerante a fallos, la parte de repetición del programa de réplica que funciona en la máquina de reserva reenvía (175) el suceso NAE a la aplicación que funciona en la máquina de reserva para mantenerla actualizada en caso de fallo. La salida entregada por la aplicación se envía realmente después de una latencia que comprende el retardo para capturar, registrar, reenviar el suceso y para recibir el reconocimiento de la correcta recepción por la máquina de reserva. Con este nuevo método, el punto de serialización de la transferencia de registro se mueve desde cualquier entrada NDE (interna o externa) a la salida del NAE solamente.

        Con esta solución, en algunas circunstancias, el resultado de los sucesos no determinísticos se puede reenviar a la aplicación antes de enviarlos a la máquina de reserva, ya que algunas secuencias completas de sucesos se pueden hacer caso omiso sin impactar la consistencia de la aplicación recuperada. Una consecuencia es que las secuencias de sucesos no determinísticos se puede enviar en "lote", más que una a una, reduciendo de esta manera el impacto de la latencia de transferencia. La transferencia de registro de suceso se desencadena por cada suceso de salida externo. Este método elimina puntos internos de serialización debido a la transferencia de registro de suceso, aplicando una estrategia similar al almacenamiento intermedio, que agiliza las operaciones de entrada y difiere las operaciones de escritura física. La transferencia de registro de suceso puede ejecutarse en paralelo con la ejecución normal de la aplicación, en lugar de ser serializada, reduciendo incluso más el impacto de la latencia de la transferencia de registro.

        La Fig. 3 ilustra los flujos de datos entre la máquina primaria y la de reserva del proceso opcional usando un almacenamiento temporal de escritura para diferir la entrega de la salida externa. Esta opción de la solución trae un nivel adicional de optimización introduciendo el paralelismo en la transferencia del registro de suceso con la ejecución de la aplicación. La aparición de un NAE se divide en dos pasos. El primer paso es la notificación de un NAE, que desencadena la acción de la descarga del registro de suceso a la de reserva hasta el estado alcanzado en la notificación NAE. El segundo paso es la entrega física del NAE, que se almacena y difiere hasta se recibe el reconocimiento desde la de reserva. El procesamiento en el NAE es el siguiente:

          - El programa de réplica en la máquina en funcionamiento (110) intercepta un NAE a punto de comenzar (pero no entregado aún), es decir, la notificación del NAE (320).
          - En lugar de ser entregado, el NAE se almacena (330) en un almacenador temporal, el almacenamiento temporal NAE, y se reconoce al módulo que fijó el NAE, de manera que no se bloquea la aplicación o el sistema operativo.
          - Todos los sucesos de registro que comprenden los NAEs del almacenamiento temporal hasta el último NAE más el ASE registrado en el FIFO en la en funcionamiento se transmiten (335) a la de reserva (120).
          - En la recepción del reconocimiento desde la de reserva (340), el NAE se entrega físicamente (345), y se elimina del almacenamiento temporal.
          - El registro ASE de sucesos (390) se repite en la máquina de reserva después de la transferencia de registro (335).

        Entregar el registro en la salida de datos externa es suficiente para asegurar la consistencia de la recuperación, permitiendo la transmisión del registro de sucesos en ráfagas de ASEs. Diferir la transmisión de NAEs hasta la recepción del reconocimiento de transmisión del registro de suceso permite hacer transferencia paralela del registro de suceso y la ejecución adicional de la aplicación en funcionamiento. El retardo del NAE (350) comprende la latencia de Registro (355) + la latencia de Reconocimiento (360). El retardo de Repetición (370) comprende la latencia de ASE (375) + la latencia de Registro (380). Si bien en esta latencia total se incurre solamente una vez por conjunto de varios sucesos contenidos en un ASE, en una latencia equivalente se incurre por todos y cada uno de los sucesos no determinísticos, en los métodos sugeridos en la técnica previa. Amortizando el encabezado en una serie de sucesos, el sistema propuesto alcanza alto rendimiento.

        La Fig. 4 es el diagrama de flujo general del método de transferencia de registro de acuerdo con la realización preferente de la invención. Este método se implementa como un programa en la máquina en funcionamiento como una parte del proceso de réplica de un conjunto de programas (por ejemplo de una aplicación o pueden ser módulos de un sistema operativo) que se ejecutan en una máquina en funcionamiento. Este proceso de réplica consiste en registrar la información en la ejecución de los programas de aplicaciones y transferir esta información a la máquina de reserva para la repetición de la aplicación en esa máquina de reserva. La realización preferente se describe en un sistema tolerante a fallos que mantiene un procesamiento concurrente en las máquinas en funcionamiento y de reserva. La información registrada y transferida radica en el "suceso" que ocurre entre los programas en ejecución. Estos sucesos pueden ser internos o externos a la máquina en funcionamiento, en la entrada o salida del programa en ejecución. No hay procesamiento requerido para sucesos determinísticos: la información de sucesos determinísticos no tiene necesidad de ser registrada y transferida a la máquina de reserva porque se repetirá en la máquina de reserva por simple ejecución de la aplicación. Un suceso no determinístico potencialmente podría conducir a más de un estado de aplicación resultante, entonces, este suceso necesita ser registrado y transferido a la máquina de reserva para la repetición con esta información. El primer paso consiste en esperar por una notificación de suceso no abortable (NAE) o un suceso no determinístico (NDE) (400) durante la ejecución de la aplicación. Se ejecuta una prueba para encontrar un suceso no determinístico (410); tal prueba se implementa seleccionando algunos tipos de sucesos tales como una llamada del sistema para consultar el tiempo que es un suceso no determinístico. Entonces se ejecuta una prueba para comprobar si ha ocurrido una denominada notificación NAE (420). Una aparición de un NAE tal como una petición por un módulo en ejecución de enviar un mensaje de salida desde la máquina en funcionamiento implica que habrá un cambio irreversible del estado del mundo exterior. En este caso, hay una necesidad de duplicar esta situación y los sucesos ya registrados hasta que la notificación NAE necesite ser enviada inmediatamente a la máquina de reserva. Si no hay notificación de un NAE (respuesta No a la prueba 410), y ocurre ese suceso no determinístico, se puede hacer caso omiso del suceso no determinístico de forma segura en la recuperación en la de reserva, porque no hay cambio irreversible del estado del mundo externo pendiente. Este suceso necesita ser registrado en la máquina en funcionamiento. Este suceso no determinístico podría corresponder a un programa en ejecución que envía una petición para un mensaje de entrada a la aplicación. El mensaje de entrada es bloqueado (425). El suceso (comenzar un ASE si ocurre justo después de que ha sido notificado un NAE) se registra preferentemente en un FIFO (480). Si el Registro FIFO no está lleno (respuesta No a la prueba 460) y, opcionalmente, si un tiempo de espera, preferentemente establecido como un temporizador de descarga de Registro, no ha expirado (respuesta No a la prueba 470), el suceso se entrega a la aplicación (490) y el módulo de petición se desbloquea (495) en la máquina en funcionamiento. Si el FIFO está lleno (respuesta Si a la prueba 460) el registro no es posible y uno no quiere perder la información del suceso. El uso de un tiempo de espera es opcional: si un NAE no ocurre durante un tiempo largo, podría ser deseable forzar la descarga del registro (430) para asegurar que el tiempo de transición es pequeño. Un temporizador llamado temporizador de descarga de registro sigue la pista del intervalo de tiempo entre los sucesivos NAEs. El temporizador se reinicia cada vez que aparece un nuevo NAE: esto no se menciona en el algoritmo general para evitar complicar las figuras. Cabe señalar que cualquier forma de contar un tiempo de espera entre dos NAEs se puede implementar con el mismo beneficio para el método de la invención. En ambos casos (respuesta Si a la prueba 460 y respuesta Si a la prueba 470) la información de registro de suceso necesita ser transferida a la máquina de reserva.

        Si ocurre una notificación NAE (respuesta Si a la prueba 420), esto supone que se realiza una petición para enviar un mensaje de salida externo a la aplicación por un módulo en ejecución. Esta petición se bloquea (427). La aparición de un NAE supone que una parte del estado de la aplicación va a ser publicada al mundo exterior: en este caso, las grabaciones del suceso registrado en el FIFO, hasta la notificación NAE, necesitan ser transferidas a la máquina de reserva.

        En el caso en que ocurra una notificación NAE (respuesta Si a la prueba 420) o cuando el suceso no determinístico que no un NAE no puede ser registrado en la máquina en funcionamiento (respuesta Si a la prueba 460 o respuesta Si a la prueba 470), el contenido del registro se transfiere (430) a la máquina de reserva. El proceso de réplica espera en la máquina operativa hasta que se recibe un reconocimiento de la transferencia (440, respuesta No a la prueba 450). Cuando se recibe el reconocimiento (respuesta Si a la prueba 450), la petición de salida (notificación NAE) o entrada (suceso no determinístico sin ninguna notificación NAE), se bloquea en la máquina en funcionamiento y la ejecución continúa. Cabe señalar que la transferencia de registro (430) es para una secuencia ASE completa entre dos NAEs tanto si el registro está lleno como si expira el temporizador de descarga de registro.

        La Fig. 5 es el diagrama de flujo general del método de transferencia de registro de acuerdo con la realización preferente de la invención, en donde se usa una memoria opcional de almacenamiento temporal de escritura que contiene un NAE. El método implementado como un programa en la máquina en funcionamiento, como una parte del proceso de réplica, usa un almacenamiento temporal de escritura en la máquina en funcionamiento para almacenar en un almacenamiento temporal la notificación NAE mientras que reconoce el módulo que ha fijado el NAE y que evita de esta manera bloquear la ejecución en la máquina en funcionamiento. Entonces, cuando el almacenamiento temporal está lleno con un NAE y cuando llega un nuevo NAE, se realiza la transferencia de registro de suceso hasta el NAE, el desbloqueo del proceso que ha solicitado la salida que está bloqueada hasta la recepción del reconocimiento de transmisión. En paralelo, se realiza la entrega física del NAE y se libera el almacenamiento temporal.

        La Fig. 5 es el diagrama de flujo del método de la realización preferente al que se añade el uso de un almacenamiento temporal opcional de escritura. Este método se implementa como un programa en la máquina en funcionamiento como parte del proceso de réplica, transfiriendo información en la ejecución de una aplicación a la máquina de reserva, para la repetición de la aplicación en la máquina de reserva. La opción de almacenamiento temporal de escritura se puede seleccionar durante una personalización del programa. En este caso, el sistema en funcionamiento contiene una memoria de almacenamiento temporal de escritura que se usa para almacenamiento temporal de la notificación NAE hasta que está lleno el almacenamiento temporal. En el caso donde el sistema operativo subyacente ya proporciona un almacenamiento temporal de escritura (almacenado de almacenamiento temporal en el caso de sistema de ficheros, por ejemplo) no se usa un almacenamiento temporal de escritura adicional. En este caso, la descarga del almacenamiento temporal proporcionada por el sistema operativo sería el NAE. Comparado con el método sin almacenamiento temporal de escritura en funcionamiento (pasos 400 a 495) este método ejecutado en la máquina en funcionamiento comprende nuevos pasos (500, 510, 530, 535, 540, 550) en relación con el uso de la memoria de almacenamiento temporal de escritura. Si ocurre una notificación NAE o un NDE (400) y si no es un NAE (respuesta No a la prueba 420), el proceso es similar que con la realización preferente (415, 420, 460, 470, 430, 440, 450, 470, 480, 490) incluso con el paso de desbloquear la petición de entrada (540 sustituyendo al 495 de la Fig. 4) la petición que es siempre una petición de entrada en la Fig. 5. Si ocurre una notificación NAE (respuesta Si a la prueba 420), y la memoria de almacenamiento temporal no está llena (respuesta No a la prueba 500), el suceso se registra en el almacenamiento temporal de escritura (510) y se reconoce al módulo que fija el NAE solicitando el mensaje de salida para ser enviado, de manera que la ejecución se desbloquea (550). En paralelo a la ejecución del desbloqueo de la petición de salida (550), el registro de sucesos en el FIFO hasta la notificación NAE, y que contiene el ASE, se transfiere (430) a la máquina de reserva. El proceso de réplica espera en la máquina en funcionamiento hasta que se recibe un reconocimiento de la transferencia (440, respuesta No a la prueba 450). Cuando se recibe el reconocimiento (respuesta Si a la prueba 450), se lee el NAE desde el almacenamiento temporal y se entrega físicamente (530) a la máquina de reserva. Entonces se elimina el NAE de la memoria de almacenamiento temporal (535).

        Mientras que no se ha eliminado el NAE del almacenamiento temporal porque no ha sido aún completada la entrega, si ocurre otra notificación NAE, la memoria de almacenamiento temporal se comprueba como llena (respuesta Si a la prueba 500). Un bucle permite esperar a que el almacenamiento temporal sea liberado y que la prueba llegue a ser negativa (respuesta No a la prueba 500).

        La Fig. 6 es el diagrama de flujo del método de la realización preferente al que se añade el uso de un almacenamiento temporal de escritura opcional adaptado para contener más de un NAE. Este método se implementa como un programa en la máquina en funcionamiento como parte del proceso de réplica que transfiere información en la ejecución de una aplicación a la máquina de reserva para la repetición de la aplicación en la máquina de reserva. La opción de almacenamiento temporal de escritura multi-NAE se puede seleccionar durante una personalización del programa. En este caso, el sistema en funcionamiento contiene una memoria de almacenamiento temporal de escritura lo bastante grande para contener más de un NAE que será releído, siendo almacenado el NAE hasta que el almacenamiento temporal está lleno. En el caso en que el sistema operativo subyacente ya proporciona un almacenamiento temporal de escritura (almacenador de almacenamiento temporal en el caso de sistemas de ficheros, por ejemplo) que tiene la capacidad requerida, no se usa un almacenamiento temporal de escritura adicional. En ese caso, la descarga del almacenamiento temporal proporcionado por el sistema operativo sería el NAE. Comparado con el método con un almacenamiento temporal de escritura en funcionamiento para almacenar solamente un NAE, este método ejecutado en la máquina en funcionamiento comprende nuevos pasos (525, 555, 532) en relación con el uso de una memoria de almacenamiento temporal de escritura dimensionada multi-NAE. En la Fig. 6, el proceso NAE difiere en que, si un suceso es un NAE (respuesta Si a la prueba 420) y la memoria de almacenamiento temporal no está llena (respuesta No a la prueba 500), el suceso se añade en el almacenamiento temporal de escritura (510) y se reconoce al módulo que fijó el NAE, de manera que la ejecución se desbloquea (520). Si el almacenamiento temporal está lleno (respuesta Si a la prueba 500) después de que ha ocurrido una notificación NAE, el registro de sucesos, el ASEs hasta los distintos NAEs en el almacenamiento temporal y registrado en el FIFO se transfieren (525) a la máquina de reserva. El proceso de réplica espera en la máquina en funcionamiento hasta que se recibe un reconocimiento de la transferencia (440, respuesta No a la prueba 450). Cuando se recibe el reconocimiento (respuesta Si a la prueba 450), se entrega físicamente el NAE correspondiente a la transferencia de registro reconocida (530) a la máquina de reserva y el NAE se elimina del almacenamiento temporal (525). Si todos los ASEs registrados en el FIFO no son todos transferidos, la transferencia del registro se repite (525, 440, 450, 530, 535, 450) hasta que todos los registros se transfieren hasta el último NAE.

        Las tres realizaciones descritas en la Fig. 4, Fig. 5 y Fig. 6 se pueden usar en un sistema informático que realiza réplica para la transferencia inmediata a una máquina de reserva en caso de un sistema tolerante a fallos que comprende una máquina en funcionamiento que mantiene una máquina de reserva en caso de fallo. Las mismas realizaciones se pueden usar si la transferencia se hace a un almacenamiento para grabar la información de réplica de la aplicación que va ser repetida más tarde en otra máquina para lograr el propósito. O, las mismas realizaciones se pueden usar por un desarrollador para probar la aplicación y la cual analizará todos los sucesos registrados y transferidos. El método de réplica se puede aplicar a la ejecución de programas para una aplicación, permitiendo la réplica en este caso del aislamiento del contenedor de la aplicación. No obstante, como ya se mencionó, se puede aplicar este mismo método para módulos duplicar módulos de un sistema operativo que se ejecutan sobre una máquina en funcionamiento. Este método es de aplicación a la réplica usada para arquitecturas de virtualización basadas en hipervisores.




        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.


              Otras invenciones interesantes y sus búsquedas relacionadas.




              Acerca de · Contacto · Patentados.com desde 2007 hasta 2014 // Última actualización: 20/12/2014.