JP2019008417A - 情報処理装置、メモリ制御方法およびメモリ制御プログラム - Google Patents

情報処理装置、メモリ制御方法およびメモリ制御プログラム Download PDF

Info

Publication number
JP2019008417A
JP2019008417A JP2017121571A JP2017121571A JP2019008417A JP 2019008417 A JP2019008417 A JP 2019008417A JP 2017121571 A JP2017121571 A JP 2017121571A JP 2017121571 A JP2017121571 A JP 2017121571A JP 2019008417 A JP2019008417 A JP 2019008417A
Authority
JP
Japan
Prior art keywords
connection
connections
maintained
communication
data
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
JP2017121571A
Other languages
English (en)
Other versions
JP6963168B2 (ja
Inventor
康文 野澤
Yasufumi Nozawa
康文 野澤
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017121571A priority Critical patent/JP6963168B2/ja
Priority to US15/991,312 priority patent/US10645152B2/en
Publication of JP2019008417A publication Critical patent/JP2019008417A/ja
Application granted granted Critical
Publication of JP6963168B2 publication Critical patent/JP6963168B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】並列処理におけるデータ転送フェーズの遅延を抑制する。【解決手段】通信部11は、他の情報処理装置からの要求に応じてコネクションを追加可能である。記憶部12は、維持されているコネクションの数および維持されているコネクションそれぞれにおいて最後に通信が行われたタイミングを示すコネクション情報15を記憶する。処理部13は、単位時間当たりの維持されているコネクションの増加数が第1の閾値を超えておりかつ維持されているコネクションの数が第2の閾値を超えている場合、コネクション情報15に基づいて、維持されているコネクションのうち最後に通信が行われたタイミングが古い方から優先的に少なくとも1つのコネクションを選択し、選択した少なくとも1つのコネクションを切断させる。【選択図】図1

Description

本発明は情報処理装置、メモリ制御方法およびメモリ制御プログラムに関する。
2つの情報処理装置がネットワークを介して通信する場合、当該2つの情報処理装置の間にTCP(Transmission Control Protocol)コネクションなどのコネクションを確立することがある。1つの情報処理装置が複数の他の情報処理装置と通信し得る場合、当該1つの情報処理装置が同時に複数のコネクションを維持することもある。例えば、1つの情報処理装置が複数の他の情報処理装置それぞれからコネクション確立要求を受信し、コネクション確立要求に応じて新規コネクションを確立することで、当該情報処理装置と複数の他の情報処理装置の間に複数のコネクションを維持することがある。
新規コネクションを確立すると、通信相手から受信したデータを一時的に保存する受信バッファなどを含むメモリ領域をその新規コネクションに対して割り当てることになる。複数のコネクションを維持することがある情報処理装置は、最後に通信が行われてから所定時間経過してもまだ切断されていない古いコネクションを切断するなど、経過時間に応じて古いコネクションを整理することがある。
例えば、アプリケーションサーバとデータサーバとの間のコネクションを管理するWebシステムが提案されている。提案のWebシステムは、予めアプリケーションサーバとデータサーバとの間に複数のコネクションを確立してコネクションプールに入れておき、アプリケーションサーバで実行されるサーブレットに対して動的にコネクションを割り当てる。Webシステムは、サーブレットに対して割り当てたコネクションのうち、使用されていない状態が所定時間続いているコネクションの割り当てを解除する。
また、アプリケーションサーバが複数のデータベースサーバに接続する計算機システムが提案されている。提案の計算機システムは、アプリケーションサーバが複数のコネクションを確立してコネクションプールに入れておき、各コネクションに対して接続先のデータベースサーバを識別する識別子を付与しておく。計算機システムは、あるコネクションで障害が検出されると、障害が検出されたコネクションと同じ識別子が付与されたコネクションのみをコネクションプールから削除する。
また、サービス利用装置とサービス提供装置との間に維持するコネクションの数を制御するコンピュータシステムが提案されている。提案のコンピュータシステムは、予めサービス利用装置とサービス提供装置との間に複数のコネクションを確立する。コンピュータシステムは、サービス提供装置の負荷を監視し、負荷が増加した場合にはサービス利用装置が使用可能なコネクションの数を減少させる。
特開2000−29814号公報 特開2007−226398号公報 特開2009−181481号公報
ところで、複数のノードに並列にプログラムを実行させる並列処理では、これら複数のノードが一斉に特定の情報処理装置と通信するデータ転送フェーズが発生することがある。例えば、プログラムの起動前に複数のノードそれぞれが、データサーバなどの特定の情報処理装置からローカル記憶装置に入力データをコピーする「ステージイン」が行われることがある。また、プログラムの終了後に複数のノードそれぞれが、ローカル記憶装置からデータサーバなどの特定の情報処理装置に出力データを転送する「ステージアウト」が行われることがある。データ転送フェーズでは、短時間のうちに特定の情報処理装置と複数のノードとの間に複数の新規コネクションが確立され得る。
しかし、情報処理装置に既に比較的多くのコネクションが維持されているときに並列処理のデータ転送フェーズが発生すると、メモリ領域が不足して、一部のノードについて新規コネクションの確立およびデータ転送の開始が迅速に行われない可能性がある。このとき、通常の切断契機に従って既存コネクションが切断されるのを待っていては、データ転送フェーズの完了が遅延して並列処理の完了が遅れてしまうおそれがある。
1つの側面では、本発明は、並列処理におけるデータ転送フェーズの遅延を抑制する情報処理装置、メモリ制御方法およびメモリ制御プログラムを提供することを目的とする。
1つの態様では、通信部と記憶部と処理部とを有する情報処理装置が提供される。通信部は、他の情報処理装置からの要求に応じてコネクションを追加可能である。記憶部は、維持されているコネクションの数および維持されているコネクションそれぞれにおいて最後に通信が行われたタイミングを示すコネクション情報を記憶する。処理部は、単位時間当たりの維持されているコネクションの増加数が第1の閾値を超えておりかつ維持されているコネクションの数が第2の閾値を超えている場合、コネクション情報に基づいて、維持されているコネクションのうち最後に通信が行われたタイミングが古い方から優先的に少なくとも1つのコネクションを選択し、選択した少なくとも1つのコネクションを切断させる。
また、1つの態様では、情報処理装置が実行するメモリ制御方法が提供される。また、1つの態様では、コンピュータに実行させるメモリ制御プログラムが提供される。
1つの側面では、並列処理におけるデータ転送フェーズの遅延を抑制できる。
第1の実施の形態の情報処理装置を説明する図である。 第2の実施の形態の並列処理システムの例を示す図である。 データサーバのハードウェア例を示すブロック図である。 ノードとデータサーバのソフトウェア例を示すブロック図である。 コネクション管理リストの例を示す図である。 コネクション数テーブルの例を示す図である。 ジョブ実行の手順例を示すフローチャートである。 コネクション確立の手順例を示すフローチャートである。 ファイルアクセスの手順例を示すフローチャートである。 コネクション切断の手順例を示すフローチャートである。 コネクション切断判定の手順例を示すフローチャートである。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の情報処理装置を説明する図である。
第1の実施の形態の情報処理装置10は、ネットワークを介して他の情報処理装置と通信する。情報処理装置10は、サーバコンピュータでもよく、他の情報処理装置が使用するデータを管理するデータサーバでもよい。例えば、情報処理装置10は、プログラムを並列に実行する複数のノードを含む並列処理システムに用いられる。
情報処理装置10は、通信部11、記憶部12および処理部13を有する。
通信部11は、ルータやスイッチなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。記憶部12は、RAM(Random Access Memory)などの揮発性の半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性のストレージでもよい。処理部13は、例えば、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサである。ただし、処理部13は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部12でもよい)に記憶されたプログラムを実行する。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うこともある。
通信部11は、他の情報処理装置からの要求に応じてコネクションを確立することができる。コネクションは、例えば、LAN(Local Area Network)のTCPコネクションやInfiniBandのコネクションなどである。通信部11は、例えば、プロトコルに規定される所定の手順に従って、2以上のメッセージの交換を通じてコネクションを確立する。通信部11は、確立されたコネクションを用いて他の情報処理装置との間で信頼性の高いデータ通信を行うことができる。例えば、通信部11は、あるコネクションにおいてデータ読み出し要求を受信し、要求されたデータを当該コネクションで返信する。また、例えば、通信部11は、あるコネクションにおいてデータ書き込み要求を受信し、書き込み結果を当該コネクションで返信する。
情報処理装置10は、同時に複数のコネクションを維持することができ、複数の他の情報処理装置との間でコネクションを維持することもできる。例えば、情報処理装置10は、並列処理システムに含まれる複数のノードからの要求に応じて複数のコネクションを確立し、それら複数のコネクションを同時に維持してもよい。情報処理装置10は、維持しているコネクションそれぞれに対して、RAM領域などのメモリ領域を消費することになる。例えば、情報処理装置10は、維持しているコネクションそれぞれについて、通信部11が受信するメッセージを一時的に保持する受信バッファや、通信部11が送信するメッセージを一時的に保持する送信バッファを用意する。
維持しているコネクションが多いほど、情報処理装置10のメモリ消費量も多くなる。情報処理装置10が維持可能なコネクションの数は、情報処理装置10が有するメモリ領域の総量に依存することがある。例えば、通信部11が他の情報処理装置からコネクション確立要求を受信したとき、追加しようとするコネクションに対応するメモリ領域を確保できなければコネクション確立に失敗することがある。その場合、通信部11は当該他の情報処理装置に対してエラーメッセージを返信することがある。
確立されたコネクションは切断されることがある。通信部11は、例えば、プロトコルに規定される所定の手順に従って、2以上のメッセージの交換を通じてコネクションを切断する。コネクションの切断は、他の情報処理装置からの要求に応じて実行されてもよいし、情報処理装置10の判断によって実行されてもよい。例えば、情報処理装置10は、維持しているコネクションのうち最後にデータ通信が行われてから所定時間(例えば、数十分程度)経過したコネクション、すなわち、無通信時間が閾値を超えたコネクションを切断してもよい。コネクションを切断すると、情報処理装置10は当該切断したコネクションに対応するメモリ領域を解放することができる。
記憶部12は、コネクション情報15を記憶する。コネクション情報15は、情報処理装置10に維持されているコネクションおよびその使用状況を示す。コネクション情報15は、維持されているコネクションの数を特定するために用いることができる。また、コネクション情報15は、維持されているコネクションそれぞれにおいて最後にデータ通信が行われたタイミングを特定するために用いることができる。例えば、コネクション情報15は、維持されているコネクションの識別情報を、最後にデータ通信が行われた時刻の古い順に並べた連結リストを含んでもよい。また、コネクション情報15は、現在のコネクションの数を示すコネクション数情報を更に含んでもよい。ただし、上記の連結リストを用いて、維持されているコネクションの数をカウントするようにしてもよい。
情報処理装置10は、コネクションの追加状況や各コネクションにおける通信状況を監視し、コネクション情報15を継続的に更新する。例えば、情報処理装置10は、コネクションが追加されると、追加されたコネクションの識別情報を連結リストの末尾に追加する。また、例えば、情報処理装置10は、あるコネクションにおいてデータ通信が行われると、当該コネクションの識別情報を連結リストの末尾に移動する。この場合、連結リストの先頭の識別情報が示すコネクションは、最後にデータ通信が行われたタイミングが最も古いコネクション、すなわち、無通信時間が最も長いコネクションとなる。
処理部13は、記憶部12に記憶されたコネクション情報15を参照して、コネクションを切断するタイミングおよび切断すべきコネクションを判定する。ここで、処理部13は、単位時間当たり(例えば、1秒間当たり)のコネクションの増加数を算出し、算出した増加数が第1の閾値(例えば、数百程度)を超えているか否か判定する。また、処理部13は、維持されているコネクションの総数が第2の閾値(例えば、数千〜数万程度)を超えているか否か判定する。単位時間当たりの増加数が第1の閾値を超えており、かつ、コネクション総数が第2の閾値を超えている場合、処理部13は、メモリ領域の不足を解消するために早急に既存コネクションの切断を行うことを決定する。
単位時間当たりの増加数が第1の閾値を超えること、すなわち、コネクションの急激な増加は、並列処理システムに含まれる複数のノードがデータ転送フェーズを実行するときに発生し得る。データ転送フェーズでは、ジョブの実行に使用される複数のノードがジョブの途中で一斉にデータの送信または受信を行う。データ転送フェーズには、複数のノードでプログラムの実行が終了した後、それら複数のノードが結果データを情報処理装置10に一斉に保存する「ステージアウト」が含まれ得る。また、データ転送フェーズには、複数のノードでプログラムが起動する前、それら複数のノードが入力データを情報処理装置10から一斉にコピーする「ステージイン」が含まれ得る。
単位時間当たりの増加数が第1の閾値を超えた場合、処理部13は、並列処理システムにおいてデータ転送フェーズが発生したと推定することが考えられる。データ転送フェーズでは、少なくとも一部のノードのデータ転送が正常に終了しないと、そのデータ転送フェーズ全体が完了せず、ジョブの完了が遅延することになる。データ転送フェーズの遅延は、ジョブの投入から完了までの所要時間に大きな影響を与える。データ転送フェーズが発生したときにコネクション総数が第2の閾値を超えている場合、すなわち、コネクション超過が生じている場合、情報処理装置10のメモリ領域の不足によってコネクションの追加やコネクション上のデータ送信が阻害されるおそれがある。そこで、データ転送フェーズが発生したときにはコネクション超過を早急に解消することが好ましい。
既存コネクションの切断を行うことを決定した場合、処理部13は、コネクション情報15に基づいて、維持されているコネクションのうち最後に通信が行われたタイミングが古い方から優先的に少なくとも1つのコネクションを選択する。選択するコネクションの数は、例えば、現在のコネクション総数と第2の閾値との差とする。ただし、1回に選択するコネクションの数を所定数としてもよい。コネクション情報が上記の連結リストを含む場合、処理部13は、連結リストの先頭から順に少なくとも1つの識別情報を抽出するようにしてもよい。選択されるコネクションは、例えば、データ転送フェーズが発生したジョブとは異なる別のジョブに関するコネクションである。
処理部13は、選択したコネクションを通信部11に切断させる。処理部13は、切断したコネクションに対応するメモリ領域を解放することが可能となる。例えば、コネクション14a,14b,14cを含むn個のコネクションが維持されており、最後に通信が行われたタイミングはコネクション14b,14a,14cの順に古いとする。この場合、処理部13は、コネクション14bを最も優先して切断し、その次にコネクション14aを優先して切断し、その次にコネクション14bを優先して切断することになる。
情報処理装置10は、単位時間当たりの増加数に基づく切断判定とは別に、各コネクションの無通信時間に基づく切断判定を併せて行ってもよい。その場合、維持されているコネクションは、無通信時間がまだ所定時間に達していないコネクションとなる。その場合であっても、単位時間当たりの増加数が第1の閾値を超えた場合には、コネクション超過を放置していると並列処理のデータ転送フェーズが遅延するおそれがあるため、無通信時間が所定時間に達するのを待たずにコネクションを切断することが好ましい。
第1の実施の形態の情報処理装置10によれば、維持されているコネクションの数と、維持されているコネクションそれぞれについて最後に通信が行われたタイミングとが監視される。単位時間当たりの維持されているコネクションの増加数が第1の閾値を超えておりかつ維持されているコネクションの数が第2の閾値を超えている場合、最後に通信が行われたタイミングが古い方から優先的に少なくとも1つのコネクションが選択される。そして、選択された少なくとも1つのコネクションが切断される。これにより、情報処理装置10のメモリ領域の不足によって並列処理におけるデータ転送フェーズが遅延することを抑制でき、並列処理を行うジョブの完了が遅延することを抑制できる。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の並列処理システムの例を示す図である。
第2の実施の形態の並列処理システムは、複数のノードを用いてプログラムを並列実行することができる。並列処理システムは、ネットワーク30、データサーバ100,100a,100bを含む複数のデータサーバ、ノード200,200a,200b,200cを含む複数のノードおよびジョブ管理サーバ300を有する。
この並列処理システムは、例えば、データセンタなどの情報処理施設に設置される。ネットワーク30は、例えば、情報処理施設の内部でデータ通信を行う有線ローカルネットワークである。ネットワーク30は、LANやInfiniBandを含んでもよい。複数のデータサーバ、複数のノードおよびジョブ管理サーバ300は、それぞれサーバコンピュータであり、ネットワーク30に接続されている。
データサーバ100,100a,100bは、不揮発性の記憶装置を利用して、並列処理を行うジョブに関するファイルを記憶する。2以上のデータサーバが共通の分散ファイルシステムを形成してもよい。あるジョブに関する2以上のファイルが異なるデータサーバに分散して記憶されてもよい。データサーバ100,100a,100bは、あるジョブのプログラムが読み込む入力データを含む入力ファイルを記憶することがある。また、データサーバ100,100a,100bは、あるジョブのプログラムが出力した結果データを含む出力ファイルを記憶することがある。データサーバ100,100a,100bは、あるジョブで実行されるプログラムを含むプログラムファイルを記憶してもよい。
入力ファイルやプログラムファイルは、例えば、ジョブの開始前に予めユーザによってデータサーバ100,100a,100bに格納される。出力ファイルは、例えば、プログラムの実行が終了してジョブを完了させる際に、ノード200,200a,200b,200cによってデータサーバ100,100a,100bに格納される。出力ファイルは、その後、ユーザによって読み出されることがある。
ノード200,200a,200b,200cは、それぞれCPU、RAM、HDDなどのローカルの計算リソースを有し、これらローカルの計算リソースを用いてプログラムを並列に実行する。あるジョブの実行に使用されるノードは、ジョブ管理サーバ300によって割り当てられる。1つのジョブに対して2以上のノードが割り当てられ得る。ノード200,200a,200b,200cは、データの保存にデータサーバ100,100a,100bを利用する。データサーバ100,100a,100bから見て、ノード200,200a,200b,200cはクライアントと言うことができる。
ノード200,200a,200b,200cは、ジョブのプログラムを起動する前に、データサーバ100,100a,100bからHDDなどのローカルストレージに入力ファイルを一括してコピーする「ステージイン」を行うことがある。プログラムの起動前に入力ファイルをコピーしておくことで、プログラム実行途中の通信を抑制してプログラムの実行効率を向上させることができる。また、ノード200,200a,200b,200cは、ジョブのプログラムが終了した後、ローカルストレージからデータサーバ100,100a,100bに出力ファイルを一括して転送する「ステージアウト」を行うことがある。転送した出力ファイルはローカルストレージから削除してよい。これにより、ジョブを完了させて当該ジョブに対するノードの割り当てを解放することができる。
ここで、あるジョブについてステージインやステージアウトなどの「ステージング」が発生すると、当該ジョブに割り当てられた複数のノードが1以上のデータサーバに一斉にアクセスすることになる。データサーバ100,100a,100bとノード200,200a,200b,200cとの間のファイル転送は、信頼性確保のためコネクション型通信によって行われる。このため、ステージングが発生すると、データサーバ100,100a,100bが維持するコネクションが急増する。
ジョブ管理サーバ300は、複数のノードを利用したジョブの実行を管理する。ジョブ管理サーバ300は、ユーザが使用する端末装置(図示せず)からジョブの要求を受け付けることがある。ジョブ管理サーバ300は、受け付けた複数のジョブのスケジューリングを行い、それら複数のジョブそれぞれに対してノードを割り当てる。
ジョブの要求はジョブスクリプトファイルに記載されることがある。ジョブスクリプトファイルは、ステージインコマンド、プログラム起動コマンド、ステージアウトコマンドなどを含むことがある。ステージインコマンドでは入力ファイルのパスが指定される。プログラム起動コマンドではプログラムファイルのパスが指定される。ステージアウトコマンドでは出力ファイルのパスが指定される。ジョブ管理サーバ300は、例えば、ジョブスクリプトファイルに従って、ノード200,200a,200b,200cにステージインやプログラム起動やステージアウトを指示する。
図3は、データサーバのハードウェア例を示すブロック図である。
データサーバ100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107を有する。データサーバ100a,100b、ノード200,200a,200b,200cおよびジョブ管理サーバ300も、データサーバ100と同様のハードウェアを用いて実装できる。なお、CPU101は、第1の実施の形態の処理部13に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部12に対応する。通信インタフェース107は、第1の実施の形態の通信部11に対応する。
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを含んでもよく、データサーバ100は複数のプロセッサを有してもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、データサーバ100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD103は、OS(Operating System)やミドルウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、データサーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部104は、CPU101からの命令に従って、データサーバ100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
入力信号処理部105は、データサーバ100に接続された入力デバイス112から入力信号を取得し、CPU101に出力する。入力デバイス112としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、データサーバ100に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
通信インタフェース107は、ネットワーク30に接続され、ネットワーク30を介してノード200,200a,200b,200cと通信を行うインタフェースである。通信インタフェース107は、スイッチやルータなどの通信装置とケーブルで接続される。
図4は、ノードとデータサーバのソフトウェア例を示すブロック図である。
データサーバ100は、共有ファイル記憶部121、管理情報記憶部122、コネクションメモリ領域123、分散ファイルシステム(分散FS)データ処理部124および通信制御部125を有する。共有ファイル記憶部121は、例えば、HDD103を用いて実装される。管理情報記憶部122は、例えば、RAM102またはHDD103を用いて実装される。コネクションメモリ領域123は、例えば、RAM102を用いて実装される。分散FSデータ処理部124は、例えば、CPU101が実行するミドルウェアプログラムを用いて実装される。通信制御部125は、例えば、CPU101が実行するデバイスドライバを用いて実装される。データサーバ100a,100bなどの他のデータサーバも、データサーバ100と同様のユニットによって実現できる。
共有ファイル記憶部121は、分散ファイルシステムのディレクトリ体系のもとで管理されるファイルを記憶する。共有ファイル記憶部121に記憶されるファイルは、分散ファイルシステムのファイルパスによって識別される。共有ファイル記憶部121には、ジョブに割り当てられた複数のノードによって使用される1以上の入力ファイルや、これら複数のノードが生成した複数の出力ファイルが格納され得る。
管理情報記憶部122は、複数のノードとの間に確立されたコネクションの管理に用いられる管理情報を記憶する。後述するように、あるジョブのステージインやステージアウトの際に、データサーバ100は、当該ジョブに使用される複数のノードからの要求に応じて一斉に複数の新たなコネクションを確立することがある。その際、データサーバ100は、管理情報を参照して既存の古いコネクションを切断することがある。
コネクションメモリ領域123は、データサーバ100が維持するコネクションそれぞれに対して割り当てられたメモリ領域を含む。あるコネクションに対応するメモリ領域は、当該コネクションを用いて受信したメッセージを一時的に保持する受信バッファを含む。また、あるコネクションに対応するメモリ領域は、当該コネクションを用いて送信しようとするメッセージを一時的に保持する送信バッファを含む。また、メモリ領域は、メッセージの順序管理に用いられるシーケンス番号などの各種の情報を記憶する。
分散FSデータ処理部124は、ファイルアクセス要求を処理する。分散FSデータ処理部124は、ファイルパスを含む読み出し要求に対して、ファイルパスが示すファイルデータを共有ファイル記憶部121から読み出し、読み出したファイルデータをファイルアクセス結果として返信する。また、分散FSデータ処理部124は、ファイルパスおよびファイルデータを含む書き込み要求に対して、ファイルパスに対応付けてファイルデータを共有ファイル記憶部121に書き込む。分散FSデータ処理部124は、書き込み成否を示す書き込み結果をファイルアクセス結果として返信する。
また、分散FSデータ処理部124は、新たなコネクションの確立やコネクションを用いたファイルアクセス要求の受信を監視し、管理情報記憶部122に記憶された管理情報を更新する。分散FSデータ処理部124は、管理情報に基づいて、データサーバ100に維持されているコネクションの数が所定の条件を満たすか判定し、所定の条件を満たす場合には古いコネクションを切断するよう通信制御部125に指示する。コネクションを切断する契機および切断すべきコネクションの選択については後述する。
通信制御部125は、データサーバ100と複数のノードとの間のコネクション型通信を制御する。通信制御部125は、あるノードからコネクション確立要求を受信すると、新たなコネクションに対応するメモリ領域をコネクションメモリ領域123に確保して、コネクション確立応答を返信する。また、通信制御部125は、新たなコネクションにコネクション識別子を付与し、当該コネクションを用いた通信を以降行えるようにコネクション識別子を分散FSデータ処理部124に通知する。
また、通信制御部125は、あるコネクションの受信バッファにファイルアクセス要求が到着したとき、分散FSデータ処理部124が当該ファイルアクセス要求を処理できるように制御する。また、通信制御部125は、あるコネクションについて分散FSデータ処理部124がファイルアクセス結果を生成したとき、当該コネクションの送信バッファからファイルアクセス結果が送信されるように制御する。
また、通信制御部125は、分散FSデータ処理部124からコネクション識別子を指定してコネクション切断要求を受け付けると、コネクション識別子が示すコネクションの相手ノードに対してコネクション切断要求を送信する。通信制御部125は、相手ノードからコネクション切断応答を受信すると、そのコネクションに対応するメモリ領域をコネクションメモリ領域123から解放する。ただし、通信制御部125は、コネクション切断要求を送信してから一定時間以内にコネクション切断応答を受信しない場合、コネクションが切断されたものとみなしてメモリ領域を解放してもよい。なお、コネクション確立要求、コネクション確立応答、コネクション切断要求およびコネクション切断応答の伝送は、例えば、コネクションレス型通信によって行われる。
ノード200は、ローカルファイル記憶部221、コネクションメモリ領域222、ステージング部223、分散FSクライアント部224および通信制御部225を有する。ローカルファイル記憶部221は、例えば、RAMまたはHDDを用いて実装される。コネクションメモリ領域222は、例えば、RAMを用いて実装される。ステージング部223および分散FSクライアント部224は、例えば、CPUが実行するミドルウェアプログラムを用いて実装される。通信制御部225は、例えば、CPUが実行するデバイスドライバを用いて実装される。ノード200a,200b,200cなどの他のノードも、ノード200と同様のユニットによって実現できる。
ローカルファイル記憶部221は、プログラムファイルのコピーや入力ファイルのコピーを記憶する。入力ファイルは、ステージインによってデータサーバ100,100a,100bからコピーされる。ローカルファイル記憶部221に記憶された入力ファイルは、プログラムに対する入力として使用される。また、ローカルファイル記憶部221は、プログラムによって生成された出力ファイルを記憶する。出力ファイルは、ステージアウトによってデータサーバ100,100a,100bに転送される。ジョブが完了した後は、そのジョブに関するファイルはローカルファイル記憶部221から削除される。
コネクションメモリ領域222は、ノード200が維持するコネクションそれぞれに対して割り当てられたメモリ領域を含む。コネクション毎のメモリ領域は、受信バッファや送信バッファを含み、シーケンス番号などの各種の情報を記憶する。ノード200が維持するコネクションは、主にデータサーバ100,100a,100bとのコネクションであり、データサーバ100が維持するコネクションに比べて十分に少ない。
ステージング部223は、ジョブ管理サーバ300からの指示に応じて、ステージインおよびステージアウトを含むステージングを行う。ステージインでは、ステージング部223は、入力ファイルのパスを分散FSクライアント部224に指定して、入力ファイルをローカルファイル記憶部221にコピーさせる。ステージアウトでは、ステージング部223は、出力ファイルのパスを分散FSクライアント部224に指定して、ローカルファイル記憶部221に記憶された出力ファイルを転送させる。
分散FSクライアント部224は、分散ファイルシステムに対するファイルアクセス要求を生成する。分散FSクライアント部224は、ステージインにおいて、ステージング部223から指定されたファイルパスを含む読み出し要求を生成し、読み出し要求に対するファイルアクセス結果に含まれる入力ファイルデータをローカルファイル記憶部221に格納する。また、分散FSクライアント部224は、ステージアウトにおいて、ステージング部223から指定されたファイルパスとローカルファイル記憶部221に記憶された出力ファイルデータとを含む書き込み要求を生成する。
分散FSクライアント部224は、データサーバ100,100a,100bの通信アドレス(例えば、IP(Internet Protocol)アドレス)を予め知っている。分散FSクライアント部224は、コネクションが存在しないデータサーバに対してファイルアクセス要求を発行しようとする場合、宛先のデータサーバの通信アドレスを指定してコネクション確立要求を通信制御部225に通知する。コネクション確立が成功した場合、コネクション識別子が通信制御部225から分散FSクライアント部224に通知される。すると、分散FSクライアント部224は、宛先のデータサーバに対応するコネクション識別子を用いてファイルアクセス要求を発行する。
通信制御部225は、ノード200と1以上のデータサーバとの間のコネクション型通信を制御する。通信制御部225は、分散FSクライアント部224からコネクション確立要求を取得すると、新たなコネクションに対応するメモリ領域をコネクションメモリ領域222に確保する。また、通信制御部225は、分散FSクライアント部224から指定された通信アドレス宛てにコネクション確立要求を送信する。通信制御部225は、コネクション確立応答を受信すると、新たなコネクションにコネクション識別子を付与し、コネクション識別子を分散FSクライアント部224に通知する。なお、ここで付与されるコネクション識別子はノード200の中で一意であればよく、上記のように宛先のデータサーバで付与されるコネクション識別子とは異なってもよい。
また、通信制御部225は、あるコネクションについて分散FSクライアント部224がファイルアクセス要求を生成したとき、当該コネクションの送信バッファからファイルアクセス要求が送信されるように制御する。また、通信制御部225は、あるコネクションの受信バッファにファイルアクセス結果が到着したとき、分散FSクライアント部224が当該ファイルアクセス結果を処理できるように制御する。
また、通信制御部225は、あるコネクションについてコネクション切断要求を受信すると、そのコネクションに対応するメモリ領域をコネクションメモリ領域222から解放し、相手データサーバに対してコネクション切断応答を返信する。
図5は、コネクション管理リストの例を示す図である。
コネクション管理リスト131は、データサーバ100の管理情報記憶部122に記憶されている。コネクション管理リスト131は、複数の構造体をポインタで連結した連結リストである。各構造体は、コネクション識別子と1つ後ろの構造体を指す後ポインタと1つ前の構造体を指す前ポインタとを含む。ただし、先頭の構造体の前ポインタはNULL(空)であり、末尾の構造体の後ポインタはNULLである。
4つのコネクションが維持されているとき、コネクション管理リスト131は構造体131a,131b,131c,131dを含む。構造体131aは先頭の構造体であり、コネクション識別子#1と構造体131bを指す後ポインタ#1とを含む。構造体131bは前から2番目の構造体であり、コネクション識別子#2と構造体131cを指す後ポインタ#2と構造体131aを指す前ポインタ#2とを含む。構造体131cは前から3番目の構造体であり、コネクション識別子#3と構造体131dを指す後ポインタ#3と構造体131bを指す前ポインタ#3とを含む。構造体131dは末尾の構造体であり、コネクション識別子#4と構造体131cを指す前ポインタ#4とを含む。
コネクション管理リスト131に含まれる複数の構造体は、先頭から末尾に向かってコネクションが「古い」順に並べられている。ここで言う「古い」とは、最後にファイルアクセス要求が送信された時刻が古いことであり、無通信時間が長いことに相当する。コネクション管理リスト131の先頭の構造体が示すコネクションは、維持されているコネクションのうち最も古いコネクションである。最も古いコネクションは、最後にファイルアクセス要求が送信された時刻が最も古く無通信時間が最も長いコネクションであり、LRU(Least Recently Used)コネクションと言うことができる。また、コネクション管理リスト131の末尾の構造体が示すコネクションは、維持されているコネクションのうち最も新しいコネクションである。最も新しいコネクションは、最近にファイルアクセス要求が送信されており無通信時間が最も短いコネクションである。
コネクション管理リスト131に含まれる複数の構造体の順序は、LRUアルゴリズムに従って管理される。新しいコネクションが確立されると、当該コネクションに対応する構造体がコネクション管理リスト131の末尾に追加される。あるコネクションでファイルアクセス要求が送信されると、当該コネクションに対応する構造体がコネクション管理リスト131の末尾に移動する。このとき、移動する構造体およびその前後の構造体のポインタが書き換えられる。例えば、構造体131bが末尾に移動する場合、構造体131bの後ポインタはNULLになり、構造体131bの前ポインタは構造体131dを指すように変更される。また、構造体131aの後ポインタは構造体131cを指すように変更され、構造体131cの前ポインタは構造体131aを指すように変更される。
図6は、コネクション数テーブルの例を示す図である。
コネクション数テーブル132は、データサーバ100の管理情報記憶部122に記憶されている。コネクション数テーブル132は、現在コネクション数、前回コネクション数、増加速度、増加速度閾値、総数閾値および超過コネクション数の項目を有する。
現在コネクション数は、データサーバ100が維持しているコネクションの数の最新値である。現在コネクション数に比例する大きさのメモリ領域がコネクション維持のために消費されることになる。新しいコネクションが確立されると、確立されたコネクションの数だけ現在コネクション数が増加する。また、既存のコネクションが切断されると、切断されたコネクションの数だけ現在コネクション数が減少する。
前回コネクション数は、コネクション切断判定を前回行ったときの現在コネクション数である。コネクション切断判定は維持されているコネクションの一部を切断するか否かの判定であり、所定時間毎(例えば、1秒毎)に行われる。コネクション切断判定の際に、現在コネクション数が前回コネクション数として退避される。コネクション切断判定の後の所定時間の間に、現在コネクション数は前回コネクション数から変化していく。
増加速度は、所定時間におけるコネクションの増加数である。現在コネクション数から前回コネクション数を引いた値、すなわち、今回のコネクション切断判定時のコネクション数から前回のコネクション切断判定時のコネクション数を引いた値が、増加速度として算出される。ただし、現在コネクション数から前回コネクション数を引いた値が0未満である場合、増加速度を0とする。増加速度閾値は、増加速度と比較される閾値であり、予めデータサーバ100の管理者によって設定される。増加速度閾値は、例えば、数百程度に設定される。増加速度が増加速度閾値を超える場合、ステージインやステージアウトなどのステージングによってコネクションが急増していると推定される。
総数閾値は、現在コネクション数と比較される閾値であり、予めデータサーバ100の管理者によって設定される。総数閾値は、例えば、数千〜数万程度に設定される。現在コネクション数が総数閾値を超える場合、メモリ領域の不足によってコネクション確立を拒否する可能性があると推定される。超過コネクション数は、総数閾値を超えるコネクション数であり、現在コネクション数から総数閾値を引いて算出される。ただし、現在コネクション数から総数閾値を引いた値が0未満である場合、超過コネクション数を0とする。
あるジョブでステージングが実行されているときにデータサーバ100でメモリ領域の不足が発生すると、そのジョブに属する一部のノードがコネクション確立を待たされてしまい、ステージングの完了が遅延するおそれがある。特に、ステージアウトの完了が遅延すると、プログラムの実行が終了しているにもかかわらずノードを解放することができず、他のジョブのスケジュールにも影響を与えてしまう。そこで、データサーバ100は、増加速度が増加速度閾値を超えており、かつ、現在コネクション数が総数閾値を超えている場合、コネクション超過を迅速に解消することとする。このとき、データサーバ100は、超過コネクション数だけ古いコネクションを切断する。
なお、データサーバ100は、後述するコネクション切断判定とは別に、無通信時間が所定時間(例えば、数十分程度)を超えるコネクションを自動的に切断するようにしてもよい。その場合、コネクション数テーブル132に記載される現在コネクション数は、無通信時間がまだ所定時間を超えていないコネクションの数となる。その場合であっても、データサーバ100は、ステージングの完了が遅延することを抑制するため、無通信時間が所定時間を超えるのを待たずに相対的に古いコネクションを切断する。無通信時間が所定時間を超える前に切断されたコネクションについては、相手ノードがまだ通信を行おうとしていた可能性もある。その場合には、相手ノードは改めてデータサーバ100に対してコネクション確立要求を送信することになる。このように、ステージングが発生した場合には、そのステージングの迅速な完了が優先される。
無通信時間が所定時間を超えるコネクションの切断は、分散FSデータ処理部124が行ってもよい。管理情報記憶部122に記憶される管理情報には、各コネクションについて最後に通信が行われた時刻またはその時刻からの経過時間が含まれてもよい。
次に、並列処理システムの処理手順について説明する。
図7は、ジョブ実行の手順例を示すフローチャートである。
(S10)ジョブ管理サーバ300は、並列処理システムが有するノードの中から1以上の空きノードを選択してジョブに割り当て、ジョブを開始させる。
(S11)ジョブ管理サーバ300は、ジョブスクリプトファイルなどに従って、割り当てた各ノードにステージインを実行させる。各ノードは、入力ファイルを1以上のデータサーバからノード内のローカルストレージにコピーする。ただし、ジョブによっては入力ファイルが存在せずステージインが実行されないこともある。
(S12)ジョブ管理サーバ300は、ジョブスクリプトファイルなどに従って、割り当てた各ノードにプログラムを起動させる。各ノードはプログラムを起動する。
(S13)各ノードはプログラムの実行を終了する。ジョブ管理サーバ300は、ジョブに割り当てた全てのノードがプログラムの実行を終了したことを検出する。
(S14)ジョブ管理サーバ300は、ジョブスクリプトファイルなどに従って、割り当てた各ノードにステージアウトを実行させる。各ノードは、出力ファイルをローカルストレージから1以上のデータサーバに移動させる。
(S15)ジョブ管理サーバ300は、ジョブへのノードの割り当てを解放する。これによりジョブが完了し、解放されたノードは空きノードとなる。
図8は、コネクション確立の手順例を示すフローチャートである。
コネクション確立は、ステージインやステージアウトの開始時にノード毎に実行され得る。ここでは、ノード200がデータサーバ100に接続する場合を考える。
(S20)分散FSクライアント部224は、データサーバ100の通信アドレスを指定してコネクション確立要求を通信制御部225に対して発行する。
(S21)通信制御部225は、新たなコネクションに対応するメモリ領域をコネクションメモリ領域222の中(RAMの中)に確保する。
(S22)通信制御部225は、データサーバ100にコネクション確立要求を送信する。コネクション確立要求は、例えば、コネクションレス型通信として送信される。
(S23)通信制御部125は、コネクション確立要求を受信する。
(S24)通信制御部125は、新たなコネクションに対応するメモリ領域をコネクションメモリ領域123の中(RAM102の中)に確保する。
(S25)通信制御部125は、ステップS24でメモリ領域の確保に成功したか判断する。メモリ領域の確保に成功した場合、ステップS28に処理が進む。メモリ領域不足などにより確保に失敗した場合、ステップS26に処理が進む。
(S26)通信制御部125は、エラーメッセージをノード200に送信する。
(S27)通信制御部225は、エラーメッセージを受信する。そして、ステップS22に処理が進む。通信制御部225は、一定時間待ってからコネクション確立要求をデータサーバ100に再送してもよい。また、通信制御部225が分散FSクライアント部224にエラーを通知し、分散FSクライアント部224が一定時間待ってからコネクション確立要求を通信制御部225に対して再発行してもよい。
(S28)通信制御部125は、新たなコネクションに対してコネクション識別子を付与する。このコネクション識別子はデータサーバ100の中で重複していなければよく、ノード200とは独立に決めてよい。通信制御部125は、付与したコネクション識別子を分散FSデータ処理部124に通知する。
(S29)分散FSデータ処理部124は、通信制御部125から通知されたコネクション識別子を含む構造体を生成し、生成した構造体を管理情報記憶部122に記憶されたコネクション管理リスト131の末尾に追加する。
(S30)分散FSデータ処理部124は、管理情報記憶部122に記憶されたコネクション数テーブル132の現在コネクション数を1だけ増加させる。
(S31)通信制御部125は、コネクション確立応答をノード200に送信する。コネクション確立応答は、例えば、コネクションレス型通信として送信される。ステップS29,S30のコネクション管理リスト131およびコネクション数テーブル132の更新とコネクション確立応答の送信とは、非同期に行ってもよい。
(S32)通信制御部225は、コネクション確立応答を受信する。
(S33)通信制御部225は、新たなコネクションに対してコネクション識別子を付与する。このコネクション識別子はノード200の中で重複していなければよく、データサーバ100とは独立に決めてよい。通信制御部225は、付与したコネクション識別子を分散FSクライアント部224に通知する。
図9は、ファイルアクセスの手順例を示すフローチャートである。
ファイルアクセスは、ステージインやステージアウトの中でノード毎に実行され得る。ここでは、ノード200がデータサーバ100にアクセスする場合を考える。
(S40)分散FSクライアント部224は、コネクション識別子を指定して、読み出し要求または書き込み要求を示すファイルアクセス要求を発行する。
(S41)通信制御部225は、指定されたコネクション識別子が示すコネクションを用いて、ファイルアクセス要求をデータサーバ100に送信する。
(S42)通信制御部125は、ファイルアクセス要求を受信する。通信制御部125は、ファイルアクセス要求を受信したコネクションを示すコネクション識別子とファイルアクセス要求とを分散FSデータ処理部124に通知する。
(S43)分散FSデータ処理部124は、管理情報記憶部122に記憶されたコネクション管理リスト131の中から、通知されたコネクション識別子を含む構造体を検索し、検索した構造体をコネクション管理リスト131の末尾に移動させる。
(S44)分散FSデータ処理部124は、ファイルアクセス要求に対応するファイルアクセス処理を実行する。ファイルアクセス要求が読み出し要求である場合、分散FSデータ処理部124は、要求されたファイルデータを共有ファイル記憶部121から読み出し、読み出したファイルデータを含むファイルアクセス結果を生成する。ファイルアクセス要求が書き込み要求である場合、分散FSデータ処理部124は、書き込み要求に含まれるファイルデータを共有ファイル記憶部121に書き込み、書き込み成否を示すファイルアクセス結果を生成する。分散FSデータ処理部124は、ファイルアクセス要求の受信時のコネクション識別子を指定してファイルアクセス結果を出力する。
(S45)通信制御部125は、指定されたコネクション識別子が示すコネクションを用いて、ファイルアクセス結果をノード200に送信する。
(S46)通信制御部225は、ファイルアクセス結果を受信する。通信制御部225は、ファイルアクセス結果を受信したコネクションを示すコネクション識別子とファイルアクセス結果とを分散FSクライアント部224に通知する。
図10は、コネクション切断の手順例を示すフローチャートである。
コネクション切断は、データサーバ側の判断で適宜実行される。ここでは、データサーバ100がノード200との間のコネクションを切断する場合を考える。
(S50)分散FSデータ処理部124は、切断するコネクションを選択する。分散FSデータ処理部124は、選択したコネクションのコネクション識別子を指定してコネクション切断要求を通信制御部125に対して発行する。なお、切断するコネクションの選択を含むコネクション切断判定は、分散FSデータ処理部124によって定期的に実行される。コネクション切断判定については後述する。
(S51)通信制御部125は、ノード200にコネクション切断要求を送信する。コネクション切断要求は、例えば、コネクションレス型通信として送信される。
(S52)通信制御部225は、コネクション切断要求を受信する。
(S53)通信制御部225は、切断するコネクションに対応するメモリ領域をコネクションメモリ領域222(RAM)から解放する。
(S54)通信制御部225は、コネクション切断応答をデータサーバ100に送信する。コネクション切断応答は、例えば、コネクションレス型通信として送信される。
(S55)通信制御部125は、コネクション切断応答を受信する。
(S56)通信制御部125は、切断するコネクションに対応するメモリ領域をコネクションメモリ領域123(RAM102)から解放する。
図11は、コネクション切断判定の手順例を示すフローチャートである。
コネクション切断判定は、分散FSデータ処理部124によって反復実行される。
(S60)分散FSデータ処理部124は、単位時間(例えば、1秒)だけ待つ。
(S61)分散FSデータ処理部124は、管理情報記憶部122に記憶されたコネクション数テーブル132から現在コネクション数と前回コネクション数を読み出す。分散FSデータ処理部124は、増加速度=現在コネクション数−前回コネクション数を算出し、算出した増加速度をコネクション数テーブル132に記録する。ただし、現在コネクション数−前回コネクション数が負の値である場合は増加速度を0とする。
(S62)分散FSデータ処理部124は、コネクション数テーブル132に記録された現在コネクション数を前回コネクション数の項目にコピーする。
(S63)分散FSデータ処理部124は、コネクション数テーブル132から増加速度閾値を読み出し、ステップS61で算出した増加速度と増加速度閾値とを比較する。増加速度が増加速度閾値を超える場合、分散FSデータ処理部124は1以上のジョブでステージングが開始されたと推定し、ステップS64に処理が進む。増加速度が増加速度閾値以下である場合、今回のコネクション切断判定が終了する。
(S64)分散FSデータ処理部124は、コネクション数テーブル132から総数閾値を読み出し、現在コネクション数と総数閾値とを比較する。現在コネクション数が総数閾値を超える場合、分散FSデータ処理部124はコネクション超過によりメモリ領域が不足するおそれがあると判定し、ステップS65に処理が進む。現在コネクション数が総数閾値以下である場合、今回のコネクション切断判定が終了する。
(S65)分散FSデータ処理部124は、超過コネクション数=現在コネクション数−総数閾値を算出し、算出した超過コネクション数をコネクション数テーブル132に記録する。
(S66)分散FSデータ処理部124は、管理情報記憶部122に記憶されたコネクション管理リスト131の先頭から順に、すなわち、最後に通信が行われた時刻が古い順に、超過コネクション数だけコネクション識別子を抽出する。抽出したコネクション識別子を含む構造体はコネクション管理リスト131から削除してよい。
(S67)分散FSデータ処理部124は、コネクション数テーブル132に記録された現在コネクション数を超過コネクション数だけ減少させる。
(S68)分散FSデータ処理部124は、ステップS66で抽出したコネクション識別子それぞれについてコネクション切断要求を発行する。発行されたコネクション切断要求それぞれに対して、図10のコネクション切断処理が実行される。
第2の実施の形態の並列処理システムによれば、データサーバの現在コネクション数とそれらコネクションの間で最後に通信が行われた時刻の相対的な古さとが管理される。コネクションの増加速度が閾値を超えた場合、1以上のジョブでステージインやステージアウトなどのステージングが開始されたと推定される。ステージングが開始されたときにデータサーバでコネクション超過が生じていれば、最後に通信が行われた時刻が相対的に古い方から優先的にコネクションを切断することでコネクション超過が解消される。これにより、データサーバのメモリ領域不足によってステージングを行うノードがコネクション確立に失敗することを抑制できる。よって、ジョブのステージングが遅延することを抑制でき、ジョブの完了が遅延することを抑制できる。
10 情報処理装置
11 通信部
12 記憶部
13 処理部
14a,14b,14c コネクション
15 コネクション情報

Claims (5)

  1. 他の情報処理装置からの要求に応じてコネクションを追加可能な通信部と、
    維持されているコネクションの数および前記維持されているコネクションそれぞれにおいて最後に通信が行われたタイミングを示すコネクション情報を記憶する記憶部と、
    単位時間当たりの前記維持されているコネクションの増加数が第1の閾値を超えておりかつ前記維持されているコネクションの数が第2の閾値を超えている場合、前記コネクション情報に基づいて、前記維持されているコネクションのうち前記最後に通信が行われたタイミングが古い方から優先的に少なくとも1つのコネクションを選択し、選択した前記少なくとも1つのコネクションを切断させる処理部と、
    を有する情報処理装置。
  2. 前記コネクション情報は、前記最後に通信が行われたタイミングに応じた順序で前記維持されているコネクションの識別情報を記載したリスト情報を含む、
    請求項1記載の情報処理装置。
  3. 前記少なくとも1つのコネクションとして、前記処理部は、前記維持されているコネクションの数と前記第2の閾値との差に相当する数のコネクションを選択する、
    請求項1記載の情報処理装置。
  4. 情報処理装置が実行するメモリ制御方法であって、
    前記情報処理装置で維持されているコネクションの数と、前記維持されているコネクションそれぞれにおいて最後に通信が行われたタイミングとを監視し、
    単位時間当たりの前記維持されているコネクションの増加数が第1の閾値を超えておりかつ前記維持されているコネクションの数が第2の閾値を超えている場合、前記維持されているコネクションのうち前記最後に通信が行われたタイミングが古い方から優先的に少なくとも1つのコネクションを選択し、
    選択した前記少なくとも1つのコネクションを切断させる、
    メモリ制御方法。
  5. コンピュータに、
    前記コンピュータで維持されているコネクションの数と、前記維持されているコネクションそれぞれにおいて最後に通信が行われたタイミングとを監視し、
    単位時間当たりの前記維持されているコネクションの増加数が第1の閾値を超えておりかつ前記維持されているコネクションの数が第2の閾値を超えている場合、前記維持されているコネクションのうち前記最後に通信が行われたタイミングが古い方から優先的に少なくとも1つのコネクションを選択し、
    選択した前記少なくとも1つのコネクションを切断させる、
    処理を実行させるメモリ制御プログラム。
JP2017121571A 2017-06-21 2017-06-21 情報処理装置、メモリ制御方法およびメモリ制御プログラム Active JP6963168B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017121571A JP6963168B2 (ja) 2017-06-21 2017-06-21 情報処理装置、メモリ制御方法およびメモリ制御プログラム
US15/991,312 US10645152B2 (en) 2017-06-21 2018-05-29 Information processing apparatus and memory control method for managing connections with other information processing apparatuses

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017121571A JP6963168B2 (ja) 2017-06-21 2017-06-21 情報処理装置、メモリ制御方法およびメモリ制御プログラム

Publications (2)

Publication Number Publication Date
JP2019008417A true JP2019008417A (ja) 2019-01-17
JP6963168B2 JP6963168B2 (ja) 2021-11-05

Family

ID=64692849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017121571A Active JP6963168B2 (ja) 2017-06-21 2017-06-21 情報処理装置、メモリ制御方法およびメモリ制御プログラム

Country Status (2)

Country Link
US (1) US10645152B2 (ja)
JP (1) JP6963168B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10469556B2 (en) 2007-05-31 2019-11-05 Ooma, Inc. System and method for providing audio cues in operation of a VoIP service
US9386148B2 (en) 2013-09-23 2016-07-05 Ooma, Inc. Identifying and filtering incoming telephone calls to enhance privacy
US10553098B2 (en) 2014-05-20 2020-02-04 Ooma, Inc. Appliance device integration with alarm systems
US10769931B2 (en) 2014-05-20 2020-09-08 Ooma, Inc. Network jamming detection and remediation
US9633547B2 (en) 2014-05-20 2017-04-25 Ooma, Inc. Security monitoring and control
US11330100B2 (en) 2014-07-09 2022-05-10 Ooma, Inc. Server based intelligent personal assistant services
US11171875B2 (en) 2015-05-08 2021-11-09 Ooma, Inc. Systems and methods of communications network failure detection and remediation utilizing link probes
US10009286B2 (en) 2015-05-08 2018-06-26 Ooma, Inc. Communications hub
US10771396B2 (en) * 2015-05-08 2020-09-08 Ooma, Inc. Communications network failure detection and remediation
US10911368B2 (en) 2015-05-08 2021-02-02 Ooma, Inc. Gateway address spoofing for alternate network utilization
US11099753B2 (en) * 2018-07-27 2021-08-24 EMC IP Holding Company LLC Method and apparatus for dynamic flow control in distributed storage systems
US11176155B2 (en) * 2019-12-13 2021-11-16 Paypal, Inc Self-adjusting connection pool in a distributed system
US20220159029A1 (en) * 2020-11-13 2022-05-19 Cyberark Software Ltd. Detection of security risks based on secretless connection data

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328986A (ja) * 1995-03-22 1996-12-13 Sun Microsyst Inc 分散オブジェクトシステムにおけるオブジェクト間の通信のための接続を管理する方法および装置
US20020062374A1 (en) * 2000-11-22 2002-05-23 Nec Corporation Communications system, server, method for communications system, and recording medium
CN1909516A (zh) * 2005-08-01 2007-02-07 古野电气株式会社 网络系统、通信中继装置、通信终端装置及通信终端装置用程序
JP2008250505A (ja) * 2007-03-29 2008-10-16 Nomura Research Institute Ltd 通信接続管理装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6105067A (en) 1998-06-05 2000-08-15 International Business Machines Corp. Connection pool management for backend servers using common interface
US6996615B1 (en) * 2000-09-29 2006-02-07 Cisco Technology, Inc. Highly scalable least connections load balancing
US7287082B1 (en) * 2003-03-03 2007-10-23 Cisco Technology, Inc. System using idle connection metric indicating a value based on connection characteristic for performing connection drop sequence
US20040184070A1 (en) * 2003-03-18 2004-09-23 Microsoft Corporation Network printer connection update scheme for printer clients
US7990847B1 (en) * 2005-04-15 2011-08-02 Cisco Technology, Inc. Method and system for managing servers in a server cluster
US20060274370A1 (en) * 2005-06-03 2006-12-07 Seiko Epson Corporation Control technology used in distributed printing for printing control device and printer
JP2007226398A (ja) 2006-02-22 2007-09-06 Hitachi Ltd データベース接続管理方法及び計算機システム
JP5082111B2 (ja) 2008-01-31 2012-11-28 テックファーム株式会社 コンピュータシステム、サービス利用装置、制御方法、及びプログラム
WO2012070292A1 (ja) * 2010-11-22 2012-05-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散データベースの負荷均衡のためのコネクション配分を実現する情報処理システム、情報処理装置、負荷均衡方法、データベース配置計画方法およびプログラム
KR20120097862A (ko) * 2011-02-25 2012-09-05 삼성전자주식회사 데이터 저장 시스템 및 그의 데이터 맵핑 방법
JP6059037B2 (ja) * 2012-03-02 2017-01-11 キヤノン株式会社 通信システム、クライアント装置、サーバ装置、通信方法、及びプログラム
US10560314B2 (en) * 2014-09-16 2020-02-11 CloudGenix, Inc. Methods and systems for application session modeling and prediction of granular bandwidth requirements
US10306705B2 (en) * 2014-12-09 2019-05-28 Verizon Patent And Licensing Inc. Secure connected device control and monitoring system
KR102348812B1 (ko) * 2015-03-09 2022-01-07 삼성전자주식회사 사용자 정보 처리 방법 및 이를 지원하는 전자 장치
JP6409759B2 (ja) * 2015-12-10 2018-10-24 コニカミノルタ株式会社 画像処理装置、画像処理システム及びプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328986A (ja) * 1995-03-22 1996-12-13 Sun Microsyst Inc 分散オブジェクトシステムにおけるオブジェクト間の通信のための接続を管理する方法および装置
US20020062374A1 (en) * 2000-11-22 2002-05-23 Nec Corporation Communications system, server, method for communications system, and recording medium
JP2002158707A (ja) * 2000-11-22 2002-05-31 Nec Corp 通信システム、サーバ、その方法及び記録媒体
CN1909516A (zh) * 2005-08-01 2007-02-07 古野电气株式会社 网络系统、通信中继装置、通信终端装置及通信终端装置用程序
JP2007043281A (ja) * 2005-08-01 2007-02-15 Furuno Electric Co Ltd ネットワークシステム、通信中継装置、通信端末装置、および通信端末装置用プログラム
JP2008250505A (ja) * 2007-03-29 2008-10-16 Nomura Research Institute Ltd 通信接続管理装置

Also Published As

Publication number Publication date
JP6963168B2 (ja) 2021-11-05
US20180375927A1 (en) 2018-12-27
US10645152B2 (en) 2020-05-05

Similar Documents

Publication Publication Date Title
JP6963168B2 (ja) 情報処理装置、メモリ制御方法およびメモリ制御プログラム
US9715522B2 (en) Information processing apparatus and control method
JP5714571B2 (ja) キャッシュクラスタを構成可能モードで用いるキャッシュデータ処理
JP4637842B2 (ja) クラスタ化されたコンピューティングシステムにおける高速なアプリケーション通知
JP6186787B2 (ja) データ転送装置、データ転送システム、データ転送方法及びプログラム
WO2014087850A1 (ja) 自動障害対応キャッシュシステム及びキャッシュサーバの障害対応処理方法並びにキャッシュマネージャ
US20060123121A1 (en) System and method for service session management
JP6246923B2 (ja) 管理サーバ、計算機システム及び方法
JP5948933B2 (ja) ジョブ継続管理装置、ジョブ継続管理方法、及び、ジョブ継続管理プログラム
US9189303B2 (en) Shadow queues for recovery of messages
JPWO2005078581A1 (ja) システム、管理サーバ、引受サーバ、制御方法、制御プログラム、及び記録媒体
JP5686034B2 (ja) クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム
JP6631710B2 (ja) 仮想化管理プログラム、仮想化管理装置および仮想化管理方法
WO2012063478A1 (ja) セッション管理方法、セッション管理システム及びプログラム
US9390156B2 (en) Distributed directory environment using clustered LDAP servers
JP6272190B2 (ja) 計算機システム、計算機、負荷分散方法及びそのプログラム
CN111680015B (zh) 文件资源处理方法、装置、设备和介质
US20160234129A1 (en) Communication system, queue management server, and communication method
CN112039970A (zh) 一种分布式业务锁服务方法、服务端、系统及存储介质
JP2005301436A (ja) クラスタシステムおよびクラスタシステムにおける障害回復方法
JP4572581B2 (ja) データベース処理方法およびシステム並びにその処理プログラム
JP5544521B2 (ja) 状態管理方法、処理装置、および状態管理プログラム
US20240028611A1 (en) Granular Replica Healing for Distributed Databases
JP2008250427A (ja) 情報処理システムに用いられるバージョンアップ装置及び該装置を備えた情報処理システム並びに情報処理システムをバージョンアップするためのプログラム
JP6643706B2 (ja) 配布履歴管理プログラム、配布履歴管理装置および配布履歴管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200310

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200316

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210202

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: 20210914

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210927

R150 Certificate of patent or registration of utility model

Ref document number: 6963168

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150