JP2010519613A - データキャッシュ処理を向上させるシステム及び方法 - Google Patents
データキャッシュ処理を向上させるシステム及び方法 Download PDFInfo
- Publication number
- JP2010519613A JP2010519613A JP2009549715A JP2009549715A JP2010519613A JP 2010519613 A JP2010519613 A JP 2010519613A JP 2009549715 A JP2009549715 A JP 2009549715A JP 2009549715 A JP2009549715 A JP 2009549715A JP 2010519613 A JP2010519613 A JP 2010519613A
- Authority
- JP
- Japan
- Prior art keywords
- data
- cache
- portions
- nodes
- node
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012545 processing Methods 0.000 title description 15
- 238000004891 communication Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本発明の一実施例によると、データを格納する方法は、前記データを複数の部分に分割し、前記複数の部分を複数のサーバノードの1以上のサーバノードに格納するステップを有する。本方法はさらに、前記データの複数の部分の1以上の部分を複数のキャッシュノードの1以上のキャッシュノードにキャッシュするステップを有する。本方法はさらに、データの各部分について、該データの部分がキャッシュされている前記キャッシュノードの識別を格納するステップを有する。
Description
本発明は、一般にキャッシュ処理の分野に関し、より詳細には、データキャッシュ処理を向上させるシステム及び方法に関する。
ハイパフォーマンス計算アプリケーションは、典型的には、ディスクベースのファイル又はデータベースに格納されている大きなデータセットへのアクセスを必要とする。計算システムの効率低下を回避するため、最も直近に使用されたデータが、キャッシュバッファとしてのコンピュータのローカルメモリに格納される。
キャッシュされうるデータ量を最大化するための標準的な処理は、データをクライアントコンピュータ、サーバコンピュータ又はこれらの双方にキャッシュすることを伴う。しかしながら、これらの処理は問題点を有している。例えば、データがクライアントコンピュータ又はサーバコンピュータの何れかにのみキャッシュされる場合、キャッシュされるデータ量は限定的である。データをキャッシュするのに利用されるメモリの大きさは、典型的には、コンピュータのセカンダリストレージの容量の1%未満であるためである。さらに、2つのクライアントコンピュータが同一のデータを使用中であって、一方のクライアントコンピュータが当該データを変更する場合、他方のクライアントコンピュータに対しては、データは通常は更新されない。さらに、クライアントコンピュータが自らのローカルメモリにキャッシュしていないデータにアクセスする必要があるとき、クライアントコンピュータは、当該データがキャッシュされている場所を検出するため、すべてのサーバコンピュータとすべてのクライアントコンピュータと通信しなければならない。
本発明によると、データをキャッシュするための先行技術に係る短所及び問題点が、軽減又は解消されるかもしれない。
本発明の一実施例によると、データを格納する方法は、前記データを複数の部分に分割し、前記複数の部分を複数のサーバノードの1以上のサーバノードに格納するステップを有する。本方法はさらに、前記データの複数の部分の1以上の部分を複数のキャッシュノードの1以上のキャッシュノードにキャッシュするステップを有する。本方法はさらに、データの各部分について、該データの部分がキャッシュされている前記キャッシュノードの識別を格納するステップを有する。
本発明の実施例は、1以上の技術的効果を提供する。一実施例の技術的効果は、何れもが任意数のコンピュータを有することが可能なキャッシュシステムとサーバシステムの両方にデータがキャッシュされるため、キャッシュ可能なデータ量に実質的な制限がないということであるかもしれない。本発明の一実施例のさらなる技術的効果は、キャッシュシステムが1以上のクライアントノードと1以上のサーバノードとの間で動作する結果として、キャッシュシステムは、クライアントノードにより使用されるデータをキャッシュし、サーバノードにキャッシュされているデータにアクセスする。このため、クライアントノードにより変更されたデータがキャッシュシステムにおいて変更され、すべてのクライアントノードが変更されたデータにアクセスすることを可能にする。さらに、キャッシュノードは、必要とされるデータにアクセスするため、キャッシュシステムと通信しさえすればよい。
本発明の実施例は、上記技術的効果の一部又はすべてを有するかもしれず、又は何れも有しないかもしれない。1以上の技術的効果は、ここに含まれる図面、説明及び請求項から当業者に容易に明らかとなるであろう。
本発明並びにその特徴及び効果のより完全な理解のため、添付した図面と共に以下の説明が参照される。
図1Aは、データをアクセス及び格納可能なシステムの一実施例の図である。
図1Bは、図1Aのシステムのクライアントノードの一実施例を示すブロック図である。
図1Cは、図1Aのシステムのキャッシュノードの一実施例を示すブロック図である。
図1Dは、図1Aのシステムのサーバノードの一実施例を示すブロック図である。
図1Eは、図1Aのシステムの動作を示し、キャッシュ又は格納されているデータにアクセスするための方法の一実施例を示すフローチャートである。
図2Aは、1以上のキャッシュノードの失敗を処理可能なシステムの一実施例である。
図2Bは、キャッシュノードの失敗を処理するための方法の一実施例を示すフローチャートである。
本発明の実施例と効果は、図1A〜2Bを参照することにより最も良く理解される。各図面において、同一の番号は同一及び対応する部分について使用される。
図1Aは、データをアクセス及び格納可能なシステム10の一実施例の図である。一般に、システム10は、キャッシュシステム14と、サーバシステム18とを有する。キャッシュシステム14は、データがキャッシュされることを可能にし、さらに1以上のクライアントノード22がネットワークを使用してキャッシュされたデータにアクセスすることを可能にする。データをキャッシュシステム14にキャッシュすることによって、クライアントノード22は、同一のデータに同時にアクセスするかもしれず、1つのクライアントノード22により変更されたデータが、すべてのクライアントノード22によりアクセスされるかもしれない。サーバシステム18は、データがキャッシュされることを可能にし、さらにデータがディスクストレージに格納されることを可能にする。これは、追加的なデータがキャッシュされ、残りのデータがディスクストレージに格納されることを可能にし、クライアントノード22は、キャッシュされたデータとディスクストレージに格納されたデータの双方にネットワークを介しアクセスすることが可能となる。それと共に、キャッシュシステム14とサーバシステム18により提供されるこれら2つのキャッシュレイヤは、キャッシュされるデータ量を増加させ、データにアクセスするためクライアントノード22により必要とされる時間を減少させる。図示された実施例では、システム10は、クライアントノード22と、キャッシュシステム14と、サーバシステム18と、ネットワーク23とを有する。
クライアントノード22は、1以上のアプリケーションを実行可能であり、さらにネットワーク23を使用してキャッシュシステム14とサーバシステム18の両方に格納されているデータにアクセスすることが可能である。一実施例では、クライアントノード22は、携帯情報端末、ラップトップなどのコンピュータ、携帯電話、モバイルハンドセット、又は1以上のアプリケーションを実行可能であり、さらにネットワーク23を介しキャッシュシステム14とサーバシステム18との両方に格納されているデータにアクセスすることが可能な他の何れかの装置を含むかもしれない。図示された実施例では、クライアントノード22はコンピュータを表す。クライアント22は、図1Bを参照してさらに説明される。
キャッシュシステム14は、データをキャッシュし、さらにクライアントノード22がキャッシュされたデータにアクセスすることを可能にする。図示された実施例では、キャッシュシステム14は、1以上のキャッシュノード42を有する。キャッシュノード42は、データをキャッシュし、クライアントノード22からデータリクエストを受信し、データリクエストをサーバシステム18に送信し、データをクライアントノード22とサーバシステム18に送信することが可能である。一実施例では、キャッシュノード42は、携帯情報端末、コンピュータ、ラップトップコンピュータ、携帯電話、モバイルハンドセット、又はデータをキャッシュし、クライアントノード22からデータリクエストを受信し、データリクエストをサーバシステム38に送信し、データをクライアントノード22とサーバシステム18に送信可能な他の何れかの装置を含むかもしれない。図示された実施例では、キャッシュノード42は、コンピュータを表す。キャッシュノード42は、図1Cを参照してさらに説明される。
サーバシステム18は、データをキャッシュし、さらなるデータをディスクストレージに格納することが可能である。図示された実施例では、サーバシステム18は、1以上のサーバノード54を有する。サーバノード54は、キャッシュサーバ14からデータリクエストを受信し、キャッシュシステム14からデータを受信し、データをキャッシュ及び格納し、データをキャッシュシステム14に送信することが可能である。一実施例では、サーバノード54は、携帯情報端末、ラップトップなどのコンピュータ、携帯電話、モバイルハンドセット、キャッシュサーバ14からデータリクエストを受信し、キャッシュシステム14からデータを受信し、データをキャッシュ及び格納し、データをキャッシュシステム14に送信することが可能な他の何れかの装置を含むかもしれない。図示された実施例では、サーバノード54は、サーバを表す。サーバノード54は、図1Dを参照してさらに説明される。
ネットワーク23は、クライアントノード22、キャッシュシステム14及びサーバシステム18を互いに接続し、データの共有を可能にする。ネットワーク23は、オーディオ、ビデオ、信号、データ、メッセージ又はこれらの何れかの組み合わせを送信可能な何れかの相互接続システムを表す。ネットワーク23は、PSTN(Public Switched Telephone Network)、パブリック若しくはプライベートデータネットワーク、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、インターネットなどのローカル、リージョナル若しくはグローバル通信若しくはコンピュータネットワーク、有線若しくは無線ネットワーク、企業イントラネット、他の適切な通信リンク又はこれらの何れかの組み合わせのすべて若しくは一部を有するかもしれない。
ハイパフォーマンス計算アプリケーションは、典型的には、ディスクベースのファイル又はデータベースに格納されている大きなデータセットへのアクセスを必要とする。計算システムの効率低下を防ぐため、最も直近に使用されたデータは、キャッシュバッファとしてのコンピュータのローカルメモリに格納される。キャッシュバッファは、データアクセス時間とアプリケーションの全体的なパフォーマンスの両方を向上させる。しかしながら、コンピュータのローカルメモリは、典型的には、コンピュータのセカンダリストレージの容量の1%未満に限定されている。従って、極めてわずかなデータしかキャッシュすることはできない。
従来、キャッシュ可能なデータ量を最大化するための試みは、クライアントコンピュータ、サーバコンピュータ又はこれらの双方にデータをキャッシュすることに着目してきた。クライアントコンピュータ又はサーバコンピュータにデータをキャッシュすることは、上述されるように、キャッシュされうるデータ量を制限する。クライアントコンピュータとサーバコンピュータの双方を使用することは、キャッシュされうるデータ量を増大させるが、また様々な問題点を与える。例えば、2つのクライアントコンピュータが同一のデータを使用中であって、一方のクライアントコンピュータがデータを変更した場合、当該データは他方のクライアントコンピュータについては通常は更新されない。これは、キャッシュ処理の有効性を低下させる。
さらに、クライアントコンピュータが自らのローカルメモリにキャッシュしていないデータにアクセスする必要があるとき、他の問題点が存在する。この場合、従来は、クライアントコンピュータは、必要とされるデータを何れのコンピュータがキャッシュしているか検索するため、すべてのサーバコンピュータとすべてのクライアントコンピュータと通信しなければならない。これはまた、キャッシュ処理を低速化するため、キャッシュ処理の有効性を低下させ、またクライアントコンピュータに必要とされるデータをときには検出させない。
本発明のいくつかの実施例は、従来の処理に係る問題を被ることなく大量のデータをキャッシュすることを可能にする。本発明の図示された実施例では、データはキャッシュシステム14とサーバシステム18の双方にキャッシュされる。各システムは任意数のコンピュータを有しているため、キャッシュされうるデータ量に実質的に制限はない。さらに、キャッシュシステム14は、クライアントノード22とサーバノード54の中間で動作し、クライアントノード22により使用されたデータをキャッシュし、サーバノード54にキャッシュされたデータにアクセスする。このような実効において、1つのクライアントノード22により変更されたデータはキャッシュシステム14において変更され、すべてのクライアントノード22が変更されたデータにアクセスすることが可能となる。さらに、クライアントノード22は、データにアクセスするため、互いに通信する必要はない。その代わり、クライアントノード22は、キャッシュシステム14と単に通信するため、キャッシュ処理の有効性が向上する。
図1Bは、クライアントノード22の一実施例を示すブロック図である。図示された実施例では、クライアントノード22は、プロセッサ22と、通信インタフェース32と、バス37によりプロセッサ38に通信接続されるローカルメモリ36とを有する。ユーザプログラム26と、クラスタファイルシステム30と、クライアントモジュール34と、データ38とが、ローカルメモリ36に格納される。
プロセッサ28は、キャッシュノード22について処理を実行するため、命令を実行し、データを操作することが可能な何れか適切な装置を表すかもしれない。例えば、プロセッサ28は、何れかのタイプの中央処理ユニット(CPU)を有するかもしれない。通信インタフェース32は、クライアントノード22に対する入力を受信し、クライアントノード22からの出力を送信し、入出力の適切な処理を実行し、他の装置と通信し、又はこれらの何れかの組み合わせを行うことが可能な何れか適切な装置を表すかもしれない。例えば、通信インタフェース32は、LAN、WAN又はクライアントノード22が他の装置と通信することを可能にする他の通信システムを介し通信するため、プロトコル変換及びデータ処理機能を含む適切なハードウェア(モデム、ネットワークインタフェースカードなど)とソフトウェアとを含むかもしれない。通信インタフェース32は、1以上の装置、変換ソフトウェア又はその双方を含むかもしれない。ローカルメモリ36は、データをキャッシュし、キャッシュされたデータの抽出を実現することが可能な何れか適切な装置を表すかもしれない。例えば、ローカルメモリ36は、ランダムアクセスメモリ(RAM)を含むかもしれない。バス37は、プロセッサ28とローカルメモリ38との間の通信を実現する。バス37は、プロセッサ28とローカルメモリ38とを通信接続することが可能な何れか適切な装置又は接続を表すかもしれない。
ユーザプログラム26は、ユーザとクライアントノード22との間のインタフェースを提供する。一実施例では、ユーザプログラム26は、ユーザが実行することを所望するタスクを実行可能な何れかのコンピュータソフトウェアを含む。クラスタファイルシステム30は、格納用のデータ38の各部分、すなわち、各パーティションを抽出するため、クライアントモジュール34にアクセスすることが可能である。図示された実施例では、クラスタファイルシステム30は、ユーザプログラム26のデータ38の各部分を抽出及び格納する。
クライアントモジュール34は、データ38の各部分のリクエストを送信し、さらにキャッシュシステム14からのデータ38の各部分にアクセスすることを可能にする。一実施例では、クライアントモジュール34は、ソフトウェアコンポーネントをクライアントノード22に有してもよい。
データ38は、クライアントノード22上で実行されるユーザプログラム26により使用される。データ38は、ユーザプログラム26により要求されるデータを表す。例えば、データ38は、ファイルシステムメタデータ又はデータブロックを含む。一実施例では、データ38は、1以上の部分に分割されたデータブロックを有するが、データ38は何れか適切な方法により格納されてもよい。図示された実施例では、データ38は、4つの部分、データ部分40a〜dに分割される。一実施例では、データ38をデータ部分40に分割することは、ハードパーティショニング(Linuxのfdisk又はパーティッドプログラム(parted program)など)又はソフトパーティショニング(各データスライスが検出されるデータストレージの領域をコンフィグレーションファイルに指定するなど)により実現されてもよい。
図示された実施例では、ユーザプログラム26は、クラスタファイルシステム30にアクセスし、さらにクラスタファイルシステム30はクライアントモジュール34にアクセスする。クライアントモジュール34は、ネットワーク23を使用してキャッシュシステム14からデータ部分40にアクセスする。図示された実施例では、データ部分40へのアクセスは、データ部分40を読み込み、さらにデータ部分40に書き込むことを含む。
図1Cは、キャッシュノード42の一実施例を示すブロック図である。図示された実施例では、キャッシュノード42は、プロセッサ44と、通信インタフェース48と、ローカルメモリ52と、プロセッサ44とローカルメモリ52とを通信接続するバス45とを有する。一実施例では、ユーザプログラム26と、キャッシュサーバ34と、キャッシュ50と、1以上のデータ部分140とがローカルメモリ52に格納される。
プロセッサ44は、キャッシュノード42について処理を実行するため、命令を実行し、データを操作することが可能な何れか適切な装置を表すかもしれない。例えば、プロセッサ44は、何れかのタイプの中央処理ユニット(CPU)を含むかもしれない。通信インタフェース48は、キャッシュノード42の入力を受信し、キャッシュノード42からの出力を送信し、入出力の適切な処理を実行し、他の装置と通信し、又はこれらの何れかの組み合わせを行うことが可能な何れか適切な装置を表すかもしれない。例えば、通信インタフェース48は、LAN、WAN又はキャッシュノード42が他の装置と通信することを可能にする他の通信システムを介し通信するため、プロトコル変換及びデータ処理機能を含む適切なハードウェア(モデム、ネットワークインタフェースカードなど)とソフトウェアとを含むかもしれない。通信インタフェース48は、1以上のポート、変換ソフトウェア又はその両方を含むかもしれない。ローカルメモリ52は、データをキャッシュし、キャッシュされたデータの抽出を実現することが可能な何れか適切な装置を表すかもしれない。例えば、ローカルメモリ52は、ランダムアクセスメモリ(RAM)を含むかもしれない。バス45は、プロセッサ44とローカルメモリ52との間の通信を実現する。バス45は、プロセッサ44とローカルメモリ52とを通信接続することが可能な何れか適切な装置又は接続を表すかもしれない。
キャッシュサーバ46は、クライアントノード22からのデータ部分140のリクエストを処理し、データ部分140をキャッシュし、データ部分140を各クライアントモジュール34に転送し、データ部分140をサーバシステム18に転送することが可能である。一実施例では、キャッシュサーバ46は、ソフトウェアコンポーネントをキャッシュノード42に有してもよい。
キャッシュ50は、データ部分140がキャッシュされるローカルメモリの領域を表す。データ部分140は、図1Bのデータ38のデータ部分40と実質的に同様のものである。図示された実施例では、キャッシュ50にキャッシュされているデータ部分140は、データ部分140aしか有さない。さらなる実施例では、キャッシュ50にキャッシュされているデータ部分140は、より多く又は異なるデータ部分140を有してもよい。例えば、キャッシュ50にキャッシュされているデータ部分140は、データ部分140bと140dとを含むかもしれない。
図1Dは、サーバノード54の一実施例を示すブロック図である。図示された実施例では、サーバノード54は、プロセッサ58と、通信インタフェース62と、ローカルメモリ66と、ディスクストレージ70と、プロセッサ58とローカルメモリ66及びディスクストレージ70とを通信接続するバス59とを有する。一実施例では、I/Oサーバ60、キャッシュ64と、1以上のデータ部分240とが、ローカルメモリ66に格納される。一実施例では、データ部分240はディスクストレージ70に格納される。
プロセッサ58は、サーバノード54について処理を実行するため、命令を実行し、データを操作することが可能な何れか適切な装置を表すかもしれない。例えば、プロセッサ58は、何れかのタイプの中央処理ユニット(CPU)を有してもよい。通信インタフェース62は、サーバノード54の入力を受信し、サーバノード54からの出力を送信し、入出力の適切な処理を実行し、他の装置と通信し、又はこれらの何れかの組み合わせを行うことが可能な何れか適切な装置を表すかもしれない。例えば、通信インタフェース62は、LAN、WAN又はサーバノード44が他の装置と通信することを可能にする他の通信システムを介し通信するため、プロトコル変換及びデータ処理機能を含む適切なハードウェア(モデム、ネットワークインタフェースカードなど)とソフトウェアとを含むかもしれない。通信インタフェース62は、1以上のポート、変換ソフトウェア又はその両方を含むかもしれない。ローカルメモリ66は、データをキャッシュし、キャッシュされたデータの抽出を実現することが可能な何れか適切な装置を表すかもしれない。例えば、ローカルメモリ66は、ランダムアクセスメモリ(RAM)を含むかもしれない。バス59は、プロセッサ58とローカルメモリ66と、ディスクストレージ70との間の通信を実現する。バス59は、プロセッサ58とローカルメモリ66及びディスクストレージ70とを通信接続することが可能な何れか適切な装置又は接続を表すかもしれない。
I/Oサーバ60は、キャッシュサーバ14からのデータ部分240のリクエストを受信し、データ部分240をキャッシュし、データ部分240をディスクストレージ70に格納し、ディスクストレージ70からデータ部分240を抽出し、データ部分240をキャッシュシステム14に送信することが可能である。一実施例では、I/Oサーバ60は、ソフトウェアコンポーネントをサーバノード54に有してもよい。
キャッシュ64は、データ部分240がキャッシュされるローカルメモリ66の領域を表す。データ部分240は、図1Bのデータ38のデータ部分40と実質的に同様のものである。図示された実施例では、キャッシュ64にキャッシュされているデータ部分240は、データ部分240bしか有さない。さらなる実施例では、キャッシュ64にキャッシュされているデータ部分240は、より多く又は異なるデータ部分240を有してもよい。例えば、キャッシュ64にキャッシュされているデータ部分240は、データ部分240aと240dとを含むかもしれない。
ディスクストレージ70は、データ部分240を格納し、I/Oサーバ60によりアクセス可能である。ディスクストレージ70は、メモリストレージを表す。例えば、ディスクストレージ70は、磁気ディスク、光ディスク、フラッシュメモリ又は他の適切なデータ記憶装置を含むかもしれない。図示された実施例では、ディスクストレージ70は、磁気ドライブを有する。図示された実施例では、ディスクストレージ70に格納されているデータ部分240は、データ部分240aしか有していない。さらなる実施例では、ディスクストレージ70に格納されるデータ部分240は、より多くの又は異なるデータ部分240を有してもよい。例えば、ディスクストレージ70に格納されているデータ部分240は、データ部分240bと240dとを有してもよい。さらなる実施例では、I/Oサーバ60がディスクストレージ70に格納されているデータ部分240にアクセスすると、I/Oサーバは、同じデータ部分240をキャッシュ64にキャッシュする。
図1Eは、システム10の動作を示し、キャッシュ又は格納されているデータにアクセスするための方法の一実施例を示すフローチャートである。ステップ102において、ユーザプログラム26は、クラスタファイルシステム30を用いて、クライアントモジュール34からデータ38を読む。一実施例では、データ38は、1以上のデータ部分を有し、当該方法をデータ38の各データ部分について繰り返す。データ38に対する読み込まれたリクエストを充足するため、ステップ104において、クライアントモジュール34は、データ部分40aなどのデータ38の一部に対するリクエストをキャッシュシステム14に送信する。一実施例では、データ38の各部分はキャッシュシステム14の何れか1つのキャッシュノードにのみ関連付けされる。例えば、データ部分40aが1つのキャッシュノード42に関連付けされる場合、当該キャッシュノード42のみにデータ部分40aはキャッシュされるようにしてもよい。これは、クライアントモジュール34がデータ部分40aに対するリクエストををキャッシュシステム14の適切なキャッシュノード42のみに送信することを可能にする。さらなる実施例では、データ38の各部分は、複数のキャッシュノード42に関連付けされてもよい。
ステップ106において、キャッシュサーバ14は、データ部分40aがキャッシュノード42にキャッシュされているか確認するため、キャッシュノード42のローカルメモリ52をチェックする。データ部分40aがキャッシュノード42にキャッシュされている場合、本方法はステップ116に移行し、データ部分40aはキャッシュノード42からクライアントモジュール34に戻される。ステップ118において、本方法は終了する。
ステップ106を再び参照するに、データ部分40aがキャッシュノード42にキャッシュされていない場合、本方法はステップ108に戻り、キャッシュノード42は、データ部分40aに対するリクエストをサーバシステム18に送信する。一実施例では、データ部分40aなどのデータ38の各部分は、サーバシステム18の1つのサーバノード54のみに関連付けされる。このため、キャッシュノード42がローカルメモリ52にキャッシュされているデータ部分40aを有しない場合、データ部分40aは、データ部分40aに係る当該サーバノード54にのみキャッシュ又は格納することが可能である。さらなる実施例では、データ38の各部分は、複数のサーバノード54に関連付けされてもよい。
ステップ110において、データ部分40aに係るサーバノード54のI/Oサーバ60は、データ部分40aがローカルメモリ66にキャッシュされているか確認するためチェックする。データ部分40aがローカルメモリ66にキャッシュされていない場合、本方法はステップ112に移行し、I/Oサーバ60は、サーバノード54にあるディスクストレージ70からデータ部分40aを抽出する。一実施例では、データ部分40aを抽出することによって、I/Oサーバ60はまた、データ部分40aをローカルメモリ66にキャッシュする。ステップ114において、データ部分40aがキャッシュシステム14に送信される。一実施例では、データ部分40aは、データ部分40aに係る特定のキャッシュノード42にのみ送信される。ステップ116において、データ部分40aはクライアントモジュール34に転送され、ユーザプログラム26がデータ38のデータ部分40aを読むことを可能にする。本方法はステップ118において終了する。
ステップ110を再び参照するに、データ部分40aがサーバノード54のローカルメモリ66にキャッシュされる場合、本方法はステップ114に移行し、一実施例では、データ部分40aはキャッシュシステム14に送信される。ステップ116において、データ部分40aはクライアントモジュール34に転送され、ユーザプログラム26がデータ38のデータ部分40aを読むことを可能にする。ステップ118において、本方法は終了する。
システム10の動作の図示された実施例では、データ部分40aなどのデータ38の一部が、キャッシュシステム14とサーバシステム18の両方にキャッシュされる。キャッシュシステム14は実質的に無限個のキャッシュノード42を有し、サーバシステム18は実質的に無限個のサーバノード54を有することが可能であるため、キャッシュ可能なデータ部分の個数に関して実質的に制限はない。さらに、キャッシュシステム14は、クラインとノード22とサーバノード54の中間で動作する。その実行において、1つのクライアントノード22により変更されたデータ38の部分は、キャッシュシステム14において変更され、すべてのクライアントノード22がデータ38の変更部分にアクセスすることを可能にする。さらに、クライアントノード22は、データ38の各部分にアクセスするため、互いに通信する必要はない。その代わりに、クライアントノード22は単にキャッシュシステム14と通信しさえすればよく、キャッシュ処理の有効性を向上させる。
図2Aは、システム10が1以上のキャッシュノード342a〜dの失敗を処理することが可能なシステム10のさらなる実施例である。図示された実施例では、システム10は、1以上のクライアントノード322と、キャッシュノード342a〜dと、1以上のサーバノード354と、ネットワーク323とを有する。
クライアントノード322は、1以上のアプリケーションを実行し、キャッシュノード342a〜dにキャッシュされ、サーバノード354に格納又はキャッシュされている1以上のデータ部分340にアクセスすることが可能である。クライアントノード322は、図1A及び1Bのクライアントノード22と実質的に同様のものである。
キャッシュノード342a〜dは、データ部分340をキャッシュし、データ部分340に対するリクエストをクライアントノード322から受信し、データ部分340に対するリクエストをサーバノード354に送信し、データ部分340をクライアントノード322とサーバノード354とに送信することが可能である。キャッシュノード342a〜dは、図1A及び1Cのクライアントノード42と実質的に同様である。データ部分340は、図1Bのデータ38のデータ部分40と実質的に同様のものである。
図示された実施例では、キャッシュノード342aは、データ部分340aのみに関連付けされる。従って、一実施例では、キャッシュノード342aが失敗した場合、クライアントノード322は、データ部分340aにアクセスすることができなくなるであろう。これを解決するため、キャッシュノード342a〜dはまた、データ部分340aに関連付けされてもよい。これは、クライアントノード322がキャッシュノード342aが故障しても、キャッシュノード342b〜dからのデータ部分340aにアクセスすることを可能にする。一実施例では、キャッシュノード342b〜dは、データ部分340aをキャッシュするだけであり、キャッシュノード342aが故障した場合、データ部分340aをクライアントノード322に送信するようにしてもよい。一実施例では、キャッシュノード342aは、ネットワーク323を介した接続がキャッシュノード342aとクライアントノード322との間で、又はキャッシュノード342aとサーバノード354との間で失敗した場合、失敗するかもしれない。
サーバノード354は、データ部分340に対するリクエストをキャッシュノード342a〜dから受信し、データ部分340をキャッシュ及び格納し、データ部分340をキャッシュノード342a〜dに送信し、キャッシュノード342aが故障した場合にデータ部分340をキャッシュするようにキャッシュノード342a〜dを設定することが可能である。サーバノード354は、図1A及び1Dのサーバノード54と実質的に同様のものである。
ネットワーク323は、クライアントノード322と、キャッシュノード342と、サーバノード354とを互いに接続し、データ部分340の共有を可能にする。ネットワーク323は、図1Aのネットワーク23と実質的に同様である。
図2Bは、キャッシュノード342a〜dの故障を処理するためのシステム10の方法の一実施例を示すフローチャートである。本方法は、ステップ200から開始される。ステップ202において、クライアントノード322は、クライアントノード322により必要とされるデータ部分340aに係るサーバノード354のアドレスにより設定される。ステップ204において、クライアントノード322は、ネットワーク323を使用してサーバノード354と接続される。サーバノード354は、クライアントノード322にデータ部分340aに係るキャッシュノード342aのアドレスを通知する。
取得したアドレスを使用して、ステップ206において、クライアントノード322は、ネットワーク323を使用してキャッシュノード342aに接続する。ステップ208において、データ部分340aに対するリクエスト又はクライアントノード322とキャッシュノード342aとの間のデータ部分340aの転送が失敗する。この結果、ステップ210において、クライアントノード322は、データ部分340aに係るサーバノード354に対して、データ部分340aのリクエストを直接行う。
クライアントノード322によりなされたリクエストは、クライアントノード322とキャッシュノード342aとの間の接続が失敗したことをサーバノード354に通知する。ステップ212において、サーバノード354は、故障したキャッシュノード342aから切断され、キャッシュノード342aを使用してキャッシュノード342aから切断するよう他のクライアントノード322に通知する。ステップ214において、サーバノード354は、故障したキャッシュノード342aに対する引き継ぎをするため、データ部分340aに係るスタンバイキャッシュノード342bを選択する。一実施例では、サーバノード322は、スタンバイキャッシュノード342c、スタンバイキャッシュノード342d又は他の何れか適切なキャッシュノード342を選択するようにしてもよい。ステップ216において、サーバノード342は、キャッシュノード342bに接続される。ステップ218において、サーバノード354は、以前に故障したキャッシュノード342aを使用してスタンバイキャッシュノード342bと接続したすべてのクライアントノード322に通知する。クライアントノード322がスタンバイキャッシュノード342bに接続されると、キャッシュノード342aの故障から生じた問題は解決される。ステップ220において、本方法は終了する。
本開示は特定の実施例と全体的に関連した方法に関して説明されたが、当業者には、これらの実施例と方法の変形及び置換が明らかであろう。従って、上記実施例の説明は本開示を制限するものでない。以下の請求項により規定されるような本開示の趣旨及び範囲から逸脱することなく、他の変更、置換及び変形もまた可能である。
Claims (20)
- データを格納する方法であって、
前記データを複数の部分に分割し、前記複数の部分を複数のサーバノードの1以上のサーバノードに格納するステップと、
前記データの複数の部分の1以上の部分を複数のキャッシュノードの1以上のキャッシュノードにキャッシュし、データの各部分について、該データの部分がキャッシュされている前記キャッシュノードの識別を格納するステップと、
を有する方法。 - 1以上のクライアントノードを使用して、前記複数のキャッシュノードの1以上のキャッシュノードにキャッシュされた前記データの複数の部分の1以上の部分にアクセスするステップをさらに有する、請求項1記載の方法。
- 前記データの複数の部分の1以上の部分にアクセスするステップは、前記1以上のクライアントノードが前記データの複数の部分の1以上の部分を読むことを許可することを含む、請求項2記載の方法。
- 前記データの複数の部分の1以上の部分にアクセスするステップは、
前記1以上のクライアントノードが、前記データの複数の部分の1以上の部分に書き込むことを許可するステップと、
前記1以上のクライアントノードが、前記データの複数の部分の1以上の部分に、前記1以上のクライアントノードによる書き込み後にアクセスすることを可能にするステップと、
を有する、請求項2記載の方法。 - 前記前記データの複数の部分の1以上の部分を複数のキャッシュノードの1以上のキャッシュノードにキャッシュするステップは、前記1以上のキャッシュノードを使用して、前記1以上のサーバノードに格納されている前記データの複数の部分の1以上の部分にアクセスするステップを含む、請求項1記載の方法。
- 前記複数の部分を複数のサーバノードの1以上のサーバノードに格納するステップは、前記部分を前記1以上のサーバノードにキャッシュするステップを含む、請求項1記載の方法。
- 前記データの複数の部分の各部分に対して、前記部分がキャッシュされている前記サーバノードの識別を格納するステップをさらに有する、請求項1記載の方法。
- 前記1以上のキャッシュノードの少なくとも1つは、前記複数のサーバノードの1つに格納される、請求項1記載の方法。
- 前記データの複数の部分の1以上の部分にアクセスするステップは、前記1以上のクライアントノードを使用して、1以上のスタンバイキャッシュノードにキャッシュされている前記データの複数の部分の1以上の部分にアクセスするステップを含む、請求項2記載の方法。
- データを格納するシステムであって、
複数の部分に分割されたデータと、
前記データの複数の部分の1以上の部分を格納するよう動作可能な複数のサーバノードと、
前記データの複数の部分の1以上の部分をキャッシュするよう動作可能な複数のキャッシュノードと、
を有するシステム。 - 前記複数のキャッシュノードの1以上のキャッシュノードにキャッシュされている前記データの複数の部分の1以上の部分にアクセスするよう動作可能な1以上のクライアントノードをさらに有する、請求項10記載のシステム。
- 前記1以上のクライアントノードはさらに、前記データの複数の部分の1以上の部分を読むよう動作可能である、請求項11記載のシステム。
- 前記1以上のクライアントノードはさらに、
前記データの複数の部分の1以上の部分に書き込み、
前記データの複数の部分の1以上の部分に、前記1以上のクライアントノードにより書き込み後にアクセスする、
よう動作可能である、請求項11記載のシステム。 - 前記複数のキャッシュノードの1以上のキャッシュノードはさらに、前記複数のサーバノードの1以上のサーバノードに格納されている前記データの複数の部分の1以上の部分にアクセスするよう動作可能である、請求項10記載のシステム。
- 前記複数のサーバノードはさらに、前記データの複数の部分の1以上の部分をキャッシュするよう動作可能な複数のサーバノードを有する、請求項10記載のシステム。
- 前記複数のキャッシュノードの1以上のキャッシュノードは、前記データの複数の部分の各部分が格納されている前記複数のサーバノードのサーバノードの識別を格納するよう動作可能である、請求項10記載のシステム。
- 前記1以上のクライアントノードはさらに、前記データの複数の部分の各部分がキャッシュされている前記複数のキャッシュノードのキャッシュノードの識別を格納するよう動作可能である、請求項11記載のシステム。
- 前記複数のサーバノードの少なくとも1つのサーバノードはさらに、前記複数のキャッシュノードの少なくとも1つのキャッシュノードを有する、請求項10記載のシステム。
- 前記1以上のクライアントノードはさらに、1以上のスタンバイキャッシュノードにキャッシュされている前記データの複数の部分の1以上の部分にアクセスするよう動作可能であり、
前記1以上のスタンバイキャッシュノードは、前記複数のキャッシュノードの少なくとも1つのキャッシュノードにキャッシュされている前記データの複数の部分の1以上の部分を、前記少なくとも1つのキャッシュノードが故障したとき、キャッシュするよう動作可能である、請求項11記載のシステム。 - データを格納する方法であって、
前記データを複数の部分に分割し、前記複数の部分を複数のサーバノードの1以上のサーバノードに格納するステップと、
1以上のクライアントノードを使用して、前記複数のキャッシュノードの1以上のキャッシュノードにキャッシュされた前記データの複数の部分の1以上の部分にアクセスするステップと、
前記データの複数の部分の1以上の部分を複数のキャッシュノードの1以上のキャッシュノードにキャッシュし、データの各部分について、該データの部分がキャッシュされている前記キャッシュノードの識別を格納するステップと、
を有し、
前記複数の部分を複数のサーバノードの1以上のサーバノードに格納するステップは、前記部分を前記1以上のサーバノードにキャッシュするステップを含み、
前記データの複数の部分の1以上の部分を複数のキャッシュノードの1以上のキャッシュノードにキャッシュするステップは、前記1以上のキャッシュノードを使用して、前記1以上のサーバノードに格納されている前記データの複数の部分の1以上の部分にアクセスするステップを有し、
前記1以上のキャッシュノードの少なくとも1つのキャッシュノードは、前記複数のサーバノードの1つのサーバノードに格納され、
前記データの複数の部分の1以上の部分にアクセスするステップは、
前記1以上のクライアントノードが、前記データの複数の部分の1以上の部分を読むことを許可するステップと、
前記1以上のクライアントノードが、前記データの複数の部分の1以上の部分に書き込むことを許可するステップと、
前記1以上のクライアントノードが、前記データの複数の部分の1以上の部分に、前記1以上のクライアントノードによる書き込み後にアクセスすることを可能にするステップと、
を有する方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/676,874 US20080201549A1 (en) | 2007-02-20 | 2007-02-20 | System and Method for Improving Data Caching |
PCT/US2008/053924 WO2008103590A1 (en) | 2007-02-20 | 2008-02-14 | System and method for improving data caching |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010519613A true JP2010519613A (ja) | 2010-06-03 |
Family
ID=39561860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009549715A Pending JP2010519613A (ja) | 2007-02-20 | 2008-02-14 | データキャッシュ処理を向上させるシステム及び方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20080201549A1 (ja) |
EP (1) | EP2113102A1 (ja) |
JP (1) | JP2010519613A (ja) |
WO (1) | WO2008103590A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012155717A (ja) * | 2011-01-21 | 2012-08-16 | Nhn Corp | キャッシュクラウド構造を用いたキャッシュシステムおよびキャッシングサービス提供方法 |
JP2019020994A (ja) * | 2017-07-14 | 2019-02-07 | 国立大学法人電気通信大学 | ネットワークシステム、ノード装置、キャッシュ方法及びプログラム |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8069145B2 (en) * | 2007-08-30 | 2011-11-29 | Red Hat, Inc. | Data gravitation |
US8176099B2 (en) * | 2007-08-30 | 2012-05-08 | Red Hat, Inc. | Grid based file system |
US20110307541A1 (en) * | 2010-06-10 | 2011-12-15 | Microsoft Corporation | Server load balancing and draining in enhanced communication systems |
JP6552196B2 (ja) * | 2011-08-02 | 2019-07-31 | アジャイ ジャドハブ | クラウドベースの分散永続性及びキャッシュデータモデル |
CN113244606B (zh) * | 2021-05-13 | 2023-09-26 | 北京达佳互联信息技术有限公司 | 任务处理方法、装置及相关设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6466978B1 (en) * | 1999-07-28 | 2002-10-15 | Matsushita Electric Industrial Co., Ltd. | Multimedia file systems using file managers located on clients for managing network attached storage devices |
US6986018B2 (en) * | 2001-06-26 | 2006-01-10 | Microsoft Corporation | Method and apparatus for selecting cache and proxy policy |
US6973536B1 (en) * | 2001-08-31 | 2005-12-06 | Oracle Corporation | Self-adaptive hybrid cache |
US20030115281A1 (en) * | 2001-12-13 | 2003-06-19 | Mchenry Stephen T. | Content distribution network server management system architecture |
US20050015546A1 (en) * | 2003-07-15 | 2005-01-20 | Ofir Zohar | Data storage system |
US20050149562A1 (en) * | 2003-12-31 | 2005-07-07 | International Business Machines Corporation | Method and system for managing data access requests utilizing storage meta data processing |
JP4548037B2 (ja) * | 2004-08-09 | 2010-09-22 | 株式会社日立製作所 | キャッシュメモリの管理方法、ストレージ装置または計算機システム |
US7506009B2 (en) * | 2005-01-28 | 2009-03-17 | Dell Products Lp | Systems and methods for accessing a shared storage network using multiple system nodes configured as server nodes |
JP2006277545A (ja) * | 2005-03-30 | 2006-10-12 | Hitachi Ltd | 計算機システム、記憶装置システムおよびライト処理制御方法 |
-
2007
- 2007-02-20 US US11/676,874 patent/US20080201549A1/en not_active Abandoned
-
2008
- 2008-02-14 WO PCT/US2008/053924 patent/WO2008103590A1/en active Application Filing
- 2008-02-14 JP JP2009549715A patent/JP2010519613A/ja active Pending
- 2008-02-14 EP EP08729831A patent/EP2113102A1/en not_active Withdrawn
Non-Patent Citations (2)
Title |
---|
CSNG200900578105; 小野瀬 友樹: '分散型キャッシュネットワークにおける大容量データ配信の高速並列送信方式の提案と評価 Design and Evalu' マルチメディア,分散,協調とモバイル(DICOMO)シンポジウム論文集 1997年〜2006年版 V 第2001巻, 20010627, p.657-662, 社団法人情報処理学会 * |
JPN6012047847; 小野瀬 友樹: '分散型キャッシュネットワークにおける大容量データ配信の高速並列送信方式の提案と評価 Design and Evalu' マルチメディア,分散,協調とモバイル(DICOMO)シンポジウム論文集 1997年〜2006年版 V 第2001巻, 20010627, p.657-662, 社団法人情報処理学会 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012155717A (ja) * | 2011-01-21 | 2012-08-16 | Nhn Corp | キャッシュクラウド構造を用いたキャッシュシステムおよびキャッシングサービス提供方法 |
US9716768B2 (en) | 2011-01-21 | 2017-07-25 | Nhn Corporation | Cache system and method for providing caching service |
JP2019020994A (ja) * | 2017-07-14 | 2019-02-07 | 国立大学法人電気通信大学 | ネットワークシステム、ノード装置、キャッシュ方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20080201549A1 (en) | 2008-08-21 |
WO2008103590A1 (en) | 2008-08-28 |
EP2113102A1 (en) | 2009-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | Orion: A distributed file system for {Non-Volatile} main memory and {RDMA-Capable} networks | |
KR102518095B1 (ko) | 스토리지 장치 및 시스템 | |
US10545842B2 (en) | Automated local database connection affinity and failover | |
US9778856B2 (en) | Block-level access to parallel storage | |
TWI416323B (zh) | 用於管理工作量之方法、系統及半導體裝置 | |
US8433770B2 (en) | Combined local and network storage interface | |
JP2010519613A (ja) | データキャッシュ処理を向上させるシステム及び方法 | |
JP2004326162A (ja) | ネットワークシステム、サーバ、データ処理方法及びプログラム | |
KR20090028518A (ko) | 고속 비휘발성 메모리 장치 및 방법, 컴퓨터 판독가능 매체 | |
WO2017041570A1 (zh) | 向缓存写入数据的方法及装置 | |
TW201220197A (en) | for improving the safety and reliability of data storage in a virtual machine based on cloud calculation and distributed storage environment | |
WO2014089828A1 (zh) | 访问存储设备的方法和存储设备 | |
EP4369171A1 (en) | Method and apparatus for processing access request, and storage device and storage medium | |
US9910808B2 (en) | Reflective memory bridge for external computing nodes | |
US9639496B2 (en) | Systems and methods for providing protocol independent disjoint drive letter sets | |
US20160301759A1 (en) | Method and apparatus for implementing device sharing | |
CN114546902A (zh) | 基于多协议访问存储器的系统、设备和方法 | |
JP4150854B2 (ja) | ストレージエリアネットワーク上の共有ディスク装置へのアクセスシステム及びそのクライアント | |
JP6343722B2 (ja) | マルチコアシステムにおいてデータ訪問者ディレクトリにアクセスするための方法及びデバイス | |
US8356016B1 (en) | Forwarding filesystem-level information to a storage management system | |
TWI769796B (zh) | 利用索引物件來進行簡易儲存服務無縫遷移的方法、主裝置以及儲存伺服器 | |
US11947568B1 (en) | Working set ratio estimations of data items in a sliding time window for dynamically allocating computing resources for the data items | |
CN117093158B (zh) | 分布式存储系统的存储节点、系统、数据处理方法及装置 | |
WO2024045643A1 (zh) | 数据访问设备、方法、系统、数据处理单元及网卡 | |
JP2009505195A (ja) | コンピュータ装置内におけるファイル・サーバ要求の効率の改善 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100831 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120911 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130305 |