JP2018533854A - スケーラブルネットワークバッファ管理のためのシステム及び方法 - Google Patents

スケーラブルネットワークバッファ管理のためのシステム及び方法 Download PDF

Info

Publication number
JP2018533854A
JP2018533854A JP2017568320A JP2017568320A JP2018533854A JP 2018533854 A JP2018533854 A JP 2018533854A JP 2017568320 A JP2017568320 A JP 2017568320A JP 2017568320 A JP2017568320 A JP 2017568320A JP 2018533854 A JP2018533854 A JP 2018533854A
Authority
JP
Japan
Prior art keywords
data
connection
cloud service
client
timeout period
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
JP2017568320A
Other languages
English (en)
Other versions
JP6507274B2 (ja
Inventor
アグラワル・ムクンド
ドラビッド・サチン
パティル・ディーパック
Original Assignee
ベリタス テクノロジーズ エルエルシー
ベリタス テクノロジーズ エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ベリタス テクノロジーズ エルエルシー, ベリタス テクノロジーズ エルエルシー filed Critical ベリタス テクノロジーズ エルエルシー
Publication of JP2018533854A publication Critical patent/JP2018533854A/ja
Application granted granted Critical
Publication of JP6507274B2 publication Critical patent/JP6507274B2/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/72Admission control; Resource allocation using reservation actions during connection setup
    • H04L47/722Admission control; Resource allocation using reservation actions during connection setup at the destination endpoint, e.g. reservation of terminal resources or buffer space
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • H04L49/9052Buffering arrangements including multiple buffers, e.g. buffer pools with buffers of different sizes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

開示されるスケーラブルネットワークバッファ管理のためのコンピュータ実装方法は、(1)クライアントへの接続を介して、クラウドサービスに送信されるべきデータを受信することと、(2)データを少なくとも1つのデータバッファにバッファリングすることと、(3)データがクライアント接続のためのタイムアウト期間内にクラウドサービスに送信されないと決定することと、(4)タイムアウト期間の一部分の間のクライアント接続からの追加データの受信を遅延させることと、(5)タイムアウト期間が経過する前に、クライアント接続からのデータを少なくとも1つの二次データバッファにバッファリングすることであって、二次データバッファは、サイズがデータバッファよりも小さい、ことと、を含んでもよい。様々な別の方法、システム、及びコンピュータ可読メディアも開示される。

Description

クラウドデータストレージサービスは、価値あるデータを保護してオフサイトのデータストレージ、並びに高レベルの有用性及びセキュリティを提供するための一般普及した方法になっている。クラウドストレージサービスは、しかし、エンドユーザ、特に多数のユーザを有する組織が必要又は所望するユーザインターフェース又はデータ通信機能を提供しない場合がある。これらのニーズを満足させるために、バックアップ管理サービスがクラウドストレージプロバイダとエンドユーザとの間で仲介するために開発されてきた。バックアップ管理サービスは、企業又は多くのエンドユーザを有する別の組織によって、サードパーティによって、又は、クラウドストレージプロバイダ自体によって管理されてもよい。
バックアップ管理サービスが対象にする問題のいくつかは、待ち時間、バンド幅、並びにクライアント又はクラウドサービスエンドのいずれかでの接続タイムアウト、頻繁なリトライ、及びバンド幅過少利用をもたらす接続管理問題を含む場合がある。したがって、本開示は、スケーラブルネットワークバッファ管理のための追加の改善されたシステム及び方法に対するニーズを識別して対象にする。
以下で更に詳細に説明するように、本開示は、スケーラブルネットワークバッファ管理のための様々なシステム及び方法を説明し、これらのシステム及び方法は、データを一次及び二次データバッファにバッファリングすることと、クライアントとバッファ管理システムとの間、及びバッファ管理システムとクラウドサービスとの間の接続を維持することと、バンド幅利用を監視及び制御することと、によってクライアントとクラウドストレージサービスとの間のデータ通信を管理する。
一例では、スケーラブルネットワークバッファ管理のためのコンピュータ実装方法は、(1)クライアントへの接続を介して、クラウドサービスに送信されるべきデータを受信することと、(2)データを1つ若しくは2つ以上のデータバッファにバッファリングすることと、(3)データがクライアント接続のためのタイムアウト期間内にクラウドサービスに送信されないと決定することと、(4)タイムアウト期間の一部分の間のクライアント接続からの追加データの受信を遅延させること、(5)タイムアウト期間が経過する前に、サイズがデータバッファよりも小さい1つ若しくは2つ以上の二次データバッファにクライアント接続からのデータをバッファリングすることと、を含んでもよい。
いくつかの例では、クライアント接続からの追加データの受信を遅延させることは、データが受信されたとの、クライアントの通知を遅延させることを含んでもよい。いくつかの例では、コンピュータ実装方法は、データバッファがクライアント接続を介して受信されるデータをバッファリングするのに利用可能ではないと決定することを更に含んでもよい。いくつかの例では、クライアント接続からの追加データの受信を遅延させることは、クライアント接続からのデータを二次データバッファにバッファリングすることと、タイムアウト期間の一部分の間のクライアント接続からの追加データの受信を遅延させることと、を含んでもよい。一実施形態では、コンピュータ実装方法は、データがクライアント接続のためのタイムアウト期間内にクラウドサービスに送信されると決定することと、クラウドサービスがデータを受信したとのクライアント接続からの確認応答が受信されるまで、クライアント接続からの追加データの受信を遅延させることと、を更に含んでもよい。
一実施形態では、コンピュータ実装方法は、(1)クラウドサービスへの接続を介して、クライアントに送信されるべきデータを受信することと、(2)1つ若しくは2つ以上のデータバッファにデータをバッファリングすることと、(3)データがクラウドサービス接続のためのタイムアウト期間内にクライアントに送信されないと決定することと、(4)クラウドサービス接続タイムアウト期間の一部分の間のクラウドサービス接続からの追加データの受信を遅延させることと、(5)クラウドサービス接続タイムアウト期間が経過する前に、クラウドサービス接続からのデータを1つ若しくは2つ以上の二次データバッファにバッファリングすることと、を更に含んでもよい。
一実施形態では、コンピュータ実装方法は、(1)クラウドサービスへの1つ若しくは2つ以上の追加接続を維持することと、(2)追加データがクラウド接続のためのタイムアウト期間内にクライアント接続を介して受信されないと決定することと、(3)クラウド接続のためのタイムアウト期間が経過する前に、クラウドサービスへの追加接続を使用して、クラウドサービスにデータの少なくとも一部分を送信することと、を更に含んでもよい。いくつかの例では、コンピュータ実装方法は、クラウドサービスへの追加接続の数を、クライアントからのデータバッファを充填するためにデータを受信する時間に対するクラウド接続のためのタイムアウト期間の比に少なくとも部分的に基づいて維持するように決定することを更に含んでもよい。
一実施形態では、コンピュータ実装方法は、(1)クラウドサービスへの一群の接続についての全バンド幅利用を決定することと、(2)バンド幅利用が閾値を下回ると決定することと、(3)1つ若しくは2つ以上の接続がデータをクラウドサービスに送信する速度を徐々に増加させることと、を更に含んでもよい。一実施形態では、コンピュータ実装方法は、バンド幅利用が閾値を上回ると決定することと、時間間隔の間のクラウドサービスへの1つ若しくは2つ以上の接続でのデータの送信を遅延させることと、を更に含んでもよい。一実施形態では、コンピュータ実装方法は、1つ若しくは2つ以上のデータバッファを1つ若しくは2つ以上のより小さい二次データバッファとして再割り当てすることと、時間間隔の間のクライアント接続からの追加データの受信を遅延させることと、を更に含んでもよい。
一実施形態では、コンピュータ実装方法は、(1)クラウドサービスへのデータ送信の速度を低減させるべきであることを示す、データ送信のためのクラウドサービスからのリトライ通知を受信することと、(2)使用中の二次データバッファの数が閾値を上回ると決定することと、(3)時間間隔の間のデータ送信をリトライすることを遅延させることと、を更に含んでもよい。
一実施形態では、上記の方法を実装するためのシステムは、メモリに記憶されたいくつかのモジュール、例えば、(1)クライアントへの接続を介して、クラウドサービスに送信されるべきデータを受信する通信モジュールと、(2)データを1つ若しくは2つ以上のデータバッファにバッファリングするバッファリングモジュールと、(3)データがクライアント接続のためのタイムアウト期間内にクラウドサービスに送信されないと決定するトラフィックモジュールと、(4)タイムアウト期間の一部分の間のクライアント接続からの追加データの受信を遅延させる計量モジュールと、(5)タイムアウト期間が経過する前に、クライアント接続からのデータを、サイズがデータバッファよりも小さい1つ若しくは2つ以上の二次データバッファにバッファリングする二次バッファリングモジュールと、を備えてもよい。システムは、また、通信モジュール、バッファリングモジュール、トラフィックモジュール、計量モジュール、及び二次バッファリングモジュールを実行させるように構成された少なくとも1つの物理的プロセッサを備えてもよい。
いくつかの例では、上記の方法は、非一過性コンピュータ可読媒体上にコンピュータ可読命令としてコード化されてもよい。例えば、コンピュータ可読媒体は、1つ若しくは2つ以上のコンピュータ実行可能命令を含んでもよく、これらの命令は、コンピューティングデバイスの少なくとも1つのプロセッサによって実行されるとき、コンピューティングデバイスに、(1)クライアントへの接続を介して、クラウドサービスに送信されるべきデータを受信することと、(2)データを1つ若しくは2つ以上のデータバッファにバッファリングすることと、(3)データがクライアント接続のためのタイムアウト期間内にクラウドサービスに送信されないと決定することと、(4)タイムアウト期間の一部分の間のクライアント接続からの追加データの受信を遅延させることと、(5)タイムアウト期間が経過する前に、サイズがデータバッファよりも小さい1つ若しくは2つ以上の二次データバッファにクライアント接続からのデータをバッファリングすることと、を行わせてもよい。
上記で述べた実施形態のうちのいずれかからの機能は、本明細書で説明する一般原理に従って互いと組み合わせて使用されてもよい。これらの及び他の実施形態、特性、及び利点は、添付の図面及び請求項と併せて、以下の詳細な説明を一読することで、より完全に理解されよう。
添付の図面は、いくつかの例示的な実施形態を例解し、かつ本明細書の一部である。以下の説明とともに、これらの図面は、本開示の種々の原理を実証及び説明する。
スケーラブルネットワークバッファ管理のための例示的なシステムのブロック図である。 スケーラブルネットワークバッファ管理のための追加の例示的なシステムのブロック図である。 スケーラブルネットワークバッファ管理のための例示的な方法のフロー図である。 本明細書で説明された及び/又は例示された実施形態のうちの1つ若しくは2つ以上を実装できる例示的なコンピューティングシステムのブロック図である。 本明細書で説明された及び/又は例示された実施形態のうちの1つ若しくは2つ以上を実装できる例示的なコンピューティングネットワークのブロック図である。
図面を通じて、同一の参照文字及び説明は、類似であるが、必ずしも同一ではない要素を示す。本明細書において説明される例示的な実施形態は、種々の修正及び代替的な形態が可能であるが、具体的な実施形態が、図面において、例として示されており、かつ本明細書において詳細に説明される。しかしながら、本明細書において説明される例示的な実施形態は、開示される特定の形態に限定されることを意図されない。むしろ、本開示は、添付の請求項の範囲内にある全ての修正物、同等物、及び代替物を網羅する。
例示的な実施形態の詳細な説明
本開示は、概して、スケーラブルネットワークバッファ管理のためのシステム及び方法を対象にする。以下で更に詳細に説明するように、バッファ、接続、及びバンド幅を管理することによって、本明細書に記載のシステム及び方法が、効率的なバンド幅利用、並びに接続タイムアウト及び/又はリトライリクエストの数の低減によって、多くのバックアップクライアントとクラウドストレージサービスとの間のデータ通信を管理してもよい。
次に、図1〜図2を参照して、スケーラブルネットワークバッファ管理のための例示的なシステムについて詳細に説明する。対応するコンピュータ実装方法の詳細な説明が、また、図3に関連してなされる。それに加えて、本明細書に記載の実施形態のうちの1つ若しくは2つ以上を実装できる例示的なコンピューティングシステム及びネットワークアーキテクチャについての詳細な説明が、図4及び図5に関連してそれぞれなされる。
図1は、スケーラブルネットワークバッファ管理のための例示的なシステム100のブロック図である。この図に示すように、例示的なシステム100は、1つ若しくは2つ以上のタスクを実施するための1つ若しくは2つ以上のモジュール102を含んでもよい。例えば、そして以下で更に詳細に説明するように、例示的なシステム100は、クライアントへの接続を介して、クラウドサービスに送信されるべきデータを受信する通信モジュール104を含んでもよい。例示的なシステム100は、データを1つ若しくは2つ以上のデータバッファにバッファリングするバッファリングモジュール106を追加的に含んでもよい。例示的なシステム100は、また、データがクライアント接続のためのタイムアウト期間内にクラウドサービスに送信されないと決定するトラフィックモジュール108を含んでもよい。例示的なシステム100は、タイムアウト期間の一部分の間のクライアント接続からの追加データの受信を遅延させる計量モジュール110を追加的に含んでもよい。例示的なシステム100は、また、二次バッファリングモジュール112を含んでもよく、このモジュールは、タイムアウト期間が経過する前に、1つ若しくは2つ以上の二次データバッファにクライアント接続からのデータをバッファリングするが、この二次データバッファは、サイズがデータバッファよりも小さい。別個の要素として例解されるが、図1のモジュール102のうちの1つ若しくは2つ以上は、単一のモジュール又はアプリケーションの一部分を表し得る。
特定の実施形態において、図1のモジュール102のうちの1つ若しくは2つ以上は、コンピューティングデバイスによって実行されるとき、コンピューティングデバイスに、1つ若しくは2つ以上のタスクを実施させてもよい1つ若しくは2つ以上のソフトウェアアプリケーション又はプログラムを表してもよい。例えば、そして以下で更に詳細に説明するように、モジュール102のうちの1つ若しくは2つ以上は、1つ若しくは2つ以上のコンピューティングデバイスに記憶されて、その上で動作するように構成されたソフトウェアモジュールを表してもよく、これらのコンピューティングデバイスとは、図2に示すデバイス(例えば、コンピューティングデバイス202、クラウドサービス206、及び/又はクライアント208)、図4のコンピューティングシステム410、及び/又は図5の例示的なネットワークアーキテクチャ500の部分等である。図1のモジュール102のうちの1つ若しくは2つ以上は、また、1つ若しくは2つ以上のタスクを実施するように構成された1つ若しくは2つ以上の特殊目的のコンピュータの全て又は部分を表してもよい。
図1に示すように、例示的なシステム100は、また、クラウドデータストア120等の1つ若しくは2つ以上のデータベースを含んでもよい。一例では、クラウドデータストア120は、デスクトップコンピュータ、ラップトップ若しくはノートコンピュータ、タブレットコンピュータ等のコンピューティングデバイス、及び/又はスマートフォン等のモバイルデバイス等からのデータを記憶するように構成されてもよい。
クラウドデータストア120は、単一のデータベース若しくはコンピューティングデバイス、又は複数のデータベース若しくはコンピューティングデバイスの部分を表してもよい。例えば、クラウドデータストア120は、図2のコンピューティングデバイス202の一部分若しくはクラウドサービス206、図4のコンピューティングシステム410、及び/又は図5の例示的なネットワークアーキテクチャ500の部分を表してもよい。その代替として、図1のクラウドデータストア120は、コンピューティングデバイスによってアクセスが可能な1つ若しくは2つ以上の物理的に分離したデバイス、例えば、図2のコンピューティングデバイス202の一部分若しくはクラウドサービス206、図4のコンピューティングシステム410、及び/又は図5の例示的なネットワークアーキテクチャ500の部分等を表してもよい。
図1の例示的なシステム100は、様々な態様で実装されてもよい。例えば、例示的なシステム100の全て又は一部分は、図2の例示的なシステム200の部分を表してもよい。図2に示すように、システム200は、ネットワーク204を介してクラウドサービス206と通信するコンピューティングデバイス202を含んでもよい。一例では、コンピューティングデバイス202は、1つ若しくは2つ以上のモジュール102によってプログラムされてもよく、及び/又はクラウドデータストア120にデータの全て又は一部分を記憶してもよい。それに付加又は代替して、クラウドサービス206は、1つ若しくは2つ以上のモジュール102とプログラムされてもよく、及び/又はクラウドデータストア120にデータの全て又は一部分を記憶してもよい。
一実施形態では、図1の1つ若しくは2つ以上のモジュール102は、コンピューティングデバイス202及び/又はクラウドサービス206のうちの少なくとも1つのプロセッサによって実行されると、コンピューティングデバイス202及び/又はクラウドサービス206が1つ若しくは2つ以上のクライアント208とクラウドサービス206との間のデータ通信を管理することを可能にする。例えば、そして、以下で更に詳細に説明するように、通信モジュール104は、クライアント208への接続を介して、クラウドサービス206に送信されるべきデータ210を受信してもよい。バッファリングモジュール106は、次いで、少なくとも1つのデータバッファ212にデータ210をバッファリングしてもよい。トラフィックモジュール108は、次いで、データ210がクライアント接続のためのタイムアウト期間214内にクラウドサービス206に送信されないと決定してもよい。それに応じて、計量モジュール110は、タイムアウト期間214の一部分の間のクライアント接続からの追加データ216の受信を遅延させてもよい。二次バッファリングモジュール112は、タイムアウト期間214が経過する前に、サイズがデータバッファ212よりも小さい少なくとも1つの二次データバッファ218にクライアント接続からのデータ210をバッファリングしてもよい。
コンピューティングデバイス202及びクライアント208は、コンピュータ実行可能命令を読み取ることができる任意の種類又は形式のコンピューティングデバイスを概して表す。コンピューティングデバイス202及びクライアント208の例としては、ラップトップ、タブレット、デスクトップ、サーバ、携帯電話、個人情報機器(PDA)、マルチメディアプレイヤー、組込みシステム、ウェアラブルデバイス(例えば、スマートウォッチ、スマートグラス等)、ゲーム機、これらのもののうちの1以上の組合せ、図4の例示的なコンピューティングシステム410、又は任意の別の好適なコンピューティングデバイスが挙げられるが、これらに限定されない。
クラウドサービス206は、データを受信、記憶、及び送信できる任意の種類又は形式のコンピューティングデバイスを概して表す。クラウドサービス206の例としては、様々なデータベースサービスを提供するように、及び/又はある種のソフトウェアアプリケーションを動作させるように構成されたアプリケーションサーバ及びデータベースサーバが挙げられるが、これらに限定されない。
ネットワーク204は、通信又はデータ転送を容易にすることが可能な任意の媒体又はアーキテクチャを概して表す。ネットワーク204の例としては、イントラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、インターネット、電力線通信(PLC)、セルラネットワーク(例えば、汎欧州デジタル移動電話方式(GSM(登録商標))ネットワーク)、図5の例示的なネットワークアーキテクチャ500等が挙げられるが、これらに限定されない。ネットワーク204は、無線又は有線接続を使用して、通信又はデータ転送を容易にし得る。一実施形態では、ネットワーク204は、コンピューティングデバイス202とクラウドサービス206との間の通信を容易にしてもよい。
図3は、スケーラブルネットワークバッファ管理のための例示的なコンピュータ実装方法300のフロー図である。図3に示すステップは、任意の好適なコンピュータ実行可能なコード及び/又はコンピューティングシステムによって実施されてもよい。いくつかの実施形態では、図3に示すステップは、図1のシステム100、図2のシステム200、図4のコンピューティングシステム410、及び/又は図5の例示的なネットワークアーキテクチャ500の部分の構成要素のうちの1つ若しくは2つ以上によって実行されてもよい。
図3に示すように、ステップ302において、本明細書に記載の1つ若しくは2つ以上のシステムは、クライアントへの接続を介して、クラウドサービスに送信されるべきデータを受信してもよい。例えば、通信モジュール104は、図2のコンピューティングデバイス202の一部として、クラウドサービスに送信されるべきデータ210をクライアント208への接続を介して受信してもよい。
本明細書で使用されるとき、用語「クラウドサービス」又は「クラウドストレージサービス」は、データストレージのためのオンライン及び/又はサードパーティホスティングを個人又は組織のクライアントに提供する(例えば、サービスとしてストレージを提供する)ことができる任意のサービス、プラットフォーム、及び/又はインフラストラクチャを概して指す。いくつかの例では、クラウドコンピューティングサービスは、クライアントに全ての基礎システムへの完全なアクセスを提供することなく、1つ若しくは2つ以上のクライアントにデータの表示を提供してもよい。例えば、クラウドコンピューティングサービスは、消費者が基礎ハードウェアリソースを制御することを要求及び/又は許容することなく、消費者がサービス要件及び/又はリソース要件を特定することを可能にしてもよい。クラウドコンピューティングサービスの例としては、AMAZON SIMPLE STORAGE SERVICE、GOOGLE CLOUD SERVICE、MICROSOFT ONEDRIVE FOR BUSINESS、及びAT&T CLOUD STORAGEが挙げられるが、これらに限定されない。
通信モジュール104は、様々な方法でクラウドサービスに送信されるべきクライアントからのデータを受信してもよい。例えば、通信モジュール104は、クライアントへのトランスポート層セキュリティ/セキュアソケット層(TSL/SSL)接続を確立することにより、クライアント及びサーバの両方が、他方の識別を認証してもよく、そして、データは送信中に暗号化されてもよい。通信モジュール104は、その代替として、接続を確立する及びクライアントからデータを受信するための任意の好適なプロトコルを使用してもよい。
ステップ304において、本明細書に記載のシステムのうちの1つ若しくは2つ以上のものは、少なくとも1つのデータバッファにデータをバッファリングしてもよい。例えば、バッファリングモジュール106は、図2のコンピューティングデバイス202の一部分として、少なくとも1つのデータ210バッファにデータ210をバッファリングしてもよい。本明細書で使用されるとき、用語「データバッファ」は、任意のストレージバッファ、キャッシュ、及び/又は別のデータ構造、あるいはデータを収集及び/又は一時的に記憶するための機構を指す場合がある。
バッファリングモジュール106は、様々な方法でデータをバッファリングしてもよい。例えば、単一の大きいバッファをクライアント接続に割り当てることによりデータをクライアントからクラウドサービスに同期して送信するよりむしろ、バッファリングモジュール106は、いくつかのより小さいバッファを各クライアント接続に割り当ててもよい。各バッファが充填されると、そして、接続に利用できる追加バッファが存在する限り、バッファリングモジュール106は、追加データを送るためにクライアントに制御を戻してもよい。
ステップ306において、本明細書に記載のシステムのうちの1つ若しくは2つ以上が、データがクライアント接続のためのタイムアウト期間内にクラウドサービスに送信されないと決定してもよい。例えば、トラフィックモジュール108は、図2のコンピューティングデバイス202の一部分として、データ210がクライアント208への接続のためのタイムアウト期間214内にクラウドサービスに送信されないと決定してもよい。
トラフィックモジュール108は、データが様々な方法でクライアント接続ためのタイムアウト期間内にクラウドサービスに送信されないと決定してもよい。例えば、トラフィックモジュール108は、タイムアウト期間についての初期値としてコンピューティングシステムに対して構成されたタイムアウト値を使用してもよい。トラフィックモジュール108が、構成されたタイムアウト期間の前にクライアントが接続をドロップするのを観察した場合、トラフィックモジュール108は、タイムアウト値をクライアントによって使用されるタイムアウト値まで低減してもよい。いくつかの例では、トラフィックモジュール108は、データがクラウドサービスに送信される前にクライアントタイムアウト期間が満了する可能性を判定するために送信時間統計量を維持してもよい。送信時間統計量は、平均送信時間、送信時間範囲、及び送信時間標準偏差を含んでもよい。
ステップ308において、本明細書に記載の1つ若しくは2つ以上のシステムは、タイムアウト期間の一部分の間のクライアント接続からの追加データの受信を遅延させてもよい。例えば、計量モジュール110は、図2のコンピューティングデバイス202の一部分として、タイムアウト期間214の一部分の間の接続からクライアント208への追加データ216の受信を遅延させてもよい。
計量モジュール110は、様々な方法でクライアントからの追加データの受信を遅延させてもよい。例えば、データがクライアントから受信されてデータバッファに記憶された後に、計量モジュール110は、データが受信されたというクライアントの通知を遅延させることによって、クライアント接続からの追加データの受信を遅延させてもよい。このように、データがクラウドサービスに送信される間、クライアントからのデータ受信は減速され得るが、データ受信はクライアントのためのタイムアウト期間の終了の前では継続する。接続を再確立してクライアントに明白なデータ脱落の再送信を試みさせることが、非常に時間を要する場合がある。計量モジュール110は、クライアントからのデータ受信の速度を制御することによって、関連する影響がデータスループットに及ぶことを回避してもよい。
一実施形態では、本明細書に記載のシステムは、(1)データがクライアント接続のためのタイムアウト期間内にクラウドサービスに送信されると決定することと、(2)クラウドサービスがデータを受信したとの確認応答が受信されるまで、クライアント接続からの追加データの受信を遅延させることと、を含んでもよい。例えば、図2のコンピューティングデバイス202の一部分として、トラフィックモジュール108は、たとえデータがクライアントのタイムアウト期間内にクラウドサービスに送信されると予想されるときでも、クライアントのタイムアウト期間が満了する前にはクラウドサービスからの予想される確認応答が受信されない可能性が閾値を上回ると決定してもよい。クライアントへの接続喪失の確率を減少させるために、トラフィックモジュール108は、追加データの受信を遅延させることを計量モジュール110に指示してもよく、その結果、データバッファは、続けてクライアントからデータを受信することが利用可能になり、そして、スループットが一定速度付近に維持され得る。
ステップ310において、本明細書に記載の1つ若しくは2つ以上のシステムは、タイムアウト期間が経過する前のデータバッファよりもサイズが小さい少なくとも1つの二次データバッファにクライアント接続からのデータをバッファリングしてもよい。例えば、二次バッファリングモジュール112は、図2のコンピューティングデバイス202の一部分として、タイムアウト期間214が経過する前に、接続からクライアント208へのデータ210を、データ210バッファよりもサイズが小さい少なくとも1つの二次データバッファ218にバッファリングしてもよい。
用語「二次データバッファ」は、本明細書で使用されるとき、任意のストレージバッファ、キャッシュ、及び/又は別のデータ構造、あるいはデータを収集、及び/又は一時的に記憶するための機構を概して指す。二次データバッファは、一次データバッファよりもずっと小さくてもよく、そして、クライアントデータ送信の小さい倍数であるようにサイズ設定されてもよい。二次データバッファは、予備的に維持され、クライアントからのデータ送信の速度を制御するために必要なときにだけ使用されるように意図されるので、二次データバッファは、全バッファメモリのうちの小さい割合(5〜10パーセント)に相当するだけでよい。
二次バッファリングモジュール112は、様々な態様で二次バッファにクライアントデータをバッファリングしてもよい。例えば、二次バッファリングモジュール112は、クライアント接続を介して受信されたデータをバッファリングすることと、クライアント接続からのデータを二次データバッファにバッファリングすることと、タイムアウト期間の一部分の間のクライアント接続からの追加データの受信を遅延させることとのためには、データバッファが利用できないと決定してもよい。
一実施形態では、二次バッファリングモジュール112は、クラウドサービスへのデータの送信が減速したこと、そして、追加の二次データバッファが必要とされ得ることを決定してもよい。二次バッファリングモジュール112は、次いで、より小さい二次データバッファとして1つ若しくは2つ以上のデータバッファを再割り当てし、そして、時間間隔の間のクライアント接続からの追加データの受信を遅延させてもよい。そうすることによって、二次バッファリングモジュール112は、クライアントのタイムアウト期間が満了する前において、クライアントからデータを受信して、バッファリングし続けてもよい。
クライアントからのデータ送信を管理することに加えて、本明細書に記載のシステム及び方法は、クラウドサービスへのデータ送信を管理するためにデータバッファ及び追加接続を使用してもよい。クライアントの場合と同様に、クラウドサービスへの接続は、データがタイムアウト期間内の接続において送信されないときに、ドロップされる場合がある。いくつかの例では、本明細書に記載のシステムは、クラウドサービスへの追加接続の数を、クライアントからのデータバッファを充填するためにデータを受信する時間に対するクラウド接続のためのタイムアウト期間の比に少なくとも部分的に基づいて維持しなければならない。
一実施形態では、本明細書に記載のシステムは、(1)クラウドサービスへの1つ若しくは2つ以上の追加接続を維持することと、(2)追加データがクラウド接続のためのタイムアウト期間内にクライアント接続を介して受信されないと決定することと、(3)クラウド接続のためのタイムアウト期間が経過する前に、クラウドサービスへの追加接続を使用してクラウドサービスにデータの少なくとも一部分を送信することと、を含んでもよい。例えば、図2のコンピューティングデバイス202の一部分として、トラフィックモジュール108は、クライアント208が、速度クラウドサービス206が受信できるよりもずっと遅い速度でデータを送信していると決定してもよい。クラウドサービス206への接続がタイムアウトすることを防止するために、トラフィックモジュール108は、ある数のクラウドサービス206への追加接続がクライアント208の専用でなければならないと決定してもよい。クライアントから受信されてバッファリングされるデータの一部分は、クラウドサービスへの接続がタイムアウトしないように、接続の各々において順に送信されてもよい。
一実施形態では、本明細書に記載のシステムは、(1)クラウドサービスへの複数の接続についての全バンド幅利用を決定することと、(2)バンド幅利用が閾値を下回ると決定することと、(3)1つ若しくは2つ以上の接続がデータをクラウドサービスに送信する速度を徐々に増加させることと、を含んでもよい。例えば、図2のコンピューティングデバイス202の一部分として、トラフィックモジュール108は、クラウドサービスへの各接続についてのバンド幅利用を測定して、全ての接続について全バンド幅利用の割合を計算してもよい。トラフィックモジュール108が、バンド幅利用が閾値(クラウドサービスへの接続に割り当てられる最大のバンド幅等)を下回ると決定する場合、トラフィックモジュール108は、1つ若しくは2つ以上のクラウドサービス接続に対するデータ送信速度を徐々に増加させるように計量モジュール110に信号を送ってもよい。そうすることによって、本明細書に記載のシステムは、可能な限り多くの利用可能なバンド幅を利用して、クライアントスロットリング保証の侵害を回避してもよい。
一実施形態では、本明細書に記載のシステムは、(1)バンド幅利用が閾値を上回ると判定することと、(2)時間間隔の間のクラウドサービスへの1つ若しくは2つ以上の接続でのデータの送信を遅延させることと、を備えてもよい。例えば、図2のコンピューティングデバイス202の一部分として、トラフィックモジュール108は、全バンド幅利用が閾値を上回ると決定し、そして、クラウドサービスへの1つ若しくは2つ以上の接続でのデータ送信を遅延させるように計量モジュール110に指示してもよい。そうすることによって、本明細書に記載のシステムは、クラウドサービスへのデータ送信以外のコンピューティングデバイス202で動作するプロセスに対するサービスの拒否を防止してもよい。送信遅延によるデータ送信速度の徐々の増加をバンド幅利用による送信遅延と組み合わせることによって、利用可能なバンド幅の割合は、別のプロセスへのサービスの拒否を防止しながら、そのバンド幅を利用する接続に対して確保され得る。
一実施形態では、本明細書に記載のシステムは、(1)クライアントに送信されるべきデータをクラウドサービスへの接続を介して受信することと、(2)データを少なくとも1つのデータバッファにバッファリングすることと、(3)データがクラウドサービス接続のためのタイムアウト期間内にクライアントに送信されないと決定することと、(4)クラウドサービス接続タイムアウト期間の一部分の間のクラウドサービス接続からの追加データの受信を遅延させることと、(5)クラウドサービス接続タイムアウト期間が経過する前に、クラウドサービス接続からのデータを1つ若しくは2つ以上の二次データバッファにバッファリングすることと、を備えてもよい。例えば、図2のコンピューティングデバイス202の一部分として、(1)通信モジュール104は、クライアントに送信されるべきデータをクラウドサービスへの接続を介して受信してもよく、(2)バッファリングモジュール106は、データを少なくとも1つのデータバッファにバッファリングしてもよく、(3)トラフィックモジュール108は、データがクラウドサービス接続のためのタイムアウト期間内にクライアントに送信されないと決定してもよく、(4)計量モジュール110は、クラウドサービス接続タイムアウト期間の一部分の間のクラウドサービス接続からの追加データの受信を遅延させてもよく、及び(5)二次バッファリングモジュール112は、クラウドサービス接続タイムアウト期間が経過する前に、クラウドサービス接続からのデータを少なくとも1つの二次データバッファにバッファリングしてもよい。
本明細書に記載のシステムは、バックアッププロセスを多くの態様でミラーリングする方法を使用してクラウドサービスからクライアントへのデータを復元してもよいが、データバッファと二次データバッファの使用におけるいくらかの差を伴う。クラウドからのデータを復元するとき、バッファリングモジュール106は、二次データバッファにバッファメモリのうちのより大きい割合を割り当ててもよい。例えば、バッファメモリのうちの70〜80パーセントが、データバッファに割り当てられ、残りのメモリが、二次データバッファに割り当てられてもよい。利用可能なデータバッファが充填されたとき、二次バッファリングモジュール112は、クラウドサービスへのデータ読取りリクエスト間のクラウドタイムアウトの20〜30パーセントの遅延を伴って、クラウドサービスから受信されるデータによって二次データバッファを充填し始める。そうすることによって、本明細書に記載のシステムは、結果としてデータスループットの損失をもたらす、クラウドサービスへの接続がタイムアウトすることを防止してもよい。
上記のように、本明細書に記載のシステム及び方法は、多数のバックアップクライアントとクラウドストレージサービスとの間のデータ通信を管理してもよい。本明細書に記載のシステム及び方法は、データバッファを管理することによってバンド幅利用を最適化して、より大きい全体的なデータスループットを提供することにより、バックアップクライアント又はクラウドサービスのいずれかとの接続損失を防止する。全ての接続に利用可能なバンド幅のプールとして利用可能なバンド幅を管理することによって、本明細書に記載のシステム及び方法は、バッファ管理コンピューティングデバイス上で動作する別のプロセスへのサービスの拒否を防止しながら、バンド幅利用を徐々に増加させてもよい。
図4は、本明細書に記載及び/又は例示される実施形態のうちの1つ若しくは2つ以上を実装することが可能な例示的なコンピューティングシステム410のブロック図である。例えば、コンピューティングシステム410の全て又は一部分は、単独又は他の要素との組合せのいずれかで、本明細書に記載のステップのうちの1つ若しくは2つ以上(図3に例示するステップのうちの1つ若しくは2つ以上等)を実施してもよいか及び/又は実施するための手段であってもよい。コンピューティングシステム410の全て又は一部分は、また、本明細書に記載及び/又は例示する任意の他のステップ、方法、又はプロセスを実施してもよいか及び/又は実施するための手段であってもよい。
コンピューティングシステム410は、コンピュータ可読命令を実行することが可能な任意のシングル若しくはマルチプロセッサコンピューティングデバイス又はシステムを広く表す。コンピューティングシステム410の例としては、限定することなく、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散コンピューティングシステム、ハンドヘルドデバイス、又は任意の他のコンピューティングシステム又はデバイスが挙げられる。その最も基本的な構成において、コンピューティングシステム410は、少なくとも1つのプロセッサ414、及びシステムメモリ416を含んでもよい。
プロセッサ414は、データを処理すること、又は命令を解釈及び実行することが可能な任意のタイプ又は形式の物理処理ユニット(例えば、ハードウェア実装中央処理ユニット)を概して表す。特定の実施形態において、プロセッサ414は、ソフトウェアアプリケーション又はモジュールから命令を受信してもよい。これらの命令は、プロセッサ414に、本明細書に記載及び/又は例示する例示的な実施形態のうちの1つ若しくは2つ以上の機能を実施させてもよい。
システムメモリ416は、データ及び/又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の揮発性又は非揮発性記憶デバイス若しくは媒体を概して表す。システムメモリ416の例としては、限定することなく、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられる。必須ではないが、特定の実施形態においては、コンピューティングシステム410は、揮発性メモリユニット(例えば、システムメモリ416等)、及び非揮発性記憶デバイス(例えば、以下で詳細に説明するような1次記憶デバイス432等)の両方を含んでもよい。一実施例において、図1からのモジュール102のうちの1つ若しくは2つ以上は、システムメモリ416にロードされてもよい。
ある実施形態において、例示的なコンピューティングシステム410は、また、プロセッサ414及びシステムメモリ416に加えて、1つ若しくは2つ以上の構成要素又は要素を含んでもよい。例えば、図4に示すように、コンピューティングシステム410は、メモリコントローラ418と、入力/出力(I/O)コントローラ420と、通信インターフェース422とを含んでもよく、これらのそれぞれは、通信インフラストラクチャ412を介して相互接続されてもよい。通信インフラストラクチャ412は、コンピューティングデバイスの1つ若しくは2つ以上の構成要素間の通信を容易にすることが可能な任意のタイプ又は形式のインフラストラクチャを概して表す。通信インフラストラクチャ412の例としては、限定することなく、通信バス(業界標準アーキテクチャ(ISA)、周辺構成要素相互接続(PCI)、PCIエクスプレス(PCIe)、又は類似のバス等)、及びネットワークが挙げられる。
メモリコントローラ418は、メモリ若しくはデータを取り扱うことが可能な、又はコンピューティングシステム410の1つ若しくは2つ以上の構成要素間の通信を制御することが可能な任意の種類又は形式のデバイスを概して表す。例えば、特定の実施形態では、メモリコントローラ418は、通信インフラストラクチャ412を介して、プロセッサ414、システムメモリ416、及びI/Oコントローラ420間の通信を制御してもよい。
I/Oコントローラ420は、コンピューティングデバイスの入出力機能を調整及び/又は制御することが可能な任意のタイプ又は形式のモジュールを概して表す。例えば、特定の実施形態では、I/Oコントローラ420は、プロセッサ414、システムメモリ416、通信インターフェース422、表示アダプタ426、入力インターフェース430、及び記憶インターフェース434等のコンピューティングシステム410の1つ若しくは2つ以上の要素間のデータの転送を制御してもよく、又は容易にしてもよい。
通信インターフェース422は、例示的なコンピューティングシステム410と、1つ若しくは2つ以上の追加のデバイスとの間の通信を容易にすることが可能な任意のタイプ又は形式の通信デバイス又はアダプタを広く表す。例えば、特定の実施形態では、通信インターフェース422は、コンピューティングシステム410と、追加のコンピューティングシステムを含む私的又は公的ネットワークとの間の通信を容易にしてもよい。通信インターフェース422の例としては、限定することなく、有線ネットワークインターフェース(ネットワークインターフェースカード等)、無線ネットワークインターフェース(無線ネットワークインターフェースカード等)、モデム、及び任意の他の好適なインターフェースが挙げられる。少なくとも1つの実施形態では、通信インターフェース422は、インターネット等のネットワークへの直接的なリンクを介して、遠隔サーバへの直接的な接続を提供してもよい。通信インターフェース422は、また、例えば、ローカルエリアネットワーク(イーサネット(登録商標)ネットワーク等)、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、セルラ電話接続、衛星データ接続、又は任意の他の好適な接続を通じて、かかる接続を間接的に提供してもよい。
ある実施形態において、通信インターフェース422はまた、外部バス又は通信チャネルを介して、コンピューティングシステム410と、1つ若しくは2つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成されるホストアダプタを表してもよい。ホストアダプタの例としては、限定することなく、スモールコンピュータシステムインターフェース(SCSI)ホストアダプタ、ユニバーサルシリアルバス(USB)ホストアダプタ、米国電気電子技術者協会(IEEE)1394ホストアダプタ、アドバンストテクノロジーアタッチメント(ATA)、パラレルATA(PATA)、シリアルATA(SATA)、及びエクスターナルSATA(eSATA)ホストアダプタ、ファイバチャネルインターフェースアダプタ、イーサネット(登録商標)アダプタなどが挙げられる。通信インターフェース422は、また、コンピューティングシステム410が分散又は遠隔コンピューティングに関与することを可能にしてもよい。例えば、通信インターフェース422は、実行のために、遠隔デバイスから命令を受信するか、又は遠隔デバイスに命令を送信してもよい。
図4に示すように、コンピューティングシステム410は、また、表示アダプタ426を介して、通信インフラストラクチャ412に連結される少なくとも1つの表示デバイス424を含んでもよい。表示デバイス424は、表示アダプタ426によって転送された情報を視覚的に表示することが可能な任意のタイプ又は形式のデバイスを概して表す。同様に、表示アダプタ426は、表示デバイス424上に表示するために、通信インフラストラクチャ412から(又は当該技術分野において既知のように、フレームバッファから)、グラフィックス、テキスト、及び他のデータを転送するように構成された任意のタイプ又は形式のデバイスを概して表す。
図4に示すように、例示的なコンピューティングシステム410は、また、入力インターフェース430を介して、通信インフラストラクチャ412に連結される少なくとも1つの入力デバイス428を含んでもよい。入力デバイス428は、コンピュータ又はヒトのいずれかによって生成された入力を、例示的なコンピューティングシステム410に提供することが可能な任意のタイプ又は形式の入力デバイスを概して表す。入力デバイス428の例としては、限定することなく、キーボード、ポインティングデバイス、音声認識デバイス、又は任意の他の入力デバイスが挙げられる。
図4に示すように、例示的なコンピューティングシステム410は、また、記憶インターフェース434を介して、通信インフラストラクチャ412に連結される1次記憶デバイス432及びバックアップ記憶デバイス433を含んでもよい。記憶デバイス432及び433は、データ及び/又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の記憶デバイス又は媒体を概して表す。例えば、記憶デバイス432及び433は、磁気ディスクドライブ(例えば、いわゆるハードドライブ)、ソリッドステートドライブ、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブなどであり得る。記憶インターフェース434は、コンピューティングシステム410の記憶デバイス432及び433と、他の構成要素との間でデータを転送するための任意のタイプ又は形式のインターフェース又はデバイスを概して表す。一実施例において、図1からのクラウドデータストア120は、1次記憶デバイス432内に記憶され得る。
特定の実施形態では、記憶デバイス432及び433は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を記憶するように構成された取り外し可能な記憶ユニットから読み取るように、及び/又はそれに書き込むように構成されてもよい。好適な取り外し可能な記憶ユニットの例としては、限定することなく、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられる。記憶デバイス432及び433は、また、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令が、コンピューティングシステム410にロードされることを可能にするための他の類似の構造又はデバイスを含んでもよい。例えば、記憶デバイス432及び433は、ソフトウェア、データ、他のコンピュータ可読情報を読み取り、及び書き込むように構成されてもよい。記憶デバイス432及び433は、コンピューティングシステム410の一部であってもよく、又は他のインターフェースシステムによってアクセスされる別個のデバイスであってもよい。
多くの別のデバイス又はサブシステムが、コンピューティングシステム410に接続されてもよい。逆に、図4に示す構成要素及びデバイスの全てが、本明細書において説明及び/又は例示する実施形態を実践するために存在する必要があるわけではない。上記で述べたデバイス及びサブシステムは、また、図4に示すものとは異なる様式で相互接続されてもよい。コンピューティングシステム410は、また、任意の数のソフトウェア、ファームウェア、及び/又はハードウェア構成を採用してもよい。例えば、本明細書において開示される例示的な実施形態のうちの1つ若しくは2つ以上は、コンピュータ可読媒体上に、コンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される)としてコード化され得る。「コンピュータ可読媒体」という用語は、本明細書において使用される際、概して、コンピュータ可読命令を記憶又は担持することが可能な任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、限定することなく、搬送波等の伝送型媒体、並びに磁気記憶媒体(例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク)、光記憶媒体(例えば、コンパクトディスク(CD)、デジタルビデオディスク(DVD)、及びBLU−RAY(登録商標)ディスク)、電子記憶媒体(例えば、ソリッドステートドライブ及びフラッシュ媒体)等の非一時的タイプ媒体、並びに他の分散システムが挙げられる。
コンピュータプログラムを含むコンピュータ可読媒体は、コンピューティングシステム410にロードされてもよい。次いで、コンピュータ可読媒体上に記憶されたコンピュータプログラムの全て又は一部分は、システムメモリ416及び/又は記憶デバイス432及び433の種々の部分に記憶されてもよい。プロセッサ414によって実行されるとき、コンピューティングシステム410にロードされたコンピュータプログラムは、本明細書において説明及び/又は例示する例示的な実施形態のうちの1つ若しくは2つ以上の機能をプロセッサ414に実施させてもよく及び/又はそれらを実施するための手段であってもよい。更に、又は代替的に、本明細書において説明及び/又は例解される例示的な実施形態のうちの1つ若しくは2つ以上は、ファームウェア及び/又はハードウェアにおいて実装され得る。例えば、コンピューティングシステム410は、本明細書において開示される例示的な実施形態のうちの1つ若しくは2つ以上を実装するように適合された特定用途向け集積回路(ASIC)として構成されてもよい。
図5は、クライアントシステム510、520、及び530、並びにサーバ540及び545がネットワーク550に連結されてもよい例示的なネットワークアーキテクチャ500のブロック図である。上記で詳述されたように、ネットワークアーキテクチャ500の全て又は一部分は、単独又は他の要素との組合せのいずれかで、本明細書において開示される工程のうちの1つ若しくは2つ以上(図3に例示する工程のうちの1つ若しくは2つ以上等)を実施してもよく、及び/又は実施するための手段であってもよい。ネットワークアーキテクチャ500の全て又は一部分は、また、本開示において記載された他の工程及び機能を実施するために使用されてもよく、及び/又は実施するための手段であってもよい。
クライアントシステム510、520、及び530は、図4の例示的なコンピューティングシステム410等の任意のタイプ又は形式のコンピューティングデバイス又はシステムを概して表す。同様に、サーバ540及び545は、種々のデータベースサービスを提供するように、及び/又はあるソフトウェアアプリケーションを動作させるように構成されたアプリケーションサーバ又はデータベースサーバ等のコンピューティングデバイス又はシステムを概して表す。ネットワーク550は、例えば、イントラネット、WAN、LAN、PAN、又はインターネットを含む、任意の電気通信又はコンピュータネットワークを概して表す。一例では、クライアントシステム510、520、及び/又は530、並びに/あるいはサーバ540及び/又は545は、図1からのシステム100の全て又は一部分を含んでもよい。
図5に示すように、1つ若しくは2つ以上の記憶デバイス560(1)〜(N)は、サーバ540に直接取設されてもよい。同様に、1つ若しくは2つ以上の記憶デバイス570(1)〜(N)は、サーバ545に直接取設されてもよい。記憶デバイス560(1)〜(N)及び記憶デバイス570(1)〜(N)は、データ及び/又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の記憶デバイス又は媒体を概して表す。特定の実施形態では、記憶デバイス560(1)〜(N)及び記憶デバイス570(1)〜(N)は、ネットワークファイルシステム(NFS)、サーバメッセージブロック(SMB)、又は共通インターネットファイルシステム(CIFS)等の種々のプロトコルを使用して、サーバ540及び545と通信するように構成されたネットワーク接続型記憶(NAS)デバイスを表してもよい。
サーバ540及び545は、また、ストレージエリアネットワーク(SAN)ファブリック580に接続されてもよい。SANファブリック580は、複数の記憶デバイス間の通信を容易にすることが可能な任意のタイプ又は形式のコンピュータネットワーク又はアーキテクチャを概して表す。SANファブリック580は、サーバ540及び545と、複数の記憶デバイス590(1)〜(N)及び/又は知的記憶アレイ595との間の通信を容易にしてもよい。SANファブリック580は、また、デバイス590(1)〜(N)及びアレイ595が、クライアントシステム510、520、及び530にローカルに取設されたデバイスとして見えるような態様で、ネットワーク550並びにサーバ540及び545を介して、クライアントシステム510、520、及び530と、記憶デバイス590(1)〜(N)及び/又は知的記憶アレイ595との間の通信を容易にしてもよい。記憶デバイス560(1)〜(N)及び記憶デバイス570(1)〜(N)と同様に、記憶デバイス590(1)〜(N)及び知的記憶アレイ595は、データ及び/又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の記憶デバイス又は媒体を概して表す。
特定の実施形態では、図4の例示的なコンピューティングシステム410を参照すると、図4の通信インターフェース422等の通信インターフェースは、それぞれのクライアントシステム510、520、及び530と、ネットワーク550との間の接続性を提供するために使用されてもよい。クライアントシステム510、520、及び530は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ540又は545上の情報にアクセスすることが可能であってもよい。かかるソフトウェアは、クライアントシステム510、520、及び530が、サーバ540、サーバ545、記憶デバイス560(1)〜(N)、記憶デバイス570(1)〜(N)、記憶デバイス590(1)〜(N)、又は知的記憶アレイ595によってホストされるデータにアクセスすることを可能にしてもよい。図5は、データを交換するためのネットワーク(インターネット等)の使用を描写するが、本明細書において説明及び/又は例示する実施形態は、インターネット又はいずれの特定のネットワークベースの環境にも限定されない。
少なくとも1つの実施形態において、本明細書で開示される例示的な実施形態のうちの1つ若しくは2つ以上の全て又は一部分は、コンピュータプログラムとしてコード化されてもよく、サーバ540、サーバ545、記憶デバイス560(1)〜(N)、記憶デバイス570(1)〜(N)、記憶デバイス590(1)〜(N)、知的記憶アレイ595、又はこれらの任意の組み合わせにロードされ、これらによって実行されてもよい。本明細書において開示される例示的な実施形態のうちの1つ若しくは2つ以上の全て又は一部分は、また、コンピュータプログラムとしてコード化され、サーバ540内に記憶され、サーバ545によって実行され、ネットワーク550を通じてクライアントシステム510、520、及び530に分散されてもよい。
上記で詳述したように、コンピューティングシステム410及び/又はネットワークアーキテクチャ500の1つ若しくは2つ以上の構成要素は、単独で又は別の要素との組合せで、スケーラブルネットワークバッファ管理のための例示的な方法の1つ若しくは2つ以上のステップを実行してもよく、及び/又はそれらを実行するための手段であってもよい。
上述の開示は、具体的なブロック図、フローチャート、及び実施例を使用して、種々の実施形態を記載するが、本明細書において説明及び/又は例解される各ブロック図の構成要素、フローチャートの工程、動作、及び/又は構成要素は、広範なハードウェア、ソフトウェア、又はファームウェア(又はこれらの任意の組み合わせ)構成を使用して、個々に、及び/又は集合的に実装され得る。加えて、他の構成要素内に含まれる構成要素のいずれの開示も、多くの他のアーキテクチャを実装して、同じ機能性を達成することができるため、事実上、例示的であると見なされるべきである。
いくつかの例では、図1の例示的なシステム100の全て又は一部分は、クラウドコンピューティング又はネットワークベース環境の部分を表してもよい。クラウドコンピューティング環境は、インターネットを介して、種々のサービス及びアプリケーションを提供し得る。これらのクラウドベースのサービス(例えば、サービスとしてのソフトウェア、サービスとしてプラットフォーム、サービスとしてのインフラストラクチャなど)は、ウェブブラウザ又は他の遠隔インターフェースを通じて、アクセス可能であり得る。本明細書において説明される種々の機能は、遠隔デスクトップ環境又は任意の他のクラウドベースのコンピューティング環境を通じて提供され得る。
種々の実施形態において、図1の例示的なシステム100の全て又は一部分は、クラウドベースのコンピューティング環境内のマルチテナンシーを容易にし得る。換言すると、本明細書において説明されるソフトウェアモジュールは、本明細書において説明される機能のうちの1つ若しくは2つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム(例えば、サーバ)を構成し得る。例えば、本明細書において説明されるソフトウェアモジュールのうちの1つ若しくは2つ以上は、2つ若しくは3つ以上のクライアント(例えば、顧客)が、サーバ上で実行されているアプリケーションを共有することを可能にするように、サーバをプログラムし得る。このようにプログラムされたサーバは、複数の顧客(即ち、テナント)間でアプリケーション、オペレーティングシステム、処理システム、及び/又は記憶システムを共有し得る。本明細書において説明されるモジュールのうちの1つ若しくは2つ以上はまた、ある顧客が別の顧客のデータ及び/又は構成情報にアクセスすることができないように、各顧客に対して、マルチテナントアプリケーションのデータ及び/又は構成情報を分割し得る。
種々の実施形態によると、図1の例示的なシステム100の全て又は一部分は、仮想環境内で実装され得る。例えば、本明細書において説明されるモジュール及び/又はデータは、仮想マシン内に存在し得る、及び/又はそこで実行し得る。本明細書において使用される際、「仮想マシン」という用語は、概して、仮想マシンマネージャ(例えば、ハイパーバイザ)によって、コンピューティングハードウェアから抽象化される任意のオペレーティングシステム環境を指す。更に、又は代替的に、本明細書において説明されるモジュール及び/又はデータは、仮想化層内に存在し得る、及び/又はそこで実行し得る。本明細書において使用される際、「仮想化層」という用語は、概して、オペレーティングシステム環境に重なる、及び/又はそれから抽象化される、任意のデータ層及び/又はアプリケーション層を指す。仮想化層は、仮想化層を、根本的な基本オペレーティングシステムの一部であるかのように提示する、ソフトウェア仮想化ソリューション(例えば、ファイルシステムフィルタ)によって、管理され得る。例えば、ソフトウェア仮想化ソリューションは、最初は基本ファイルシステム及び/又はレジストリ内の場所に向けられた呼び出しを、仮想化層内の場所にリダイレクトし得る。
一部の実施例において、図1の例示的なシステム100の全て又は一部分は、モバイルコンピューティング環境の一部分を表し得る。モバイルコンピューティング環境は、モバイル電話、タブレットコンピュータ、電子書籍リーダ、パーソナルデジタルアシスタント、ウェアラブルコンピューティングデバイス(例えば、頭部装着型ディスプレイ、スマートウォッチなどを有するコンピューティングデバイス)などを含む、広範なモバイルコンピューティングデバイスによって実装され得る。一部の実施例において、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間に1つのフォアグラウンドアプリケーションのみを提示すること、遠隔管理特性、タッチスクリーン特性、場所及び移動データ(例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される)、システムレベルの構成への修正を制限する、及び/又は第3者のソフトウェアが他のアプリケーションの挙動を検査する能力、アプリケーションのインストールを制限する(例えば、承認されたアプリケーションストアのみから得る)能力などを制限する、制限されたプラットフォームを含む、1つ若しくは2つ以上の異なる特性を含み得る。本明細書において説明される種々の機能は、モバイルコンピューティング環境に対して提供され得る、及び/又はモバイルコンピューティング環境と相互作用し得る。
加えて、図1の例示的なシステム100の全て又は一部分は、情報管理のための1つ若しくは2つ以上のシステムの一部分を表し得る、それらの相互作用し得る、それらによって生成されるデータを消費し得る、及び/又はそれらによって消費されるデータを生成し得る。本明細書において使用される際、「情報管理」という用語は、データの保護、組織化、及び/又は記憶を指し得る。情報管理のためのシステムの例としては、限定することなく、記憶システム、バックアップシステム、アーカイバルシステム、複製システム、高可用性システム、データ検索システム、仮想化システムなどが挙げられ得る。
一部の実施形態において、図1の例示的なシステム100の全て又は一部分は、情報セキュリティのための1つ若しくは2つ以上のシステムの一部分を表し得る、それらによって保護されるデータを生成し得る、及び/又はそれらと通信し得る。本明細書において使用される際、「情報セキュリティ」という用語は、保護されたデータへのアクセスの制御を指し得る。情報セキュリティのためのシステムの例としては、限定することなく、管理されたセキュリティサービスを提供するシステム、データ損失防止システム、アイデンティティ認証システム、アクセス制御システム、暗号化システム、ポリシーコンプライアンスシステム、侵入検出及び防止システム、電子ディスカバリシステムなどが挙げられ得る。
一部の実施例によると、図1の例示的なシステム100の全て又は一部分は、エンドポイントセキュリティのための1つ若しくは2つ以上のシステムの一部分を表し得る、それらと通信し得る、及び/又はそれらから保護を受け得る。本明細書において使用される際、「エンドポイントセキュリティ」という用語は、不法及び/又は違法な使用、アクセス、及び/又は制御からのエンドポイントシステムの保護を指し得る。エンドポイント保護のためのシステムの例としては、限定することなく、マルウェア対策システム、ユーザ認証システム、暗号化システム、プライバシーシステム、スパムフィルタリングサービスなどが挙げられ得る。
本明細書において説明及び/又は例解される工程のプロセスパラメータ及び順序は、例として示されるに過ぎず、所望に応じて変化させることができる。例えば、本明細書において例解及び/又は説明される工程は、特定の順序で図示又は考察されるが、これらの工程は、必ずしも例解又は考察される順序で実施される必要はない。本明細書において説明及び/又は例解される種々の例示的な方法もまた、本明細書において説明若しくは例解される工程のうちの1つ若しくは2つ以上を省略し得るか、又は開示されるものに加えて追加の工程を含み得る。
種々の実施形態が、完全に機能的なコンピューティングシステムの文脈で、本明細書において説明及び/又は例解されているが、これらの例示的な実施形態のうちの1つ若しくは2つ以上は、分散を実際に行うために使用される特定のタイプのコンピュータ可読媒体にかかわらず、様々な形態のプログラム製品として分散され得る。本明細書において開示される実施形態はまた、あるタスクを実施するソフトウェアモジュールを使用して、実装され得る。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体上に、又はコンピューティングシステム内に記憶され得る、スクリプト、バッチ、又は他の実行可能なファイルを含み得る。一部の実施形態において、これらのソフトウェアモジュールは、本明細書において開示される例示的な実施形態のうちの1つ若しくは2つ以上を実施するように、コンピューティングシステムを構成し得る。
加えて、本明細書において説明されるモジュールのうちの1つ若しくは2つ以上は、データ、物理的デバイス、及び/又は物理的デバイスの表現を、ある形態から別の形態に変換し得る。例えば、本明細書に列挙されたモジュールのうちの1つ若しくは2つ以上のものは、変換されるべきデータを受信し、データを変換し、クラウドストレージサービスに又はそれからデータを送信するために変換結果を出力し、データの送信を管理するために変換結果を使用し、クラウドストレージサービスへの又はそれからのデータの送信を管理するために変換結果を記憶してもよい。それに付加して又はその代替として、本明細書において列挙されるモジュールのうちの1つ若しくは2つ以上は、コンピューティングデバイス上で実行すること、コンピューティングデバイス上にデータを記憶すること、及び/又はそうでなければ、コンピューティングデバイスと相互作用することによって、物理コンピューティングデバイスのプロセッサ、揮発性メモリ、非揮発性メモリ、及び/又は任意の他の部分を1つの形式からもう1つの形式に変換してもよい。
先述の説明は、当業者が、本明細書において開示される例示的な実施形態の種々の態様を最良に利用することを可能にするために提供されている。この例示的な説明は、包括的であること、又は開示されるいかなる正確な形態にも限定されることを意図されない。多くの修正及び改変が、本開示の趣旨及び範囲から逸脱することなく、可能である。本明細書において開示される実施形態は、全ての点において、例解的であり、制限的ではないと見なされるべきである。本開示の範囲を判定する上では、添付の請求項及びそれらの同等物を参照するべきである。
別途記載されない限り、「〜に接続される(connected to)」及び「〜に連結される(coupled to)」という用語(及びそれらの派生語)は、本明細書及び請求項において使用される際、直接的及び間接的(即ち、他の要素又は構成要素を介した)接続の両方を許容するとして解釈されるものとする。加えて、「a」又は「an」という用語は、本明細書及び請求項において使用される際、「〜のうちの少なくとも1つ(at least one of)」を意味するとして解釈されるものとする。最後に、使用を容易にするために、「含む(including)」及び「有する(having)」という用語(及びそれらの派生語)は、本明細書及び請求項において使用される際、「備える(comprising)」という語と同義的であり、かつ同じ意味を有する。

Claims (20)

  1. スケーラブルネットワークバッファ管理のためのコンピュータ実装方法であって、前記方法の少なくとも一部分が少なくとも1つのプロセッサを備えるコンピューティングデバイスによって実行され、前記方法は、
    クライアントへの接続を介して、クラウドサービスに送信されるべきデータを受信することと、
    前記データを少なくとも1つのデータバッファにバッファリングすることと、
    前記データが前記クライアント接続のためのタイムアウト期間内に前記クラウドサービスに送信されないと決定することと、
    前記タイムアウト期間の一部分の間の前記クライアント接続からの追加データの受信を遅延させることと、
    前記タイムアウト期間が経過する前に、前記クライアント接続からのデータを少なくとも1つの二次データバッファにバッファリングすることであって、前記二次データバッファは、サイズが前記データバッファよりも小さい、ことと、
    を含む、コンピュータ実装方法。
  2. 前記クライアント接続からの追加データの受信を遅延させることは、前記データが受信されたとの前記クライアントの通知を遅延させることを含む、請求項1に記載のコンピュータ実装方法。
  3. データバッファが、前記クライアント接続を介して受信される前記データをバッファリングするのに利用可能ではないと決定することを更に含み、
    前記クライアント接続からの追加データの受信を遅延させることは、
    前記クライアント接続からのデータを前記二次データバッファにバッファリングすることと、
    前記タイムアウト期間の一部分の間の前記クライアント接続からの追加データの受信を遅延させることと、
    を含む、請求項1に記載のコンピュータ実装方法。
  4. 前記データが前記クライアント接続のための前記タイムアウト期間内に前記クラウドサービスに送信されると決定することと、
    前記クラウドサービスが前記データを受信したとの確認応答が受信完了されるまで、前記クライアント接続からの追加データの受信を遅延させることと、
    を更に含む、請求項1に記載のコンピュータ実装方法。
  5. 前記クラウドサービスへの接続を介して、前記クライアントに送信されるべきデータを受信することと、
    前記データを少なくとも1つのデータバッファにバッファリングすることと、
    前記データが前記クラウドサービス接続のためのタイムアウト期間内に前記クライアントに送信されないと決定することと、
    前記クラウドサービス接続タイムアウト期間の一部分の間の前記クラウドサービス接続からの追加データの受信を遅延させることと、
    前記クラウドサービス接続タイムアウト期間が経過する前に、前記クラウドサービス接続からのデータを少なくとも1つの二次データバッファにバッファリングすることと、
    を更に含む、請求項1に記載のコンピュータ実装方法。
  6. 前記クラウドサービスへの少なくとも1つの追加接続を維持することと、
    前記追加データが前記クラウド接続のためのタイムアウト期間内に前記クライアント接続を介して受信されないと決定することと、
    前記クラウド接続のための前記タイムアウト期間が経過する前に、前記クラウドサービスへの追加接続を使用して、前記クラウドサービスにデータの少なくとも一部分を送信することと、
    を更に含む、請求項1に記載のコンピュータ実装方法。
  7. 前記クラウドサービスへの追加接続の数を、前記クライアントからのデータバッファを充填するためにデータを受信する時間に対する前記クラウド接続のための前記タイムアウト期間の比に少なくとも部分的に基づいて維持するように決定することを更に含む、請求項6に記載のコンピュータ実装方法。
  8. 前記クラウドサービスへの複数の接続についての全バンド幅利用を決定することと、
    前記バンド幅利用が閾値を下回ると決定することと、
    少なくとも1つの接続がデータを前記クラウドサービスに送信する速度を徐々に増加させることと、
    を更に含む、請求項1に記載のコンピュータ実装方法。
  9. 前記バンド幅利用が前記閾値を上回ると決定することと、
    時間間隔の間の前記クラウドサービスへの少なくとも1つの接続でのデータの送信を遅延させることと、
    を更に含む、請求項8に記載のコンピュータ実装方法。
  10. 少なくとも1つのデータバッファを少なくとも1つのより小さい二次データバッファとして再割り当てすることと、
    時間間隔の間の前記クライアント接続からの追加データの受信を遅延させることと、
    を更に含む、請求項9に記載のコンピュータ実装方法。
  11. 前記クラウドサービスへの前記データ送信の速度を低減させるべきであることを示す、データ送信のための前記クラウドサービスからのリトライ通知を受信することと、
    使用中の二次データバッファの前記数が閾値を上回ると決定することと、
    時間間隔の間の前記データ送信をリトライすることを遅延させることと、
    を更に含む、請求項1に記載のコンピュータ実装方法。
  12. スケーラブルネットワークバッファ管理のためのシステムであって、前記システムは、
    クライアントへの接続を介して、クラウドサービスに送信されるべきデータを受信する、メモリに記憶された通信モジュールと、
    前記データを少なくとも1つのデータバッファにバッファリングする、メモリに記憶されたバッファリングモジュールと、
    前記データが前記クライアント接続のためのタイムアウト期間内に前記クラウドサービスに送信されないと決定する、メモリに記憶されたトラフィックモジュールと、
    前記タイムアウト期間の一部分の間の前記クライアント接続からの追加データの受信を遅延させる、メモリに記憶された計量モジュールと、
    前記タイムアウト期間が経過する前に、前記クライアント接続からのデータを少なくとも1つの二次データバッファにバッファリングする、メモリに記憶された二次バッファリングモジュールであって、前記二次データバッファは、サイズが前記データバッファよりも小さい、二次バッファリングモジュールと、
    前記通信モジュール、前記バッファリングモジュール、前記トラフィックモジュール、前記計量モジュール、及び前記二次バッファリングモジュールを実行させるように構成された少なくとも1つの物理的プロセッサと、
    を備える、システム。
  13. 前記計量モジュールは、前記データが受信されたとの、前記クライアントへの通知を遅延させることによって、前記クライアント接続からの追加データの受信を遅延させる、請求項12に記載のシステム。
  14. 前記トラフィックモジュールは、データバッファが前記クライアント接続を介して受信される前記データをバッファリングするのに利用可能でないと決定し、
    前記計量モジュールは、前記クライアント接続からの追加データの受信を、
    前記クライアント接続からのデータを前記二次データバッファにバッファリングすることと、
    前記タイムアウト期間の一部分の間の前記クライアント接続からの追加データの受信を遅延させることと、
    によって遅延させる、請求項12に記載のシステム。
  15. 前記トラフィックモジュールは、前記データが前記クライアント接続のための前記タイムアウト期間内に前記クラウドサービスに送信されると決定し、
    前記計量モジュールは、前記クラウドサービスが前記データを受信したとの確認応答が受信されるまで、前記クライアント接続からの追加データの受信を遅延させる、請求項12に記載のシステム。
  16. 前記通信モジュールは、前記クラウドサービスへの接続を介して、前記クライアントに送信されるべきデータを受信し、
    前記バッファリングモジュールは、前記データを少なくとも1つのデータバッファにバッファリングし、
    前記トラフィックモジュールは、前記データが前記クラウドサービス接続のためのタイムアウト期間内に前記クライアントに送信されないと決定し、
    前記計量モジュールは、前記クラウドサービス接続タイムアウト期間の一部分の間の前記クラウドサービス接続からの追加データの受信を遅延させ、
    前記二次バッファリングモジュールは、前記クラウドサービス接続タイムアウト期間が経過する前に、前記クラウドサービス接続からのデータを少なくとも1つの二次データバッファにバッファリングする、請求項12に記載のシステム。
  17. 前記通信モジュールは、前記クラウドサービスへの少なくとも1つの追加接続を維持し、
    前記トラフィックモジュールは、前記追加データが前記クラウド接続のためのタイムアウト期間内に前記クライアント接続を介して受信されないと決定し、
    前記計量モジュールは、前記クラウド接続のための前記タイムアウト期間が経過する前に、前記クラウドサービスへの前記追加接続を使用して前記クラウドサービスに前記データの少なくとも一部分を送信する、請求項12に記載のシステム。
  18. 前記トラフィックモジュールは、前記クライアントからのデータバッファを充填するためにデータを受信する時間に対する前記クラウド接続のための前記タイムアウト期間の比に少なくとも部分的に基づいて維持するように前記クラウドサービスへの追加接続の数を決定する、請求項17に記載のシステム。
  19. 前記トラフィックモジュールは、
    前記クラウドサービスへの複数の接続についての全バンド幅利用を決定し、
    前記バンド幅利用が閾値を下回ると決定し、
    前記計量モジュールは、少なくとも1つの接続がデータを前記クラウドサービスに送信する速度を徐々に増加させる、請求項12に記載のシステム。
  20. 1つ若しくは2つ以上のコンピュータ可読命令を含む非一過性のコンピュータ可読媒体であって、前記命令は、コンピューティングデバイスの少なくとも1つのプロセッサによって実行されるとき、前記コンピューティングデバイスに、
    クライアントへの接続を介して、クラウドサービスに送信されるべきデータを受信することと、
    前記データを少なくとも1つのデータバッファにバッファリングすることと、
    前記データが前記クライアント接続のためのタイムアウト期間内に前記クラウドサービスに送信されないと決定することと、
    前記タイムアウト期間の一部分の間の前記クライアント接続からの追加データの受信を遅延させることと、
    前記タイムアウト期間が経過する前に、前記クライアント接続からのデータを少なくとも1つの二次データバッファにバッファリングすることであって、前記二次データバッファは、サイズが前記データバッファよりも小さい、ことと、
    を行わせる、非一過性のコンピュータ可読媒体。
JP2017568320A 2015-07-03 2016-07-01 スケーラブルネットワークバッファ管理のためのシステム及び方法 Active JP6507274B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
IN2560/MUM/2015 2015-07-03
IN2560MU2015 2015-07-03
US14/833,590 US9998394B2 (en) 2015-07-03 2015-08-24 Systems and methods for scalable network buffer management
US14/833,590 2015-08-24
PCT/US2016/040856 WO2017007731A1 (en) 2015-07-03 2016-07-01 Systems and methods for scalable network buffer management

Publications (2)

Publication Number Publication Date
JP2018533854A true JP2018533854A (ja) 2018-11-15
JP6507274B2 JP6507274B2 (ja) 2019-04-24

Family

ID=57684321

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017568320A Active JP6507274B2 (ja) 2015-07-03 2016-07-01 スケーラブルネットワークバッファ管理のためのシステム及び方法

Country Status (5)

Country Link
US (1) US9998394B2 (ja)
EP (1) EP3318025B1 (ja)
JP (1) JP6507274B2 (ja)
CN (1) CN107852370B (ja)
WO (1) WO2017007731A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11750706B1 (en) * 2020-03-26 2023-09-05 Amazon Technologies, Inc. Data transmission time management
US11924086B2 (en) * 2022-05-18 2024-03-05 Oracle International Corporation Load-based management for NVME over TCP connections

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6501733B1 (en) * 1999-10-01 2002-12-31 Lucent Technologies Inc. Method for controlling data flow associated with a communications node
US6820129B1 (en) * 2000-09-22 2004-11-16 Hewlett-Packard Development Company, L.P. System and method of managing network buffers
US20050052994A1 (en) * 2003-09-04 2005-03-10 Hewlett-Packard Development Company, L.P. Method to regulate traffic congestion in a network
JP2005128731A (ja) * 2003-10-23 2005-05-19 Hitachi Ltd 記憶装置を複数の計算機で共用する計算機システム
WO2005055546A1 (ja) * 2003-12-03 2005-06-16 Nec Corporation セッション中継装置、セッション中継方法及びセッション中継プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8379515B1 (en) * 2007-02-01 2013-02-19 F5 Networks, Inc. TCP throughput control by imposing temporal delay
JP5146032B2 (ja) * 2008-03-17 2013-02-20 富士通株式会社 入出力制御方法、制御装置及びプログラム
US8627123B2 (en) * 2010-03-25 2014-01-07 Microsoft Corporation Managing power provisioning in distributed computing
US8589019B2 (en) * 2011-05-13 2013-11-19 Qualcomm Incorporated Systems and methods for vehicle monitoring with processing interruption tolerance
CN102265277B (zh) * 2011-06-01 2014-03-05 华为技术有限公司 数据存储系统的操作方法和装置
US9342369B2 (en) * 2013-01-07 2016-05-17 Wal-Mart Stores, Inc. System and method for increasing throughput of a PaaS system
US20140330888A1 (en) 2013-05-03 2014-11-06 Nvidia Corporation Dynamically modifying a frame rate of data transmission associated with an application executing on a data server on behalf of a client device to the client device
US10282236B2 (en) * 2015-04-21 2019-05-07 International Business Machines Corporation Dynamic load balancing for data allocation to servers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6501733B1 (en) * 1999-10-01 2002-12-31 Lucent Technologies Inc. Method for controlling data flow associated with a communications node
US6820129B1 (en) * 2000-09-22 2004-11-16 Hewlett-Packard Development Company, L.P. System and method of managing network buffers
US20050052994A1 (en) * 2003-09-04 2005-03-10 Hewlett-Packard Development Company, L.P. Method to regulate traffic congestion in a network
JP2005128731A (ja) * 2003-10-23 2005-05-19 Hitachi Ltd 記憶装置を複数の計算機で共用する計算機システム
WO2005055546A1 (ja) * 2003-12-03 2005-06-16 Nec Corporation セッション中継装置、セッション中継方法及びセッション中継プログラム

Also Published As

Publication number Publication date
CN107852370B (zh) 2021-01-05
JP6507274B2 (ja) 2019-04-24
US20170005944A1 (en) 2017-01-05
US9998394B2 (en) 2018-06-12
EP3318025A1 (en) 2018-05-09
EP3318025B1 (en) 2020-11-11
WO2017007731A1 (en) 2017-01-12
CN107852370A (zh) 2018-03-27

Similar Documents

Publication Publication Date Title
US10735509B2 (en) Systems and methods for synchronizing microservice data stores
US11115481B2 (en) Transmission control of protocol state exchange for dynamic stateful service insertion
EP3603005B1 (en) Systems and methods for enforcing dynamic network security policies
US10157290B1 (en) Systems and methods for encrypting files
US20190235979A1 (en) Systems and methods for performing computing cluster node switchover
US10187485B1 (en) Systems and methods for sending push notifications that include preferred data center routing information
US9626120B1 (en) Systems and methods for dynamically adjusting batch request sizes
US11061603B1 (en) Systems and methods for switching replication modes in a volume replication system
US9572034B1 (en) Systems and methods for securing wireless networks
JP2018537749A (ja) データを不透明データバックアップストリームから復元するためのシステム及び方法
CN105453039A (zh) 用于在高输入/输出负载环境中即时恢复虚拟机的系统和方法
JP2021528744A (ja) 周辺デバイスへのアクセスを制御するためのシステム及び方法
US10298681B1 (en) Systems and methods for rerouting data sent between application containers and storage containers
US9823857B1 (en) Systems and methods for end-to-end quality of service control in distributed systems
US9774539B1 (en) Systems and methods for reconfiguring data flow across network channels
US9686202B2 (en) Network-specific data downloading to a mobile device
JP6507274B2 (ja) スケーラブルネットワークバッファ管理のためのシステム及び方法
US11573839B1 (en) Dynamic scheduling for live migration between cloud regions and edge locations
US11461462B1 (en) Systems and methods for producing adjustments to malware-detecting services
WO2019040182A1 (en) SYSTEMS AND METHODS FOR ENCRYPTED FILES
US10892990B1 (en) Systems and methods for transmitting data to a remote storage device
JP2018532184A (ja) 頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするためのシステム及び方法
US10592160B1 (en) Systems and methods for monitoring data synchronization progress in a multi-hop data recovery system
US10432720B1 (en) Systems and methods for strong information about transmission control protocol connections
US10791116B1 (en) Systems and methods for securing universal plug and play connections

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190111

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190401

R150 Certificate of patent or registration of utility model

Ref document number: 6507274

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250