WO2015068381A1 - 送信装置、受信装置、情報処理システム、マスタサーバ、スレーブサーバ、データベースシステム、データ転送方法、および、記憶媒体 - Google Patents

送信装置、受信装置、情報処理システム、マスタサーバ、スレーブサーバ、データベースシステム、データ転送方法、および、記憶媒体 Download PDF

Info

Publication number
WO2015068381A1
WO2015068381A1 PCT/JP2014/005559 JP2014005559W WO2015068381A1 WO 2015068381 A1 WO2015068381 A1 WO 2015068381A1 JP 2014005559 W JP2014005559 W JP 2014005559W WO 2015068381 A1 WO2015068381 A1 WO 2015068381A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
data transmission
dummy data
dummy
size
Prior art date
Application number
PCT/JP2014/005559
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 JP2015546295A priority Critical patent/JP6187598B2/ja
Publication of WO2015068381A1 publication Critical patent/WO2015068381A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/376Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a contention resolving method, e.g. collision detection, collision avoidance

Definitions

  • TCP Transmission Control Protocol
  • congestion control using an algorithm called slow start is performed.
  • Slow start is described in RFC (Request for Comments) 2001 (by W. Stevens, “TCP Slow Start, Congestion Avoidance, Fast Recovery, and Fast Recovery Recovery Algorithms”, Jan 1997) by IETF (Internet Engineering Task Force).
  • Congestion control is described in RFC2861 (M. Handley, J. Padhye, S. Floyd, "TCP Congestion Window Validation", June 2000).
  • Slow start is an algorithm that starts from a small amount of communication and increases the data size (congestion window size) that can be transmitted gradually in order to prevent congestion. This operation continues until the congestion window size reaches the window size announced by the receiving side or congestion occurs. When congestion occurs, the slow start starts again.
  • the master server and the slave server are often installed in the same premises (in the same rack).
  • a network is often prepared exclusively for replication in order to ensure high speed replication communication between the master server and the slave server.
  • congestion control using the slow start is often unnecessary when a highly reliable dedicated network is used.
  • the receiving device of the present invention includes data receiving means for performing predetermined processing on the target data when receiving the target data from the transmitting device and discarding the dummy data when receiving the dummy data.
  • the information processing system of the present invention includes the above-described transmission device and the above-described reception device.
  • the slave server of the present invention receives the update log or the dummy data as the target data from the replica data storage means for storing the replica (replicated data) of the master data and the master server described above. And the above-described receiving apparatus that executes a process of updating the replicated data using the received update log as the predetermined process.
  • the target data when there is a request for transmitting target data from an application, the target data is transmitted to a receiving device, and the target data having a size satisfying a predetermined condition is received during the predetermined period.
  • dummy data When not transmitted to the apparatus, dummy data having a size satisfying the predetermined condition is transmitted to the receiving apparatus.
  • the present invention can provide a technique that more sufficiently prevents the reduction of the congestion window size in intermittent communication.
  • FIG. 1 shows the configuration of an information processing system 1 as a first embodiment of the present invention.
  • the information processing system 1 includes a transmission device 10 and a reception device 50.
  • the transmission device 10 and the reception device 50 are connected to be communicable via a network.
  • FIG. 2 shows functional blocks of each device constituting the information processing system 1.
  • the transmission device 10 includes a data transmission unit 11 and a dummy data transmission control unit 12.
  • the receiving device 50 includes a data receiving unit 51.
  • the predetermined period may be a period based on an elapsed time that is specified to reduce the congestion window size.
  • the dummy data transmission control unit 12 may define a period less than 1 ⁇ 2 of the specified elapsed time as the predetermined period. Then, each time the predetermined period elapses, the dummy data transmission control unit 12 may determine whether target data having a size satisfying the predetermined condition has been transmitted in the predetermined period up to that point.
  • the data transmission unit 11 receives a data transmission request (Yes in step S1).
  • the data transmission unit 11 transmits the target data to the receiving device 50 (step S3). ).
  • step S1 when the transmission request received in step S1 is a dummy data transmission request from the dummy data transmission control unit 12 (“dummy data” in step S2), the data transmission unit 11 has a dummy size that satisfies a predetermined condition. Data is transmitted to the receiving device 50 (step S4). Then, the operation of the data transmission unit 11 returns to step S1.
  • step S13 when it is determined that target data having a size satisfying the predetermined condition has been transmitted, the operation of the dummy data transmission control unit 12 proceeds to step S13.
  • the reason is that the data transmitting unit transmits the target data requested by the application or dummy data to the receiving device.
  • the dummy data transmission control unit transmits dummy data having a size satisfying the predetermined condition to the receiving device through the data transmission unit when target data having a size satisfying the predetermined condition is not transmitted during the predetermined period. This is because control is performed.
  • the predetermined period a period based on the elapsed time from the latest communication in which the congestion window size is specified to be reduced in the communication connection established for transmitting the target data is used.
  • the present embodiment is the target data having a size that satisfies the predetermined condition at intervals of less than twice the predetermined period. Or dummy data is transmitted. Therefore, this embodiment can avoid that the congestion window size does not satisfy the predetermined condition, and can keep the size that can be transmitted at a time satisfying the predetermined condition. Therefore, the present embodiment does not reduce the congestion window size so as not to satisfy the predetermined condition in the communication connection in which intermittent communication is performed. Further, for example, if the predetermined condition is that the congestion window size is equal to or larger than the current congestion window size, this embodiment does not further reduce the once-expanded congestion window size.
  • FIG. 7 shows a configuration of a memory database system 2 as a second embodiment of the present invention.
  • the memory database system 2 includes a master server 20 including the transmission device of the present invention and a slave server 60 including the reception device of the present invention.
  • the master server 20 and the slave server 60 are communicably connected via a network.
  • the data transmission unit 21 is configured to operate in substantially the same manner as the data transmission unit 11 in the first embodiment of the present invention.
  • the update log requested from the application unit 24 is applied to the target data.
  • the transmission destination of the update log or dummy data is the slave server 60.
  • the dummy data transmission control unit 22 performs processing according to whether or not an update log having a size of s or more is transmitted during a predetermined period.
  • the predetermined period is a period similar to the predetermined period described in the first embodiment of the present invention.
  • the dummy data transmission control unit 22 is configured to operate as follows.
  • the data receiving unit 61 is configured to operate in substantially the same manner as the data receiving unit 51 in the first embodiment of the present invention. Specifically, the data receiving unit 61 receives an update log or dummy data as target data from the master server 20. Further, the data receiving unit 61 updates the duplicate data in the duplicate data storage unit 62 using the update log. Further, the data receiving unit 61 discards the dummy data.
  • step S1 if the size is less than s, the operation of the data transmission unit 21 returns to step S1.
  • the dummy data transmission control unit 22 sets (resets) the transmitted flag to off (step S142).
  • the dummy data transmission control unit 22 waits for a predetermined period (step S13).
  • step S141 the operation of the dummy data transmission control unit 22 returns to step S141.
  • the data receiving unit 61 receives data from the master server 20 (Yes in step S41).
  • the congestion window size becomes a predetermined size or less. Can be sufficiently prevented.
  • the present embodiment allows the size s to be set at an interval of less than twice the time set as the predetermined period, even if communication by update log transfer does not occur between the master server and the slave server.
  • the above dummy data is transmitted. Therefore, this embodiment can avoid a state in which the congestion window size is s or less. Therefore, this embodiment does not extremely reduce the communication speed even when the update log is transferred to the slave server after the update log is not transferred from the master server for a certain period.
  • this embodiment can always perform high-speed replication processing in a memory database system that constitutes an online transaction system that requires high availability and high-speed response at the same time.
  • FIG. 13 shows a configuration of a memory database system 3 as a third embodiment of the present invention.
  • the memory database system 3 includes a master server 30 and n (n is an integer of 1 or more) slave servers 60 (60_1 to 60_n).
  • the master server 30 and each slave server 60 are communicably connected via a network.
  • FIG. 14 shows functional blocks of each device constituting the memory database system 3.
  • the master server 30 is different from the master server 20 according to the second embodiment of the present invention in that n data transmission units 31 (31_1 to 31_n) and dummy data are used instead of the data transmission unit 21.
  • n dummy data transmission control units 32 32_1 to 32_n
  • a predetermined period calculation unit 35 35
  • a start control unit 36 are provided instead of the transmission control unit 22.
  • the predetermined period calculation unit 35 and the start control unit 36 constitute an embodiment of a part of the dummy data transmission control unit of the present invention.
  • the master server 30 can be configured by a computer device including the same hardware elements as those of the transmission device according to the first embodiment of the present invention described with reference to FIG.
  • the predetermined period calculation unit 35 and the start control unit 36 are configured by the CPU 1001 that reads the computer program and various data stored in the ROM 1003 and the storage device 1004 into the RAM 1002 and executes them.
  • the data transmission unit 31_i transmits the update log or the dummy data to the corresponding slave server 60_i. Specifically, the data transmission unit 31_i performs communication while holding a TCP connection with the corresponding slave server 60_i. In addition, the data transmission unit 31_i holds a transmitted flag regarding the corresponding slave server 60_i. That is, in the master server 30, n transmitted flags are held for each slave server 60_i.
  • the data transmission unit 31_i when the data transmission unit 31_i receives the update log transmission request from the application unit 24, the data transmission unit 31_i transmits the update log to the corresponding slave server 60_i through the TCP connection. At this time, if the size of the transmitted update log is greater than or equal to s, the data transmission unit 31_i sets the transmission completion flag regarding the corresponding slave server 60_i to ON and holds it.
  • the size s may be a value calculated by the following equation (1).
  • MSS Maximum Segment Size
  • the MTU Maximum Transmission Unit
  • the MSS is calculated as a value obtained by removing the IP (Internet Protocol) header 20 bytes and the TCP header 20 bytes from the MTU. Therefore, the data transmission unit 31_i may calculate the size s according to Equation (1) based on the MTU value that can be acquired from the system.
  • the data transmission unit 31_i may acquire the value of s set by the user instead of calculating the value of the size s using the above-described equation (1). In this case, it is desirable that the value of s is set so as to satisfy the formula (1).
  • the data transmission unit 31_i transmits dummy data of size s or more to the slave server 60_i in response to a request from a dummy data transmission control unit 32_i described later.
  • the predetermined period calculation unit 35 determines the predetermined period t using the following equation (3) and notifies the dummy data transmission control units 32_1 to 32_n, respectively.
  • the notified predetermined period t is used as an interval for checking the transmitted flag by each dummy data transmission control unit 32_i.
  • the predetermined period calculation unit 35 may calculate the predetermined period t according to the equation (3) based on the value of the RTO time that can be acquired from the OS (Operating System). Note that, depending on the OS, the value of the RTO time varies depending on the network load status. In such a case, the predetermined period calculation unit 35 may re-acquire the value of the RTO time at any timing and calculate the predetermined period t again. Further, the predetermined period calculation unit 35 may acquire the value of t set by the user instead of calculating the value of the predetermined period t using the above equation (3). In this case, it is desirable that the value of t is set so as to satisfy Expression (3).
  • the start control unit 36 activates the dummy data transmission control units 32_1 to 32_n at different timings. Specifically, for example, the start control unit 36 may sequentially activate the dummy data transmission control units 32_1 to 32_n at each activation interval T calculated based on the following equation (4).
  • the operation of the data transmission unit 31_i in the master server 30 is shown in FIG. Note that, at the start of the operation, it is assumed that the transmitted flag regarding each slave server 60_i is set to off. In addition, it is assumed that the data transmission unit 31_i has already calculated the value of the predetermined size s based on the above equation (1).
  • the data transmission unit 31_i receives a data transmission request (Yes in step S51).
  • the data transmission unit 31_i transmits the update log to the slave server 60_i. (Step S53).
  • the data transmission unit 31_i determines whether or not the size of the update log transmitted in step S53 is greater than or equal to s (step S54).
  • the data transmission unit 31_i sets the transmission completion flag regarding the slave server 60_i to ON and holds it (step S55). Then, the operation of the data transmission unit 31_i returns to Step S51.
  • step S51 If the transmission request received in step S51 is a dummy data transmission request (“dummy data” in step S52), the data transmission unit 31_i sends dummy data of size s or more to the corresponding slave server 60_i. It transmits to (step S56). Then, the operation of the data transmission unit 31_i returns to Step S51.
  • the predetermined period calculation unit 35 may perform this operation when the system is started. Further, as described above, in the case of a system in which the RTO time changes according to the load state of the network, the predetermined period calculation unit 35 may repeatedly execute this operation at any timing.
  • the predetermined period calculation unit 35 acquires the RTO time from the OS (step S61).
  • the predetermined period calculation unit 35 calculates the predetermined period t using Expression (3) (step S62).
  • the start control unit 36 initializes the slave server number i to 1 (step S71).
  • the start control unit 36 waits for the activation interval T (step S72).
  • the start control unit 36 activates the i-th dummy data transmission control unit 32_i (step S73).
  • the operation of the dummy data transmission control unit 32_i in the master server 30 is shown in FIG. It is assumed that the dummy data transmission control unit 32_i has already been notified of the predetermined period t from the predetermined period calculation unit 35. Also, the dummy data transmission control unit 32_i starts the following operation when activated by the start control unit 36.
  • the dummy data transmission control unit 32_i checks the content of the transmitted flag regarding the corresponding slave server 60_i (step S81).
  • the dummy data transmission control unit 32_i sets (resets) the transmitted flag to off (step S82).
  • the dummy data transmission control unit 32_i requests the data transmission unit 31_i to transmit dummy data having a size of s or more to the slave server 60_i (step S83).
  • the dummy data transmission control unit 32_i waits for a predetermined period t (step S84).
  • each of the n slave servers 60_1 to 60_n is the same as that of the slave server 60 in the second embodiment of the present invention described with reference to FIG. The description in is omitted.
  • the data transmission unit sets the transmitted flag to ON when an update log having a predetermined size s or more is transmitted to the slave server. This is also because the dummy data transmission control unit checks the transmitted flag every predetermined period t obtained by multiplying the RTO time by ⁇ (0 ⁇ ⁇ 0.5). Then, the dummy data transmission control unit resets to OFF if the transmitted flag is ON, and transmits dummy data of size s or more to the slave server through the data transmitting unit if the transmitted flag is OFF. It is because it controls.
  • this embodiment can transmit dummy data of size s or more within the RTO time at the longest even when communication by update log transfer does not occur. Therefore, in the present embodiment, the congestion window size is maintained at s or more without causing the slow start to start. As described above, the present embodiment can avoid the slow start by preventing the once enlarged congestion window size from being reduced to the predetermined size s or less. Therefore, this embodiment can eliminate the communication delay even when the update log is transferred to the slave server after the update log is not transferred for a certain period. As described above, this embodiment can always perform high-speed replication processing in a memory database system that constitutes an online transaction system in which high availability and high-speed response are required at the same time.
  • the memory database system does not generate a delayed ACK in the transfer of the update log from the master server to the slave server, and enables faster data transfer.
  • the memory database system according to the third embodiment of the present invention can avoid the compression of the bandwidth due to unnecessary transfer of dummy data during the execution of replication.
  • transmission of dummy data can be omitted if an update log of size s or more has already been transferred within the RTO time from the previous communication. Therefore, this embodiment does not transfer unnecessary dummy data during replication.
  • the memory database system as the third embodiment of the present invention does not temporarily increase the load on the CPU and the network load by transferring dummy data to a plurality of slave servers.
  • the data transmission unit transmits update logs or dummy data to the plurality of slave servers via different connections, and holds the transmitted flag for each slave server.
  • the dummy data transmission control unit executes the processing according to the value of the transmitted flag for each slave server at a predetermined time t at a different timing for each slave server.
  • the activation control unit sequentially activates the n dummy data transmission control units at each activation interval T obtained by dividing the predetermined period t by the number of slave servers n.
  • the transmission timing of dummy data to a plurality of slave servers can be distributed, and the load on the CPU and the load on the network are leveled.
  • this embodiment can suppress the influence on the operation of the application unit or other important processes due to the transmission of dummy data.
  • the memory database system 3 is configured such that the master server 30 has one data transmission unit 31 instead of the n data transmission units 31_i and omits the start control unit 36. Is also possible.
  • the data transmission unit 31 receives a data transmission request (Yes in step S51).
  • the data transmission unit 31 sends the update log to the slave servers 60_1 to 60_n. Each is transmitted (step S93).
  • step S93 when the size of the update log transmitted in step S93 is equal to or greater than s (Yes in step S54), the data transmission unit 31 sets each of the n transmitted flags for the slave servers 60_1 to 60_n to on. (Step S95). Then, the operation of the data transmission unit 31 returns to step S51.
  • the dummy data transmission control unit 32_i operates as shown in FIG. 21 instead of the operation shown in FIG.
  • the dummy data transmission control unit 32_i waits for the start of operation for the activation standby time T1 calculated by the following equation (5) (step S101). ).
  • T1 ⁇ (i ⁇ 1) ⁇ n ⁇ ⁇ t (5)
  • i is a number indicating the number of dummy data transmission control unit 32.
  • N is the number of slave servers 60.
  • t is a predetermined period notified from the predetermined period calculation unit 35.
  • the dummy data transmission control unit 32_i operates as described with reference to FIG. 18 from step S81 to step S84, and repeats from the operation of step S81.
  • another aspect of the third exemplary embodiment of the present invention is that when it is assumed that the data transmission unit, the dummy data transmission control unit, and the start control unit are each configured by a thread.
  • the number and type of CPUs can be reduced, and the CPU load can be further reduced.
  • the data transmission unit 41_i of the master server 40 is different from the data transmission unit 31_i according to the third embodiment of the present invention in the case of receiving an update log transmission request and a dummy data transmission request substantially simultaneously. Specifically, when these transmission requests are received substantially simultaneously, if the size of the update log is not less than s, the data transmission unit 41_i transmits this update log to the slave server 70_i and omits transmission of dummy data. To do. When these transmission requests are received substantially simultaneously, if the size of the update log is less than s, the data transmission unit 41_i adds dummy data to the update log to make it larger than the size s and then the slave server 70_i. Send to.
  • the update log transmission request and the dummy data transmission request are received substantially simultaneously, for example, after the data transmission unit 41_i receives the update log transmission request and before starting the update log transmission process. It may be a case where a data transmission request is received.
  • the update log transmission request and the dummy data transmission request are received substantially simultaneously, for example, after the data transmission unit 41_i receives the dummy data transmission request and before starting the dummy data transmission process. It may be a case where a log transmission request is received.
  • the data transmission unit 41_i is configured to operate in the same manner as the data transmission unit 31_i in the third embodiment of the present invention. Is done.
  • the data receiving unit 71 of the slave server 70 When the data receiving unit 71 of the slave server 70 receives the update log to which the dummy data is added from the master server 40, the data receiving unit 71 discards the dummy data part and obtains the remaining update log. Then, the data receiving unit 71 updates the replicated data stored in the replicated data storage unit 62 using the obtained update log.
  • the data receiving unit 71 is a data receiving unit according to the second and third embodiments of the present invention. It is configured to operate in the same manner as 61.
  • the operation of the memory database system 4 configured as described above will be described.
  • the operation of the memory database system 4 is substantially the same as the operation of the memory database system 3 as the third embodiment of the present invention.
  • the details of the operation of the data transmission unit 41 — i in the master server 40 and the operation of the data reception unit 71 in the slave server 70 are different.
  • the data transmission unit 41_i receives a data transmission request (Yes in step S111).
  • the data transmission unit 41_i determines whether the transmission request received in step S111 is an update log transmission request from the application unit 24 or a dummy data transmission request (step S112).
  • the data transmission unit 41_i determines whether or not it has received an update log transmission request substantially simultaneously (step S114). For example, as described above, if the data transmission unit 41_i has already received an update log transmission request that has not yet started processing at this point, the data transmission unit 41_i has received the update log transmission request almost simultaneously. You may judge.
  • step S113 If it is determined in step S113 or step S114 that the update log transmission request and the dummy data transmission request are received substantially simultaneously, the data transmission unit 41_i determines whether or not the size of the update log is greater than or equal to s. (Step S115).
  • the data transmission unit 41_i adds dummy data to the update log so that the total size is s or more (step S116).
  • step S115 if the size of the update log is greater than or equal to s (Yes in step S115), the operation of the data transmission unit 41_i proceeds to step S117.
  • the data transmission unit 41_i transmits the update log to the slave server 70_i (Step S117).
  • the update log transmitted here is an update log to which dummy data is added in step S116 or an update log determined to have a size of s or more in step S115.
  • the data transmission unit 41_i omits transmission of dummy data.
  • the data transmitting unit 41_i sets the transmitted flag regarding the slave server 70_i to ON and holds it (step S118).
  • step S112 it is determined in step S112 that an update log transmission request has been received, and it is determined in step S113 that dummy data transmission requests have not been received substantially simultaneously.
  • the data transmission unit 41_i operates in the same manner as the data transmission unit 31_i in the third embodiment of the present invention from step S53 to S55.
  • the data receiving unit 71 receives data from the master server 40 (Yes in step S41).
  • the data reception unit 71 determines whether dummy data is added to the update log (step S123).
  • the data receiving unit 71 separates and discards the dummy data portion (step S124).
  • the data receiving unit 71 updates the copy data in the copy data storage unit 62 using the update log (step S43).
  • step S123 if it is determined in step S123 that no dummy data is added, the data receiving unit 71 executes step S43 using the update log received in step S41.
  • step S42 If the received data is dummy data (“dummy data” in step S42), the data receiving unit 71 discards the dummy data (step S44).
  • step S41 the operation of the data receiving unit 71 returns to step S41.
  • the memory database system can more efficiently prevent the congestion window size from being reduced when the update log is intermittently transferred from the master server to the slave server. .
  • the data transmission unit of the master server operates as follows when the update log transmission request and the dummy data transmission request are received substantially simultaneously. That is, in this case, if the size of the update log is greater than or equal to s, the data transmission unit transmits the update log by omitting transmission of dummy data to the slave server. In addition, if the size of the update log is less than s, the data transmission unit adds dummy data to the update log so that the size is greater than or equal to s and transmits the update log to the slave server.
  • this embodiment can produce the same effect as the second or third embodiment of the present invention while reducing the amount of dummy data to be transmitted. Therefore, the present embodiment can reduce the CPU load and the network load, and more effectively prevent the communication speed from decreasing.
  • each embodiment is applicable to other database systems that perform replication between a master server and a slave server.
  • each functional block of the transmission device, the reception device, the master server, and the slave server is realized by a CPU that executes a computer program stored in a storage device or ROM. It explained mainly. In addition, some, all, or a combination of each functional block of each device may be realized by dedicated hardware.
  • the functional blocks of the transmission device, the reception device, the master server, and the slave server may be distributed and realized in a plurality of devices.
  • the operations of the transmission device, the reception device, the master server, and the slave server described with reference to the flowcharts are stored in the storage device ( It may be stored in a storage medium.
  • the computer program may be read and executed by the CPU.
  • the present invention is constituted by the code of the computer program or a storage medium.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

 本発明は、断続的な通信における輻輳ウィンドウサイズの縮小をより十分に防ぐ技術を提供する。 送信装置10は、データ送信部11およびダミーデータ送信制御部12を備える。データ送信部11は、アプリケーションから送信を要求される対象データ、または、ダミーデータを、受信装置50に対して送信する。ダミーデータ送信制御部12は、所定期間の間に、所定条件を満たすサイズの対象データが受信装置50に対して送信されていない場合に、所定条件を満たすサイズのダミーデータを送信するようデータ送信部11を制御する。受信装置50は、対象データを受信すると該対象データに対する所定の処理を行う。また、受信装置50は、ダミーデータを受信すると該ダミーデータを破棄する。

Description

送信装置、受信装置、情報処理システム、マスタサーバ、スレーブサーバ、データベースシステム、データ転送方法、および、記憶媒体
 本発明は、ネットワークを介して接続された装置間でデータを転送する技術に関する。
 ネットワークを介して接続された装置間でデータを転送する情報処理システムでは、信頼性のある通信を行いながら、転送時間をできるだけ短くすることが求められる。このような情報処理システムとしては、例えば、メモリデータベースシステムが挙げられる。一般に、メモリデータベースシステムは、1つ以上用意されたスレーブサーバのメモリ上に、マスタサーバが持つデータの複製を持つ。マスタサーバは、データ更新に伴い更新ログをスレーブサーバに転送する。ディスクベースのデータベースシステムと比べて、メモリ上に全てのデータを格納するメモリデータベースシステムは、高速にデータアクセスできる。その分、データ更新に伴う更新ログのネットワーク転送にかかる時間が、高速なトランザクションを行う上でネックとなる。このように、メモリデータベースシステムでは、ネットワーク転送時間をより短くするデータ転送方法が求められている。
 また、一般に、信頼性のある通信を実現するために、TCP(Transmission Control Protocol)が用いられる。TCPでは、スロースタートというアルゴリズムを用いた輻輳制御が行われる。なお、スロースタートについては、IETF(Internet Engineering Task Force)によるRFC(Request for Comments)2001(W. Stevens著、“TCP Slow Start,Congestion Avoidance,Fast Retransmit,and Fast Recovery Algorithms”、Jan 1997)に記載されている。また、輻輳制御については、RFC2861(M. Handley、J. Padhye、S. Floyd著、“TCP Congestion Window Validation”、June 2000)に記載されている。スロースタートは、輻輳を防ぐために、少量ずつの通信からスタートして徐々に送信できるデータサイズ(輻輳ウィンドウサイズ)を増やしていくアルゴリズムである。この動作は、輻輳ウィンドウサイズが、受信側からアナウンスされたウィンドウサイズに到達するか、輻輳が発生するまで続く。輻輳が発生すると、再度スロースタートが開始する。
 具体的には、このアルゴリズムは、輻輳ウィンドウサイズを超えるパケットの送信に対して送信先からACKが返却されると、輻輳ウィンドウサイズを拡大していく。そして、再送タイムアウト時間(RTO:Retransmission Time Out、一般的に数百ミリ秒)の間、通信が発生しないと、輻輳ウィンドウサイズが縮小され、スロースタートが開始する。ここで、上述のメモリデータベースシステム等では、マスタサーバは、データ更新に応じて更新ログを転送するため、転送は断続的に行われる。そのため、転送の間隔がRTO時間以上になると、一旦拡大された輻輳ウィンドウサイズが縮小され、スロースタートが開始することになる。
 しかし、上述のメモリデータベースシステム等では、例えば1ミリ秒未満の応答時間が要求される。このような情報処理システムにおいて更新ログの転送時にスロースタートが開始すると、通信に数十~数百倍の時間がかかってしまう。その結果、更新ログの転送(レプリケーション)に要求される応答時間が満たされないという問題が発生する。
 ここで、上述のようなメモリデータベースにおいて、マスタサーバおよびスレーブサーバは、同一構内(同一ラック内)に設置されることも多い。この場合、マスタサーバおよびスレーブサーバ間のレプリケーション通信の高速性を確保するため、レプリケーション専用にネットワークが用意されることも多い。このような場合、レプリケーション専用のネットワークでは、他の通信により輻輳が発生することを考慮する必要がない。そのため、スロースタートが働いてしまうことで、かえって応答速度が遅くなる場合もある。このように、スロースタートを用いた輻輳制御は、信頼性の高い専用ネットワークを用いる場合、不要であることが多い。
 なお、オペレーティングシステム(OS)によっては、スロースタートを無効化する設定、または、RTO時間や遅延ACK間隔を任意の値に変更する設定が可能なものもある。そこで、レプリケーションの応答速度を高めるために、OSで一律にスロースタートを無効にする、あるいは、RTO時間や遅延ACK間隔を変更するなどの設定をすることも考えられる。しかしながら、例えば、データ転送に関わるサーバが、レプリケーション専用のネットワークに加えて、通常のインターネットにも接続される場合がある。このようなサーバにおいて、OSで一律に上述のような設定をすると、インターネット接続側の通信が輻輳により著しく性能劣化する可能性がある。したがって、OSの設定により、特定のネットワーク接続において、断続的な通信によるスロースタートの開始に起因する通信速度の低下問題を解決することは難しい。
 このような問題に対応する技術が、特許文献1に記載されている。この関連技術は、TCPコネクションの最近の使用時刻からの経過時間が、スロースタートモードへ遷移する経過時間となる前に、そのTCPコネクションを通してRTO回避データを送信する。これにより、この関連技術は、断続的なデータ通信におけるスロースタートを回避している。
特開2006-100919号公報
 しかしながら、特許文献1に記載された関連技術は、アプリケーションから送信要求されるデータのサイズが小さい場合、輻輳ウィンドウサイズの縮小を防ぐことができない場合がある。これは、スロースタートモードへ遷移する経過時間となる前にデータが送信されていても、そのデータが輻輳ウィンドウを満たさなかった場合、輻輳ウィンドウサイズが縮小されることがあるためである(前述のRFC2861参照)。また、特許文献1には、RTO回避データのサイズについては記載されていない。したがって、この関連技術は、輻輳ウィンドウサイズが縮小されることを十分に防ぐことができない場合がある。
 本発明は、上述の課題を解決するためになされたもので、断続的な通信において輻輳ウィンドウサイズの縮小をより十分に防ぐ技術を提供することを目的とする。
 上記目的を達成するために、本発明の送信装置は、アプリケーションから送信を要求される対象データ、または、ダミーデータを受信装置に対して送信するデータ送信手段と、所定期間の間に、所定条件を満たすサイズの前記対象データが前記受信装置に対して送信されていない場合に、前記所定条件を満たすサイズの前記ダミーデータを送信するよう前記データ送信手段を制御するダミーデータ送信制御手段と、を備える。
 また、本発明の受信装置は、上述の送信装置から前記対象データを受信すると該対象データに対する所定の処理を行うとともに、前記ダミーデータを受信すると該ダミーデータを破棄するデータ受信手段を備える。
 また、本発明の情報処理システムは、上述の送信装置と、上述の受信装置と、を備える。
 また、本発明のマスタサーバは、上述の送信装置と、マスタデータを記憶するマスタデータ記憶手段と、前記マスタデータを更新するとともに、前記マスタデータの更新前および更新後の差分を表す情報(更新ログ)を生成し、生成した更新ログを前記対象データとして送信するよう前記データ送信手段に要求するアプリケーション手段と、を備える。
 また、本発明のスレーブサーバは、前記マスタデータの複製(複製データ)を記憶する複製データ記憶手段と、上述のマスタサーバから、前記対象データとしての前記更新ログ、または、前記ダミーデータを受信するとともに、受信した更新ログを用いて前記複製データを更新する処理を前記所定の処理として実行する上述の受信装置と、を備える。
 また、本発明のデータベースシステムは、上述のマスタサーバと、上述のスレーブサーバと、を備える。
 また、本発明のデータ転送方法は、アプリケーションから対象データの送信要求があると前記対象データを受信装置に対して送信し、所定期間の間に、所定条件を満たすサイズの前記対象データが前記受信装置に対して送信されていない場合に、前記所定条件を満たすサイズのダミーデータを前記受信装置に対して送信する。
 また、本発明の記憶媒体は、アプリケーションから対象データの送信要求があると前記対象データを受信装置に対して送信する対象データ送信ステップと、所定期間の間に、所定条件を満たすサイズの前記対象データが前記受信装置に対して送信されていない場合に、前記所定条件を満たすサイズのダミーデータを前記受信装置に対して送信するダミーデータ送信ステップと、をコンピュータ装置に実行させるコンピュータ・プログラムを記憶している。
 本発明は、断続的な通信における輻輳ウィンドウサイズの縮小をより十分に防ぐ技術を提供することができる。
本発明の第1の実施の形態としての情報処理システムの構成を示すブロック図である。 本発明の第1の実施の形態としての情報処理システムの機能ブロック図である。 本発明の第1の実施の形態としての情報処理システムのハードウェア構成図である。 本発明の第1の実施の形態におけるデータ送信部の動作を説明するフローチャートである。 本発明の第1の実施の形態におけるダミーデータ送信制御部の動作を説明するフローチャートである。 本発明の第1の実施の形態におけるデータ受信部の動作を説明するフローチャートである。 本発明の第2の実施の形態としてのメモリデータベースシステムの構成を示すブロック図である。 本発明の第2の実施の形態としてのメモリデータベースシステムの機能ブロック図である。 本発明の第2の実施の形態におけるアプリケーション部の動作を説明するフローチャートである。 本発明の第2の実施の形態におけるデータ送信部の動作を説明するフローチャートである。 本発明の第2の実施の形態におけるダミーデータ送信制御部の動作を説明するフローチャートである。 本発明の第2の実施の形態におけるデータ受信部の動作を説明するフローチャートである。 本発明の第3の実施の形態としてのメモリデータベースシステムの構成を示すブロック図である。 本発明の第3の実施の形態としてのメモリデータベースシステムの機能ブロック図である。 本発明の第3の実施の形態におけるデータ送信部の動作を説明するフローチャートである。 本発明の第3の実施の形態における所定期間算出部の動作を説明するフローチャートである。 本発明の第3の実施の形態における開始制御部の動作を説明するフローチャートである。 本発明の第3の実施の形態におけるダミーデータ送信制御部の動作を説明するフローチャートである。 本発明の第3の実施の形態の他の態様におけるメモリデータベースシステムの機能ブロック図である。 本発明の第3の実施の形態の他の態様におけるデータ送信部の動作を説明するフローチャートである。 本発明の第3の実施の形態の他の態様におけるダミーデータ送信制御部の動作を説明するフローチャートである。 本発明の第4の実施の形態としてのメモリデータベースシステムの機能ブロック図である。 本発明の第4の実施の形態におけるデータ送信部の動作を説明するフローチャートである。 本発明の第4の実施の形態におけるデータ受信部の動作を説明するフローチャートである。
 以下、本発明の実施の形態について、図面を参照して詳細に説明する。
 (第1の実施の形態)
 本発明の第1の実施の形態としての情報処理システム1の構成を図1に示す。図1において、情報処理システム1は、送信装置10と、受信装置50とを含む。送信装置10および受信装置50は、ネットワークを介して通信可能に接続されている。
 次に、情報処理システム1を構成する各装置の機能ブロックを図2に示す。図2において、送信装置10は、データ送信部11と、ダミーデータ送信制御部12とを備える。また、受信装置50は、データ受信部51を備える。
 ここで、送信装置10および受信装置50のハードウェア構成の一例を図3に示す。図3において、送信装置10は、CPU(Central Processing Unit)1001と、RAM(Random Access Memory)1002と、ROM(Read Only Memory)1003と、ハードディスク等の記憶装置1004と、ネットワークインタフェース1005とを備えたコンピュータ装置によって構成可能である。また、受信装置50は、CPU5001と、RAM5002と、ROM5003と、ハードディスク等の記憶装置5004と、ネットワークインタフェース5005とを備えたコンピュータ装置によって構成可能である。この場合、データ送信部11は、ネットワークインタフェース1005と、ROM1003および記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行するCPU1001とによって構成される。また、ダミーデータ送信制御部12は、ROM1003および記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行するCPU1001によって構成される。また、データ受信部51は、ネットワークインタフェース5005と、ROM5003および記憶装置5004に記憶されたコンピュータ・プログラムおよび各種データをRAM5002に読み込んで実行するCPU5001とによって構成される。なお、送信装置10および受信装置50、ならびに、各装置の各機能ブロックのハードウェア構成は、上述の構成に限定されない。
 次に、送信装置10の機能ブロックの詳細について説明する。
 データ送信部11は、対象データまたはダミーデータを受信装置50に対して送信する。対象データは、受信装置50に対して送信するよう、外部または自装置上のアプリケーション(図示せず)から要求されたデータである。具体的には、データ送信部11は、送信要求元から対象データを受信すると、受信装置50との間に確立された通信コネクションを通して、その対象データを送信する。
 また、ダミーデータは、受信装置50において破棄されるデータである。このため、ダミーデータは、どのような内容であってもよい。具体的には、データ送信部11は、後述のダミーデータ送信制御部12からの要求に応じて、受信装置50に対して所定条件を満たすサイズのダミーデータを送信する。なお、所定条件とは、その時点での輻輳ウィンドウサイズ以上であることであってもよい。
 ダミーデータ送信制御部12は、所定期間の間に、受信装置50に対して所定条件を満たすサイズの対象データが送信されていない場合に、所定条件を満たすサイズのダミーデータを送信するようデータ送信部11を制御する。詳細には、ダミーデータ送信制御部12は、受信装置50との間に確立された通信コネクションにおいて、所定期間の間に、受信装置50に対して所定条件を満たすサイズの対象データが送信されているか否かを判断する。そして、ダミーデータ送信制御部12は、そのような対象データが所定期間に送信されていなければ、その通信コネクションを通して上述のダミーデータ送信制御を行う。
 なお、所定条件とは、上述と同様に、その時点での輻輳ウィンドウサイズ以上であることであってもよい。つまり、ダミーデータ送信制御部12は、所定期間の間に、その時点での輻輳ウィンドウサイズ以上の対象データが送信されなかった場合に、輻輳ウィンドウサイズ以上のダミーデータを送信するようデータ送信部11に通知してもよい。
 また、所定期間とは、輻輳ウィンドウサイズが縮小されることが規定された経過時間に基づく期間であってもよい。ここで、対象データを送信するための通信コネクションでは、送信装置10から受信装置50に対する最近の通信からの経過時間がこの規定された経過時間の長さに達すると、輻輳ウィンドウサイズが縮小される。したがって、例えば、ダミーデータ送信制御部12は、その規定された経過時間の長さの1/2未満の期間を、所定期間として定めてもよい。そして、ダミーデータ送信制御部12は、所定期間が経過する度に、その時点までの所定期間において所定条件を満たすサイズの対象データが送信されたか否かを判断するようにしてもよい。
 次に、受信装置50の機能ブロックの詳細について説明する。
 データ受信部51は、送信装置10から対象データまたはダミーデータを受信する。そして、データ受信部51は、受信した対象データに対する所定の処理を行う。所定の処理とは、例えば、記憶装置5004へ保存する処理であってもよい。また、データ受信部51は、受信したダミーデータを破棄する。
 以上のように構成された情報処理システム1の動作について説明する。
 まず、送信装置10のデータ送信部11の動作を図4に示す。
 図4では、まず、データ送信部11は、データの送信要求を受信する(ステップS1でYes)。
 ここで、受信した送信要求が、アプリケーションからの対象データの送信要求である場合(ステップS2で「対象データ」)、データ送信部11は、対象データを受信装置50に対して送信する(ステップS3)。
 一方、ステップS1で受信した送信要求が、ダミーデータ送信制御部12からのダミーデータの送信要求である場合(ステップS2で「ダミーデータ」)、データ送信部11は、所定条件を満たすサイズのダミーデータを、受信装置50に対して送信する(ステップS4)。そして、データ送信部11の動作はステップS1に戻る。
 以上で、送信装置10のデータ送信部11の動作の説明を終了する。
 次に、送信装置10のダミーデータ送信制御部12の動作を図5に示す。
 図5では、まず、ダミーデータ送信制御部12は、この時点までの所定期間の間に、所定条件を満たすサイズの対象データがデータ送信部11から送信されたか否かを判断する(ステップS11)。
 ここで、所定条件を満たすサイズの対象データが送信されていたと判断した場合、ダミーデータ送信制御部12の動作はステップS13に進む。
 一方、所定条件を満たすサイズの対象データが送信されていなかったと判断した場合、ダミーデータ送信制御部12は、所定条件を満たすサイズのダミーデータの送信を、データ送信部11に要求する(ステップS12)。
 次に、ダミーデータ送信制御部12は、所定期間として定められた時間だけ待機する(ステップS13)。
 そして、ダミーデータ送信制御部12の動作はステップS11に戻る。
 以上で、送信装置10のダミーデータ送信制御部12の動作の説明を終了する。
 次に、受信装置50の動作を図6に示す。
 図6では、まず、データ受信部51は、送信装置10からデータを受信する(ステップS21でYes)。
 ここで、受信したデータが対象データである場合(ステップS22で「対象データ」)、データ受信部51は、この対象データに対する所定の処理を実行する(ステップS23)。
 一方、受信したデータがダミーデータである場合(ステップS22で「ダミーデータ」)、データ受信部51は、このダミーデータを破棄する(ステップS24)。
 そして、受信装置50の動作はステップS21に戻る。
 以上で、受信装置50の動作の説明を終了する。
 次に、本発明の第1の実施の形態の効果について述べる。
 本発明の第1の実施の形態としての情報処理システムは、断続的な通信における輻輳ウィンドウサイズの縮小をより十分に防ぐことができる。
 その理由は、データ送信部が、アプリケーションから要求された対象データ、または、ダミーデータを受信装置に対して送信するからである。また、ダミーデータ送信制御部が、所定期間の間に、所定条件を満たすサイズの対象データが送信されていない場合に、所定条件を満たすサイズのダミーデータを、データ送信部を通して受信装置に送信するよう制御するからである。また、所定期間としては、対象データを送信するために確立された通信コネクションにおいて、輻輳ウィンドウサイズが縮小されることが規定された最近の通信からの経過時間に基づく期間が用いられるからである。
 これにより、本実施の形態は、送信装置から受信装置への通信が断続的に発生する情報処理システムにおいて、長くても、所定期間の2倍未満の間隔で、所定条件を満たすサイズの対象データまたはダミーデータを送信することになる。したがって、本実施の形態は、輻輳ウィンドウサイズが所定条件を満たさなくなることを回避することができ、一度に送信することが可能なサイズが所定条件を満たすよう保つことができる。したがって、本実施の形態は、断続的な通信が行われる通信コネクションにおいて、輻輳ウィンドウサイズを所定条件を満たさないほど縮小させることがない。また、例えば、所定条件として、その時点での輻輳ウィンドウサイズ以上であることを適用すれば、本実施の形態は、いったん拡大した輻輳ウィンドウサイズをそれ以上縮小させないことになる。
 (第2の実施の形態)
 次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。本実施の形態では、本発明の情報処理システムをメモリデータベースシステムに適用した例について説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
 まず、本発明の第2の実施の形態としてのメモリデータベースシステム2の構成を図7に示す。図7において、メモリデータベースシステム2は、本発明の送信装置を含むマスタサーバ20と、本発明の受信装置を含むスレーブサーバ60とを備える。マスタサーバ20およびスレーブサーバ60は、ネットワークを介して通信可能に接続されている。
 次に、メモリデータベースシステム2を構成する各装置の機能ブロックを図8に示す。図8において、マスタサーバ20は、データ送信部21と、ダミーデータ送信制御部22と、マスタデータ記憶部23と、アプリケーション部24とを備える。ここで、マスタサーバ20は、図3を参照して説明した本発明の第1の実施の形態としての送信装置と同一のハードウェア要素を含むコンピュータ装置によって構成可能である。この場合、マスタデータ記憶部23は、RAM1002によって構成される。また、アプリケーション部24は、ROM1003および記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行するCPU1001によって構成される。
 スレーブサーバ60は、データ受信部61と、複製データ記憶部62とを備える。ここで、スレーブサーバ60は、図3を参照して説明した本発明の第1の実施の形態としての受信装置と同一のハードウェア要素を含むコンピュータ装置によって構成可能である。この場合、複製データ記憶部62は、RAM5002によって構成される。
 次に、マスタサーバ20の各機能ブロックの詳細について説明する。
 マスタデータ記憶部23は、マスタデータを記憶する。
 アプリケーション部24は、マスタデータを更新する。マスタデータの更新は、例えば、外部からの要求や、自装置における他の機能ブロック(図示せず)からの要求に応じて行われる。そして、アプリケーション部24は、マスタデータの更新に応じて、その更新前および更新後の差分を表す情報(更新ログ)を生成する。また、アプリケーション部24は、生成した更新ログを、スレーブサーバ60に対して送信するよう、データ送信部21に要求する。例えば、アプリケーション部24は、コミット要求を発行後、更新ログを生成してその送信を要求するようにしてもよい。
 データ送信部21は、本発明の第1の実施の形態におけるデータ送信部11と略同様に動作するよう構成される。ただし、本実施の形態では、対象データに、アプリケーション部24から要求される更新ログを適用する。また、本実施の形態では、更新ログまたはダミーデータの送信先は、スレーブサーバ60となる。
 また、データ送信部21は、ダミーデータ送信制御部22による判断処理のために、送信済フラグを保持するようにしてもよい。この場合、データ送信部21は、アプリケーション部24から要求されて送信した更新ログが所定条件を満たす場合、送信済フラグをオンに設定して保持する。なお、本実施の形態では、所定条件として、サイズがs(sは正の数)以上であるという条件を適用するものとする。
 ダミーデータ送信制御部22は、所定期間の間に、サイズがs以上の更新ログが送信されたか否かに応じた処理を行う。ここで、所定期間とは、本発明の第1の実施の形態において説明した所定期間と同様の期間を適用するものとする。例えば、データ送信部21によって送信済フラグが保持されている場合、ダミーデータ送信制御部22は、次のように動作するよう構成される。
 具体的には、ダミーデータ送信制御部22は、所定期間が経過する毎に送信済フラグをチェックする。そして、ダミーデータ送信制御部22は、送信済フラグがオフである場合に、サイズs以上のダミーデータを送信するようデータ送信部21を制御する。また、ダミーデータ送信制御部22は、送信済フラグがオンである場合に、送信済みフラグをオフに設定する。
 次に、スレーブサーバ60の各機能ブロックの詳細について説明する。
 複製データ記憶部62は、複製データを記憶する。複製データは、マスタサーバ20に記憶されるマスタデータの複製である。
 データ受信部61は、本発明の第1の実施の形態におけるデータ受信部51と略同様に動作するよう構成される。詳細には、データ受信部61は、マスタサーバ20から、対象データとしての更新ログ、または、ダミーデータを受信する。また、データ受信部61は、更新ログを用いて、複製データ記憶部62の複製データを更新する。また、データ受信部61は、ダミーデータを破棄する。
 以上のように構成されたメモリデータベースシステム2の動作について、図面を参照して説明する。
 まず、マスタサーバ20におけるアプリケーション部24の動作を図9に示す。
 図9では、まず、アプリケーション部24は、マスタデータ記憶部23のマスタデータを更新する(ステップS31)。
 次に、アプリケーション部24は、更新前後のマスタデータの差分情報を更新ログとして生成する(ステップS32)。
 次に、アプリケーション部24は、ステップS32で生成した更新ログの送信を、データ送信部21に対して要求する(ステップS33)。
 以上で、アプリケーション部24の動作の説明を終了する。
 次に、マスタサーバ20におけるデータ送信部21の動作を図10に示す。なお、動作の開始時点では、送信済フラグはオフに設定されているものとする。
 図10では、まず、データ送信部21は、ステップS1~S3まで、本発明の第1の実施の形態におけるデータ送信部11と略同様に動作する。ただし、本実施の形態では、対象データとして、アプリケーション部24から送信要求された更新ログが適用される。
 また、データ送信部21は、ステップS3で更新ログをスレーブサーバ60に対して送信後、送信した更新ログのサイズが、s以上であるか否かを判断する(ステップS131)。
 ここで、サイズがs以上であった場合、データ送信部21は、送信済フラグをオンに設定して保持する(ステップS132)。そして、データ送信部21の動作はステップS1に戻る。
 一方、サイズがs未満であった場合、データ送信部21の動作はステップS1に戻る。
 また、ステップS1で受信した送信要求が、ダミーデータの送信要求であれば(ステップS2で「ダミーデータ」)、データ送信部21は、サイズがs以上のダミーデータを、スレーブサーバ60に対して送信する(ステップS133)。そして、データ送信部21の動作はステップS1に戻る。
 以上で、マスタサーバ20のデータ送信部21の動作の説明を終了する。
 次に、マスタサーバ20におけるダミーデータ送信制御部22の動作を図11に示す。
 図11では、まず、ダミーデータ送信制御部22は、送信済フラグの内容をチェックし、オンであるか否かを判断する(ステップS141)。
 ここで、送信済フラグがオンである場合、ダミーデータ送信制御部22は、送信済フラグをオフに設定(リセット)する(ステップS142)。
 一方、送信済フラグがオフである場合、ダミーデータ送信制御部22は、本発明の第1の実施の形態と同様にステップS12を実行し、ダミーデータの送信を、データ送信部21に要求する(ステップS12)。ただし、本実施の形態では、ダミーデータ送信制御部22は、サイズがs以上のダミーデータの送信を要求する。
 次に、ダミーデータ送信制御部22は、所定期間だけ待機する(ステップS13)。
 そして、ダミーデータ送信制御部22の動作はステップS141に戻る。
 以上で、マスタサーバ20のダミーデータ送信制御部22の動作の説明を終了する。
 次に、スレーブサーバ60の動作を図12に示す。
 図12では、まず、データ受信部61は、マスタサーバ20からデータを受信する(ステップS41でYes)。
 ここで、受信したデータが更新ログである場合(ステップS42で「更新ログ」)、データ受信部61は、その更新ログを用いて、複製データ記憶部62の複製データを更新する(ステップS43)。
 一方、受信したデータがダミーデータである場合(ステップS42で「ダミーデータ」)、データ受信部61は、このダミーデータを破棄する(ステップS44)。
 そして、データ受信部61の動作はステップS41に戻る。
 以上で、データ受信部61の動作の説明を終了する。
 次に、本発明の第2の実施の形態の効果について述べる。
 本発明の第2の実施の形態としてのメモリデータベースシステムは、マスタサーバからスレーブサーバに対して断続的に更新ログの転送が行われる場合であっても、輻輳ウィンドウサイズが所定サイズ以下になることを十分に防ぐことができる。
 その理由は、データ送信部が、所定のサイズs以上の更新ログをスレーブサーバに送信したときに送信済フラグをオンに設定し、ダミーデータ送信制御部が、所定期間が経過する度に送信済フラグをチェックするからである。そして、ダミーデータ送信制御部が、送信済フラグがオンであればオフにリセットし、送信済フラグがオフであれば、サイズがs以上のダミーデータを、データ送信部を通してスレーブサーバに送信するよう制御するからである。また、所定期間として、更新ログを送信する通信コネクションにおいてマスタサーバからスレーブサーバへの最近の通信からの経過時間について、輻輳ウィンドウサイズを縮小するよう定められた長さに基づく期間が用いられるからである。
 これにより、本実施の形態は、マスタサーバおよびスレーブサーバ間で更新ログ転送による通信が発生していない間も、長くても、所定期間として定められた時間の2倍未満の間隔で、サイズs以上のダミーデータを送信することになる。したがって、本実施の形態は、輻輳ウィンドウサイズがs以下になる状態を回避することができる。したがって、本実施の形態は、ある期間マスタサーバからの更新ログの転送がなかった後にスレーブサーバに更新ログを転送する場合であっても、通信速度を極端に低下させない。その結果、本実施の形態は、高可用性および高速なレスポンスが同時に求められるようなオンライントランザクションシステムを構成するメモリデータベースシステムにおいて、常に高速なレプリケーション処理を行うことができる。
 (第3の実施の形態)
 次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。本実施の形態では、本発明の第2の実施の形態と同様に、本発明の情報処理システムをメモリデータベースシステムに適用した例について説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1および第2の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
 まず、本発明の第3の実施の形態としてのメモリデータベースシステム3の構成を図13に示す。図13において、メモリデータベースシステム3は、マスタサーバ30と、n(nは1以上の整数)個のスレーブサーバ60(60_1~60_n)とを備える。マスタサーバ30および各スレーブサーバ60は、それぞれネットワークを介して通信可能に接続されている。
 次に、メモリデータベースシステム3を構成する各装置の機能ブロックを図14に示す。図14において、マスタサーバ30は、本発明の第2の実施の形態としてのマスタサーバ20に対して、データ送信部21に替えてn個のデータ送信部31(31_1~31_n)と、ダミーデータ送信制御部22に替えてn個のダミーデータ送信制御部32(32_1~32_n)と、所定期間算出部35と、開始制御部36とを備える点が異なる。なお、所定期間算出部35および開始制御部36は、本発明のダミーデータ送信制御部の一部分の一実施形態を構成する。ここで、マスタサーバ30は、図3を参照して説明した本発明の第1の実施の形態としての送信装置と同一のハードウェア要素を含むコンピュータ装置によって構成可能である。この場合、所定期間算出部35および開始制御部36は、ROM1003および記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行するCPU1001によって構成される。
 n個のスレーブサーバ60のそれぞれは、本発明の第2の実施の形態におけるスレーブサーバ60と同様に構成される。
 次に、マスタサーバ30の各機能ブロックの詳細について説明する。
 データ送信部31_i(i=1~n)は、スレーブサーバ60_iに対応付けられる。また、データ送信部31_iは、対応するスレーブサーバ60_iに対して、更新ログまたはダミーデータを送信する。具体的には、データ送信部31_iは、対応するスレーブサーバ60_iとの間でTCPコネクションを保持して通信を行う。また、データ送信部31_iは、対応するスレーブサーバ60_iに関する送信済フラグを保持する。つまり、マスタサーバ30において、n個の送信済フラグがスレーブサーバ60_i毎に保持されることになる。
 詳細には、データ送信部31_iは、更新ログの送信要求をアプリケーション部24から受信すると、対応するスレーブサーバ60_iに対して更新ログを、TCPコネクションを通して送信する。このとき、データ送信部31_iは、送信した更新ログのサイズがs以上であれば、対応するスレーブサーバ60_iに関する送信済フラグをオンに設定して保持する。
 ここで、サイズsは、次式(1)で算出される値であってもよい。
 s = 2 × MSS・・・(1)
 なお、MSS(Maximum Segment Size)は、TCPにおいて1セグメントで転送可能なデータの最大サイズを表し、次式(2)で算出される。
 MSS = MTU - 40・・・(2)
 ここで、MTU(Maximum Transmission Unit)とは、1回の転送で送信できるデータの最大サイズを示す。MSSは、MTUから、IP(Internet Protocol)ヘッダ20バイトおよびTCPヘッダ20バイトを除いた値として計算される。そこで、データ送信部31_iは、サイズsを、システムから取得可能なMTUの値を基に式(1)にしたがって算出すればよい。また、データ送信部31_iは、上述の式(1)を用いてサイズsの値を算出する代わりに、ユーザによって設定されたsの値を取得するようにしてもよい。この場合、sの値は、式(1)を満たすように設定されることが望ましい。
 また、データ送信部31_iは、後述のダミーデータ送信制御部32_iからの要求に応じて、スレーブサーバ60_iに対してサイズs以上のダミーデータを送信する。
 所定期間算出部35は、所定期間tを、次式(3)を用いて決定し、ダミーデータ送信制御部32_1~32_nにそれぞれ通知する。通知される所定期間tは、各ダミーデータ送信制御部32_iによって、送信済フラグをチェックする間隔として用いられる。
 t = RTO × α    (0<α<0.5)・・・(3)
 ここで、RTOは、TCP通信における再送タイムアウト時間を表す。TCPでは、RTO時間以上の間通信が発生していないと、次の通信ではスロースタートが開始する。そこで、所定期間算出部35は、所定期間tを、OS(Operating System)から取得可能なRTO時間の値を基に式(3)にしたがって算出すればよい。なお、OSによっては、RTO時間の値がネットワークの負荷状況に応じて変化するものがある。このような場合、所定期間算出部35は、任意のタイミング毎にRTO時間の値を再取得し、所定期間tを再度算出してもよい。また、所定期間算出部35は、上述の式(3)を用いて所定期間tの値を算出する代わりに、ユーザにより設定されたtの値を取得してもよい。この場合、tの値は、式(3)を満たすように設定されることが望ましい。
 開始制御部36は、ダミーデータ送信制御部32_1~32_nを、それぞれ異なるタイミングで起動する。具体的には、例えば、開始制御部36は、次式(4)に基づき算出した起動間隔T毎に、ダミーデータ送信制御部32_1~32_nを順次起動してもよい。
 T = t ÷ n・・・(4)
 これにより、n個のダミーデータ送信制御部32_iは、開始制御部36によって順次起動され、互いに異なるタイミングで所定期間t毎に送信済フラグの内容に応じた処理を実行する。具体的には、ダミーデータ送信制御部32_iは、起動された後、所定期間t毎に、対応するスレーブサーバ60_iに関する送信済フラグをチェックする。そして、ダミーデータ送信制御部32_iは、該当する送信済フラグがオフである場合に、サイズs以上のダミーデータをスレーブサーバ60_iに対して送信するよう、データ送信部31_iを制御する。また、ダミーデータ送信制御部32_iは、該当する送信済フラグがオンである場合に、その送信済フラグをオフに設定する。
 以上のように構成されたメモリデータベースシステム3の動作について、図面を参照して説明する。
 まず、マスタサーバ30におけるアプリケーション部24の動作について説明する。アプリケーション部24の動作は、図9を参照して説明した本発明の第2の実施の形態におけるアプリケーション部24の動作と略同様である。ただし、本実施の形態では、ステップS33において、アプリケーション部24は、データ送信部31_1~31_nに対して、それぞれ更新ログの送信を要求する。
 次に、マスタサーバ30におけるデータ送信部31_iの動作を図15に示す。なお、動作の開始時点では、それぞれのスレーブサーバ60_iに関する送信済フラグはオフに設定されているものとする。また、データ送信部31_iは、上述の式(1)に基づき所定のサイズsの値を算出済みであるものとする。
 図15では、まず、データ送信部31_iは、データの送信要求を受信する(ステップS51でYes)。
 次に、データ送信部31_iは、受信した送信要求が、アプリケーション部24からの更新ログの送信要求であれば(ステップS52で「更新ログ」)、更新ログを、スレーブサーバ60_iに対して送信する(ステップS53)。
 次に、データ送信部31_iは、ステップS53で送信した更新ログのサイズが、s以上であるか否かを判断する(ステップS54)。
 ここで、サイズがs以上であった場合、データ送信部31_iは、スレーブサーバ60_iに関する送信済フラグをオンに設定して保持する(ステップS55)。そして、データ送信部31_iの動作はステップS51に戻る。
 一方、サイズがs未満であった場合、データ送信部31_iの動作はステップS51に戻る。
 また、ステップS51で受信した送信要求が、ダミーデータの送信要求であれば(ステップS52で「ダミーデータ」)、データ送信部31_iは、サイズがs以上のダミーデータを、対応するスレーブサーバ60_iに対して送信する(ステップS56)。そして、データ送信部31_iの動作はステップS51に戻る。
 以上で、データ送信部31_iの動作の説明を終了する。
 次に、マスタサーバ30における所定期間算出部35の動作を図16に示す。例えば、所定期間算出部35は、この動作を、システム起動時等に行ってもよい。また、前述のように、RTO時間がネットワークの負荷状況に応じて変化するシステムの場合、所定期間算出部35は、この動作を、任意のタイミング毎に繰り返し実行してもよい。
 図16では、所定期間算出部35は、OSからRTO時間を取得する(ステップS61)。
 次に、所定期間算出部35は、式(3)を用いて所定期間tを算出する(ステップS62)。
 次に、所定期間算出部35は、ステップS62で算出したtの値を、n個のダミーデータ送信制御部32_iにそれぞれ通知する(ステップS63)。
 以上で、所定期間算出部35の動作の説明を終了する。
 次に、マスタサーバ30における開始制御部36の動作を図17に示す。なお、開始制御部36は、上述の式(4)を用いて、既に起動間隔Tを算出済みであるものとする。
 図17では、まず、開始制御部36は、スレーブサーバ番号iを1に初期化する(ステップS71)。
 次に、開始制御部36は、起動間隔Tだけ待機する(ステップS72)。
 次に、開始制御部36は、i番目のダミーデータ送信制御部32_iを起動する(ステップS73)。
 次に、開始制御部36は、iがスレーブサーバ60の個数nより小さければ(ステップS74でYes)、iに1を加算し(ステップS75)、ステップS72からの動作を繰り返す。
 一方、iがn以上になった場合(ステップS74でNo)、開始制御部36は、動作を終了する。
 以上で、開始制御部36の動作の説明を終了する。
 次に、マスタサーバ30におけるダミーデータ送信制御部32_iの動作を図18に示す。なお、ダミーデータ送信制御部32_iは、所定期間算出部35から、所定期間tを既に通知されているものとする。また、ダミーデータ送信制御部32_iは、開始制御部36によって起動されると、以下の動作を開始するものとする。
 図18では、まず、ダミーデータ送信制御部32_iは、対応するスレーブサーバ60_iに関する送信済フラグの内容をチェックする(ステップS81)。
 ここで、送信済フラグがオンである場合、ダミーデータ送信制御部32_iは、送信済フラグをオフに設定(リセット)する(ステップS82)。
 一方、送信済フラグがオフである場合、ダミーデータ送信制御部32_iは、サイズがs以上のダミーデータをスレーブサーバ60_iに送信するよう、データ送信部31_iに要求する(ステップS83)。
 次に、ダミーデータ送信制御部32_iは、所定期間tだけ待機する(ステップS84)。
 そして、ダミーデータ送信制御部32_iの動作はステップS81に戻る。
 以上で、ダミーデータ送信制御部32_iの動作の説明を終了する。
 なお、n個のスレーブサーバ60_1~60_nのそれぞれの動作については、図12を参照して説明した本発明の第2の実施の形態におけるスレーブサーバ60の動作と同様であるため、本実施の形態における説明を省略する。
 次に、本発明の第3の実施の形態の効果について述べる。
 本発明の第3の実施の形態としてのメモリデータベースシステムは、マスタサーバからスレーブサーバに対して断続的に更新ログの転送が行われる場合であっても、輻輳ウィンドウサイズが所定サイズ以下になることをさらに十分に防ぐことができる。
 その理由は、データ送信部が、所定のサイズs以上の更新ログをスレーブサーバに送信したときに送信済フラグをオンに設定するからである。また、ダミーデータ送信制御部が、RTO時間にα(0<α<0.5)を乗じて求められる所定期間t毎に送信済フラグをチェックするからである。そして、ダミーデータ送信制御部が、送信済フラグがオンであればオフにリセットし、送信済フラグがオフであれば、サイズがs以上のダミーデータを、データ送信部を通してスレーブサーバに送信するよう制御するからである。
 これにより、本実施の形態は、更新ログ転送による通信が発生していない間も、サイズs以上のダミーデータを、長くてもRTO時間以内に送信することができる。したがって、本実施の形態は、スロースタートを開始させてしまうことなく、輻輳ウィンドウサイズをs以上に保つ。このように、本実施の形態は、一旦拡大した輻輳ウィンドウサイズが所定のサイズs以下に縮小することを防ぐことにより、スロースタートを回避することができる。したがって、本実施の形態は、ある期間更新ログの転送がなかった後にスレーブサーバに更新ログを転送する場合であっても、通信遅延を解消することが可能である。このように、本実施の形態は、高可用性および高速なレスポンスが同時に求められるようなオンライントランザクションシステムを構成するメモリデータベースシステムにおいて、常に高速なレプリケーション処理を行うことができる。
 さらに、本発明の第3の実施の形態としてのメモリデータベースシステムは、マスタサーバからスレーブサーバに対する更新ログの転送において、遅延ACKを発生させることがなく、より高速なデータ転送を可能とする。
 その理由は、データ送信部が、ダミーデータのサイズをs以上とし、sの値に、TCPにおいて1セグメントで転送可能なデータの最大サイズ(MSS)の2倍を適用するからである。ここで、TCPでは、受信側は、サイズがMSSのセグメントを2つ受信すると即座にACKを返す。したがって、本実施の形態は、輻輳ウィンドウサイズをMSSの2倍以上に保つことにより、遅延ACKにより発生する通信遅延を抑えることができる。
 また、本発明の第3の実施の形態としてのメモリデータベースシステムは、レプリケーション実行中におけるダミーデータの無用な転送による帯域の圧迫を避けることができる。
 その理由は、データ転送部が、サイズs以上の更新ログを送信した場合には送信済フラグをオンにし、ダミーデータ転送制御部が、送信済フラグがオンであればオフにリセットしてダミーデータの送信を行わないからである。
 これにより、本実施の形態は、前回の通信からRTO時間内に既にサイズs以上の更新ログの転送が行われていればダミーデータの送信を省略することができる。したがって、本実施の形態は、レプリケーション実行中に無用なダミーデータを転送することがない。
 また、本発明の第3の実施の形態としてのメモリデータベースシステムは、複数のスレーブサーバに対するダミーデータの転送によりCPUの負荷およびネットワーク負荷を一時的に高騰させることがない。
 その理由は、データ送信部が、複数のスレーブサーバに対してそれぞれ異なるコネクションを介して更新ログまたはダミーデータを送信し、送信済みフラグをスレーブサーバ毎に保持するからである。また、ダミーデータ送信制御部が、各スレーブサーバに関して送信済フラグの値に応じた処理を、スレーブサーバ毎に異なるタイミングで所定期間t毎に実行するからである。例えば、起動制御部が、所定期間tをスレーブサーバ数nで除した起動間隔T毎に、n個のダミーデータ送信制御部を順次起動していくからである。
 これにより、本実施の形態は、複数のスレーブサーバに対するダミーデータの送信タイミングを分散させることができ、CPUの負荷およびネットワークの負荷を平準化する。その結果、本実施の形態は、ダミーデータの送信によるアプリケーション部またはその他重要プロセスの動作への影響を抑えることができる。
 (第3の実施の形態の他の態様)
 次に、本発明の第3の実施の形態の他の態様について説明する。
 メモリデータベースシステム3は、図19に示すように、マスタサーバ30において、n個のデータ送信部31_iの代わりに1つのデータ送信部31を有し、開始制御部36を省略するように構成することも可能である。
 この場合、データ送信部31は、図15に示した動作の代わりに、図20に示すよう動作する。
 図20では、まず、データ送信部31は、データの送信要求を受信する(ステップS51でYes)。
 次に、データ送信部31は、受信した送信要求が、アプリケーション部24からの更新ログの送信要求であれば(ステップS52で「更新ログ」)、更新ログを、スレーブサーバ60_1~60_nに対してそれぞれ送信する(ステップS93)。
 次に、データ送信部31は、ステップS93で送信した更新ログのサイズが、s以上であった場合(ステップS54でYes)、スレーブサーバ60_1~60_nに関するn個の送信済フラグをそれぞれオンに設定して保持する(ステップS95)。そして、データ送信部31の動作はステップS51に戻る。
 一方、サイズがs未満であった場合、データ送信部31の動作はステップS51に戻る。
 また、ステップS51で受信した送信要求が、いずれかのスレーブサーバ60に対するダミーデータの送信要求であれば(ステップS52で「ダミーデータ」)、データ送信部31は、サイズがs以上のダミーデータを、対象のスレーブサーバ60に対して送信する(ステップS96)。そして、データ送信部31の動作はステップS51に戻る。
 また、この場合、ダミーデータ送信制御部32_iは、図18に示した動作の代わりに、図21に示すように動作する。
 図21では、まず、ダミーデータ送信制御部32_iは、所定期間算出部35から所定期間tを通知されると、次式(5)で算出される起動待機時間T1だけ動作開始を待つ(ステップS101)。
 T1 = {(i - 1) ÷ n } × t・・・(5)
 ここで、iは、何番目のダミーデータ送信制御部32であるかを表す番号である。また、nは、スレーブサーバ60の個数である。また、tは、所定期間算出部35から通知された所定期間である。
 以降、ダミーデータ送信制御部32_iは、ステップS81~ステップS84まで図18を用いて説明したように動作し、ステップS81の動作から繰り返す。
 これにより、マスタサーバ30は、開始制御部36を省略した構成でも、各ダミーデータ送信制御部32_iによるダミーデータの送信タイミングを分散させることができる。
 このように構成することにより、本発明の第3の実施の形態の他の態様は、データ送信部、ダミーデータ送信制御部、開始制御部を各々スレッドで構成することを想定した場合に、スレッドの種類および数を削減でき、CPU負荷をより小さくすることができる。
 (第4の実施の形態)
 次に、本発明の第4の実施の形態について図面を参照して詳細に説明する。本実施の形態では、本発明の第2および第3の実施の形態と同様に、本発明の情報処理システムをメモリデータベースシステムに適用した例について説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1~第3の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
 まず、本発明の第4の実施の形態としてのメモリデータベースシステム4の構成を図22に示す。図22において、メモリデータベースシステム4は、本発明の第3の実施の形態としてのメモリデータベースシステム3に対して、マスタサーバ30に替えてマスタサーバ40と、n個のスレーブサーバ60に替えてn個のスレーブサーバ70(70_1~70_n)とを備える点が異なる。また、マスタサーバ40は、本発明の第3の実施の形態におけるマスタサーバ30に対して、n個のデータ送信部31_iに替えてn個のデータ送信部41_iを備える点が異なる。また、スレーブサーバ70のそれぞれは、本発明の第2および第3の実施の形態におけるスレーブサーバ60に対して、データ受信部61に替えてデータ受信部71を備える点が異なる。
 マスタサーバ40のデータ送信部41_iは、本発明の第3の実施の形態におけるデータ送信部31_iに対して、更新ログの送信要求およびダミーデータの送信要求を略同時に受けた場合の処理が異なる。具体的には、これらの送信要求を略同時に受けた場合、データ送信部41_iは、更新ログのサイズがs以上であれば、この更新ログをスレーブサーバ70_iに送信し、ダミーデータの送信を省略する。また、これらの送信要求を略同時に受けた場合、データ送信部41_iは、更新ログのサイズがs未満であれば、この更新ログにダミーデータを付加してサイズs以上にしてから、スレーブサーバ70_iに対して送信する。
 なお、更新ログの送信要求およびダミーデータの送信要求を略同時に受けるとは、例えば、データ送信部41_iが、更新ログの送信要求を受けた後、更新ログの送信処理を開始する前に、ダミーデータの送信要求を受けた場合であってもよい。また、更新ログの送信要求およびダミーデータの送信要求を略同時に受けるとは、例えば、データ送信部41_iが、ダミーデータの送信要求を受けた後、ダミーデータの送信処理を開始する前に、更新ログの送信要求を受けた場合であってもよい。
 なお、更新ログの送信要求およびダミーデータの送信要求を異なるタイミングで受けた場合には、データ送信部41_iは、本発明の第3の実施の形態におけるデータ送信部31_iと同様に動作するよう構成される。
 スレーブサーバ70のデータ受信部71は、マスタサーバ40から、ダミーデータが付加された更新ログを受信すると、ダミーデータの部分を破棄して残りの更新ログを得る。そして、データ受信部71は、得られた更新ログを用いて、複製データ記憶部62に記憶された複製データの更新を行う。
 なお、ダミーデータが付加されていない更新ログを受信した場合、および、ダミーデータのみを受信した場合には、データ受信部71は、本発明の第2および第3の実施の形態におけるデータ受信部61と同様に動作するよう構成される。
 以上のように構成されたメモリデータベースシステム4の動作について説明する。メモリデータベースシステム4の動作は、本発明の第3の実施の形態としてのメモリデータベースシステム3の動作と略同様である。ただし、マスタサーバ40におけるデータ送信部41_iの動作およびスレーブサーバ70におけるデータ受信部71の動作の詳細が異なる。
 まず、データ送信部41_iの動作を図23に示す。
 図23において、まず、データ送信部41_iは、データの送信要求を受信する(ステップS111でYes)。
 次に、データ送信部41_iは、ステップS111で受信した送信要求が、アプリケーション部24からの更新ログの送信要求であるか、ダミーデータの送信要求であるかを判断する(ステップS112)。
 ここで、更新ログの送信要求であれば(ステップS112で「更新ログ」)、データ送信部41_iは、略同時にダミーデータの送信要求を受信しているか否かを判断する(ステップS113)。例えば、前述のように、データ送信部41_iは、この時点で、まだ処理を開始していないダミーデータの送信要求を既に受信していれば、略同時にダミーデータの送信要求を受信していると判断してもよい。
 一方、ダミーデータの送信要求であれば(ステップS112で「ダミーデータ」)、データ送信部41_iは、略同時に更新ログの送信要求を受信しているか否かを判断する(ステップS114)。例えば、前述のように、データ送信部41_iは、この時点で、まだ処理を開始していない更新ログの送信要求を既に受信していれば、略同時に更新ログの送信要求を受信していると判断してもよい。
 ステップS113またはステップS114において、更新ログの送信要求およびダミーデータの送信要求を略同時に受信していると判断した場合、データ送信部41_iは、更新ログのサイズがs以上であるか否かを判断する(ステップS115)。
 ここで、更新ログのサイズがs未満である場合(ステップS115でNo)、データ送信部41_iは、全体のサイズがs以上になるよう更新ログにダミーデータを付加する(ステップS116)。
 一方、更新ログのサイズがs以上であれば(ステップS115でYes)、データ送信部41_iの動作は、ステップS117に進む。
 次に、データ送信部41_iは、更新ログをスレーブサーバ70_iに対して送信する(ステップS117)。ここで送信される更新ログは、ステップS116でダミーデータが付加された更新ログ、または、ステップS115でサイズがs以上あると判断された更新ログである。これにより、更新ログの送信要求およびダミーデータの送信要求を略同時に受信した場合に更新ログのサイズがs以上であれば、データ送信部41_iは、ダミーデータの送信を省略することになる。
 次に、データ送信部41_iは、このスレーブサーバ70_iに関する送信済フラグをオンに設定して保持する(ステップS118)。
 一方、ステップS112で更新ログの送信要求を受信したと判断され、ステップS113で略同時にダミーデータの送信要求を受信していないと判断された場合について説明する。この場合、データ送信部41_iは、ステップS53~S55まで、本発明の第3の実施の形態におけるデータ送信部31_iと同様に動作する。
 また、ステップS112でダミーデータの送信要求を受信したと判断され、ステップS114で略同時に更新ログの送信要求を受信していないと判断された場合について説明する。この場合、データ送信部41_iは、ステップS56を、本発明の第3の実施の形態におけるデータ送信部31_iと同様に実行する。
 そして、データ送信部41_iの動作はステップS111に戻る。
 以上で、データ送信部41_iの動作の説明を終了する。
 次に、n個のスレーブサーバ70のそれぞれにおけるデータ受信部71の動作を図24に示す。
 図24では、まず、データ受信部71は、マスタサーバ40からデータを受信する(ステップS41でYes)。
 次に、データ受信部71は、受信したデータが更新ログである場合(ステップS42で「更新ログ」)、その更新ログに、ダミーデータが付加されているか否かを判断する(ステップS123)。
 ここで、ダミーデータが付加されている場合、データ受信部71は、ダミーデータの部分を分離して破棄する(ステップS124)。
 そして、データ受信部71は、更新ログを用いて、複製データ記憶部62の複製データを更新する(ステップS43)。
 一方、ステップS123において、ダミーデータが付加されていないと判断した場合、データ受信部71は、ステップS41で受信した更新ログを用いて、ステップS43を実行する。
 また、受信したデータがダミーデータである場合(ステップS42で「ダミーデータ」)、データ受信部71は、このダミーデータを破棄する(ステップS44)。
 そして、データ受信部71の動作はステップS41に戻る。
 以上で、データ受信部71の動作の説明を終了する。
 次に、本発明の第4の実施の形態の効果について述べる。
 本発明の第4の実施の形態としてのメモリデータベースシステムは、マスタサーバからスレーブサーバに対して断続的に更新ログの転送が行われる際に、より効率よく輻輳ウィンドウサイズの縮小を防ぐことができる。
 その理由は、マスタサーバのデータ送信部が、更新ログの送信要求およびダミーデータの送信要求を略同時に受けた場合に、次のように動作するからである。すなわち、この場合、データ送信部は、更新ログのサイズがs以上であれば、スレーブサーバに対してダミーデータの送信を省略して更新ログを送信する。また、データ送信部は、更新ログのサイズがs未満であれば、サイズがs以上になるよう更新ログにダミーデータを付加してスレーブサーバに対して送信するからである。これにより、本実施の形態は、本発明の第2または第3の実施の形態に対して、送信するダミーデータの量を減らしながら同様の効果を奏することができる。したがって、本実施の形態は、CPU負荷およびネットワーク負荷をより小さくすることができ、より効率的に通信速度の低下を防止する。
 なお、上述した本発明の第2から第4の実施の形態において、本発明の情報処理しシステムをメモリデータベースシステムに適用した例を中心に説明した。この他、各実施の形態は、マスタサーバおよびスレーブサーバ間でレプリケーションを行うその他のデータベースシステムにも適用可能である。
 また、上述した本発明の第2から第4の実施の形態において、ダミーデータのサイズまたはダミーデータが付加された更新ログのサイズをs(MSSの2倍)以上とする例を中心に記載した。ただし、各実施の形態において、これらのサイズはsにより近い値(さらには、sに等しい値)であることが望ましい。これにより、各実施の形態は、不必要に大きなサイズのダミーデータを送信することによるCPUの負荷およびネットワークの負荷を高くすることがない。
 また、上述した本発明の第2から第4の実施の形態において、所定条件として、s(MSSの2倍)以上であるという条件を適用する例を中心に説明した。なお、ここでいう所定条件は、送信済フラグをオンにするためにチェックする更新ログのサイズに関する所定条件、および、ダミーデータまたはダミーデータが付加された更新ログのサイズが満たすべき所定条件である。この他、各実施の形態において、所定条件は、その時点での輻輳ウィンドウサイズ以上であることであってもよい。その他、各実施の形態において、所定条件は、輻輳ウィンドウサイズの縮小をより十分に防止するためのデータサイズとして算出されるその他の値に基づく条件であってもよい。
 また、上述した本発明の各実施の形態において、送信装置、受信装置、マスタサーバおよびスレーブサーバの各機能ブロックが、記憶装置またはROMに記憶されたコンピュータ・プログラムを実行するCPUによって実現される例を中心に説明した。この他、各装置の各機能ブロックの一部、全部、または、それらの組み合わせは、専用のハードウェアにより実現されていてもよい。
 また、上述した本発明の各実施の形態において、送信装置、受信装置、マスタサーバおよびスレーブサーバの各機能ブロックは、複数の装置に分散されて実現されてもよい。
 また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した送信装置、受信装置、マスタサーバおよびスレーブサーバの各動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置(記憶媒体)に格納しておいてもよい。そして、係るコンピュータ・プログラムを当該CPUが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。
 また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
 また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
 以上、上述した各実施の形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した各実施の形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
 この出願は、2013年11月5日に出願された日本出願特願2013-229313を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 1  情報処理システム
 10  送信装置
 50  受信装置
 2、3、4  メモリデータベースシステム
 20、30、40  マスタサーバ
 60、70  スレーブサーバ
 11、21、31、41  データ送信部
 12、22、32  ダミーデータ送信制御部
 23  マスタデータ記憶部
 24  アプリケーション部
 35  所定期間算出部
 36  開始制御部
 51、61、71  データ受信部
 62  複製データ記憶部
 1001、5001  CPU
 1002、5002  RAM
 1003、5003  ROM
 1004、5004  記憶装置
 1005、5005  ネットワークインタフェース

Claims (18)

  1.  アプリケーションから送信を要求される対象データ、または、ダミーデータを受信装置に対して送信するデータ送信手段と、
     所定期間の間に、所定条件を満たすサイズの前記対象データが前記受信装置に対して送信されていない場合に、前記所定条件を満たすサイズの前記ダミーデータを送信するよう前記データ送信手段を制御するダミーデータ送信制御手段と、
     を備えた送信装置。
  2.  前記データ送信手段は、複数の前記受信装置に対してそれぞれ異なるコネクションを介して前記対象データまたは前記ダミーデータを送信し、
     前記ダミーデータ送信制御手段は、前記各受信装置に対して前記所定条件を満たすサイズの前記対象データが前記所定期間の間に送信されたか否かに応じた処理を、前記受信装置毎に異なるタイミングで実行することを特徴とする請求項1に記載の送信装置。
  3.  前記データ送信手段は、前記対象データの送信要求および前記ダミーデータの送信要求を略同時に受けた場合、前記対象データのサイズが前記所定条件を満たしていれば該対象データを送信して前記ダミーデータの送信を省略し、前記対象データのサイズが前記所定条件を満たしていなければ前記所定条件を満たすようダミーデータを付加した対象データを送信することを特徴とする請求項1または請求項2に記載の送信装置。
  4.  前記ダミーデータ送信制御手段は、前記所定期間として、前記対象データを送信するための通信コネクションにおいて送信装置から受信装置に対する最近の通信からの経過時間について定められた長さであって、経過時間がこの長さに達すると輻輳ウィンドウサイズが縮小されることが規定された長さに基づく期間を適用することを特徴とする請求項1から請求項3のいずれか1つに記載の送信装置。
  5.  前記データ送信手段がTCP(Transmission Control Protocol)コネクションを通して前記受信装置との通信を行うとき、前記所定期間は、再送タイムアウト時間に基づく期間であることを特徴とする請求項4に記載の送信装置。
  6.  前記ダミーデータ送信制御手段は、輻輳ウィンドウサイズ以上であることを前記所定条件として用いることを特徴とする請求項1から請求項5のいずれか1つに記載の送信装置。
  7.  前記ダミーデータ送信制御手段は、所定のサイズs(sは正の数)以上であることを前記所定条件として用いることを特徴とする請求項1から請求項5のいずれか1つに記載の送信装置。
  8.  前記データ送信手段がTCPコネクションを通して前記受信装置との通信を行うとき、前記所定のサイズsは、セグメントの最大サイズの2倍であることを特徴とする請求項7に記載の送信装置。
  9.  請求項1から請求項8のいずれか1つに記載の送信装置から前記対象データを受信すると該対象データに対する所定の処理を行うとともに、前記ダミーデータを受信すると該ダミーデータを破棄するデータ受信手段を備えた受信装置。
  10.  前記データ受信手段は、請求項3に記載の送信装置から前記ダミーデータが付加された前記対象データを受信すると、該ダミーデータの部分を破棄して該対象データに対する前記所定の処理を行うことを特徴とする請求項9に記載の受信装置。
  11.  請求項1から請求項8のいずれか1つに記載の送信装置と、
     請求項9または請求項10に記載の受信装置と、
     を備えた情報処理システム。
  12.  請求項1から請求項8のいずれか1つに記載の送信装置と、
     マスタデータを記憶するマスタデータ記憶手段と、
     前記マスタデータを更新するとともに、前記マスタデータの更新前および更新後の差分を表す情報(更新ログ)を生成し、生成した更新ログを前記対象データとして送信するよう前記データ送信手段に要求するアプリケーション手段と、
     を備えたマスタサーバ。
  13.  前記マスタデータの複製(複製データ)を記憶する複製データ記憶手段と、
     請求項12に記載のマスタサーバから、前記対象データとしての前記更新ログ、または、前記ダミーデータを受信するとともに、受信した更新ログを用いて前記複製データを更新する処理を前記所定の処理として実行する請求項9または請求項10に記載の受信装置と、
     を備えたスレーブサーバ。
  14.  請求項12に記載のマスタサーバと、
     請求項13に記載のスレーブサーバと、
     を備えたデータベースシステム。
  15.  アプリケーションから対象データの送信要求があると前記対象データを受信装置に対して送信し、
     所定期間の間に、所定条件を満たすサイズの前記対象データが前記受信装置に対して送信されていない場合に、前記所定条件を満たすサイズのダミーデータを前記受信装置に対して送信する、データ転送方法。
  16.  請求項15に記載のデータ転送方法を用いて送信された前記対象データを受信すると該対象データに対する所定の処理を行い、前記ダミーデータを受信すると該ダミーデータを破棄する、データ受信方法。
  17.  アプリケーションから対象データの送信要求があると前記対象データを受信装置に対して送信する対象データ送信ステップと、
     所定期間の間に、所定条件を満たすサイズの前記対象データが前記受信装置に対して送信されていない場合に、前記所定条件を満たすサイズのダミーデータを前記受信装置に対して送信するダミーデータ送信ステップと、
     をコンピュータ装置に実行させるコンピュータ・プログラムを記憶している記憶媒体。
  18.  請求項17に記載の記憶媒体に記憶されたコンピュータ・プログラムの実行により送信された前記対象データを受信すると該対象データに対する所定の処理を行う対象データ受信ステップと、
     前記ダミーデータを受信すると該ダミーデータを破棄するダミーデータ破棄ステップと、
     をコンピュータ装置に実行させるコンピュータ・プログラムを記憶している記憶媒体。
PCT/JP2014/005559 2013-11-05 2014-11-05 送信装置、受信装置、情報処理システム、マスタサーバ、スレーブサーバ、データベースシステム、データ転送方法、および、記憶媒体 WO2015068381A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015546295A JP6187598B2 (ja) 2013-11-05 2014-11-05 送信装置、情報処理システム、マスタサーバ、データベースシステムおよび方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013-229313 2013-11-05
JP2013229313 2013-11-05

Publications (1)

Publication Number Publication Date
WO2015068381A1 true WO2015068381A1 (ja) 2015-05-14

Family

ID=53041176

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/005559 WO2015068381A1 (ja) 2013-11-05 2014-11-05 送信装置、受信装置、情報処理システム、マスタサーバ、スレーブサーバ、データベースシステム、データ転送方法、および、記憶媒体

Country Status (2)

Country Link
JP (1) JP6187598B2 (ja)
WO (1) WO2015068381A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019047162A (ja) * 2017-08-29 2019-03-22 トヨタ自動車株式会社 情報処理システム、情報処理方法、プログラム、及び情報処理装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1198148A (ja) * 1997-09-19 1999-04-09 Nec Corp レート制御装置
JP2005252638A (ja) * 2004-03-04 2005-09-15 Nec Commun Syst Ltd ネットワーク通信制御方法および装置
JP2011002970A (ja) * 2009-06-17 2011-01-06 Nippon Telegr & Teleph Corp <Ntt> 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1198148A (ja) * 1997-09-19 1999-04-09 Nec Corp レート制御装置
JP2005252638A (ja) * 2004-03-04 2005-09-15 Nec Commun Syst Ltd ネットワーク通信制御方法および装置
JP2011002970A (ja) * 2009-06-17 2011-01-06 Nippon Telegr & Teleph Corp <Ntt> 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019047162A (ja) * 2017-08-29 2019-03-22 トヨタ自動車株式会社 情報処理システム、情報処理方法、プログラム、及び情報処理装置
JP7024259B2 (ja) 2017-08-29 2022-02-24 トヨタ自動車株式会社 情報処理システム、情報処理方法、プログラム、及び情報処理装置

Also Published As

Publication number Publication date
JPWO2015068381A1 (ja) 2017-03-09
JP6187598B2 (ja) 2017-08-30

Similar Documents

Publication Publication Date Title
US10505818B1 (en) Methods for analyzing and load balancing based on server health and devices thereof
CN109690510B (zh) 用于将数据分发到高性能计算网络和基于云的网络中的多个接收器的多播装置和方法
US10341792B1 (en) System for distributing audio output using multiple devices
Ren et al. A survey on TCP Incast in data center networks
JP2007116714A (ja) 帯域幅保証を伴う適応性帯域幅制御のための方法及び装置
JP2020526959A (ja) ネットワーク・コーディングを有効にするためのネットワーク・パラメータの最適化
US8369348B2 (en) Method, and system, and computer program product for dynamically adjusting acknowledgement filtering for high-latency environments
US9705733B2 (en) Systems and methods for throttling polling
JP5598306B2 (ja) 中継装置および通信方法
US11736567B2 (en) Data transmission and network interface controller
JP6187598B2 (ja) 送信装置、情報処理システム、マスタサーバ、データベースシステムおよび方法
US11444882B2 (en) Methods for dynamically controlling transmission control protocol push functionality and devices thereof
US11044350B1 (en) Methods for dynamically managing utilization of Nagle&#39;s algorithm in transmission control protocol (TCP) connections and devices thereof
US10223323B2 (en) Apparatus and method for controlling the number of lanes used for transferring data between information processing apparatuses
JP7004815B2 (ja) 空調機、通信システム、及び制御方法
JP4927661B2 (ja) 通信方法、ネットワークシステム、記憶媒体およびネットワーク接続機器
JP6102347B2 (ja) 情報機器、印刷システム、コンピュータープログラムおよびデータ転送方法
JP4981951B2 (ja) 分散コンピューティングシステム
KR100932968B1 (ko) 호스트 컴퓨터의 개입이 없는 toe의 tcp 재전송 처리방법
JP2010130610A (ja) データ伝送システム
US8908534B2 (en) Method for performing lifebeat monitoring
KR101933175B1 (ko) 서버와 클라이언트간 통신을 중개하는 중개장치
JP7427464B2 (ja) 通信装置、通信方法およびプログラム
JP2011234233A (ja) 映像配信装置及び映像配信方法
KR20160010293A (ko) 컨텐츠 중심 네트워크에서 노드의 통신 방법 및 그 노드

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14860000

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015546295

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14860000

Country of ref document: EP

Kind code of ref document: A1