MÉTODO DE MEJORAR EL FUNCIONAMIENTO DE • SERVIDOR DE REPLICA Y UN SISTEMA DE SERVIDOR DE RÉPLICA CAMPO DE LA INVENCIÓN La presenté invención se relaciona con sistemas servidores de réplica. ANTECEDENTES DE LA INVENCIÓN La operación segura de fallas de sistemas de tecnología de información es de importancia fundamental para actividades de la sociedad más moderna. Debido a esto hay muchos sistemas precautorios que se hacen para manejar situaciones de falla. Estos sistemas podrían comprender protección de información a través de sistemas de respaldo de memoria así como protección de funcionalidad de sistema completa. La última podría comprender sistemas completamente de espejo o redundantes, en donde todas las acciones se ejecutan en componentes de sistema primario y secundario (computadora, procesador, servidor, etc.). Uno de dichos sistemas a prueba de fallas se describe en la Patente de EUA 6,526,487, en donde los contenidos de memoria están sincronizados. Un sistema de computadora primario incluye una memoria y una memoria intermedia de retraso que recibe solicitudes escritas de datos para ser almacenados en la memoria. El contenido de la memoria intermedia de retraso se transfiere a un sistema de computadora de respaldo. Cuando la transferencia está completa, el sistema de computadora de respaldo acusa recibo de que el dato ha sido recibido, después de lo cual el sistema de computadora primario prosigue ejecutando la solicitud por escrito. Por la presente, los dos sistemas están sincronizados en todo momento y cualesquiera fallas que ocurren antes de que el acuse de recibo se reciba resultarán en que la solicitud por escrito no se está ejecutando. En el campo financiero, v.gr., sistemas de intercambio electrónicos por acciones, bonos, derivados, etc., se usan servidores en memoria de alta velocidad a prueba de fallas. Estos sistemas también se denominan como sistemas servidores de réplica. Similar al sistema arriba descrito, un sistema servidor de réplica comprende una réplica primaria y una réplica secundaria, ambas siendo idénticas en el mismo estado. En caso de que la réplica primaria falle, la réplica secundaria asumirá inmediatamente. Desde luego, el sistema puede contener varias réplicas secundarias para mejorar la seguridad. Durante la falla de la réplica primaria, una de las réplicas secundarias se convertirá entonces en una nueva réplica primaria, mientras que las otras permanecen como réplicas secundarias. Un problema pronunciado con sistemas servidores de réplica y otros sistemas similares es los tiempos de retraso. En un servidor de réplica la réplica primaria recibe un dato de entrada, almacena éste a una memoria intermedia (normalmente en una interfaz 1/0) , lo escribe en una memoria persistente, v.gr., un disco (inundando la memoria intermedia) , transfiere el dato de entrada a la réplica secundaria (o réplicas), espera que la réplica secundaria almacene el dato de entrada en una memoria intermedia, escribe el dato de entrada en su propia memoria persistente (disco) y reconoce el recibo del dato de entrada, después de lo cual la réplica primaria puede procesar el dato de entrada y dar salida al dato procesado
(a través de la interfaz 1/0, almacenando también de esta manera el dato de salida en la memoria intermedia) . En particular escribir a un disco (o cualquier memoria persistente que se use) normalmente consume mucho tiempo para un sistema que se supone es capaz de manejar miles (o más) transacciones o eventos paralelos. Básicamente, escribir toma 5.8 m (tiempo de actividad) para una impulsión de disco normal (15,000 rpm y un tiempo de búsqueda de 3.8 ms) . También hay ciertos sistemas disponibles (tales como los sistemas RAID y SAN, así como discos RAM) que tienen funcionamiento de escritura mejorada - estos sistemas sin embargo son muy costosos. Otro problema con sistemas servidores de réplica es la capacidad, es decir, el número de eventos o transacciones que son posibles de realizar cada unidad de tiempo. En sistemas de servidor de réplica que manejas transacciones financieras (v.gr., intercambio electrónico) la actividad se hace cada nuevo dato de entrada registrado en ambas la réplica primaria y la réplica secundaria. En vista del tiempo de actividad arriba anotado de 5.8 ms para cada evento, el límite para el sistema será alrededor de 170 transacciones por segundo (TPS) . A fin de mejorar este régimen, los intercambios electrónicos de la actualidad pueden necesitar usar los sistemas costosos para mejorar funcionamiento de escritura. Estas inversiones, sin embargo, requiere alta liquidez en el intercambio (número elevado de transacciones) a fin de pagar. La réplica secundaria también procesa el dato de entrada para crear resultados de salida de duplicado o réplica. Cuando la réplica primaria y la réplica secundaria están colocadas a distancias grandes, aún diferentes continentes, la latencia de la red también es notoria. Aquí, sin embargo, el estado de los sistemas del ramo puede proporcionar tiempos de latencia regularmente bajos aún para comunicación transcontinental. Por ejemplo, es posible obtener 100 MB de banda ancha entre New York y Chicago. Esto lleva una latencia de red de 1 ms o menos, que es una gran mejora en comparación con comunicaciones por teléfono o satélite que pueden llevar tiempos de viaje redondo de 60-500 ms. Junto con el tiempo de escritura de actividad, el tiempo de retraso total de esta manera puede ser significativo. La razón de este procedimiento en sistemas financieros, desde luego, es ser tan a prueba de falla como sea posible. Pero aún así, existen otros problemas que podrían todavía ocasionar efectos vitales para operabilidad no interrumpida del sistema. La vulnerabilidad a errores sistemáticos siempre está presente y, por ejemplo, podría ser ocasionada por errores lógicos tales como división con cero. Estos errores en realidad podrían ocasionar que todas las réplicas fallen, puesto que no es sino hasta después del conocimiento que dicho error se hace evidente. Puesto que toda la información está escrita en disco (memoria persistente) antes de procesarla, sin embargo, los sistemas conocidos se pueden restaurar y reasumir su operación (después de saltar el evento que ocasiona el choque) . Dicha restauración, desde luego, lleva tiempo y entre tanto todas las actividades (en caso de un intercambio eléctrico todo manejando en la instalación financiera) se cierran. De esta manera existe la necesidad de un sistema de servidor de réplica más rápido y aún más confiable.
Especialmente un sistema que pueda operar en modo a prueba de fallas mientras que opera números grandes de transacciones paralelas. BREVE COMPENDIO DE LA INVENCIÓN De conformidad con la invención, se proporciona un método y sistema para mejorar el funcionamiento de sistema de servidor de réplica. En una modalidad del método, el dato de entrada recibido por una réplica primaria se transfiere inmediatamente a una réplica secundaria. Una vez que la réplica secundaria ha recibido el dato de entrada, reconoce esto regresando dato de confirmación. Simultáneamente la réplica primaria almacena el dato de entrada a la memoria intermedia y procesa el mismo sin retraso para crear dato de salida. Cuando se recibe el dato de confirmación, el dato de salida se envía fuera de la réplica primaria. Notablemente, con este método no hay necesidad de inundar la memoria intermedia para cada evento para mantener la seguridad del sistema completo, evitando de esta manera el tiempo de escritura que consume tiempo. El tiempo de memoria intermedia y procesamiento normalmente no aumentará el tiempo total de entrada a salida puesto que la latencia de red (transferencia de dato de entrada a la réplica secundaria y transferencia de dato de confirmación a la réplica primaria) luego es normalmente más prolongado.
En una red lenta puede ser todavía posible escribir dato al disco para cada evento dentro del tiempo de latencia de red sin afectar el tiempo total para un solo evento (entrada a salida) . Sin embargo, saltando la inundación, la capacidad se aumenta inmensamente. Un PC ordinario podría manejar alrededor de 170,000 TPS sin inundación lo que es 1,000 veces más que con inundación. La seguridad todavía se mantiene para el sistema servidor de réplica. Puesto que el dato de salida no se envía sino hasta que se recibe el reconocimiento de la réplica secundaria, no hay necesidad real de mantener un sistema completamente sincronizado de réplica primaria y réplica secundaria. En tanto que no se envíe salida del sistema, la secuencia de entrada es irrelevante. En caso de que la réplica primaria falle, la réplica secundaria proseguirá ininterrumpidamente y procesará el dato de entrada desde la memoria intermedia en tiempo debido y mismo orden que la réplica primaria y producirá el dato de salida . En otra modalidad del método, la réplica secundaria pospondrá el procesamiento del dato de entrada hasta que se recibe un siguiente dato de entrada de la réplica primaria, indicando que la réplica primaria todavía está operando. Esto impide cualesquiera fallas sistemáticas de ser transferidas a la réplica secundaria (o réplicas secundarias cuando se usa más de una) . La seguridad del sistema de esta manera es casi completamente a prueba de falla. En tanto que una réplica secundaria sea operacional, el procesamiento continuará no interrumpido. En caso de que la réplica primaria falle y se sospeche de un error sistemático, la réplica secundaria no procesará el dato de entrada correspondiente, sino que en su lugar lo marcará como una operación sospechosa y regresará una negativa de operar a la fuente (externa) del dato de entrada. Es innecesario decir, esto hace además el uso de inundación innecesario. No hay necesidad de ser capaz de restaurar el sistema de réplica completo desde el dato escrito puesto que ningunos errores sistemáticos proseguirán a la réplica secundaria. En caso de que el número de datos de entrada recibidos exceda los tiempos de procesamiento para la réplica primaria (por ejemplo, le entrada B, C y D llega y se transfieren a la réplica secundaria aún antes de que la entrada A haya sido procesada) hay un riesgo de que la réplica secundaria prosiga e inicie el proceso de le entrada A antes de que la réplica primaria haya terminado el procesamiento de la entrada A. Esta situación se puede contrarrestar o prevenir de un número de formas. Una forma sería rechazar el nuevo dato de entrada (es decir, entrada B, C, D, etc.), hasta que la entrada A haya sido procesada. La desventaja de esto es desde luego la limitación en número de transacciones que se pueden realizar. Otra forma sería esperar con el procesamiento de la entrada A en la réplica secundaria hasta 5 o cualquier otro número razonable de datos de entrada haya llegado, el número de entradas siendo seleccionado de manera que se asegure que la réplica primaria ha tenido tiempo de procesar la entrada A. Una desventaja evidente de esta forma es desde luego que la réplica secundaria debe siempre retrasarse atrás un número de operaciones, aún cuando no hay nuevo dato de entrada y la réplica primaria sea operacional. Una alternativa tercera y preferible es enviar dato de información de la réplica primaria indicando cual dato de entrada se están procesando actualmente (o cual fue el último procesado) . De esta manera, el procesamiento en la réplica secundaria se puede posponer hasta que el dato de información indica que la entrada A no ocasionó una falla en la réplica primaria. Un beneficio principal de la tercera alternativa es que la primaria puede enviar dato de información indicando su funcionalidad aún cuando ningún nuevo dato de entrada haya llegado durante un cierto período de tiempo (v.gr., 0.1 seg.). La réplica primaria y la réplica secundaria, por lo tanto, de vez en cuando, (dependiendo del número y frecuencia de dato de entrada) estarán completamente sincronizadas. Puede ser necesario limitar el número de datos de entrada que está en fila para transferencia a la réplica secundaria, puesto que las sobrecargas del sistema servidor de réplica deben evitarse. En tal caso, la réplica primaria tendrá que rechazar cualquier dato de entrada cuando el límite de fila se ha alcanzado. En una modalidad de un sistema servidor de réplica de conformidad con la invención, una réplica primaria incluye una entrada primaria, una salida primaria, un almacenamiento primario, y un procesador primario y una réplica secundaria incluye una entrada secundaria, una salida secundaria, un almacenamiento secundario y un procesador secundario, mediante lo cual la réplica primaria está configurada para transferir datos de entrada recibidos a la réplica secundaria, almacenar el dato de entrada, procesar el dato de entrada para crear dato de salida original y enviar fuera el dato de salida original a través de la salida primaria después de recibir dato de confirmación de que el dato de entrada ha sido recibido por la réplica secundaria, y la réplica secundaria estando configurada para generar el dato de confirmación después de recibir el dato de entrada. La réplica secundaria está configurada además para almacenar el dato de entrada en el almacenamiento secundario y procesar el dato de entrada en el procesador secundario para crear dato de salida de réplica. Se puede anotar aquí que en la presente solicitud se hace una clara distinción entre "almacenar" y "escribir", -en donde la primera indica enviar a memoria intermedia normal en una interfaz de I/O o almacenamiento correspondiente y la última indica inundar o transferencia de dato que consume tiempo similar a una memoria persistente. El dato almacenado en la memoria intermedia o almacenamiento se puede escribir a una memoria a intervalos de tiempo más prolongados (cuando la memoria intermedia o almacenamiento se llena) , pero esto no impedirá las mejoras totales para el sistema servidor de réplica de conformidad con la invención en comparación con sistemas servidores de réplica conocidos. Ventajosamente, la réplica secundaria está configurada además para posponer el procesamiento del dato de entrada en el procesador secundario hasta que cuando menos un siguiente dato de entrada se ha recibido. Los errores sistemáticos de esta manera se evitan. Como se mencionó arriba con relación al método, la réplica secundaria puede esperar 5 o más siguientes datos de entrada antes de procesar el dato de entrada. En la alternativa, el sistema servidor de réplica también puede posponer el procesamiento en la réplica secundaria hasta que el dato de información de la réplica primaria indica que el dato de entrada se ha procesado satisfactoriamente. En otra modalidad del sistema servidor de réplica de conformidad con la invención, el sistema servidor de réplica comprende medios de réplica primarios, medios de réplica secundarios, medios para comunicar internamente entre los medios de réplica primarios y los medios de réplica secundarios y externamente entre los medios de réplica primarios y fuentes externas, los medios para comunicar estando configurados para transferir dato de entrada recibido por los medios de réplica primarios a los medios de réplica secundarios, medios para almacenar el dato de entrada en los medios de réplica primarios, medios para procesar el dato de entrada en los medios de réplica primarios, creando de esta manera dato de salida original, medios para generar dato de confirmación en los medios de réplica secundarios después de recibir el dato de entrada y transferir el dato de confirmación a los medios de réplica primarios a través de los medios para comunicación, medios para dar salida al dato original a través de los medios para comunicación cuando el dato de salida original se ha creado y el dato de confirmación se ha recibido por los medios de réplica primarios. Los medios de réplica secundarios pueden comprender además medios para almacenar el dato de entrada en los medios de réplica secundarios y medios para procesar el dato de entrada en los medios de réplica secundarios, creando de esta manera dato de salida de réplica. En una modalidad preferida, el medio de réplica secundario comprende medios para inhibir al medio para almacenar el dato en el medio de réplica secundario y el medio para procesar el dato de entrada en el medio de réplica secundario hasta que cuando menos un siguiente dato de entrada es recibido del medio de réplica primario a través del medio para comunicación. También para esta modalidad de la invención, el medio de réplica primario puede generar dato de información indicando su estado de proceso y el procesamiento en el medio de réplica secundario se pospone hasta que el dato de información indica que el dato de entrada se ha procesado satisfactoriamente . BREVE DESCRIPCIÓN DE LOS DIBUJOS La Figura 1 es un dibujo esquemático de un sistema servidor de réplica de primera modalidad mostrado en un ambiente de operación para la invención; La Figura 2A muestra en una línea de evento esquemática un ciclo de evento para un estado del sistema servidor de réplica del ramo;
La Figura 2B muestra en una línea de evento esquemática un ciclo de evento para un sistema servidor de réplica de conformidad con la invención; y La Figura 3 es un dibujo esquemático de un sistema servidor de réplica de segunda modalidad mostrado en un ambiente de operación para la invención. DESCRIPCIÓN DETALLADA DE LAS MODALIDADES PREFERIDAS La Figura 1 ilustra generalmente un sistema 100 servidor de réplica de conformidad con la invención. El sistema 100 servidor de réplica comprende una réplica 101 primaria que tiene entre otros un almacenamiento 102 primario para almacenar información y un procesador 103 primario para procesamiento de dato. El almacenamiento 102 primario es de preferencia un almacenamiento de memoria intermedia de clase conocida, pero también podría incluir una memoria de disco duro, un disco CD o DVD en que se puede escribir o cualquier otra capacidad de memoria persistente conocida para datos. A diferencia de los sistemas de réplica del ramo anterior, sin embargo, el sistema 100 servidor de réplica normalmente no se inundará después de cada evento para escribir dato en el disco (aún cuando este puede todavía incluirse - sino que reduciría la mayoría de los efectos positivos de la invención puesto que la inundación normalmente es el paso más limitante de capacidad en el proceso) . La inundación normal cuando la memoria intermedia está llena, desde luego, puede ocurrir (y lo hará) para obtener un registro de transacciones realizadas. El procesador 103 primario podría ser cualquier procesador central del estado del ramo o combinación de procesadores usados en computadoras, servidores, etc. Además, el sistema 100 servidor de réplica comprende una primera réplica 104 secundaria y una segunda réplica 107 secundaria. Básicamente, el sistema 100 servidor de réplica podría comprender cualquier número de réplicas secundarias apropiado para las aplicaciones del sistema. La primera réplica 104 secundaria incluye entre otros un primer almacenamiento 105 secundario y un primer procesador 106 secundario, y la segunda réplica 107 secundaria incluye entre otros un segundo almacenamiento 105 secundario y un segundo procesador 106 secundario, todos los cuales podrían tener el mismo tipo de componentes usados para la réplica 101 primaria. En el sentido de hardware, la réplica 101 primaria y dos réplicas 104, 107 secundarias pueden ser (y de preferencia son) idénticas. La réplica 101 primaria y las réplicas 104, 107 secundarias se comunican internamente a través de una unidad 110 de comunicación y enlace 111 de comunicación. La unidad 110 de comunicación también proporciona comunicación con fuentes 113 externas a través de una red 112 de comunicación. La red 112 de comunicación podría usar diferentes canales de comunicaciones para diferentes fuentes 113 externas, v.gr., a través de Ethernet LAN, teléfono, satélite, etc. Las fuentes 113 externas podrían comprender terminales, computadoras, intercambios electrónicos o cualquier otro dispositivo desde el que el dato que se va a procesar por el sistema 100 servidor de réplica se pueda originar. Las fuentes 113 externas también reciben dato de salida del sistema 100 servidor de réplica. En uso el dato de entrada recibido de las fuentes
113 externas se guía a la réplica 101 primaria a través de la unidad 110 de comunicación y enlace 111 de comunicación. El dato de entrada luego se envía de la réplica 101 primaria a las réplicas 104, 107 secundarias a través de la unidad 110 de comunicación y el enlace 111 de comunicación. De preferencia, el dato de entrada es enviado inmediatamente de la réplica 101 primaria al recibirlo. Similar a la red 112 de comunicación, el enlace 111 de comunicación puede comprender varias clases diferentes de componentes cableados o inalámbricos, principalmente dependiendo de la ubicación de las réplicas 104, 107 secundarias. Por ejemplo, la primera réplica 104 secundaria puede estar colocada en la cercanía de la réplica 101 primaria y usar una conexión de banda amplia, mientras que la segunda réplica 107 secundaria puede estar colocada lejos y enlazada a la réplica 101 primaria a través de satélite. Cuando las réplicas 104, 107 secundarias reciben el dato de entrada, generarán dato de confirmación (conocimiento) que han recibido el dato de entrada y envían el dato de confirmación a la réplica 101 primaria. De preferencia, el conocimiento se hace inmediatamente al recibir el dato de entrada. Entre tanto, los datos de entrada se guardan en el almacenamiento 102 primario y se procesan en el procesador 103 primario en la réplica 101 primaria. Por la presente, el dato de salida original se crea. Sin embargo, este dato de salida no se envía de la réplica 101 primaria sino hasta que recibe el dato de confirmación indicando que el dato de entrada se ha recibido por las réplicas 104, 107 secundarias. Cuando esto ocurre, el dato de salida original se envía a las fuentes 113 externas a través de la unidad 110 de comunicación. Es suficiente para la seguridad del sistema 100 servidor de réplica permitir que la réplica 101 primaria espere el primer conocimiento de una de las réplicas 104, 107 secundarias. Esto puede reducir esencialmente la latencia; cf., el ejemplo anterior con la primera réplica 104 secundaria colocada cerca y conectada a través de un enlace de comunicación de banda ancha rápido (v.gr., Ethernet LAN 100MB) y la segunda réplica 107 secundaria colocada lejos y/o conectada a través de un enlace de comunicación (satélite) . Notablemente, esto reducirá la latencia para eventos individuales o transacciones, es decir, expansión de tiempo de entrada hasta la salida, no el número de transacciones operables por unidad de tiempo. Una vez que la réplica 101 primaria ha enviado el dato de entrada, está lista para recibir nuevo dato de entrada (siguiente dato de entrada) . En línea con lo que ya se describió, una vez que el siguiente dato de entrada es recibido por la réplica 101 primaria, envía el siguiente dato de entrada a las réplicas 104, 107 secundarias y luego prosigue almacenando y procesando este siguiente dato de entrada. Esta forma de operar el sistema 100 de réplica servidor significa que las réplicas 104, 1076 secundarias no estarán normalmente sincronizadas con la réplica primaria. De hecho, la réplica 101 primaria podría estar cientos o miles de eventos adelante de las réplicas 104, 107 secundarias. Esto no ocasiona ningunos problemas con respecto a operación a prueba de falla. La réplica 101 primaria solamente envía dato de salida (original) después de recibir el dato de confirmador de cuando menos una de las réplicas 104, 107 secundarias. De esta manera, una falla en la réplica 101 primaria solamente ocasionará un ligero retraso ya que una de las réplicas 104, 107 secundarias está nombrada como una nueva réplica primaria y se pone al corriente en los eventos todavía no recibidos por la misma. El dato de entrada que las réplicas 104, 107 secundarias ha recibido a través de la réplica 101 primaria se garantiza que sean procesadas en el mismo orden por todas las réplicas (101, 104, 107) . Sin embargo, el último número de dato de entrada recibido por la réplica 101 primaria puede no tener que haber sido transferida a las réplicas 104, 107 secundarias cuando la réplica 101 primaria falla. En tal caso, las fuentes 113 externas pueden enviar nuevamente el dato de entrada a la nueva réplica primaria (una de las réplicas 104, 107 secundarias) . Puesto que hay muchas fuentes 113 externas, el orden del dato de entrada perdido por la réplica 101 primaria puede no ser recibido en el mismo orden por la nueva réplica primaria (104, 107). Esto no importa puesto que ninguna salida fue enviada por la réplica 101 primaria basado en esos datos de entrada perdidos. En ciertos casos cuando las réplicas 104, 107 secundarias reciben el siguiente dato de entrada, se puede asegurar que la réplica 101 primaria no ha cesado de operar debido a cualesquiera errores sistemáticos tales como errores lógicos. Las réplicas 104, 107 secundarias pueden proseguir mediante almacenamiento del dato de entrada en almacenamientos 105, 108 secundarios respectivos y procesar el dato de entrada en el procesador 106, 109 secundario respectivo. Sin embargo, pueden ocurrir situaciones en donde este procedimiento no es apropiado debido a que la réplica 101 primaria recibe y transfiere un número de datos de entrada, v.gr., entrada B, entrada C y entrada D antes de procesar la entrada A. En tal caso, las réplicas 104, 107 secundarias no se pueden dejar procesar la entrada A solamente debido a que reciben la entrada B, puesto que la entrada A todavía puede ocasionar un error sistemático en la réplica 101 primaria. Una forma de resolver esto sería retrasar la transferencia de la entrada B de la réplica 101 primaria hasta que la entrada A se ha procesado satisfactoriamente. Esto, sin embargo, impediría sobre el funcionamiento del sistema y no es preferible. Una alternativa más factible es esperar un número específico de datos de entrada hasta que el procesamiento ocurre en las réplicas 104, 107 secundarias. Por ejemplo, la entrada A no se procesa sino hasta que la entrada E es recibida por las réplicas 104, 107 secundarias. Seleccionando un número razonable de entradas, seleccionadas con relación a tiempo de procesamiento normal, frecuencia de datos de entrada promedio etc., la funcionalidad se puede asegurar. Una posible desventaja de esto es que puede no ser posible detectar cual entrada (v.gr., entrada B o entrada C) que ocasionó una falla específica en la réplica 101 primaria. De esta manera, varios datos de entrada deben ser rechazados a fin de asegurar la funcionalidad de la réplica secundaria que asume el papel de una nueva réplica primaria. Una solución más preferible es hacer que la réplica 101 primaria cree dato de información acerca de su estado de' procesamiento y transfiera este a las réplicas 104, 107 secundarias. Cuando se transfiere la entrad Ab, entrada C, etc., a las réplicas 104, 107 secundarias la réplica 101 primaria añade información de que, v.gr., procesa la entrada A. Una vez que la réplica 101 primaria empieza informando que procesa la entrada B, las réplicas 104, 107 secundarias pueden iniciar el procesamiento de la entrada A. No debe haber dato de entrada en fila para que la réplica 101 primaria procese, todavía puede enviar dato de información a las réplicas 104, 107 secundarias indicando que es operacional (latido) . Esto es necesario en esa situación particular permite que las réplicas 104, 107 secundarias para procesar el último dato de entrada recibido (sabiendo que no ocasionó ninguna falla en la réplica 101 primaria) . De esta manera, la réplica 101 primaria y las réplicas 104, 107 secundarias en ciertos momentos pueden estar en el mismo estado (es decir totalmente sincronizadas) . También permite al sistema 100 de réplica de servidor mantener constantemente una alerta con respecto a la capacidad de operación general. No debe haber ningún dato de información de la réplica 101 primaria durante una cierta expansión de tiempo, se supone que ha fallado y una de las réplicas 104, 107 secundarias se nombrará como una nueva réplica primaria y recibirá todos los datos de entrada de las fuentes 113 externas. También es posible incluir medidas de seguridad adicionales para asegurar que la réplica 101 primaria y las réplicas 104, 107 secundarias operan satisfactoriamente. Retrasando el conocimiento de las réplicas 104,
107 secundarias hasta que estas han procesado el dato de entrada (que hacen al recibir el siguiente dato de entrada o el dato de información apropiado) , se puede hacer una comparación del resultado obtenido (dato de salida original y réplica) por las tres réplicas 101, 104, 107. Si todas las tres han llegado al mismo resultado, todo está bien. Si una tiene un resultado que difiere de las otras dos, esa réplica se detiene (aún cuando sea la réplica 101 primaria) . En caso de que todas las tres réplicas 101, 104, 107 proporcione resultados diferentes, se supone que todas están en falla y el sistema 100 servidor de réplica completo se debe detener y controlar. Esto corresponde a un método de detección de falla conocido también conocido como tolerancia de falla bizantina. En las Figuras 2A y 2B los efectos de ahorro de tiempo de la invención se harán más evidentes. Empezando con la Figura 2A, que muestra los pasos de operación básicos, de un sistema servidor de réplica del estado del ramo. El dato de entrada llega como se indica con la línea 200 a una réplica primaria (representada por la línea 201 de evento) . El dato de entrada se almacena en disco, un procedimiento que toma un cierto tiempo de escritura de disco, representado por la designación Wl. Después de esto, el dato de entrada se transfiere a una réplica secundaria (representado por la línea 202 de evento) . Este proceso toma tiempo, dependiendo en donde está situada la secundaria y se representa como tiempo NI de latencia de red. Nuevamente, el dato de entrada se escribe al disco, acomunado un segundo tiempo de escritura de disco, W2, al tiempo total. Una vez que el dato de entrada también se escribe en la réplica secundaria, se regresa el conocimiento (confirmación) a la réplica primaria. Una segunda latencia de red, N2, se añade al tiempo total para el procedimiento. Finalmente, la réplica primaria puede procesar el dato de entrada, que requiere un tiempo Pl de proceso y salida el resultado como se indica con el número de designación 203. Se debe observar que las líneas 201, 202 de evento no son representativas como indicadores lineales de tiempo real. El tiempo de escritura Wl, W2 es normalmente más prolongado extensamente que el tiempo Pl de proceso, por ejemplo. Las Figuras 2A y 2B se pretende que ilustren los efectos y beneficios de la invención y no un programa de tiempo real de las operaciones de sistemas de réplica de servidor. Todo en uno, el tiempo Wl de escritura, latencia NI de red, tiempo W2 de escritura, latencia N2 de red y tiempo Pl de proceso totaliza un tiempo acumulado Tl=Wl+Nl+W2+N2+Pa requerido para realizar una operación (transacción) . Asimismo en la Figura 2A, un siguiente dato de entrada se indica en líneas punteadas y con el número 204 de designación. El mismo proceso se repite con el siguiente dato de entrada - todo indicado con líneas punteadas - que termina con el dato de salida como se indica con el número 205. En la Figura 2B un aspecto del ahorro de tiempo obtenido a través de la invención se hace evidente. El dato de entrada se indica en 210 y alcanza la réplica primaria (indicada por la línea 211 de evento) . El dato de entrada se transfiere inmediatamente a la réplica secundaria (indicada por la línea 212 de evento) , que toma un cierto tiempo dependiendo de la ubicación de la réplica secundaria. Aquí, se supone que la colocación es la misma que en la Figura 2A. De esta manera requiere que la latencia NI de red transfiera la información. Tan pronto como la réplica secundaria recibe el dato de entrada, el conocimiento (dato de confirmación) se envía nuevamente a la réplica primaria, ocasionando retraso de tiempo de latencia N2 de red. El dato procesado puede salir en 213, es decir, tan pronto como el dato de entrada se procesa, y la confirmación se recibe de la réplica secundaria. Como se puede ver la latencia NI, N2 de red excede en este caso el tiempo de escritura y tiempo de proceso. De esta manera, el tiempo T2 total gastado en una operación (transacción) en este caso totaliza a T2=N1+N2. Los tiempos de proceso y escritura completos para la operación se ha cortado del tiempo total. En este caso, para el evento individual en realidad no importa al tiempo T2 total si se usa o no una escritura de disco inundado. Sin embargo, no usando una escritura de disco inundado aumentará el número o eventos que se pueden procesar por unidad de tiempo. En otras palabras, el siguiente evento puede llegar mucha más temprano que si se usó una escritura de disco inundado. Asimismo en la Figura 2B, el proceso completo después del siguiente dato 214 de entrada se indica en líneas punteadas, terminando con un siguiente dato 215 de salida. Como es evidente de esto, la escritura y procesamiento del dato de entrada en la réplica secundaria no ocurre sino hasta que el siguiente dato 224 de entrada ha alcanzado la réplica secundaria. Esto indica que la primaria todavía es operativa y no ha fallado debido a un error sistemático (tal como división entre cero) . Como también se menciona en conexión con la Figura 1, la réplica primaria podría enviar dato de información respecto a su estado de procesamiento a la réplica secundaria. En tal caso, el almacenamiento y procesamiento en la réplica secundaria ocurrirá una vez que dicho dato de información indica que el dato de entrada se ha procesado satisfactoriamente. Volviendo ahora a la Figura 3, una segunda modalidad preferida de un sistema 300 servidor de réplica se describe esquemáticamente. El sistema 300 servidor de réplica comprende una réplica 301 primaria y una réplica 302 secundaria. La réplica 301 primaria incluye un módulo 303 de comunicación primario, un almacenamiento 304 primario y un procesador 305 primario. La réplica 302 secundaria asimismo incluye un módulo 306 de comunicación secundario, un almacenamiento 307 secundario y un procesador 308 secundario. Como con la primera modalidad en la Figura 1, cualquier componente conocido que permite la comunicación, almacenamiento y procesamiento se podría utilizar. Asimismo, los diferentes componentes podría ser unidades separadas o integradas en una o más unidades. Otras funcionalidades también se pueden incluir dentro de las réplicas 301, 302. El módulo 303 de comunicación primario y el módulo 306 de comunicación secundario están enlazados (por alambre o inalámbricos) para permitir la comunicación entre la réplica 301 primaria y la réplica 302 secundaria. El módulo 303 de comunicación primaria también puede comunicarse con fuentes externas (no mostradas) a través del enlace 309 de comunicación (con alambre o inalámbrico) . En caso de falla de la réplica 301 primaria, la réplica 302 secundaria se convertirá en una nueva réplica primaria. En tal caso una guía 310 capacitará a la réplica 302 secundaria para comunicarse con las fuentes externas. La función de la guía 310 también podría implementarse (hardware o software) en el módulo 303 de comunicación primario y el módulo 306 de comunicación secundario. Cuando el dato de entrada lleva de una fuente externa a través del enlace 309 de comunicación, la réplica 301 primaria transferirá el dato de entrada a la réplica
302 secundaria y6 luego proseguirá almacenando el dato de entrada en el almacenamiento 304 primario y procesará el dato de entrada en el procesador 305 primario. Una vez que se recibe el reconocimiento o dato de confirmación de la réplica 302 secundaria, el dato procesado puede salir nuevamente a las fuentes externas. Cuando un siguiente dato de entrada es recibido y transferido a la réplica 302 secundaria o cuando el dato de información de la réplica 301 primaria indican que el dato de entrada se ha procesado satisfactoriamente, la réplica secundaria puede almacenar y procesar el dato de entrada. Todas las funcionalidades descritas con relación a la Figura 1 son aplicables para esta modalidad también. También son posibles combinaciones entre las modalidades mostradas. Por ejemplo, la modalidad en la Figura 3 puede incluir más de una réplica secundaria y las réplicas en la Figura 1 pueden todas incluir medios de comunicación para la comunicación interna entre réplicas. Otras modalidades son viables con modificaciones sencillas y directas de las modalidades arriba descritas. Estas también se ven como quedando dentro del alcance de la invención, como se describe por las reivindicaciones que se acompañan.