JP2016206865A - Device for making storage areas of multiplexed computer match - Google Patents

Device for making storage areas of multiplexed computer match Download PDF

Info

Publication number
JP2016206865A
JP2016206865A JP2015086392A JP2015086392A JP2016206865A JP 2016206865 A JP2016206865 A JP 2016206865A JP 2015086392 A JP2015086392 A JP 2015086392A JP 2015086392 A JP2015086392 A JP 2015086392A JP 2016206865 A JP2016206865 A JP 2016206865A
Authority
JP
Japan
Prior art keywords
computer
standby
task
storage area
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015086392A
Other languages
Japanese (ja)
Other versions
JP6446315B2 (en
Inventor
成昊 金
Seiko Kin
成昊 金
崇博 大平
Takahiro Ohira
崇博 大平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2015086392A priority Critical patent/JP6446315B2/en
Publication of JP2016206865A publication Critical patent/JP2016206865A/en
Application granted granted Critical
Publication of JP6446315B2 publication Critical patent/JP6446315B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a multiplex system configured with an active system and a standby system with which it is possible to shorten a recovery time in the standby system even when a difference in necessary memory area for data is large.SOLUTION: Having a synchronization process for making external input contents and the contents of events occurring inside a computer match between an active system and a standby system, the multiplex system chooses whether to copy a difference in data from the active system to the standby system or copy input data to a task to the standby system and replay the task at high speed using the input data in the standby system on the basis of the amount of a difference in data to be matched in order to shorten a multiplex system recovery time and the ratio of a task execution time from the start of task processing till a specific processing point where a task state can be ascertained to a time until next task processing starts.SELECTED DRAWING: Figure 13

Description

本発明は、多重化システムにおける現用系と待機系間のデータ一致化装置に関する。   The present invention relates to a data matching apparatus between an active system and a standby system in a multiplexing system.

多重化システムは、業務を実行する現用系計算機と、現用系を監視して異常を検知したときにその業務を引き継ぐ待機系計算機から構成される。この現用系で異常が発生したときに待機系が業務を引き継ぐ一連の処理を系切替処理と呼ぶ。この系切替時間は、システムのダウンタイム時間に直結するため、系切替の時間を短縮する技術が開発されてきた。   The multiplexing system includes an active computer that executes a task and a standby computer that takes over the task when the active system is monitored and an abnormality is detected. A series of processes in which the standby system takes over work when an abnormality occurs in the active system is called a system switching process. Since this system switching time is directly related to the system downtime, a technique for shortening the system switching time has been developed.

その体表的な技術が現用系と待機系の処理を一致化しながら業務を実行する同期システム制御技術である。現用系と待機系ともに同じ処理を行うため、現用系の異常が発生した場合でも、待機系計算機が現用系の業務を引き継ぐための処理が殆ど不要となる。一方、多重系間での同期対象は、業務を実行するタスクの挙動であり、多くの同期システムにおいてはOSレイヤでのスケジュール同期が実施されている。OSレイヤでの同期実装の場合、同期が必要なタスクを特定しない点で汎用性が高いが、スケジューラレベルでの同期が必要なスケジュール同期の実装は複雑であり同期に必要な処理のオーバーヘッドも大きい。そのため、近年、ミドルレイヤでの同期システム実装が注目を浴びている。   Its surface technology is a synchronous system control technology that executes tasks while matching the processing of the active and standby systems. Since both the active system and the standby system perform the same processing, even if an abnormality occurs in the active system, almost no processing is required for the standby computer to take over the work of the active system. On the other hand, a synchronization target between multiple systems is a behavior of a task that executes a business. In many synchronization systems, schedule synchronization is performed in the OS layer. In the case of synchronization implementation in the OS layer, it is highly versatile in that it does not identify tasks that need to be synchronized, but implementation of schedule synchronization that requires synchronization at the scheduler level is complicated and processing overhead required for synchronization is large. . Therefore, in recent years, the synchronization system implementation in the middle layer has attracted attention.

特に、同期処理が必要なタスクが特定でき、そのタスクの順序制御がミドルレイヤ可能な制御システムにおいては、タスクの挙動に影響を及ぼす外部入力とOSレイヤで発生するタイマーやシグナルイベントの内部入力の同期さえ保証できれば容易に同期システムの実装が可能である。   In particular, in a control system in which tasks that require synchronous processing can be identified and the order of the tasks can be controlled in the middle layer, external inputs that affect task behavior and internal inputs for timers and signal events that occur in the OS layer A synchronization system can be easily implemented as long as synchronization can be guaranteed.

一方、多重化システムにおいては系切替時間以外に、異常が発生した計算機を復旧し再び多重系構成に戻す多重系復旧時間もシステムの高信頼性を確保するには欠かせない要素である。特に現用系1台と待機系1台のみで構成される2重系システムにおいては1回の異常発生のみ許容されるシステムとなるため、高可用性や高信頼性の確保のためには可能な限り素早く予備の計算機の立ち上げなどをして多重系復旧を行う必要がある。多重系復旧処理においては、現用系のタスクの内部状態、例えば、共有資源であるメモリや通信ソケット等を復旧先の計算機のタスクの内部状態と一致させる必要がある。タスク内部状態一致処理の汎用的な実現は難しく、多くのシステムの場合、共有メモリを設けてある特定の処理ポイントに到達すると現在のタスクの状態を前記共有メモリ上ですべて書き出すタスクモデルを採用することで解決している。前記タスクモデルの場合、多重系復旧に必要な復旧先への現用系のタスク状態一致化処理は、タスク状態がすべて書き出されている共有メモリの転送することによって実現している。転送された共有メモリの内容を復旧先の計算機のメモリにコピーすることにより現用系計算機で実行されるタスクの状態を復元し、現用系の状態と再同期が可能となる。しかし、前記共有メモリが大きい場合は、1回の転送で復旧処理の終了できず、複数回の転送処理が必要となる。複数転送が発生した場合、転送処理の間に現用系のタスクが再び業務処理を行い特定の処理ポイントへ到達する。   On the other hand, in a multiplexed system, in addition to the system switching time, a multiplexed system recovery time for recovering a computer in which an abnormality has occurred and returning it to the multiplexed system configuration is also an indispensable element for ensuring high system reliability. In particular, a duplex system consisting of only one active system and one standby system is a system that allows only one occurrence of an abnormality, so as much as possible to ensure high availability and high reliability. It is necessary to quickly restore a multiple system by starting up a spare computer. In the multi-system recovery process, it is necessary to make the internal state of the task of the active system, for example, the shared resource, the memory, the communication socket, etc., coincide with the internal state of the task of the recovery destination computer. It is difficult to achieve general-purpose task internal state matching processing, and in many systems, a task model is adopted in which all current task states are written in the shared memory when a specific processing point with shared memory is reached. It is solved by that. In the case of the task model, the task status matching process of the active system to the recovery destination required for the recovery of the multiple system is realized by transferring the shared memory in which all the task statuses are written. By copying the contents of the transferred shared memory to the memory of the computer at the recovery destination, the state of the task executed on the active computer can be restored and resynchronized with the state of the active system. However, when the shared memory is large, the restoration process cannot be completed by one transfer, and a plurality of transfer processes are required. When multiple transfers occur, the active task performs the business process again during the transfer process and reaches a specific processing point.

その時点で転送中の共有メモリ内タスク状態と現在の現用系のタスク状態が異なってしまう。この異なる内容を前記転送処理中の共有メモリとの差分という。前記転送処理が終了すると、次は転送処理中に発生した共有メモリの差分を転送する。前記差分が1回の転送ですむ量まで収束すると多重系復旧処理は終了することができる。   At that time, the task state in the shared memory being transferred is different from the current task state of the active system. This different content is called a difference from the shared memory during the transfer process. When the transfer process is completed, the difference of the shared memory generated during the transfer process is transferred next. When the difference has converged to the amount required for one transfer, the multiple system recovery process can be terminated.

多重系復旧処理として特許文献1では、一定周期を待ち、前記周期内でタスクが処理を終了し次の周期待ちに入った時間を前述した特定の処理ポイントとし、前記周期内の差分作成と転送によるタスクの状態一致化手段が記載されている。   In Patent Document 1, as a multi-system restoration process, a certain period is waited, the task finishes processing within the period and the time when the next period waits is set as the specific processing point described above, and difference creation and transfer within the period are performed. Describes the task status matching means.

特開2009-217505JP2009-217505

特許文献1の方法は、一致化対象のデータのメモリ領域の差分を転送し、多重系復旧を行っているが、タスクによっては、前記メモリ領域をすべて更新する場合がある。この場合、転送する差分の量が多くなり多重系復旧に時間がかかる。   In the method of Patent Document 1, the memory area difference of the data to be matched is transferred and the multiple system recovery is performed. However, depending on the task, the memory area may be updated. In this case, the amount of difference to be transferred increases and it takes time to recover the multiplex system.

タスク挙動に影響を及ぼす入力、例えば、外部入力内容と計算機の内部で発生するイベントの内容を現用系と待機系間で一致させる同期処理を持ち、多重系復旧時間を短縮するために一致化対象となるデータの差分の量及び、タスクの処理開始からタスク状態が確定できる特定の処理ポイントまでのタスク実行時間と次のタスクの処理開始までの時間の割合を基に復旧手段を選択する。前記特定の処理ポイントまでのタスク実行時間より次のタスクの処理開始までの時間の割合が大きい場合、前記同期処理によって現用系と待機系間で一致させるタスクへの入力のログを現用系で作成し、復旧先の計算機へ転送し復旧先の計算機のタスクにて復元する高速リプレイ手段を提供する。高速リプレイは現用系から転送された入力ログから入力データを読出し、復旧先の計算機のタスクへ入力データとして与え、現用系の処理をリプレイ(再現または復元)させ、現用系のタスク状態と一致化させる方法である。前記リプレイ処理は現用系のタスクでは存在した前記特定の処理ポイントから次のタスクの処理開始までの待ち時間をなくすことで現用系のタスクの状態へ追いつく時間を短縮する。   It has a synchronization process that matches the input that affects task behavior, for example, the contents of external input and the contents of events that occur inside the computer, between the active system and the standby system. The recovery means is selected based on the amount of difference between the data and the ratio of the task execution time from the start of task processing to the specific processing point where the task state can be determined and the time until the start of processing of the next task. If the ratio of the time until the start of processing of the next task is larger than the task execution time up to the specified processing point, a log of input to the task to be matched between the active system and the standby system by the synchronous processing is created in the active system And a high-speed replay means for transferring to the restoration destination computer and restoring it by the task of the restoration destination computer. High-speed replay reads the input data from the input log transferred from the active system, gives it as input data to the recovery target computer task, replays (reproduces or restores) the processing of the active system, and matches the task status of the active system It is a method to make it. The replay process shortens the time to catch up with the status of the active task by eliminating the waiting time from the specific processing point existing in the active task to the start of processing of the next task.

本発明によれば、多重系復旧において現用系と待機系(または多重系復旧先)の一致化対象のデータの差分転送手段と、タスク挙動に影響を及ぼす入力のログを現用系から待機系へ転送し待機系で高速リプレイする手段が選択でき、前記データの差分が大きい場合でも多重系復旧時間の短縮が可能である。   According to the present invention, the difference transfer means for data to be matched between the active system and the standby system (or the multiple system recovery destination) in the multi-system recovery, and the input log that affects the task behavior are transferred from the active system to the standby system. A means for transferring and high-speed replaying in the standby system can be selected, and even when the data difference is large, it is possible to shorten the multiplex system recovery time.

本発明の代表的な実施形態におけるハードウェア構成図。The hardware block diagram in the typical embodiment of this invention. 本発明の代表的な実施形態における、ソフトウェアプログラム構成図。The software program block diagram in typical embodiment of this invention. 本発明の代表的な実施形態における、タスク管理テーブル図Task management table diagram in a representative embodiment of the present invention 本発明の代表的な実施形態における、タイマー管理テーブル図Timer management table diagram in a representative embodiment of the present invention 本発明の代表的な実施形態における、シグナル管理テーブル図Signal management table diagram in an exemplary embodiment of the present invention 本発明の代表的な実施形態における、領域管理テーブル図Area management table diagram in a representative embodiment of the present invention 本発明の代表的な実施形態における、同期データ管理テーブル図Synchronous data management table diagram in a representative embodiment of the present invention 本発明の代表的な実施形態における、一致化データ管理テーブル図Matching data management table diagram in a representative embodiment of the present invention 本発明の代表的な実施形態における、タスク処理とタイミング図Task processing and timing diagram in an exemplary embodiment of the invention 本発明の代表的な実施形態における、現用系と待機系間の入力同期処理フロー図。The input synchronous processing flow figure between an active system and a standby system in typical embodiment of this invention. 本発明の代表的な実施形態における、現用系と待機系間の多重系復旧処理フロー図。FIG. 5 is a flowchart of a multi-system restoration process between the active system and the standby system in a representative embodiment of the present invention. 本発明の代表的な実施形態における、高速リプレイ処理フロー図。The high-speed replay process flowchart in typical embodiment of this invention. 本発明の代表的な実施形態における、入力同期ログ作成フロー図。FIG. 6 is an input synchronization log creation flowchart in a representative embodiment of the present invention. 本発明の代表的な実施形態における、入力同期ログ転送処理と待機系の高速リプレイ処理フロー図。FIG. 5 is a flowchart of input synchronous log transfer processing and standby high-speed replay processing in a representative embodiment of the present invention. 本発明の代表的な実施形態における、差分転送処理フロー図。The difference transfer processing flow figure in typical embodiment of this invention. 本発明の代表的な実施形態における、差分作成処理フロー図。The difference creation process flow figure in typical embodiment of this invention. 本発明の代表的な実施形態における、処理時間判定部の処理フロー図。The processing flowchart of the processing time determination part in typical embodiment of this invention. 本発明の代表的な実施形態における、稼動割計算部の処理フロー図Process flow diagram of operation percent calculation unit in a representative embodiment of the present invention 本発明の代表的な実施形態における、記憶領域差分計算部の処理フロー図The processing flow figure of the storage area difference calculation part in typical embodiment of this invention

図1は本発明における多重系を構成するためのハードウェア構成の一例であり、少なくとも1台の現用系計算機10と、少なくとも1台の待機系計算機20から構成される。各計算機は少なくとも、OSを含むソフトウェアプログラムを実行する演算装置11と、前記プログラムおよびその実行に必要なデータを格納する記憶装置12と、多重系間でデータの送受信を行う通信装置1の13を備える。ここで記憶装置12は、例えばRAMやハードディスクなどである。また、通信装置1の13は、例えばLANアダプタなどである。   FIG. 1 shows an example of a hardware configuration for configuring a multiplex system according to the present invention, which includes at least one active computer 10 and at least one standby computer 20. Each computer includes at least an arithmetic device 11 that executes a software program including an OS, a storage device 12 that stores the program and data necessary for the execution, and 13 of the communication device 1 that transmits and receives data between multiple systems. Prepare. Here, the storage device 12 is, for example, a RAM or a hard disk. Moreover, 13 of the communication apparatus 1 is a LAN adapter etc., for example.

現用系計算機10と待機系計算機20は通信装置1の13で通信を行い、通信装置1の13は内部ネットワーク31で接続される。現用系計算機10と待機系計算機20はOSを含むソフトウェアプログラム含め対称的な構成をとる。前記現用系計算機10と待機系計算機20は通信装置2の14で外部ネットワーク32とつながっており、外部ネットワーク32は例えばネットワークスイッチなどで構成され、外部ネットワーク32につながっている外部の計算機とのデータの送受信を行う。   The active computer 10 and the standby computer 20 communicate with each other by the communication device 1 13, and the communication device 1 13 is connected by the internal network 31. The active computer 10 and the standby computer 20 have a symmetric configuration including a software program including an OS. The active computer 10 and the standby computer 20 are connected to the external network 32 by the communication device 2 14, and the external network 32 is configured by, for example, a network switch, etc., and data with an external computer connected to the external network 32 Send and receive.

図2は本発明を実施する一形態におけるソフトウェアプログラムの構成図である。記憶装置内12で記憶され、演算装置11によって実行される。   FIG. 2 is a configuration diagram of a software program according to an embodiment for carrying out the present invention. It is stored in the storage device 12 and executed by the arithmetic device 11.

本実施例においては、現用系計算機10と待機系計算機20間でのデータ一致化の対象は、タスク81がタスクの処理結果とタスク81の内部状態を記録する、後述の領域管理テーブルで管理されるメモリやディスクのブロックである。タスク81は少なくても1つ以上であり、予め実行順序が設定されている。そのため、外部ネットワーク32からの外部入力と前記計算機内で発生するタイマーイベントやシグナル等の内部イベントを現用系計算機10と待機系計算機20間で同期させると、タスク81の処理結果と内部状態は両系において一致することが可能である。以下、本発明を実現するためのソフトウェアプログラムの構成について説明する。   In this embodiment, the target of data matching between the active computer 10 and the standby computer 20 is managed by an area management table (to be described later) in which the task 81 records the task processing result and the internal state of the task 81. Memory or disk block. There is at least one task 81, and the execution order is set in advance. Therefore, if the external input from the external network 32 and internal events such as timer events and signals generated in the computer are synchronized between the active computer 10 and the standby computer 20, the processing result and internal state of the task 81 are both It is possible to agree in the system. Hereinafter, the configuration of the software program for realizing the present invention will be described.

本構成は大きく4つのレイヤで構成されている。OSレイヤと、データ一致化ミドル51と通信ミドル61とタスク管理ミドル71からなるミドルレイヤと前記ミドルレイヤの機能を利用し特定の処理を行うタスク81のタスクレイヤ及び前記ミドルレイヤとタスクレイヤの処理結果や状態を記録しておく管理テーブルレイヤから構成される。OS 41は、スケジュール機能とタイマー機能とソフトウェアシグナル(以下、シグナル)機能と演算装置11と記憶装置12と通信装置13を制御する機能をもつソフトウェアであり、例えばLinux(登録商標)などがある。データ一致化ミドル51は現用系計算機10と待機系計算機20の多重系間でのデータ一致化を実現するソフトウェアプログラムであり、前述したOSの41の機能を活用し、後述する同期データ管理テーブル52の内容を待機系計算機11に送信しデータ一致化を実現する。また、後述する一致化データ管理テーブル53と稼働割計算部54と記憶領域差分計算部55と処理時間判定部56を備え、現用系計算機10または待機系計算機20に障害が発生した場合、障害発生した計算機のタスク81の処理状態を現用系計算機のタスク81の状態に一致化するデータ一致化を実現する。   This configuration is mainly composed of four layers. The OS layer, the middle layer composed of the data matching middle 51, the communication middle 61, and the task management middle 71, the task layer of the task 81 that performs specific processing using the functions of the middle layer, and the processing of the middle layer and the task layer It consists of a management table layer that records results and status. The OS 41 is software having a schedule function, a timer function, a software signal (hereinafter, signal) function, and a function of controlling the arithmetic device 11, the storage device 12, and the communication device 13, and includes, for example, Linux (registered trademark). The data matching middle 51 is a software program that realizes data matching between the multiple systems of the active computer 10 and the standby computer 20, and utilizes the functions of the OS 41 described above, and a synchronous data management table 52 described later. Is sent to the standby computer 11 to realize data matching. Also, it has a matching data management table 53, an operation percentage calculation unit 54, a storage area difference calculation unit 55, and a processing time determination unit 56, which will be described later, and if a failure occurs in the active computer 10 or the standby computer 20, a failure occurs. The data matching is realized by matching the processing state of the task 81 of the selected computer with the state of the task 81 of the active computer.

通信ミドル61は通信装置2から受信したデータをタスクへ引き渡し、また、タスクからのデータを通信装置2で外部ネットワーク32へ送信する処理を行う。タスク管理ミドル71はタスクへ、タスクの起動と停止、タイマー設定、他タスクと共有する記憶領域のメモリの割当及び他タスクへのシグナル送信機能を提供するAPIを備えている。タスク管理ミドル71の前記APIの機能はOS41が提供している機能を活用して実現する。タスクは、少なくても1つ以上存在していてタスク管理ミドル71が提供するAPIを利用して特定の処理を実現する。また、制御系をはじめとする一定周期で同処理を反復的に行うシステムでは、複数のタスクが1つのグループになって、予め決まった順序でシーケンシャルに動作し、目的の処理を遂行するケースが多い。シーケンシャル動作はあるタスクが終了した時点でそのタスクが次に動作すべきタスクの起動をかけることで実現するケースが多く、OSの機能を活用してもよいし、タスク管理ミドル71でAPIでシーケンシャル処理を実現する機能を提供してもよい。   The communication middle 61 delivers the data received from the communication device 2 to the task and performs processing for transmitting data from the task to the external network 32 by the communication device 2. The task management middle 71 includes APIs that provide tasks with functions for starting and stopping tasks, setting timers, allocating memory in a storage area shared with other tasks, and transmitting signals to other tasks. The API functions of the task management middle 71 are realized by utilizing the functions provided by the OS 41. At least one task exists, and a specific process is realized using an API provided by the task management middle 71. In addition, in a system that repeatedly performs the same processing at a constant cycle such as a control system, there are cases where a plurality of tasks are grouped into one group and operate sequentially in a predetermined order to perform a target processing. Many. Sequential operation is often realized by activating the next task to be run when a task is completed, and the OS function may be used. A function for realizing the processing may be provided.

また、タスクの周期動作は処理開始のタイマーを設定することによって、生成する。タイマー設定はOSの機能を活用してもよいし、タスク管理ミドル71でAPIのシーケンシャル処理を実現する機能を提供してもよい。タスク管理ミドル71はタスクからのAPIの呼び出しで後述する各種管理テーブルのそれぞれの値として設定する。また、各種管理テーブルの内容(または値)は同期データ管理テーブル52のデータの内容として設定される。   The periodic operation of the task is generated by setting a process start timer. The timer setting may utilize the function of the OS, or may provide a function for realizing the API sequential processing by the task management middle 71. The task management middle 71 is set as each value of various management tables to be described later by calling an API from the task. The contents (or values) of the various management tables are set as the data contents of the synchronous data management table 52.

図3(a)-(d)はタスク管理ミドル71の管理テーブルの図である。
まず、図3(a)に示すタスク管理テーブル72について説明する。タスクの実行情報はタスク管理ミドル71によりタスク管理テーブルへ格納される。 タスク識別子は記録されたタスクを識別するための情報である。
FIGS. 3A to 3D are diagrams of the management table of the task management middle 71. FIG.
First, the task management table 72 shown in FIG. Task execution information is stored in the task management table by the task management middle 71. The task identifier is information for identifying the recorded task.

IPC識別子はタスクの開始や停止に使われるIPC資源を特定する情報である。タスクからタスク管理ミドル71が受け取り、タスク管理テーブルに格納される。IPC資源は例えばPOSIXのセマフォやメッセージボックスがある。   The IPC identifier is information for specifying an IPC resource used for starting and stopping a task. The task management middle 71 is received from the task and stored in the task management table. Examples of IPC resources include POSIX semaphores and message boxes.

また、IPC資源は、前記タスク管理ミドル71が前記タスクのシーケンシャル処理を実現するために、他のタスクを起動及び停止するために使用される。   The IPC resource is used by the task management middle 71 to start and stop other tasks in order to realize the sequential processing of the tasks.

領域識別子はタスクが使用する記憶領域を識別するための情報で、メモリでもディスクでもよい。タスクの起動時に、前記タスク管理ミドルが前記OSの機能を利用し必要な領域を割当し、その領域を識別するために前記タスク管理ミドルが動的に付与し登録する情報である。この識別子は、前記領域の詳細情報が記録されている後述する領域管理テーブル75を特定するために使用される。   The area identifier is information for identifying a storage area used by a task, and may be a memory or a disk. This is information that the task management middle assigns a necessary area using the functions of the OS and dynamically assigns and registers the task management middle to identify the area when the task is activated. This identifier is used to specify an area management table 75 (to be described later) in which detailed information on the area is recorded.

開始終了は少なくても1つ以上のタスクから構成される周期タスクにおいて、1周期内で最初に動作する先頭タスクと最後に動作する後尾タスクを特定するための情報である。
前記先頭タスク及び後尾タスクを特定する情報設定機能は、前記タスク管理ミドル71が提供する。前記情報登録専用の外部設定ファイルを用意し、前記タスク管理ミドル71の初期処理として前記外部設定ファイルの読み込みにより登録してもよい。
前記先頭タスクには”S”と後尾タスクには”E”という識別子が設定される。それ以外のタスクに対しては”0”と設定される。
The start / end is information for identifying the first task that operates first and the last task that operates last in one cycle in a periodic task composed of at least one task.
The task management middle 71 provides an information setting function for specifying the head task and the tail task. An external setting file dedicated to information registration may be prepared and registered by reading the external setting file as an initial process of the task management middle 71.
An identifier “S” is set for the head task and “E” is set for the tail task. For other tasks, it is set to “0”.

図3(b)はタイマー管理テーブル73の図である。タスクはタイマーによって予め決められた時刻に起動されるものがある。例えば毎日09時00分に行う処理がある場合や50ms毎に行う処理がある場合、タスク管理ミドル71経由で下記の情報を登録する。登録する時刻、周期をOSへ登録し、OSがタイマーを発火されると、そのタイマーイベントを前記タスク管理ミドル71が受信し、登録元のタスクへ通知する。   FIG. 3B is a diagram of the timer management table 73. Some tasks are started at a predetermined time by a timer. For example, when there is a process performed every day at 09:00 or when there is a process performed every 50 ms, the following information is registered via the task management middle 71. The registration time and cycle are registered in the OS, and when the OS fires a timer, the task management middle 71 receives the timer event and notifies the task of registration.

タスク識別子は登録されるタスクを識別するための情報で、OSのPIDに相当するものである。前記タスク管理ミドル71がタイマーイベントの受信時にイベントの通知先を判別するための情報である。   The task identifier is information for identifying a registered task and corresponds to the OS PID. This is information for the task management middle 71 to determine an event notification destination when a timer event is received.

タイマー識別子はタスクが登録した後述する開始時刻、インターバル、のタイマー内容を識別するための情報である。   The timer identifier is information for identifying the timer contents of a start time and an interval described later registered by the task.

開始時刻はタイマーの最初の発火時刻情報である。本実施例は、時間分秒ミリ秒までの設定とする。   The start time is the first firing time information of the timer. In this embodiment, the setting is up to hours, minutes, and milliseconds.

インターバルは周期的にタイマーを発火する時間間隔の情報である。本実施例ではミリ秒の粒度で設定する。   The interval is information on a time interval for periodically firing the timer. In this embodiment, it is set with a granularity of milliseconds.

図3(c)はシグナル管理テーブル74の図である。タスクは他タスクへ送信するシグナルを前記タスク管理ミドル71経由でシグナル管理テーブル74へ登録する。タスク管理ミドル71はOS41のシグナル機能、例えばkillを利用して登録したシグナルの実行を行う。   FIG. 3C is a diagram of the signal management table 74. The task registers a signal to be transmitted to another task in the signal management table 74 via the task management middle 71. The task management middle 71 executes the registered signal using the OS41 signal function, for example, kill.

タスク識別子はシグナル登録元で送信元のアプリを識別する情報である。   The task identifier is information for identifying the transmission source application at the signal registration source.

シグナル識別子はタスクが登録したシグナルを識別するための情報である。   The signal identifier is information for identifying the signal registered by the task.

シグナル内容はタスク管理ミドル71が、利用するOSのシグナル情報である。例えば、POSIXのsiginfo構造体などがある。   The signal content is signal information of the OS used by the task management middle 71. For example, the POSIX siginfo structure.

図3(d)は領域管理テーブル75の図である。タスク管理ミドル71は予め一定領域の記憶領域を確保し、タスクが管理ミドル71へ予め定められたサイズ単位の領域の割当を依頼する。
本実施例ではタスク管理ミドル71が管理している記憶領域の現用系計算機10と待機系計算機20間でのデータ一致化の対象とする。
タスクからタスク管理ミドル71経由で下記の情報を登録する。
FIG. 3D is a diagram of the area management table 75. The task management middle 71 secures a predetermined storage area in advance, and the task requests the management middle 71 to allocate an area in a predetermined size unit.
In this embodiment, the data is to be matched between the active computer 10 and the standby computer 20 in the storage area managed by the task management middle 71.
The following information is registered from the task via the task management middle 71.

領域識別子は割り当てた記憶領域を識別するためにタスク管理ミドル71が付与する情報である。割り当てた後にタスク管理ミドル71はタスク管理テーブル72に割り当てた記憶領域のアドレス情報である開始アドレスと、
タスクから要求された領域のサイズの情報であるサイズを書き込む。
The area identifier is information provided by the task management middle 71 to identify the allocated storage area. After the assignment, the task management middle 71 has a start address which is address information of the storage area assigned to the task management table 72, and
Write the size, which is information about the size of the area requested by the task.

図4(a)(b)はデータ一致化ミドル51の管理テーブル図である。   4A and 4B are management table diagrams of the data matching middle 51. FIG.

図4(a)は現用系計算機10と待機系計算機20間で行われる同期用データ内容を示す同期データ管理テーブルである。前記現用系計算機は、外部ネットワーク32からの入力データ及び計算機内部のイベント発生状態を同期データとして内部ネットワーク31を通じて待機系計算機へ送信する。以下、テーブルの内容について説明する。   FIG. 4 (a) is a synchronization data management table showing the data contents for synchronization performed between the active computer 10 and the standby computer 20. The active computer transmits the input data from the external network 32 and the event occurrence state inside the computer to the standby computer through the internal network 31 as synchronization data. The contents of the table will be described below.

STATUSは同期処理の状態を示す。STARTは同期開始状態でENDは同期終了状態を示す。   STATUS indicates the status of the synchronization process. START indicates a synchronization start state and END indicates a synchronization end state.

SIZEは同期データ管理テーブルに設定されたデータの合計サイズを示す。   SIZE indicates the total size of data set in the synchronous data management table.

データソース識別子は同期対象のデータを識別するもので、外部ネットワークからの入力データや計算機内部のイベントがある。入力データのデータソースには、通信ミドル61、タスク管理テーブル72、タイマー管理テーブル73、シグナル管理テーブル74などがある。   The data source identifier identifies data to be synchronized and includes input data from an external network and an event inside the computer. Data sources of input data include a communication middle 61, a task management table 72, a timer management table 73, a signal management table 74, and the like.

データは同期対象のデータ内容であり、各データソースが提供する内容が設定される。例えば、データソースの通信ミドル61の場合、後述する図6の入力同期処理に必要な入力データ(IN_001)、タスク管理テーブル72の場合、タスク管理テーブル72のIPC識別子情報(IPC_3)、タイマー管理テーブル73の場合、タイマー管理テーブル73に登録している前記タスク管理ミドル71がOSから受信したタイマーイベントのタイマー情報(TR1)、シグナル管理テーブル74の場合、タイマー管理テーブル74に登録している前記タスク管理ミドル71がOSから受信したシグナルイベントのシグナル情報(SIG_1)が設定される。   Data is data contents to be synchronized, and contents provided by each data source are set. For example, in the case of the communication middle 61 of the data source, input data (IN_001) necessary for input synchronization processing of FIG. 6 described later, in the case of the task management table 72, IPC identifier information (IPC_3) of the task management table 72, timer management table In the case of 73, the task management middle 71 registered in the timer management table 73 receives timer information (TR1) of the timer event received from the OS, and in the case of the signal management table 74, the task registered in the timer management table 74. The signal information (SIG_1) of the signal event received by the management middle 71 from the OS is set.

サイズは各データのサイズである。   The size is the size of each data.

ロジカルクロックはテーブルに設定されたデータが発生順序を示す情報であり値が大きいほど発生順は遅い。   The logical clock is information indicating the generation order of data set in the table. The larger the value, the slower the generation order.

発生時刻はデータの発生時刻情報である。1970年からの時間をミリ秒で表している整数である。   The generation time is data generation time information. An integer representing the time since 1970 in milliseconds.

図4(b)は現用系計算機10と待機系計算機20間で行われるデータ一致化のために現用系計算機10から待機系計算機20へ送信するデータ管理情報を示す一致化データ管理テーブルである。現用系計算機10または、待機系計算機20に障害が発生した場合、待機系計算機に交代または前記障害発生した計算機の再起動による多重系復旧の時、復旧対象の計算機と現用系計算機10の処理状態を一致化するために、現用系計算機10から復旧対象計算機へ送信するデータを管理するための情報が設定される。以下、テーブル内容について説明する。   FIG. 4B is a matching data management table showing data management information transmitted from the active computer 10 to the standby computer 20 for data matching performed between the active computer 10 and the standby computer 20. If a failure occurs in the active computer 10 or standby computer 20, the processing status of the computer to be restored and the active computer 10 is restored when the standby computer is replaced or the multiple system is restored by restarting the failed computer In order to make these data consistent, information for managing data transmitted from the active computer 10 to the recovery target computer is set. Hereinafter, the table contents will be described.

一致化データ識別子は現用系計算機10と復旧対象計算機の処理状態の一致化で利用されるデータ種類を示す。LOGは先頭タスクの処理開始から後尾タスクの処理終了までの、同期テーブル管理テーブル52に記録される現用系計算機が処理する入力データとタスク管理ミドル61が処理するOSから通知される内部イベントの内容である。DIFFは先頭タスクが処理する直前の領域管理テーブル75の記憶領域の内容と後尾タスクの処理終了後の前記領域管理テーブル75の記憶領域の内容の差分情報を示す。LOG及びDIFFの作成処理は入力同期ログ作成処理503と差分作成処理903でそれぞれ詳細に説明する。   The coincidence data identifier indicates a data type used for matching the processing states of the active computer 10 and the recovery target computer. LOG is the contents of the internal events notified from the OS processed by the task management middle 61 and the input data processed by the active computer recorded in the synchronization table management table 52 from the start of processing of the first task to the end of processing of the rear task It is. DIFF indicates difference information between the contents of the storage area of the area management table 75 immediately before the head task processes and the contents of the storage area of the area management table 75 after the end task processing is completed. The LOG and DIFF creation processing will be described in detail in the input synchronization log creation processing 503 and the difference creation processing 903, respectively.

データ数はLOGとDIFFの作成された数を示す。初期設定値は0である。管理情報はLOGとDIFFの保存先番地とデータサイズを管理する。保存先番地はLOGとDIFFの保存先の記憶領域の番地を示す。サイズはLOGとDIFFのデータサイズを示す。   The number of data indicates the number of created LOG and DIFF. The initial setting is 0. Management information manages the storage address and data size of LOG and DIFF. The save destination address indicates the address of the storage area where LOG and DIFF are saved. The size indicates the data size of LOG and DIFF.

図5はタスク処理とタイミングの概要で、同期処理にかかわる前記ソフトウェアプログラムの動作タイミングと関連パラメータについて説明する。   FIG. 5 is an outline of task processing and timing, and the operation timing and related parameters of the software program related to the synchronization processing will be described.

周期(T)92はタスクの動作周期である。この周期は、データ一致化ミドル51において、タスク管理テーブル72の開始終了情報から先頭タスクを判別し、タイマー管理テーブル73から該当タスクのタイマーインターバル情報を読み出すことで求められる。   A cycle (T) 92 is a task operation cycle. This period is obtained by determining the head task from the start / end information of the task management table 72 and reading the timer interval information of the corresponding task from the timer management table 73 in the data matching middle 51.

P93は少なくても1つ以上で構成されるタスクのタスクグループの処理時間の合計を示す。タスク管理テーブル72の開始終了情報から先頭タスクを判別し、タイマー管理テーブル73から該当タスクのタイマーインターバル情報を読み出して算出した処理周期開始の時刻から、タスク管理テーブルの開始終了情報から判別した後尾タスクの処理終了を実行した時刻までの時間を示す。   P93 indicates the total processing time of the task group of tasks composed of at least one. The start task is determined from the start / end information of the task management table 72, and the tail task is determined from the start / end information of the task management table based on the processing cycle start time calculated by reading the timer interval information of the corresponding task from the timer management table 73. This shows the time until the time when the process is completed.

Q94は周期待ち時間を示す。後尾タスクの処理終了時刻から、先頭タスクの処理開始までの待ち時間を示す。   Q94 indicates the period waiting time. Indicates the waiting time from the processing end time of the tail task to the start of processing of the head task.

INQ_T95は通信ミドル61が外部ネットワーク32からの入力データをバッファリングする時間を示す。タスクグループの処理開始時間から後述する入力同期通信処理開始までの時間である。   INQ_T95 indicates a time during which the communication middle 61 buffers input data from the external network 32. This is the time from the task group processing start time to the input synchronous communication processing start described later.

ST96は現用系計算機10が待機系計算機20へ同期データ送信するのに必要な時間である。同期データ管理テーブル52のサイズを内部ネットワーク31の通信帯域で割った時間である。前記同期処理通信は本ST 96の値から、前記タスクグループの処理開始時間の直前まで終了するようにデータ一致化ミドル51は同期処理通信開始の時間を制御する。   ST96 is a time required for the active computer 10 to transmit synchronous data to the standby computer 20. This is the time obtained by dividing the size of the synchronous data management table 52 by the communication bandwidth of the internal network 31. The data matching middle 51 controls the time for starting the synchronous processing communication so that the synchronous processing communication ends from the value of ST 96 until just before the processing start time of the task group.

AP制御処理とイベント処理97はタスクグループの処理中でOS 41から発生するタイマーやシグナルイベントをタスク管理ミドルで処理し、タスクグループに通知する。さらに、データ一致化ミドル51へ通知する。この通知によってデータ一致化ミドル51は、計算機内部で発生するイベント情報を同期データ管理テーブルへ設定することが可能である。   The AP control process and event process 97 process a timer or signal event generated from the OS 41 during task group processing by the task management middle and notify the task group. Further, the data matching middle 51 is notified. By this notification, the data matching middle 51 can set event information generated inside the computer in the synchronous data management table.

以下、データ一致化ミドル51の入力同期処理と多重系復旧処理について説明する。   Hereinafter, the input synchronization process and the multiple system restoration process of the data matching middle 51 will be described.

図6は現用系計算機10と待機系計算機20間での外部ネットワーク32からの入力データに関する、データ一致化ミドル51の同期処理を示す。以下、各処理ステップを説明する。   FIG. 6 shows a synchronization process of the data matching middle 51 regarding the input data from the external network 32 between the active computer 10 and the standby computer 20. Hereinafter, each processing step will be described.

ステップ101は初期設定。ミドルレイヤのソフトウェアプログラムの起動等の初期化やタスクの登録等タスクの処理開始のための初期処理を行う。ステップ102はデータ一致化ミドル51はタスク管理ミドル71からのイベント待ちを行う。ステップ103はタスク管理ミドル71からの通知イベントが後尾タスクの処理終了か判断する。通知イベントとしては後述するステップ107で設定したタイマーイベントもあり、タイマーイベントの場合、後述するステップ111の処理を行う。ステップ104はステップ103で後尾タスクの処理終了であれば(Y)、処理終了の時刻T1を取得する。ステップ105はタスク管理テーブル72の開始終了情報から先頭タスクの識別子を読出し、タイマー管理テーブル73のタイマーインターバル情報から先頭タスクの次の処理開始時刻T2を算出する。ステップ106は同期通信処理時間STと前記T2とT1の差から算出した周期待ち時間Qの大きさを比較する。   Step 101 is the initial setting. Performs initial processing to start task processing, such as initialization of middle layer software programs and task registration. In step 102, the data matching middle 51 waits for an event from the task management middle 71. In step 103, it is determined whether the notification event from the task management middle 71 is the end of processing of the tail task. The notification event includes a timer event set in step 107 described later. In the case of a timer event, processing in step 111 described later is performed. In step 104, if the processing of the tail task is ended in step 103 (Y), the processing end time T1 is acquired. In step 105, the identifier of the head task is read from the start / end information of the task management table 72, and the next processing start time T2 of the head task is calculated from the timer interval information of the timer management table 73. Step 106 compares the synchronous communication processing time ST with the period waiting time Q calculated from the difference between T2 and T1.

ステップ107はSTがQより小さい場合(Y)、同期通信処理開始タイマーを、OS41へ設定する。タイマー発火時間は、QとSTの差分である。このように同期通信処理開始を遅らせることで、通信ミドル61がバッファリングする入力データの量を大きくすることが可能である。可能であれば1回の同期通信処理で処理する入力データの量を大きくすることで、同期通信で発生するオーバーヘッドの軽減とシステムの応答性の向上が図れる。次にステップ102へ戻る。
ステップ111はSTがQより小さくない場合(N)、入力データの同期をするための同期通信処理を行う。まず、データ一致化ミドル内部で管理しているロジカルクロックLCに1を加算する。
In step 107, if ST is smaller than Q (Y), a synchronous communication processing start timer is set in OS41. The timer firing time is the difference between Q and ST. By delaying the start of synchronous communication processing in this way, the amount of input data buffered by the communication middle 61 can be increased. If possible, by increasing the amount of input data processed in one synchronous communication process, overhead generated in synchronous communication can be reduced and system responsiveness can be improved. Then, the process returns to step 102.
In step 111, when ST is not smaller than Q (N), synchronous communication processing for synchronizing input data is performed. First, 1 is added to the logical clock LC managed in the data matching middle.

ステップ112は通信ミドル61がバッファリングしていた入力データを同期データ管理テーブル52に設定する。入力データは1つ以上であってもよい。テーブルのデータ識別子は通信ミドルで、データは入力データで、サイズはデータのサイズでロジカルクロックにはステップ111で加算したロジカルクロックを、発生時刻は現在時刻を設定する。ステップ113はステップ112で設定した同期データ管理テーブル52を待機系計算機20へ送信する。また、同期データ管理テーブル52のSTATUSにSTARTを設定し入力同期の開始を示す。   In step 112, the input data buffered by the communication middle 61 is set in the synchronous data management table 52. There may be one or more input data. The data identifier of the table is communication middle, the data is input data, the size is the size of the data, the logical clock added in step 111 is set as the logical clock, and the current time is set as the generation time. In step 113, the synchronous data management table 52 set in step 112 is transmitted to the standby computer 20. Also, START is set in STATUS of the synchronization data management table 52 to indicate the start of input synchronization.

ステップ114は待機系計算機20からの入力同期完了通知を待つ。ステップ115は同期データ管理テーブル52のSTATUSに入力同期の終了を示すENDに設定し、ステップ102へ戻る。   Step 114 waits for an input synchronization completion notification from the standby computer 20. In step 115, STATUS of the synchronization data management table 52 is set to END indicating the end of input synchronization, and the process returns to step 102.

一方、待系計算機20はステップ113に対して以下の処理を行う。ステップ201は現用系計算機10からの同期データを受信する。ステップ202は同期データから入力データ情報を読出し、待機系計算機20の通信ミドル61のバッファリングした入力データとの整合性処理を行う。例えば、受信した同期データからの入力データのシリアル番号等の順の合わせ、待機系計算機20の通信ミドル61のバッファリングした入力データの並べ変え処理がある。待系計算機20のデータ一致化ミドルは通信ミドル61へ入力処理開始通知をし、通信ミドル61は待機系計算機のタスクへ入力データを渡す。それによって、タスクは処理開始を行う。前述したように、前現用系計算機10と待機系計算機20は同じソフトウェアプログラム構造を持っており、同じ処理順序でタスク81を動作させているため、同じ入力データをタスクへ引き渡すことで、タスクの処理結果及び内部状態は一致させることができる。ステップ203は入力同期完了を現用系計算機10へ送信する。   On the other hand, the standby computer 20 performs the following processing for step 113. Step 201 receives synchronization data from the active computer 10. In step 202, input data information is read from the synchronization data, and consistency processing with the buffered input data of the communication middle 61 of the standby computer 20 is performed. For example, there is a process of rearranging the buffered input data of the communication middle 61 of the standby computer 20 in order of the serial numbers of the input data from the received synchronous data. The data matching middle of the standby computer 20 notifies the communication middle 61 of the input processing start, and the communication middle 61 passes the input data to the task of the standby computer. Thereby, the task starts processing. As described above, since the former active computer 10 and the standby computer 20 have the same software program structure and operate the task 81 in the same processing order, the same input data is transferred to the task, so that the task The processing result and the internal state can be matched. In step 203, input synchronization completion is transmitted to the active computer 10.

図7は、現用系計算機10または待機系計算機20に障害が発生した場合、障害発生した前記計算機を復旧する処理の流れを示す。ステップ301は障害復旧が必要な待機系計算機20からの復旧要求を待つ。ステップ302は待機系計算機20からの復旧要求がある場合、後尾タスク81の処理終了を待つ。復旧処理は、現用系計算機10のタスク81の処理に影響を及ばないように周期待ち時間Q94の時間を利用して行う。   FIG. 7 shows the flow of processing for recovering the failed computer when a failure occurs in the active computer 10 or the standby computer 20. Step 301 waits for a recovery request from the standby computer 20 that requires failure recovery. Step 302 waits for the end of processing of the tail task 81 when there is a recovery request from the standby computer 20. The restoration process is performed using the time of the period waiting time Q94 so that the process of the task 81 of the active computer 10 is not affected.

ステップ303は領域管理テーブル75の記憶領域の内容をすべてメモリにコピーする。ステップ304はコピーしたメモリを待機系計算機20へ転送する。転送処理のオーバーヘッドの軽減を考え、転送処理専用の子プロセスを生成し、タスクが実行している別の演算装置11のコアで実行してもよい。ステップ305は後述する高速リプレイ前処理を行う。本実施例では、後述する高速リプレイ処理は子プロセスを生成し前記の別コアで実施する例を示す。この場合、本ステップでは、高速リプレイ処理の子プロセスへの前処理開始通知となる。前処理開始通知はUNIX(登録商標) DOMAIN等のプロセス間通信機構等を利用する。   Step 303 copies all the contents of the storage area of the area management table 75 to the memory. In step 304, the copied memory is transferred to the standby computer 20. In consideration of reducing overhead of the transfer process, a child process dedicated to the transfer process may be generated and executed by the core of another arithmetic device 11 on which the task is executed. In step 305, high-speed replay preprocessing described later is performed. In the present embodiment, an example in which a high-speed replay process to be described later is performed by generating a child process and using the above-described another core. In this case, in this step, a pre-processing start notification is sent to the child process of the high-speed replay processing. The pre-processing start notification uses an interprocess communication mechanism such as UNIX (registered trademark) DOMAIN.

ステップ306は後述する差分転送前処理を行う。本実施例では、後述する差分転送処理は子プロセスを生成し前記の別コアで実施する例を示す。この場合、本ステップでは、差分転送処理の子プロセスへの前処理開始通知となる。ステップ307はステップ304で送信したメモリのコピー完了受信を待つ。送信メモリのコピーは待機系計算機20で実行されコピー完了を現用系計算機10へ通信する。詳細は後述する。   In step 306, differential transfer pre-processing described later is performed. In the present embodiment, a differential transfer process described later is an example in which a child process is generated and executed by the another core. In this case, in this step, a pre-process start notification is sent to the child process of the differential transfer process. Step 307 waits for the copy completion reception of the memory transmitted in step 304. The copy of the transmission memory is executed by the standby computer 20, and the copy completion is communicated to the active computer 10. Details will be described later.

ステップ308ではメモリコピー完了を受信すると、ステップ304からステップ307までに現用系計算機10のタスクが処理した周期T92の合計時間RD311の間に変更された記憶領域の内容の復旧手段を選定し、復旧処理を行う処理時間判定部56を呼び出す。処理時間判定部56による復旧手段の選択と復旧処理は後述する。   In step 308, when the memory copy completion is received, the recovery means for the contents of the storage area changed during the total time RD311 of the cycle T92 processed by the task of the active computer 10 from step 304 to step 307 is selected and restored. The processing time determination unit 56 that performs processing is called. Selection of recovery means and recovery processing by the processing time determination unit 56 will be described later.

一方、待機系計算機20はステップ301に対して以下の処理を行う。ステップ401は待機系計算機20は初期設定処理として、ステップ101と同様に、ミドルレイヤのソフトウェアプログラムの起動等の初期化やタスクの登録等タスクの処理開始のための初期処理を行う。ステップ402は現用系計算機10のタスク81との処理結果及び内部状態を一致させ、多重系の復旧するために、現用系計算機10へ復旧要求送信を行う。要求送信によって、ステップ301からの処理が現用系計算機10にて行われる。ステップ403はメモリコピー用のメモリ内容の受信を待つ。ステップ404は領域管理テーブル75から記憶領域情報を読出し、受信したメモリ内容のコピー先を確認する。   On the other hand, standby computer 20 performs the following processing for step 301. In step 401, as the initial setting process, the standby computer 20 performs an initial process for starting a task process such as initialization of a middle layer software program and registration of a task, as in step 101. In step 402, the processing result and the internal state of the active computer 10 are matched with the task 81, and a recovery request is transmitted to the active computer 10 in order to recover the multiplexed system. The processing from step 301 is performed in the active computer 10 by request transmission. Step 403 waits for reception of memory contents for memory copy. Step 404 reads the storage area information from the area management table 75 and confirms the copy destination of the received memory contents.

ステップ405は受信したメモリを読出し領域にコピーする。ステップ406は現用系計算機10へメモリコピー完了を送信する。ステップ407はステップ308で選定された復旧処理から復旧処理イベントを受信し、復旧処理を行う。詳細は後述する。   Step 405 copies the received memory to the read area. In step 406, the memory copy completion is transmitted to the active computer 10. In step 407, a recovery process event is received from the recovery process selected in step 308, and the recovery process is performed. Details will be described later.

図8は高速リプレイ処理を示す。ステップ501は処理要求を待つ。処理要求として、ステップ305からの高速リプレイ前処理の要求と、ステップ308にて復旧手段として高速リプレイが選定された場合、後述する入力同期ログ転送要求がある。ステップ502はステップ305からの高速リプレイ前処理の要求か判断する。ステップ503は高速リプレイ前処理の要求の場合(Y)、入力同期ログ作成処理を行う。本実施例では入力同期ログ作成処理のオーバーヘッドを考え、入力同期ログ作成処理専用の子プロセスを生成し、タスクが実行している別の演算装置11のコアで実行する。
入力同期ログは、図6で示した入力同期処理で設定した同期データ管理テーブルのログと計算機の内部イベントのログからなるものである。処理詳細は後述する。ステップ511は入力同期ログ転送要求の場合(N)、入力同期ログ転送処理を行う。処理詳細は後述する。
FIG. 8 shows the fast replay process. Step 501 waits for a processing request. As processing requests, there is a request for high-speed replay pre-processing from step 305 and an input synchronous log transfer request to be described later when high-speed replay is selected as a recovery means in step 308. In step 502, it is determined whether the request for the high-speed replay preprocessing from step 305 is required. In step 503, in the case of a request for high-speed replay preprocessing (Y), input synchronization log creation processing is performed. In this embodiment, considering the overhead of the input synchronization log creation process, a child process dedicated to the input synchronization log creation process is generated and executed by another core of the arithmetic device 11 on which the task is executed.
The input synchronization log is composed of a log of the synchronous data management table set by the input synchronization process shown in FIG. 6 and a log of internal events of the computer. Details of the process will be described later. In step 511, in the case of an input synchronization log transfer request (N), input synchronization log transfer processing is performed. Details of the process will be described later.

図9はステップ503の入力同期ログ作成処理を示す。ステップ601は入力同期ログ作成終了通知受信かを判断する。ステップ602は入力ログ作成終了通信を受信した場合(Y)、入力同期ログ作成を終了する。ステップ611は入力ログ作成終了通信を受信してない場合(N)、図6の入力同期通信処理(ST)の終了を待つ。終了の判断は、同期管理テーブル52のSTATUS情報を読出し、同期が完了しているかどうか判断する。STATUS情報がENDであれば同期完了と判断しステップ612に進む。   FIG. 9 shows the input synchronization log creation processing in step 503. Step 601 determines whether an input synchronization log creation end notification has been received. In step 602, when the input log creation completion communication is received (Y), the input synchronization log creation is terminated. Step 611 waits for the end of the input synchronous communication process (ST) in FIG. 6 when the input log creation end communication has not been received (N). The end determination is made by reading the STATUS information in the synchronization management table 52 and determining whether the synchronization is complete. If the STATUS information is END, it is determined that the synchronization is completed, and the process proceeds to step 612.

ステップ612は同期データ管理テーブル52の内容をコピーし、同期データ管理テーブル52の新規インスタンスをメモリ上で作成する。コピーによって新規インスタンスの同期データ管理テーブル52には、現時点で外部ネットワーク32からの入力データが設定される。ステップ613は前記データ一致化ミドル51の内部ロジカルクロックLCに1を加算し、現在時刻を取得し、新規作成した同期データ管理テーブル52のロジカルクロックと発生時刻の情報に設定する。   Step 612 copies the contents of the synchronous data management table 52 and creates a new instance of the synchronous data management table 52 on the memory. As a result of copying, the input data from the external network 32 is set in the synchronization data management table 52 of the new instance at the present time. In step 613, 1 is added to the internal logical clock LC of the data matching middle 51, the current time is acquired, and the information is set in the logical clock and generation time information of the newly created synchronous data management table 52.

ステップ614はタスク管理ミドル71からのタイマーやシグナル発生イベントの通知を待つ。多重系復旧時は、同期データ管理テーブル52の内容コピーによる入力データだけではなく、入力データを処理するタスク81の処理に影響を与えるタイマーイベントやシグナルイベントの発生内容も内部入力として活用することで、待機系計算機20のタスク81の状態を、現用系計算機10の入力ログの内容でリプレイできる。ステップ615は前記タスク管理ミドル71からのイベント通知があるか判断する。ステップ616はイベント通知があれば(Y)、データ一致化ミドル51の内部ロジカルクロックLCに1を加算し、現在時刻を取得する。ステップ617はイベントがタイマーの場合、同期データ管理テーブル52のデータソース情報を、73で設定し、タイマー管理テーブル73から同タイマー識別子、例えばTR1に設定しているタイマー情報をデータとして設定する。また、そのデータのサイズTR_SIZEをサイズに設定する。またステップ616で取得したロジカルクロックと現在時刻を発生時刻として設定する。イベントがシグナルの場合は、前シグナル管理テーブル74をもって同様な処理を行う。次に、同期データ管理テーブル52のSIZE情報に設定したデータのサイズを加算する。   Step 614 waits for notification of a timer or signal generation event from the task management middle 71. At the time of multi-system recovery, not only the input data by copying the contents of the synchronous data management table 52 but also the contents of occurrence of timer events and signal events that affect the processing of the task 81 that processes the input data can be used as internal inputs. The state of the task 81 of the standby computer 20 can be replayed with the contents of the input log of the active computer 10. Step 615 determines whether there is an event notification from the task management middle 71. If there is an event notification in step 616 (Y), 1 is added to the internal logical clock LC of the data matching middle 51 to obtain the current time. In step 617, when the event is a timer, the data source information of the synchronous data management table 52 is set in 73, and the timer identifier set in the timer identifier, for example, TR1, is set as data from the timer management table 73 as data. Also, the size TR_SIZE of the data is set to the size. In addition, the logical clock and the current time acquired in step 616 are set as the generation time. If the event is a signal, similar processing is performed using the previous signal management table 74. Next, the set data size is added to the SIZE information in the synchronous data management table 52.

ステップ621はイベント通知がなければ(N)、タスク管理ミドル71からの通知により、後尾タスクの処理が終了したか判断する。判断がNであれば、ステップ614に戻りイベント通知を待つ。判断がYであれば、ステップ622に進む。   In step 621, if there is no event notification (N), it is determined by the notification from the task management middle 71 whether the processing of the tail task is completed. If the determination is N, the process returns to step 614 to wait for event notification. If the determination is Y, go to step 622.

ステップ622は図4(b)の一致化データ管理テーブルの一致化データ識別子LOGの管理情報の保存先番地に前記ステップ612で作成したメモリの番地情報を設定し、そのメモリ上でコピーされた同期データ管理テーブル52のSIZE情報を管理情報のサイズに設定する。また、前記LOGのデータ数に1を加算する。次に、ステップ601に戻る。このステップで新規インスタンスの同期データ管理テーブル52はステップ304からタスクが処理したR回目、R+1回目のように、処理周期R+n回目の周期の入力同期ログの入力.logとしてメモリ上に保存される。   In step 622, the address information of the memory created in step 612 is set in the storage address of the management information of the matching data identifier LOG in the matching data management table of FIG. 4 (b), and the synchronization copied on the memory The size information of the data management table 52 is set to the size of the management information. Also, 1 is added to the number of data in the LOG. Next, the process returns to step 601. At this step, the synchronization data management table 52 of the new instance is input to the input synchronization log of the processing cycle R + n times, such as the Rth and R + 1 times processed by the task from step 304. Saved.

図10は図9で作成した入力同期ログの転送と待機系計算機20の高速リプレイ処理を示す。まず、ステップ511の入力同期ログ転送処理を説明する。ステップ701は図9で作成したすべての入力同期ログを転送する。ステップ304と同様にタスク81が実行している別の演算装置11のコアで実行している転送処理専用の子プロセスを利用して転送してもよい。   FIG. 10 shows the transfer of the input synchronization log created in FIG. 9 and the high-speed replay processing of the standby computer 20. First, the input synchronization log transfer process in step 511 will be described. Step 701 transfers all input synchronization logs created in FIG. Similarly to step 304, transfer may be performed using a child process dedicated to transfer processing that is executed in the core of another arithmetic device 11 that is being executed by the task 81.

ステップ702は待機系計算機20からリプレイ処理完了通知を待つ。ステップ703は転送が必要な前記入力同期ログがあるか判断する。ステップ702のリプレイ完了待ちの間に作成された入力同期ログが存在するかを判断するためである。もし、存在すれば(Y)、ステップ701に戻る。ステップ711は転送すべき入力同期ログがなければ(N)、図8のステップ503の処理に対して入力同期ログ作成終了通知を行う。ステップ712は入力同期ログ転送処理を終了する。   Step 702 waits for a replay processing completion notification from the standby computer 20. Step 703 determines whether there is an input synchronization log that needs to be transferred. This is to determine whether there is an input synchronization log created during the replay completion waiting in step 702. If it exists (Y), the process returns to step 701. In step 711, if there is no input synchronization log to be transferred (N), an input synchronization log creation end notification is sent to the processing in step 503 in FIG. Step 712 ends the input synchronization log transfer process.

一方、待系計算機20は前記ステップ701に対して以下の処理を行う。ステップ801は現用系計算機10から転送された入力同期ログを受信し、そのログ内容を読みだす。ステップ802は受信した入力同期ログの数分だけ下記ステップを繰り返す。ステップ803はログ数分の処理が終了されると(Y)、リプレイ終了通知を現用系計算機10へ送信する。ステップ811は受信した入力同期ログから同期データ管理テーブル52のデータソース情報から61の入力データをすべて読出し、待機系計算機20の通信ミドル61へ入力データを渡す。   On the other hand, the standby computer 20 performs the following processing for step 701. In step 801, the input synchronization log transferred from the active computer 10 is received and the contents of the log are read. Step 802 repeats the following steps for the number of received input synchronization logs. In step 803, when processing for the number of logs is completed (Y), a replay end notification is transmitted to the active computer 10. In step 811, all the input data 61 is read from the data source information of the synchronous data management table 52 from the received input synchronization log, and the input data is transferred to the communication middle 61 of the standby computer 20.

また、待系計算機20のデータ一致化ミドル51は通信ミドル61へ入力処理開始通知をし、通信ミドル61は待機系計算機のタスクへ入力データを渡す。それによって、タスクは処理開始を行う。前述したように、前現用系計算機10と待機系計算機20は同じソフトウェアプログラム構造を持っており、同じ処理順序でタスク81を動作させているため、同じ入力データをタスクへ引き渡すことで、タスクの処理結果及び内部状態は一致させることができる。図6の入力同期処理に示したステップ113の現用系計算機10のデータ一致化ミドル51から送信される入力データの代わりに、本ステップでは前記ステップ801で受信した入力ログから取り出し、待機系計算機20の通信ミドル61へ入力データを渡すことで入力同期を実現している。   The data matching middle 51 of the standby computer 20 notifies the communication middle 61 of input processing start, and the communication middle 61 passes the input data to the task of the standby computer. Thereby, the task starts processing. As described above, since the former active computer 10 and the standby computer 20 have the same software program structure and operate the task 81 in the same processing order, the same input data is transferred to the task, so that the task The processing result and the internal state can be matched. Instead of the input data transmitted from the data matching middle 51 of the active computer 10 in step 113 shown in the input synchronization processing of FIG. 6, in this step, the standby computer 20 takes out from the input log received in the step 801. The input synchronization is realized by passing the input data to the communication middle 61.

ステップ812は受信した入力同期ログに対して同期データ管理テーブル52のデータソース識別子に記載のタイマー管理テーブルのタイマーイベントや前記データソース識別子に記載のシグナル管理テーブルにあるシグナルイベントログを、ロジカルクロックLCの値が小さい順に並べ替える。また、同期データ管理テーブル52のデータソース識別子に記載の通信ミドルに設定されているデータ(IN_001)の設定時刻である発生時刻情報に対して、イベントログの発生の相対時間を算出し、待機系計算機20のOS41にタイマーイベント設定を行う。ステップ813はステップ812で設定したタイマーイベントか待機系計算機20の後尾タスクの終了イベントかを判断する。   In step 812, for the received input synchronization log, the timer event of the timer management table described in the data source identifier of the synchronous data management table 52 and the signal event log in the signal management table described in the data source identifier are converted to the logical clock LC. Sort in ascending order of values. Also, the event log generation relative time is calculated for the occurrence time information that is the set time of the data (IN_001) set in the communication middle described in the data source identifier of the synchronous data management table 52, and the standby system Set timer event in OS41 of computer 20. In step 813, it is determined whether the timer event set in step 812 or the end event of the trailing task of the standby computer 20.

ステップ814は設定したタイマーイベントか判断する。もし、後尾タスクの終了イベントであれば(N)、ステップ811に戻ると、先頭タスクの開始を行う。つまり、高速リプレイ処理は、821に示すように周期待ち時間Q94を省くことで、現用系計算機10のタスクの状態に追いつく時間を短縮する。短縮度合いは、タスク81の処理時間P93に対する周期待ち時間Q94の割合に比例する。詳細は、図13の復旧手段選択処理にて説明する。ステップ815は設定したタイマーイベントであれば(Y)、待機系計算機20のタスク管理ミドル71へタイマー/シグナルイベントを通知する。図5のAP制御処理とイベント処理97に示したように、現用系計算機10で、タイマー/シグナルイベント通知を行うOS41の処理を、本処理でデータ一致化ミドル51が行う。   Step 814 determines whether the timer event has been set. If the event is an end event of the tail task (N), the process returns to step 811 to start the top task. In other words, the high-speed replay process reduces the time for catching up with the task status of the active computer 10 by omitting the periodic waiting time Q94 as indicated by 821. The degree of shortening is proportional to the ratio of the periodic waiting time Q94 to the processing time P93 of the task 81. Details will be described in the recovery means selection process of FIG. If step 815 is a set timer event (Y), the timer / signal event is notified to the task management middle 71 of the standby computer 20. As shown in the AP control processing and event processing 97 in FIG. 5, the data matching middle 51 performs the processing of the OS 41 that performs timer / signal event notification in the active computer 10 in this processing.

図11はもう一つの多重系復旧手段である差分転送処理を示す。ステップ901は処理要求を待つ。処理要求として、ステップ306からの差分転送前処理の要求と、ステップ308にて復旧手段として差分転送が選定された場合の、差分転送要求がある。ステップ902は前記ステップ306からの差分転送前処理の要求か判断する。ステップ903は処理要求が差分転送前処理であれば(Y)、差分作成処理を行う。ステップ304のように、差分作成処理のオーバーヘッドを考え、差分作成処理専用の子プロセスを生成し、タスクが実行している別の演算装置11のコアで実行してもよい。詳細は後述する。   FIG. 11 shows differential transfer processing which is another multiplex system recovery means. Step 901 waits for a processing request. As processing requests, there are a request for differential transfer pre-processing from step 306 and a differential transfer request when differential transfer is selected as a recovery means in step 308. In step 902, it is determined whether the request for differential transfer preprocessing from step 306 is required. In step 903, if the processing request is a difference transfer pre-process (Y), a difference creation process is performed. As in step 304, considering the overhead of the difference creation process, a child process dedicated to the difference creation process may be generated and executed by the core of another arithmetic device 11 on which the task is executed. Details will be described later.

ステップ912は差分転送要求の場合(N)、ステップ903で作成した転送可能な差分があるか判断する。ステップ912は差分が存在すれば(Y)、ステップ913へ進む。なければ(N)ステップ921の差分作成終了へ進む。ステップ913はステップ903で作成した差分を待機系計算機20へ転送する。ステップ304のように、転送処理のオーバーヘッドを考え、転送処理専用の子プロセスを生成し、タスク81が実行している別の演算装置11のコアで実行してもよい。   In step 912, in the case of a difference transfer request (N), it is determined whether there is a transferable difference created in step 903. If there is a difference in step 912 (Y), the process proceeds to step 913. If not (N), the process proceeds to the end of difference creation in step 921. In step 913, the difference created in step 903 is transferred to the standby computer 20. As in step 304, considering the overhead of the transfer process, a child process dedicated to the transfer process may be generated and executed by the core of another arithmetic device 11 on which the task 81 is executing.

ステップ914は待機系計算機20からの差分コピー完了通知を待つ。待機系計算機20は現用系計算機10が送信した差分をコピーし、差分コピー完了を現用系計算機10へ通知する。差分コピー完了通知を受信すると、ステップ911へ戻る。ステップ921はステップ903の処理に対して差分作成終了通知を行い、ステップ901へ戻る。   Step 914 waits for a differential copy completion notification from the standby computer 20. The standby computer 20 copies the difference transmitted by the active computer 10 and notifies the active computer 10 of the completion of the differential copy. When the differential copy completion notification is received, the process returns to step 911. In step 921, a difference creation completion notification is sent to the processing in step 903, and the process returns to step 901.

図12はステップ903の差分作成処理を示す。ステップ1001は差分作成終了通知受信したか判断する。ステップ1002は終了通知を受信した場合(Y)、差分作成処理を終了する。ステップ1011は終了通知を受信しなかった場合(N)、ステップ304で送信した記憶領域の更新の監視フラグがONされているか判断する。ステップ1012は記憶領域の更新の監視フラグがONの場合(Y)、後尾タスク81の処理終了が実行されたか確認する。処理終了が実行されていなければステップ1001へ戻る。   FIG. 12 shows the difference creation process in step 903. Step 1001 determines whether or not a difference creation end notification has been received. In step 1002, when the end notification is received (Y), the difference creating process is ended. If the end notification is not received in step 1011 (N), it is determined whether or not the storage area update monitoring flag transmitted in step 304 is ON. In step 1012, when the storage area update monitoring flag is ON (Y), it is confirmed whether the processing end of the tail task 81 has been executed. If the process has not been completed, the process returns to step 1001.

ステップ1013は記憶領域の更新をチェックする。例えば、記憶領域がメモリでOS41がLinux(登録商標)であれば、/proc/pid/pagemapのファイル内容を確認することでミドルレイヤでもチェックは可能である。ステップ1014は記憶領域の更新があった場合、内容をコピーする。このステップでステップ304からタスクが処理したR回目、R+1回目のように、処理周期R+n回目のまでの処理の差分が1031のように差分.glbとしてメモリ上で保存される。もし、記憶領域がメモリであれば、ページ単位で記録され、ページ単位サイズ、例えば4KBの複数の差分.glbが作成される。差分.glbの数は、変更された記憶領域のサイズをページ単位で割った整数となる。そのため、前記タスク81の処理によっては、データ一致化対象の領域の全サイズの量の差分.glbが作成される可能性がある。この差分の量が一定量を超えると差分転送による多重系復旧において復旧時間が長くなり、復旧不可能となる場合がある。そのため、図10の高速リプレイによる復旧処理に切り替える判断が必要となる。その判断は、図13の復旧手段選択処理にて説明する。   Step 1013 checks for storage area updates. For example, if the storage area is the memory and the OS 41 is Linux (registered trademark), the middle layer can be checked by checking the file contents of / proc / pid / pagemap. Step 1014 copies the contents when the storage area is updated. In this step, the processing difference from the step 304 to the R-th and R + 1-th processing and the processing cycle R + n-th processing difference is saved in the memory as a difference .glb as 1031. If the storage area is a memory, it is recorded in units of pages, and a plurality of differences .glb having a page unit size, for example, 4 KB are created. The number of differences.glb is an integer obtained by dividing the size of the changed storage area by the page unit. Therefore, depending on the processing of the task 81, there is a possibility that a difference .glb of the amount of the total size of the data matching target area is created. If the amount of the difference exceeds a certain amount, the recovery time may be longer in the multiplex system recovery by differential transfer, and the recovery may not be possible. Therefore, it is necessary to make a determination to switch to the restoration processing by high-speed replay in FIG. This determination will be described in the recovery means selection process in FIG.

ステップ1015は図4(b)の一致化データ管理テーブル53の一致化データ識別子のDIFFの情報を更新する。まず、ステップ1014で作成した差分のメモリ番地を一致化データ管理テーブル53の一致化データ識別子のDIFFの管理情報の保存先番地に設定し、差分のサイズを管理情報のサイズに設定する。次に、一致化データ管理テーブル53のデータ数に1を加算する。   Step 1015 updates the DIFF information of the matched data identifier in the matched data management table 53 of FIG. 4 (b). First, the memory address of the difference created in step 1014 is set as the storage address of the DIFF management information of the matching data identifier in the matching data management table 53, and the size of the difference is set as the size of the management information. Next, 1 is added to the number of data in the matched data management table 53.

ステップ1016は差分コピーが完了すると、記憶領域の更新の監視フラグをOFFとする。また、記憶領域変更監視処理のリセットを行う。例えば、記憶領域がメモリでOS41がLinuxであれば、/proc/pid/clear_refsのファイル内容を設定することでミドルレイヤでも更新監視のクリア処理が可能である。以上のステップにより図5のタスクの処理時間P93の間の更新をチェックし、タスクの周期待ち時間Q94で差分を作成することになる。次に、ステップ1001に戻る。   In step 1016, when the differential copy is completed, the monitoring flag for updating the storage area is turned OFF. Also, the storage area change monitoring process is reset. For example, if the storage area is memory and the OS 41 is Linux, update monitoring can be cleared even in the middle layer by setting the file contents of / proc / pid / clear_refs. The update during the task processing time P93 in FIG. 5 is checked by the above steps, and a difference is created at the task waiting time Q94. Next, the process returns to step 1001.

図13は処理時間判定部56に行う復旧処理時間に基づく復旧手段選択処理を示す。ステップ1101は稼動割計算部54を呼び出し、図5の周期Tの1周期内における実行時間Pに対する周期待ち時間Qの割合の[Q/P]を算出する。ステップ1102は記憶領域差分計算部55を呼び出し、1031の差分総量(Δ)に対する内部ネットワークの転送量である帯域(N)の割合の[N/Δ]を算出する。ステップ1103はステップ1101で算出した[Q/P]と、ステップ1102で算出した[N/Δ]に1(周期)を引いた([N/Δ]−1)の量を比較する。   FIG. 13 shows recovery means selection processing based on the recovery processing time performed by the processing time determination unit 56. Step 1101 calls the operation percent calculation unit 54 to calculate [Q / P] of the ratio of the period waiting time Q to the execution time P within one period of the period T in FIG. Step 1102 calls the storage area difference calculation unit 55 to calculate [N / Δ] of the ratio of the bandwidth (N) that is the transfer amount of the internal network to the total difference amount (Δ) of 1031. In step 1103, [Q / P] calculated in step 1101 is compared with the amount obtained by subtracting 1 (period) from [N / Δ] calculated in step 1102 ([N / Δ] −1).

ステップ1104は[Q/P]が大きければ、高速リプレイ処理要求処理として、ステップ501に対して入力同期ログ転送要求を送信し、高速リプレイによる多重系復旧を実施する。ステップ1105は[Q/P]が大きくなければ、ステップ901に対して差分転送要求を送信し、差分転送による多重系復旧を実施する。   In step 1104, if [Q / P] is large, an input synchronous log transfer request is transmitted to step 501 as high-speed replay processing request processing, and multiplex system recovery by high-speed replay is performed. In step 1105, if [Q / P] is not large, a differential transfer request is transmitted to step 901, and multiplex system recovery by differential transfer is performed.

ステップ1103の判断の根拠を以下に説明にする。まず、関連用語を纏める。   The basis for the judgment in step 1103 will be described below. First, related terms are summarized.

M[byte]:データ一致化対象の記憶領域の総量
N[byte/秒]:内部ネットワーク31の転送量。帯域
T[秒]:図5のタスク実行周期時間
P[秒]:図5の周期内のタスク実行時間の合計
Q[秒]:図5の周期内のタスク次の周期までの待ち時間
Δ[byte]:1031の多重系復旧に必要な記憶領域の差分の総量
以上のパラメータにより以下の性質が導ける。
L1. データ一致化対象の記憶領域の総量を待機系計算機20へ転送する時間(311のRD)で現用系計算機10のタスク81が実行できる周期の回数は以下となる。
M [byte]: Total amount of storage area subject to data matching
N [byte / sec]: Transfer amount of the internal network 31. Band
T [sec]: Task execution cycle time in Figure 5
P [seconds]: Total task execution time within the period in Figure 5
Q [seconds]: Waiting time until the next task in the cycle of FIG. 5 Δ [byte]: The following properties can be derived by parameters greater than the total amount of storage area differences required for 1031 multiple system recovery.
L1. The number of cycles that the task 81 of the active computer 10 can execute in the time (RD of 311) for transferring the total amount of the storage area to be matched to the standby computer 20 is as follows.

周期の回数=M/N × 1/T
L2. 図10の高速リプレイ処理で、待機系計算機20が現用系計算機10の処理に追いつくまでの時間(αT)は以下の計算式で算出できる。
Number of cycles = M / N x 1 / T
L2. In the high-speed replay processing of FIG. 10, the time (αT) until the standby computer 20 catches up with the processing of the active computer 10 can be calculated by the following formula.

αT =(M/N × 1/T)/[Q/P]
L3. 図11の差分転送処理で待機系計算機20が現用系計算機10の処理に追いつくまでの時間(αT)は以下の計算式で算出できる。
αT = (M / N × 1 / T) / [Q / P]
L3. The time (αT) until the standby computer 20 catches up with the processing of the active computer 10 in the differential transfer processing of FIG. 11 can be calculated by the following formula.

αT =(M/N × 1/T)/([N/Δ]−1)
L3-1. 図11の差分転送処理による多重系復旧処理時間が収束する条件は以下である。
αT = (M / N × 1 / T) / ([N / Δ] −1)
L3-1. Conditions for convergence of the multiple system recovery processing time by the differential transfer processing in FIG. 11 are as follows.

[N/Δ] > 1回の周期時間
L4. L2とL3から、多重系復旧時間を短縮するには現用系計算機10の処理に追いつくまでの時間(αT)を短くする手段を選択する必要があり、[Q/P]と([N/Δ]−1)を比較し、この値が大きい方が手段を選べば、αTが小さくなるので多重系復旧時間を短縮することができる。
図14は稼動割合計算部の処理を示す。
[N / Δ]> one cycle time
L4. From L2 and L3, it is necessary to select a means to shorten the time (αT) until catching up with the processing of the active computer 10 in order to shorten the time required to recover the multiple system. / Δ] -1) is compared, and if the one with a larger value is selected, αT becomes smaller, so that the multiplex system recovery time can be shortened.
FIG. 14 shows the processing of the operation ratio calculation unit.

ステップ1201は前記タイマー管理テーブル73から先頭タスク81が設定しているタイマーインターバル情報を取得し、t1に設定する。   In step 1201, timer interval information set by the head task 81 is acquired from the timer management table 73 and set to t1.

ステップ1202は入力同期作成処理503で作成された入力ログの内容である同期データ管理テーブル52のデータソース識別子61の発生時刻を読込、先頭タスク81の処理開始時刻として、t2に設定する。まず、図9の入力同期ログ作成処理において入力同期処理後にデータソース識別子61のログが作成される。また、図6の入力同期処理終了後に先頭タスクの処理開始が行われるため、先頭タスクの処理開始時刻として利用可能である。ただし、前述したように図5のPの算出方法でのタスクの開始時刻算出も可能であり、その算出方法については本実施例に限定されるものではない。   In step 1202, the generation time of the data source identifier 61 of the synchronous data management table 52, which is the content of the input log created in the input synchronization creation processing 503, is read and set as t2 as the processing start time of the first task 81. First, the log of the data source identifier 61 is created after the input synchronization process in the input synchronization log creation process of FIG. In addition, since the start task processing is started after the input synchronization processing in FIG. 6 is completed, the start task processing start time can be used. However, as described above, the task start time can be calculated by the calculation method P in FIG. 5, and the calculation method is not limited to the present embodiment.

ステップ1203は同期データ管理テーブル52のデータソース識別子72から、後尾タスクの終了時に利用されるIPC_3の発生時刻を読込、後尾タスクの終了時刻t3を設定する。   In step 1203, the generation time of IPC_3 used at the end of the tail task is read from the data source identifier 72 of the synchronous data management table 52, and the end time t3 of the tail task is set.

ステップ1204はステップ1202で設定したt2と前記ステップ1203で設定したt3の差からタスクグループの処理時間Pを算出する。   In step 1204, a task group processing time P is calculated from the difference between t2 set in step 1202 and t3 set in step 1203.

ステップ1205はステップ1201で設定したt1にステップ1202で設定したt2を加算し先頭タスクが次に処理開始を行う時刻を算出する。また、算出した時刻とステップ1203で設定したt3との差からタスクグループの待ち時間Qを算出する。   In step 1205, t2 set in step 1202 is added to t1 set in step 1201, and the time when the head task starts processing next is calculated. Also, the waiting time Q of the task group is calculated from the difference between the calculated time and t3 set in step 1203.

ステップ1206はステップ1204で算出したタスクグループの処理時間Pに対してステップ1205で算出したタスクグループの待ち時間Qの割合を算出する。
図15は記憶領域差分計算部の処理を示す。
In step 1206, the ratio of the task group waiting time Q calculated in step 1205 to the task group processing time P calculated in step 1204 is calculated.
FIG. 15 shows the processing of the storage area difference calculation unit.

ステップ1301は一致化データ管理テーブル53の一致化データ識別子DIFFのデータ数を読込む。   In step 1301, the number of data of the matched data identifier DIFF in the matched data management table 53 is read.

ステップ1302はデータ数分の、一致化データ管理テーブル53の一致化データ識別子DIFFの管理情報のサイズの合計を算出し、図7のRD間で作成された記憶領域の差分の総量Δを算出する。   Step 1302 calculates the total size of the management information of the matching data identifier DIFF in the matching data management table 53 for the number of data, and calculates the total amount Δ of the storage area differences created between the RDs in FIG. .

ステップ1303は内部ネットワークの帯域を取得し、ステップ1302で算出した差分の総量Δに対する割合N/Δを算出する。   In step 1303, the bandwidth of the internal network is acquired, and a ratio N / Δ with respect to the total amount Δ of the difference calculated in step 1302 is calculated.

10…現用系計算機、11…演算装置、12…記憶装置、13…通信装置1、14…通信装置2、20…待機系計算機、31…現用系計算機と待機系計算機間を接続するLAN、32…現用系計算機と待機系計算機を外部計算機と接続する外部ネットワーク、41…OS、51…データ一致化ミドル、52…同期データ管理テーブル、53…一致化データ管理テーブル、54…稼動割計算部、55…記憶領域差分計算部、56…処理時間判定部、61…通信ミドル、71…タスク管理ミドル、72…タスク管理テーブル、73…タイマー管理テーブル、74…シグナル管理テーブル、75…領域管理テーブル、81…タスク、91…タスク処理とタイミング概要、92…周期、93…実行時間P、94…周期待ち時間Q、95…外部入力バッファリング時間INQ_T、96…入力同期通信処理時間ST、97…タスク制御処理とイベント処理 DESCRIPTION OF SYMBOLS 10 ... Active computer, 11 ... Arithmetic unit, 12 ... Storage device, 13 ... Communication device 1, 14 ... Communication device 2, 20 ... Standby computer, 31 ... LAN for connecting between active computer and standby computer, 32 ... external network connecting active computer and standby computer to external computer, 41 ... OS, 51 ... data matching middle, 52 ... synchronized data management table, 53 ... matched data management table, 54 ... operational percent calculation unit, 55 ... Storage area difference calculation unit, 56 ... Processing time determination unit, 61 ... Communication middle, 71 ... Task management middle, 72 ... Task management table, 73 ... Timer management table, 74 ... Signal management table, 75 ... Area management table, 81 ... task, 91 ... task processing and timing overview, 92 ... cycle, 93 ... execution time P, 94 ... cycle waiting time Q, 95 ... external input buffering time INQ_T, 96 ... input synchronous communication processing time ST, 97 ... task Control processing and event processing

Claims (5)

周期的にプログラムを実行する現用系計算機と、前記現用系計算機からの現用系計算機切り替に備えて用意された待機系計算機とで構成される多重化計算機の記憶領域一致化装置であって、
前記現用系計算機の周期におけるプログラムの実行時間割合を求める稼働割合計算部と、
前記プログラムの稼働により発生する現用系計算機の記憶領域と待機系計算機の記憶領域の差分を求める記憶領域差分計算部と、
前記稼働割合計算部から受け取ったプログラムの実行時間割合と、前記記憶領域差分計算部から受け取った現用系計算機の記憶領域と待機系計算機の記憶領域の差分データ量に基づいて、現用系計算機で実行し、待機系計算機で実行していない処理を待機系計算機で実行することにより待機系計算機の記憶領域を現用系計算機の記憶領域に一致させるか、現用系計算機の記憶領域と待機系計算機の記憶領域の差分データを現用系計算機から待機系計算機へ送付し、待機系計算機の記憶領域へ反映させることにより待機系計算機の記憶領域を現用系計算機の記憶領域に一致させるかを選択する処理時間判定部とを備えることを特徴とする多重化計算機の記憶領域一致化装置。
A storage area matching device for a multiplexed computer composed of an active computer that periodically executes a program and a standby computer prepared for switching to an active computer from the active computer,
An operation rate calculation unit for obtaining an execution time rate of the program in the cycle of the active computer;
A storage area difference calculation unit for obtaining a difference between the storage area of the active computer and the storage area of the standby computer generated by the operation of the program;
Based on the execution time ratio of the program received from the operation ratio calculator and the difference data amount between the storage area of the active computer and the storage area of the standby computer received from the storage area difference calculator. The storage area of the standby system computer is made to match the storage area of the active system computer by executing processing that is not being executed by the standby system computer, or the storage area of the active system computer and the storage of the standby system computer. Processing time judgment to select whether to match the storage area of the standby computer with the storage area of the active computer by sending the difference data of the area from the active computer to the standby computer and reflecting it in the storage area of the standby computer A storage area matching device for a multiplexed computer.
前記処理時間判定部は現用系計算機と待機系計算機を接続する通信路の速度を基に現用系計算機から待機系計算機へ送付するデータの転送時間を求め、求めた転送時間により現用系計算機で実行し待機系計算機で実行していない処理を待機系計算機で実行するか、現用系計算機の記憶領域と待機系計算機の記憶領域の差分データを現用系計算機から待機系計算機へ送付し、待機系計算機の記憶領域へ反映させるかを選択することを特徴とする請求項1に記載の多重化計算機の記憶領域一致化装置。   The processing time determination unit obtains the transfer time of data to be sent from the active computer to the standby computer based on the speed of the communication path connecting the active computer and the standby computer, and executes on the active computer based on the determined transfer time. Either the standby computer executes processing that is not being executed by the standby computer, or the difference data between the storage area of the active computer and the storage area of the standby computer is sent from the active computer to the standby computer. 2. The storage area matching apparatus for a multiplexing computer according to claim 1, wherein whether to be reflected in the storage area is selected. 前記プログラムの入力データと出力データを記憶する処理記憶部を備え、
処理時間判定部が現用系計算機で実行し待機系計算機で実行していない処理を待機系計算機で実行するとき、前記処理記憶部が記憶した入力データと出力データを用いて待機系計算機で前記プログラムを実行させることにより待機系計算機の記憶領域を現用系計算機の記憶領域に一致させることを特徴とする請求項2に記載の多重化計算機の記憶領域一致化装置。
A processing storage unit for storing the input data and output data of the program;
When the processing time determination unit is executed by the active computer and the processing not executed by the standby computer is executed by the standby computer, the program is executed by the standby computer using the input data and output data stored in the processing storage unit. 3. The storage area matching apparatus for a multiplexed computer according to claim 2, wherein the storage area of the standby computer is made to coincide with the storage area of the active computer by executing.
周期的にプログラムを実行する現用系計算機と待機系計算機で構成される多重化計算機システムにおいて、現用系計算機で処理する入力データをバッファリングし、バッファリングした入力データを現用系計算機のプログラムが処理し、次の周期のプログラム処理が始まるまでの間である空き時間に待機系計算機へ送信し、待機系計算機で受け取った入力データを用いて前記プログラムに対応する待機系計算機のプログラムを実行することにより待機系計算機の記憶領域を現用系計算機の記憶領域に一致させることを特徴とする多重化計算機のデータ一致化装置。   In a multiplexed computer system consisting of an active computer and a standby computer that periodically execute programs, the input data processed by the active computer is buffered, and the buffered input data is processed by the program of the active computer And transmitting to the standby computer during the idle time until the program processing of the next cycle starts, and executing the program of the standby computer corresponding to the program using the input data received by the standby computer A data matching device for a multiplexed computer, characterized in that the storage area of the standby computer is matched with the storage area of the active computer. バッファリングした入力データを待機化計算機へ送信する時間が現用系計算機の空き時間に満たない場合、バッファリングした入力データを待機系計算機へ送信せず、入力データを待機系計算機へ送信する時間が空き時間を超えたとき、空き時間で送信できる入力データを待機系計算機へ送信することを特徴とする請求項4に記載の多重化計算機のデータ一致化装置。   If the time to send the buffered input data to the standby computer is less than the idle time of the active computer, the time to send the input data to the standby computer without sending the buffered input data to the standby computer 5. The data matching apparatus for a multiplexed computer according to claim 4, wherein when the free time is exceeded, input data that can be transmitted in the free time is transmitted to the standby computer.
JP2015086392A 2015-04-21 2015-04-21 Multiplexing computer storage area matching device Active JP6446315B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015086392A JP6446315B2 (en) 2015-04-21 2015-04-21 Multiplexing computer storage area matching device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015086392A JP6446315B2 (en) 2015-04-21 2015-04-21 Multiplexing computer storage area matching device

Publications (2)

Publication Number Publication Date
JP2016206865A true JP2016206865A (en) 2016-12-08
JP6446315B2 JP6446315B2 (en) 2018-12-26

Family

ID=57487856

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015086392A Active JP6446315B2 (en) 2015-04-21 2015-04-21 Multiplexing computer storage area matching device

Country Status (1)

Country Link
JP (1) JP6446315B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019185371A (en) * 2018-04-10 2019-10-24 富士通株式会社 Server switching program, server switching method, and server switching system
WO2022224617A1 (en) * 2021-04-19 2022-10-27 株式会社Nttドコモ Information processing device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217505A (en) * 2008-03-10 2009-09-24 Hitachi Ltd Computer system, computer control method, and computer control program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217505A (en) * 2008-03-10 2009-09-24 Hitachi Ltd Computer system, computer control method, and computer control program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019185371A (en) * 2018-04-10 2019-10-24 富士通株式会社 Server switching program, server switching method, and server switching system
JP7106953B2 (en) 2018-04-10 2022-07-27 富士通株式会社 SERVER SWITCHING PROGRAM, SERVER SWITCHING METHOD, AND SERVER SWITCHING SYSTEM
WO2022224617A1 (en) * 2021-04-19 2022-10-27 株式会社Nttドコモ Information processing device

Also Published As

Publication number Publication date
JP6446315B2 (en) 2018-12-26

Similar Documents

Publication Publication Date Title
CN109491776B (en) Task arranging method and system
Lorch et al. The SMART way to migrate replicated stateful services
TWI470459B (en) Storage control system, method, data carrier, and computer program product to operate as a remote copy pair by communicating between a primary and a secondary of said remote copy pair
KR100954462B1 (en) Methods and apparatus for implementing a high availability fibre channel switch
CA2339783C (en) Fault tolerant computer system
US9389976B2 (en) Distributed persistent memory using asynchronous streaming of log records
US8473692B2 (en) Operating system image management
CN107402722B (en) Data migration method and storage device
WO2017067484A1 (en) Virtualization data center scheduling system and method
US20130219224A1 (en) Job continuation management apparatus, job continuation management method and job continuation management program
WO2020025049A1 (en) Data synchronization method and apparatus, database host, and storage medium
JP4560074B2 (en) Virtual computer system and virtual computer restoration method in the same system
CN112235405A (en) Distributed storage system and data delivery method
JP6446315B2 (en) Multiplexing computer storage area matching device
CN106855869B (en) Method, device and system for realizing high availability of database
JP2005196726A (en) Real time remote backup system and its backup method
JP6577901B2 (en) Computer system and system state reproduction method
JP2000222376A (en) Computer system and method for operating the same
CN112243030A (en) Data synchronization method, device, equipment and medium of distributed storage system
WO2022227719A1 (en) Data backup method and system, and related device
CN116954816A (en) Container cluster control method, device, equipment and computer storage medium
CN113934575A (en) Big data backup system and method based on distributed copy
US20240028611A1 (en) Granular Replica Healing for Distributed Databases
CN114531394A (en) Data synchronization method and device
US20230342065A1 (en) Failure recovery in a replication environment

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170111

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181018

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181203

R150 Certificate of patent or registration of utility model

Ref document number: 6446315

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150