Information processing device
The information processing device optimizes database synchronization by managing update information in redundant systems to minimize processing load during resynchronization, addressing inefficiencies in existing systems.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-03-11
- Publication Date
- 2026-04-14
AI Technical Summary
Existing systems face increased processing load during resynchronization of standby databases after a system failure, as they require writing all data from the operational database to the standby database, which can be inefficient.
An information processing device that includes an operational processing execution unit and a standby processing execution unit, which manage update information in first and second systems respectively, determining whether to perform a recovery process based on stored update information to synchronize databases while minimizing processing load.
Synchronizes standby system databases with operational system databases while reducing the increase in processing load required for resynchronization after a system abnormality, ensuring efficient database synchronization.
Smart Images

Figure 0007846094000001 
Figure 0007846094000002 
Figure 0007846094000003
Abstract
Description
Technical Field
[0001] The present invention relates to an information processing apparatus.
Background Art
[0002] Even when a failure or the like occurs in a system that provides a service, in order to continue providing the service, a redundant system that is made redundant by a plurality of systems is known. In a redundant system, for example, when an operation system fails, the operation system and the standby system are switched. Therefore, when each of the operation system and the standby system has a database, a synchronization process for synchronizing the standby database with the operation database is executed.
[0003] For example, a system that executes a synchronization process using shared memories provided in each of an operation system and a standby system has been proposed (for example, Patent Document 1). In this system, for example, when the database of the operation system is updated, the changed data is written into the shared memory of the operation system. Then, the data written into the shared memory of the operation system is transferred to the shared memory of the standby system and reflected in the database of the standby system.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005] Incidentally, there are cases where the operational system fails during a period when the standby database is not synchronized with the operational database. In this case as well, after the failed system (the old operational system) is restored, it is necessary to resynchronize the standby (old operational system) database with the operational database. For example, one possible method is to write all the data stored in the operational database to the standby (old operational system) database after the standby (old operational system) is restored and before the synchronization process using shared memory is executed. However, this method of writing all the data stored in the operational database to the standby database may increase the processing load required for resynchronization after the failed system (old operational system) is restored. [Means for solving the problem]
[0006] To solve the above problems, an information processing device according to a preferred embodiment of the present invention is an information processing device included in the first system of a redundant system in which one of the first system and the second system operates as an operational system and the other operates as a standby system, the operational processing execution unit which, when it receives instruction information to update the contents of a first database included in the first system during a first period in which the first system is operating as the operational system, updates the contents of the first database based on the instruction information and stores the instruction information as first update information in a first memory included in the first system, and the second update information used to update the contents of a second database included in the second system is included in the second system The system includes a standby processing execution unit which, when stored in a second memory, acquires the second update information from the second memory during a second period in which the first system is operating as a standby system, and updates the contents of the first database based on the second update information, and the operation processing execution unit is characterized in that, if an abnormality occurs in the second system operating as an operation system and the first period begins in the first system before the standby processing execution unit acquires the second update information stored in the second memory, the operation processing execution unit determines, based on the first update information and the second update information, whether or not to perform a recovery process to reflect the contents of the second update information in the first database, triggered by the recovery of the second system. [Effects of the Invention]
[0007] According to the present invention, it is possible to synchronize the standby system database with the operational system database while suppressing the increase in processing load required for resynchronization after a system that has experienced an abnormality such as a failure has been restored. [Brief explanation of the drawing]
[0008] [Figure 1] This is a block diagram showing the overall configuration of a redundant system using a management server according to the embodiment. [Figure 2] This block diagram shows the configuration of the management server as shown in Figure 1. [Figure 3] This block diagram shows the configuration of the database server as shown in Figure 1. [Figure 4] This is a block diagram showing the configuration of the information storage device shown in Figure 1. [Figure 5] Figure 1 is an explanatory diagram showing an example of a database. [Figure 6] Figure 1 is an explanatory diagram showing an example of update information. [Figure 7] Figure 1 is a sequence chart showing an example of the operation of the redundant system. [Figure 8] Figure 1 is a sequence chart illustrating another example of the operation of the redundant system shown. [Figure 9] Figure 1 is a sequence chart illustrating another example of the operation of the redundant system shown. [Figure 10] This is an explanatory diagram illustrating the decision-making process for determining whether or not to perform recovery processing. [Figure 11] This is a sequence chart showing an example of the operation of a redundant system using a management server according to the first modified example. [Figure 12] This is an explanatory diagram illustrating an example of the operation of a redundant system using a management server related to the second modified example. [Figure 13] This is an explanatory diagram illustrating the decision-making process in a redundant system using a management server related to the third modified example. [Modes for carrying out the invention]
[0009] [1. Embodiments] Figure 1 is a block diagram showing the overall configuration of a redundant system 1 using a management server 100 according to an embodiment. The redundant system 1 has, for example, two redundant systems 10. For example, the two systems 10 have similar configurations. In Figure 1, to distinguish the two systems 10 from each other, a lowercase alphabet letter (a or b) is appended to the end of the code of each system 10. In addition, the same lowercase alphabet letter (a or b) as that of the corresponding system 10 is appended to the end of the code of each of the multiple elements included in system 10 (for example, the management server 100).
[0010] In redundant system 1, for example, when one of systems 10a and 10b is operating as the active system, the other operates as the standby system. Figure 1 assumes that system 10a is operating as the active system and system 10b is operating as the standby system. One of systems 10a and 10b is an example of the "first system," and the other of systems 10a and 10b is an example of the "second system." In this embodiment, it is assumed that system 10 provides an extension service that allows external telephone terminals 600, such as mobile phones, to also function as internal telephone terminals. An internal telephone terminal is, for example, a telephone terminal that supports internal calls at a predetermined location.
[0011] For example, each of the two systems 10 (10a and 10b) has a management server 100 (100a or 100b), a database server 200 (200a or 200b), and an information storage device 300 (300a or 300b). Furthermore, each of the two systems 10 (10a and 10b) has a call processing server 400 (400a or 400b) that performs connection processing for extension calls, etc.
[0012] In FIG. 1, an overview of the management server 100, the database server 200, and the information storage device 300 is described. In FIGS. 2, 3, and 4 described later, an example of the detailed configuration of the management server 100, the database server 200, and the information storage device 300 is described. Also, an example of the detailed operation of the management server 100, the database server 200, and the information storage device 300 is described in FIGS. 7, 8, and 9 described later.
[0013] For example, each management server 100 (100a or 100b) includes a processing device 120 (120a or 120b) that functions as an operation processing execution unit 122 (122a or 122b) and a standby processing execution unit 124 (124a or 124b). Each database server 200 (200a or 200b) includes a storage device 240 (240a or 240b) in which a database DB (DBa or DBb) is stored. Each information storage device 300 (300a or 300b) includes a storage device 340 (340a or 340b) in which update information UINF (UINFa or UINFb) is stored.
[0014] The database DB of the system 10 operating as an operation system is referred to, for example, by a call processing server 400 of the system 10 operating as an operation system. For example, the call processing server 400 executes connection processing for an internal call between a plurality of telephone terminals including an external telephone terminal 600 and a fixed telephone terminal 602 corresponding to an internal call and an external call based on information indicating an extension number or the like stored in the database DB. An example of the information stored in the database DB, that is, an example of the stored content of the database DB, is described in FIG. 5. Since the information stored in the database DB may be changed at any time by the administrator Cer of the database DB, it is updated by the operation processing execution unit 122 described later. The administrator Cer may be a person belonging to a business operator providing an internal service or a person belonging to a company using an internal service.
[0015] The operation processing execution unit 122a operates, for example, during the period when the system 10a is operating as an operation system (hereinafter also referred to as the operation period of the system 10a), and receives instruction information CINF (such as CINF1, CINF2, and CINF3) shown in FIGS. 7 and 8 described later. The instruction information CINF is information for updating the stored content of the database DB included in the system 10 operating as an operation system. For example, the terminal device 500 communicably connected to the management server 100 receives an operation by the administrator Cer of the database DB as an operation for generating the instruction information CINF, and transmits the instruction information CINF generated based on the received operation to the management server 100.
[0016] For example, the operation processing execution unit 122a receives instruction information CINF for updating the stored content of the database DBa during the operation period of the system 10a. When the operation processing execution unit 122a receives the instruction information CINF, it updates the stored content of the database DBa based on the instruction information CINF, and accumulates the instruction information CINF as update information UINFa in the storage device 340a.
[0017] The operation processing execution unit 122b operates, for example, during the period when the system 10b is operating as an operation system (hereinafter also referred to as the operation period of the system 10b). The operation of the operation processing execution unit 122b during the operation period of the system 10b is the same as the operation of the operation processing execution unit 122a during the operation period of the system 10a. For example, when the operation processing execution unit 122b receives the instruction information CINF during the operation period of the system 10b, it updates the stored content of the database DBb based on the instruction information CINF, and accumulates the instruction information CINF as update information UINFb in the storage device 340b.
[0018] The standby processing execution unit 124a operates, for example, during the period when system 10a is operating as a standby system (hereinafter also referred to as the standby period of system 10a), and synchronizes database DBa with database DBb. Synchronizing database DBa with database DBb means, for example, making the contents of database DBa match the contents of database DBb.
[0019] For example, if the update information UINFb used to update the contents of the database DBb up to the present time is stored in the storage device 340b, the standby processing unit 124a retrieves the update information UINFb from the storage device 340b during the standby period of the system 10a. Then, the standby processing unit 124a updates the contents of the database DBa based on the update information UINFb retrieved from the storage device 340b.
[0020] The standby processing execution unit 124b operates, for example, during the period when system 10b is operating as a standby system (hereinafter also referred to as the standby period of system 10b). The operation of the standby processing execution unit 124b during the standby period of system 10b is the same as the operation of the standby processing execution unit 124a during the standby period of system 10a. For example, during the standby period of system 10b, the standby processing execution unit 124b updates the contents of the database DBb based on the update information UINFa obtained from the storage device 340a.
[0021] If system 10a is designated as "System 1," then the operational period of system 10a will be designated as "Period 1," and the standby period of system 10a will be designated as "Period 2." Similarly, if system 10b is designated as "System 1," then the operational period of system 10b will be designated as "Period 1," and the standby period of system 10b will be designated as "Period 2."
[0022] Here, for example, if an abnormality occurs in system 10b, which is operating as the operational system, the operational period of system 10a may start before the standby processing execution unit 124a acquires the update information UINFb stored in the storage device 340b. In this case, in order to synchronize the database DBb of system 10b, which has recovered from the abnormality, with the database DBa of system 10a, a recovery process for database DBa may be necessary. The recovery process for database DBa is, for example, a process that reflects the contents of the update information UINFb stored in the standby system's storage device 340b to database DBa.
[0023] For example, the operation processing execution unit 122a determines, based on the update information UINFa and UINFb, whether or not to perform a recovery process that reflects the contents of the update information UINFb to the database DBa, triggered by the recovery of the system 10b. If the operation processing execution unit 122a determines to perform the recovery process, it reflects the contents of the update information UINFb stored in the storage device 340b to the database DBa. As a result, databases DBa and DBb become synchronized with each other. The recovery process and the method for determining whether or not to perform the recovery process will be explained in Figures 9 and 10 below.
[0024] Furthermore, for example, if an abnormality occurs in system 10a, which is operating as the operational system, and the operational period of system 10b begins, the operational processing execution unit 122b will perform the same operations as the operational processing execution unit 122a described above.
[0025] Thus, in this embodiment, even if an abnormality occurs in system 10, databases DBa and DBb can be synchronized with each other.
[0026] Furthermore, one of the management servers 100a and 100b is an example of an "information processing device." Also, one of the databases DBa and DBb is an example of a "first database," and the other of databases DBa and DBb is an example of a "second database." Also, one of the storage devices 340a and 340b is an example of a "first memory," and the other of storage devices 340a and 340b is an example of a "second memory." Also, one of the update information UINFa and UINFb is an example of "first update information," and the other of update information UINFa and UINFb is an example of "second update information." For example, if system 10a corresponds to "first system," then the management server 100a corresponds to an "information processing device," and database DBa corresponds to "first database." Furthermore, if system 10a corresponds to "first system," then storage device 340a corresponds to "first memory," and update information UINFa corresponds to "first update information."
[0027] Furthermore, the term "apparatus" in this specification may be replaced with other terms such as circuit, device, or unit. Also, the connection between the management server 100 and the database server 200 may be any connection that enables communication between multiple elements, and may be a wired connection or a wireless connection, or a connection that uses both wired and wireless technologies. For example, the terminal device 500 may be connected to the management server 100 via the Internet (not shown).
[0028] Figure 2 is a block diagram showing the configuration of the management server 100 shown in Figure 1. Management servers 100a and 100b have similar configurations. Therefore, the management server 100 shown in Figure 2 corresponds to management server 100a and 100b, respectively.
[0029] The management server 100 can be any information processing device, for example. For example, the management server 100 can be implemented by a computer system comprising a processing device 120, a storage device 140, and a communication device 160. The multiple elements of the management server 100 are interconnected by one or more buses for communicating information. Furthermore, each of the multiple elements of the management server 100 may consist of one or more devices. Alternatively, some elements of the management server 100 may be omitted.
[0030] The processing unit 120 is a processor that controls the entire management server 100, and is composed of, for example, one or more chips. The processing unit 120 is composed of, for example, a central processing unit (CPU) that includes interfaces with peripheral devices, an arithmetic unit, and registers. Some or all of the functions of the processing unit 120 may be implemented by hardware such as a DSP (Digital Signal Processor), ASIC (Application Specific Integrated Circuit), PLD (Programmable Logic Device), and FPGA (Field Programmable Gate Array). The processing unit 120 executes various processes in parallel or sequentially.
[0031] The processing unit 120 functions as the operation processing execution unit 122 and the standby processing execution unit 124 described in Figure 1 above, for example, by reading the application program PR1 from the storage device 140 and executing the read application program PR1. The application program PR1 may be transmitted from another device.
[0032] The storage device 140 is a recording medium readable by the processing unit 120, and stores various data such as multiple programs, including the application program PR1 executed by the processing unit 120. The storage device 140 may consist of at least one of the following: ROM (Read Only Memory), EPROM (Erasable Programmable ROM), EEPROM (Electrically Erasable Programmable ROM), and RAM (Random Access Memory). The storage device 140 may also be called a register, cache, or main memory.
[0033] The communication device 160 is hardware (transceiver / receiver device) for communicating with other devices such as the database server 200, the information storage device 300, and the terminal device 500. The communication device 160 is also called, for example, a network device, a network controller, a network card, and a communication module. The communication device 160 may be configured to include, for example, a high-frequency switch, a duplexer, a filter, and a frequency synthesizer in order to implement one or both of frequency division duplex (FDD) and time division duplex (TDD).
[0034] Figure 3 is a block diagram showing the configuration of the database server 200 shown in Figure 1. Database servers 200a and 200b have similar configurations. Therefore, the database server 200 shown in Figure 3 corresponds to database server 200a and 200b, respectively.
[0035] For example, any information processing device can be used as the database server 200. For instance, the database server 200 can be implemented by a computer system comprising a processing device 220, a storage device 240, and a communication device 260.
[0036] The processing unit 220 is a processor that controls the entire database server 200 and is configured similarly to the processing unit 120 of the management server 100 described in Figure 2. For example, the processing unit 220 functions as a control unit 222 that manages the database DB by reading the control program PR2 from the storage device 240 and executing the read control program PR2. The control unit 222 performs operations such as creating, updating, and reading the database DB based on information received from the terminal device 500 via the management server 100 (e.g., instruction information CINF). The control unit 222 also transmits the contents of the database DB to the call processing server 400 based on a request to read the database DB from the call processing server 400. The control program PR2 may be transmitted from other devices.
[0037] The storage device 240 is a recording medium readable by the processing device 220, and stores various data such as multiple programs including the control program PR2 executed by the processing device 220 and a database DB. The storage device 240 may be composed of at least one of the following: ROM, EPROM, EEPROM, and RAM, similar to the storage device 140 of the management server 100 described in Figure 2.
[0038] The communication device 260 is hardware (transmitting and receiving device) for communicating with other devices such as the management server 100, the information storage device 300, and the call processing server 400, and is configured in the same way as the communication device 160 of the management server 100 described in Figure 2.
[0039] Figure 4 is a block diagram showing the configuration of the information storage device 300 shown in Figure 1. Information storage devices 300a and 300b have similar configurations. Therefore, the information storage device 300 shown in Figure 4 corresponds to information storage device 300a and 300b, respectively.
[0040] For example, any information processing device can be used as the information storage device 300. For instance, the information storage device 300 can be implemented by a computer system comprising a processing device 320, a storage device 340, and a communication device 360.
[0041] The processing unit 320 is a processor that controls the entire information storage device 300 and is configured similarly to the processing unit 120 of the management server 100 described in Figure 2. For example, the processing unit 320 reads the control program PR3 from the storage device 340 and executes the read control program PR3, thereby functioning as a control unit 322 that manages the update information UINF. The control unit 322 performs operations such as writing, reading, and deleting the update information UINF based on information received from, for example, the management servers 100a and 100b. The control program PR3 may be transmitted from other devices.
[0042] The storage device 340 is a recording medium readable by the processing unit 320, and stores various data such as multiple programs including the control program PR3 executed by the processing unit 320, and update information UINF. The storage device 340 may be composed of at least one of the following: ROM, EPROM, EEPROM, and RAM, similar to the storage device 140 of the management server 100 described in Figure 2.
[0043] The communication device 360 is hardware (transmitting / receiving device) for communicating with other devices such as the management server 100, and is configured similarly to the communication device 160 of the management server 100 described in Figure 2.
[0044] Although the configuration of the call processing server 400 is not specifically shown in Figures 1 to 4 above, any information processing device can be used as the call processing server 400. For example, the configuration of the call processing server 400 may be the same as that of the management server 100 shown in Figure 2. That is, the call processing server 400 may be realized by a computer system that includes a processing device for controlling the entire call processing server 400, a storage device for storing various types of data, and a communication device for communicating with other devices.
[0045] Furthermore, although the configuration of the terminal device 500 is not specifically shown in Figures 1 to 4 above, any information processing device can be used as the terminal device 500. For example, the terminal device 500 may be a stationary information device such as a personal computer, or a portable information terminal such as a smartphone, laptop computer, wearable device, or tablet device.
[0046] The terminal device 500 may be implemented by a computer system comprising, for example, a processing unit that controls the entire terminal device 500, a storage device that stores various types of data, a communication device for communicating with other devices, an input device, and an output device. The input device is an input device that accepts input from the outside (e.g., a keyboard, mouse, microphone, switch, button, and sensor). The output device is an output device such as a display that outputs to the outside. The output device displays an image, for example, under the control of the processing unit. The input device and the output device may be configured as an integrated unit (e.g., a touch panel).
[0047] The configuration of the redundant system 1 is not limited to the examples shown in Figures 1 to 4. For example, the management server 100 may have an auxiliary storage device. The auxiliary storage device is a recording medium readable by the management server 100 and may consist of at least one of the following: an optical disc such as a CD-ROM (Compact Disc ROM), a hard disk drive, a flexible disk, a magneto-optical disk (e.g., Compact Disc, Digital Multipurpose Disc, and Blu-ray® disc), a smart card, flash memory (e.g., a card, stick, and key drive), a floppy® disk, and a magnetic strip. Similarly, for example, the database server 200, the information storage device 300, the call processing server 400, and the terminal device 500 may have auxiliary storage devices. In addition, the management server 100, the database server 200, the information storage device 300, and the call processing server 400 may have, for example, input devices and output devices.
[0048] Figure 5 is an explanatory diagram showing an example of the database DB shown in Figure 1.
[0049] For example, a database DB has multiple records R (R1, R2, R3, R4, R5, and R6, etc.) that store multiple pieces of registration information. The multiple pieces of registration information stored in each record R correspond one-to-one with multiple registration items and indicate the content related to the corresponding registration items. For example, name, telephone number, company, location, extension number, call forwarding settings, forwarding destination, and reception date and time are examples of multiple registration items. Name, telephone number, company, and location are key information used to identify specific information from multiple pieces of information stored in the database DB. Also, extension number, call forwarding settings, and forwarding destination are call processing information used for connecting extension calls, etc.
[0050] The "Name" field in the key information indicates the name of the user of the extension service, and the "Telephone Number" field indicates the telephone number of the user, such as their mobile phone. The "Company" field indicates the company to which the user belongs, and the "Location" field indicates the location of the user. The "Extension Number" field in the call processing information indicates the telephone number used for internal calls by the user, and the "Forwarding Settings" field indicates whether or not calls to the user are forwarded. The "Forwarding Destination" field indicates the telephone number to which calls to the user are forwarded if they are forwarded. The "Reception Date and Time" field indicates, for example, the date and time when the contents stored in each record R were updated.
[0051] In the database DB shown in Figure 5, the multiple telephone numbers stored in the database DB are all different telephone numbers. In this case, the database DB may have multiple records R that correspond one-to-one with multiple telephone numbers. The telephone numbers may then be used as identification information to identify one record R from among the multiple records R.
[0052] Note that the database DB is not limited to the example shown in Figure 5. For example, names do not have to be stored in the database DB. Alternatively, identification information that identifies one record R from multiple records R may be stored in the database DB instead of names.
[0053] Figure 6 is an explanatory diagram showing an example of the update information UINF shown in Figure 1.
[0054] The update information UINF stores multiple pieces of registration information corresponding to multiple registration items, such as name, telephone number, company, location, extension number, forwarding settings, forwarding destination, and reception date and time, for each record R that is being updated. The reception date and time indicates, for example, the date and time when the operation processing execution unit 122 received the instruction information CINF. In Figure 6, the record R stored in the update information UINF is assigned the same code as the corresponding record R in the database DB in order to make the correspondence with the record R in the database DB easier to understand.
[0055] For example, record R2 in the update information UINF corresponds to record R2 among multiple records R in the database DB. Furthermore, the content of record R2 in the update information UINF shows the content of the instruction information CINF received by the operation processing execution unit 122 at 13:06 on March 23, 2021 (the content of record R2 after the update). Similarly, for example, the content of record R4 in the update information UINF shows the content of the instruction information CINF received by the operation processing execution unit 122 at 13:07:59 on March 23, 2021 (the content of record R4 after the update). In this way, the update information UINF shows the history of instruction information CINF for updating the stored contents of the database DB. In this embodiment, the instruction information CINF includes, for example, all of the multiple registration information stored in record R that is updated based on the instruction information CINF.
[0056] Here, for example, the operation processing execution unit 122 displays all of the multiple registration information stored in record R, which is updated based on the instruction information CINF, on the terminal device 500. This allows administrator Cer to easily recognize the current registration content of record R corresponding to the user to be updated.
[0057] Note that the update information UINF is not limited to the example shown in Figure 6. For example, similar to the database DB, the name does not have to be stored in the update information UINF. Alternatively, identification information that identifies one record R from multiple records R may be stored in the update information UINF instead of the name. Also, for example, the reception date and time may be the date and time when the terminal device 500 receives the operation to generate the instruction information CINF (operation by administrator Cer), or it may be the date and time when the information storage device 300 receives the instruction information CINF.
[0058] Figure 7 is a sequence chart showing an example of the operation of the redundant system 1 shown in Figure 1. Figure 7 shows an example of the operation of the redundant system 1 from time T10, when the operational period of system 10a and the standby period of system 10b begin, to time T20, when databases DBa and DBb synchronize with each other. In other words, in the example shown in Figure 7, system 10a operates as the operational system, and system 10b operates as the standby system. The solid arrows in Figure 7 indicate the operation flow of the operational system 10a, and the dashed arrows indicate the operation flow of the standby system 10b.
[0059] In Figure 7, and in Figures 8 and 9 described later, a lowercase letter (a or b) is appended to the end of the code for the steps performed by each system 10 in order to make it easier to distinguish between the steps performed by system 10a and the steps performed by system 10b. For example, the process of step S100a in Figure 7 represents the process of step S100 (reception of instruction information CINF1) performed by the management server 100a. Similarly, the process of step S100b in Figure 8 described later represents the process of step S100 (reception of instruction information CINF3) performed by the management server 100b.
[0060] Furthermore, in Figures 7, 8, and 9, to avoid complexity in representation, the operation of the operational processing execution unit 122 and the operation of the standby processing execution unit 124 are sometimes described as the operation of the management server 100 without any particular distinction. The operation of the management server 100 of the system 10 operating as the operational system is performed by the operational processing execution unit 122, and the operation of the management server 100 of the system 10 operating as the standby system is performed by the standby processing execution unit 124. In addition, the operation of the database server 200 is performed by the control unit 222, and the operation of the information storage device 300 is performed by the control unit 322.
[0061] First, the terminal device 500 receives an operation from the database administrator Cer and sends the instruction information CINF1 generated based on the received operation to the management server 100a (S500). The management server 100a receives the instruction information CINF1 from the terminal device 500 (S100a). In this way, the management server 100a receives the instruction information CINF1 to update the contents of the database DBa. More specifically, the transmission and reception of information such as the instruction information CINF1 is performed via the communication devices of each device such as the management server 100 (for example, the communication device 160), but in Figure 7, this is explained in a simplified manner to avoid making the explanation complicated.
[0062] Furthermore, the management server 100a sends the instruction information CINF1 received from the terminal device 500 to the database server 200a in order to update the contents of the database DBa based on the instruction information CINF1 received from the terminal device 500 (S102a). The database server 200a receives the instruction information CINF1 from the management server 100a (S200a). Then, the database server 200a reflects the contents of the instruction information CINF1 received from the management server 100a in the database DBa (S202a). In other words, the database server 200a updates the database DBa based on the instruction information CINF1 received from the management server 100a. Then, the database server 200a sends response information ACK1 to the management server 100a indicating that the contents of the instruction information CINF1 have been reflected in the database DBa (S204a).
[0063] The management server 100a receives response information ACK1 from the database server 200a (S104a). The management server 100a then sends response information ACK1 (for example, response information ACK1 received from the database server 200a) to the terminal device 500, indicating that the contents of the instruction information CINF1 have been reflected in the database DBa (S106a). The terminal device 500 receives response information ACK1 from the management server 100a (S502). As a result, the terminal device 500 can recognize that the contents of the instruction information CINF1 have been reflected in the database DBa. For example, the terminal device 500 may display information on its display indicating that the contents of the instruction information CINF1 have been reflected in the database DBa. In this case, administrator Cer can recognize that the contents of the instruction information CINF1 have been reflected in the database DBa.
[0064] Furthermore, the management server 100a transmits the instruction information CINF1 received from the terminal device 500 to the information storage device 300a (S110a). The information storage device 300a receives the instruction information CINF1 from the management server 100a (S300a). Then, the information storage device 300a stores the instruction information CINF1 received from the management server 100a as update information UINFa in the storage device 340a (S302a).
[0065] Thus, when the management server 100a's operation processing execution unit 122a receives instruction information CINF1 during the period when system 10a is operating as an operational system, it updates the contents of the database DBa via the database server 200a based on the instruction information CINF1. Also, when the operation processing execution unit 122a receives instruction information CINF1 during the period when system 10a is operating as an operational system, it stores the instruction information CINF1 as updated information UINFa in the storage device 340a via the information storage device 300a.
[0066] Furthermore, the management server 100b of system 10b, which is operating as a standby system, sends a read request RREQ to the information storage device 300a of system 10a requesting to read the update information UINFa stored in the storage device 340a (S120b). For example, the management server 100b periodically sends read request RREQ to the information storage device 300a. The information storage device 300a receives the read request RREQ from the management server 100b (S320a). Then, the information storage device 300a sends the update information UINFa stored in the storage device 340a to the management server 100b as a response to the read request RREQ (S322a). If the update information UINFa is not stored in the storage device 340a, the information storage device 300a may send information indicating that the update information UINFa is not stored in the storage device 340a as a response to the read request RREQ to the management server 100b.
[0067] The management server 100b receives update information UINFa from the information storage device 300a as a response to the read request RREQ (S122b). Then, the management server 100b sends the update information UINFa obtained from the storage device 340a to the database server 200b in order to update the contents of the database DBb based on the update information UINFa obtained from the storage device 340a (S124b).
[0068] The database server 200b receives update information UINFa from the management server 100b (S220b). Then, the database server 200b reflects the contents of the update information UINFa received from the management server 100b into the database DBb (S222b). In other words, the database server 200b updates the database DBb based on the update information UINFa received from the management server 100b. Then, the database server 200b sends response information ACKa to the management server 100b indicating that the contents of the update information UINFa have been reflected in the database DBb (S224b).
[0069] The management server 100b receives response information ACKa from the database server 200b (S126b). The management server 100b then sends deletion instruction information DINS to the information storage device 300a, instructing it to delete the update information UINFa stored in the storage device 340a (S128b). The information storage device 300a receives the deletion instruction information DINS from the management server 100b (S324a). The information storage device 300a then deletes the update information UINFa from the storage device 340a based on the deletion instruction information DINS (S326a).
[0070] Thus, if the update information UINFa is stored in the storage device 340a during the period when the system 10b is operating as a standby system, the standby processing execution unit 124b of the management server 100b retrieves the update information UINFa from the storage device 340a. Then, based on the update information UINFa retrieved from the storage device 340a, the standby processing execution unit 124b updates the contents of the database DBb via the database server 200b. Furthermore, if the contents of the database DBb have been updated based on the update information UINFa, the standby processing execution unit 124b sends deletion instruction information DINS to the system 10a, instructing it to delete the update information UINFa stored in the storage device 340a.
[0071] As a result of the execution of the process described in step S222b, for example, the contents of database DBb will match the contents of database DBa. In other words, databases DBa and DBb will synchronize with each other.
[0072] Thus, in this embodiment, the management server 100b of system 10b can match the contents of database DBb with the contents of database DBa without accessing database DBa of system 10a. As a result, in this embodiment, for example, even while a synchronization process is being executed to synchronize database DBa and DBb with each other, the call processing server 400a and the management server 100a can access database DBa without waiting for the synchronization process to finish. Therefore, in this embodiment, the synchronization process can be prevented from affecting the extension call connection process by the call processing server 400a and the database DBa update process by the management server 100a.
[0073] In the following, the process of storing instruction information CINF as update information UINF in the storage device 340 (for example, the series of processes in steps S110a, S300a, and S302a) will also be referred to as the storage process. Furthermore, the process of reflecting the contents of the update information UINF stored in the storage device 340 to the database DB (for example, the series of processes in steps S120b-S128b, S220b-S224b, and S320a-S326a) will also be referred to as the reflection process. For example, a process that includes both the storage process and the reflection process will be considered a synchronization process.
[0074] Figure 8 is a sequence chart showing another example of the operation of the redundant system 1 shown in Figure 1. Processes similar to those described in Figure 7 are denoted by the same reference numerals, and detailed explanations are omitted. Figure 8 shows an example of the operation of the redundant system 1 when a failure or other abnormality occurs in system 10a, which is operating as the operational system, and the operational period begins in system 10b. For example, the operation of the redundant system 1 shown in Figure 8 corresponds to the operation of the redundant system 1 from time T20 onwards shown in Figure 7.
[0075] In Figure 8, we assume a scenario where an anomaly occurs in system 10a, which is operating as an operational system, and the operational period begins in system 10b before the standby processing execution unit 124b acquires the update information UINFa stored in the storage device 340a. For example, at time T20, before the transmission of instruction information CINF2 by terminal device 500 (S500) is executed, databases DBa and DBb are synchronized with each other. Then, at time T30, after time T20, an anomaly occurs in system 10a before the standby processing execution unit 124b acquires the update information UINFa stored in the storage device 340a.
[0076] The operation until the instruction information CINF2 is stored in the storage device 340a is the same as the operation until the instruction information CINF1 is stored in the storage device 340a as described in Figure 7. For example, terminal device 500 sends instruction information CINF2 to management server 100a (S500). Management server 100a receives instruction information CINF2 from terminal device 500 and sends instruction information CINF2 to database server 200a (S100a and S102a). Database server 200a receives instruction information CINF2 from management server 100a and reflects the contents of instruction information CINF2 in database DBa (S200a and S202a). Then, database server 200a sends response information ACK2 to management server 100a indicating that the contents of instruction information CINF2 have been reflected in database DBa (S204a).
[0077] The management server 100a receives response information ACK2 from the database server 200a and transmits the response information ACK2 to the terminal device 500 (S104a and S106a). The terminal device 500 receives the response information ACK2 from the management server 100a (S502). The management server 100a also transmits the instruction information CINF2 received from the terminal device 500 to the information storage device 300a (S110a). The information storage device 300a receives the instruction information CINF2 from the management server 100a and stores the instruction information CINF2 as update information UINFa in the storage device 340a (S300a and S302a).
[0078] Then, at time T30, before the standby processing execution unit 124b acquires the update information UINFa stored in the storage device 340a, an anomaly occurs in system 10a. As a result, at time T32, the operational period begins in system 10b with the contents of database DBb differing from the contents of database DBa. Since system 10b is operating as the operational system, the management server 100b receives instruction information CINF to update the contents of database DBb.
[0079] For example, terminal device 500 sends instruction information CINF3 to management server 100a (S500). Management server 100b receives instruction information CINF3 from terminal device 500 and sends instruction information CINF3 to database server 200a (S100b and S102b). Database server 200b receives instruction information CINF3 from management server 100b and reflects the contents of instruction information CINF3 in database DBb (S200b and S202b). Then, database server 200b sends response information ACK3 to management server 100b indicating that the contents of instruction information CINF3 have been reflected in database DBb (S204b).
[0080] The management server 100b receives response information ACK3 from the database server 200b and transmits the response information ACK3 to the terminal device 500 (S104b and S106b). The terminal device 500 receives the response information ACK3 from the management server 100b (S502). The management server 100b also transmits the instruction information CINF3 received from the terminal device 500 to the information storage device 300b (S110b). The information storage device 300b receives the instruction information CINF3 from the management server 100b and stores the instruction information CINF3 as update information UINFb in the storage device 340b (S300b and S302b).
[0081] The update information UINFb stored in the storage device 340b is used by the system 10a, for example, when the system 10a is restored, to match the contents of database DBa with the contents of database DBb.
[0082] Thus, in this embodiment, even if an abnormality occurs in one of systems 10a and 10b, the other system 10a and 10b will continue to operate as the operational system, and therefore, predetermined services such as internal telephone services can be provided continuously.
[0083] Figure 9 is a sequence chart showing another example of the operation of the redundant system 1 shown in Figure 1. Processes similar to those described in Figures 7 and 8 are denoted by the same reference numerals, and detailed explanations are omitted. Figure 9 shows an example of the operation of the redundant system 1 when system 10a recovers from an abnormality. For example, the operation of the redundant system 1 shown in Figure 9 corresponds to the operation of the redundant system 1 when system 10a recovers at time T50, which is later than time T40 shown in Figure 8.
[0084] System 10a starts operating as a standby system after recovering from an anomaly. That is, at time T50, the standby period begins for system 10a. Upon the recovery of system 10a, management server 100a sends a recovery notification RINF to management server 100b indicating that system 10a has recovered (S130a). Management server 100b receives the recovery notification RINF from management server 100a (S140b). Then, upon receiving the recovery notification RINF, management server 100b sends input lock information LOC to terminal device 500 indicating that it will stop accepting instruction information CINF (S142b).
[0085] The terminal device 500 receives input lock information LOC from the management server 100b (S520). The terminal device 500 then locks the input of instructions to the management server 100b (S522). For example, the terminal device 500 stops accepting operations to generate instruction information CINF.
[0086] Furthermore, the management server 100b of system 10b sends a read request RREQ to the information storage device 300a of system 10a, requesting to read the update information UINFa stored in the storage device 340a (S144b).
[0087] The information storage device 300a receives a read request RREQ from the management server 100b (S340a). The information storage device 300a then sends the update information UINFa stored in the storage device 340a to the management server 100b as a response to the read request RREQ (S342a). If the update information UINFa is not stored in the storage device 340a, the information storage device 300a may send information indicating that the update information UINFa is not stored in the storage device 340a to the management server 100b as a response to the read request RREQ.
[0088] The management server 100b receives update information UINFa from the information storage device 300a as a response to the read request RREQ (S146b). The management server 100b also sends a read request RREQ to the information storage device 300b requesting to read the update information UINFb stored in the storage device 340b (S148b).
[0089] The information storage device 300b receives a read request RREQ from the management server 100b (S344b). The information storage device 300b then sends the update information UINFb stored in the storage device 340b to the management server 100b as a response to the read request RREQ (S346b). If the update information UINFb is not stored in the storage device 340b, the information storage device 300b may send information indicating that the update information UINFb is not stored in the storage device 340b as a response to the read request RREQ to the management server 100b.
[0090] The management server 100b receives update information UINFb from the information storage device 300b as a response to the read request RREQ (S150b). Then, the management server 100b determines, based on the update information UINFa and UINFb, whether or not to perform a recovery process to reflect the contents of update information UINFa in the database DBb (S152b). A specific example of the method for determining whether or not to perform the recovery process will be explained in Figure 10 below. In the example shown in Figure 9, it is assumed that the recovery process will be performed, that is, the management server 100b determines to perform the recovery process.
[0091] For example, the management server 100b sends update information UINFdif to the database server 200b, which indicates the updates shown by update information UINFa that have not yet been reflected in the database DBb (S154b).
[0092] The database server 200b receives update information UINFdif from the management server 100b (S240b). Then, the database server 200b reflects the contents of the update information UINFdif received from the management server 100b into the database DBb (S242b). In other words, the database server 200b reflects the contents of the unreflected instruction information CINF that were not reflected in the database DBb due to an abnormality in system 10a into the database DBb. As a result, the contents of the database DBb after system 10a is restored will be the same as the contents of the database DBb that would have been stored if the operation period of system 10b had started with the contents of the database DBb matching the contents of the database DBa.
[0093] Thus, in this embodiment, the contents of database DBb after system 10a has been restored can be made to be the same as the contents of database DBb when the operating period of system 10b begins with databases DBa and DBb synchronized with each other.
[0094] Furthermore, the database server 200b sends a response message ACKdif to the management server 100b indicating that the contents of the update information UINFdif have been reflected in the database DBb (S244b).
[0095] The management server 100b receives the response information ACKdif from the database server 200b (S156b). Then, as a response to the recovery notification RINF, the management server 100b sends the response information ACKr, indicating that the recovery process has been completed, to the management server 100a and the information storage device 300a of system 10a (S158b).
[0096] The information storage device 300a receives the response information ACKr from the management server 100b (S325a). Then, because the recovery process is complete, the information storage device 300a deletes the update information UINFa from the storage device 340a (S326a). Alternatively, instead of sending the response information ACKr to the information storage device 300a, the management server 100b may send the deletion instruction information DINS to the information storage device 300a, instructing it to delete the update information UINFa stored in the storage device 340a.
[0097] Furthermore, the management server 100b sends unlock information UNL to the terminal device 500, indicating that it has released the suspension of accepting instruction information CINF, upon receiving the response information ACKdif (S162b).
[0098] Terminal device 500 receives unlock information UNL from management server 100b (S524). Then, terminal device 500 releases the lock on input to instruction to management server 100b (S526). For example, terminal device 500 resumes accepting operations to generate instruction information CINF.
[0099] Thus, in this embodiment, when the operation processing execution unit 122b detects the recovery of the system 10a, it stops accepting instruction information CINF until it has finished determining whether or not to execute the recovery process. This prevents the generation of new instruction information CINF during the determination of whether or not to execute the recovery process. As a result, this embodiment prevents the determination process of whether or not to execute the recovery process from becoming complicated.
[0100] Furthermore, in this embodiment, if the operation processing execution unit 122b determines that it is necessary to perform recovery processing, it stops accepting instruction information CINF until the recovery processing is completed. This prevents the generation of new instruction information CINF during the execution of recovery processing in this embodiment. As a result, this embodiment prevents the recovery processing from becoming complicated.
[0101] Furthermore, the management server 100a can recognize that the recovery process has been completed by receiving the response information ACKr from the management server 100b (S160a). Then, since the recovery process has been completed, the management server 100a works in cooperation with the database server 200a and the information storage device 300b of the system 10b to perform the reflection process (S120a-S128a, S220a-S224a, and S320b-S326b). As a result, for example, at time T60, databases DBa and DBb are synchronized with each other.
[0102] Figure 10 is an explanatory diagram illustrating the decision process for determining whether or not to perform recovery processing. In Figure 10, as with Figures 8 and 9 described above, it is assumed that an abnormality occurs in system 10a before the standby processing execution unit 124b acquires the update information UINFa stored in storage device 340a. In Figure 10, among the multiple items in each record R of the database DB, the items updated by the instruction information CINF are shown in shaded areas. In Figure 10, for the sake of clarity, the decision process and other aspects are explained based on the operation of the redundant system 1 shown in Figures 8 and 9 described above.
[0103] The standby system update information UINFa indicates the update information UINFa that was stored in the storage device 340a at the time the abnormality occurred in system 10a (time T30 in Figure 8). For example, instruction information CINF, which indicates the update content for records R2 and R4 of database DBa, is stored in the storage device 340a as update information UINFa.
[0104] Furthermore, the operational system update information UINFb indicates the update information UINFb accumulated in the storage device 340b during the period from the time the operational period started in system 10b (for example, time T32 in Figure 8) to the time system 10a was restored (for example, time T50 in Figure 9). For example, instruction information CINF indicating the update content for each of the records R5, R6, and R4 of the database DBb is accumulated in the storage device 340b as update information UINFb.
[0105] The operation processing execution unit 122b of the management server 100b compares, for example, the update information UINFa stored in the storage device 340a with the update information UINFb stored in the storage device 340b, triggered by the receipt of the recovery notification RINF. In Figure 10, the black star indicates record R2, which is different from records R5, R6, and R4, which are indicated by update information UINFb, among records R2 and R4 indicated by update information UINFa. Also, the white star in Figure 10 indicates record R4, which is the same as records R5, R6, and R4, which are indicated by update information UINFb, among records R2 and R4, which are indicated by update information UINFa.
[0106] In the example shown in Figure 10, among records R2 and R4 indicated by update information UINFa, record R2 is a different record R from records R5, R6, and R4 indicated by update information UINFb. Therefore, record R2 in database DBb has not been updated since time T20 in Figure 8, for example.
[0107] In other words, in the example shown in Figure 10, one or more records R(R2 and R4) indicated by update information UINFa include an unreflected record R(R2) that is different from one or more records R(R5, R6 and R4) indicated by update information UINFb. In this case, the operation processing execution unit 122b determines to perform recovery processing. The operation processing execution unit 122b then reflects the contents of the unreflected record R(R2) indicated by update information UINFa in the database DBb.
[0108] For example, the operation processing execution unit 122b sends update information UINFdif, which indicates the update content of record R2 that has not been reflected, among the update content (update content of records R2 and R4) indicated by update information UINFa, to the database server 200b. As a result, the contents of the unreflected update information UINFdif, which were not reflected in the database DBb due to an abnormality or other issue in system 10a, are reflected in database DBb.
[0109] Thus, in this embodiment, for example, when system 10a is restored, databases DBa and DBb can be synchronized with each other without comparing all the information stored in database DBb with all the information stored in database DBa. For example, after system 10 (the old operational system 10) that has experienced a failure or other abnormality is restored, a configuration can be considered in which all the information stored in the operational system's database DB is compared with all the information stored in the standby system's (old operational system's) database DB (hereinafter also referred to as proportional comparison). In proportional comparison, since the contents of the two databases DB are compared, the amount of comparison increases compared to this embodiment in which the contents of two update information UINFs are compared. In other words, in this embodiment, the amount of comparison required for the recovery process can be reduced compared to proportional comparison. Therefore, in this embodiment, an increase in the load of the recovery process can be suppressed.
[0110] For example, in the example shown in Figure 10, if the multiple records R indicated by the update information UINFb include both records R2 and R4, the operation processing execution unit 122b determines that it does not perform recovery processing because there are no unreflected records R. In this case, for example, the series of processes in steps S154b, S156b, S240b, S242b and S244b shown in Figure 9 are not executed.
[0111] Furthermore, if update information UINFa is stored in storage device 340a but update information UINFb is not stored in storage device 340b, the operation processing execution unit 122b determines to execute recovery processing. In this case, the operation processing execution unit 122b sends the update information UINFa stored in storage device 340a to the database server 200b as unreflected update information UINFdif. That is, if update information UINFb is not stored in storage device 340b, the operation processing execution unit 122b reflects the contents of all records R indicated by update information UINFa in the database DBb. Note that the determination based on whether update information UINFa is stored in storage device 340a but not in storage device 340b is included in the determination based on update information UINFa and UINFb.
[0112] In this embodiment, the management server 100a included in system 10a of the redundant system 1, in which one of systems 10a and 10b operates as the operational system and the other operates as the standby system, has an operational processing execution unit 122a and a standby processing execution unit 124a.
[0113] The operation processing execution unit 122a receives instruction information CINF for updating the contents of the database DBa included in system 10a during the period when system 10a is operating as an operational system (system 10a's operational period). When the operation processing execution unit 122a receives instruction information CINF during system 10a's operational period, it updates the contents of the database DBa based on the instruction information CINF and stores the instruction information CINF as update information UINFa in the storage device 340a included in system 10a.
[0114] The standby processing execution unit 124a retrieves the update information UINFb from the storage device 340b included in system 10b if the update information UINFb is stored in the storage device 340b included in system 10b during the period when system 10a is operating as a standby system (system 10a's standby period). Then, the standby processing execution unit 124a updates the contents of database DBa based on the update information UINFb. Note that the update information UINFb is the update information UINF used to update the contents of database DBb included in system 10b.
[0115] Furthermore, if an abnormality occurs in system 10b, which is operating as the operational system, the operational period may start in system 10a before the standby processing execution unit 124a acquires the update information UINFb stored in the storage device 340b. In this case, the operational processing execution unit 122a determines whether or not to perform a recovery process to reflect the contents of the update information UINFb in the database DBa, based on the update information UINFa and UINFb, triggered by the recovery of system 10b.
[0116] In this manner, the operation processing execution unit 122a determines whether or not to execute the recovery process based on the update information UINFa and UINFb. Therefore, in this embodiment, compared to a configuration in which the recovery process is executed based on a comparison of the contents of two databases, for example, it is possible to suppress an increase in the processing load required to determine whether or not to execute the recovery process. In other words, in this embodiment, it is possible to synchronize the standby database DB with the operational database DB while suppressing an increase in the processing load required for resynchronization after the system 10 (the old operational system 10) that has experienced an abnormality such as a failure has recovered.
[0117] Furthermore, in this embodiment, when the contents of the database DBa are updated based on the update information UINFb, the standby processing execution unit 124a sends deletion instruction information DINS to the system 10b, instructing the deletion of the update information UINFb stored in the storage device 340b. This prevents the storage device 340b from accumulating update information UINFb that has already been reflected in the database DBa. Also, in this embodiment, since the update information UINFb that has already been reflected in the database DBa is deleted from the storage device 340b, update information UINFb that has not yet been reflected in the database DBa can be easily obtained from the storage device 340b.
[0118] Furthermore, in this embodiment, when the operation processing execution unit 122a detects the recovery of the system 10b, it stops accepting instruction information CINF until the determination of whether or not to execute the recovery process is completed. This prevents the update information UINFa (instruction information CINF stored in the storage device 340a), which is used in the determination process of whether or not to execute the recovery process, from changing. As a result, in this embodiment, the determination process of whether or not to execute the recovery process can be prevented from becoming complicated.
[0119] In this embodiment, each of the databases DBa and DBb contains multiple records R in which multiple registration information is stored. When determining whether or not to perform recovery processing, the operation processing execution unit 122a determines to perform recovery processing if one or more records R indicated by the update information UINFb contain unreflected records R that are different from one or more records R indicated by the update information UINFa. The operation processing execution unit 122a then reflects the contents of the unreflected records R indicated by the update information UINFb in the database DBa.
[0120] Thus, in this embodiment, for example, when system 10b is restored, the recovery process can be executed without comparing all the information stored in database DBa with all the information stored in database DBb. Therefore, in this embodiment, the increase in the load of the recovery process can be suppressed compared to a form in which the recovery process is executed based on the comparison result of the stored contents of the two databases DB. In addition, in this embodiment, the decision of whether or not to execute the recovery process is performed on a per-record R basis in database DB. Therefore, in this embodiment, the decision of whether or not to execute the recovery process can be performed more easily compared to a case in which the decision of whether or not to execute the recovery process is performed on a per-registered item basis in record R.
[0121] Furthermore, in this embodiment, the operation processing execution unit 122a causes the terminal device 500, which receives an operation to generate instruction information CINF, to display all of the multiple registration information stored in the record R to be updated based on the instruction information CINF. This allows the administrator Cer operating the terminal device 500 to easily recognize the current registration content of the record R to be updated. Moreover, in this embodiment, the instruction information CINF includes all of the multiple registration information stored in the record R to be updated based on the instruction information CINF. This allows the administrator Cer to easily confirm the updated registration content of the record R to be updated when determining the update content by, for example, an operation to generate instruction information CINF.
[0122] [2. Variant] The present invention is not limited to the embodiments illustrated above. Specific variations are illustrated below. Two or more embodiments arbitrarily selected from the following examples may be combined.
[0123] [First variation] In the embodiments described above, the operation of the redundant system 1 when the management server 100 operating as the operational system is restarted is not specifically described. However, when the management server 100 operating as the operational system is restarted, the redundant system 1 may operate as shown in Figure 11.
[0124] Figure 11 is a sequence chart showing an example of the operation of a redundant system 1 using the management server 100 according to the first modified example. The operation shown in Figure 11 corresponds to the operation shown in Figure 7. In Figure 11, it is assumed that the management server 100a restarts at time T18, before the instruction information CINF1 is stored in the storage device 240a as update information UINFa. Note that time T18 is after time T10, when the operation period of system 10a and the standby period of system 10b begin. Processes similar to those described in Figure 7 are denoted by the same reference numerals, and detailed explanations are omitted.
[0125] The operation shown in Figure 11 is the same as the operation shown in Figure 7, except that the update flag PFLG is set, the management server 100a is restarted, and the error information EINF is sent to the terminal device 500 after the management server 100a is restarted.
[0126] The Update Flag PFLG is a flag that indicates whether or not an update process is currently running, for example, an update process that updates the database DB based on instruction information CINF. An Update Flag PFLG set to "1" indicates that an update process is running, while an Update Flag PFLG set to "0" indicates that an update process is not running. In Figure 11, it is assumed that the initial value of the Update Flag PFLG is "0". Also in Figure 11, it is assumed that the state of the Update Flag PFLG does not change even if the management server 100a is restarted.
[0127] First, the terminal device 500 sends instruction information CINF1 to the management server 100a (S500). The management server 100a receives instruction information CINF1 from the terminal device 500 (S100a). Then, because the management server 100a has received instruction information CINF1 from the terminal device 500, it sets the updating flag PFLG to "1" (S101a).
[0128] The management server 100a sends instruction information CINF1 to the database server 200a (S102a). The database server 200a receives instruction information CINF1 from the management server 100a and reflects the contents of instruction information CINF1 in the database DBa (S200a and S202a). Then, the database server 200a sends response information ACK1 to the management server 100a indicating that the contents of instruction information CINF1 have been reflected in the database DBa (S204a).
[0129] The management server 100a receives response information ACK1 from the database server 200a and sends response information ACK1 to the terminal device 500 (S104a and S106a). The terminal device 500 receives response information ACK1 from the management server 100a (S502).
[0130] Then, at time T18, before the management server 100a sends instruction information CINF1 to the information storage device 300a, the management server 100a restarts. Note that the restart of the management server 100a corresponds to the restart of system 10a.
[0131] After restarting, the management server 100a recognizes that the update flag PFLG is set to "1", and therefore the instruction information CINF1 has not been stored in the storage device 240a. For this reason, the management server 100a sends error information EINF, indicating that the instruction information CINF1 has not been stored in the storage device 240a, to the terminal device 500 that received the operation to generate the instruction information CINF1 (S108a).
[0132] The terminal device 500 receives error information EINF from the management server 100a (S503). For example, the terminal device 500 notifies the administrator Cer that instruction information CINF1 has not been stored in the storage device 240a. Specifically, the terminal device 500 displays information on its display indicating that instruction information CINF1 has not been stored in the storage device 240a. This allows the administrator Cer to recognize that instruction information CINF1 has not been stored in the storage device 240a. For this reason, the administrator Cer executes an instruction operation to the terminal device 500 to store instruction information CINF1 in the storage device 240a. The instruction operation to store instruction information CINF1 is similar to the operation to generate instruction information CINF1, except that the contents of instruction information CINF1 are not reflected in the database DBa.
[0133] For example, terminal device 500 that receives an instruction operation to store instruction information CINF1 generates instruction information rCINF1 for storing instruction information CINF1 in storage device 240a, and transmits the generated instruction information rCINF1 to management server 100a (S504). Instruction information rCINF1 may be, for example, instruction information CINF1 with information added to indicate that the instruction information CINF1 should be stored in storage device 340a without being reflected in database DBa.
[0134] The management server 100a receives instruction information rCINF1 from the terminal device 500 (S109a). Based on the instruction information rCINF1 received from the terminal device 500, the management server 100a transmits the instruction information CINF1 to the information storage device 300a (S110a). The information storage device 300a receives the instruction information CINF1 from the management server 100a and stores the instruction information CINF1 in the storage device 340a as update information UINFa (S300a and S302a). The information storage device 300a then transmits storage completion information FINF to the management server 100a, indicating that the instruction information CINF1 has been stored in the storage device 340a (S304a).
[0135] Furthermore, after the instruction information CINF1 is stored in the storage device 340a as update information UINFa, the process of reflecting the update information UINFa is executed in the same manner as shown in Figure 7 (S320a, S322a, S120b, and S122b, etc.). When the information storage device 300a stores the instruction information CINF1 as update information UINFa in the storage device 340a, it sends storage completion information FINF to the management server 100a regardless of whether the management server 100a has been restarted or not.
[0136] The management server 100a receives the storage completion information FINF from the information storage device 300a (S112a). This allows the management server 100a to recognize that the instruction information CINF1 has been stored in the storage device 340a. Since the instruction information CINF1 has been stored in the storage device 340a, the management server 100a sets the updating flag PFLG to "0" (S114a).
[0137] Thus, in this modified configuration, even if the management server 100a is restarted, the instruction information CINF1 can be stored in the storage device 340a as update information UINFa through an operation on the terminal device 500 by the administrator Cer. As a result, in this modified configuration, even if the management server 100a is restarted, databases DBa and DBb can be synchronized with each other.
[0138] Note that the operation of the redundant system 1 using the management server 100 according to the first modified example is not limited to the example shown in Figure 11. For example, if administrator Cer is notified that instruction information CINF1 has not been stored in the storage device 240a, instead of executing the storage instruction operation, administrator Cer may re-execute the operation to generate instruction information CINF1. In this case, the process of reflecting the contents of instruction information CINF1 in the database DBa is executed again, but instruction information CINF1 can be stored in the storage device 340a as update information UINFa.
[0139] Furthermore, as another form of the first modification, the management server 100a may temporarily store the instruction information CINF1 in a predetermined storage area where the information is retained even after a restart. In this case, instead of setting the updating flag PFLG to "1", the management server 100a stores the instruction information CINF1 in the predetermined storage area. Then, after a restart, instead of sending the error information EINF to the terminal device 500, the management server 100a sends the instruction information CINF1 held in the predetermined storage area to the information storage device 300a. Also, instead of setting the updating flag PFLG to "0", the management server 100a deletes the instruction information CINF1 from the predetermined storage area. In this form (another form of the first modification), the administrator Cer does not need to perform storage instruction operations, etc., thus improving the usability of the redundant system 1. Furthermore, in this form, after the management server 100a is restarted, the instruction information CINF1 can be stored in the storage device 340a as update information UINFa without depending on operations by the administrator Cer.
[0140] Furthermore, for example, in another form of the first modification, when the information storage device 300a stores the instruction information CINF1 as update information UINFa in the storage device 340a, it may send storage completion information FINF to the management server 100a and the management server 100b of the system 10b. In this case, the management server 100b of the system 10b may send a read request RREQ to the information storage device 300a of the system 10a upon receiving the storage completion information FINF.
[0141] As described above, the same effects as those of the embodiment described can be obtained in this modified version as well. Furthermore, in this modified version, if the system 10a restarts before the operation processing execution unit 122a stores the instruction information CINF1 as update information UINFa in the storage device 340a, the system 10a sends error information EINF to the terminal device 500 after the system 10a restarts. As a result, in this modified version, when the system 10a restarts, it is possible to prevent the system 10a from being operated without the instruction information CINF1 being stored as update information UINFa in the storage device 340a.
[0142] [Second variation] In the embodiments and modifications described above, it is not specifically determined whether the contents of the update information UINF stored in the storage device 340 of the system 10 that has recovered from an abnormality are normal or not. However, it is possible to determine whether the contents of the update information UINF are normal or not. Note that "normal or not" means "normal or abnormal."
[0143] Figure 12 is an explanatory diagram illustrating an example of the operation of the redundant system 1 using the management server 100 according to the second modified example. Figure 12 also shows an example of update information UINF used in the redundant system 1 using the management server 100 according to the second modified example.
[0144] The update information UINFa shown in Figure 12 is the same as the update information UINF shown in Figure 6, except that a recovery flag has been added. However, in Figure 12, for the sake of clarity, we assume that in addition to records R2 and R4 stored in the update information UINF shown in Figure 6, record R3 is also stored in the update information UINFa. The contents of record R3 in the update information UINFa show the contents of the instruction information CINF (contents of record R3 after the update) received by the operation processing execution unit 122 at 13:09:40 on March 23, 2021.
[0145] The recovery flag is an example of "first decision information" and "second decision information". If update information UINFa corresponds to "first update information", the recovery flag of update information UINFa corresponds to "first decision information", and if update information UINFa corresponds to "second update information", the recovery flag of update information UINFa corresponds to "second decision information". The recovery flag is stored in the update information UINF, for example, in association with record R, and indicates whether the contents of the corresponding record R are normal or not. In Figure 12, a circle on the recovery flag indicates that the contents of record R are normal, and an "x" on the recovery flag indicates that the contents of record R are not normal.
[0146] For example, when the system 10a recovers from an abnormality, the standby processing unit 124a determines whether the contents of the update information UINFa stored in the storage device 340a are normal for each record R. The method for determining whether the contents of the update information UINFa are normal is not particularly limited. For example, the standby processing unit 124a may determine that the contents of the update information UINFa are normal if there are no internal errors.
[0147] The standby processing unit 124a then stores a recovery flag in the storage device 340a, associating it with the update information UINFa to indicate whether the content of the update information UINFa is normal or not for each record R. The operation processing unit 122b of system 10b can recognize whether the content of the update information UINFa is normal or not for each record R by checking the recovery flag.
[0148] For example, in the update information UINFa shown in Figure 12, neither record R3 nor R4 stores the destination telephone number, but the recovery flag for record R4 indicates that the contents of record R4 are normal. In contrast, the recovery flag for record R3 indicates that the contents of record R3 are not normal. As a result, the operation processing execution unit 122b can recognize that, among the update contents shown by the update information UINFa, the contents of records R2 and R4 are normal, while the contents of record R3 are not normal.
[0149] Of the one or more records R (R2, R4, and R3) indicated by the update information UINFa, the abnormal record R3 is not selected as an unreflected record R, regardless of the update content indicated by the operational system's update information UINFb. For example, if a recovery flag indicating whether the update information UINFa is normal or not is associated with the update information UINFa, the operational processing execution unit 122b refers to the recovery flag. Then, the operational processing execution unit 122b does not reflect the contents of the record R identified as abnormal based on the recovery flag from the one or more records R indicated by the update information UINFa into the database DBb. As a result, in the second modified example, it is possible to suppress the reflection of the contents of abnormal record R into the database DBb.
[0150] In this modified example, the same effects as those of the embodiment and modified example described above can be obtained. Furthermore, in this modified example, it is possible to suppress the reflection of the contents of one or more records R indicated by the standby system's update information UINF, which are identified as abnormal based on the recovery flag, into the operational system's database DB.
[0151] [Third variation] In the embodiments and modifications described above, the determination of whether or not to perform the recovery process is performed on a per-record R basis in the database DB. However, the present invention is not limited to such embodiments. For example, as shown in Figure 13, the determination of whether or not to perform the recovery process may be performed on a per-registered item basis in the record R.
[0152] Figure 13 is an explanatory diagram illustrating the determination process in a redundant system 1 using a management server 100 according to the third modified example. In Figure 13, as with Figure 10 above, it is assumed that an abnormality occurs in system 10a before the standby processing execution unit 124b acquires the update information UINFa stored in the storage device 340a. Furthermore, in Figure 13, it is assumed that among the multiple registration information stored in record R, only the key information that identifies the record R to be updated, the registration information to be updated, and the reception date and time are included in the instruction information CINF. However, the instruction information CINF may include all of the multiple registration information stored in record R, as in the example shown in Figure 10.
[0153] In Figure 13, the decision-making process and other related operations are explained based on the operation of the redundant system 1 shown in Figures 8 and 9 above, in order to make the explanation easier to understand.
[0154] The standby system's update information UINFa indicates the update information UINFa that was stored in the storage device 340a at the time the abnormality occurred in system 10a (time T30 in Figure 8). For example, instruction information CINF indicating the update content for the transfer setting of record R2 in database DBa, and instruction information CINF indicating the update content for the transfer setting and transfer destination of record R4 are stored in the storage device 340a as update information UINFa. In the example shown in Figure 13, the transfer setting of record R2 and the transfer setting and transfer destination of record R4 correspond to the update items (updated registered items) indicated by the update information UINFa.
[0155] Furthermore, the operational system update information UINFb indicates the update information UINFb accumulated in the storage device 340b during the period from the time the operational period started in system 10b (for example, time T32 in Figure 8) to the time system 10a was restored (for example, time T50 in Figure 9). For example, instruction information CINF indicating the update content for each of the transfer settings of records R5, R6, and R4 of the database DBb is accumulated in the storage device 340b as update information UINFb. In the example shown in Figure 13, the transfer settings of record R5, record R6, and record R4 correspond to the update items indicated by the update information UINFb.
[0156] In Figure 13, the black stars indicate update items that differ from those indicated by update information UINFb (transfer settings for record R2 and transfer destination for record R4) among the update items indicated by update information UINFa. In Figure 10, the white stars indicate update items that are the same as those indicated by update information UINFb among the update items indicated by update information UINFa (transfer settings for record R4).
[0157] For example, the operation processing execution unit 122b of the management server 100b compares the update information UINFa stored in the storage device 340a with the update information UINFb stored in the storage device 340b, triggered by the receipt of the recovery notification RINF.
[0158] The operation processing execution unit 122b then determines to execute a recovery process if the update items, which are one or more updated registered items indicated by the update information UINFa, include unreflected items that are different from the one or more update items indicated by the update information UINFb. In the example shown in Figure 13, among the one or more update items indicated by the update information UINFa, the transfer setting of record R2 and the transfer destination of record R4 are unreflected items that are different from the one or more update items indicated by the update information UINFb. Therefore, in the example shown in Figure 13, the operation processing execution unit 122b determines to execute a recovery process.
[0159] Furthermore, if the operation processing execution unit 122b determines that recovery processing should be performed, it reflects the contents of the unreflected items indicated by the update information UINFa into the database DBb. For example, the operation processing execution unit 122b sends update information UINFdif, which indicates the contents of the unreflected items among the update items indicated by the update information UINFa, to the database server 200b. In the example shown in Figure 13, update information UINFdif indicating that the transfer setting for record R2 is enabled (a setting to transfer phone calls to the user corresponding to record R2) and that the transfer destination phone number for record R4 is deleted is sent to the database server 200b. As a result, the contents of the unreflected items (the contents of the unreflected items indicated by the update information UINFdif) that were not reflected in the database DBb due to an abnormality or other issue in system 10a are reflected in the database DBb.
[0160] Furthermore, the operation processing execution unit 122b determines not to perform recovery processing if one or more update items indicated by update information UINFa do not include any unreflected items that differ from one or more update items indicated by update information UINFb.
[0161] As described above, the same effects as those of the embodiment and the modified example described can be obtained in this modified example as well. Furthermore, in this modified example, the determination of whether or not to perform the recovery process is performed on a per-registered item basis in record R. Therefore, in this modified example, for example, if an abnormality occurs in the operational system 10a and the update content that was not reflected in the standby system database DBb is recovered, the update content can be reflected in the database DBb for each registered item.
[0162] [Fourth variation] In the embodiments and modifications described above, the case in which the update information UINF is stored in the storage device 340 of the information storage device 300 is shown, but the present invention is not limited to such embodiments. For example, the information storage device 300 may be omitted from the system 10, and the update information UINF may be stored in the storage device 340 of the management server 100. In this case, the processing unit 120 of the management server 100 also functions as the control unit 322 shown in Figure 4.
[0163] Alternatively, the database server 200 and the information storage device 300 may be omitted from the system 10, and the database DB and update information UINF may be stored in the storage device 340 of the management server 100. In this case, the processing unit 120 of the management server 100 also functions as the control unit 222 shown in Figure 3 and the control unit 322 shown in Figure 4.
[0164] As described above, the same effects as those of the embodiment and the modified version described can be obtained in this modified version as well. Furthermore, in this modified version, the information storage device 300 and the like are omitted from the system 10, so the configuration of the system 10 can be simplified.
[0165] [Fifth variation] In the embodiments and modifications described above, the standby processing execution unit 124b sends deletion instruction information DINS to the system 10a to instruct the deletion of update information UINFa stored in the storage device 340a. However, the present invention is not limited to such embodiments. For example, if the contents of the database DBb are updated based on the update information UINFa, the standby processing execution unit 124b may send information to the information storage device 300a of the system 10a indicating that the contents of the update information UINFa have been reflected in the database DBb. In this case, the information storage device 300a may delete the update information UINFa from the storage device 340a, or it may store a flag in the storage device 340a that indicates that the contents of the update information UINFa have been reflected in the database DBb, associating it with the update information UINFa. In this modification as well, the same effects as in the embodiments and modifications described above can be obtained.
[0166] [Sixth variation] In the embodiments and modifications described above, the operation processing execution unit 122b is shown to stop accepting instruction information CINF until the recovery process is completed if it determines to execute the recovery process. However, the present invention is not limited to this embodiment. For example, if the operation processing execution unit 122b stops accepting instruction information CINF until it has determined whether or not to execute the recovery process, it may release the suspension of instruction information CINF acceptance before executing the recovery process. In this case, the operation processing execution unit 122b may store the instruction information CINF received during the execution of the recovery process in a storage unit such as a buffer, and after the completion of the recovery process, update the contents of the database DBb based on the instruction information CINF stored in the storage unit. The operation processing execution unit 122b may transmit the instruction information CINF received during the execution of the recovery process to the information storage device 300b during the execution of the recovery process, or it may transmit it to the information storage device 300b after the execution of the recovery process. In addition, the same effects as in the embodiments and modifications described above can be obtained in this modification as well.
[0167] [7th variation] In the embodiments and modifications described above, the system 10 is shown to include a call processing server, but the present invention is not limited to such embodiments. For example, when the system 10 provides a service for an online game conducted via a network such as the Internet to a user, it may have a game server that performs control of the online game, etc., instead of a call processing server. In this case, for example, the database DB used for the online game is stored in the storage device 240 of the database server 200. In this modification as well, the same effects as in the embodiments and modifications described above can be obtained.
[0168] [3. Others] (1) In the embodiments described above, the storage devices (e.g., storage devices 140, 240, and 340) are recording media readable by the processing devices (e.g., processing devices 120, 220, and 320), and while ROM and RAM are given as examples, flexible disks, magneto-optical disks (e.g., compact disks, digital multipurpose disks, Blu-ray® disks), smart cards, flash memory devices (e.g., cards, sticks, key drives), CD-ROMs (Compact Disc-ROMs), registers, removable disks, hard disks, floppy® disks, magnetic strips, databases, servers, and other suitable storage media are also provided. The program may also be transmitted from a network via a telecommunications line.
[0169] (2) The embodiments described above may be applied to at least one of the following systems: LTE (Long Term Evolution), LTE-A (LTE-Advanced), SUPER 3G, IMT-Advanced, 4G (4th generation mobile communication system), 5G (5th generation mobile communication system), FRA (Future Radio Access), NR (new Radio), W-CDMA (registered trademark), GSM (registered trademark), CDMA2000, UMB (Ultra Mobile Broadband), IEEE 802.11 (Wi-Fi (registered trademark)), IEEE 802.16 (WiMAX (registered trademark)), IEEE 802.20, UWB (Ultra-WideBand), Bluetooth (registered trademark), and other appropriate systems, as well as next-generation systems extended based on these. Furthermore, multiple systems may be applied in combination (for example, a combination of at least one of LTE and LTE-A and 5G).
[0170] (3) In the embodiments described above, the information, signals, etc. may be represented using any of the various different techniques. For example, the data, instructions, commands, information, signals, bits, symbols, chips, etc. that may be mentioned throughout the above description may be represented by voltage, current, electromagnetic waves, magnetic fields or magnetic particles, optical fields or photons, or any combination thereof.
[0171] (4) In the embodiments described above, the input and output information may be stored in a specific location (e.g., memory) or managed using a management table. The input and output information may be overwritten, updated, or appended to. The output information may be deleted. The input information may be transmitted to other devices.
[0172] (5) In the embodiments described above, the determination may be made by a value represented by 1 bit (0 or 1), by a boolean value (true or false), or by a numerical comparison (for example, a comparison with a predetermined value).
[0173] (6) The processing procedures, sequences, flowcharts, etc., exemplified in the embodiments described above may be rearranged in order, as long as they do not contradict each other. For example, the methods described in this disclosure present various step elements using exemplary order and are not limited to the specific order presented.
[0174] (7) Each function illustrated in the drawings such as Figure 1 is realized by any combination of at least one of hardware and software. Furthermore, the method of realizing each function block is not particularly limited. That is, each function block may be realized using one device that is physically or logically coupled, or it may be realized using two or more physically or logically separated devices that are directly or indirectly connected (for example, using wired, wireless, etc.). A function block may be realized by combining the above one device or the above multiple devices with software.
[0175] Furthermore, communication devices 160, 260, and 360 are hardware (transceiver devices) for communicating between computers via at least one of a wired network and a wireless network, and are also referred to as network devices, network controllers, network cards, communication modules, etc. Communication devices 160, 260, and 360 may be configured to include, for example, high-frequency switches, duplexers, filters, frequency synthesizers, etc., in order to implement at least one of frequency division duplex (FDD) and time division duplex (TDD).
[0176] (8) In the embodiments described above, the program should be interpreted broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executable files, execution threads, procedures, functions, etc., whether the software is called software, firmware, middleware, microcode, hardware description language or by any other name.
[0177] Furthermore, software, instructions, information, etc., may be transmitted and received via a transmission medium. For example, if software is transmitted from a website, server, or other remote source using at least one of wired technology (such as coaxial cable, fiber optic cable, twisted pair, or digital subscriber line (DSL)) and wireless technology (such as infrared or microwave), then at least one of these wired and wireless technologies is included in the definition of a transmission medium.
[0178] (9) In each of the above-mentioned forms, the terms “system” and “network” shall be used interchangeably.
[0179] (10) The information, parameters, etc. described in this disclosure may be expressed using absolute values, relative values from a given value, or other corresponding information. For example, radio resources may be indicated by an index. The names used for the parameters described above are not limited in any way. Furthermore, the formulas, etc., that use these parameters may differ from those expressly disclosed in this disclosure. Various channels (e.g., PUCCH, PDCCH, etc.) and information elements can be identified by any suitable name, so the various names assigned to these various channels and information elements are not limited in any way.
[0180] (11) In the embodiments described above, the terminal device 500 and the external telephone terminal 600 may be a mobile station (MS). A mobile station may also be referred to by those skilled in the art as a subscriber station, mobile unit, subscriber unit, wireless unit, remote unit, mobile device, wireless device, wireless communication device, remote device, mobile subscriber station, access terminal, mobile terminal, wireless terminal, remote terminal, handset, user agent, mobile client, client, or several other appropriate terms. In this disclosure, terms such as “mobile station,” “user terminal,” “user equipment (UE),” and “terminal” may be used interchangeably.
[0181] (12) In the embodiments described above, the terms “connected,” “coupled,” or any variation thereof, mean any direct or indirect connection or coupling between two or more elements, and may include the presence of one or more intermediate elements between two elements that are “connected” or “coupled” with each other. The coupling or connection between elements may be physical, logical, or a combination thereof. For example, “connection” may be read as “access.” As used in this disclosure, two elements may be considered to be “connected” or “coupled” with each other using at least one of one or more wires, cables, and printed electrical connections, and, in some non-limiting and non-exclusive examples, electromagnetic energy having wavelengths in the radio frequency domain, microwave domain, and optical (both visible and invisible) domain.
[0182] (13) In the embodiments described above, the phrase “based on” does not mean “based solely on” unless otherwise specified. In other words, the phrase “based on” means both “based solely on” and “based at least on.”
[0183] (14) The terms “determining” and “determining” as used in this disclosure may encompass a wide variety of actions. “Determining” may include, for example, judging, calculating, computing, processing, deriving, investigating, looking up, searching, inquiry (e.g., searching in a table, database or other data structure), and ascertaining. “Determining” may also include, for example, receiving (e.g., receiving information), transmitting (e.g., sending information), input, output, and accessing (e.g., accessing data in memory). Furthermore, "judgment" and "decision" can include considering something as having been "judged" or "decided" after resolving, selecting, choosing, establishing, comparing, etc. In other words, "judgment" and "decision" can include considering something as having been "judged" or "decided" after some action. Also, "judgment (decision)" can be reinterpreted as "assuming," "expecting," or "considering."
[0184] (15) Where the terms “include,” “including,” and variations thereof are used in the embodiments described above, these terms are intended to be inclusive, as is the term “comprising.” Furthermore, the term “or” as used in this disclosure is not intended to be exclusive OR.
[0185] (16) Where articles are added in translation, for example, a, an, and the in English, the disclosure may include the fact that the noun following these articles is plural.
[0186] (17) In this disclosure, the term “A and B are different” may mean “A and B are different from each other.” The term may also mean “A and B are each different from C.” Terms such as “separate” and “combine” may be interpreted in the same way as “different.”
[0187] (18) Each aspect / embodiment described herein may be used individually, in combination, or switched between as needed in practice. Furthermore, notification of certain information (e.g., notification that "X is") is not limited to explicit notification, but may also be implicit (e.g., by not providing such notification).
[0188] Although the present disclosure has been described in detail above, it will be clear to those skilled in the art that the present disclosure is not limited to the embodiments described herein. The present disclosure may be implemented in modified and altered forms without departing from the intent and scope of the present disclosure as defined by the claims. Accordingly, the descriptions in the present disclosure are for illustrative purposes only and are not intended to be restrictive in any way. [Explanation of symbols]
[0189] 1…Redundant system, 10…System, 100…Management server, 120…Processing unit, 122…Operation processing execution unit, 124…Standby processing execution unit, 140…Storage device, 160…Communication device, 200…Database server, 220…Processing unit, 222…Control unit, 240…Storage device, 260…Communication device, 300…Information storage device, 320…Processing unit, 322…Control unit, 340…Storage device, 360…Communication device, 500…Terminal device, 600…External telephone terminal, 602…Fixed telephone terminal, CINF…Instruction information, DB…Database, UINF…Update information.
Claims
1. An information processing device included in the first system of a redundant system in which one of the first system and the second system operates as the operational system and the other operates as the standby system, During a first period in which the first system is operating as the operational system, if the first system receives instruction information to update the contents of a first database included in the first system, the operational processing execution unit updates the contents of the first database based on the instruction information and stores the instruction information as first update information in a first memory included in the first system. If the second update information used to update the contents of the second database included in the second system is stored in the second memory included in the second system, during the second period in which the first system is operating as the standby system, a standby processing execution unit retrieves the second update information from the second memory and updates the contents of the first database based on the second update information. Equipped with, The aforementioned operation processing execution unit, If an abnormality occurs in the second system operating as the operational system, and the first period begins in the first system before the standby processing execution unit can acquire the second update information stored in the second memory, the system determines, based on the first and second update information, whether or not to perform a recovery process to reflect the contents of the second update information in the first database, triggered by the recovery of the second system. An information processing device characterized by the following:
2. The aforementioned waiting process execution unit, If the contents of the first database are updated based on the second update information obtained from the second memory, delete instruction information instructing the deletion of the second update information stored in the second memory is sent to the second system. The information processing apparatus according to feature 1.
3. The aforementioned operation processing execution unit, If recovery of the second system is detected, the acceptance of the instruction information is stopped until the determination of whether or not to execute the recovery process is completed. The information processing apparatus according to claim 1 or 2.
4. Each of the first and second databases includes multiple records in which multiple registration information is stored. The aforementioned operation processing execution unit, In determining whether or not to perform the recovery process, if one or more records indicated by the second update information include unreflected records that are different from one or more records indicated by the first update information, it is determined to perform the recovery process, and the contents of the unreflected records indicated by the second update information are reflected in the first database. The information processing apparatus according to any one of claims 1 to 3.
5. The aforementioned waiting process execution unit, When the first system recovers from an abnormality, it is determined for each record whether the content of the first update information stored in the first memory is normal, and the first determination information indicating whether the content of the first update information is normal for each record is stored in the first memory in association with the first update information. The aforementioned operation processing execution unit, If a second determination information indicating whether the second update information is valid or not is associated with the second update information, then the contents of one or more records indicated by the second update information that are identified as invalid based on the second determination information will not be reflected in the first database. The information processing apparatus according to feature 4.
6. Each of the first and second databases includes multiple records in which multiple registration information corresponding to multiple registration items is stored. The aforementioned operation processing execution unit, In determining whether or not to perform the recovery process, if the update items, which are updated registration items indicated by the second update information, include unreflected items that are different from the update items indicated by the first update information, it is determined to perform the recovery process, and the contents of the unreflected items indicated by the second update information are reflected in the first database. The information processing apparatus according to any one of claims 1 to 3.
Citation Information
Patent Citations
Data mirror type cluster system and synchronous control method for it
JP2005293315A
Device for making storage areas of multiplexed computer match
JP2016206865A