JPWO2015068381A1 - Transmitting apparatus, information processing system, master server, database system and method - Google Patents

Transmitting apparatus, information processing system, master server, database system and method Download PDF

Info

Publication number
JPWO2015068381A1
JPWO2015068381A1 JP2015546295A JP2015546295A JPWO2015068381A1 JP WO2015068381 A1 JPWO2015068381 A1 JP WO2015068381A1 JP 2015546295 A JP2015546295 A JP 2015546295A JP 2015546295 A JP2015546295 A JP 2015546295A JP WO2015068381 A1 JPWO2015068381 A1 JP WO2015068381A1
Authority
JP
Japan
Prior art keywords
data
dummy data
data transmission
dummy
size
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015546295A
Other languages
Japanese (ja)
Other versions
JP6187598B2 (en
Inventor
本田 和利
和利 本田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2015068381A1 publication Critical patent/JPWO2015068381A1/en
Application granted granted Critical
Publication of JP6187598B2 publication Critical patent/JP6187598B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

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)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本発明は、断続的な通信における輻輳ウィンドウサイズの縮小をより十分に防ぐ技術を提供する。送信装置10は、データ送信部11およびダミーデータ送信制御部12を備える。データ送信部11は、アプリケーションから送信を要求される対象データ、または、ダミーデータを、受信装置50に対して送信する。ダミーデータ送信制御部12は、所定期間の間に、所定条件を満たすサイズの対象データが受信装置50に対して送信されていない場合に、所定条件を満たすサイズのダミーデータを送信するようデータ送信部11を制御する。受信装置50は、対象データを受信すると該対象データに対する所定の処理を行う。また、受信装置50は、ダミーデータを受信すると該ダミーデータを破棄する。The present invention provides a technique that more sufficiently prevents a reduction in the congestion window size in intermittent communication. The transmission device 10 includes a data transmission unit 11 and a dummy data transmission control unit 12. The data transmission unit 11 transmits target data requested to be transmitted by the application or dummy data to the receiving device 50. The dummy data transmission control unit 12 transmits data so as to transmit dummy data having a size satisfying the predetermined condition when target data having a size satisfying the predetermined condition is not transmitted to the receiving device 50 during the predetermined period. The unit 11 is controlled. When receiving the target data, the receiving device 50 performs a predetermined process on the target data. In addition, when receiving the dummy data, the receiving device 50 discards the dummy data.

Description

本発明は、ネットワークを介して接続された装置間でデータを転送する技術に関する。   The present invention relates to a technique for transferring data between devices connected via a network.

ネットワークを介して接続された装置間でデータを転送する情報処理システムでは、信頼性のある通信を行いながら、転送時間をできるだけ短くすることが求められる。このような情報処理システムとしては、例えば、メモリデータベースシステムが挙げられる。一般に、メモリデータベースシステムは、1つ以上用意されたスレーブサーバのメモリ上に、マスタサーバが持つデータの複製を持つ。マスタサーバは、データ更新に伴い更新ログをスレーブサーバに転送する。ディスクベースのデータベースシステムと比べて、メモリ上に全てのデータを格納するメモリデータベースシステムは、高速にデータアクセスできる。その分、データ更新に伴う更新ログのネットワーク転送にかかる時間が、高速なトランザクションを行う上でネックとなる。このように、メモリデータベースシステムでは、ネットワーク転送時間をより短くするデータ転送方法が求められている。   In an information processing system that transfers data between devices connected via a network, it is required to shorten the transfer time as much as possible while performing reliable communication. An example of such an information processing system is a memory database system. Generally, a memory database system has a copy of data held by a master server on one or more prepared slave server memories. The master server transfers the update log to the slave server along with the data update. Compared to a disk-based database system, a memory database system that stores all data in memory can access data at high speed. Accordingly, the time required for network transfer of the update log accompanying data update becomes a bottleneck in performing high-speed transactions. Thus, in the memory database system, there is a demand for a data transfer method that shortens the network transfer time.

また、一般に、信頼性のある通信を実現するために、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)に記載されている。スロースタートは、輻輳を防ぐために、少量ずつの通信からスタートして徐々に送信できるデータサイズ(輻輳ウィンドウサイズ)を増やしていくアルゴリズムである。この動作は、輻輳ウィンドウサイズが、受信側からアナウンスされたウィンドウサイズに到達するか、輻輳が発生するまで続く。輻輳が発生すると、再度スロースタートが開始する。   In general, TCP (Transmission Control Protocol) is used to realize reliable communication. In TCP, congestion control using an algorithm called slow start is performed. Slow start is described in RFC (Request for Comments) 2001 by IETF (Internet Engineering Task Force) (W. Stevens, “TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms”, Jan 1997). Has been. 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.

具体的には、このアルゴリズムは、輻輳ウィンドウサイズを超えるパケットの送信に対して送信先からACKが返却されると、輻輳ウィンドウサイズを拡大していく。そして、再送タイムアウト時間(RTO:Retransmission Time Out、一般的に数百ミリ秒)の間、通信が発生しないと、輻輳ウィンドウサイズが縮小され、スロースタートが開始する。ここで、上述のメモリデータベースシステム等では、マスタサーバは、データ更新に応じて更新ログを転送するため、転送は断続的に行われる。そのため、転送の間隔がRTO時間以上になると、一旦拡大された輻輳ウィンドウサイズが縮小され、スロースタートが開始することになる。   Specifically, this algorithm increases the congestion window size when an ACK is returned from the transmission destination in response to transmission of a packet exceeding the congestion window size. If no communication occurs during a retransmission timeout time (RTO: Retransmission Time Out, generally several hundred milliseconds), the congestion window size is reduced and slow start is started. Here, in the above-described memory database system or the like, the master server transfers the update log according to the data update, and therefore the transfer is performed intermittently. Therefore, when the transfer interval becomes equal to or longer than the RTO time, the once-expanded congestion window size is reduced and slow start is started.

しかし、上述のメモリデータベースシステム等では、例えば1ミリ秒未満の応答時間が要求される。このような情報処理システムにおいて更新ログの転送時にスロースタートが開始すると、通信に数十〜数百倍の時間がかかってしまう。その結果、更新ログの転送(レプリケーション)に要求される応答時間が満たされないという問題が発生する。   However, the above-described memory database system or the like requires a response time of less than 1 millisecond, for example. In such an information processing system, when slow start is started at the time of transfer of an update log, communication takes several tens to several hundreds of times. As a result, there arises a problem that the response time required for transfer (replication) of the update log is not satisfied.

ここで、上述のようなメモリデータベースにおいて、マスタサーバおよびスレーブサーバは、同一構内(同一ラック内)に設置されることも多い。この場合、マスタサーバおよびスレーブサーバ間のレプリケーション通信の高速性を確保するため、レプリケーション専用にネットワークが用意されることも多い。このような場合、レプリケーション専用のネットワークでは、他の通信により輻輳が発生することを考慮する必要がない。そのため、スロースタートが働いてしまうことで、かえって応答速度が遅くなる場合もある。このように、スロースタートを用いた輻輳制御は、信頼性の高い専用ネットワークを用いる場合、不要であることが多い。   Here, in the memory database as described above, the master server and the slave server are often installed in the same premises (in the same rack). In this case, a network is often prepared exclusively for replication in order to ensure high speed replication communication between the master server and the slave server. In such a case, it is not necessary to consider that congestion occurs due to other communication in a network dedicated to replication. For this reason, the response speed may be slower due to the slow start. As described above, the congestion control using the slow start is often unnecessary when a highly reliable dedicated network is used.

なお、オペレーティングシステム(OS)によっては、スロースタートを無効化する設定、または、RTO時間や遅延ACK間隔を任意の値に変更する設定が可能なものもある。そこで、レプリケーションの応答速度を高めるために、OSで一律にスロースタートを無効にする、あるいは、RTO時間や遅延ACK間隔を変更するなどの設定をすることも考えられる。しかしながら、例えば、データ転送に関わるサーバが、レプリケーション専用のネットワークに加えて、通常のインターネットにも接続される場合がある。このようなサーバにおいて、OSで一律に上述のような設定をすると、インターネット接続側の通信が輻輳により著しく性能劣化する可能性がある。したがって、OSの設定により、特定のネットワーク接続において、断続的な通信によるスロースタートの開始に起因する通信速度の低下問題を解決することは難しい。   Depending on the operating system (OS), there may be a setting for invalidating the slow start, or a setting for changing the RTO time or the delayed ACK interval to an arbitrary value. Therefore, in order to increase the response speed of replication, it may be possible to make settings such as uniformly disabling slow start in the OS, or changing the RTO time or delay ACK interval. However, for example, a server involved in data transfer may be connected to the normal Internet in addition to a replication-dedicated network. In such a server, if the above settings are uniformly set by the OS, there is a possibility that the performance of the communication on the Internet connection side is significantly deteriorated due to congestion. Therefore, it is difficult to solve the problem of a decrease in communication speed caused by the start of slow start due to intermittent communication in a specific network connection by setting the OS.

このような問題に対応する技術が、特許文献1に記載されている。この関連技術は、TCPコネクションの最近の使用時刻からの経過時間が、スロースタートモードへ遷移する経過時間となる前に、そのTCPコネクションを通してRTO回避データを送信する。これにより、この関連技術は、断続的なデータ通信におけるスロースタートを回避している。   A technique for dealing with such a problem is described in Patent Document 1. This related technique transmits RTO avoidance data through the TCP connection before the elapsed time from the most recent use time of the TCP connection becomes the elapsed time to transit to the slow start mode. As a result, this related technique avoids a slow start in intermittent data communication.

特開2006−100919号公報JP 2006-100919 A

しかしながら、特許文献1に記載された関連技術は、アプリケーションから送信要求されるデータのサイズが小さい場合、輻輳ウィンドウサイズの縮小を防ぐことができない場合がある。これは、スロースタートモードへ遷移する経過時間となる前にデータが送信されていても、そのデータが輻輳ウィンドウを満たさなかった場合、輻輳ウィンドウサイズが縮小されることがあるためである(前述のRFC2861参照)。また、特許文献1には、RTO回避データのサイズについては記載されていない。したがって、この関連技術は、輻輳ウィンドウサイズが縮小されることを十分に防ぐことができない場合がある。   However, the related technique described in Patent Document 1 may not prevent the congestion window size from being reduced when the size of data requested to be transmitted from an application is small. This is because the congestion window size may be reduced if the data does not satisfy the congestion window even if the data has been transmitted before the elapsed time to transition to the slow start mode (see above). See RFC2861). Further, Patent Document 1 does not describe the size of RTO avoidance data. Therefore, this related technique may not sufficiently prevent the congestion window size from being reduced.

本発明は、上述の課題を解決するためになされたもので、断続的な通信において輻輳ウィンドウサイズの縮小をより十分に防ぐ技術を提供することを目的とする。   The present invention has been made to solve the above-described problems, and an object of the present invention is to provide a technique that more sufficiently prevents a reduction in the congestion window size in intermittent communication.

上記目的を達成するために、本発明の送信装置は、アプリケーションから送信を要求される対象データ、または、ダミーデータを受信装置に対して送信するデータ送信手段と、所定期間の間に、所定条件を満たすサイズの前記対象データが前記受信装置に対して送信されていない場合に、前記所定条件を満たすサイズの前記ダミーデータを送信するよう前記データ送信手段を制御するダミーデータ送信制御手段と、を備える。   In order to achieve the above object, a transmitting apparatus according to the present invention includes a predetermined condition between a data transmitting unit that transmits target data to be transmitted from an application or dummy data to a receiving apparatus, and a predetermined period. Dummy data transmission control means for controlling the data transmission means to transmit the dummy data having a size satisfying the predetermined condition when the target data having a size satisfying the condition is not transmitted to the receiving device; Prepare.

また、本発明の受信装置は、上述の送信装置から前記対象データを受信すると該対象データに対する所定の処理を行うとともに、前記ダミーデータを受信すると該ダミーデータを破棄するデータ受信手段を備える。   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.

また、本発明のマスタサーバは、上述の送信装置と、マスタデータを記憶するマスタデータ記憶手段と、前記マスタデータを更新するとともに、前記マスタデータの更新前および更新後の差分を表す情報(更新ログ)を生成し、生成した更新ログを前記対象データとして送信するよう前記データ送信手段に要求するアプリケーション手段と、を備える。   In addition, the master server of the present invention updates the master data, master data storage means for storing master data, and information indicating the difference before and after updating the master data (update Application means for requesting the data transmission means to transmit the generated update log as the target data.

また、本発明のスレーブサーバは、前記マスタデータの複製(複製データ)を記憶する複製データ記憶手段と、上述のマスタサーバから、前記対象データとしての前記更新ログ、または、前記ダミーデータを受信するとともに、受信した更新ログを用いて前記複製データを更新する処理を前記所定の処理として実行する上述の受信装置と、を備える。   Further, 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 database system of the present invention includes the above-described master server and the above-described slave server.

また、本発明のデータ転送方法は、アプリケーションから対象データの送信要求があると前記対象データを受信装置に対して送信し、所定期間の間に、所定条件を満たすサイズの前記対象データが前記受信装置に対して送信されていない場合に、前記所定条件を満たすサイズのダミーデータを前記受信装置に対して送信する。   In the data transfer method of the present invention, 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. When not transmitted to the apparatus, dummy data having a size satisfying the predetermined condition is transmitted to the receiving apparatus.

また、本発明の記憶媒体は、アプリケーションから対象データの送信要求があると前記対象データを受信装置に対して送信する対象データ送信ステップと、所定期間の間に、所定条件を満たすサイズの前記対象データが前記受信装置に対して送信されていない場合に、前記所定条件を満たすサイズのダミーデータを前記受信装置に対して送信するダミーデータ送信ステップと、をコンピュータ装置に実行させるコンピュータ・プログラムを記憶している。   In addition, the storage medium of the present invention provides a target data transmission step of transmitting the target data to a receiving device when a request for transmission of target data is received from an application, and the target having a size satisfying a predetermined condition between a predetermined period A computer program for causing a computer device to execute a dummy data transmission step of transmitting dummy data having a size satisfying the predetermined condition to the receiving device when data is not transmitted to the receiving device. doing.

本発明は、断続的な通信における輻輳ウィンドウサイズの縮小をより十分に防ぐ技術を提供することができる。   The present invention can provide a technique that more sufficiently prevents the reduction of the congestion window size in intermittent communication.

本発明の第1の実施の形態としての情報処理システムの構成を示すブロック図である。It is a block diagram which shows the structure of the information processing system as the 1st Embodiment of this invention. 本発明の第1の実施の形態としての情報処理システムの機能ブロック図である。It is a functional block diagram of an information processing system as a 1st embodiment of the present invention. 本発明の第1の実施の形態としての情報処理システムのハードウェア構成図である。It is a hardware block diagram of the information processing system as a 1st embodiment of the present invention. 本発明の第1の実施の形態におけるデータ送信部の動作を説明するフローチャートである。It is a flowchart explaining operation | movement of the data transmission part in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるダミーデータ送信制御部の動作を説明するフローチャートである。It is a flowchart explaining operation | movement of the dummy data transmission control part in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるデータ受信部の動作を説明するフローチャートである。It is a flowchart explaining operation | movement of the data receiver in the 1st Embodiment of this invention. 本発明の第2の実施の形態としてのメモリデータベースシステムの構成を示すブロック図である。It is a block diagram which shows the structure of the memory database system as the 2nd Embodiment of this invention. 本発明の第2の実施の形態としてのメモリデータベースシステムの機能ブロック図である。It is a functional block diagram of a memory database system as a 2nd embodiment of the present invention. 本発明の第2の実施の形態におけるアプリケーション部の動作を説明するフローチャートである。It is a flowchart explaining operation | movement of the application part in the 2nd Embodiment of this invention. 本発明の第2の実施の形態におけるデータ送信部の動作を説明するフローチャートである。It is a flowchart explaining operation | movement of the data transmission part in the 2nd Embodiment of this invention. 本発明の第2の実施の形態におけるダミーデータ送信制御部の動作を説明するフローチャートである。It is a flowchart explaining operation | movement of the dummy data transmission control part in the 2nd Embodiment of this invention. 本発明の第2の実施の形態におけるデータ受信部の動作を説明するフローチャートである。It is a flowchart explaining operation | movement of the data receiver in the 2nd Embodiment of this invention. 本発明の第3の実施の形態としてのメモリデータベースシステムの構成を示すブロック図である。It is a block diagram which shows the structure of the memory database system as the 3rd Embodiment of this invention. 本発明の第3の実施の形態としてのメモリデータベースシステムの機能ブロック図である。It is a functional block diagram of the memory database system as the 3rd Embodiment of this invention. 本発明の第3の実施の形態におけるデータ送信部の動作を説明するフローチャートである。It is a flowchart explaining operation | movement of the data transmission part in the 3rd Embodiment of this invention. 本発明の第3の実施の形態における所定期間算出部の動作を説明するフローチャートである。It is a flowchart explaining operation | movement of the predetermined period calculation part in the 3rd Embodiment of this invention. 本発明の第3の実施の形態における開始制御部の動作を説明するフローチャートである。It is a flowchart explaining operation | movement of the start control part in the 3rd Embodiment of this invention. 本発明の第3の実施の形態におけるダミーデータ送信制御部の動作を説明するフローチャートである。It is a flowchart explaining operation | movement of the dummy data transmission control part in the 3rd Embodiment of this invention. 本発明の第3の実施の形態の他の態様におけるメモリデータベースシステムの機能ブロック図である。It is a functional block diagram of the memory database system in the other aspect of the 3rd Embodiment of this invention. 本発明の第3の実施の形態の他の態様におけるデータ送信部の動作を説明するフローチャートである。It is a flowchart explaining operation | movement of the data transmission part in the other aspect of the 3rd Embodiment of this invention. 本発明の第3の実施の形態の他の態様におけるダミーデータ送信制御部の動作を説明するフローチャートである。It is a flowchart explaining operation | movement of the dummy data transmission control part in the other aspect of the 3rd Embodiment of this invention. 本発明の第4の実施の形態としてのメモリデータベースシステムの機能ブロック図である。It is a functional block diagram of the memory database system as the 4th Embodiment of this invention. 本発明の第4の実施の形態におけるデータ送信部の動作を説明するフローチャートである。It is a flowchart explaining operation | movement of the data transmission part in the 4th Embodiment of this invention. 本発明の第4の実施の形態におけるデータ受信部の動作を説明するフローチャートである。It is a flowchart explaining operation | movement of the data receiver in the 4th Embodiment of this invention.

以下、本発明の実施の形態について、図面を参照して詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

(第1の実施の形態)
本発明の第1の実施の形態としての情報処理システム1の構成を図1に示す。図1において、情報処理システム1は、送信装置10と、受信装置50とを含む。送信装置10および受信装置50は、ネットワークを介して通信可能に接続されている。
(First embodiment)
FIG. 1 shows the configuration of an information processing system 1 as a first embodiment of the present invention. In FIG. 1, 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.

次に、情報処理システム1を構成する各装置の機能ブロックを図2に示す。図2において、送信装置10は、データ送信部11と、ダミーデータ送信制御部12とを備える。また、受信装置50は、データ受信部51を備える。   Next, FIG. 2 shows functional blocks of each device constituting the information processing system 1. In FIG. 2, 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.

ここで、送信装置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、ならびに、各装置の各機能ブロックのハードウェア構成は、上述の構成に限定されない。   Here, an example of the hardware configuration of the transmission device 10 and the reception device 50 is shown in FIG. In FIG. 3, the transmission device 10 includes a CPU (Central Processing Unit) 1001, a RAM (Random Access Memory) 1002, a ROM (Read Only Memory) 1003, a storage device 1004 such as a hard disk, and a network interface 1005. It can be configured by a computer device. The receiving device 50 can be configured by a computer device including a CPU 5001, a RAM 5002, a ROM 5003, a storage device 5004 such as a hard disk, and a network interface 5005. In this case, the data transmission unit 11 includes a network interface 1005 and a CPU 1001 that reads a computer program and various data stored in the ROM 1003 and the storage device 1004 into the RAM 1002 and executes them. The dummy data transmission control unit 12 includes a CPU 1001 that reads a computer program and various data stored in the ROM 1003 and the storage device 1004 into the RAM 1002 and executes them. The data receiving unit 51 includes a network interface 5005 and a CPU 5001 that reads a computer program and various data stored in the ROM 5003 and the storage device 5004 into the RAM 5002 and executes them. Note that the hardware configurations of the transmission device 10 and the reception device 50 and each functional block of each device are not limited to the above-described configurations.

次に、送信装置10の機能ブロックの詳細について説明する。   Next, details of functional blocks of the transmission apparatus 10 will be described.

データ送信部11は、対象データまたはダミーデータを受信装置50に対して送信する。対象データは、受信装置50に対して送信するよう、外部または自装置上のアプリケーション(図示せず)から要求されたデータである。具体的には、データ送信部11は、送信要求元から対象データを受信すると、受信装置50との間に確立された通信コネクションを通して、その対象データを送信する。   The data transmission unit 11 transmits the target data or dummy data to the receiving device 50. The target data is data requested from an external application or an application (not shown) on the own device to be transmitted to the receiving device 50. Specifically, when receiving the target data from the transmission request source, the data transmission unit 11 transmits the target data through a communication connection established with the receiving device 50.

また、ダミーデータは、受信装置50において破棄されるデータである。このため、ダミーデータは、どのような内容であってもよい。具体的には、データ送信部11は、後述のダミーデータ送信制御部12からの要求に応じて、受信装置50に対して所定条件を満たすサイズのダミーデータを送信する。なお、所定条件とは、その時点での輻輳ウィンドウサイズ以上であることであってもよい。   The dummy data is data discarded in the receiving device 50. For this reason, the dummy data may have any content. Specifically, the data transmission unit 11 transmits dummy data having a size satisfying a predetermined condition to the reception device 50 in response to a request from a dummy data transmission control unit 12 described later. The predetermined condition may be equal to or greater than the congestion window size at that time.

ダミーデータ送信制御部12は、所定期間の間に、受信装置50に対して所定条件を満たすサイズの対象データが送信されていない場合に、所定条件を満たすサイズのダミーデータを送信するようデータ送信部11を制御する。詳細には、ダミーデータ送信制御部12は、受信装置50との間に確立された通信コネクションにおいて、所定期間の間に、受信装置50に対して所定条件を満たすサイズの対象データが送信されているか否かを判断する。そして、ダミーデータ送信制御部12は、そのような対象データが所定期間に送信されていなければ、その通信コネクションを通して上述のダミーデータ送信制御を行う。   The dummy data transmission control unit 12 performs data transmission so as to transmit dummy data having a size satisfying the predetermined condition when target data having a size satisfying the predetermined condition is not transmitted to the receiving device 50 during the predetermined period. The unit 11 is controlled. Specifically, the dummy data transmission control unit 12 transmits the target data having a size satisfying a predetermined condition to the receiving device 50 during a predetermined period in the communication connection established with the receiving device 50. Determine whether or not. The dummy data transmission control unit 12 performs the above-described dummy data transmission control through the communication connection if such target data is not transmitted in a predetermined period.

なお、所定条件とは、上述と同様に、その時点での輻輳ウィンドウサイズ以上であることであってもよい。つまり、ダミーデータ送信制御部12は、所定期間の間に、その時点での輻輳ウィンドウサイズ以上の対象データが送信されなかった場合に、輻輳ウィンドウサイズ以上のダミーデータを送信するようデータ送信部11に通知してもよい。   The predetermined condition may be equal to or greater than the congestion window size at that time, as described above. That is, the dummy data transmission control unit 12 transmits the dummy data larger than the congestion window size when the target data larger than the congestion window size at that time is not transmitted during the predetermined period. May be notified.

また、所定期間とは、輻輳ウィンドウサイズが縮小されることが規定された経過時間に基づく期間であってもよい。ここで、対象データを送信するための通信コネクションでは、送信装置10から受信装置50に対する最近の通信からの経過時間がこの規定された経過時間の長さに達すると、輻輳ウィンドウサイズが縮小される。したがって、例えば、ダミーデータ送信制御部12は、その規定された経過時間の長さの1/2未満の期間を、所定期間として定めてもよい。そして、ダミーデータ送信制御部12は、所定期間が経過する度に、その時点までの所定期間において所定条件を満たすサイズの対象データが送信されたか否かを判断するようにしてもよい。   Further, the predetermined period may be a period based on an elapsed time that is specified to reduce the congestion window size. Here, in the communication connection for transmitting the target data, when the elapsed time from the latest communication from the transmitting device 10 to the receiving device 50 reaches the length of the specified elapsed time, the congestion window size is reduced. . Therefore, for example, the dummy data transmission control unit 12 may define a period less than ½ 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.

次に、受信装置50の機能ブロックの詳細について説明する。   Next, details of functional blocks of the receiving device 50 will be described.

データ受信部51は、送信装置10から対象データまたはダミーデータを受信する。そして、データ受信部51は、受信した対象データに対する所定の処理を行う。所定の処理とは、例えば、記憶装置5004へ保存する処理であってもよい。また、データ受信部51は、受信したダミーデータを破棄する。   The data reception unit 51 receives target data or dummy data from the transmission device 10. The data receiving unit 51 performs a predetermined process on the received target data. The predetermined process may be a process of saving in the storage device 5004, for example. Further, the data receiving unit 51 discards the received dummy data.

以上のように構成された情報処理システム1の動作について説明する。   The operation of the information processing system 1 configured as described above will be described.

まず、送信装置10のデータ送信部11の動作を図4に示す。   First, the operation of the data transmission unit 11 of the transmission device 10 is shown in FIG.

図4では、まず、データ送信部11は、データの送信要求を受信する(ステップS1でYes)。   In FIG. 4, first, the data transmission unit 11 receives a data transmission request (Yes in step S1).

ここで、受信した送信要求が、アプリケーションからの対象データの送信要求である場合(ステップS2で「対象データ」)、データ送信部11は、対象データを受信装置50に対して送信する(ステップS3)。   Here, when the received transmission request is a transmission request for target data from the application (“target data” in step S2), the data transmission unit 11 transmits the target data to the receiving device 50 (step S3). ).

一方、ステップS1で受信した送信要求が、ダミーデータ送信制御部12からのダミーデータの送信要求である場合(ステップS2で「ダミーデータ」)、データ送信部11は、所定条件を満たすサイズのダミーデータを、受信装置50に対して送信する(ステップS4)。そして、データ送信部11の動作はステップS1に戻る。   On the other hand, 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.

以上で、送信装置10のデータ送信部11の動作の説明を終了する。   Above, description of operation | movement of the data transmission part 11 of the transmitter 10 is complete | finished.

次に、送信装置10のダミーデータ送信制御部12の動作を図5に示す。   Next, the operation of the dummy data transmission control unit 12 of the transmission device 10 is shown in FIG.

図5では、まず、ダミーデータ送信制御部12は、この時点までの所定期間の間に、所定条件を満たすサイズの対象データがデータ送信部11から送信されたか否かを判断する(ステップS11)。   In FIG. 5, first, the dummy data transmission control unit 12 determines whether or not target data having a size satisfying a predetermined condition has been transmitted from the data transmission unit 11 during a predetermined period up to this point (step S11). .

ここで、所定条件を満たすサイズの対象データが送信されていたと判断した場合、ダミーデータ送信制御部12の動作はステップS13に進む。   If 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.

一方、所定条件を満たすサイズの対象データが送信されていなかったと判断した場合、ダミーデータ送信制御部12は、所定条件を満たすサイズのダミーデータの送信を、データ送信部11に要求する(ステップS12)。   On the other hand, when determining that the target data having a size satisfying the predetermined condition has not been transmitted, the dummy data transmission control unit 12 requests the data transmission unit 11 to transmit dummy data having a size satisfying the predetermined condition (step S12). ).

次に、ダミーデータ送信制御部12は、所定期間として定められた時間だけ待機する(ステップS13)。   Next, the dummy data transmission control unit 12 waits for a time set as a predetermined period (step S13).

そして、ダミーデータ送信制御部12の動作はステップS11に戻る。   Then, the operation of the dummy data transmission control unit 12 returns to step S11.

以上で、送信装置10のダミーデータ送信制御部12の動作の説明を終了する。   Above, description of operation | movement of the dummy data transmission control part 12 of the transmitter 10 is complete | finished.

次に、受信装置50の動作を図6に示す。   Next, the operation of the receiving device 50 is shown in FIG.

図6では、まず、データ受信部51は、送信装置10からデータを受信する(ステップS21でYes)。   In FIG. 6, first, the data reception unit 51 receives data from the transmission device 10 (Yes in step S <b> 21).

ここで、受信したデータが対象データである場合(ステップS22で「対象データ」)、データ受信部51は、この対象データに対する所定の処理を実行する(ステップS23)。   Here, when the received data is target data (“target data” in step S22), the data receiving unit 51 executes a predetermined process on the target data (step S23).

一方、受信したデータがダミーデータである場合(ステップS22で「ダミーデータ」)、データ受信部51は、このダミーデータを破棄する(ステップS24)。   On the other hand, when the received data is dummy data (“dummy data” in step S22), the data receiving unit 51 discards the dummy data (step S24).

そして、受信装置50の動作はステップS21に戻る。   Then, the operation of the receiving device 50 returns to step S21.

以上で、受信装置50の動作の説明を終了する。   Above, description of operation | movement of the receiver 50 is complete | finished.

次に、本発明の第1の実施の形態の効果について述べる。   Next, effects of the first exemplary embodiment of the present invention will be described.

本発明の第1の実施の形態としての情報処理システムは、断続的な通信における輻輳ウィンドウサイズの縮小をより十分に防ぐことができる。   The information processing system as the first exemplary embodiment of the present invention can more sufficiently prevent the reduction of the congestion window size in intermittent communication.

その理由は、データ送信部が、アプリケーションから要求された対象データ、または、ダミーデータを受信装置に対して送信するからである。また、ダミーデータ送信制御部が、所定期間の間に、所定条件を満たすサイズの対象データが送信されていない場合に、所定条件を満たすサイズのダミーデータを、データ送信部を通して受信装置に送信するよう制御するからである。また、所定期間としては、対象データを送信するために確立された通信コネクションにおいて、輻輳ウィンドウサイズが縮小されることが規定された最近の通信からの経過時間に基づく期間が用いられるからである。   The reason is that the data transmission unit transmits the target data or dummy data requested by the application 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. In addition, as 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.

これにより、本実施の形態は、送信装置から受信装置への通信が断続的に発生する情報処理システムにおいて、長くても、所定期間の2倍未満の間隔で、所定条件を満たすサイズの対象データまたはダミーデータを送信することになる。したがって、本実施の形態は、輻輳ウィンドウサイズが所定条件を満たさなくなることを回避することができ、一度に送信することが可能なサイズが所定条件を満たすよう保つことができる。したがって、本実施の形態は、断続的な通信が行われる通信コネクションにおいて、輻輳ウィンドウサイズを所定条件を満たさないほど縮小させることがない。また、例えば、所定条件として、その時点での輻輳ウィンドウサイズ以上であることを適用すれば、本実施の形態は、いったん拡大した輻輳ウィンドウサイズをそれ以上縮小させないことになる。   As a result, in the information processing system in which communication from the transmission device to the reception device occurs intermittently, 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.

(第2の実施の形態)
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。本実施の形態では、本発明の情報処理システムをメモリデータベースシステムに適用した例について説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
(Second Embodiment)
Next, a second embodiment of the present invention will be described in detail with reference to the drawings. In this embodiment, an example in which the information processing system of the present invention is applied to a memory database system will be described. Note that, in each drawing referred to in the description of the present embodiment, the same reference numerals are given to the same configuration and steps that operate in the same manner as in the first embodiment of the present invention, and the detailed description in the present embodiment. Description is omitted.

まず、本発明の第2の実施の形態としてのメモリデータベースシステム2の構成を図7に示す。図7において、メモリデータベースシステム2は、本発明の送信装置を含むマスタサーバ20と、本発明の受信装置を含むスレーブサーバ60とを備える。マスタサーバ20およびスレーブサーバ60は、ネットワークを介して通信可能に接続されている。   First, FIG. 7 shows a configuration of a memory database system 2 as a second embodiment of the present invention. In FIG. 7, 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.

次に、メモリデータベースシステム2を構成する各装置の機能ブロックを図8に示す。図8において、マスタサーバ20は、データ送信部21と、ダミーデータ送信制御部22と、マスタデータ記憶部23と、アプリケーション部24とを備える。ここで、マスタサーバ20は、図3を参照して説明した本発明の第1の実施の形態としての送信装置と同一のハードウェア要素を含むコンピュータ装置によって構成可能である。この場合、マスタデータ記憶部23は、RAM1002によって構成される。また、アプリケーション部24は、ROM1003および記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行するCPU1001によって構成される。   Next, functional blocks of each device constituting the memory database system 2 are shown in FIG. In FIG. 8, the master server 20 includes a data transmission unit 21, a dummy data transmission control unit 22, a master data storage unit 23, and an application unit 24. Here, the master server 20 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. In this case, the master data storage unit 23 is configured by the RAM 1002. The application unit 24 includes a CPU 1001 that reads a computer program and various data stored in the ROM 1003 and the storage device 1004 into the RAM 1002 and executes them.

スレーブサーバ60は、データ受信部61と、複製データ記憶部62とを備える。ここで、スレーブサーバ60は、図3を参照して説明した本発明の第1の実施の形態としての受信装置と同一のハードウェア要素を含むコンピュータ装置によって構成可能である。この場合、複製データ記憶部62は、RAM5002によって構成される。   The slave server 60 includes a data receiving unit 61 and a duplicate data storage unit 62. Here, the slave server 60 can be configured by a computer device including the same hardware elements as the receiving device according to the first embodiment of the present invention described with reference to FIG. In this case, the duplicate data storage unit 62 is configured by the RAM 5002.

次に、マスタサーバ20の各機能ブロックの詳細について説明する。   Next, details of each functional block of the master server 20 will be described.

マスタデータ記憶部23は、マスタデータを記憶する。   The master data storage unit 23 stores master data.

アプリケーション部24は、マスタデータを更新する。マスタデータの更新は、例えば、外部からの要求や、自装置における他の機能ブロック(図示せず)からの要求に応じて行われる。そして、アプリケーション部24は、マスタデータの更新に応じて、その更新前および更新後の差分を表す情報(更新ログ)を生成する。また、アプリケーション部24は、生成した更新ログを、スレーブサーバ60に対して送信するよう、データ送信部21に要求する。例えば、アプリケーション部24は、コミット要求を発行後、更新ログを生成してその送信を要求するようにしてもよい。   The application unit 24 updates the master data. The master data is updated in response to, for example, an external request or a request from another functional block (not shown) in the own device. And the application part 24 produces | generates the information (update log) showing the difference before the update and the post-update according to the update of master data. In addition, the application unit 24 requests the data transmission unit 21 to transmit the generated update log to the slave server 60. For example, after issuing a commit request, the application unit 24 may generate an update log and request transmission thereof.

データ送信部21は、本発明の第1の実施の形態におけるデータ送信部11と略同様に動作するよう構成される。ただし、本実施の形態では、対象データに、アプリケーション部24から要求される更新ログを適用する。また、本実施の形態では、更新ログまたはダミーデータの送信先は、スレーブサーバ60となる。   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. However, in the present embodiment, the update log requested from the application unit 24 is applied to the target data. In the present embodiment, the transmission destination of the update log or dummy data is the slave server 60.

また、データ送信部21は、ダミーデータ送信制御部22による判断処理のために、送信済フラグを保持するようにしてもよい。この場合、データ送信部21は、アプリケーション部24から要求されて送信した更新ログが所定条件を満たす場合、送信済フラグをオンに設定して保持する。なお、本実施の形態では、所定条件として、サイズがs(sは正の数)以上であるという条件を適用するものとする。   Further, the data transmission unit 21 may hold a transmitted flag for determination processing by the dummy data transmission control unit 22. In this case, when the update log requested and transmitted from the application unit 24 satisfies a predetermined condition, the data transmitting unit 21 sets the transmitted flag to ON and holds it. In the present embodiment, a condition that the size is s (s is a positive number) or more is applied as the predetermined condition.

ダミーデータ送信制御部22は、所定期間の間に、サイズがs以上の更新ログが送信されたか否かに応じた処理を行う。ここで、所定期間とは、本発明の第1の実施の形態において説明した所定期間と同様の期間を適用するものとする。例えば、データ送信部21によって送信済フラグが保持されている場合、ダミーデータ送信制御部22は、次のように動作するよう構成される。   The dummy data transmission control unit 22 performs processing according to whether an update log having a size of s or more is transmitted during a predetermined period. Here, the predetermined period is a period similar to the predetermined period described in the first embodiment of the present invention. For example, when the transmitted flag is held by the data transmission unit 21, the dummy data transmission control unit 22 is configured to operate as follows.

具体的には、ダミーデータ送信制御部22は、所定期間が経過する毎に送信済フラグをチェックする。そして、ダミーデータ送信制御部22は、送信済フラグがオフである場合に、サイズs以上のダミーデータを送信するようデータ送信部21を制御する。また、ダミーデータ送信制御部22は、送信済フラグがオンである場合に、送信済みフラグをオフに設定する。   Specifically, the dummy data transmission control unit 22 checks the transmitted flag every time a predetermined period elapses. Then, the dummy data transmission control unit 22 controls the data transmission unit 21 to transmit dummy data of size s or more when the transmitted flag is off. Further, the dummy data transmission control unit 22 sets the transmitted flag to OFF when the transmitted flag is ON.

次に、スレーブサーバ60の各機能ブロックの詳細について説明する。   Next, details of each functional block of the slave server 60 will be described.

複製データ記憶部62は、複製データを記憶する。複製データは、マスタサーバ20に記憶されるマスタデータの複製である。   The duplicate data storage unit 62 stores duplicate data. The duplicate data is a duplicate of master data stored in the master server 20.

データ受信部61は、本発明の第1の実施の形態におけるデータ受信部51と略同様に動作するよう構成される。詳細には、データ受信部61は、マスタサーバ20から、対象データとしての更新ログ、または、ダミーデータを受信する。また、データ受信部61は、更新ログを用いて、複製データ記憶部62の複製データを更新する。また、データ受信部61は、ダミーデータを破棄する。   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.

以上のように構成されたメモリデータベースシステム2の動作について、図面を参照して説明する。   The operation of the memory database system 2 configured as described above will be described with reference to the drawings.

まず、マスタサーバ20におけるアプリケーション部24の動作を図9に示す。   First, the operation of the application unit 24 in the master server 20 is shown in FIG.

図9では、まず、アプリケーション部24は、マスタデータ記憶部23のマスタデータを更新する(ステップS31)。   In FIG. 9, first, the application unit 24 updates the master data in the master data storage unit 23 (step S31).

次に、アプリケーション部24は、更新前後のマスタデータの差分情報を更新ログとして生成する(ステップS32)。   Next, the application unit 24 generates difference information between the master data before and after the update as an update log (step S32).

次に、アプリケーション部24は、ステップS32で生成した更新ログの送信を、データ送信部21に対して要求する(ステップS33)。   Next, the application unit 24 requests the data transmission unit 21 to transmit the update log generated in step S32 (step S33).

以上で、アプリケーション部24の動作の説明を終了する。   Above, description of operation | movement of the application part 24 is complete | finished.

次に、マスタサーバ20におけるデータ送信部21の動作を図10に示す。なお、動作の開始時点では、送信済フラグはオフに設定されているものとする。   Next, the operation of the data transmission unit 21 in the master server 20 is shown in FIG. It is assumed that the transmitted flag is set to OFF at the start of the operation.

図10では、まず、データ送信部21は、ステップS1〜S3まで、本発明の第1の実施の形態におけるデータ送信部11と略同様に動作する。ただし、本実施の形態では、対象データとして、アプリケーション部24から送信要求された更新ログが適用される。   In FIG. 10, first, the data transmission unit 21 operates in substantially the same manner as the data transmission unit 11 in the first embodiment of the present invention from step S1 to S3. However, in the present embodiment, an update log requested to be transmitted from the application unit 24 is applied as the target data.

また、データ送信部21は、ステップS3で更新ログをスレーブサーバ60に対して送信後、送信した更新ログのサイズが、s以上であるか否かを判断する(ステップS131)。   In addition, after transmitting the update log to the slave server 60 in step S3, the data transmission unit 21 determines whether or not the size of the transmitted update log is greater than or equal to s (step S131).

ここで、サイズがs以上であった場合、データ送信部21は、送信済フラグをオンに設定して保持する(ステップS132)。そして、データ送信部21の動作はステップS1に戻る。   If the size is greater than or equal to s, the data transmission unit 21 sets the transmission completion flag to ON and holds it (step S132). Then, the operation of the data transmission unit 21 returns to step S1.

一方、サイズがs未満であった場合、データ送信部21の動作はステップS1に戻る。   On the other hand, when the size is less than s, the operation of the data transmission unit 21 returns to step S1.

また、ステップS1で受信した送信要求が、ダミーデータの送信要求であれば(ステップS2で「ダミーデータ」)、データ送信部21は、サイズがs以上のダミーデータを、スレーブサーバ60に対して送信する(ステップS133)。そして、データ送信部21の動作はステップS1に戻る。   If the transmission request received in step S1 is a dummy data transmission request (“dummy data” in step S2), the data transmission unit 21 sends dummy data of size s or more to the slave server 60. Transmit (step S133). Then, the operation of the data transmission unit 21 returns to step S1.

以上で、マスタサーバ20のデータ送信部21の動作の説明を終了する。   Above, description of operation | movement of the data transmission part 21 of the master server 20 is complete | finished.

次に、マスタサーバ20におけるダミーデータ送信制御部22の動作を図11に示す。   Next, the operation of the dummy data transmission control unit 22 in the master server 20 is shown in FIG.

図11では、まず、ダミーデータ送信制御部22は、送信済フラグの内容をチェックし、オンであるか否かを判断する(ステップS141)。   In FIG. 11, first, the dummy data transmission control unit 22 checks the content of the transmitted flag and determines whether or not it is on (step S141).

ここで、送信済フラグがオンである場合、ダミーデータ送信制御部22は、送信済フラグをオフに設定(リセット)する(ステップS142)。   Here, if the transmitted flag is on, the dummy data transmission control unit 22 sets (resets) the transmitted flag to off (step S142).

一方、送信済フラグがオフである場合、ダミーデータ送信制御部22は、本発明の第1の実施の形態と同様にステップS12を実行し、ダミーデータの送信を、データ送信部21に要求する(ステップS12)。ただし、本実施の形態では、ダミーデータ送信制御部22は、サイズがs以上のダミーデータの送信を要求する。   On the other hand, when the transmitted flag is off, the dummy data transmission control unit 22 executes step S12 as in the first embodiment of the present invention, and requests the data transmission unit 21 to transmit dummy data. (Step S12). However, in this embodiment, the dummy data transmission control unit 22 requests transmission of dummy data whose size is s or more.

次に、ダミーデータ送信制御部22は、所定期間だけ待機する(ステップS13)。   Next, the dummy data transmission control unit 22 waits for a predetermined period (step S13).

そして、ダミーデータ送信制御部22の動作はステップS141に戻る。   Then, the operation of the dummy data transmission control unit 22 returns to step S141.

以上で、マスタサーバ20のダミーデータ送信制御部22の動作の説明を終了する。   Above, description of operation | movement of the dummy data transmission control part 22 of the master server 20 is complete | finished.

次に、スレーブサーバ60の動作を図12に示す。   Next, the operation of the slave server 60 is shown in FIG.

図12では、まず、データ受信部61は、マスタサーバ20からデータを受信する(ステップS41でYes)。   In FIG. 12, first, the data receiving unit 61 receives data from the master server 20 (Yes in step S41).

ここで、受信したデータが更新ログである場合(ステップS42で「更新ログ」)、データ受信部61は、その更新ログを用いて、複製データ記憶部62の複製データを更新する(ステップS43)。   If the received data is an update log (“update log” in step S42), the data receiving unit 61 updates the replicated data in the replicated data storage unit 62 using the update log (step S43). .

一方、受信したデータがダミーデータである場合(ステップS42で「ダミーデータ」)、データ受信部61は、このダミーデータを破棄する(ステップS44)。   On the other hand, when the received data is dummy data (“dummy data” in step S42), the data receiving unit 61 discards the dummy data (step S44).

そして、データ受信部61の動作はステップS41に戻る。   Then, the operation of the data receiving unit 61 returns to step S41.

以上で、データ受信部61の動作の説明を終了する。   Above, description of operation | movement of the data receiver 61 is complete | finished.

次に、本発明の第2の実施の形態の効果について述べる。   Next, the effect of the second exemplary embodiment of the present invention will be described.

本発明の第2の実施の形態としてのメモリデータベースシステムは、マスタサーバからスレーブサーバに対して断続的に更新ログの転送が行われる場合であっても、輻輳ウィンドウサイズが所定サイズ以下になることを十分に防ぐことができる。   In the memory database system according to the second embodiment of the present invention, even when the update log is intermittently transferred from the master server to the slave server, the congestion window size becomes a predetermined size or less. Can be sufficiently prevented.

その理由は、データ送信部が、所定のサイズs以上の更新ログをスレーブサーバに送信したときに送信済フラグをオンに設定し、ダミーデータ送信制御部が、所定期間が経過する度に送信済フラグをチェックするからである。そして、ダミーデータ送信制御部が、送信済フラグがオンであればオフにリセットし、送信済フラグがオフであれば、サイズがs以上のダミーデータを、データ送信部を通してスレーブサーバに送信するよう制御するからである。また、所定期間として、更新ログを送信する通信コネクションにおいてマスタサーバからスレーブサーバへの最近の通信からの経過時間について、輻輳ウィンドウサイズを縮小するよう定められた長さに基づく期間が用いられるからである。   The reason is that when the data transmission unit transmits an update log of a predetermined size s or more to the slave server, the transmission flag is set to ON, and the dummy data transmission control unit has been transmitted every time the predetermined period elapses. This is because the flag is checked. 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. In addition, as the predetermined period, a period based on a length determined to reduce the congestion window size is used for the elapsed time from the recent communication from the master server to the slave server in the communication connection for transmitting the update log. is there.

これにより、本実施の形態は、マスタサーバおよびスレーブサーバ間で更新ログ転送による通信が発生していない間も、長くても、所定期間として定められた時間の2倍未満の間隔で、サイズs以上のダミーデータを送信することになる。したがって、本実施の形態は、輻輳ウィンドウサイズがs以下になる状態を回避することができる。したがって、本実施の形態は、ある期間マスタサーバからの更新ログの転送がなかった後にスレーブサーバに更新ログを転送する場合であっても、通信速度を極端に低下させない。その結果、本実施の形態は、高可用性および高速なレスポンスが同時に求められるようなオンライントランザクションシステムを構成するメモリデータベースシステムにおいて、常に高速なレプリケーション処理を行うことができる。   As a result, 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. As a result, 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.

(第3の実施の形態)
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。本実施の形態では、本発明の第2の実施の形態と同様に、本発明の情報処理システムをメモリデータベースシステムに適用した例について説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1および第2の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
(Third embodiment)
Next, a third embodiment of the present invention will be described in detail with reference to the drawings. In the present embodiment, as in the second embodiment of the present invention, an example in which the information processing system of the present invention is applied to a memory database system will be described. Note that, in each drawing referred to in the description of the present embodiment, the same configurations and steps that operate in the same manner as in the first and second embodiments of the present invention are denoted by the same reference numerals, and the present embodiment. The detailed description in is omitted.

まず、本発明の第3の実施の形態としてのメモリデータベースシステム3の構成を図13に示す。図13において、メモリデータベースシステム3は、マスタサーバ30と、n(nは1以上の整数)個のスレーブサーバ60(60_1〜60_n)とを備える。マスタサーバ30および各スレーブサーバ60は、それぞれネットワークを介して通信可能に接続されている。   First, FIG. 13 shows a configuration of a memory database system 3 as a third embodiment of the present invention. In FIG. 13, 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.

次に、メモリデータベースシステム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によって構成される。   Next, FIG. 14 shows functional blocks of each device constituting the memory database system 3. In FIG. 14, 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. The difference is that n dummy data transmission control units 32 (32_1 to 32_n), a predetermined period calculation unit 35, and 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. Here, 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. In this case, 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.

n個のスレーブサーバ60のそれぞれは、本発明の第2の実施の形態におけるスレーブサーバ60と同様に構成される。   Each of the n slave servers 60 is configured in the same manner as the slave server 60 in the second embodiment of the present invention.

次に、マスタサーバ30の各機能ブロックの詳細について説明する。   Next, details of each functional block of the master server 30 will be described.

データ送信部31_i(i=1〜n)は、スレーブサーバ60_iに対応付けられる。また、データ送信部31_iは、対応するスレーブサーバ60_iに対して、更新ログまたはダミーデータを送信する。具体的には、データ送信部31_iは、対応するスレーブサーバ60_iとの間でTCPコネクションを保持して通信を行う。また、データ送信部31_iは、対応するスレーブサーバ60_iに関する送信済フラグを保持する。つまり、マスタサーバ30において、n個の送信済フラグがスレーブサーバ60_i毎に保持されることになる。   The data transmission unit 31_i (i = 1 to n) is associated with the slave server 60_i. 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.

詳細には、データ送信部31_iは、更新ログの送信要求をアプリケーション部24から受信すると、対応するスレーブサーバ60_iに対して更新ログを、TCPコネクションを通して送信する。このとき、データ送信部31_iは、送信した更新ログのサイズがs以上であれば、対応するスレーブサーバ60_iに関する送信済フラグをオンに設定して保持する。   Specifically, when receiving a transmission request for an update log from the application unit 24, the data transmission unit 31_i transmits the update log to the corresponding slave server 60_i through a 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.

ここで、サイズsは、次式(1)で算出される値であってもよい。   Here, the size s may be a value calculated by the following equation (1).

s = 2 × MSS・・・(1)
なお、MSS(Maximum Segment Size)は、TCPにおいて1セグメントで転送可能なデータの最大サイズを表し、次式(2)で算出される。
s = 2 × MSS (1)
MSS (Maximum Segment Size) represents the maximum size of data that can be transferred in one segment in TCP, and is calculated by the following equation (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)を満たすように設定されることが望ましい。
MSS = MTU-40 (2)
Here, the MTU (Maximum Transmission Unit) indicates the maximum size of data that can be transmitted in one transfer. 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).

また、データ送信部31_iは、後述のダミーデータ送信制御部32_iからの要求に応じて、スレーブサーバ60_iに対してサイズs以上のダミーデータを送信する。   Further, 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.

所定期間算出部35は、所定期間tを、次式(3)を用いて決定し、ダミーデータ送信制御部32_1〜32_nにそれぞれ通知する。通知される所定期間tは、各ダミーデータ送信制御部32_iによって、送信済フラグをチェックする間隔として用いられる。   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.

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)を満たすように設定されることが望ましい。
t = RTO × α (0 <α <0.5) (3)
Here, RTO represents a retransmission timeout time in TCP communication. In TCP, if no communication has occurred for an RTO time or longer, a slow start starts in the next communication. Therefore, 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).

開始制御部36は、ダミーデータ送信制御部32_1〜32_nを、それぞれ異なるタイミングで起動する。具体的には、例えば、開始制御部36は、次式(4)に基づき算出した起動間隔T毎に、ダミーデータ送信制御部32_1〜32_nを順次起動してもよい。   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).

T = t ÷ n・・・(4)
これにより、n個のダミーデータ送信制御部32_iは、開始制御部36によって順次起動され、互いに異なるタイミングで所定期間t毎に送信済フラグの内容に応じた処理を実行する。具体的には、ダミーデータ送信制御部32_iは、起動された後、所定期間t毎に、対応するスレーブサーバ60_iに関する送信済フラグをチェックする。そして、ダミーデータ送信制御部32_iは、該当する送信済フラグがオフである場合に、サイズs以上のダミーデータをスレーブサーバ60_iに対して送信するよう、データ送信部31_iを制御する。また、ダミーデータ送信制御部32_iは、該当する送信済フラグがオンである場合に、その送信済フラグをオフに設定する。
T = t ÷ n (4)
As a result, the n dummy data transmission control units 32_i are sequentially activated by the start control unit 36, and execute processing corresponding to the content of the transmitted flag every predetermined period t at different timings. Specifically, after being activated, the dummy data transmission control unit 32_i checks the transmitted flag regarding the corresponding slave server 60_i every predetermined period t. Then, the dummy data transmission control unit 32_i controls the data transmission unit 31_i to transmit dummy data of size s or more to the slave server 60_i when the corresponding transmitted flag is off. Further, when the corresponding transmitted flag is on, the dummy data transmission control unit 32_i sets the transmitted flag to off.

以上のように構成されたメモリデータベースシステム3の動作について、図面を参照して説明する。   The operation of the memory database system 3 configured as described above will be described with reference to the drawings.

まず、マスタサーバ30におけるアプリケーション部24の動作について説明する。アプリケーション部24の動作は、図9を参照して説明した本発明の第2の実施の形態におけるアプリケーション部24の動作と略同様である。ただし、本実施の形態では、ステップS33において、アプリケーション部24は、データ送信部31_1〜31_nに対して、それぞれ更新ログの送信を要求する。   First, the operation of the application unit 24 in the master server 30 will be described. The operation of the application unit 24 is substantially the same as the operation of the application unit 24 in the second embodiment of the present invention described with reference to FIG. However, in the present embodiment, in step S33, the application unit 24 requests the data transmission units 31_1 to 31_n to transmit update logs.

次に、マスタサーバ30におけるデータ送信部31_iの動作を図15に示す。なお、動作の開始時点では、それぞれのスレーブサーバ60_iに関する送信済フラグはオフに設定されているものとする。また、データ送信部31_iは、上述の式(1)に基づき所定のサイズsの値を算出済みであるものとする。   Next, an operation of the data transmission unit 31_i in the master server 30 is illustrated 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).

図15では、まず、データ送信部31_iは、データの送信要求を受信する(ステップS51でYes)。   In FIG. 15, first, the data transmission unit 31_i receives a data transmission request (Yes in step S51).

次に、データ送信部31_iは、受信した送信要求が、アプリケーション部24からの更新ログの送信要求であれば(ステップS52で「更新ログ」)、更新ログを、スレーブサーバ60_iに対して送信する(ステップS53)。   Next, if the received transmission request is an update log transmission request from the application unit 24 (“update log” in step S52), the data transmission unit 31_i transmits the update log to the slave server 60_i. (Step S53).

次に、データ送信部31_iは、ステップS53で送信した更新ログのサイズが、s以上であるか否かを判断する(ステップS54)。   Next, 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).

ここで、サイズがs以上であった場合、データ送信部31_iは、スレーブサーバ60_iに関する送信済フラグをオンに設定して保持する(ステップS55)。そして、データ送信部31_iの動作はステップS51に戻る。   Here, when the size is equal to or larger than s, the data transmission unit 31_i sets the transmission completion flag related to the slave server 60_i to ON and holds (step S55). Then, the operation of the data transmission unit 31_i returns to Step S51.

一方、サイズがs未満であった場合、データ送信部31_iの動作はステップS51に戻る。   On the other hand, when the size is less than s, the operation of the data transmission unit 31_i returns to Step S51.

また、ステップS51で受信した送信要求が、ダミーデータの送信要求であれば(ステップS52で「ダミーデータ」)、データ送信部31_iは、サイズがs以上のダミーデータを、対応するスレーブサーバ60_iに対して送信する(ステップS56)。そして、データ送信部31_iの動作はステップ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.

以上で、データ送信部31_iの動作の説明を終了する。   Above, description of operation | movement of the data transmission part 31_i is complete | finished.

次に、マスタサーバ30における所定期間算出部35の動作を図16に示す。例えば、所定期間算出部35は、この動作を、システム起動時等に行ってもよい。また、前述のように、RTO時間がネットワークの負荷状況に応じて変化するシステムの場合、所定期間算出部35は、この動作を、任意のタイミング毎に繰り返し実行してもよい。   Next, the operation of the predetermined period calculation unit 35 in the master server 30 is shown in FIG. For example, 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.

図16では、所定期間算出部35は、OSからRTO時間を取得する(ステップS61)。   In FIG. 16, the predetermined period calculation unit 35 acquires the RTO time from the OS (step S61).

次に、所定期間算出部35は、式(3)を用いて所定期間tを算出する(ステップS62)。   Next, the predetermined period calculation unit 35 calculates the predetermined period t using Expression (3) (step S62).

次に、所定期間算出部35は、ステップS62で算出したtの値を、n個のダミーデータ送信制御部32_iにそれぞれ通知する(ステップS63)。   Next, the predetermined period calculation unit 35 notifies the value of t calculated in step S62 to each of the n dummy data transmission control units 32_i (step S63).

以上で、所定期間算出部35の動作の説明を終了する。   Above, description of operation | movement of the predetermined period calculation part 35 is complete | finished.

次に、マスタサーバ30における開始制御部36の動作を図17に示す。なお、開始制御部36は、上述の式(4)を用いて、既に起動間隔Tを算出済みであるものとする。   Next, the operation of the start control unit 36 in the master server 30 is shown in FIG. It is assumed that the start control unit 36 has already calculated the activation interval T using the above equation (4).

図17では、まず、開始制御部36は、スレーブサーバ番号iを1に初期化する(ステップS71)。   In FIG. 17, first, the start control unit 36 initializes the slave server number i to 1 (step S71).

次に、開始制御部36は、起動間隔Tだけ待機する(ステップS72)。   Next, the start control unit 36 waits for the activation interval T (step S72).

次に、開始制御部36は、i番目のダミーデータ送信制御部32_iを起動する(ステップS73)。   Next, the start control unit 36 activates the i-th dummy data transmission control unit 32_i (step S73).

次に、開始制御部36は、iがスレーブサーバ60の個数nより小さければ(ステップS74でYes)、iに1を加算し(ステップS75)、ステップS72からの動作を繰り返す。   Next, if i is smaller than the number n of slave servers 60 (Yes in Step S74), the start control unit 36 adds 1 to i (Step S75), and repeats the operation from Step S72.

一方、iがn以上になった場合(ステップS74でNo)、開始制御部36は、動作を終了する。   On the other hand, when i becomes n or more (No in step S74), the start control unit 36 ends the operation.

以上で、開始制御部36の動作の説明を終了する。   Above, description of operation | movement of the start control part 36 is complete | finished.

次に、マスタサーバ30におけるダミーデータ送信制御部32_iの動作を図18に示す。なお、ダミーデータ送信制御部32_iは、所定期間算出部35から、所定期間tを既に通知されているものとする。また、ダミーデータ送信制御部32_iは、開始制御部36によって起動されると、以下の動作を開始するものとする。   Next, 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.

図18では、まず、ダミーデータ送信制御部32_iは、対応するスレーブサーバ60_iに関する送信済フラグの内容をチェックする(ステップS81)。   In FIG. 18, first, the dummy data transmission control unit 32_i checks the content of the transmitted flag regarding the corresponding slave server 60_i (step S81).

ここで、送信済フラグがオンである場合、ダミーデータ送信制御部32_iは、送信済フラグをオフに設定(リセット)する(ステップS82)。   Here, when the transmitted flag is on, the dummy data transmission control unit 32_i sets (resets) the transmitted flag to off (step S82).

一方、送信済フラグがオフである場合、ダミーデータ送信制御部32_iは、サイズがs以上のダミーデータをスレーブサーバ60_iに送信するよう、データ送信部31_iに要求する(ステップS83)。   On the other hand, when the transmitted flag is off, 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).

次に、ダミーデータ送信制御部32_iは、所定期間tだけ待機する(ステップS84)。   Next, the dummy data transmission control unit 32_i waits for a predetermined period t (step S84).

そして、ダミーデータ送信制御部32_iの動作はステップS81に戻る。   Then, the operation of the dummy data transmission control unit 32_i returns to Step S81.

以上で、ダミーデータ送信制御部32_iの動作の説明を終了する。   Above, description of operation | movement of the dummy data transmission control part 32_i is complete | finished.

なお、n個のスレーブサーバ60_1〜60_nのそれぞれの動作については、図12を参照して説明した本発明の第2の実施の形態におけるスレーブサーバ60の動作と同様であるため、本実施の形態における説明を省略する。   Note that the operation of each of the n slave servers 60_1 to 60_n is the same as the operation of the slave server 60 in the second embodiment of the present invention described with reference to FIG. The description in is omitted.

次に、本発明の第3の実施の形態の効果について述べる。   Next, effects of the third exemplary embodiment of the present invention will be described.

本発明の第3の実施の形態としてのメモリデータベースシステムは、マスタサーバからスレーブサーバに対して断続的に更新ログの転送が行われる場合であっても、輻輳ウィンドウサイズが所定サイズ以下になることをさらに十分に防ぐことができる。   In the memory database system according to the third embodiment of the present invention, even when the update log is intermittently transferred from the master server to the slave server, the congestion window size becomes a predetermined size or less. Can be sufficiently prevented.

その理由は、データ送信部が、所定のサイズs以上の更新ログをスレーブサーバに送信したときに送信済フラグをオンに設定するからである。また、ダミーデータ送信制御部が、RTO時間にα(0<α<0.5)を乗じて求められる所定期間t毎に送信済フラグをチェックするからである。そして、ダミーデータ送信制御部が、送信済フラグがオンであればオフにリセットし、送信済フラグがオフであれば、サイズがs以上のダミーデータを、データ送信部を通してスレーブサーバに送信するよう制御するからである。   The reason is that the data transmission unit sets the transmitted flag to ON when an update log of a predetermined size s or larger 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.

これにより、本実施の形態は、更新ログ転送による通信が発生していない間も、サイズs以上のダミーデータを、長くてもRTO時間以内に送信することができる。したがって、本実施の形態は、スロースタートを開始させてしまうことなく、輻輳ウィンドウサイズをs以上に保つ。このように、本実施の形態は、一旦拡大した輻輳ウィンドウサイズが所定のサイズs以下に縮小することを防ぐことにより、スロースタートを回避することができる。したがって、本実施の形態は、ある期間更新ログの転送がなかった後にスレーブサーバに更新ログを転送する場合であっても、通信遅延を解消することが可能である。このように、本実施の形態は、高可用性および高速なレスポンスが同時に求められるようなオンライントランザクションシステムを構成するメモリデータベースシステムにおいて、常に高速なレプリケーション処理を行うことができる。   As a result, 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.

さらに、本発明の第3の実施の形態としてのメモリデータベースシステムは、マスタサーバからスレーブサーバに対する更新ログの転送において、遅延ACKを発生させることがなく、より高速なデータ転送を可能とする。   Furthermore, the memory database system according to the third embodiment of the present invention 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.

その理由は、データ送信部が、ダミーデータのサイズをs以上とし、sの値に、TCPにおいて1セグメントで転送可能なデータの最大サイズ(MSS)の2倍を適用するからである。ここで、TCPでは、受信側は、サイズがMSSのセグメントを2つ受信すると即座にACKを返す。したがって、本実施の形態は、輻輳ウィンドウサイズをMSSの2倍以上に保つことにより、遅延ACKにより発生する通信遅延を抑えることができる。   The reason is that the data transmission unit sets the size of the dummy data to s or more, and applies twice the maximum size (MSS) of data that can be transferred in one segment in TCP to the value of s. Here, in TCP, the receiving side immediately returns ACK when it receives two segments of size MSS. Therefore, this embodiment can suppress the communication delay caused by the delayed ACK by keeping the congestion window size at least twice the MSS.

また、本発明の第3の実施の形態としてのメモリデータベースシステムは、レプリケーション実行中におけるダミーデータの無用な転送による帯域の圧迫を避けることができる。   Further, 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.

その理由は、データ転送部が、サイズs以上の更新ログを送信した場合には送信済フラグをオンにし、ダミーデータ転送制御部が、送信済フラグがオンであればオフにリセットしてダミーデータの送信を行わないからである。   The reason is that when the data transfer unit transmits an update log of size s or more, the transmitted flag is turned on, and when the transmitted flag is on, the dummy data transfer control unit resets it to off and sets dummy data. Is not transmitted.

これにより、本実施の形態は、前回の通信からRTO時間内に既にサイズs以上の更新ログの転送が行われていればダミーデータの送信を省略することができる。したがって、本実施の形態は、レプリケーション実行中に無用なダミーデータを転送することがない。   As a result, according to the present embodiment, 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.

また、本発明の第3の実施の形態としてのメモリデータベースシステムは、複数のスレーブサーバに対するダミーデータの転送によりCPUの負荷およびネットワーク負荷を一時的に高騰させることがない。   The memory database system according to 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.

その理由は、データ送信部が、複数のスレーブサーバに対してそれぞれ異なるコネクションを介して更新ログまたはダミーデータを送信し、送信済みフラグをスレーブサーバ毎に保持するからである。また、ダミーデータ送信制御部が、各スレーブサーバに関して送信済フラグの値に応じた処理を、スレーブサーバ毎に異なるタイミングで所定期間t毎に実行するからである。例えば、起動制御部が、所定期間tをスレーブサーバ数nで除した起動間隔T毎に、n個のダミーデータ送信制御部を順次起動していくからである。   The reason is that the data transmission unit transmits the update log or dummy data to the plurality of slave servers via different connections, and holds the transmitted flag for each slave server. In addition, 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. For example, 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.

これにより、本実施の形態は、複数のスレーブサーバに対するダミーデータの送信タイミングを分散させることができ、CPUの負荷およびネットワークの負荷を平準化する。その結果、本実施の形態は、ダミーデータの送信によるアプリケーション部またはその他重要プロセスの動作への影響を抑えることができる。   As a result, the present embodiment can distribute the transmission timing of dummy data to a plurality of slave servers, and equalizes the load on the CPU and the load on the network. As a result, this embodiment can suppress the influence on the operation of the application unit or other important processes due to the transmission of dummy data.

(第3の実施の形態の他の態様)
次に、本発明の第3の実施の形態の他の態様について説明する。
(Other aspects of the third embodiment)
Next, another aspect of the third embodiment of the present invention will be described.

メモリデータベースシステム3は、図19に示すように、マスタサーバ30において、n個のデータ送信部31_iの代わりに1つのデータ送信部31を有し、開始制御部36を省略するように構成することも可能である。   As shown in FIG. 19, 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.

この場合、データ送信部31は、図15に示した動作の代わりに、図20に示すよう動作する。   In this case, the data transmission unit 31 operates as shown in FIG. 20 instead of the operation shown in FIG.

図20では、まず、データ送信部31は、データの送信要求を受信する(ステップS51でYes)。   In FIG. 20, first, the data transmission unit 31 receives a data transmission request (Yes in step S51).

次に、データ送信部31は、受信した送信要求が、アプリケーション部24からの更新ログの送信要求であれば(ステップS52で「更新ログ」)、更新ログを、スレーブサーバ60_1〜60_nに対してそれぞれ送信する(ステップS93)。   Next, if the received transmission request is an update log transmission request from the application unit 24 (“update log” in step S52), the data transmission unit 31 sends the update log to the slave servers 60_1 to 60_n. Each is transmitted (step S93).

次に、データ送信部31は、ステップS93で送信した更新ログのサイズが、s以上であった場合(ステップS54でYes)、スレーブサーバ60_1〜60_nに関するn個の送信済フラグをそれぞれオンに設定して保持する(ステップS95)。そして、データ送信部31の動作はステップS51に戻る。   Next, when the size of the update log transmitted in step S93 is greater than or equal to s (Yes in step S54), the data transmission unit 31 sets each of the n transmitted flags related to 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.

一方、サイズがs未満であった場合、データ送信部31の動作はステップS51に戻る。   On the other hand, when the size is less than s, the operation of the data transmission unit 31 returns to step S51.

また、ステップS51で受信した送信要求が、いずれかのスレーブサーバ60に対するダミーデータの送信要求であれば(ステップS52で「ダミーデータ」)、データ送信部31は、サイズがs以上のダミーデータを、対象のスレーブサーバ60に対して送信する(ステップS96)。そして、データ送信部31の動作はステップS51に戻る。   If the transmission request received in step S51 is a transmission request for dummy data to one of the slave servers 60 (“dummy data” in step S52), the data transmission unit 31 stores dummy data whose size is s or more. And transmitted to the target slave server 60 (step S96). Then, the operation of the data transmission unit 31 returns to step S51.

また、この場合、ダミーデータ送信制御部32_iは、図18に示した動作の代わりに、図21に示すように動作する。   In this case, the dummy data transmission control unit 32_i operates as illustrated in FIG. 21 instead of the operation illustrated in FIG.

図21では、まず、ダミーデータ送信制御部32_iは、所定期間算出部35から所定期間tを通知されると、次式(5)で算出される起動待機時間T1だけ動作開始を待つ(ステップS101)。   In FIG. 21, first, when notified of the predetermined period t from the predetermined period calculation unit 35, 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は、何番目のダミーデータ送信制御部32であるかを表す番号である。また、nは、スレーブサーバ60の個数である。また、tは、所定期間算出部35から通知された所定期間である。
T1 = {(i−1) ÷ n} × t (5)
Here, i is a number indicating the number of dummy data transmission control unit 32. N is the number of slave servers 60. In addition, t is a predetermined period notified from the predetermined period calculation unit 35.

以降、ダミーデータ送信制御部32_iは、ステップS81〜ステップS84まで図18を用いて説明したように動作し、ステップS81の動作から繰り返す。   Thereafter, the dummy data transmission control unit 32_i operates as described with reference to FIG. 18 from step S81 to step S84, and repeats the operation from step S81.

これにより、マスタサーバ30は、開始制御部36を省略した構成でも、各ダミーデータ送信制御部32_iによるダミーデータの送信タイミングを分散させることができる。   Thereby, the master server 30 can distribute the transmission timing of the dummy data by each dummy data transmission control unit 32_i even in the configuration in which the start control unit 36 is omitted.

このように構成することにより、本発明の第3の実施の形態の他の態様は、データ送信部、ダミーデータ送信制御部、開始制御部を各々スレッドで構成することを想定した場合に、スレッドの種類および数を削減でき、CPU負荷をより小さくすることができる。   By configuring in this way, 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.

(第4の実施の形態)
次に、本発明の第4の実施の形態について図面を参照して詳細に説明する。本実施の形態では、本発明の第2および第3の実施の形態と同様に、本発明の情報処理システムをメモリデータベースシステムに適用した例について説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1〜第3の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
(Fourth embodiment)
Next, a fourth embodiment of the present invention will be described in detail with reference to the drawings. In the present embodiment, as in the second and third embodiments of the present invention, an example in which the information processing system of the present invention is applied to a memory database system will be described. In each drawing referred to in the description of the present embodiment, the same reference numerals are given to the same configuration and steps that operate in the same manner as in the first to third embodiments of the present invention. The detailed description in is omitted.

まず、本発明の第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を備える点が異なる。   First, FIG. 22 shows the configuration of the memory database system 4 as the fourth embodiment of the present invention. In FIG. 22, the memory database system 4 is different from the memory database system 3 according to the third embodiment of the present invention in that a master server 40 is replaced with a master server 40 and n slave servers 60 are replaced with n. The difference is that the slave servers 70 (70_1 to 70_n) are provided. The master server 40 is different from the master server 30 according to the third embodiment of the present invention in that the master server 40 includes n data transmission units 41_i instead of the n data transmission units 31_i. Also, each of the slave servers 70 differs from the slave server 60 in the second and third embodiments of the present invention in that a data receiving unit 71 is provided instead of the data receiving unit 61.

マスタサーバ40のデータ送信部41_iは、本発明の第3の実施の形態におけるデータ送信部31_iに対して、更新ログの送信要求およびダミーデータの送信要求を略同時に受けた場合の処理が異なる。具体的には、これらの送信要求を略同時に受けた場合、データ送信部41_iは、更新ログのサイズがs以上であれば、この更新ログをスレーブサーバ70_iに送信し、ダミーデータの送信を省略する。また、これらの送信要求を略同時に受けた場合、データ送信部41_iは、更新ログのサイズがs未満であれば、この更新ログにダミーデータを付加してサイズs以上にしてから、スレーブサーバ70_iに対して送信する。   The data transmission unit 41_i of the master server 40 differs from the data transmission unit 31_i in the third embodiment of the present invention in the process when receiving an update log transmission request and 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.

なお、更新ログの送信要求およびダミーデータの送信要求を略同時に受けるとは、例えば、データ送信部41_iが、更新ログの送信要求を受けた後、更新ログの送信処理を開始する前に、ダミーデータの送信要求を受けた場合であってもよい。また、更新ログの送信要求およびダミーデータの送信要求を略同時に受けるとは、例えば、データ送信部41_iが、ダミーデータの送信要求を受けた後、ダミーデータの送信処理を開始する前に、更新ログの送信要求を受けた場合であってもよい。   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.

なお、更新ログの送信要求およびダミーデータの送信要求を異なるタイミングで受けた場合には、データ送信部41_iは、本発明の第3の実施の形態におけるデータ送信部31_iと同様に動作するよう構成される。   When the update log transmission request and the dummy data transmission request are received at different timings, 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.

スレーブサーバ70のデータ受信部71は、マスタサーバ40から、ダミーデータが付加された更新ログを受信すると、ダミーデータの部分を破棄して残りの更新ログを得る。そして、データ受信部71は、得られた更新ログを用いて、複製データ記憶部62に記憶された複製データの更新を行う。   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.

なお、ダミーデータが付加されていない更新ログを受信した場合、および、ダミーデータのみを受信した場合には、データ受信部71は、本発明の第2および第3の実施の形態におけるデータ受信部61と同様に動作するよう構成される。   When an update log to which dummy data is not added is received and when only dummy data is received, the data receiving unit 71 is a data receiving unit according to the second and third embodiments of the present invention. 61 is configured to operate in the same manner as

以上のように構成されたメモリデータベースシステム4の動作について説明する。メモリデータベースシステム4の動作は、本発明の第3の実施の形態としてのメモリデータベースシステム3の動作と略同様である。ただし、マスタサーバ40におけるデータ送信部41_iの動作およびスレーブサーバ70におけるデータ受信部71の動作の詳細が異なる。   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. However, 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.

まず、データ送信部41_iの動作を図23に示す。   First, the operation of the data transmitter 41_i is shown in FIG.

図23において、まず、データ送信部41_iは、データの送信要求を受信する(ステップS111でYes)。   In FIG. 23, first, the data transmission unit 41_i receives a data transmission request (Yes in step S111).

次に、データ送信部41_iは、ステップS111で受信した送信要求が、アプリケーション部24からの更新ログの送信要求であるか、ダミーデータの送信要求であるかを判断する(ステップS112)。   Next, 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).

ここで、更新ログの送信要求であれば(ステップS112で「更新ログ」)、データ送信部41_iは、略同時にダミーデータの送信要求を受信しているか否かを判断する(ステップS113)。例えば、前述のように、データ送信部41_iは、この時点で、まだ処理を開始していないダミーデータの送信要求を既に受信していれば、略同時にダミーデータの送信要求を受信していると判断してもよい。   If it is an update log transmission request (“update log” in step S112), the data transmission unit 41_i determines whether or not dummy data transmission requests are received substantially simultaneously (step S113). For example, as described above, if the data transmission unit 41_i has received a transmission request for dummy data that has not yet started processing at this time, it has received a transmission request for dummy data substantially simultaneously. You may judge.

一方、ダミーデータの送信要求であれば(ステップS112で「ダミーデータ」)、データ送信部41_iは、略同時に更新ログの送信要求を受信しているか否かを判断する(ステップS114)。例えば、前述のように、データ送信部41_iは、この時点で、まだ処理を開始していない更新ログの送信要求を既に受信していれば、略同時に更新ログの送信要求を受信していると判断してもよい。   On the other hand, if the transmission request is dummy data (“dummy data” in step S112), the data transmission unit 41_i determines whether or not the update log transmission request is received 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.

ステップS113またはステップS114において、更新ログの送信要求およびダミーデータの送信要求を略同時に受信していると判断した場合、データ送信部41_iは、更新ログのサイズがs以上であるか否かを判断する(ステップS115)。   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).

ここで、更新ログのサイズがs未満である場合(ステップS115でNo)、データ送信部41_iは、全体のサイズがs以上になるよう更新ログにダミーデータを付加する(ステップS116)。   Here, when the size of the update log is less than s (No in step S115), the data transmission unit 41_i adds dummy data to the update log so that the overall size is s or more (step S116).

一方、更新ログのサイズがs以上であれば(ステップS115でYes)、データ送信部41_iの動作は、ステップS117に進む。   On the other hand, 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.

次に、データ送信部41_iは、更新ログをスレーブサーバ70_iに対して送信する(ステップS117)。ここで送信される更新ログは、ステップS116でダミーデータが付加された更新ログ、または、ステップS115でサイズがs以上あると判断された更新ログである。これにより、更新ログの送信要求およびダミーデータの送信要求を略同時に受信した場合に更新ログのサイズがs以上であれば、データ送信部41_iは、ダミーデータの送信を省略することになる。   Next, 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. As a result, when the update log transmission request and the dummy data transmission request are received substantially simultaneously, if the size of the update log is greater than or equal to s, the data transmission unit 41_i omits transmission of dummy data.

次に、データ送信部41_iは、このスレーブサーバ70_iに関する送信済フラグをオンに設定して保持する(ステップS118)。   Next, the data transmitting unit 41_i sets the transmitted flag regarding the slave server 70_i to ON and holds it (step S118).

一方、ステップS112で更新ログの送信要求を受信したと判断され、ステップS113で略同時にダミーデータの送信要求を受信していないと判断された場合について説明する。この場合、データ送信部41_iは、ステップS53〜S55まで、本発明の第3の実施の形態におけるデータ送信部31_iと同様に動作する。   On the other hand, a case will be described in which it is determined in step S112 that an update log transmission request has been received, and in step S113 that it is determined that dummy data transmission requests have not been received substantially simultaneously. In this case, 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.

また、ステップS112でダミーデータの送信要求を受信したと判断され、ステップS114で略同時に更新ログの送信要求を受信していないと判断された場合について説明する。この場合、データ送信部41_iは、ステップS56を、本発明の第3の実施の形態におけるデータ送信部31_iと同様に実行する。   A case will be described in which it is determined in step S112 that a dummy data transmission request has been received, and in step S114 that it has been determined that update log transmission requests have not been received substantially simultaneously. In this case, the data transmission unit 41_i executes step S56 in the same manner as the data transmission unit 31_i in the third embodiment of the present invention.

そして、データ送信部41_iの動作はステップS111に戻る。   Then, the operation of the data transmission unit 41_i returns to Step S111.

以上で、データ送信部41_iの動作の説明を終了する。   Above, description of operation | movement of the data transmission part 41_i is complete | finished.

次に、n個のスレーブサーバ70のそれぞれにおけるデータ受信部71の動作を図24に示す。   Next, the operation of the data reception unit 71 in each of the n slave servers 70 is shown in FIG.

図24では、まず、データ受信部71は、マスタサーバ40からデータを受信する(ステップS41でYes)。   In FIG. 24, first, the data receiving unit 71 receives data from the master server 40 (Yes in step S41).

次に、データ受信部71は、受信したデータが更新ログである場合(ステップS42で「更新ログ」)、その更新ログに、ダミーデータが付加されているか否かを判断する(ステップS123)。   Next, when the received data is an update log (“update log” in step S42), the data receiving unit 71 determines whether dummy data is added to the update log (step S123).

ここで、ダミーデータが付加されている場合、データ受信部71は、ダミーデータの部分を分離して破棄する(ステップS124)。   If dummy data is added, the data receiving unit 71 separates and discards the dummy data portion (step S124).

そして、データ受信部71は、更新ログを用いて、複製データ記憶部62の複製データを更新する(ステップS43)。   Then, the data receiving unit 71 updates the copy data in the copy data storage unit 62 using the update log (step S43).

一方、ステップS123において、ダミーデータが付加されていないと判断した場合、データ受信部71は、ステップS41で受信した更新ログを用いて、ステップS43を実行する。   On the other hand, 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.

また、受信したデータがダミーデータである場合(ステップS42で「ダミーデータ」)、データ受信部71は、このダミーデータを破棄する(ステップS44)。   If the received data is dummy data (“dummy data” in step S42), the data receiving unit 71 discards the dummy data (step S44).

そして、データ受信部71の動作はステップS41に戻る。   Then, the operation of the data receiving unit 71 returns to step S41.

以上で、データ受信部71の動作の説明を終了する。   Above, description of operation | movement of the data receiver 71 is complete | finished.

次に、本発明の第4の実施の形態の効果について述べる。   Next, effects of the fourth exemplary embodiment of the present invention will be described.

本発明の第4の実施の形態としてのメモリデータベースシステムは、マスタサーバからスレーブサーバに対して断続的に更新ログの転送が行われる際に、より効率よく輻輳ウィンドウサイズの縮小を防ぐことができる。   The memory database system according to the fourth embodiment of the present invention 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. .

その理由は、マスタサーバのデータ送信部が、更新ログの送信要求およびダミーデータの送信要求を略同時に受けた場合に、次のように動作するからである。すなわち、この場合、データ送信部は、更新ログのサイズがs以上であれば、スレーブサーバに対してダミーデータの送信を省略して更新ログを送信する。また、データ送信部は、更新ログのサイズがs未満であれば、サイズがs以上になるよう更新ログにダミーデータを付加してスレーブサーバに対して送信するからである。これにより、本実施の形態は、本発明の第2または第3の実施の形態に対して、送信するダミーデータの量を減らしながら同様の効果を奏することができる。したがって、本実施の形態は、CPU負荷およびネットワーク負荷をより小さくすることができ、より効率的に通信速度の低下を防止する。   The reason is that 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. Thereby, 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.

なお、上述した本発明の第2から第4の実施の形態において、本発明の情報処理しシステムをメモリデータベースシステムに適用した例を中心に説明した。この他、各実施の形態は、マスタサーバおよびスレーブサーバ間でレプリケーションを行うその他のデータベースシステムにも適用可能である。   In the above-described second to fourth embodiments of the present invention, the description has been made centering on an example in which the information processing system of the present invention is applied to a memory database system. In addition, each embodiment is applicable to other database systems that perform replication between a master server and a slave server.

また、上述した本発明の第2から第4の実施の形態において、ダミーデータのサイズまたはダミーデータが付加された更新ログのサイズをs(MSSの2倍)以上とする例を中心に記載した。ただし、各実施の形態において、これらのサイズはsにより近い値(さらには、sに等しい値)であることが望ましい。これにより、各実施の形態は、不必要に大きなサイズのダミーデータを送信することによるCPUの負荷およびネットワークの負荷を高くすることがない。   Further, in the second to fourth embodiments of the present invention described above, the example is described mainly in which the size of the dummy data or the size of the update log to which the dummy data is added is s (twice the MSS) or more. . However, in each embodiment, it is desirable that these sizes are values closer to s (and values equal to s). Thereby, each embodiment does not increase the load on the CPU and the network due to the transmission of dummy data of an unnecessarily large size.

また、上述した本発明の第2から第4の実施の形態において、所定条件として、s(MSSの2倍)以上であるという条件を適用する例を中心に説明した。なお、ここでいう所定条件は、送信済フラグをオンにするためにチェックする更新ログのサイズに関する所定条件、および、ダミーデータまたはダミーデータが付加された更新ログのサイズが満たすべき所定条件である。この他、各実施の形態において、所定条件は、その時点での輻輳ウィンドウサイズ以上であることであってもよい。その他、各実施の形態において、所定条件は、輻輳ウィンドウサイズの縮小をより十分に防止するためのデータサイズとして算出されるその他の値に基づく条件であってもよい。   In the second to fourth embodiments of the present invention described above, an example in which the condition that s (twice the MSS) or more is applied as the predetermined condition has been mainly described. The predetermined condition here is a predetermined condition related to the size of the update log to be checked to turn on the transmitted flag, and a predetermined condition to be satisfied by the size of the update log to which dummy data or dummy data is added. . In addition, in each embodiment, the predetermined condition may be that the congestion window size at that time or more. In addition, in each embodiment, the predetermined condition may be a condition based on another value calculated as a data size for more sufficiently preventing the congestion window size from being reduced.

また、上述した本発明の各実施の形態において、送信装置、受信装置、マスタサーバおよびスレーブサーバの各機能ブロックが、記憶装置またはROMに記憶されたコンピュータ・プログラムを実行するCPUによって実現される例を中心に説明した。この他、各装置の各機能ブロックの一部、全部、または、それらの組み合わせは、専用のハードウェアにより実現されていてもよい。   In each embodiment of the present invention described above, an example in which 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.

また、上述した本発明の各実施の形態において、送信装置、受信装置、マスタサーバおよびスレーブサーバの各機能ブロックは、複数の装置に分散されて実現されてもよい。   In each of the above-described embodiments of the present invention, 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.

また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した送信装置、受信装置、マスタサーバおよびスレーブサーバの各動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置(記憶媒体)に格納しておいてもよい。そして、係るコンピュータ・プログラムを当該CPUが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。   In each of the above-described embodiments of the present invention, 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. Then, the computer program may be read and executed by the CPU. In such a case, the present invention is constituted by the code of the computer program or a storage medium.

また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。   Moreover, each embodiment mentioned above can be implemented in combination as appropriate.

また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。   The present invention is not limited to the above-described embodiments, and can be implemented in various modes.

以上、上述した各実施の形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した各実施の形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。   The present invention has been described above using the above-described embodiments as exemplary examples. However, the present invention is not limited to the above-described embodiments. That is, the present invention can apply various modes that can be understood by those skilled in the art within the scope of the present invention.

この出願は、2013年11月5日に出願された日本出願特願2013−229313を基礎とする優先権を主張し、その開示の全てをここに取り込む。   This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2013-229313 for which it applied on November 5, 2013, and takes in those the indications of all here.

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 ネットワークインタフェース
DESCRIPTION OF SYMBOLS 1 Information processing system 10 Transmission apparatus 50 Reception apparatus 2, 3, 4 Memory database system 20, 30, 40 Master server 60, 70 Slave server 11, 21, 31, 41 Data transmission part 12, 22, 32 Dummy data transmission control part 23 Master Data Storage Unit 24 Application Unit 35 Predetermined Period Calculation Unit 36 Start Control Unit 51, 61, 71 Data Receiving Unit 62 Replicated Data Storage Unit 1001, 5001 CPU
1002, 5002 RAM
1003, 5003 ROM
1004, 5004 Storage device 1005, 5005 Network interface

Claims (18)

アプリケーションから送信を要求される対象データ、または、ダミーデータを受信装置に対して送信するデータ送信手段と、
所定期間の間に、所定条件を満たすサイズの前記対象データが前記受信装置に対して送信されていない場合に、前記所定条件を満たすサイズの前記ダミーデータを送信するよう前記データ送信手段を制御するダミーデータ送信制御手段と、
を備えた送信装置。
Data transmission means for transmitting target data requested to be transmitted from the application or dummy data to the receiving device;
When the target data having a size satisfying a predetermined condition is not transmitted to the receiving apparatus during a predetermined period, the data transmitting unit is controlled to transmit the dummy data having a size satisfying the predetermined condition. Dummy data transmission control means;
A transmission device comprising:
前記データ送信手段は、複数の前記受信装置に対してそれぞれ異なるコネクションを介して前記対象データまたは前記ダミーデータを送信し、
前記ダミーデータ送信制御手段は、前記各受信装置に対して前記所定条件を満たすサイズの前記対象データが前記所定期間の間に送信されたか否かに応じた処理を、前記受信装置毎に異なるタイミングで実行することを特徴とする請求項1に記載の送信装置。
The data transmission means transmits the target data or the dummy data via different connections to the plurality of receiving devices,
The dummy data transmission control means performs a process according to whether or not the target data having a size satisfying the predetermined condition is transmitted to each receiving apparatus during the predetermined period, at a different timing for each receiving apparatus. The transmission apparatus according to claim 1, wherein
前記データ送信手段は、前記対象データの送信要求および前記ダミーデータの送信要求を略同時に受けた場合、前記対象データのサイズが前記所定条件を満たしていれば該対象データを送信して前記ダミーデータの送信を省略し、前記対象データのサイズが前記所定条件を満たしていなければ前記所定条件を満たすようダミーデータを付加した対象データを送信することを特徴とする請求項1または請求項2に記載の送信装置。   When the data transmission means receives the transmission request for the target data and the transmission request for the dummy data substantially simultaneously, if the size of the target data satisfies the predetermined condition, the data transmission means transmits the target data and transmits the dummy data The target data to which dummy data is added so as to satisfy the predetermined condition is transmitted if the size of the target data does not satisfy the predetermined condition. Transmitter. 前記ダミーデータ送信制御手段は、前記所定期間として、前記対象データを送信するための通信コネクションにおいて送信装置から受信装置に対する最近の通信からの経過時間について定められた長さであって、経過時間がこの長さに達すると輻輳ウィンドウサイズが縮小されることが規定された長さに基づく期間を適用することを特徴とする請求項1から請求項3のいずれか1つに記載の送信装置。   The dummy data transmission control means has a length determined for the elapsed time from the latest communication from the transmission device to the reception device in the communication connection for transmitting the target data as the predetermined period, and the elapsed time 4. The transmission apparatus according to claim 1, wherein a period based on a length defined that the congestion window size is reduced when the length is reached is applied. 前記データ送信手段がTCP(Transmission Control Protocol)コネクションを通して前記受信装置との通信を行うとき、前記所定期間は、再送タイムアウト時間に基づく期間であることを特徴とする請求項4に記載の送信装置。   5. The transmission apparatus according to claim 4, wherein when the data transmission unit communicates with the reception apparatus through a TCP (Transmission Control Protocol) connection, the predetermined period is a period based on a retransmission timeout period. 前記ダミーデータ送信制御手段は、輻輳ウィンドウサイズ以上であることを前記所定条件として用いることを特徴とする請求項1から請求項5のいずれか1つに記載の送信装置。   6. The transmission apparatus according to claim 1, wherein the dummy data transmission control unit uses, as the predetermined condition, a size equal to or larger than a congestion window size. 前記ダミーデータ送信制御手段は、所定のサイズs(sは正の数)以上であることを前記所定条件として用いることを特徴とする請求項1から請求項5のいずれか1つに記載の送信装置。   The transmission according to any one of claims 1 to 5, wherein the dummy data transmission control unit uses, as the predetermined condition, a size equal to or larger than a predetermined size s (s is a positive number). apparatus. 前記データ送信手段がTCPコネクションを通して前記受信装置との通信を行うとき、前記所定のサイズsは、セグメントの最大サイズの2倍であることを特徴とする請求項7に記載の送信装置。   8. The transmission apparatus according to claim 7, wherein when the data transmission unit communicates with the reception apparatus through a TCP connection, the predetermined size s is twice the maximum size of a segment. 請求項1から請求項8のいずれか1つに記載の送信装置から前記対象データを受信すると該対象データに対する所定の処理を行うとともに、前記ダミーデータを受信すると該ダミーデータを破棄するデータ受信手段を備えた受信装置。   Data receiving means for performing predetermined processing on the target data when receiving the target data from the transmission device according to any one of claims 1 to 8, and discarding the dummy data when receiving the dummy data A receiving device. 前記データ受信手段は、請求項3に記載の送信装置から前記ダミーデータが付加された前記対象データを受信すると、該ダミーデータの部分を破棄して該対象データに対する前記所定の処理を行うことを特徴とする請求項9に記載の受信装置。   When the data receiving means receives the target data to which the dummy data is added from the transmission device according to claim 3, the data receiving means discards the dummy data portion and performs the predetermined processing on the target data. The receiving device according to claim 9. 請求項1から請求項8のいずれか1つに記載の送信装置と、
請求項9または請求項10に記載の受信装置と、
を備えた情報処理システム。
A transmission device according to any one of claims 1 to 8,
The receiving device according to claim 9 or 10,
Information processing system with
請求項1から請求項8のいずれか1つに記載の送信装置と、
マスタデータを記憶するマスタデータ記憶手段と、
前記マスタデータを更新するとともに、前記マスタデータの更新前および更新後の差分を表す情報(更新ログ)を生成し、生成した更新ログを前記対象データとして送信するよう前記データ送信手段に要求するアプリケーション手段と、
を備えたマスタサーバ。
A transmission device according to any one of claims 1 to 8,
Master data storage means for storing master data;
An application that updates the master data, generates information (update log) indicating the difference before and after updating the master data, and requests the data transmission means to transmit the generated update log as the target data Means,
Master server with
前記マスタデータの複製(複製データ)を記憶する複製データ記憶手段と、
請求項12に記載のマスタサーバから、前記対象データとしての前記更新ログ、または、前記ダミーデータを受信するとともに、受信した更新ログを用いて前記複製データを更新する処理を前記所定の処理として実行する請求項9または請求項10に記載の受信装置と、
を備えたスレーブサーバ。
Replicated data storage means for storing a replica of the master data (replicated data);
The update log as the target data or the dummy data is received from the master server according to claim 12, and the process of updating the replicated data using the received update log is executed as the predetermined process. The receiving device according to claim 9 or 10,
A slave server with
請求項12に記載のマスタサーバと、
請求項13に記載のスレーブサーバと、
を備えたデータベースシステム。
A master server according to claim 12;
A slave server according to claim 13;
A database system with
アプリケーションから対象データの送信要求があると前記対象データを受信装置に対して送信し、
所定期間の間に、所定条件を満たすサイズの前記対象データが前記受信装置に対して送信されていない場合に、前記所定条件を満たすサイズのダミーデータを前記受信装置に対して送信する、データ転送方法。
When there is a request to send target data from the application, the target data is sent to the receiving device,
Data transfer for transmitting dummy data having a size satisfying the predetermined condition to the receiving device when the target data having a size satisfying the predetermined condition is not transmitted to the receiving device during a predetermined period. Method.
請求項15に記載のデータ転送方法を用いて送信された前記対象データを受信すると該対象データに対する所定の処理を行い、前記ダミーデータを受信すると該ダミーデータを破棄する、データ受信方法。   16. A data receiving method, wherein when the target data transmitted using the data transfer method according to claim 15 is received, predetermined processing is performed on the target data, and when the dummy data is received, the dummy data is discarded. アプリケーションから対象データの送信要求があると前記対象データを受信装置に対して送信する対象データ送信ステップと、
所定期間の間に、所定条件を満たすサイズの前記対象データが前記受信装置に対して送信されていない場合に、前記所定条件を満たすサイズのダミーデータを前記受信装置に対して送信するダミーデータ送信ステップと、
をコンピュータ装置に実行させるコンピュータ・プログラムを記憶している記憶媒体。
A target data transmission step of transmitting the target data to a receiving device when there is a target data transmission request from an application;
Dummy data transmission for transmitting dummy data having a size satisfying the predetermined condition to the receiving apparatus when the target data having a size satisfying the predetermined condition is not transmitted to the receiving apparatus during a predetermined period. Steps,
A storage medium storing a computer program that causes a computer device to execute the program.
請求項17に記載の記憶媒体に記憶されたコンピュータ・プログラムの実行により送信された前記対象データを受信すると該対象データに対する所定の処理を行う対象データ受信ステップと、
前記ダミーデータを受信すると該ダミーデータを破棄するダミーデータ破棄ステップと、
をコンピュータ装置に実行させるコンピュータ・プログラムを記憶している記憶媒体。
A target data receiving step for performing predetermined processing on the target data upon receiving the target data transmitted by execution of the computer program stored in the storage medium according to claim 17;
A dummy data discarding step of discarding the dummy data when the dummy data is received;
A storage medium storing a computer program that causes a computer device to execute the program.
JP2015546295A 2013-11-05 2014-11-05 Transmitting apparatus, information processing system, master server, database system and method Active JP6187598B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013229313 2013-11-05
JP2013229313 2013-11-05
PCT/JP2014/005559 WO2015068381A1 (en) 2013-11-05 2014-11-05 Transmission device, reception device, information processing system, master server, slave server, database system, data transfer method, and storage medium

Publications (2)

Publication Number Publication Date
JPWO2015068381A1 true JPWO2015068381A1 (en) 2017-03-09
JP6187598B2 JP6187598B2 (en) 2017-08-30

Family

ID=53041176

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015546295A Active JP6187598B2 (en) 2013-11-05 2014-11-05 Transmitting apparatus, information processing system, master server, database system and method

Country Status (2)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7024259B2 (en) * 2017-08-29 2022-02-24 トヨタ自動車株式会社 Information processing systems, information processing methods, programs, and information processing equipment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1198148A (en) * 1997-09-19 1999-04-09 Nec Corp Rate controller
JP2005252638A (en) * 2004-03-04 2005-09-15 Nec Commun Syst Ltd Network communication control method and apparatus thereof
JP2011002970A (en) * 2009-06-17 2011-01-06 Nippon Telegr & Teleph Corp <Ntt> Distributed data management system, data management device, data management method, and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1198148A (en) * 1997-09-19 1999-04-09 Nec Corp Rate controller
JP2005252638A (en) * 2004-03-04 2005-09-15 Nec Commun Syst Ltd Network communication control method and apparatus thereof
JP2011002970A (en) * 2009-06-17 2011-01-06 Nippon Telegr & Teleph Corp <Ntt> Distributed data management system, data management device, data management method, and program

Also Published As

Publication number Publication date
WO2015068381A1 (en) 2015-05-14
JP6187598B2 (en) 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 (en) Multicast apparatus and method for distributing data to multiple receivers in high performance computing networks and cloud-based networks
JP4589406B2 (en) Bulk data transfer
US10341792B1 (en) System for distributing audio output using multiple devices
JP2007116714A (en) Method and apparatus for adaptive bandwidth control with bandwidth guarantee
KR20130093813A (en) A communication method of node prefetching segments of contents in a content centric network and the node
US10142241B1 (en) Methods for dynamic health monitoring of server pools and devices thereof
JP2020526959A (en) Optimizing network parameters to enable network coding
US20140047000A1 (en) Systems and methods for throttling polling
US11736567B2 (en) Data transmission and network interface controller
JP6187598B2 (en) Transmitting apparatus, information processing system, master server, database system and method
JPWO2020236599A5 (en)
US11444882B2 (en) Methods for dynamically controlling transmission control protocol push functionality and devices thereof
JP2012134645A (en) Relay device and communication method
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
JP6102347B2 (en) Information device, printing system, computer program, and data transfer method
WO2021103822A1 (en) Method for acquiring common maximum segment size (mss), and device
US8699347B2 (en) Communication apparatus, communication system, communication method, and a computer-readable medium
US10742561B2 (en) Prevention of network retransmission timeout
JP2010130610A (en) Data transmission system
KR101641689B1 (en) Server and method for transmitting acceleration data and recording medium thereof
JP2004260562A (en) Method and device for transmitting and receiving packet
KR101933175B1 (en) Mediatioin appratus mediating communication betwwen server and client
EP3619854B1 (en) Elimination of latency in a communication channel

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170110

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170704

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170717

R150 Certificate of patent or registration of utility model

Ref document number: 6187598

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150