WO2024075306A1 - 転送方法、転送プログラム、および情報処理装置 - Google Patents

転送方法、転送プログラム、および情報処理装置 Download PDF

Info

Publication number
WO2024075306A1
WO2024075306A1 PCT/JP2022/037734 JP2022037734W WO2024075306A1 WO 2024075306 A1 WO2024075306 A1 WO 2024075306A1 JP 2022037734 W JP2022037734 W JP 2022037734W WO 2024075306 A1 WO2024075306 A1 WO 2024075306A1
Authority
WO
WIPO (PCT)
Prior art keywords
transfer
wal
information
transfer time
time
Prior art date
Application number
PCT/JP2022/037734
Other languages
English (en)
French (fr)
Inventor
元 會野
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2022/037734 priority Critical patent/WO2024075306A1/ja
Publication of WO2024075306A1 publication Critical patent/WO2024075306A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots

Definitions

  • the present invention relates to a transfer method, a transfer program, and an information processing device.
  • DR disaster recovery
  • databases are placed in different regions and synchronized between the databases.
  • the acceptable amount of undelivered data that can be lost due to a disaster is defined, for example, by the RPO (Recovery Point Objective) of the requirements specification.
  • an add table is created in which records to be added from a master table and a delete table are registered, and the delete table and add table are transferred to each location as compressed files for synchronization.
  • the master table is a table that reflects changes to the replicated databases provided at each location.
  • the delete table is a table that registers deletion information with the update information of the master table as the primary key.
  • the present invention aims to improve the efficiency of information transfer.
  • a transfer method for transferring information corresponding to stored data in a database located at a first base to a second base, the transfer method calculating a first transfer time for compressing the information and transferring it to the second base and a second transfer time for transferring the information to the second base without compressing it based on the bandwidth of the communication path between the first base and the second base and the compression load of the information, and compressing the information and transferring it to the second base if both the first transfer time and the second transfer time satisfy the target recovery point corresponding to the database, and transferring the information to the second base without compressing it if the first transfer time does not satisfy the target recovery point and the second transfer time satisfies the target recovery point.
  • One aspect of the present invention has the effect of improving the efficiency of information transfer.
  • FIG. 1 is an explanatory diagram showing an example of a transfer method according to an embodiment.
  • FIG. 2 is an explanatory diagram showing an example of a system configuration of an information processing system 200.
  • FIG. 3 is a block diagram showing an example of the hardware configuration of the transfer source device 201.
  • FIG. 4 is a block diagram showing an example of the functional configuration of the transfer source device 201.
  • FIG. 5 is an explanatory diagram showing an example of the operation of the transfer source device 201.
  • FIG. FIG. 6 is an explanatory diagram showing the correspondence relationship between the communication band and the transfer completion time.
  • FIG. 7A is an explanatory diagram (part 1) showing a first example of a transfer of wal:n.
  • FIG. 7A is an explanatory diagram (part 1) showing a first example of a transfer of wal:n.
  • FIG. 7B is an explanatory diagram (part 2) showing a first example of the transfer of wal:n.
  • FIG. 8A is an explanatory diagram (part 1) showing a second example of the transfer of wal:n.
  • FIG. 8B is an explanatory diagram (part 2) showing a second example of the transfer of wal:n.
  • FIG. 9A is an explanatory diagram (part 1) showing a third example of the transfer of wal:n.
  • FIG. 9B is an explanatory diagram (part 2) showing a third example of the transfer of wal:n.
  • FIG. 9C is an explanatory diagram (part 3) showing a third example of the transfer of wal:n.
  • FIG. 10A is an explanatory diagram (part 1) showing a fourth example of the transfer of wal:n.
  • FIG. 10A is an explanatory diagram (part 1) showing a fourth example of the transfer of wal:n.
  • FIG. 10B is an explanatory diagram (part 2) showing the fourth transfer example of wal:n.
  • FIG. 11A is an explanatory diagram (part 1) showing an example of transfer of wal:4 when compression of wal:3 is not canceled.
  • FIG. 11B is an explanatory diagram (part 2) showing an example of transfer of wal:4 when compression of wal:3 is not canceled.
  • FIG. 12 is a flowchart showing an example of a new thread start processing procedure of the transfer source device 201.
  • FIG. 13 is a flowchart (part 1) showing an example of a transfer process procedure of the transfer source device 201.
  • FIG. 14 is a flowchart (part 2) showing an example of the transfer process procedure of the transfer source device 201.
  • FIG. 15 is a flowchart (part 3) showing an example of the transfer process procedure of the transfer source device 201.
  • FIG. 1 is an explanatory diagram showing an example of a transfer method according to an embodiment.
  • an information processing device 101 is a computer that transfers information corresponding to data stored in a database 110 arranged at a first base 104 to a second base 105.
  • a base is a place that serves as a base for activities such as business.
  • the first base 104 and the second base 105 are in different regions, such as eastern Japan and western Japan.
  • the first base 104 and the second base 105 may also be, for example, different facilities or factories in the same region.
  • the stored data is, for example, new data or updated data written to the database 110.
  • the information corresponding to the stored data may also be, for example, the data itself in the database 110, or information specifying an operation on the database 110.
  • cloud services may be used to synchronize databases located in different regions.
  • Data communication between regions in cloud services is often charged on a pay-per-use basis, so it is desirable to keep communication volume as low as possible.
  • a transfer method is described that increases the efficiency of information transfer by selecting compression or no compression when transferring information corresponding to the stored data in database 110 located at first base 104 to second base 105 in order to reduce resource consumption while maintaining the target recovery point corresponding to database 110.
  • information corresponding to the stored data in the database 110 is referred to as "information d."
  • information d is temporarily stored in the memory area 130.
  • the information processing device 101 retrieves the information to be transferred (for example, information d) from the memory area 130 in the order in which it was input to the memory area 130.
  • the information processing device 101 calculates a first transfer time and a second transfer time based on the bandwidth of the communication path 103 between the first location 104 and the second location 105 and the compression load of the information d.
  • the first transfer time is the transfer time required to compress the information d and transfer it to the second location 105.
  • the second transfer time is the transfer time required to transfer the information d to the second location 105 without compressing it.
  • the bandwidth of the communication path 103 is information that indicates the amount of data that can be transferred per unit time, and changes, for example, depending on the usage status of the communication path 103.
  • the bandwidth of the communication path 103 is represented, for example, by the transmission speed (transfer rate).
  • the compression load of information d is information that indicates the load (cost) required to compress information d, and changes, for example, depending on the usage rate of the CPU (Central Processing Unit).
  • the compression load of information d is represented, for example, by the processing time required to compress information d.
  • the bandwidth of the communication path 103 and the compression load of the information d are determined, for example, based on the measured values of the information transferred from the first location 104 to the second location 105 before the information d.
  • the information transferred before the information d is, for example, the most recent five pieces of information.
  • the measured values are, for example, the transfer speed, the processing time required for compression, etc.
  • the information processing device 101 determines whether the target recovery point corresponding to the database 110 is met based on the calculated first transfer time. The information processing device 101 also determines whether the target recovery point corresponding to the database 110 is met based on the calculated second transfer time.
  • the recovery point objective corresponds to a condition that defines the target value for how far back in time data should be recovered when a failure occurs.
  • the recovery point objective can be set arbitrarily by the user.
  • the recovery point objective is specified by a time that indicates how much delay is acceptable.
  • the recovery point objective is what is known as the RPO of the required specifications.
  • the information processing device 101 may determine that the first transfer time satisfies the target recovery point when the first transfer time is less than the target recovery point.
  • the information processing device 101 may determine that the second transfer time satisfies the target recovery point when the second transfer time is less than the target recovery point.
  • the information processing device 101 may take this first time into consideration to determine whether the first transfer time and the second transfer time each satisfy the target recovery point.
  • the information processing device 101 compresses the information d and transfers it to the second base 105. Also, if the first transfer time does not satisfy the target recovery point and the second transfer time satisfies the target recovery point, the information processing device 101 transfers the information d to the second base 105 without compressing it.
  • the information d transferred to the second base 105 is received, for example, by the information processing device 102 and temporarily stored in the memory area 140.
  • the information (e.g., information d) stored in the memory area 140 is extracted in the order in which it was input to the memory area 140 and output to the database 120. However, if the information is compressed, a decompression process is performed. This allows synchronization between the databases 110 and 120.
  • the information processing device 101 can transfer information d from the first location 104 to the second location 105 by selecting compression or non-compression so as to reduce resource consumption (e.g., CPU usage, communication volume) while maintaining the target recovery point corresponding to the database 110.
  • resource consumption e.g., CPU usage, communication volume
  • This allows the information processing device 101 to increase the efficiency of information transfer when performing database synchronization between different locations (the first location 104, the second location 105).
  • FIG. 2 is an explanatory diagram showing an example of the system configuration of an information processing system 200.
  • the information processing system 200 includes a source device 201 and a destination device 202.
  • the source device 201 and the destination device 202 are connected via a wired or wireless network 210.
  • the network 210 is, for example, the Internet, a LAN (Local Area Network), or a WAN (Wide Area Network).
  • the transfer source device 201 is a computer that has a first database 220 and performs synchronization between databases.
  • the first database 220 is the database that serves as the synchronization source.
  • the database 110 shown in FIG. 1 corresponds to the first database 220, for example.
  • the destination device 202 is a computer that has a second database 230 and performs synchronization between databases.
  • the second database 230 is the database to be synchronized.
  • the database 120 shown in FIG. 1 corresponds to the second database 230, for example.
  • the destination device 202 is located in a different region from the source device 201.
  • region A the region in which the source device 201 is located
  • region B the region in which the destination device 202 is located
  • Regions A and B may be, for example, eastern Japan and western Japan.
  • the source device 201 and the destination device 202 are realized, for example, by a database server.
  • the first database 220 and the second database 230 are realized, for example, by PostgreSQL.
  • the source device 201 synchronizes the first database 220 with the second database 230, for example, by transferring information corresponding to the stored data in the first database 220 to the destination device 202.
  • the destination device 202 also synchronizes the first database 220 with the second database 230, for example, by receiving information corresponding to the stored data in the first database 220 from the source device 201.
  • the information processing system 200 may also include a PC (Personal Computer) or a tablet terminal used by a user.
  • the user is, for example, an administrator of the first database 220.
  • FIG. 3 is a block diagram showing an example of the hardware configuration of the source device 201.
  • the source device 201 has a CPU 301, a memory 302, a disk drive 303, a disk 304, a communication I/F (Interface) 305, a portable recording medium I/F 306, and a portable recording medium 307.
  • each component is connected to each other by a bus 300.
  • CPU 301 is responsible for the overall control of source device 201.
  • CPU 301 may have multiple cores.
  • Memory 302 includes, for example, ROM (Read Only Memory), RAM (Random Access Memory), and flash ROM.
  • flash ROM stores the OS program
  • ROM stores application programs
  • RAM is used as a work area for CPU 301.
  • the programs stored in memory 302 are loaded into CPU 301, causing CPU 301 to execute the coded processes.
  • Disk drive 303 controls the reading/writing of data from/to disk 304 under the control of CPU 301.
  • Disk 304 stores data written under the control of disk drive 303. Examples of disk 304 include a magnetic disk and an optical disk.
  • the communication I/F 305 is connected to the network 210 via a communication line, and is connected to an external computer (e.g., the transfer destination device 202 shown in FIG. 2) via the network 210.
  • the communication I/F 305 serves as an interface between the network 210 and the inside of the device, and controls the input and output of data from the external computer.
  • a modem or a LAN adapter can be used as the communication I/F 305.
  • the portable recording medium I/F 306 controls the reading and writing of data from and to the portable recording medium 307 under the control of the CPU 301.
  • the portable recording medium 307 stores data written under the control of the portable recording medium I/F 306.
  • Examples of the portable recording medium 307 include a CD (Compact Disc)-ROM, a DVD (Digital Versatile Disk), and a USB (Universal Serial Bus) memory.
  • the source device 201 may have, for example, an input device, a display, and the like, in addition to the components described above.
  • the source device 201 may not have, for example, the portable recording medium I/F 306 and the portable recording medium 307 among the components described above.
  • the destination device 202 shown in FIG. 2 may also be realized by a hardware configuration similar to that of the source device 201.
  • FIG. 4 is a block diagram showing an example of a functional configuration of the transfer source device 201.
  • the transfer source device 201 includes a reception unit 401, a measurement unit 402, a calculation unit 403, a determination unit 404, and a transfer unit 405.
  • the reception unit 401 to the transfer unit 405 are functions that constitute the control unit 400, and specifically, the functions are realized by causing the CPU 301 to execute a program stored in a storage device such as the memory 302, the disk 304, or the portable recording medium 307 shown in Fig. 3, or by the communication I/F 305.
  • the processing results of each functional unit are stored in a storage device such as the memory 302 or the disk 304.
  • the reception unit 401 receives information corresponding to the stored data of the first database 220.
  • the information corresponding to the stored data is, for example, information in units of blocks that can identify operations on the first database 220 in chronological order. More specifically, for example, the information corresponding to the stored data is a write-ahead log (wal).
  • the wal is a log file (transaction log) that records changes made to a database.
  • the wal makes it possible to reproduce the same operations on the first database 220 (synchronization source) in the second database 230 (synchronization destination), and to reflect changes in the synchronization source in the synchronization destination.
  • WAL information in units of blocks
  • the reception unit 401 receives wal (blocks) that are sequentially output from the first database 220.
  • the first database 220 sequentially records operations on the first database 220 in the wal, and outputs the wal each time it reaches a specified size.
  • the specified size is, for example, 16 MB.
  • the first database 220 outputs the wal after a specified time has elapsed, even if the wal has not yet reached the specified size.
  • the specified time is, for example, 0.5 seconds. This allows the first database 220 to prevent the time it takes for operations recorded in the wal to be reflected in the second database 230 from becoming too long.
  • the received wal is input, for example, to the uncompressed buffer 511 shown in FIG. 5, which will be described later.
  • the time at which the wal is input to the uncompressed buffer 511 is stored in a storage device such as the memory 302 or the disk 304, for example, in association with the wal.
  • the measurement unit 402 measures the bandwidth of the communication path between regions A and B for the received wal (block).
  • the communication path is, for example, the network 210 shown in FIG. 2.
  • the bandwidth of the communication path can be expressed, for example, by the transfer speed (transmission speed) (unit: MB/sec).
  • the measurement unit 402 measures the amount of data transmitted per unit time when transferring wal from region A to region B via the network 210.
  • the measurement unit 402 measures the transfer speed by calculating the moving average of the amount of data transferred per unit time for multiple blocks (for example, the most recent 5 blocks or so).
  • the transfer speed varies depending on, for example, the usage rate of the network 210. For this reason, the transfer speed (bandwidth of the communication path) is updated periodically using, for example, the measurement results of the most recent five blocks or so. However, the measurement unit 402 may determine the transfer speed from the measurement results of one block, for example, until the measurement results of the first five blocks are obtained. Furthermore, any existing technology may be used as a method for measuring the transfer speed between regions A and B.
  • the measurement unit 402 also measures the compression speed and compression ratio of the received wal (block).
  • the compression ratio is the ratio of compressed data to uncompressed data.
  • the compression speed represents, for example, the compression execution time per unit of data (unit: sec/MB).
  • the compression ratio is represented, for example, by the ratio of compressed data to uncompressed data.
  • the measurement unit 402 measures the compression speed and compression ratio by compressing the wal by executing a compression program.
  • the compression speed varies, for example, depending on the usage rate of the CPU 301.
  • the compression ratio varies, for example, depending on the contents of the wal. For this reason, the compression speed and compression ratio are periodically updated, for example, using the measurement results of the most recent five blocks or so.
  • the measurement unit 402 may determine the compression speed and compression ratio from the measurement results of one block, for example, until the measurement results of the first five blocks are obtained.
  • the calculation unit 403 calculates the compressed transfer time and uncompressed transfer time for the received wal (block) based on the bandwidth of the communication path between regions A and B and the compression load of the wal.
  • the compressed transfer time is the transfer time required to compress the wal and transfer it from region A to region B.
  • the uncompressed transfer time is the transfer time required to transfer the wal from region A to region B without compressing it.
  • the first transfer time described in FIG. 1 corresponds to, for example, the compressed transfer time.
  • the second transfer time described in FIG. 1 corresponds to, for example, the uncompressed transfer time.
  • the bandwidth of the communication path between regions A and B and the compression load of the wal are measured, for example, based on other wals transferred before the wal.
  • the bandwidth of the communication path between regions A and B is, for example, the transfer speed measured by the measurement unit 402.
  • the compression load of the wal is, for example, the processing time required to compress the wal (compression time).
  • the compression time is determined, for example, from the compression speed measured by the measurement unit 402 and the block size of the wal.
  • the compression load of the wal may also include the compression waiting time of the wal, which will be described later.
  • the uncompressed transfer time may be calculated by dividing the wal block size by the transfer speed.
  • the compressed transfer time may be calculated by adding the wal compression time and the time it takes to transmit the compressed wal (transmission time).
  • the transmission time of the compressed wal is calculated by multiplying the wal block size by the compression ratio and dividing the result by the transfer speed.
  • the compression ratio is measured, for example, by the measurement unit 402.
  • the calculation unit 403 may calculate the compressed transfer time and the uncompressed transfer time taking into account the wal transmission (transfer) wait time.
  • This transmission waiting time can be expressed as the difference between time t1 when the wal is ready to be transferred and time t2 when the transfer of other wals is completed.
  • time t1 uncompressed
  • time t1 compressed
  • time t1 compressed
  • time t1 compressed
  • the time when the compression of the wal will be completed can be predicted using the remaining compression time of the other wal and the compression time of the wal.
  • the remaining compression time of the other wal can be calculated from the time when the compression of the other wal will be completed.
  • the time when the compression of the wal will be completed can be predicted using the compression time of the wal.
  • the time t2 when the transfer of the other wal is completed can be predicted using the remaining transfer time of the other wal. Also, there are cases where the other wal is currently being compressed in order to compress and transfer it. In this case, the time t2 when the transfer of the other wal is completed can be predicted using the remaining compression time of the other wal and the compression transfer time of the other wal.
  • the transfer unit 405 can calculate the transmission wait time for the wals by, for example, taking into consideration whether each of the other wals will be transferred compressed or uncompressed, and sequentially predicting the time when the transfer of the other wals will be completed.
  • the calculation unit 403 may calculate the compressed transfer time and the uncompressed transfer time taking into account the compression wait time of the wal.
  • the compression waiting time is the time to wait before starting to compress a wal.
  • the compression waiting time can be expressed by the remaining compression time of other wals. However, if no other wals are being compressed, the compression waiting time is "0".
  • the calculation unit 403 may calculate the uncompressed transfer time of the wal based on, for example, the bandwidth (transfer speed) of the communication path between regions A and B, the block size of the wal, and the transmission latency. To explain in more detail, for example, the calculation unit 403 can calculate the uncompressed transfer time of the wal using the following formula (1).
  • Uncompressed transfer time block size / transfer speed + transmission latency ... (1)
  • the calculation unit 403 may also calculate the uncompressed transfer time of the wal based on, for example, the bandwidth (transfer speed) of the communication path between regions A and B, the block size of the wal, the compression ratio, the compression load (compression time, compression waiting time), and the transmission waiting time. To explain in more detail, for example, the calculation unit 403 can calculate the compressed transfer time of the wal using the following formula (2).
  • Compressed transfer time (block size x compression ratio) / transfer speed + compression time + compression waiting time + transmission waiting time ... (2)
  • the determination unit 404 determines whether the RPO corresponding to the first database 220 is satisfied based on the calculated compressed transfer time. The determination unit 404 also determines whether the RPO corresponding to the first database 220 is satisfied based on the calculated uncompressed transfer time.
  • RPO is an abbreviation for Recovery Point Objective.
  • RPO is the target recovery point, and corresponds to, for example, the allowable time for data created in region A to reach region B.
  • the RPO is set in advance by the user, taking into consideration, for example, the characteristics of the service and data, the distance between regions A and B, and the like.
  • the RPO is defined, for example, by specifying a time such as 2 seconds, assuming no compression.
  • the RPO is specified, for example, by receiving it from a client terminal (not shown).
  • time lag time difference between the timing when the first operation in the wal is performed and the timing when the wal is output from the first database 220.
  • the judgment unit 404 may take this time difference into consideration when judging whether the RPO is satisfied.
  • the timing when the first operation in the wal is performed (first time) can be identified from the contents of the wal.
  • the timing when the wal is output from the first database 220 can be the time when the wal is input to the uncompressed buffer 511 (input time).
  • the judgment unit 404 judges that the compression transfer time satisfies the RPO if the following formula (3) is satisfied.
  • the compression transfer time satisfies the RPO means that the RPO can be respected by compressing and transferring the wal.
  • the current time is, for example, the time when the wal is input to the uncompressed buffer 511 (input time).
  • the start time is the time when the first operation in the wal is performed.
  • the judgment unit 404 judges that the uncompressed transfer time satisfies the RPO if the following formula (4) is satisfied.
  • the uncompressed transfer time satisfies the RPO means that the RPO can be observed by transferring the wal without compression.
  • the judgment unit 404 can determine whether the first operation in the wal complies with the RPO, taking into account the time difference between the time when the first operation in the wal is performed (first time) and the time when the wal is output from the first database 220 (input time).
  • the transfer unit 405 compresses the wal and transfers it to region B. Specifically, for example, the transfer unit 405 transmits the compressed wal to the transfer destination device 202 of region B via the network 210.
  • the wal is compressed, for example, by a compression program p1 shown in FIG. 5 described below.
  • the transfer unit 405 reduces the waiting time for the compression process by, for example, performing the compression process while transferring the previous block (another wal).
  • the transfer unit 405 transfers the wal to region B without compressing it. Specifically, for example, the transfer unit 405 transmits the uncompressed wal to the transfer destination device 202 of region B via the network 210.
  • the transfer unit 405 determines whether the compressed transfer time is shorter than the uncompressed transfer time. If the compressed transfer time is shorter than the uncompressed transfer time, the transfer unit 405 compresses the wal and transfers it to region B. On the other hand, if the uncompressed transfer time is equal to or less than the compressed transfer time, the transfer unit 405 transfers the wal to region B without compressing it.
  • the transfer unit 405 will select either compression or uncompression, whichever method takes the shortest time to complete the transfer to region B.
  • any wal (block) output from the first database 220 may be written as "wal:n" (n is a natural number).
  • the RPO when the RPO cannot be observed for wal:n among the wals (blocks) output from the first database 220, the RPO may be observed by switching wal:n-1, which was output immediately before wal:n, from compressed to uncompressed.
  • the transfer unit 405 may determine whether wal:n-1 is being compressed in order to compress and transfer wal:n-1 (second information).
  • the calculation unit 403 may calculate the uncompressed transfer time (third transfer time) of wal:n required to transfer wal:n-1 to region B without compression and to transfer wal:n to region B without compression.
  • the uncompressed transfer time (third transfer time) is calculated based on the bandwidth of the communication path between regions A and B.
  • the uncompressed transfer time (third transfer time) may be calculated using the above formula (1).
  • the determination unit 404 determines whether or not the RPO is satisfied based on the calculated uncompressed transfer time (third transfer time). The determination of whether or not the RPO is satisfied based on the uncompressed transfer time (third transfer time) is performed, for example, using the above formula (4).
  • the transfer unit 405 transfers wal:n-1 to region B without compression, and transfers wal:n to region B without compression. However, wal:n is sent, for example, when the transfer of wal:n-1 is completed. Also, if the uncompressed transfer time (third transfer time) satisfies the RPO, the transfer unit 405 stops compressing wal:n-1.
  • the transfer unit 405 can switch wal:n-1 from compressed to uncompressed, shortening the transmission waiting time of wal:n, and transfer wal:n uncompressed.
  • the calculation unit 403 may calculate the compression transfer time (fourth transfer time) of wal:n required to transfer wal:n-1 to region B without compression and to compress and transfer wal:n to region B.
  • the compression transfer time (fourth transfer time) is calculated based on the bandwidth of the communication path between regions A and B and the compression load of wal:n.
  • the compression transfer time (fourth transfer time) may be calculated using the above formula (2).
  • the determination unit 404 determines whether the RPO is satisfied based on the calculated compression transfer time (fourth transfer time). The determination of whether the RPO is satisfied based on the compression transfer time (fourth transfer time) is performed, for example, using the above formula (3).
  • the transfer unit 405 transfers wal:n-1 to region B without compressing it, and compresses wal:n and transfers it to region B. In addition, if the compression transfer time (fourth transfer time) satisfies the RPO, the transfer unit 405 stops compressing wal:n-1.
  • the transfer unit 405 can switch wal:n-1 from compressed to uncompressed, shortening the transmission waiting time of wal:n, and transfer wal:n in a compressed state.
  • FIG. 5 is an explanatory diagram showing an example of the operation of the source device 201.
  • the source device 201 arranged in region A and the destination device 202 arranged in region B are shown.
  • DB220 indicates the first database 220.
  • DB230 indicates the second database 230.
  • the first database 220 sequentially outputs the wal in block units (16 MB blocks). However, the first database 220 outputs the wal after the specified time (0.5 sec) has elapsed, even if the wal does not reach the specified size.
  • the wal:n sequentially output from the first database 220 is input to the uncompressed buffer 511.
  • the wal:n input to the uncompressed buffer 511 is compressed by the compression program p1 and input to the compression buffer 512.
  • the compression speed and compression ratio are measured for each wal:n (block).
  • the uncompressed buffer 511 and the compressed buffer 512 are storage areas with a FIFO (First In First Out) structure.
  • the storage area 130 shown in FIG. 1 corresponds to, for example, the uncompressed buffer 511 and the compressed buffer 512.
  • the source device 201 selects compression or non-compression for each wal:n (block) and transfers the wal:n to the destination device 202 via the network 210. Note that the correspondence between the communication bandwidth of the network 210 and the transfer completion time when the wal:n is transferred compressed or non-compressed will be described later with reference to FIG. 6.
  • the source device 201 when transferring wal:n without compression, retrieves wal:n from the uncompressed buffer 511 using the MUX (multiplexer) 513 and transfers it to the destination device 202.
  • the source device 201 retrieves wal:n from the compression buffer 512 using the MUX 513 and transfers it to the destination device 202.
  • the transfer speed is measured for each wal:n (block).
  • the received wal:n is input to the wal archive 520.
  • the wal archive 520 is a storage area with a FIFO structure.
  • the storage area 140 shown in FIG. 1 corresponds to the wal archive 520, for example.
  • the wal:n input to the wal archive 520 is decompressed by the decompression program p2 and input to the second database 230.
  • the second database 230 sequentially executes the operations recorded in the wal:n. This allows the transfer source device 201 to synchronize between the first database 220 and the second database 230.
  • FIG. 6 is an explanatory diagram showing the correspondence relationship between communication bandwidth and transfer completion time.
  • graph 601 shows the correspondence relationship between the communication bandwidth of network 210 and transfer completion time when compressing and transferring wal:n from region A to region B (compression in FIG. 6).
  • Graph 602 shows the relationship between the communication bandwidth of network 210 and the transfer completion time when wal:n is transferred from region A to region B without compression (raw in FIG. 6).
  • the block size of wal:n is "16 MB” and the compression ratio is "0.66".
  • the source device 201 selects either the compressed or uncompressed transfer method for each wal:n (block) using, for example, the above formulas (3) and (4) so as to reduce resource consumption (e.g., CPU 301 usage rate, communication volume) while respecting the RPO.
  • resource consumption e.g., CPU 301 usage rate, communication volume
  • the RPO can be respected whether wal:n is compressed and transferred or not. Therefore, in area 611, the transfer source device 201 reduces the amount of communication by compressing and transferring wal as long as the RPO is satisfied.
  • the transfer source device 201 protects the RPO by transferring wal without compression.
  • the RPO cannot be respected whether the wal:n is transferred compressed or uncompressed.
  • the transfer source device 201 selects either compressed or uncompressed, whichever transfer completion time is shorter, so that the wal:n reaches region B as quickly as possible.
  • the source device 201 can transfer wal:n from region A to region B by selecting compression or non-compression for each wal:n (block) so as to reduce resource consumption (e.g., CPU 301 usage rate, communication volume) while respecting the RPO.
  • resource consumption e.g., CPU 301 usage rate, communication volume
  • FIGS. 7A and 7B are explanatory diagrams showing a first example of transfer of wal:n.
  • a state table 700 shows the state (start time, RPO compliance time, input, no compression, compression executed, compression, transmission executed) of each element (wal:n) at each time in 0.1 sec increments.
  • the numbers in state table 700 (excluding the time) indicate the block number "n" that identifies wal:n.
  • the first time indicates the time when the first operation in wal:n was performed. For example, time “0" is the time when the first operation in wal:1 was performed.
  • the RPO compliance time is the latest time at which the RPO can be observed for wal:n. Even if the RPO compliance time is exceeded, if the transmission of wal:n is not completed, this indicates that the RPO cannot be observed.
  • the input indicates the time when wal:n was input to the uncompressed buffer 511. For example, time "5" is the time when wal:1 was input to the uncompressed buffer 511.
  • “No compression” indicates the wal:n of the uncompressed buffer 511.
  • “Compression in progress” indicates the wal:n for which compression is being performed. For example, the time “5-12” indicates that compression of wal:1 is being performed.
  • “Compression in progress” is blank when no compression processing is running.
  • “Compression” indicates the wal:n of the compression buffer 512.
  • “Send in progress” indicates the wal:n that is being sent. For example, the time “5-9” indicates that wal:1 is being sent.
  • “Send in progress” is blank when no send processing is running.
  • wal:1 (initial block) is sent uncompressed, compression is also performed, and parameters (transfer speed, compression speed, compression ratio) are measured. While the parameters are not complete, wal:n is sent uncompressed. For example, if wal:2 is input while wal:1 is being compressed, wal:2 is sent uncompressed if a transmission slot is available. For example, times "10 to 14" indicate that uncompressed wal:2 is being sent. The blocks used for measurement are deleted from the uncompressed buffer 511 and the compressed buffer 512.
  • the RPO is "2 sec.”
  • the transfer speed is "32 MB/sec”
  • the compression speed is "0.8 sec/16 MB”
  • the compression ratio is "0.67.” Note that the transfer speed, compression speed, and compression ratio are parameters that can be determined by measurement, but for the sake of explanation, they are set to fixed values.
  • the transfer source device 201 calculates the non-compression transfer time for wal:3, for example, using the above formula (1).
  • the non-compression transfer time for wal:3 is "0.5 sec.”
  • the source device 201 also calculates the compression and transfer time of wal:3 using, for example, the above formula (2).
  • the compression and transfer time of wal:3 is "1.133 sec.”
  • the compression time is "0.8 sec.”
  • the compression waiting time and the transmission waiting time are "0 sec.”
  • the source device 201 determines whether the RPO is satisfied based on the compressed transfer time calculated, for example, using the above formula (3).
  • the source device 201 also determines whether the RPO is satisfied based on the uncompressed transfer time calculated, for example, using the above formula (4).
  • the current time is, for example, "16", the time when wal:3 was input to the uncompressed buffer 511.
  • the source device 201 compresses and transfers wal:3 (corresponding to area 611 shown in FIG. 6).
  • wal:3 is compressed at time "16”
  • Time “26” does not exceed the RPO compliance time of wal:3, which is "30”. It can be seen that the RPO is being complied with for wal:3.
  • the transfer source device 201 calculates the compression transfer time for wal:4, for example, using the above formula (2).
  • the compression transfer time for wal:4 is "1.333 sec.”
  • the compression time is "0.8 sec.”
  • the compression waiting time is "0.2 sec.”
  • the transmission waiting time is "0 sec.”
  • the transfer source device 201 determines whether the RPO is satisfied based on the calculated compressed transfer time, for example, using the above formula (3).
  • the compressed transfer time satisfies the RPO.
  • the source device 201 compresses and transfers wal:4 (corresponding to area 611 shown in FIG. 6).
  • compression of wal:4 is performed at time "24"
  • Time "34" does not exceed the RPO compliance time of wal:4, which is "36”. Therefore, it can be seen that the RPO is being complied with for wal:4.
  • FIGS. 8A and 8B are explanatory diagrams showing a second example of the transfer of wal:n.
  • a state table 800 shows the state of each element (wal:n) at each time in 0.1 sec increments.
  • the RPO is set to "2 sec.”
  • the transfer speed is set to "16 MB/sec”
  • the compression speed is set to "1.0 sec/16 MB”
  • the compression ratio is set to "0.667.”
  • the transfer source device 201 calculates the non-compression transfer time for wal:3, for example, using the above formula (1).
  • the non-compression transfer time for wal:3 is "1.3 sec.”
  • the transmission waiting time is "0.3 sec.”
  • the source device 201 also calculates the compression and transfer time of wal:3 using, for example, the above formula (2).
  • the compression and transfer time of wal:3 is "1.667 sec.”
  • the compression time is "1.0 sec.”
  • the compression waiting time and the transmission waiting time are "0 sec.”
  • the source device 201 determines whether the RPO is satisfied based on the compressed transfer time calculated, for example, using the above formula (3).
  • the source device 201 also determines whether the RPO is satisfied based on the calculated uncompressed transfer time, for example, using the above formula (4).
  • the source device 201 transfers wal:3 without compression (corresponding to area 612 shown in FIG. 6).
  • transmission of wal:3 begins at time "26" and is completed at time "35".
  • Time “35” does not exceed the RPO compliance time of wal:3, which is "37”. Therefore, it can be seen that the RPO is being complied with for wal:3.
  • FIGS. 9A, 9B, and 9C are explanatory diagrams showing a third example of the transfer of wal:n.
  • a state table 900 shows the state of each element (wal:n) at each time in 0.1 sec increments.
  • the RPO is set to "2 sec.”
  • the transfer speed is set to "10 MB/sec”
  • the compression speed is set to "1.0 sec/16 MB”
  • the compression ratio is set to "0.667.”
  • the transfer source device 201 calculates the non-compression transfer time for wal:3, for example, using the above formula (1).
  • the transfer source device 201 also calculates the compressed transfer time for wal:3, for example, using the above formula (2).
  • the source device 201 determines whether the RPO is satisfied, for example, based on the calculated compressed transfer time.
  • the source device 201 also determines whether the RPO is satisfied, for example, based on the calculated uncompressed transfer time.
  • the source device 201 determines whether the compressed transfer time for wal:3 is shorter than the uncompressed transfer time.
  • wal:3 can be compressed while wal:2 is being transferred, it is assumed that the compressed transfer time is shorter than the uncompressed transfer time.
  • the compression transfer time for wal:3 is 2.167 sec. However, the compression time is 1.0 sec. The compression waiting time is 0 sec. The transmission waiting time is 0.1 sec.
  • the source device 201 compresses and transfers wal:3 (corresponding to area 613 shown in FIG. 6).
  • wal:3 is compressed at time “25”
  • time "46" is later than the RPO compliance time of wal:3, which is "39”
  • the transfer completion time is earlier than when the data is transferred without compression.
  • FIG. 10A and 10B are explanatory diagrams showing a fourth example of the transfer of wal:n.
  • a state table 1000 shows the state of each element (wal:n) at each time in 0.1 sec increments.
  • the RPO is set to "2 sec.”
  • the transfer speed is set to "32 MB/sec”
  • the compression speed is set to "1.0 sec/16 MB”
  • the compression ratio is set to "0.667.”
  • the transfer source device 201 calculates, for example, the uncompressed transfer time (third transfer time) and compressed transfer time (fourth transfer time) of wal:4 when wal:3 is transferred without compression (cancelling the compression of wal:3).
  • the source device 201 determines whether the RPO is satisfied based on the calculated uncompressed transfer time (third transfer time) of wal:4.
  • the source device 201 also determines whether the RPO is satisfied based on the calculated compressed transfer time (fourth transfer time) of wal:4.
  • the compression transfer time for wal:4 is 1.333 sec. However, the compression time is 1.0 sec. The compression wait time and transmission wait time are 0 sec.
  • the source device 201 compresses and transfers wal:4.
  • compression of wal:4 is performed at time "19"
  • Time "31” does not exceed the RPO compliance time "32" for wal:4. Therefore, it can be seen that the RPO is being complied with for wal:4.
  • FIGS. 11A and 11B are explanatory diagrams showing an example of the transfer of wal:4 when the compression of wal:3 is not canceled.
  • a state table 1100 shows the state of each element (wal:n) at each time in 0.1 sec increments.
  • Time “33" exceeds the RPO compliance time "32" for wal:4. For this reason, if the compression of wal:3 is not canceled, the RPO for wal:4 will not be observed. In response to this, the source device 201 can cancel the compression of wal:3, as described in Figures 10A and 10B, to enable the RPO for wal:4 to be observed.
  • FIG. 12 is a flowchart showing an example of a new thread start processing procedure of the source device 201.
  • the source device 201 determines whether a new block (wal:n) has been input to the uncompressed buffer 511 (step S1201).
  • the source device 201 then waits for a new block to be input (step S1201: No). If a new block has been input (step S1201: Yes), the source device 201 starts the transfer process for the new block that has been input (step S1202) and returns to step S1201.
  • the source device 201 can start a transfer process for transferring the input new block as a new thread.
  • the transfer process procedure of the source device 201 will be described with reference to Figures 13 to 15.
  • the transfer process of the source device 201 starts in step S1202 shown in Figure 12 for each block (wal:n) input to the uncompressed buffer 511.
  • FIGS. 13 to 15 are flowcharts showing an example of a transfer process procedure of the source device 201.
  • the source device 201 first determines whether or not all measurements of parameters (transfer speed, compression speed, compression ratio) have been completed (step S1301).
  • the source device 201 judges whether the RPO can be met by sending wal:n uncompressed (step S1302). Specifically, for example, the source device 201 uses the above formula (1) to calculate the uncompressed transfer time of wal:n. Then, the source device 201 uses the above formula (4) to judge whether the RPO can be met by sending wal:n uncompressed.
  • the source device 201 determines whether the RPO can be respected by compressing and sending wal:n (step S1303). Specifically, for example, the source device 201 calculates the compression and transfer time of wal:n using the above formula (2). Then, the source device 201 determines whether the RPO can be respected by compressing and sending wal:n using the above formula (3).
  • step S1303: No if the RPO cannot be respected by compressing and sending wal:n (step S1303: No), the transfer source device 201 proceeds to step S1310. On the other hand, if the RPO can be respected by compressing and sending wal:n (step S1303: Yes), the transfer source device 201 starts compressing wal:n (step S1304).
  • the source device 201 determines whether the compression of the wal:n is complete (step S1305).
  • the source device 201 waits for the compression of the wal:n to be completed (step S1305: No). Then, when the compression of the wal:n is completed (step S1305: Yes), the source device 201 determines whether the compression of the wal:n has been completed normally (step S1306).
  • step S1306 determines whether the transmission of wal:n-1 has been completed.
  • step S1307 waits for the transmission of wal:n-1 to be completed (step S1307: No).
  • the source device 201 When the source device 201 has finished sending wal:n-1 (step S1307: Yes), it sends wal:n in the compression buffer 512 to the destination device 202 in region B (step S1308). The source device 201 then deletes wal:n from each of the buffers 511 and 512 (step S1309), and ends the series of processes according to this flowchart.
  • step S1306 determines whether the transmission of wal:n-1 has ended (step S1310).
  • the transfer source device 201 waits for the transmission of wal:n-1 to end (step S1310: No).
  • step S1310 When the source device 201 has finished sending wal:n-1 (step S1310: Yes), it sends wal:n in the uncompressed buffer 511 to the destination device 202 in region B (step S1311) and proceeds to step S1309.
  • step S1302 if the RPO cannot be respected by sending the wal:n uncompressed (step S1302: No), the source device 201 proceeds to step S1401 shown in FIG. 14.
  • the source device 201 determines whether or not wal:n-1 is being compressed (step S1401). If wal:n-1 is not being compressed (step S1401: No), the source device 201 determines whether or not the earlier transmission of wal:n was completed due to compression (step S1402).
  • step S1402 if compression is faster (step S1402: Yes), the source device 201 proceeds to step S1304 shown in FIG. 13. On the other hand, if no compression is faster (step S1402: No), the source device 201 proceeds to step S1310 shown in FIG. 13.
  • step S1401 if wal:n-1 is being compressed (step S1401: Yes), the transfer source device 201 determines whether or not the RPO can be respected by switching wal:n-1 to uncompressed (step S1403).
  • the source device 201 uses the above formula (1) to calculate the uncompressed transfer time (third transfer time) of wal:n required when wal:n-1 is transferred without compression and wal:n is transferred without compression. The source device 201 then uses the above formula (4) to determine whether the RPO can be respected by sending wal:n without compression.
  • step S1403: No If the RPO cannot be met (step S1403: No), the source device 201 proceeds to step S1402. On the other hand, if the RPO can be met (step S1403: Yes), the source device 201 stops compressing the wal:n-1 (step S1404).
  • the source device 201 transmits wal:n-1 in the uncompressed buffer 511 to the destination device 202 of region B (step S1405).
  • the source device 201 determines whether the RPO can be respected by compressing wal:n if wal:n-1 is switched to uncompressed (step S1406).
  • the source device 201 uses the above formula (2) to calculate the compression transfer time (fourth transfer time) of wal:n when wal:n-1 is transferred without compression and wal:n is compressed and transferred. The source device 201 then uses the above formula (3) to determine whether the RPO can be respected by compressing and sending wal:n.
  • step S1406 If the RPO cannot be met (step S1406: No), the transfer source device 201 proceeds to step S1310 shown in FIG. 13. On the other hand, if the RPO can be met (step S1406: Yes), the transfer source device 201 proceeds to step S1304 shown in FIG. 13.
  • step S1301 shown in FIG. 13 if measurement of all parameters (transfer speed, compression speed, compression ratio) has not been completed (step S1301: No), the transfer source device 201 proceeds to step S1501 shown in FIG. 15.
  • the source device 201 determines whether or not the wal:n-1 is being compressed and the compression ratio is null (step S1501).
  • a compression ratio of null indicates that the compression ratio has never been measured.
  • step S1501 if wal:n-1 is being compressed and the compression ratio is null (step S1501: Yes), the transfer source device 201 determines whether the transmission of wal:n-1 has finished (step S1502). Here, the transfer source device 201 waits for the transmission of wal:n-1 to finish (step S1502: No).
  • step S1502 When the source device 201 has finished sending wal:n-1 (step S1502: Yes), it sends wal:n from the uncompressed buffer 511 (step S1503). Then, the source device 201 deletes wal:n from the uncompressed buffer 511 (step S1504) and ends the series of processes according to this flowchart.
  • step S1501 if wal:n-1 is being compressed and the compression ratio is not null (step S1501: No), the source device 201 transmits wal:n from the uncompressed buffer 511 (step S1505). Next, the source device 201 deletes wal:n from the uncompressed buffer 511 (step S1506).
  • the source device 201 starts compressing the wal:n (step S1507).
  • the source device 201 determines whether the compression of the wal:n is complete (step S1508).
  • the source device 201 waits for the compression of the wal:n to be completed (step S1508: No).
  • step S1508 If the compression of the wal:n is completed (step S1508: Yes), the source device 201 deletes the wal:n from the compression buffer 512 (step S1509) and ends the series of processes according to this flowchart.
  • the source device 201 can select compression or no compression for each wal:n (block) to reduce resource consumption while respecting the RPO, and transfer wal:n to the destination device 202 in region B.
  • the source device 201 can transfer the first block (wal:1) without compression and also compress it to measure parameters (transfer speed, compression speed, compression ratio).
  • the transfer source device 201 of the embodiment when transferring wals sequentially output from the first database 220 arranged in region A to region B, the compressed transfer time and uncompressed transfer time of the wal can be calculated based on the bandwidth of the communication path between regions A and B and the compression load of the wal.
  • the wal is an example of information corresponding to the stored data of the first database 220, and is block-based information that can identify operations on the first database 220 in a chronological order. Then, according to the transfer source device 201, if both the compressed transfer time and the uncompressed transfer time satisfy the RPO, the wal can be compressed and transferred. Also, according to the transfer source device 201, if the compressed transfer time does not satisfy the RPO and the uncompressed transfer time satisfies the RPO, the wal can be transferred without compression.
  • the source device 201 can select compression or non-compression for each wal:n (block) to transfer wal:n from region A to region B while respecting the RPO and reducing resource consumption, thereby improving the efficiency of information transfer.
  • the wal can be compressed and transferred.Furthermore, according to the transfer source device 201, if neither the compressed transfer time nor the uncompressed transfer time of the wal satisfy the RPO, and the uncompressed transfer time is equal to or shorter than the compressed transfer time, the wal can be transferred without compression.
  • the source device 201 when the source device 201 is recovering from a communication failure, if the RPO cannot be respected whether the wal is compressed or uncompressed, it can transfer the wal by selecting either compressed or uncompressed, whichever transfer completion time is shorter.
  • the transfer source device 201 when neither the compressed transfer time nor the uncompressed transfer time for wal:n (first information) among the wals (blocks) output from the first database 220 satisfies the RPO, it is possible to determine whether wal:n-1 is being compressed in order to compress and transfer wal:n-1 (second information). Furthermore, according to the transfer source device 201, when wal:n-1 is being compressed, it is possible to calculate the uncompressed transfer time (third transfer time) of wal:n required to transfer wal:n-1 without compression and to transfer wal:n without compression. And, according to the transfer source device 201, when the uncompressed transfer time (third transfer time) satisfies the RPO, it is possible to transfer wal:n-1 without compression and to transfer wal:n without compression.
  • the source device 201 can switch wal:n-1 from compressed to uncompressed, shortening the transmission waiting time of wal:n and transferring wal:n uncompressed.
  • the transfer source device 201 when wal:n-1 is being compressed, it is possible to calculate the compression transfer time (fourth transfer time) of wal:n required to transfer wal:n-1 without compression and to compress and transfer wal:n. And, according to the transfer source device 201, when the compression transfer time (fourth transfer time) satisfies the RPO, it is possible to transfer wal:n-1 without compression and compress and transfer wal:n.
  • the source device 201 can switch wal:n-1 from compressed to uncompressed, shortening the transmission waiting time of wal:n, and compress and transfer wal:n.
  • the transfer source device 201 if the uncompressed transfer time (third transfer time) satisfies the RPO, compression of wal:n-1 can be stopped.
  • the source device 201 can reduce the load imposed on compressing wal:n-1 and suppress the utilization rate of the CPU 301.
  • the transfer source device 201 it is possible to calculate the compressed transfer time of the wal based on the bandwidth of the communication path between regions A and B (e.g., transfer speed), the wal block size, compression ratio, compression load (e.g., compression time, compression wait time), and transmission wait time.Furthermore, according to the transfer source device 201, it is possible to calculate the uncompressed transfer time of the wal based on the bandwidth of the communication path between regions A and B (e.g., transfer speed), the wal block size, and transmission wait time.
  • the source device 201 can measure the bandwidth of the communication path between regions A and B and the compression load of the wal based on other wals transferred before the wal.
  • the source device 201 can predict the compressed and uncompressed transfer times of the wal, taking into account the bandwidth of the communication path between regions A and B, which varies depending on the usage status of the network 210 and the usage rate of the CPU 301, and the compression load of the wal.
  • the source device 201 can efficiently utilize system resources while maintaining the RPO of the required specifications when performing database synchronization between different regions for disaster recovery.
  • the transfer method described in this embodiment can be realized by executing a prepared program on a computer such as a personal computer or a workstation.
  • This transfer program is recorded on a computer-readable recording medium such as a hard disk, flexible disk, CD-ROM, DVD, or USB memory, and is executed by being read from the recording medium by the computer.
  • This transfer program may also be distributed via a network such as the Internet.
  • the information processing device 101 can also be realized by application-specific ICs such as standard cells or structured ASICs (Application Specific Integrated Circuits) or PLDs (Programmable Logic Devices) such as FPGAs.
  • application-specific ICs such as standard cells or structured ASICs (Application Specific Integrated Circuits) or PLDs (Programmable Logic Devices) such as FPGAs.

Abstract

情報処理装置(101)は、第1の拠点(104)と第2の拠点(105)との間の通信経路(103)の帯域と、情報(d)の圧縮負荷とに基づき、第1の転送時間と第2の転送時間とを算出する。第1の転送時間は、情報(d)を圧縮して第2の拠点(105)に転送する場合にかかる転送時間である。第2の転送時間は、情報(d)を圧縮せずに第2の拠点(105)に転送する場合にかかる転送時間である。情報処理装置(101)は、第1の転送時間および第2の転送時間のいずれも目標復旧時点を満たす場合、情報(d)を圧縮して第2の拠点(105)に転送する。また、情報処理装置(101)は、第1の転送時間が目標復旧時点を満たさず、かつ、第2の転送時間が目標復旧時点を満たす場合、情報(d)を圧縮せずに第2の拠点(105)に転送する。

Description

転送方法、転送プログラム、および情報処理装置
 本発明は、転送方法、転送プログラム、および情報処理装置に関する。
 従来、ディザスタリカバリ(DR:Disaster Recovery)のために、データベースを異なるリージョンに配置し、データベース間の同期を行う場合がある。被災により喪失する未送達のデータ量をどの程度許容するかは、例えば、要求仕様のRPO(Recovery Point Objective)によって定義される。
 先行技術としては、分散型データベースシステムにおいて、マスタテーブルおよび削除用テーブルから追加するレコードを登録した追加用テーブルを作成し、削除用テーブルおよび追加用テーブルを圧縮ファイルとして各拠点に転送して同期化処理を行うものがある。マスタテーブルは、各拠点に設けられる複製データベースの変更が反映されるテーブルである。削除用テーブルは、マスタテーブルの更新情報を主キーとした削除情報を登録したテーブルである。
特開2002-007441号公報
 しかしながら、従来技術では、ディザスタリカバリなどのために、異なるリージョン間のデータベースの同期を行うにあたり、情報転送の効率が低下する場合がある。
 一つの側面では、本発明は、情報転送の効率を高めることを目的とする。
 1つの実施態様では、第1の拠点に配置されたデータベースの格納データに応じた情報を第2の拠点に転送する転送方法であって、前記第1の拠点と前記第2の拠点との間の通信経路の帯域と、前記情報の圧縮負荷とに基づき、前記情報を圧縮して前記第2の拠点に転送する第1の転送時間と、前記情報を圧縮せずに前記第2の拠点に転送する第2の転送時間とを算出し、前記第1の転送時間および前記第2の転送時間のいずれも前記データベースに応じた目標復旧時点を満たす場合、前記情報を圧縮して前記第2の拠点に転送し、前記第1の転送時間が前記目標復旧時点を満たさず、かつ、前記第2の転送時間が前記目標復旧時点を満たす場合、前記情報を圧縮せずに前記第2の拠点に転送する、転送方法が提供される。
 本発明の一側面によれば、情報転送の効率を高めることができるという効果を奏する。
図1は、実施の形態にかかる転送方法の一実施例を示す説明図である。 図2は、情報処理システム200のシステム構成例を示す説明図である。 図3は、転送元装置201のハードウェア構成例を示すブロック図である。 図4は、転送元装置201の機能的構成例を示すブロック図である。 図5は、転送元装置201の動作例を示す説明図である。 図6は、通信帯域と転送完了時間との対応関係を示す説明図である。 図7Aは、wal:nの第1の転送例を示す説明図(その1)である。 図7Bは、wal:nの第1の転送例を示す説明図(その2)である。 図8Aは、wal:nの第2の転送例を示す説明図(その1)である。 図8Bは、wal:nの第2の転送例を示す説明図(その2)である。 図9Aは、wal:nの第3の転送例を示す説明図(その1)である。 図9Bは、wal:nの第3の転送例を示す説明図(その2)である。 図9Cは、wal:nの第3の転送例を示す説明図(その3)である。 図10Aは、wal:nの第4の転送例を示す説明図(その1)である。 図10Bは、wal:nの第4の転送例を示す説明図(その2)である。 図11Aは、wal:3の圧縮をキャンセルしなかった場合のwal:4の転送例を示す説明図(その1)である。 図11Bは、wal:3の圧縮をキャンセルしなかった場合のwal:4の転送例を示す説明図(その2)である。 図12は、転送元装置201の新規スレッド開始処理手順の一例を示すフローチャートである。 図13は、転送元装置201の転送処理手順の一例を示すフローチャート(その1)である。 図14は、転送元装置201の転送処理手順の一例を示すフローチャート(その2)である。 図15は、転送元装置201の転送処理手順の一例を示すフローチャート(その3)である。
 以下に図面を参照して、本発明にかかる転送方法、転送プログラム、および情報処理装置の実施の形態を詳細に説明する。
(実施の形態)
 図1は、実施の形態にかかる転送方法の一実施例を示す説明図である。図1において、情報処理装置101は、第1の拠点104に配置されたデータベース110の格納データに応じた情報を第2の拠点105に転送するコンピュータである。拠点とは、業務などの活動の足場となる所である。
 第1の拠点104と第2の拠点105は、例えば、東日本と西日本などの異なるリージョンである。また、第1の拠点104と第2の拠点105は、例えば、同一地域内の異なる施設、工場などであってもよい。格納データは、例えば、データベース110に書き込まれた新規データや更新データなどである。また、格納データに応じた情報は、例えば、データベース110内のデータそのものであってもよく、データベース110に対する操作を特定する情報であってもよい。
 ここで、ディザスタリカバリのために、クラウドサービスを利用して異なるリージョンに配置したデータベース間の同期を行う場合がある。クラウドサービスにおけるリージョン間のデータ通信は、従量課金であることが多いため、できるだけ通信量を抑えることが望ましい。
 また、リージョン間に専用線を引いた場合であっても、他のアプリケーションと通信帯域を共有することがあるため、リソースの有効利用のために通信量を抑えることが望ましい。このようなことから、利用者が要求するRPOを逸しないようにデータを圧縮して転送することで、できるだけ通信量を抑えて情報転送の効率を高めたいという要望がある。
 しかし、データを圧縮して転送する場合、圧縮にかかる処理負荷により、無圧縮で転送する場合に比べて遅延が生じる傾向がある。また、データを圧縮する場合、例えば、圧縮負荷、伝送速度などが変動するため、送達遅延が一定ではない。従来は、RPOを逸しないように、圧縮、無圧縮を切り替えることができず、情報転送の効率が低下するという問題がある。また、従来は、データを圧縮して転送する場合、例えば、無圧縮のときよりも長い時間のRPOを設定することになる。
 そこで、本実施の形態では、第1の拠点104に配置されたデータベース110の格納データに応じた情報を第2の拠点105に転送するにあたり、データベース110に応じた目標復旧時点を守りつつ消費資源を抑えるために、圧縮または無圧縮を選択することで、情報転送の効率を高める転送方法について説明する。
 ここで、情報処理装置101の処理例(下記(1)~(3)の処理に対応)について説明する。ここでは、データベース110の格納データに応じた情報を「情報d」とする。情報dは、データベース110から出力されると、記憶領域130に一旦保存される。情報処理装置101は、転送対象となる情報(例えば、情報d)を、記憶領域130に入力された順に記憶領域130から取り出す。
 (1)情報処理装置101は、第1の拠点104と第2の拠点105との間の通信経路103の帯域と、情報dの圧縮負荷とに基づき、第1の転送時間と第2の転送時間とを算出する。ここで、第1の転送時間は、情報dを圧縮して第2の拠点105に転送する場合にかかる転送時間である。第2の転送時間は、情報dを圧縮せずに第2の拠点105に転送する場合にかかる転送時間である。
 通信経路103の帯域は、単位時間当たりに転送可能なデータ量を表す情報であり、例えば、通信経路103の使用状況に応じて変化する。通信経路103の帯域は、例えば、伝送速度(転送速度)によって表される。情報dの圧縮負荷は、情報dの圧縮にかかる負荷(コスト)を表す情報であり、例えば、CPU(Central Processing Unit)の使用率などに応じて変化する。情報dの圧縮負荷は、例えば、情報dの圧縮にかかる処理時間によって表される。
 通信経路103の帯域および情報dの圧縮負荷は、例えば、第1の拠点104から第2の拠点105に対して、情報dよりも前に転送された情報についての測定値をもとに決定される。情報dよりも前に転送された情報は、例えば、直近5つ分程度の情報である。測定値は、例えば、転送速度、圧縮にかかる処理時間などである。
 (2)情報処理装置101は、算出した第1の転送時間に基づいて、データベース110に応じた目標復旧時点を満たすか否かを判断する。また、情報処理装置101は、算出した第2の転送時間に基づいて、データベース110に応じた目標復旧時点を満たすか否かを判断する。
 ここで、目標復旧時点は、障害発生時に過去のどの時点までのデータを復旧させるかの目標値を定義した条件に相当する。目標復旧時点は、ユーザによって任意に設定可能である。目標復旧時点は、例えば、どの程度の遅延を許容するかを表す時間によって指定される。目標復旧時点は、いわゆる、要求仕様のRPOである。
 例えば、情報処理装置101は、第1の転送時間が目標復旧時点未満の場合に、第1の転送時間が目標復旧時点を満たすと判断してもよい。情報処理装置101は、第2の転送時間が目標復旧時点未満の場合に、第2の転送時間が目標復旧時点を満たすと判断してもよい。
 ただし、情報dが、データベース110に対する複数の操作を含むような情報の場合がある。この場合、情報d内の先頭の操作が行われた時刻(先頭時刻)と、データベース110から情報dが出力される時刻とに時間差が生じる場合がある。このため、情報処理装置101は、この先頭時刻を考慮して、第1の転送時間および第2の転送時間が目標復旧時点を満たすか否かをそれぞれ判断してもよい。
 (3)情報処理装置101は、第1の転送時間および第2の転送時間のいずれも目標復旧時点を満たす場合、情報dを圧縮して第2の拠点105に転送する。また、情報処理装置101は、第1の転送時間が目標復旧時点を満たさず、かつ、第2の転送時間が目標復旧時点を満たす場合、情報dを圧縮せずに第2の拠点105に転送する。
 第2の拠点105に転送された情報dは、例えば、情報処理装置102によって受信され、記憶領域140に一旦保存される。記憶領域140に保存された情報(例えば、情報d)は、記憶領域140に入力された順に取り出されてデータベース120に出力される。ただし、情報が圧縮されている場合、解凍処理が行われる。これにより、データベース110,120間の同期が行われる。
 このように、情報処理装置101によれば、データベース110に応じた目標復旧時点を守りつつ、消費資源(例えば、CPU使用率、通信量)を抑えるように、圧縮または無圧縮を選択して、第1の拠点104から第2の拠点105に情報dを転送することができる。これにより、情報処理装置101は、異なる拠点(第1の拠点104、第2の拠点105)間のデータベース同期を行う際の情報転送の効率を高めることができる。
(情報処理システム200のシステム構成例)
 つぎに、図1に示した情報処理装置101を含む情報処理システム200のシステム構成例について説明する。ここでは、図1に示した情報処理装置101を、情報処理システム200内の転送元装置201に適用した場合を例に挙げて説明する。情報処理システム200は、例えば、異なるリージョンに配置したデータベース間の同期を行うためのコンピュータシステムに適用される。
 図2は、情報処理システム200のシステム構成例を示す説明図である。図2において、情報処理システム200は、転送元装置201と転送先装置202とを含む。情報処理システム200において、転送元装置201および転送先装置202は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などである。
 ここで、転送元装置201は、第1のデータベース220を有し、データベース間の同期を行うコンピュータである。第1のデータベース220は、同期元となるデータベースである。図1に示したデータベース110は、例えば、第1のデータベース220に相当する。
 また、転送先装置202は、第2のデータベース230を有し、データベース間の同期を行うコンピュータである。第2のデータベース230は、同期先となるデータベースである。図1に示したデータベース120は、例えば、第2のデータベース230に相当する。転送先装置202は、転送元装置201とは異なるリージョンに配置される。
 以下の説明では、転送元装置201が配置されるリージョンを「リージョンA」と表記し、転送先装置202が配置されるリージョンを「リージョンB」と表記する場合がある。リージョンA,Bは、例えば、東日本と西日本などである。転送元装置201、転送先装置202は、例えば、データベースサーバにより実現される。第1のデータベース220、第2のデータベース230は、例えば、PostgreSQL(ポストグレスキューエル)によって実現される。
 情報処理システム200において、転送元装置201は、例えば、第1のデータベース220の格納データに応じた情報を転送先装置202に転送することにより、第1のデータベース220と第2のデータベース230との同期を行う。また、転送先装置202は、例えば、第1のデータベース220の格納データに応じた情報を転送元装置201から受信することにより、第1のデータベース220と第2のデータベース230との同期を行う。
 なお、情報処理システム200には、ユーザが使用するPC(Personal Computer)やタブレット端末などが含まれていてもよい。ユーザは、例えば、第1のデータベース220の管理者である。
(転送元装置201のハードウェア構成例)
 つぎに、転送元装置201のハードウェア構成例について説明する。
 図3は、転送元装置201のハードウェア構成例を示すブロック図である。図3において、転送元装置201は、CPU301と、メモリ302と、ディスクドライブ303と、ディスク304と、通信I/F(Interface)305と、可搬型記録媒体I/F306と、可搬型記録媒体307と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
 ここで、CPU301は、転送元装置201の全体の制御を司る。CPU301は、複数のコアを有していてもよい。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOSのプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
 ディスクドライブ303は、CPU301の制御に従ってディスク304に対するデータのリード/ライトを制御する。ディスク304は、ディスクドライブ303の制御で書き込まれたデータを記憶する。ディスク304としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
 通信I/F305は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、図2に示した転送先装置202)に接続される。そして、通信I/F305は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。通信I/F305には、例えば、モデムやLANアダプタなどを採用することができる。
 可搬型記録媒体I/F306は、CPU301の制御に従って可搬型記録媒体307に対するデータのリード/ライトを制御する。可搬型記録媒体307は、可搬型記録媒体I/F306の制御で書き込まれたデータを記憶する。可搬型記録媒体307としては、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどが挙げられる。
 なお、転送元装置201は、上述した構成部のほかに、例えば、入力装置、ディスプレイなどを有することにしてもよい。また、転送元装置201は、上述した構成部のうち、例えば、可搬型記録媒体I/F306、可搬型記録媒体307を有さないことにしてもよい。また、図2に示した転送先装置202についても、転送元装置201と同様のハードウェア構成により実現することができる。
(転送元装置201の機能的構成例)
 図4は、転送元装置201の機能的構成例を示すブロック図である。図4において、転送元装置201は、受付部401と、測定部402と、算出部403と、判断部404と、転送部405と、を含む。受付部401~転送部405は制御部400となる機能であり、具体的には、例えば、図3に示したメモリ302、ディスク304、可搬型記録媒体307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、通信I/F305により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。
 受付部401は、第1のデータベース220と第2のデータベース230との間の同期を行うにあたり、第1のデータベース220の格納データに応じた情報を受け付ける。格納データに応じた情報は、例えば、第1のデータベース220に対する操作を時系列に特定可能なブロック単位の情報である。より具体的には、例えば、格納データに応じた情報は、wal(write-ahead log)である。
 walは、データベースに対して行われた変更を記録するログファイル(トランザクションログ)である。walによれば、第2のデータベース230(同期先)において、第1のデータベース220(同期元)に対する操作と同じ操作を再現することができ、同期元の変更を同期先に反映することができる。
 以下の説明では、第1のデータベース220の格納データに応じた情報として、wal(ブロック単位の情報)を例に挙げて説明する。
 具体的には、例えば、受付部401は、第1のデータベース220から順次出力されるwal(ブロック)を受け付ける。第1のデータベース220は、第1のデータベース220に対する操作がwalに順次記録されて規定サイズとなったら、その都度walを出力する。規定サイズは、例えば、16MBである。
 ただし、第1のデータベース220は、walが規定サイズとならなくても、規定時間が経過したらwalを出力する。規定時間は、例えば、0.5secである。これにより、第1のデータベース220は、walに記録された操作が第2のデータベース230に反映されるまでの時間が長期化するのを防ぐ。
 受け付けたwalは、例えば、後述の図5に示す無圧縮バッファ511に入力される。なお、無圧縮バッファ511にwalが入力された時刻(入力時刻)は、例えば、walと対応付けて、メモリ302、ディスク304などの記憶装置に記憶される。
 測定部402は、受け付けたwal(ブロック)について、リージョンA,B間の通信経路の帯域を測定する。通信経路は、例えば、図2に示したネットワーク210である。通信経路の帯域は、例えば、転送速度(伝送速度)によって表すことができる(単位:MB/sec)。
 具体的には、例えば、測定部402は、ネットワーク210を介して、リージョンAからリージョンBにwalを転送する際の単位時間当たりの送信データ量を測定する。そして、測定部402は、複数ブロック(例えば、直近の5ブロック程度)の単位時間当たりの転送データ量の移動平均を算出することにより、転送速度を測定する。
 転送速度は、例えば、ネットワーク210の使用率によって変動する。このため、転送速度(通信経路の帯域)は、例えば、直近の5ブロック程度の測定結果を用いて定期的に更新される。ただし、測定部402は、例えば、最初の5ブロックの測定結果が得られるまでは、1ブロック分の測定結果から転送速度を決定してもよい。また、リージョンA,B間の転送速度の測定方法としては、既存のいかなる技術を用いることにしてもよい。
 また、測定部402は、受け付けたwal(ブロック)の圧縮速度と圧縮比とを測定する。圧縮比は、圧縮データと無圧縮データとの比である。圧縮速度は、例えば、単位データ当たりの圧縮実行時間を表す(単位:sec/MB)。圧縮比は、例えば、無圧縮データに対する圧縮データの比率によって表される。
 具体的には、例えば、測定部402は、圧縮プログラムを実行することにより、walの圧縮を行うことにより、圧縮速度と圧縮比とを測定する。圧縮速度は、例えば、CPU301の使用率によって変動する。また、圧縮比は、例えば、walの中身によって変動する。このため、圧縮速度と圧縮比は、例えば、直近の5ブロック程度の測定結果を用いて定期的に更新される。ただし、測定部402は、例えば、最初の5ブロックの測定結果が得られるまでは、1ブロック分の測定結果から圧縮速度と圧縮比を決定してもよい。
 算出部403は、受け付けたwal(ブロック)について、リージョンA,B間の通信経路の帯域と、walの圧縮負荷とに基づき、圧縮転送時間と無圧縮転送時間とを算出する。ここで、圧縮転送時間は、walを圧縮してリージョンAからリージョンBに転送する場合にかかる転送時間である。
 無圧縮転送時間は、walを圧縮せずにリージョンAからリージョンBに転送する場合にかかる転送時間である。なお、図1で説明した第1の転送時間は、例えば、圧縮転送時間に対応する。また、図1で説明した第2の転送時間は、例えば、無圧縮転送時間に対応する。
 リージョンA,B間の通信経路の帯域やwalの圧縮負荷は、例えば、walよりも前に転送された他のwalに基づき測定される。リージョンA,B間の通信経路の帯域は、例えば、測定部402によって測定される転送速度である。walの圧縮負荷は、例えば、walの圧縮にかかる処理時間(圧縮時間)である。圧縮時間は、例えば、測定部402によって測定される圧縮速度とwalのブロックサイズとから特定される。また、walの圧縮負荷には、後述するwalの圧縮待ち時間が含まれていてもよい。
 例えば、無圧縮転送時間は、walのブロックサイズを転送速度で除算することによって算出してもよい。また、圧縮転送時間は、walの圧縮時間と、圧縮したwalの送信にかかる時間(送信時間)とを加算することによって算出してもよい。圧縮したwalの送信時間は、walのブロックサイズに圧縮比を乗算した値を、転送速度で除算することによって算出される。圧縮比は、例えば、測定部402によって測定される。
 ただし、第1のデータベース220から出力されたwalを順次転送するにあたり、他のwalの転送が完了しておらず、送信待ちが発生する場合がある。このため、算出部403は、walの送信(転送)待ち時間を考慮して、圧縮転送時間と無圧縮転送時間とを算出してもよい。
 この送信待ち時間は、walを転送する準備ができた時刻t1と、他のwalの転送が完了する時刻t2との差によって表すことができる。walを無圧縮で転送する場合、時刻t1(無圧縮)は、例えば、無圧縮バッファ511にwalが入力された時刻とすることができる。walを圧縮して転送する場合、時刻t1(圧縮)は、例えば、walの圧縮が完了する時刻とすることができる。
 walの圧縮が完了する時刻は、他のwalを圧縮中の場合、他のwalの残りの圧縮時間と、walの圧縮時間とを用いて予測することができる。他のwalの残りの圧縮時間は、他のwalの圧縮が完了する時刻から算出することができる。また、walの圧縮が完了する時刻は、他のwalを圧縮中ではない場合、walの圧縮時間を用いて予測することができる。
 他のwalの転送が完了する時刻t2は、他のwalを転送中の場合、他のwalの残りの転送時間を用いて予測することができる。また、他のwalを圧縮して転送するために、他のwalを圧縮中の場合がある。この場合、他のwalの転送が完了する時刻t2は、他のwalの残りの圧縮時間と、他のwalの圧縮転送時間とを用いて予測することができる。
 なお、未転送の他のwalが複数存在する場合、転送部405は、例えば、他のwalそれぞれについて、圧縮または無圧縮のいずれで転送するのかを考慮して、他のwalの転送が完了する時刻を順次予測することにより、walの送信待ち時間を算出することができる。
 また、第1のデータベース220から出力されたwalを圧縮するにあたり、他のwalの圧縮が完了しておらず、圧縮待ちが発生する場合がある。このため、算出部403は、walの圧縮待ち時間を考慮して、圧縮転送時間と無圧縮転送時間とを算出してもよい。
 圧縮待ち時間は、walの圧縮を開始するまでに待機する時間である。圧縮待ち時間は、他のwalの残りの圧縮時間によって表すことができる。ただし、他のwalを圧縮中ではない場合、圧縮待ち時間は「0」となる。
 このため、算出部403は、例えば、リージョンA,B間の通信経路の帯域(転送速度)、walのブロックサイズおよび送信待ち時間に基づいて、walの無圧縮転送時間を算出してもよい。より詳細に説明すると、例えば、算出部403は、下記式(1)を用いて、walの無圧縮転送時間を算出することができる。
  無圧縮転送時間=ブロックサイズ/転送速度+送信待ち時間   ・・・(1)
 また、算出部403は、例えば、リージョンA,B間の通信経路の帯域(転送速度)、walのブロックサイズ、圧縮比、圧縮負荷(圧縮時間、圧縮待ち時間)および送信待ち時間に基づいて、walの無圧縮転送時間を算出してもよい。より詳細に説明すると、例えば、算出部403は、下記式(2)を用いて、walの圧縮転送時間を算出することができる。
  圧縮転送時間=(ブロックサイズ・圧縮比)/転送速度+圧縮時間+圧縮待ち時間+送信待ち時間   ・・・(2)
 判断部404は、算出された圧縮転送時間に基づいて、第1のデータベース220に応じたRPOを満たすか否かを判断する。また、判断部404は、算出された無圧縮転送時間に基づいて、第1のデータベース220に応じたRPOを満たすか否かを判断する。RPOは、Recovery Point Objectiveの略語である。
 ここで、RPOは、目標復旧時点であり、例えば、リージョンAにおいて作成されたデータがリージョンBに到達するまでの許容時間に相当する。RPOは、例えば、サービスやデータの特性、リージョンA,B間の距離などを考慮して、ユーザによって予め設定される。RPOは、例えば、無圧縮を前提として、2secなどの時間を指定することによって定義される。RPOの指定は、例えば、不図示のクライアント端末から受け付けることにより行われる。
 また、wal内の先頭の操作が行われたタイミングと、第1のデータベース220からwalが出力されるタイミングとに時間差(タイムラグ)が生じる場合がある。このため、判断部404は、この時間差を考慮して、RPOを満たすか否かを判断してもよい。wal内の先頭の操作が行われたタイミング(先頭時刻)は、walの内容から特定することができる。また、第1のデータベース220からwalが出力されるタイミングは、無圧縮バッファ511にwalが入力された時刻(入力時刻)とすることができる。
 具体的には、例えば、判断部404は、下記式(3)を満たす場合、圧縮転送時間がRPOを満たすと判断する。ここで、圧縮転送時間がRPOを満たすとは、walを圧縮して転送してRPOを守れることを意味する。現在時刻は、例えば、walが無圧縮バッファ511に入力された時刻(入力時刻)である。また、先頭時刻は、wal内の先頭の操作が行われた時刻である。
 先頭時刻+RPO>現在時刻+圧縮転送時間   ・・・(3)
 また、判断部404は、下記式(4)を満たす場合、無圧縮転送時間がRPOを満たすと判断する。ここで、無圧縮転送時間がRPOを満たすとは、walを無圧縮で転送してRPOを守れることを意味する。
 先頭時刻+RPO>現在時刻+無圧縮転送時間  ・・・(4)
 上記式(3)および(4)によれば、判断部404は、wal内の先頭の操作が行われた時刻(先頭時刻)と、第1のデータベース220からwalが出力される時刻(入力時刻)とに時間差が生じることを考慮して、walの先頭の操作がRPOを守れるかどうかを判断することができる。
 転送部405は、圧縮転送時間および無圧縮転送時間のいずれもRPOを満たす場合、walを圧縮してリージョンBに転送する。具体的には、例えば、転送部405は、ネットワーク210を介して、リージョンBの転送先装置202に圧縮したwalを送信する。walの圧縮は、例えば、後述の図5に示す圧縮プログラムp1により行われる。また、転送部405は、walを圧縮する場合、例えば、前のブロック(他のwal)を転送している間に圧縮処理を行うことで、圧縮処理の待ち時間を削減する。
 また、転送部405は、圧縮転送時間がRPOを満たさず、かつ、無圧縮転送時間がRPOを満たす場合、walを圧縮せずにリージョンBに転送する。具体的には、例えば、転送部405は、ネットワーク210を介して、リージョンBの転送先装置202に無圧縮のwalを送信する。
 また、転送部405は、圧縮転送時間および無圧縮転送時間のいずれもRPOを満たさない場合、圧縮転送時間のほうが無圧縮転送時間よりも短いか否かを判断する。転送部405は、圧縮転送時間のほうが無圧縮転送時間よりも短い場合、walを圧縮してリージョンBに転送する。一方、転送部405は、無圧縮転送時間が圧縮転送時間以下の場合、walを圧縮せずにリージョンBに転送する。
 これにより、転送部405は、walを圧縮して転送しても、walを無圧縮で転送してもRPOを守れない場合には、圧縮または無圧縮のうち、リージョンBへの転送が完了するまでの時間が短いほうを選択する。
 以下の説明では、第1のデータベース220から出力された任意のwal(ブロック)を「wal:n」と表記する場合がある(nは、自然数)。
 ここで、第1のデータベース220から出力されたwal(ブロック)のうち、wal:nについて、RPOを守れないときに、wal:nの直前に出力されたwal:n-1を圧縮から無圧縮に切り替えると、RPOを守れる場合がある。
 そこで、転送部405は、wal:n(第1の情報)について、圧縮転送時間および無圧縮転送時間のいずれもRPOを満たさない場合、wal:n-1(第2の情報)を圧縮して転送するためにwal:n-1を圧縮中であるか否かを判断してもよい。
 ここで、wal:n-1を圧縮中の場合、算出部403は、wal:n-1を圧縮せずにリージョンBに転送し、かつ、wal:nを圧縮せずにリージョンBに転送する場合にかかるwal:nの無圧縮転送時間(第3の転送時間)を算出してもよい。無圧縮転送時間(第3の転送時間)は、リージョンA,B間の通信経路の帯域に基づき算出される。例えば、無圧縮転送時間(第3の転送時間)は、上記式(1)を用いて算出されてもよい。
 そして、判断部404は、算出された無圧縮転送時間(第3の転送時間)に基づいて、RPOを満たすか否かを判断する。無圧縮転送時間(第3の転送時間)に基づくRPOを満たすか否かの判断は、例えば、上記式(4)を用いて行われる。
 転送部405は、無圧縮転送時間(第3の転送時間)がRPOを満たす場合、wal:n-1を圧縮せずにリージョンBに転送し、wal:nを圧縮せずにリージョンBに転送する。ただし、wal:nは、例えば、wal:n-1の転送が完了したら送信される。また、転送部405は、無圧縮転送時間(第3の転送時間)がRPOを満たす場合、wal:n-1の圧縮を停止する。
 これにより、転送部405は、wal:nのRPOを守るために、wal:n-1を圧縮から無圧縮に切り替えて、wal:nの送信待ち時間を短縮させ、wal:nを無圧縮で転送することができる。
 また、wal:n-1を圧縮中の場合に、算出部403は、wal:n-1を圧縮せずにリージョンBに転送し、かつ、wal:nを圧縮してリージョンBに転送する場合にかかるwal:nの圧縮転送時間(第4の転送時間)を算出してもよい。圧縮転送時間(第4の転送時間)は、リージョンA,B間の通信経路の帯域と、wal:nの圧縮負荷とに基づき算出される。例えば、圧縮転送時間(第4の転送時間)は、上記式(2)を用いて算出されてもよい。
 そして、判断部404は、算出された圧縮転送時間(第4の転送時間)に基づいて、RPOを満たすか否かを判断する。圧縮転送時間(第4の転送時間)に基づくRPOを満たすか否かの判断は、例えば、上記式(3)を用いて行われる。
 転送部405は、圧縮転送時間(第4の転送時間)がRPOを満たす場合、wal:n-1を圧縮せずにリージョンBに転送し、wal:nを圧縮してリージョンBに転送する。また、転送部405は、圧縮転送時間(第4の転送時間)がRPOを満たす場合、wal:n-1の圧縮を停止する。
 これにより、転送部405は、wal:nのRPOを守るために、wal:n-1を圧縮から無圧縮に切り替えて、wal:nの送信待ち時間を短縮させ、wal:nを圧縮で転送することができる。
(転送元装置201の動作例)
 つぎに、図5を用いて、転送元装置201の動作例について説明する。
 図5は、転送元装置201の動作例を示す説明図である。図5において、リージョンAに配置された転送元装置201と、リージョンBに配置された転送先装置202とが示されている。図5中、DB220は、第1のデータベース220を示す。DB230は、第2のデータベース230を示す。
 転送元装置201において、第1のデータベース220は、ブロック単位(16MBのブロック)のwalを順次出力する。ただし、第1のデータベース220は、walが規定サイズとならなくても、規定時間(0.5sec)が経過したらwalを出力する。
 転送元装置201において、第1のデータベース220から順次出力されたwal:nは、無圧縮バッファ511に入力される。無圧縮バッファ511に入力されたwal:nは、圧縮プログラムp1により圧縮されて圧縮バッファ512に入力される。この際、wal:n(ブロック)ごとに圧縮速度、圧縮比が測定される。
 転送元装置201は、wal:nを圧縮する場合に、前のブロック(例えば、wal:n-1)を転送している間に圧縮処理を開始することで、圧縮待ち時間を削減することができる。無圧縮バッファ511および圧縮バッファ512は、FIFO(First In First Out)構造の記憶領域である。図1に示した記憶領域130は、例えば、無圧縮バッファ511および圧縮バッファ512に対応する。
 転送元装置201は、wal:n(ブロック)ごとに圧縮または無圧縮を選択して、ネットワーク210を介して転送先装置202にwal:nを転送する。なお、圧縮または無圧縮でwal:nを転送した場合のネットワーク210の通信帯域と転送完了時間との対応関係については、図6を用いて後述する。
 例えば、無圧縮でwal:nを転送する場合、転送元装置201は、MUX(マルチプレクサ)513により、無圧縮バッファ511からwal:nを取り出して、転送先装置202に転送する。また、圧縮でwal:nを転送する場合、転送元装置201は、MUX513により、圧縮バッファ512からwal:nを取り出して、転送先装置202に転送する。この際、wal:n(ブロック)ごとに転送速度が測定される。
 転送先装置202において、受信されたwal:nは、walアーカイブ520に入力される。walアーカイブ520は、FIFO構造の記憶領域である。図1に示した記憶領域140は、例えば、walアーカイブ520に対応する。
 walアーカイブ520に入力されたwal:nは、解凍プログラムp2により解凍されて第2のデータベース230に入力される。第2のデータベース230は、wal:nが入力されると、wal:nに記録された操作を順次実行する。これにより、転送元装置201は、第1のデータベース220と第2のデータベース230との間で同期を取ることができる。
(通信帯域と転送完了時間との対応関係)
 つぎに、図6を用いて、圧縮または無圧縮でwal:nを転送した場合のネットワーク210の通信帯域と転送完了時間との対応関係について説明する。
 図6は、通信帯域と転送完了時間との対応関係を示す説明図である。図6において、グラフ601は、リージョンAからリージョンBにwal:nを圧縮して転送する場合のネットワーク210の通信帯域と転送完了時間との対応関係を示す(図6中、compression)。
 また、グラフ602は、リージョンAからリージョンBにwal:nを無圧縮で転送する場合のネットワーク210の通信帯域と転送完了時間との対応関係を示す(図6中、raw)。ただし、ここでは、wal:nのブロックサイズを「16MB」とし、圧縮比を「0.66」とする。
 転送元装置201は、例えば、上記式(3)および(4)を用いて、RPOを守りつつ、消費資源(例えば、CPU301の使用率、通信量)を抑えるように、wal:n(ブロック)ごとに圧縮または無圧縮のいずれかの転送方式を選択する。
 例えば、図6に示すエリア611では、wal:nを圧縮して転送しても、無圧縮で転送してもRPOを守ることができる。このため、転送元装置201は、エリア611では、RPOを満たす限り、walを圧縮して転送することにより通信量を削減する。
 一方、CPU301の使用率や通信帯域(ネットワーク210)の使用率が上がると、エリア612に示すように、wal:nを無圧縮で転送するとRPOを守ることができるものの、wal:nを圧縮して転送するとRPOを守ることができない。この場合、転送元装置201は、walを無圧縮で転送することにより、RPOを守る。
 また、一時的な通信断や輻輳などにより遅延が増大すると、エリア613に示すように、wal:nを圧縮して転送しても、無圧縮で転送してもRPOを守ることができない。この場合、転送元装置201は、圧縮または無圧縮のうち転送完了時間が短いほうを選択することにより、リージョンBにできるだけ早くwal:nが届くようにする。
 これにより、転送元装置201は、RPOを守りつつ、消費資源(例えば、CPU301の使用率、通信量)を抑えるように、wal:n(ブロック)ごとに圧縮または無圧縮を選択して、リージョンAからリージョンBにwal:nを転送することができる。
(wal:nの転送例)
 wal:nの転送例について説明する。まず、図7Aおよび図7Bを用いて、wal:nの第1の転送例について説明する。
 図7Aおよび図7Bは、wal:nの第1の転送例を示す説明図である。図7Aおよび図7Bにおいて、状態表700は、0.1sec刻みの時刻ごとの各要素(wal:n)の状態(先頭時刻、RPO遵守時刻、入力、無圧縮、圧縮実行、圧縮、送信実行)を表す。状態表700中の数字(時刻を除く)は、wal:nを識別するブロック番号「n」を示す。
 先頭時刻は、wal:n内の先頭の操作が行われた時刻を示す。例えば、時刻「0」は、wal:1内の先頭の操作が行われた時刻である。RPO遵守時刻は、wal:nについてRPOを守ることができる最終時刻である。RPO遵守時刻を超えても、wal:nの送信が完了していなければ、RPOを守れないことを示す。入力は、無圧縮バッファ511にwal:nが入力された時刻を示す。例えば、時刻「5」は、無圧縮バッファ511にwal:1が入力された時刻である。
 無圧縮は、無圧縮バッファ511のwal:nを示す。圧縮実行は、圧縮を実行しているwal:nを示す。例えば、時刻「5~12」は、wal:1の圧縮を実行していることを示す。圧縮実行は、圧縮処理が動いていないときは空白となる。圧縮は、圧縮バッファ512のwal:nを示す。送信実行は、送信しているwal:nを示す。例えば、時刻「5~9」は、wal:1を送信していることを示す。送信実行は、送信処理が動いていないときは空白となる。
 wal:1(初回ブロック)は、無圧縮で送信され、圧縮も実行されて、パラメータ(転送速度、圧縮速度、圧縮比)が測定される。パラメータが揃わない間は、wal:nは無圧縮で送信される。例えば、wal:1を圧縮中にwal:2が入力されると、送信スロットが空いていれば無圧縮でwal:2が送信される。例えば、時刻「10~14」は、無圧縮のwal:2を送信していることを示す。なお、測定に使用されたブロックは、無圧縮バッファ511、圧縮バッファ512から削除される。
 ここでは、RPOを「2sec」とする。また、転送速度を「32MB/sec」とし、圧縮速度を「0.8sec/16MB」とし、圧縮比を「0.67」とする。なお、転送速度、圧縮速度および圧縮比は、測定によって求められるパラメータであるが、説明のために固定値とする。
 ここで、wal:3について、圧縮または無圧縮を選択する場合について説明する。転送元装置201は、例えば、上記式(1)を用いて、wal:3の無圧縮転送時間を算出する。ここでは、wal:3の無圧縮転送時間は「0.5sec」となる。
 また、転送元装置201は、例えば、上記式(2)を用いて、wal:3の圧縮転送時間を算出する。ここでは、wal:3の圧縮転送時間は「1.133sec」となる。ただし、圧縮時間は、「0.8sec」である。圧縮待ち時間および送信待ち時間は「0sec」である。
 そして、転送元装置201は、例えば、上記式(3)を用いて、算出した圧縮転送時間に基づいて、RPOを満たすか否かを判断する。また、転送元装置201は、例えば、上記式(4)を用いて、算出した無圧縮転送時間に基づいて、RPOを満たすか否かを判断する。現在時刻は、例えば、wal:3が無圧縮バッファ511に入力された時刻「16」である。ここでは、圧縮転送時間および無圧縮転送時間のいずれもRPOを満たす場合を想定する。
 この場合、転送元装置201は、wal:3を圧縮して転送する(図6に示したエリア611に対応)。状態表700の例では、wal:3は、時刻「16」で圧縮が実行され、時刻「24」に送信が開始され、時刻「26」に送信が完了する。時刻「26」は、wal:3のRPO遵守時刻「30」を超えていない。wal:3について、RPOを守れていることがわかる。
 つぎに、wal:4について、圧縮または無圧縮を選択する場合について説明する。ここでは、圧縮転送時間に着目する。転送元装置201は、例えば、上記式(2)を用いて、wal:4の圧縮転送時間を算出する。ここでは、wal:4の圧縮転送時間は「1.333sec」となる。ただし、圧縮時間は、「0.8sec」である。圧縮待ち時間は「0.2sec」である。送信待ち時間は「0sec」である。
 そして、転送元装置201は、例えば、上記式(3)を用いて、算出した圧縮転送時間に基づいて、RPOを満たすか否かを判断する。ここでは、圧縮転送時間がRPOを満たす場合を想定する。
 この場合、転送元装置201は、wal:4を圧縮して転送する(図6に示したエリア611に対応)。状態表700の例では、wal:4は、時刻「24」で圧縮が実行され、時刻「32」に送信が開始され、時刻「34」に送信が完了する。時刻「34」は、wal:4のRPO遵守時刻「36」を超えていない。このため、wal:4について、RPOを守れていることがわかる。
 つぎに、図8Aおよび図8Bを用いて、wal:nの第2の転送例について説明する。
 図8Aおよび図8Bは、wal:nの第2の転送例を示す説明図である。図8Aおよび図8Bにおいて、状態表800は、0.1sec刻みの時刻ごとの各要素(wal:n)の状態を表す。
 ここでは、RPOを「2sec」とする。また、転送速度を「16MB/sec」とし、圧縮速度を「1.0sec/16MB」とし、圧縮比を「0.667」とする。
 ここで、wal:3について、圧縮または無圧縮を選択する場合について説明する。転送元装置201は、例えば、上記式(1)を用いて、wal:3の無圧縮転送時間を算出する。ここでは、wal:3の無圧縮転送時間は「1.3sec」となる。ただし、送信待ち時間は「0.3sec」である。
 また、転送元装置201は、例えば、上記式(2)を用いて、wal:3の圧縮転送時間を算出する。ここでは、wal:3の圧縮転送時間は「1.667sec」となる。ただし、圧縮時間は、「1.0sec」である。圧縮待ち時間および送信待ち時間は「0sec」とする。
 そして、転送元装置201は、例えば、上記式(3)を用いて、算出した圧縮転送時間に基づいて、RPOを満たすか否かを判断する。また、転送元装置201は、例えば、上記式(4)を用いて、算出した無圧縮転送時間に基づいて、RPOを満たすか否かを判断する。ここでは、圧縮転送時間がRPOを満たさず、かつ、無圧縮転送時間がRPOを満たす場合を想定する。
 この場合、転送元装置201は、wal:3を無圧縮で転送する(図6に示したエリア612に対応)。状態表800の例では、wal:3は、時刻「26」に送信が開始され、時刻「35」に送信が完了する。時刻「35」は、wal:3のRPO遵守時刻「37」を超えていない。このため、wal:3について、RPOを守れていることがわかる。
 つぎに、図9A、図9Bおよび図9Cを用いて、wal:nの第3の転送例について説明する。
 図9A、図9Bおよび図9Cは、wal:nの第3の転送例を示す説明図である。図9A、図9Bおよび図9Cにおいて、状態表900は、0.1sec刻みの時刻ごとの各要素(wal:n)の状態を表す。
 ここでは、RPOを「2sec」とする。また、転送速度を「10MB/sec」とし、圧縮速度を「1.0sec/16MB」とし、圧縮比を「0.667」とする。
 ここで、wal:3について、圧縮または無圧縮を選択する場合について説明する。転送元装置201は、例えば、上記式(1)を用いて、wal:3の無圧縮転送時間を算出する。また、転送元装置201は、例えば、上記式(2)を用いて、wal:3の圧縮転送時間を算出する。
 そして、転送元装置201は、例えば、算出した圧縮転送時間に基づいて、RPOを満たすか否かを判断する。また、転送元装置201は、例えば、算出した無圧縮転送時間に基づいて、RPOを満たすか否かを判断する。ここでは、圧縮転送時間および無圧縮転送時間のいずれもRPOを満たさない場合を想定する。
 この場合、転送元装置201は、wal:3について、圧縮転送時間のほうが無圧縮転送時間よりも短いか否かを判断する。ここでは、wal:3の圧縮をwal:2の転送中に行うことができるため、圧縮転送時間のほうが無圧縮転送時間よりも短い場合を想定する。
 なお、wal:3の圧縮転送時間は「2.167sec」となる。ただし、圧縮時間は、「1.0sec」である。圧縮待ち時間は「0sec」である。送信待ち時間は「0.1sec」である。
 この場合、転送元装置201は、wal:3を圧縮して転送する(図6に示したエリア613に対応)。状態表900の例では、wal:3は、時刻「25」で圧縮が実行され、時刻「36」に送信が開始され、時刻「46」に送信が完了する。時刻「46」は、wal:3のRPO遵守時刻「39」を超えているものの、無圧縮で転送する場合に比べて転送完了時刻が早い。
 つぎに、図10Aおよび図10Bを用いて、wal:nの第4の転送例について説明する。
 図10Aおよび図10Bは、wal:nの第4の転送例を示す説明図である。図10Aおよび図10Bにおいて、状態表1000は、0.1sec刻みの時刻ごとの各要素(wal:n)の状態を表す。
 ここでは、RPOを「2sec」とする。また、転送速度を「32MB/sec」とし、圧縮速度を「1.0sec/16MB」とし、圧縮比を「0.667」とする。
 ここで、wal:3について、圧縮して転送するために圧縮中であり、wal:4の圧縮転送時間および無圧縮転送時間のいずれもRPOを満たさない場合を想定する。この場合、転送元装置201は、例えば、wal:3を圧縮せずに転送する場合(wal:3の圧縮をキャンセル)のwal:4の無圧縮転送時間(第3の転送時間)および圧縮転送時間(第4の転送時間)を算出する。
 なお、wal:3の圧縮をキャンセルしなかった場合のwal:4の転送例については、図11Aおよび図11Bを用いて後述する。
 そして、転送元装置201は、算出したwal:4の無圧縮転送時間(第3の転送時間)に基づいて、RPOを満たすか否かを判断する。また、転送元装置201は、算出したwal:4の圧縮転送時間(第4の転送時間)に基づいて、RPOを満たすか否かを判断する。ここでは、wal:4の無圧縮転送時間(第3の転送時間)および圧縮転送時間(第4の転送時間)のいずれもRPOを満たす場合を想定する。
 なお、wal:4の圧縮転送時間は「1.333sec」となる。ただし、圧縮時間は、「1.0sec」である。圧縮待ち時間および送信待ち時間は「0sec」である。
 この場合、転送元装置201は、wal:4を圧縮して転送する。状態表1000の例では、wal:4は、時刻「19」で圧縮が実行され、時刻「29」に送信が開始され、時刻「31」に送信が完了する。時刻「31」は、wal:4のRPO遵守時刻「32」を超えていない。このため、wal:4について、RPOを守れていることがわかる。
 ここで、図11Aおよび図11Bを用いて、wal:3の圧縮をキャンセルしなかった場合のwal:4の転送例について説明する。
 図11Aおよび図11Bは、wal:3の圧縮をキャンセルしなかった場合のwal:4の転送例を示す説明図である。図11Aおよび図11Bにおいて、状態表1100は、0.1sec刻みの時刻ごとの各要素(wal:n)の状態を表す。
 状態表1100では、wal:3の圧縮をキャンセルしなかったため、wal:3の圧縮が完了し、wal:3の送信が完了するまでの間、wal:4の送信待ちが発生している。この結果、wal:4は、時刻「29」に無圧縮で送信が開始され、時刻「33」に送信が完了する。
 時刻「33」は、wal:4のRPO遵守時刻「32」を超えている。このため、wal:3の圧縮をキャンセルしなかった場合、wal:4について、RPOを守れないことになる。これに対して、転送元装置201は、図10Aおよび図10Bで説明したように、wal:3の圧縮をキャンセルすることで、wal:4についてRPOを守れるようにすることができる。
(転送元装置201の各種処理手順)
 つぎに、転送元装置201の各種処理手順について説明する。まず、図12を用いて、転送元装置201の新規スレッド開始処理手順について説明する。
 図12は、転送元装置201の新規スレッド開始処理手順の一例を示すフローチャートである。図12のフローチャートにおいて、まず、転送元装置201は、新しいブロック(wal:n)が無圧縮バッファ511に入力されたか否かを判断する(ステップS1201)。
 ここで、転送元装置201は、新しいブロックが入力されるのを待つ(ステップS1201:No)。そして、転送元装置201は、新しいブロックが入力された場合(ステップS1201:Yes)、入力された新しいブロックについての転送処理を開始して(ステップS1202)、ステップS1201に戻る。
 これにより、転送元装置201は、新しいブロック(wal:n)が無圧縮バッファ511に入力されるたびに、その都度、入力された新しいブロックを転送するための転送処理を新規スレッドとして開始することができる。
 つぎに、図13~図15を用いて、転送元装置201の転送処理手順について説明する。転送元装置201の転送処理は、無圧縮バッファ511に入力されたブロック(wal:n)ごとに、図12に示したステップS1202において開始される。
 図13~図15は、転送元装置201の転送処理手順の一例を示すフローチャートである。図13のフローチャートにおいて、まず、転送元装置201は、パラメータ(転送速度、圧縮速度、圧縮比)の測定がすべて終了したか否かを判断する(ステップS1301)。
 ここで、パラメータ(転送速度、圧縮速度、圧縮比)の測定がすべて終了した場合(ステップS1301:Yes)、転送元装置201は、wal:nを無圧縮で送ってRPOを守れるか否かを判断する(ステップS1302)。具体的には、例えば、転送元装置201は、上記式(1)を用いて、wal:nの無圧縮転送時間を算出する。そして、転送元装置201は、上記式(4)を用いて、wal:nを無圧縮で送ってRPOを守れるか否かを判断する。
 ここで、wal:nを無圧縮で送ってRPOを守れる場合(ステップS1302:Yes)、転送元装置201は、wal:nを圧縮して送ってRPOを守れるか否かを判断する(ステップS1303)。具体的には、例えば、転送元装置201は、上記式(2)を用いて、wal:nの圧縮転送時間を算出する。そして、転送元装置201は、上記式(3)を用いて、wal:nを圧縮して送ってRPOを守れるか否かを判断する。
 ここで、wal:nを圧縮して送ってRPOを守れない場合(ステップS1303:No)、転送元装置201は、ステップS1310に移行する。一方、wal:nを圧縮して送ってRPOを守れる場合(ステップS1303:Yes)、転送元装置201は、wal:nの圧縮を開始する(ステップS1304)。
 つぎに、転送元装置201は、wal:nの圧縮が終わったか否かを判断する(ステップS1305)。ここで、転送元装置201は、wal:nの圧縮が終わるのを待つ(ステップS1305:No)。そして、転送元装置201は、wal:nの圧縮が終わった場合(ステップS1305:Yes)、wal:nの圧縮は正常終了したか否かを判断する(ステップS1306)。
 ここで、wal:nの圧縮は正常終了した場合(ステップS1306:Yes)、転送元装置201は、wal:n-1の送信が終了したか否かを判断する(ステップS1307)。ここで、転送元装置201は、wal:n-1の送信が終了するのを待つ(ステップS1307:No)。
 転送元装置201は、wal:n-1の送信が終了した場合(ステップS1307:Yes)、リージョンBの転送先装置202に圧縮バッファ512のwal:nを送信する(ステップS1308)。そして、転送元装置201は、各バッファ511,512のwal:nを削除して(ステップS1309)、本フローチャートによる一連の処理を終了する。
 また、ステップS1306において、wal:nの圧縮が異常終了した場合(ステップS1306:No)、転送元装置201は、wal:n-1の送信が終了したか否かを判断する(ステップS1310)。ここで、転送元装置201は、wal:n-1の送信が終了するのを待つ(ステップS1310:No)。
 転送元装置201は、wal:n-1の送信が終了した場合(ステップS1310:Yes)、リージョンBの転送先装置202に無圧縮バッファ511のwal:nを送信して(ステップS1311)、ステップS1309に移行する。
 また、ステップS1302において、wal:nを無圧縮で送ってRPOを守れない場合(ステップS1302:No)、転送元装置201は、図14に示すステップS1401に移行する。
 図14のフローチャートにおいて、まず、転送元装置201は、wal:n-1が圧縮中か否かを判断する(ステップS1401)。ここで、wal:n-1が圧縮中ではない場合(ステップS1401:No)、転送元装置201は、wal:nの送信完了が早いのは圧縮か否かを判断する(ステップS1402)。
 ここで、圧縮のほうが早い場合(ステップS1402:Yes)、転送元装置201は、図13に示したステップS1304に移行する。一方、無圧縮のほうが早い場合(ステップS1402:No)、転送元装置201は、図13に示したステップS1310に移行する。
 また、ステップS1401において、wal:n-1が圧縮中の場合(ステップS1401:Yes)、転送元装置201は、wal:n-1を無圧縮に切り替えればwal:nも無圧縮でRPOを守れるか否かを判断する(ステップS1403)。
 具体的には、例えば、転送元装置201は、上記式(1)を用いて、wal:n-1を圧縮せずに転送し、かつ、wal:nを圧縮せずに転送する場合にかかるwal:nの無圧縮転送時間(第3の転送時間)を算出する。そして、転送元装置201は、上記式(4)を用いて、wal:nを無圧縮で送ってRPOを守れるか否かを判断する。
 ここで、RPOを守れない場合(ステップS1403:No)、転送元装置201は、ステップS1402に移行する。一方、RPOを守れる場合(ステップS1403:Yes)、転送元装置201は、wal:n-1の圧縮を停止する(ステップS1404)。
 そして、転送元装置201は、リージョンBの転送先装置202に無圧縮バッファ511のwal:n-1を送信する(ステップS1405)。つぎに、転送元装置201は、wal:n-1を無圧縮に切り替えればwal:nを圧縮でRPOを守れるか否かを判断する(ステップS1406)。
 具体的には、例えば、転送元装置201は、上記式(2)を用いて、wal:n-1を圧縮せずに転送し、かつ、wal:nを圧縮して転送する場合にかかるwal:nの圧縮転送時間(第4の転送時間)を算出する。そして、転送元装置201は、上記式(3)を用いて、wal:nを圧縮して送ってRPOを守れるか否かを判断する。
 ここで、RPOを守れない場合(ステップS1406:No)、転送元装置201は、図13に示したステップS1310に移行する。一方、RPOを守れる場合(ステップS1406:Yes)、転送元装置201は、図13に示したステップS1304に移行する。
 また、図13に示したステップS1301において、パラメータ(転送速度、圧縮速度、圧縮比)の測定がすべて終了していない場合(ステップS1301:No)、転送元装置201は、図15に示すステップS1501に移行する。
 図15のフローチャートにおいて、まず、転送元装置201は、wal:n-1が圧縮中、かつ、圧縮比がnullであるか否かを判断する(ステップS1501)。圧縮比がnullとは、圧縮比が1回も測定されていない状態を示す。
 ここで、wal:n-1が圧縮中、かつ、圧縮比がnullの場合(ステップS1501:Yes)、転送元装置201は、wal:n-1の送信が終了したか否かを判断する(ステップS1502)。ここで、転送元装置201は、wal:n-1の送信が終了するのを待つ(ステップS1502:No)。
 転送元装置201は、wal:n-1の送信が終了した場合(ステップS1502:Yes)、無圧縮バッファ511のwal:nを送信する(ステップS1503)。そして、転送元装置201は、無圧縮バッファ511のwal:nを削除して(ステップS1504)、本フローチャートによる一連の処理を終了する。
 また、ステップS1501において、wal:n-1が圧縮中、かつ、圧縮比がnullではない場合(ステップS1501:No)、転送元装置201は、無圧縮バッファ511のwal:nを送信する(ステップS1505)。つぎに、転送元装置201は、無圧縮バッファ511のwal:nを削除する(ステップS1506)。
 そして、転送元装置201は、wal:nの圧縮を開始する(ステップS1507)。つぎに、転送元装置201は、wal:nの圧縮が終わったか否かを判断する(ステップS1508)。ここで、転送元装置201は、wal:nの圧縮が終わるのを待つ(ステップS1508:No)。
 そして、転送元装置201は、wal:nの圧縮が終わった場合(ステップS1508:Yes)、圧縮バッファ512のwal:nを削除して(ステップS1509)、本フローチャートによる一連の処理を終了する。
 これにより、転送元装置201は、RPOを守りつつ、消費資源を抑えるように、wal:n(ブロック)ごとに圧縮または無圧縮を選択して、リージョンBの転送先装置202にwal:nを転送することができる。また、転送元装置201は、最初のブロック(wal:1)については、無圧縮で転送するとともに圧縮を行って、パラメータ(転送速度、圧縮速度、圧縮比)を測定することができる。
 以上説明したように、実施の形態にかかる転送元装置201によれば、リージョンAに配置された第1のデータベース220から順次出力されるwalをリージョンBに転送するにあたり、リージョンA,B間の通信経路の帯域と、walの圧縮負荷とに基づき、walの圧縮転送時間と無圧縮転送時間とを算出することができる。walは、第1のデータベース220の格納データに応じた情報の一例であり、第1のデータベース220に対する操作を時系列に特定可能なブロック単位の情報である。そして、転送元装置201によれば、圧縮転送時間および無圧縮転送時間のいずれもRPOを満たす場合、walを圧縮して転送することができる。また、転送元装置201によれば、圧縮転送時間がRPOを満たさず、かつ、無圧縮転送時間がRPOを満たす場合、walを圧縮せずに転送することができる。
 これにより、転送元装置201は、RPOを守りつつ、消費資源を抑えるように、wal:n(ブロック)ごとに圧縮または無圧縮を選択して、リージョンAからリージョンBにwal:nを転送することができ、情報転送の効率を高めることができる。
 また、転送元装置201によれば、walの圧縮転送時間および無圧縮転送時間のいずれもRPOを満たさず、かつ、圧縮転送時間のほうが無圧縮転送時間よりも短い場合、walを圧縮して転送することができる。また、転送元装置201によれば、walの圧縮転送時間および無圧縮転送時間のいずれもRPOを満たさず、かつ、無圧縮転送時間が圧縮転送時間以下の場合、walを圧縮せずに転送することができる。
 これにより、転送元装置201は、通信障害からの復帰の際などに、walを圧縮して転送しても、無圧縮で転送してもRPOを守れない場合には、圧縮または無圧縮のうち転送完了時間が短いほうを選択してwalを転送することができる。
 また、転送元装置201によれば、第1のデータベース220から出力されたwal(ブロック)のうち、wal:n(第1の情報)について、圧縮転送時間および無圧縮転送時間のいずれもRPOを満たさない場合、wal:n-1(第2の情報)を圧縮して転送するためにwal:n-1を圧縮中であるか否かを判断することができる。また、転送元装置201によれば、wal:n-1を圧縮中の場合、wal:n-1を圧縮せずに転送し、かつ、wal:nを圧縮せずに転送する場合にかかるwal:nの無圧縮転送時間(第3の転送時間)を算出することができる。そして、転送元装置201によれば、無圧縮転送時間(第3の転送時間)がRPOを満たす場合、wal:n-1を圧縮せずに転送し、wal:nを圧縮せずに転送することができる。
 これにより、転送元装置201は、wal:nのRPOを守るために、wal:n-1を圧縮から無圧縮に切り替えて、wal:nの送信待ち時間を短縮させ、wal:nを無圧縮で転送することができる。
 また、転送元装置201によれば、wal:n-1を圧縮中の場合、wal:n-1を圧縮せずに転送し、かつ、wal:nを圧縮して転送する場合にかかるwal:nの圧縮転送時間(第4の転送時間)を算出することができる。そして、転送元装置201によれば、圧縮転送時間(第4の転送時間)がRPOを満たす場合、wal:n-1を圧縮せずに転送し、wal:nを圧縮して転送することができる。
 これにより、転送元装置201は、wal:nのRPOを守るために、wal:n-1を圧縮から無圧縮に切り替えて、wal:nの送信待ち時間を短縮させ、wal:nを圧縮して転送することができる。
 また、転送元装置201によれば、無圧縮転送時間(第3の転送時間)がRPOを満たす場合、wal:n-1の圧縮を停止することができる。
 これにより、転送元装置201は、wal:n-1の圧縮にかかる負荷を削減して、CPU301の使用率を抑えることができる。
 また、転送元装置201によれば、リージョンA,B間の通信経路の帯域(例えば、転送速度)、walのブロックサイズ、圧縮比、圧縮負荷(例えば、圧縮時間、圧縮待ち時間)および送信待ち時間に基づき、walの圧縮転送時間を算出することができる。また、転送元装置201によれば、リージョンA,B間の通信経路の帯域(例えば、転送速度)、walのブロックサイズおよび送信待ち時間に基づき、walの無圧縮転送時間を算出することができる。
 これにより、転送元装置201は、walの圧縮転送時間と無圧縮転送時間とを精度よく算出することができる。
 また、転送元装置201によれば、walよりも前に転送された他のwalに基づき、リージョンA,B間の通信経路の帯域とwalの圧縮負荷とを測定することができる。
 これにより、転送元装置201は、ネットワーク210の使用状況やCPU301の使用率によって変動するリージョンA,B間の通信経路の帯域やwalの圧縮負荷を考慮して、walの圧縮転送時間および無圧縮転送時間を予測することができる。
 これらのことから、転送元装置201によれば、ディザスタリカバリのために、異なるリージョン間でデータベース同期を行うにあたり、要求仕様のRPOを守りつつシステムリソースを効率的に利用可能にすることができる。
 なお、本実施の形態で説明した転送方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本転送プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本転送プログラムは、インターネット等のネットワークを介して配布してもよい。
 また、本実施の形態で説明した情報処理装置101(転送元装置201)は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
 101,102 情報処理装置
 103 通信経路
 104,105 拠点
 110,120 データベース
 130,140 記憶領域
 200 情報処理システム
 201 転送元装置
 202 転送先装置
 210 ネットワーク
 220 第1のデータベース
 230 第2のデータベース
 300 バス
 301 CPU
 302 メモリ
 303 ディスクドライブ
 304 ディスク
 305 通信I/F
 306 可搬型記録媒体I/F
 307 可搬型記録媒体
 400 制御部
 401 受付部
 402 測定部
 403 算出部
 404 判断部
 405 転送部
 511 無圧縮バッファ
 512 圧縮バッファ
 513 MUX
 520 walアーカイブ
 601,602 グラフ
 611,612,613 エリア
 700,800,900,1000,1100 状態表
 p1 圧縮プログラム
 p2 解凍プログラム

Claims (9)

  1.  第1の拠点に配置されたデータベースの格納データに応じた情報を第2の拠点に転送する転送方法であって、
     前記第1の拠点と前記第2の拠点との間の通信経路の帯域と、前記情報の圧縮負荷とに基づき、前記情報を圧縮して前記第2の拠点に転送する第1の転送時間と、前記情報を圧縮せずに前記第2の拠点に転送する第2の転送時間とを算出し、
     前記第1の転送時間および前記第2の転送時間のいずれも前記データベースに応じた目標復旧時点を満たす場合、前記情報を圧縮して前記第2の拠点に転送し、
     前記第1の転送時間が前記目標復旧時点を満たさず、かつ、前記第2の転送時間が前記目標復旧時点を満たす場合、前記情報を圧縮せずに前記第2の拠点に転送する、
     処理をコンピュータが実行することを特徴とする転送方法。
  2.  前記第1の転送時間および前記第2の転送時間のいずれも前記目標復旧時点を満たさず、かつ、前記第1の転送時間のほうが前記第2の転送時間よりも短い場合、前記情報を圧縮して前記第2の拠点に転送し、
     前記第1の転送時間および前記第2の転送時間のいずれも前記目標復旧時点を満たさず、かつ、前記第2の転送時間が前記第1の転送時間以下の場合、前記情報を圧縮せずに前記第2の拠点に転送する、
     処理を前記コンピュータに実行させることを特徴とする請求項1に記載の転送方法。
  3.  前記情報は、前記データベースから順次出力される、前記データベースの格納データに応じたブロック単位の情報であり、
     前記データベースから出力された情報のうち、第1の情報について、前記第1の転送時間および前記第2の転送時間のいずれも前記目標復旧時点を満たさない場合、前記第1の情報の直前に出力された第2の情報を圧縮して転送するために当該第2の情報を圧縮中であるか否かを判断し、
     前記第2の情報を圧縮中の場合、前記第2の情報を圧縮せずに前記第2の拠点に転送し、かつ、前記第1の情報を圧縮せずに前記第2の拠点に転送する場合にかかる第3の転送時間を算出し、
     算出した前記第3の転送時間が前記目標復旧時点を満たす場合、前記第2の情報を圧縮せずに前記第2の拠点に転送し、前記第1の情報を圧縮せずに前記第2の拠点に転送する、
     処理を前記コンピュータに実行させることを特徴とする請求項2に記載の転送方法。
  4.  前記第2の情報を圧縮中の場合、前記第2の情報を圧縮せずに前記第2の拠点に転送し、かつ、前記第1の情報を圧縮して前記第2の拠点に転送する場合にかかる第4の転送時間を算出し、
     算出した前記第4の転送時間が前記目標復旧時点を満たす場合、前記第2の情報を圧縮せずに前記第2の拠点に転送し、前記第1の情報を圧縮して前記第2の拠点に転送する、
     処理を前記コンピュータに実行させることを特徴とする請求項3に記載の転送方法。
  5.  前記第3の転送時間が前記目標復旧時点を満たす場合、前記第2の情報の圧縮を停止する、
     処理を前記コンピュータに実行させることを特徴とする請求項3に記載の転送方法。
  6.  前記情報は、前記データベースから順次出力される、前記データベースに対する操作を時系列に特定可能なブロック単位の情報である、ことを特徴とする請求項1に記載の転送方法。
  7.  前記通信経路の帯域と前記情報の圧縮負荷は、前記情報よりも前に転送された他の情報に基づき測定される、ことを特徴とする請求項1~6のいずれか一つに記載の転送方法。
  8.  第1の拠点に配置されたデータベースの格納データに応じた情報を第2の拠点に転送する転送プログラムであって、
     前記第1の拠点と前記第2の拠点との間の通信経路の帯域と、前記情報の圧縮負荷とに基づき、前記情報を圧縮して前記第2の拠点に転送する第1の転送時間と、前記情報を圧縮せずに前記第2の拠点に転送する第2の転送時間とを算出し、
     前記第1の転送時間および前記第2の転送時間のいずれも前記データベースに応じた目標復旧時点を満たす場合、前記情報を圧縮して前記第2の拠点に転送し、
     前記第1の転送時間が前記目標復旧時点を満たさず、かつ、前記第2の転送時間が前記目標復旧時点を満たす場合、前記情報を圧縮せずに前記第2の拠点に転送する、
     処理をコンピュータに実行させることを特徴とする転送プログラム。
  9.  第1の拠点に配置されたデータベースの格納データに応じた情報を第2の拠点に転送する情報処理装置であって、
     前記第1の拠点と前記第2の拠点との間の通信経路の帯域と、前記情報の圧縮負荷とに基づき、前記情報を圧縮して前記第2の拠点に転送する第1の転送時間と、前記情報を圧縮せずに前記第2の拠点に転送する第2の転送時間とを算出し、
     前記第1の転送時間および前記第2の転送時間のいずれも前記データベースに応じた目標復旧時点を満たす場合、前記情報を圧縮して前記第2の拠点に転送し、
     前記第1の転送時間が前記目標復旧時点を満たさず、かつ、前記第2の転送時間が前記目標復旧時点を満たす場合、前記情報を圧縮せずに前記第2の拠点に転送する、
     制御部を有することを特徴とする情報処理装置。
PCT/JP2022/037734 2022-10-07 2022-10-07 転送方法、転送プログラム、および情報処理装置 WO2024075306A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/037734 WO2024075306A1 (ja) 2022-10-07 2022-10-07 転送方法、転送プログラム、および情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/037734 WO2024075306A1 (ja) 2022-10-07 2022-10-07 転送方法、転送プログラム、および情報処理装置

Publications (1)

Publication Number Publication Date
WO2024075306A1 true WO2024075306A1 (ja) 2024-04-11

Family

ID=90608023

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/037734 WO2024075306A1 (ja) 2022-10-07 2022-10-07 転送方法、転送プログラム、および情報処理装置

Country Status (1)

Country Link
WO (1) WO2024075306A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004234539A (ja) * 2003-01-31 2004-08-19 Sony Corp データ処理システム及びデータ処理方法、情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
JP2010224996A (ja) * 2009-03-25 2010-10-07 Nec Corp ファイル送信方法、ファイル送信装置及びコンピュータプログラム
JP2012133731A (ja) * 2010-12-24 2012-07-12 Fujitsu Ltd データ処理装置及びデータ記録方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004234539A (ja) * 2003-01-31 2004-08-19 Sony Corp データ処理システム及びデータ処理方法、情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
JP2010224996A (ja) * 2009-03-25 2010-10-07 Nec Corp ファイル送信方法、ファイル送信装置及びコンピュータプログラム
JP2012133731A (ja) * 2010-12-24 2012-07-12 Fujitsu Ltd データ処理装置及びデータ記録方法

Similar Documents

Publication Publication Date Title
US11010240B2 (en) Tracking status and restarting distributed replication
US11327799B2 (en) Dynamic allocation of worker nodes for distributed replication
US20200348852A1 (en) Distributed object replication architecture
US20210326215A1 (en) Systems and methods for continuous data protection
US20190245918A1 (en) Distributed replication of an object
JP5303038B2 (ja) 重複したデータを排除するストレージシステム
US9952940B2 (en) Method of operating a shared nothing cluster system
US8521692B1 (en) Storage system and method for controlling storage system
US20210342068A1 (en) Systems and methods for continuous data protection
US11151000B2 (en) Systems and methods for continuous data protection with near zero recovery point
JP6152484B2 (ja) ファイルサーバ装置、方法、及び、計算機システム
US11747995B2 (en) Data resynchronization methods and systems in continuous data protection
WO2015081470A1 (zh) 数据处理设备和数据处理的方法
WO2015097757A1 (ja) ストレージシステム及び重複排除制御方法
US20150293700A1 (en) Control apparatus and control method
US11663089B2 (en) Systems and methods for continuous data protection
TW200428227A (en) Use of virtual targets for preparing and servicing requests for server-free data transfer operations
US20200348956A1 (en) Systems and methods for continuous data protection
CN105302676A (zh) 一种分布式文件系统的主备机制数据传输方法及装置
WO2015097756A1 (ja) ストレージシステム及び重複排除制御方法
US11663092B2 (en) Systems and methods for continuous data protection
US20160092131A1 (en) Storage system, storage system control method, and recording medium storing virtual tape device control program
US20200349022A1 (en) Systems and methods for continuous data protection
WO2024075306A1 (ja) 転送方法、転送プログラム、および情報処理装置
JP6943008B2 (ja) 制御プログラム、制御方法、及び情報処理装置