JP6187598B2 - 送信装置、情報処理システム、マスタサーバ、データベースシステムおよび方法 - Google Patents

送信装置、情報処理システム、マスタサーバ、データベースシステムおよび方法 Download PDF

Info

Publication number
JP6187598B2
JP6187598B2 JP2015546295A JP2015546295A JP6187598B2 JP 6187598 B2 JP6187598 B2 JP 6187598B2 JP 2015546295 A JP2015546295 A JP 2015546295A JP 2015546295 A JP2015546295 A JP 2015546295A JP 6187598 B2 JP6187598 B2 JP 6187598B2
Authority
JP
Japan
Prior art keywords
data
data transmission
dummy data
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.)
Active
Application number
JP2015546295A
Other languages
English (en)
Other versions
JPWO2015068381A1 (ja
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/ja
Application granted granted Critical
Publication of JP6187598B2 publication Critical patent/JP6187598B2/ja
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)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

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

Claims (10)

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

Applications Claiming Priority (3)

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

Publications (2)

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

Family

ID=53041176

Family Applications (1)

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

Country Status (2)

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

Families Citing this family (1)

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

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2980075B2 (ja) * 1997-09-19 1999-11-22 日本電気株式会社 レート制御装置
JP2005252638A (ja) * 2004-03-04 2005-09-15 Nec Commun Syst Ltd ネットワーク通信制御方法および装置
JP5416490B2 (ja) * 2009-06-17 2014-02-12 日本電信電話株式会社 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム

Also Published As

Publication number Publication date
JPWO2015068381A1 (ja) 2017-03-09
WO2015068381A1 (ja) 2015-05-14

Similar Documents

Publication Publication Date Title
US10505818B1 (en) Methods for analyzing and load balancing based on server health and devices thereof
CN109690510B (zh) 用于将数据分发到高性能计算网络和基于云的网络中的多个接收器的多播装置和方法
JP4791322B2 (ja) 帯域幅保証を伴う適応性帯域幅制御のための方法及び装置
US10341792B1 (en) System for distributing audio output using multiple devices
JP2008526132A (ja) バルク・データ転送
US10142241B1 (en) Methods for dynamic health monitoring of server pools and devices thereof
US8369348B2 (en) Method, and system, and computer program product for dynamically adjusting acknowledgement filtering for high-latency environments
JP2020526959A (ja) ネットワーク・コーディングを有効にするためのネットワーク・パラメータの最適化
US11736567B2 (en) Data transmission and network interface controller
JP6187598B2 (ja) 送信装置、情報処理システム、マスタサーバ、データベースシステムおよび方法
JP2012134645A (ja) 中継装置および通信方法
US11444882B2 (en) Methods for dynamically controlling transmission control protocol push functionality and devices thereof
US11044350B1 (en) Methods for dynamically managing utilization of Nagle'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
JP4927661B2 (ja) 通信方法、ネットワークシステム、記憶媒体およびネットワーク接続機器
JP6102347B2 (ja) 情報機器、印刷システム、コンピュータープログラムおよびデータ転送方法
US10742561B2 (en) Prevention of network retransmission timeout
JP4981951B2 (ja) 分散コンピューティングシステム
WO2021103822A1 (zh) 用于获取共用最大分段大小mss的方法及装置
US8699347B2 (en) Communication apparatus, communication system, communication method, and a computer-readable medium
JP2010130610A (ja) データ伝送システム
KR101641689B1 (ko) 데이터 가속 전송 방법, 서버 및 그를 구현하기 위한 프로그램이 기록된 기록매체
JP2004260562A (ja) パケット送受信方法、及び装置
WO2024150299A1 (ja) 通信パスの確立を事前に予測して実行する装置及び方法
KR101933175B1 (ko) 서버와 클라이언트간 통신을 중개하는 중개장치

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