JP4646002B2 - 接続管理の方法、システム、およびプログラム製品 - Google Patents

接続管理の方法、システム、およびプログラム製品 Download PDF

Info

Publication number
JP4646002B2
JP4646002B2 JP2005510813A JP2005510813A JP4646002B2 JP 4646002 B2 JP4646002 B2 JP 4646002B2 JP 2005510813 A JP2005510813 A JP 2005510813A JP 2005510813 A JP2005510813 A JP 2005510813A JP 4646002 B2 JP4646002 B2 JP 4646002B2
Authority
JP
Japan
Prior art keywords
connection
computer
connection information
message
cache memory
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.)
Expired - Fee Related
Application number
JP2005510813A
Other languages
English (en)
Other versions
JP2007529039A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2007529039A publication Critical patent/JP2007529039A/ja
Application granted granted Critical
Publication of JP4646002B2 publication Critical patent/JP4646002B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • 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/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、全般的には接続の管理に関する。
毎日、数百万バイトのデータが、インターネットなどのネットワークを介してコンピュータの間で転送される。このデータに、例えば、ウェブ・ページ、宣伝、音楽ファイル、電子メール・メッセージ、および文書が含まれる。このデータは、Fiber Channel Protocol(FCP)、Synchronous Optical Network(SONET)、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)、または類似物などの通信プロトコルを使用して送られる。TCP/IPを使用して通信プロトコルの全般的な機能を説明すると、TCPは、ソース・コンピュータと宛先コンピュータの両方で接続を確立し、維持するのに使用され、IPは、1つまたは複数のネットワークの間で宛先コンピュータにデータをルーティングするのに使用される。その結果、インターネットを介する通信で一般的に行われているように、第1ネットワーク上のコンピュータが、第2ネットワーク上のコンピュータとの接続を有することができ、これらのネットワークを、1つまたは複数の追加ネットワークを介して接続することができる。
TCP接続が確立されたならば、最大パケット・サイズが、ソース・コンピュータと宛先コンピュータの間でネゴシエートされる。TCPは、64キロバイトまでのパケットをサポートすることができるが、このサイズが、基礎になるネットワークによって制限される場合がある。例えば、イーサネット・ネットワークは、メッセージあたり1518バイトの最大値を提供する。どの場合でも、データは、通信のために1つまたは複数のTCP「セグメント」にパッケージ化され、ここで、各セグメントは、最大パケット・サイズ以下である。次に、各セグメントが、さらに、メッセージとして送信される前に、IPプロトコルまたは基礎になるネットワーク(例えば、イーサネット)あるいはその両方によってパッケージ化される。パッケージング処理の一部として、各プロトコル(例えば、TCP、IP)およびネットワーク(例えば、イーサネット)が、データの対応する「ヘッダ」に必要な情報を追加する場合がある。次に、ヘッダ情報が、プロトコル/ネットワークによって、メッセージの適切なルーティング、誤り検査、データの再構成などに使用される。
例えば、ソース・コンピュータが、TCP/IPを使用してイーサネット・ネットワークを介して宛先コンピュータに3キロバイトのデータを有するファイルを送信することを望む場合がある。当初、ファイルのデータを、3つのTCPセグメントにパッケージ化することができる。各TCPセグメントが、さらに、宛先コンピュータにメッセージとして送信される前に、IPプロトコルおよびイーサネット・ネットワークによってパッケージ化される。その結果、このメッセージに、イーサネット・ヘッダ、IPヘッダ、TCPヘッダ、およびデータが含まれることになる。イーサネット・ヘッダ内の情報は、各メッセージを宛先コンピュータに正しくルーティングするのに使用される。宛先コンピュータに到着したときに、各メッセージが、パッケージ化を解除され、各メッセージ内のTCPヘッダ情報およびIPヘッダ情報が、宛先コンピュータでファイルを再作成するためにデータを再組立するのに使用される。
確立されたならば、ソース・コンピュータと宛先コンピュータの間のTCP接続は、データ転送が完了するまでオープンされたままになる。少量のデータを転送するためのTCP接続は、「短命(short lived)」接続と考えられ、大量のデータを転送するためのTCP接続は、「長命(long lived)」接続と考えられる。インターネットなどのネットワークを介してデータを送信/受信するコンピュータは、同時に、数十個(例えば、エンド・ユーザ・コンピュータ)、または数百個もしくは数千個(例えば、サーバ)のTCP接続に関するメッセージを同時に処理する場合がある。受信された各メッセージを適当なTCP接続と突き合わせるために、コンピュータは、各TCP接続に関する情報を「接続テーブル(connectiontable)」内の項目で維持する。その結果、メッセージの受信時に、コンピュータは、TCPヘッダ内の情報を、適当な接続テーブル項目と突き合わせる。一致が見つかったときに、そのデータが、適当なアプリケーションによるさらなる処理のために転送される。
TCP接続を受信されたメッセージと突き合わせるのに必要な時間の長さが、コンピュータの総合性能にクリティカルになる可能性がある。一般に、コンピュータに、しばしば、接続テーブルなどのメモリの諸部分へのアクセスを高速化するためにキャッシュ・メモリが含まれる。キャッシュ・メモリ内では、通常、「最長未使用時間」(LRU)アルゴリズムが、キャッシュ・メモリが満杯のときにどのデータをキャッシュ・メモリからスワップ・アウトするかを決定するのに使用される。LRUアルゴリズムでは、最も長い間アクセスされなかったキャッシュ内のデータが、スワップ・アウトされるものとして選択される。LRUアルゴリズムは、しばしば、長い時間期間の間あるデータのブロックにアクセスしなくなる前に、あるデータのブロックに短い持続時間のうちに複数回アクセスするほとんどのプログラムについて良く働く。
接続テーブルは、通信中に頻繁にアクセスされる場合があるので、接続テーブルのすべてまたは一部が、キャッシュ・メモリに保管されている場合がある。しかし、スワップ・アウトされるキャッシュ・データを選択するときに、LRUアルゴリズムは、理想的に除去されるデータを選択しない場合がある。例えば、メッセージのルーティングに起因して、長命接続が、メッセージの間に長い時間を有する場合がある。その結果、長命接続に関する接続データが、より最近使用された短命接続に関するデータを優先して、除去について選択される場合がある。しかし、長命接続は、経時的により頻繁に使用されるので、長命接続データをキャッシュ・メモリに残すことがより効率的である場合がある。
その結果、接続の期待される使用量を判定し、期待される使用量に基づいて接続情報をメモリに保管する、接続情報を管理する改善された方法、システム、およびプログラム製品の必要が存在する。
本発明は、接続を管理する方法、システム、およびプログラム製品を提供する。具体的には、本発明は、接続が生成されるときに期待される使用量を判定するか、接続の寿命の間に期待される使用量を更新するか、その両方を行うことができる。どの場合でも、本発明は、対応する接続の期待される使用量に基づいて、メモリ内の接続情報を管理する。例えば、多い期待される使用量を有する接続の接続情報を、より高速のアクセスのためにキャッシュ・メモリに保管することができる。同様に、少ない期待される使用量を有する接続の接続情報を、キャッシュ・メモリからスワップ・アウトし、比較的低速のメモリに保管することができる。その結果、より頻繁に使用される接続の接続情報が、キャッシュ・メモリ内で見つかる可能性が高くなり、これによって、システムの通信性能が高まる。
本発明の第1の態様は、接続に関する接続情報を入手することと、前記接続に関する期待される使用量を判定することと、前記期待される使用量に基づいてメモリ内の前記接続情報を管理することとを含む、接続を管理する方法を提供する。
本発明の第2の態様は、接続に関する接続情報を入手する接続システムと、前記接続に関する期待される使用量を判定する使用量システムと、前記期待される使用量に基づいてメモリ内の前記接続情報を管理するストレージ・システムとを含む、接続管理システムを提供する。
本発明の第3の態様は、接続に関する接続情報を入手するように構成されたプログラム・コードと、前記接続に関する期待される使用量を判定するように構成されたプログラム・コードと、前記期待される使用量に基づいてメモリ内の前記接続情報を管理するように構成されたプログラム・コードとを含む、前記接続を管理するコンピュータ可読プログラム・コードを組み込んだコンピュータ可読媒体を含むコンピュータ・プログラム製品を提供する。
本発明の例示的態様は、本明細書で説明した問題および説明されていないが当業者が発見できる他の問題を解決するように設計されている。
本発明の上記および他の特徴は、添付図面と共に解釈される本発明の様々な実施形態の次の詳細な説明から、よりたやすく理解される。本発明の図面が、原寸通りでないことに留意されたい。図面は、本発明の通常の実施形態だけを示すことを意図されており、したがって、本発明の範囲を制限するものと解釈してはならない。図面では、類似する符号が、複数の図面の間で類似する要素を表す。
上で注記したように、本発明は、接続を管理する方法、システム、およびプログラム製品を提供する。具体的には、本発明は、接続が生成されるときに期待される使用量を判定するか、接続の寿命の間に期待される使用量を更新するか、その両方を行うことができる。どの場合でも、本発明は、対応する接続の期待される使用量に基づいて、メモリ内の接続情報(例えば、接続コンテキスト)を管理する。例えば、多い期待される使用量を有する接続の接続情報を、より高速のアクセスのためにキャッシュ・メモリに保管することができる。同様に、少ない期待される使用量を有する接続の接続情報を、キャッシュ・メモリからスワップ・アウトし、比較的低速のメモリに保管することができる。その結果、より頻繁に使用される接続の接続情報が、キャッシュ・メモリ内で見つかる可能性が高くなり、これによって、システムの通信性能が高まる。
図面に移ると、図1に、本発明の一実施形態に従って接続を管理するシステム10が示されている。図からわかるように、通信は、コンピュータ12Aと1つまたは複数のコンピュータ12B〜Dの間で通信リンク13を介して行うことができる。この点で、通信リンク13に、すべての現在既知のまたは後に開発される、例えば有向ハードワイヤド接続(例えば、シリアル・ポート)または別のタイプのネットワーク接続などの目的の機構を含めることができる。後者の場合に、ネットワークに、有線伝送方法または無線伝送方法あるいはその両方の任意の組合せを利用することができる、クライアント−サーバ(またはサーバ−サーバ)環境でのアドレス可能接続を含めることができる。この例では、サーバおよびクライアントが、トークン・リング、イーサネット、WiFi、または他の従来の通信標準規格などの従来のネットワーク接続性を利用することができる。さらに、ネットワークに、インターネット、広域ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)、仮想プライベート・ネットワーク(VPN)などを含む、すべてのタイプのネットワークを含めることができる。クライアントがインターネットを介してサーバと通信する場合に、接続性を、従来のTCP/IPソケットベース・プロトコルによって提供することができ、クライアントは、インターネット・サービス・プロバイダを利用して、サーバへの接続性を確立する。
コンピュータ12Aは、特定のハードウェアの動作を駆動するように設計され、他のシステム構成要素および入出力コントローラと互換である、すべてのタイプの汎用/特殊目的のコンピュータ化されたシステム(例えば、携帯電話機、ハンドヘルド・コンピュータ、携帯情報端末、ポータブル(ラップトップ)コンピュータ、デスクトップ・コンピュータ、ワークステーション、サーバ、メインフレーム・コンピュータなど)とすることができる。図からわかるように、コンピュータ12Aに、一般に、中央処理装置(CPU)14、メモリ16、入出力インターフェース18、バス20、および任意選択のストレージ・システム24を含めることができる。CPU 14に、単一の処理ユニットを含めることができ、あるいは、CPU 14を、例えばクライアントおよびサーバなど、1つまたは複数の位置の1つまたは複数の処理ユニットにまたがって分散させることができる。
メモリ16に、磁気媒体、光学媒体、ランダム・アクセス・メモリ(RAM)、読取専用メモリ(ROM)、データ・オブジェクトなどを含む、すべての既知のタイプのデータ記憶媒体または伝送媒体あるいはその両方を含めることができる。さらに、メモリ16は、頻繁に使用される情報を入手するのに必要な時間の量を減らすのに使用できるより高速のメモリを含むキャッシュ・メモリ17を含むものとして図示されている。ストレージ・システム24に、下で説明する本発明を実行するのに必要な情報のストレージを提供するすべてのタイプのデータ・ストレージを含めることができる。したがって、ストレージ・システム24に、磁気ディスク・ドライブまたは光ディスク・ドライブなど、1つまたは複数のストレージ・ドライブを含めることができる。さらに、CPU 14に似て、メモリ16またはストレージ・システム24あるいはその両方は、1つまたは複数のタイプのデータ・ストレージを含む単一の物理的位置に存在することができ、あるいは、様々な形の複数の物理的システムにまたがって分散させることができる。この点で、メモリ16またはストレージ・システム24あるいはその両方に、例えば、LAN、WAN、またはストレージ・エリア・ネットワーク(SAN)(図示せず)にまたがって分散されたデータを含めることができる。
入出力インターフェース18に、外部入出力デバイスとの間で情報を交換するすべてのシステムを含めることができる。入出力デバイス22に、例えば、通信デバイス、スピーカ、モニタ/ディスプレイ、ハンドヘルド・デバイス、キーボード、マウス、音声認識システム、音声出力システム、プリンタ、ファクシミリ、ポケット・ベルなどを含む、すべての既知のタイプの外部デバイスを含めることができる。しかし、コンピュータ12Aが、ハンドヘルド・デバイスまたは類似物である場合に、ディスプレイを、図示のように外部の入出力デバイス22としてではなく、コンピュータ12Aに含めることができることを理解されたい。バス20は、コンピュータ12A内の構成要素のそれぞれの間の通信リンクを提供し、同様に、電子、光、無線などを含むすべての既知のタイプの伝送リンクを含めることができる。さらに、図示されてはいないが、通信システム、システム・ソフトウェアなどの追加構成要素を、コンピュータ12Aに組み込むことができる。さらに、コンピュータ12B〜Dに、通常は、コンピュータ12Aに図示されたものと同一の要素(例えば、CPU、メモリ、入出力インターフェースなど)が含まれる。これらは、説明を短くするために、別々には図示されず、説明されない。
メモリ16に保管されるものとして図示されているのが、コンピュータ12Aの接続を管理する接続管理システム28である。一般に、接続管理システム28は、アプリケーション32が通信システム34を使用して1つまたは複数のコンピュータ12B〜D上のアプリケーション(図示せず)と通信することを可能にする接続情報30を管理する。接続情報30に、対応する接続に関する様々な情報が含まれる。例えば、接続情報30に、通信するコンピュータ(例えば、コンピュータ12Aおよびコンピュータ12B)の1つまたは複数のアドレス、接続を介して通信されるバイト数、メッセージのシーケンス番号、様々な状況インジケータなどを含めることができる。この点で、接続に、例えば、TCP/IP、FCP、SONETなどのすべてのタイプの接続を含めることができ、接続の各タイプの接続情報30が変化することを理解されたい。
接続管理システム28は、接続システム36、使用量システム38、およびストレージ・システム40が含まれるものとして図示されている。接続システム36は、接続に関する接続情報30を入手することができ、使用量システム38は、接続の期待される使用量を判定することができる。期待される使用量に基づいて、ストレージ・システム40が、メモリ16内の接続情報を管理することができる。例えば、期待される使用量が多い場合に、ストレージ・システム40は、接続情報30をキャッシュ・メモリ17に保管することができる。接続管理システム28内に図示された様々なシステムが、例示だけのために含まれることを理解されたい。その結果、これらのシステムのうちの1つまたは複数を、単一のシステムに組み合わせることもできるし、実装しないこともできる。さらに、これらのシステムのうちの1つまたは複数を、接続管理システム28と別々に実行できる別個のプログラムとして実装することができる。
上で注記したように、期待される使用量を、例えば使用量システム38によって判定することができる。一実施形態で、接続システム36は、接続を必要とするアプリケーション32から、接続について要求されるメッセージの総数を入手することができる。代替案では、プロトコル・ヘッダが、接続について要求されるメッセージの総数を示すことができ、あるいは、上位レベル・プロトコル(例えば、ファイル転送プロトコル(FTP))が、その情報を使用量システム38に供給することができる。例えば、TCPがデータをセグメントにパッケージ化するときに、セグメントの総数を、TCPヘッダに置き、使用量システム38によって読み取ることができる。どの場合でも、接続情報30が、キャッシュ・メモリ17からスワップ・アウトされる必要があるときに、ストレージ・システム40は、接続を使用して通信されるべき残っている最小の個数のメッセージを有する接続情報30を除去することができる。しかし、標準的なTCP/IPプロトコルが使用される場合に、メッセージの総数は入手可能でない。さらに、メッセージの総数が、接続が要求されるときに、または接続管理システム28によって管理されるすべての接続について、既知でない場合がある。その結果、使用量システム38が、期待される使用量を推定する必要がある場合がある。
一実施形態で、使用量システム38が、接続を使用して通信されたメッセージの個数を数えることによって、期待される使用量を判定することができる。この議論全体を通じて、「メッセージ」を、2つのコンピュータ12A〜Dの間で所与の量のデータを成功裡に通信するのに必要なすべての通信を指すものと解釈することができることを理解されたい。例えば、単一のメッセージに、ソース・コンピュータから宛先コンピュータに送信されるデータを含むデータ・メッセージおよび返報に宛先コンピュータから送信される肯定応答メッセージ(ACK)の交換を含めることができる。さらに、単一のメッセージに、データ・メッセージが正しく受信されないときに交換される、データ・メッセージの1つもしくは複数の再試行または1つもしくは複数の否定応答(NAK)あるいはその両方を含めることができる。代替案では、各受信されるか、送信されるか、その両方が行われるメッセージ(例えば、データ・メッセージ、ACK、NAKなど)を、例えば、1つのメッセージとして個別に数えることができる。
どの場合でも、接続について数えられたメッセージの個数を、「最も頻繁に使用された(mostfrequently used)」(MFU)選択アルゴリズムを実装するのに使用することができる。この場合に、キャッシュ・メモリ17のスワップが必要なときに、ストレージ・システム40が、多数のメッセージを有する接続を優先する。例えば、6つのメッセージを有する接続の前に、2つのメッセージを有する接続を、キャッシュ・メモリ17からの除去のために選択することができる。
代替案では、接続に関するメッセージの個数を使用して、接続を「長命」または「短命」として分類することができる。短命接続には、比較的少数のメッセージを必要とする接続が含まれ、長命接続は、比較的多数のメッセージを必要とする。一実施形態で、メッセージの期待される個数、したがって接続の分類を、統計的手法を使用して推定することができる。この場合に、ほとんどの接続が短命接続である可能性があるので、各新しい接続を、当初は短命としてマークすることができる。閾値を使用して、接続を短命から長命にマークしなおすことができる。この閾値は、事前にセットするか、ユーザが選択するか、前の接続および各接続を使用して通信されたメッセージの対応する個数に基づいて調整するか、これらの組合せを行うことができる。例えば、多数の接続が1つまたは2つのメッセージを通信するが、第3のメッセージが通信されたならば、一般に、その接続を使用して10個を超えるメッセージが通信されると判定される場合がある。その結果、第3のメッセージが、ある接続を使用して通信されたならば、その接続を長命としてマークすることができる。
接続が長命と分類されたならば、ストレージ・システム40は、キャッシュ・メモリ17内のそれに対応する接続情報30を優先することができる。例えば、1ビットを各接続に関連付けて、その接続が長命としてマークされているかどうかを示すことができる。このビットは、接続情報30の一部として保管することができ、あるいはハードウェア技法もしくはソフトウェア技法またはその両方によってすばやくスキャンできる別々のテーブルの一部として保管することができる。キャッシュ・メモリ17についてスワップが必要であるとストレージ・システム40が判定したときに、このビットをスキャンし、長命としてマークされていない接続の接続情報30を、除去について選択することができる。
もう1つの実施形態で、使用量システム38は、接続を使用して通信されるメッセージのサイズを使用することによって、その接続の期待される使用量を判定することができる。例えば、最も最近に通信されたメッセージに、許容される最大サイズが含まれる場合に、使用量システム38は、その接続が多い期待される使用量を有すると判定することができる。逆に、最も最近に通信されたメッセージが、許容される最大サイズより小さい場合に、使用量システム38は、その接続が少ない期待される使用量を有すると判定することができる。どの場合でも、ストレージ・システム40は、キャッシュ・メモリ17内で、多い期待される使用量を有する接続の接続情報30を優先する。その結果、スワップが必要なときに、ストレージ・システム40は、少ない期待される使用量を有する接続の接続情報30をキャッシュ・メモリ17から除去する。
もう1つの実施形態で、使用量システム38は、接続を要求したアプリケーション32のタイプを判定することによって、その接続の期待される使用量を判定することができる。例えば、接続システム36が、アプリケーション32から接続に関する要求を受け取ることができる。その要求で、アプリケーション32が、そのアプリケーションに、例えばTCP/IPを介して通信されるSmall Computer System Interface(SCSI)コマンド(iSCSI)を使用してディスク・データを通信するタイプのアプリケーションが含まれることを示すことができる。要求された接続を生成するときに、接続システム36は、期待される使用量を判定する際の使用量システム38による使用のために、アプリケーションのタイプを接続情報30に保管することができる。例えば、ディスク・データが通常は多数のメッセージを必要とする大きいブロック(例えば、メガバイト単位)で通信されるので、使用量システム38は、ディスク・データを通信するアプリケーション32について多い期待される使用量を割り当てる。
さらに、使用量システム38は、接続を使用して通信されるメッセージの内容を分析することができる。例えば、アプリケーション32が、iSCSIプロトコルを使用してデータを転送しようとしている場合に、最初のメッセージが、ディスク・データの転送を開始するための「ログイン」コマンドの送信に使用される。ある接続を使用して、iSCSIログイン・コマンドを含むメッセージが通信されたと使用量システム38が判定する場合に、その接続に、多い期待される使用量を割り当てることができる。
使用量システム38が、期待される使用量を判定する解決策の任意の組合せを使用できることを理解されたい。例えば、上で述べたように、使用量システム38は、長命接続として接続を割り当てるのに1ビットを使用し、通信されたメッセージのカウントを維持することができる。この場合に、キャッシュ・メモリ17がスワップを必要とするとストレージ・システム40が判定したときに、長命接続のビットを使用することができる。しかし、キャッシュ・メモリ17に、長命接続の接続情報30だけが含まれる場合に、メッセージの最も少ないカウントを有する接続の接続情報30を、除去のために選択することができる。
さらに、ストレージ・システム40は、接続情報30が使用されたとき以降の時間期間に基づいて、メモリ16内の接続情報30を管理することができる。例えば、ストレージ・システム40は、接続ごとに、接続情報30が使用された時刻を保管することができる。キャッシュ・メモリ17についてスワップが必要であるときに、まず期待される使用量を使用して、除去される接続情報30を判定することができる。しかし、期待される使用量が、複数の接続を十分に区別しない場合がある(例えば、すべての接続が長命としてマークされている)。この場合に、接続情報30が最後に使用されたとき以降の時間期間を使用して、除去すべき接続情報30を判定することができる。例えば、最も長い時間期間を有する接続情報30を除去することができる(すなわち、最長未使用時間(LRU))。というのは、これが、その接続がタイム・アウトしたことを示す場合があるからである。さらに、使用量システム38は、この時間期間を使用して、期待される使用量を判定することができる。例えば、接続情報30が使用されたとき以降にある長さの時間が経過した後に、長命接続を短命としてマークしなおすことができる。
上で説明した長命接続ビットを、例えば、通常はキャッシュ・メモリ17の制御構造に含まれる1つまたは複数の最長未使用時間(LRU)ビットを使用して、または長命としてマークされた項目が、LRUキャッシュ・アルゴリズムで通常そうであるようには加齢しない機構を標準キャッシュ制御構造内で構成することによって、キャッシュ・メモリ17の一部として実装できることを理解されたい。さらに、上で説明した時間期間を、接続情報30から取出し可能なフィールドとして保管することができる。代替案では、上で説明したデータの一部またはすべてを、接続情報30と別の対応する接続に保管し、これにリンクすることができる。後者の場合に、データを、ハードウェア技法またはソフトウェア技法あるいはこの両方によってすばやくスキャンできる別々のテーブルの一部として保管することができる。
図2に、本発明の一実施形態による、メッセージが受信されたときにコンピュータ12A(図1)によって実行される例示的方法ステップを示す。ステップS1で、通信システム34(図1)が、例えば、メッセージを受信し、そのメッセージを接続と突き合わせる。ステップS2で、ストレージ・システム40(図1)が、突き合わされた接続の接続情報30(図1)がキャッシュ・メモリ17(図1)にあるかどうかを判定することができる。接続情報30がキャッシュ・メモリ17内にない、すなわち、ステップS2のNOの場合に、流れは、ステップS3に進み、ここで、ストレージ・システム40が、キャッシュ・メモリ17が満杯であり、したがってスワップを必要とするかどうかを判定することができる。キャッシュ・メモリ17が満杯でない、すなわち、ステップS3のNOの場合に、ステップS4で、接続情報30がキャッシュ・メモリ17に保管される。しかし、キャッシュ・メモリ17が満杯である、すなわち、ステップS3のYESの場合に、ステップS5で、ストレージ・システム40が、少ない期待される使用量を有する(例えば、短命としてマークされているか、少ない個数のメッセージを有するか、使用されて以降の最長の時間を有するか、これらの組合せ)接続を選択し、その接続情報30を、突き合わされた接続の接続情報30と交換してキャッシュ・メモリ17からスワップ・アウトすることができる。
どの場合でも、ステップS6で、ストレージ・システム40が、突き合わされた接続の接続情報30を更新することができる(例えば、メッセージ・カウントを増分する、使用時刻を更新するなど)。ステップS7で、使用量システム38(図1)が、その接続の期待される使用量を変更しなければならないかどうかを判定する。例えば、使用量システム38は、メッセージの個数が、接続を長命として分類する閾値量を超えるかどうかを判定することができる。そうである場合に、ステップS8で、使用量システム38が、期待される使用量を調整することができる(例えば、接続を長命としてマークする)。ステップS7でNOの場合、またはステップS8の後に、制御は、別のメッセージがコンピュータ12Aによって受信されるまで、ステップS1に戻る。様々なステップを、特定のシーケンスで発生するものとして説明したが、独立のステップを、同時にまたは本明細書で説明したものと異なる順序で実行できることを理解されたい。さらに、本発明の様々な実施形態について、より少数またはより多数のステップを実行できることを理解されたい。
本発明を、ハードウェアで、ソフトウェアで、またはハードウェアとソフトウェアの組合せで実現できることを理解されたい。すべての種類のコンピュータ/サーバ・システムまたは本明細書で説明した方法を実行するように適合された他の装置が、適する。ハードウェアとソフトウェアの通常の組合せに、ロードされ実行されるときに、コンピュータ12またはユーザ30システムあるいはその両方を、これらが本明細書に記載のめいめいの方法を実行するように制御するコンピュータ・プログラムを伴う汎用コンピュータ・システムとすることができる。代替案では、本発明の1つまたは複数の機能タスクを実行する特殊化されたハードウェアを含む特定用途コンピュータ(有限状態機械)を利用することができる。本発明は、本明細書に記載の方法の実装を可能にするすべてのめいめいの特徴を含み、コンピュータ・システムにロードされたときにこれらの方法を実行することができるコンピュータ・プログラム製品で実施することもできる。この文脈でのコンピュータ・プログラム、ソフトウェア・プログラム、プログラム、またはソフトウェアは、情報処理能力を有するシステムに特定の機能を直接に、あるいは(a)別の言語、コード、もしくは表記への変換または(b)異なる材料形態での複製あるいはその両方の後に実行させることを意図された命令のセットの、任意の言語、コード、または表記でのすべての表現を意味する。
本発明の様々な実施形態の前述の説明は、例示および説明のために提示された。これは、網羅的であることまたは開示された正確な形態に本発明を制限することを意図されてはおらず、明らかに、多数の修正形態および変形形態が可能である。当業者に明白である可能性があるそのような修正形態および変形形態は、添付請求項によって定義される本発明の範囲に含まれることが意図されている。
本発明は、接続の管理、具体的には、より頻繁に使用される接続の接続情報をより高速のメモリに保管することに有用である。
接続を管理する例示的システムを示す図である。 メッセージが受信されたときに実行される例示的方法ステップを示す図である。

Claims (11)

  1. 複数のコンピュータが通信リンクで接続されたコンピュータシステムで用いられ、
    前記コンピュータの各々が、
    他のコンピュータとの接続に関する接続情報を入手する第1のステップと、
    前記他のコンピュータとの接続に関して当該接続毎に、その接続を使用して通信されるメッセージのサイズを判定することによって通信量を判定する第2のステップと、
    前記通信量に基づいて前記接続情報をキャッシュ・メモリに保管するか、前記キャッシュ・メモリからスワップ・アウトするか、を決定し、メモリ内の前記接続情報の管理を行って、前記メッセージが最大サイズである場合に当該メッセージに関する接続を優先する第3のステップと
    を実行する、接続を管理する方法。
  2. 前記コンピュータの各々は、前記他のコンピュータのアプリケーションから前記接続に関する要求を受け取る第4のステップと、
    前記アプリケーションのために前記接続を生成する第5のステップと
    をさらに実行する、請求項1に記載の方法。
  3. 前記第2のステップでは、さらに、前記接続情報が使用されたとき以降の時間期間を判定し、
    前記第3のステップでは、さらに、前記時間期間に基づいて前記接続情報を管理する請求項1に記載の方法。
  4. 前記第3のステップでは、前記通信量が少ない接続に関する前記接続情報をキャッシュ・メモリから除去することを実行する請求項1に記載の方法。
  5. 複数のコンピュータが通信リンクで接続されたコンピュータシステムで用いられ、
    前記コンピュータの各々が、
    他のコンピュータとの接続に関する接続情報を入手する接続システムと、
    前記他のコンピュータとの接続に関して当該接続毎に、その接続を使用して通信されるメッセージのサイズを判定することによって通信量を判定する通信量システムと、
    前記通信量に基づいて前記接続情報をキャッシュ・メモリに保管するか、前記キャッシュ・メモリからスワップ・アウトするか、を決定し、メモリ内の前記接続情報の管理を行って、前記メッセージが最大サイズである場合に当該メッセージに関する接続を優先するストレージ・システムと
    を含む、接続管理システム。
  6. 前記接続が、FCP接続およびTCP/IP接続のうちの少なくとも1つを含む、請求項に記載の接続管理システム。
  7. 前記通信量システムが、さらに、前記接続情報が使用されたとき以降の時間期間を判定し、前記ストレージ・システムが、さらに、前記時間期間に基づいて前記接続情報を管理する、請求項に記載の接続管理システム。
  8. 前記接続システムが、さらに、前記他のコンピュータのアプリケーションから前記接続に関する要求を受け取って、前記アプリケーションのために前記接続を生成する、請求項に記載の接続管理システム。
  9. 前記ストレージ・システムは、前記通信量が少ない接続に関する前記接続情報をキャッシュ・メモリから除去する、請求項に記載の接続管理システム。
  10. 前記コンピュータの各々は、前記接続を使用してメッセージを通信する通信システムをさらに含む、請求項に記載の接続管理システム。
  11. コンピュータに、請求項1からのいずれかに記載の方法を実行させるためのコンピュータ・プログラム。
JP2005510813A 2003-10-22 2003-10-22 接続管理の方法、システム、およびプログラム製品 Expired - Fee Related JP4646002B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2003/033687 WO2005050468A1 (en) 2003-10-22 2003-10-22 Connection management method, system, and program product

Publications (2)

Publication Number Publication Date
JP2007529039A JP2007529039A (ja) 2007-10-18
JP4646002B2 true JP4646002B2 (ja) 2011-03-09

Family

ID=34618852

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005510813A Expired - Fee Related JP4646002B2 (ja) 2003-10-22 2003-10-22 接続管理の方法、システム、およびプログラム製品

Country Status (7)

Country Link
US (1) US20060235957A1 (ja)
EP (1) EP1683032A4 (ja)
JP (1) JP4646002B2 (ja)
KR (1) KR100991891B1 (ja)
CN (1) CN100405349C (ja)
AU (1) AU2003304561A1 (ja)
WO (1) WO2005050468A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8244880B2 (en) 2003-10-22 2012-08-14 International Business Machines Corporation Connection management method, system, and program product
DE102006020864A1 (de) * 2006-05-04 2007-11-08 Siemens Ag Verfahren zur Ermittlung und Anzeige von wenigstens einer Information über ein Zielvolumen
US8990269B2 (en) 2007-11-28 2015-03-24 International Business Machines Corporation Intelligent client cache mashup for the traveler
GB2483111A (en) * 2010-08-27 2012-02-29 Zeus Technology Ltd Monitoring connections to servers and memory management
US20130290547A1 (en) * 2012-04-25 2013-10-31 Alan C. Berkema System for managing persistent connections
KR20160012751A (ko) * 2014-07-25 2016-02-03 에스케이하이닉스 주식회사 반도체 메모리 장치
US10402100B2 (en) * 2016-03-23 2019-09-03 Netapp Inc. Techniques for path optimization in storage networks
KR101906074B1 (ko) 2017-11-15 2018-10-08 재단법인 경북아이티융합 산업기술원 IoT 디바이스 운용 플랫폼 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003006036A (ja) * 2001-06-26 2003-01-10 Hitachi Ltd クラスタ化したアプリケーションサーバおよびデータベース構造を持つWebシステム
JP2003110603A (ja) * 2001-09-28 2003-04-11 Matsushita Electric Ind Co Ltd パケット処理装置及びそのパケット処理方法

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5634010A (en) * 1994-10-21 1997-05-27 Modulus Technologies, Inc. Managing and distributing data objects of different types between computers connected to a network
AU5875996A (en) * 1995-05-26 1996-12-11 Emulex Corporation Linked caches for context data search
US6317775B1 (en) * 1995-11-03 2001-11-13 Cisco Technology, Inc. System for distributing load over multiple servers at an internet site
US6339794B2 (en) * 1995-12-08 2002-01-15 Microsoft Corporation Wire protocol for a media server system
US5884297A (en) * 1996-01-30 1999-03-16 Telefonaktiebolaget L M Ericsson (Publ.) System and method for maintaining a table in content addressable memory using hole algorithms
US5852717A (en) * 1996-11-20 1998-12-22 Shiva Corporation Performance optimizations for computer networks utilizing HTTP
US5914956A (en) * 1997-02-03 1999-06-22 Williams; Joel R. Cache for improving the connection capacity of a communications switch
JPH10301872A (ja) * 1997-04-24 1998-11-13 Hitachi Ltd 通信制御方式
US6134589A (en) * 1997-06-16 2000-10-17 Telefonaktiebolaget Lm Ericsson Dynamic quality control network routing
DE69733129T2 (de) * 1997-06-20 2006-03-09 Alcatel Verfahren und Vorrichtung zur Übertragung von Datenpaketen mit Prioritäten
JPH11266258A (ja) * 1998-03-17 1999-09-28 Fujitsu Ltd Atmネットワーク装置
DE19811825B4 (de) * 1998-03-18 2004-09-16 Telefonaktiebolaget Lm Ericsson (Publ) Kommunikationssystem mit einer begrenzten Anzahl von Kommunikationskanälen
US6085246A (en) * 1998-04-15 2000-07-04 Unisys Corporation Multiple interface data communication system and method utilizing multiple connection library interfaces with buffer and lock pool sharing
US6105067A (en) * 1998-06-05 2000-08-15 International Business Machines Corp. Connection pool management for backend servers using common interface
US6178460B1 (en) * 1998-06-30 2001-01-23 International Business Machines Corporation Method of efficiently retrieving data on a computer network by monitoring performance of mirrored network locations
US6397253B1 (en) * 1998-10-06 2002-05-28 Bull Hn Information Systems Inc. Method and system for providing high performance Web browser and server communications
US6631118B1 (en) * 1998-11-10 2003-10-07 At&T Corp. System and method for providing dynamic bandwidth on demand
US6490615B1 (en) * 1998-11-20 2002-12-03 International Business Machines Corporation Scalable cache
US6636898B1 (en) * 1999-01-29 2003-10-21 International Business Machines Corporation System and method for central management of connections in a virtual private network
US7200110B1 (en) * 1999-03-24 2007-04-03 Alcatel Canada Inc. Method and apparatus for prioritized release of connections in a communications network
IE20000203A1 (en) * 1999-03-25 2001-02-21 Converge Net Technologies Inc Storage domain management system
US6519643B1 (en) * 1999-04-29 2003-02-11 Attachmate Corporation Method and system for a session allocation manager (“SAM”)
FI19992450A (fi) * 1999-06-08 2000-12-08 Nokia Networks Oy Yhteyden hyväksyntä tietoliikenneverkossa
US6459901B1 (en) * 1999-07-01 2002-10-01 At&T Corp. Wireless network resource allocation
US6308238B1 (en) * 1999-09-24 2001-10-23 Akamba Corporation System and method for managing connections between clients and a server with independent connection and data buffers
US20020069284A1 (en) * 2000-05-17 2002-06-06 Slemmer Michael Weston System and method of controlling network connectivity
AU2001296993A1 (en) * 2000-10-05 2002-04-15 Christopher Peiffer Connection management system and method
US7003572B1 (en) * 2001-02-28 2006-02-21 Packeteer, Inc. System and method for efficiently forwarding client requests from a proxy server in a TCP/IP computing environment
DE60202136T2 (de) * 2001-03-19 2005-12-01 International Business Machines Corp. Cache-eintrag-auswahlverfahren und -vorrichtung
US7277957B2 (en) * 2001-07-17 2007-10-02 Mcafee, Inc. Method of reconstructing network communications
US7107344B2 (en) * 2001-08-16 2006-09-12 International Business Machines Corporation Connection allocation technology
JP3828444B2 (ja) * 2002-03-26 2006-10-04 株式会社日立製作所 データ通信中継装置及びシステム
US7065191B2 (en) * 2002-04-04 2006-06-20 General Instrument Corporation Method and system for budgeting resources dedicated to processing non-voice data traffic
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
US7242941B2 (en) * 2003-05-16 2007-07-10 Motorola, Inc. Method and apparatus for performing soft-handoff in a wireless communication system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003006036A (ja) * 2001-06-26 2003-01-10 Hitachi Ltd クラスタ化したアプリケーションサーバおよびデータベース構造を持つWebシステム
JP2003110603A (ja) * 2001-09-28 2003-04-11 Matsushita Electric Ind Co Ltd パケット処理装置及びそのパケット処理方法

Also Published As

Publication number Publication date
JP2007529039A (ja) 2007-10-18
CN1860464A (zh) 2006-11-08
WO2005050468A1 (en) 2005-06-02
EP1683032A4 (en) 2010-03-03
US20060235957A1 (en) 2006-10-19
KR20060100383A (ko) 2006-09-20
AU2003304561A1 (en) 2005-06-08
KR100991891B1 (ko) 2010-11-04
CN100405349C (zh) 2008-07-23
EP1683032A1 (en) 2006-07-26

Similar Documents

Publication Publication Date Title
US10027712B2 (en) System and method for distributed load balancing with distributed direct server return
JP4886685B2 (ja) ネットワーク・プロトコル処理のオフロードにおいてメモリ管理をサポートする装置および方法
KR101344153B1 (ko) 네트워크 접속에서의 혼잡을 제어하는 혼잡 제어 모듈을 생성하는 시스템, 네트워크 접속에서의 혼잡을 제어하는 시스템, 및 컴퓨터 프로그램 제품
US20050060442A1 (en) Method, system, and program for managing data transmission through a network
JP4577853B2 (ja) ネットワーク・プロトコル処理のオフロードにおいて接続確立をサポートする装置および方法
US8009672B2 (en) Apparatus and method of splitting a data stream over multiple transport control protocol/internet protocol (TCP/IP) connections
US20060235957A1 (en) Connection management method, system, and program product
US20150019741A1 (en) Virtual Machine Mobility Using OpenFlow
US20060215695A1 (en) Protocol stack
JP2012018699A (ja) クライアントとサーバ間の接続を管理するためのシステムおよび方法
US8244880B2 (en) Connection management method, system, and program product
US20200044963A1 (en) Centralized label-based software defined network
US9137780B1 (en) Synchronizing multicast data distribution on a computing device
US20040047361A1 (en) Method and system for TCP/IP using generic buffers for non-posting TCP applications
US7305387B2 (en) Method and apparatus for managing data object size in a multi-user environment
JP2019106697A (ja) 相互接続ネットワークでのメッセージ再送遅延を動的に管理するための方法及びデバイス
US9584446B2 (en) Memory buffer management method and system having multiple receive ring buffers
US20070053349A1 (en) Network interface accessing multiple sized memory segments
US20060155819A1 (en) Methods and system for using caches
US10841204B2 (en) Fast lookup and update of current hop limit
TWI269564B (en) Method, apparatus, system, and article of manufacture for processing control data by an offload adapter
US7010548B2 (en) Sparse and non-sparse data management method and system
TWI280014B (en) Method, apparatus, system, and article of manufacture for grouping packets
US7403479B2 (en) Optimization of network adapter utilization in EtherChannel environment
US7532644B1 (en) Method and system for associating multiple payload buffers with multidata message

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090428

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20090428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101029

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20101126

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101129

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees