JP4265728B2 - データ・サーバ・システム内のデータの連続更新方法 - Google Patents
データ・サーバ・システム内のデータの連続更新方法 Download PDFInfo
- Publication number
- JP4265728B2 JP4265728B2 JP2001197684A JP2001197684A JP4265728B2 JP 4265728 B2 JP4265728 B2 JP 4265728B2 JP 2001197684 A JP2001197684 A JP 2001197684A JP 2001197684 A JP2001197684 A JP 2001197684A JP 4265728 B2 JP4265728 B2 JP 4265728B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- store
- server
- data store
- disk
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、概してクライアント−サーバ・システムに関し、より詳細に述べれば、ネットワーク内におけるクラスタ化されたデータ・コンテンツ・サーバに関する。
【0002】
【従来の技術】
クラスタ化されたデータ・サーバ環境においては、各サーバが、ローカル・ディスク・ドライブ内にそのコンテンツをストアしている。たとえば、データ・サーバとしてウェブ・サーバ、ドキュメント・サーバ、イメージ・サーバ、ビデオ・サーバ等々が考えられる。各ローカル・ディスク・ドライブは、オリジナル(またはマスタ)ディスク・ドライブのミラーである。マスタ・ディスク内のウェブ・コンテンツは、オーサリング・サーバによって作成され、更新される。新しいコンテンツまたは更新後のコンテンツは、オーサリング・サーバから各ウェブ・サーバにネットワークを介して転送される。この種の転送の数が多すぎるとき、および/または転送されるデータのサイズが大きすぎるとき、データの転送に長時間を要することになる。これは、受信側ウェブ・サーバのCPU負荷を増加させ、その結果、そのコンテンツの更新が行なわれている間は、到来したHTTP要求をウェブ・サーバが処理できなくなる。この理由により、通常は、オーサリング・サーバからの更新を日中に行うことができない。インターネット・トラフィックは地球規模であり、世界中のどこかに必ず「日中」に該当するところがあることから、問題はさらに悪化する。
【0003】
一方、共有ファイル・システムを実装しているときには、別の問題が発生する。共有ファイル・システムにおいては、すべてのウェブ・サーバが1つのディスク・ドライブ(より一般的には、ディスク・ドライブのシステム)を共有し、ファイル・サーバがファイル・システムのメタ−データをマネージする。しかしながら、この共有ファイル・システムのファイル・サーバが、信頼性ならびにパフォーマンスの両方の意味においてボトルネックとなる。ファイル・サーバなしでは、ウェブ・サーバが共有ディスク・ドライブからコンテンツを読み出すことが不可能であり、すべてのウェブ・サーバは、ファイルのオープンを試みるごとに、ファイル・サーバと通信しなければならない。結局、これが大きな待ち時間を招く結果となり、どのような長さであっても通常はエンド−ユーザによって許容される類いのものではない。
【0004】
【発明が解決しようとする課題】
データ・サーバのコンテンツのリアルタイム更新を可能にするソリューションが必要とされている。特に、データ・サーバがクライアントの要求を処理しているとき、この能力を提供し得ると望ましい。また、システムのパフォーマンスを低下させることなく、リアルタイムのコンテンツ更新が提供されることが望まれている。
【0005】
【課題を解決するための手段】
クライアントに対するサービスに影響を与えることなくデータ・サーバにおけるデータを連続更新するための方法およびシステムは、第1のデータ・ストアからの読み出しによって、データを求めるクライアントの要求を満たすステップを含む。同時に、システムのブート・アップ時には第1のデータ・ストアと同一であった第2のデータ・ストアを更新する。随時、第2のデータ・ストア内の新しいコンテンツを第1のデータ・ストアにコピーすることが望ましいときには、第2のデータ・ストアからのデータが第3のデータ・ストアにコピーされる。またその後の、データを求めるクライアントの要求は、第3のデータ・ストアからの読み出しによって満たされる。さらに、第2のデータ・ストア上において、作成/更新アクティビティの別のラウンドが開始される。
【0006】
本発明の1つの側面は、データ・スイッチを介したデータの転送を含むが、コピー・オペレーションの実行においては、このデータ・スイッチが除かれる。本発明の別の側面は、データを求めるクライアントの要求を満たすための第3のデータ・ストアからの読み取りオペレーションを、実際には第2のデータ・ストアからの読み取りオペレーションとする必要があるか否かの決定を含む。本発明のさらに別の側面においては、作成/更新の次のラウンドの間における第2のデータ・ストアに対する書き込みオペレーションに、第2のデータ・ストアから第3のデータ・ストアへの書き込みオペレーションを先行させなければならないか否かの決定を含む。
【0007】
本発明の別の実施態様においては、データを求めるクライアントの要求が第1のデータ・ストアからの読み出しによって満たされる。同時に、第2のデータ・ストア上において作成/更新アクティビティが生じる。更新が望まれる場合には、その後のデータを求めるクライアントの要求が第2のデータ・ストアからの読み出しによって満たされる。次の作成/更新アクティビティのラウンドは、第1のデータ・ストアに対する読み出しおよび書き込みによって実行される。本発明のこの実施態様の1つの側面は、第1のデータ・ストアの読み出しおよび書き込みに先行して、クライアントが開始した未決定の第1のデータ・ストアからの読み出しオペレーションがすべて完了するまでの待機が存在することである。その種のクライアントが開始した未決定の読み出しオペレーションがすべて完了すると、コピー・オペレーションが開始されて、第2のデータ・ストアのコンテンツが第1のデータ・ストアにコピーされる。本発明の別の側面は、データ・スイッチを介してデータの転送が行なわれるが、コピー・オペレーションについては、データ・スイッチを除いたところに生じることである。
【0008】
本発明の教示は、以下の図面を参照した詳細な説明を考察することによって容易に理解を得ることができよう。
【0009】
【発明の実施の形態】
図1は、本発明に従ったデータ・サーバ・システムの実施態様を示している。データ・サーバの1つの応用は、図に示すようなウェブ・サーバ・マシン内にある。ただしこのウェブ・サーバ・マシンは、本件出願の時点において本発明を実施する最良の形態を説明するためのビークルとしての作用を提供する単なる例に過ぎないことに注意する必要がある。また、本発明は任意のデータ・サーバ・システムに容易に適合され得ることを理解する必要があり、たとえばデータ・サーバは、ウェブ・サーバ・マシン、ドキュメント・サーバ、イメージ・サーバ・ビデオ・サーバ等々とすることができる。
【0010】
図1に示されるように、ワールド・ワイド・ウェブ(WWW、またはウェブ)サーバ環境は、1ないしは複数のクライアント010101、010102、...、010103を含み、そのそれぞれがウェブ・ブラウジング・ソフトウエアを有している。これらのクライアントは、1ないしは複数のウェブ・サーバ・マシンに要求を送信し、コンテンツ、たとえばHTMLデータ、イメージ・データ、オーディオ・データ等を獲得する。続いて、受信したコンテンツをウェブ・ブラウジング・ソフトウエアがそれらのブラウザ上に表示する。
【0011】
各クライアントは、インターネット010201によりウェブにアクセスすることができる。これは通常、公衆交換網、つまり電話システムによってアクセスされる。それに代えて、ケーブル・テレビジョン・オペレータが、ケーブル・モデム・サービスを介した高速アクセスを提供することもあり、それにおいては、テレビジョン・ケーブル・ネットワークの高いデータ容量を使用してインターネット・トラフィックが搬送される。クライアント010101、010102、...、010103は、電話接続、ケーブル接続、ワイヤレス・リンク等を介したインターネットに対する接続011201、011202、...、011203を有している。
【0012】
ウェブ・サーバ・マシン・サイトにおいては、負荷バランサ010301がクライアントからの要求を受信する。「ウェブ・サーバ」は、クライアントに対して許容可能な応答時間を提供するために、通常、複数のウェブ・サーバ・マシンを包含している。負荷バランサは、複数のウェブ・サーバ・マシンの1つを選択して受信した要求を渡し、選択したウェブ・サーバ・マシンに処理を行わせる。このようにすることによって、負荷バランサは、ウェブ・サーバ・マシン間のCPU負荷がより均一となるように分散させている。
【0013】
ウェブ・サーバ・マシン・サイトには、さらにオーサリング・サーバ010401が備わっている。このコンポーネントは、ウェブ・サイトが提供するコンテンツの作成および更新を行う。前述したように、通常ウェブ・サイトは、複数のウェブ・サーバ・マシン010501、...、01050Nを包含している。一般にこれらのマシンは、UNIX(ユニックス)ベースのシステムまたはUNIX(ユニックス)から派生したシステムを使用しており、その理由としては、これらのシステムが時の試練を経ていること、堅牢であること、サーバ・システムに求められるスループットを提供し得ることが挙げられる。別のシステム、たとえばWindows NT(ウインドウズNT)も考慮に入れられる。
【0014】
各ウェブ・サーバ・マシンは、通常、2つのコンポーネントを包含している。第1のコンポーネントはHTTP(ハイパーテキスト・トランスファ・プロトコル)デーモン011501、...、01150Nである。HTTPデーモンは、ウェブ・サーバ・マシン上で走るプロセスであり、ウェブ・サイトのコンテンツに関するユーザの要求を処理する。まずHTTPデーモンは、ブラウズ中のクライアントからの要求を受け取る。続いてHTTPデーモンは、クライアントが要求を行っているコンテンツが何かを解釈する。次にHTTPデーモンは、データ・ストアにアクセスし、そこからコンテンツを読み出す。最後にHTTPデーモンは、アクセスしたコンテンツを、インターネットを介して要求を発しているクライアントに送信し、それによりデータに対するクライアントの要求を満たす。
【0015】
各ウェブ・サーバ・マシンの第2のコンポーネントは、リマウント・デーモン011601、...、01160Nである。各リマウント・デーモンは、オーサリング・サーバと通信する。このコンポーネントの役割については後述する。
【0016】
各ウェブ・サーバ・マシン010501、...、01050Nは、ローカル・ファイル・システムを介してデータ・ストア011101、011102をマウントすることができる。つまり、各ウェブ・サーバ・マシンは、たとえば、ファイル・サーバを使用する共有ファイル・システムに見られるような通信のオーバーヘッドをまったく伴うことなくダイレクトにデータ・ストアからのデータにアクセスすることができる。
【0017】
データ・ストレージ・システム010801に対するウェブ・サーバ・マシン010501、...、01050Nおよびオーサリング・サーバ010401の接続には、高速データ・スイッチ010601が使用される。好ましい実施態様においては、データ・スイッチが米国規格協会(ANSI)によって定義されているFibre Channel(ファイバ・チャンネル)標準に準拠する。ただし、本発明がFibre Channel(ファイバ・チャンネル)スイッチの使用によって限定されないことを理解する必要がある。そのほかのデータ・スイッチング・テクノロジも使用することができる;たとえば、ギガビット・イーサネット・データ・スイッチおよびATMスイッチングをその可能性として挙げられる。しかしながら、Fibre Channel(ファイバ・チャンネル)テクノロジは、その標準が高速かつ堅牢なデータ・スイッチング・アプリケーションを念頭に定義されていることから好ましい。
【0018】
ストレージ・デバイス010801は、マスタ・ディスク011001および2つのローカル・ディスク011101、011102を含む複数のディスク・ドライブを包含している。各ウェブ・サーバ・マシン010501、...、01050Nは、そのファイル・システム上に、いずれのローカル・ディスクもマウントすることが可能であり、それを行うことによって、各サーバは、同一のディスクを共有することができる。伝統的なWWW環境においては、各ウェブ・サーバ・マシンが独自のローカル・ディスクを有しており、オーサリング・サーバもまた、独自のローカル・ディスクを有している。したがって、ローカル・ディスク内のウェブ・サーバ・マシンのコンテンツを更新するときには、オーサリング・サーバが、ネットワーク、たとえばイーサネットを介し、ファイル・サーバ経由でウェブ・サーバ・マシンに対し、新しい、あるいは更新済みのコンテンツを送信しなければならない。このアプローチは、各ウェブ・サーバ・マシンからのCPUのオーバーヘッドを招き、結果的にそれがシステムのパフォーマンスを低下させることになる。この理由から、更新を随時行うことができず、1日のうちの特定の時間帯に限ってそれが行なわれている。
【0019】
ストレージ・デバイス010801は、さらにディスク・ドライブのマネージを行うディスク・コントローラ010901を含んでいる。ディスク・コントローラは、サーバからのI/O要求を処理する。各サーバは、データ・スイッチ010601を介してディスク・コントローラに結合されており、その結果、各サーバは、見かけ上、ディスク・コントローラに対する単独のアクセスを有する。
【0020】
ストレージ・デバイスは、マスタ・ディスク011001を含んでいる。オーサリング・サーバは、新しいコンテンツを作成し、マスタ・ディスク上に収められている現存するコンテンツを更新する。マスタ・ディスクのコンテンツは、適宜、たとえばスケジュールに従って、あるいはシステム管理者による決定に応じてローカル・ディスクにコピーされる。
【0021】
ローカル・ディスク[1]およびローカル・ディスク[2]として識別されているローカル・ディスク011101、011102は、各ウェブ・サーバ・マシンのファイル・システム上にマウントされる。本発明によれば、2つのローカル・ディスクのうちの一方だけが、常時すべてのウェブ・サーバ・マシンにマウントされる。
【0022】
このストレージ・デバイスにはさらに、再同期デーモン010902が含まれている。このコンポーネントは、ディスクのスナップショットを作成する。本発明によれば、再同期デーモンが更新済みのデータをマスタ・ディスクからローカル・ディスクの1つにコピーする。
【0023】
さらに図1を参照すると、上記のコンポーネント間の相互接続が示されている。上記のコンポーネントの間には、いくつかのネットワークが存在する。たとえば、ブラウズ中のクライアント010101、...、010103は、通信回線011201、...、011203を介してインターネットに接続されている。負荷バランサ010301は、光ファイバ回線、ケーブル・モデム接続、DSL回線等の高速リンク011204を介してインターネットに接続されている。また負荷バランサは、イーサネット接続011205を介してウェブ・サーバ・マシンおよびオーサリング・サーバに接続されている。各サーバは、Fibre Channel(ファイバ・チャンネル)011206、011301、...、01130N、011207により、データ・スイッチ010601を介してストレージ・デバイス010801に接続されている。ストレージ・デバイス内においては、ディスク・コントローラ010901が、SCSI 011208、011209、011210を介してディスク・ドライブに接続されている。
【0024】
ここで簡単に図10〜13を参照するが、上記のコンポーネントによって各種の内部データ変数が維持されることがわかる。オーサリング・サーバ010401は、アンマウント・ディスク番号DN 160101(図13)を管理している。このデータ変数は、ローカル・ディスク[DN]が、いずれのウェブ・サーバ・マシンによってもマウントされていないことを示す。
【0025】
各ウェブ・サーバ・マシン010501、...、01050Nは、そのルート・ディレクトリのディスク番号、RootDN 110101(図11)を管理している。この変数は、各ウェブ・サーバ・マシンが、ローカル・ディスク[RootDN]からコンテンツの読み出しを行っていることを示す。また各ウェブ・サーバ・マシンは、各ローカル・ディスクに関する完了していない要求の数を管理する。たとえば、ウェブ・サーバ・マシン010501によって管理されるReqN[1] 100101(図10)は、ローカル・ディスク[1]に関する完了していない要求の数を表し、それにおいて要求は、ウェブ・サーバから発行される。ウェブ・サーバ・マシンは、そのReqN[i]がゼロである場合に限ってローカル・ディスク[i]をアンマウントすることができる。
【0026】
ストレージ・デバイス010801は、ビットマップのセットBM1[1][x]、BM2[1][x]、BM1[2][x]、およびBM2[2][x](120201、130201、140201、150201;図12)を管理している。これらのビットマップは、2つのディスク・ドライブの間、すなわちマスタ・ディスクおよびローカル・ディスク[1]またはローカル・ディスク[2]のいずれかの間におけるミラーリングに使用される。MaxDBNは、ローカル・ディスクの有するディスク・ブロックの最大数である。本発明においては、すべてのディスク・ドライブの有するディスク・ブロックが同数となる。
【0027】
BM1ビットマップは、マスタ・ディスクが、ローカル・ディスクにまだコピーされていない新しい情報を有するか否かを示し、ここでは情報ありを、慣習に従ってビット値「1」により示す。つまり、BM1[DN][x]が「1」であれば、マスタ・ディスクのブロックxが新しい情報を含んでおり(あるいは新しい情報が書き込まれている)、かつローカル・ディスク[DN]のそのブロックxを、最終的に、すなわち、オーサリング・サーバが更新オペレーションの実行を要求したとき、更新して新しい情報を持たせる必要があることを示す(本発明のこの実施態様においては、DNが「1」または「2」になる)。
【0028】
BM2ビットマップは、更新プロセスの間に、マスタ・ディスクがローカル・ディスクにすでにコピーされたか否かを示し、設計の都合から、コピーされたことをビット値「0」により示す。つまり、BM2[DN][y]が「0」であれば、すでにマスタ・ディスクは、ローカル・ディスク[DN]のブロックyにコピーされていることを示す。これらのビットマップの用法については、本発明のオペレーションの説明の中で述べる。
【0029】
図2、3、および5〜9に戻り、本発明の一実施態様に従った更新オペレーションについて考察する。システムのブート・アップ時に、ストレージ・デバイス010801内のすべてのディスクのコンテンツが同期化される;すなわち、マスタ・ディスクおよび2つのローカル・ディスクの有する情報がまったく同一になる。好ましくは、ディスク・ドライブを互いの鏡像とする。システムのブート・アップ時において、各ウェブ・サーバ・マシンは、ローカル・ディスク[2]をいずれかのディレクトリにマウントする。RootDNの値は2であり、したがって各ウェブ・サーバ・マシンは、ローカル・ディスク[2]のコンテンツを読み出すことになる。また各ウェブ・サーバ・マシンは、ReqN[1]を0に、かつReqN[2]を0にそれぞれ初期化する。各ウェブ・サーバ・マシンは、独自のHTTPデーモン(図9)および独自のReMount(リマウント)デーモン(図2のステップ020301)を起動する。オーサリング・サーバは、DNを1に初期化し、それによってローカル・ディスク[1]がいずれのウェブ・サーバ・マシンによってもマウントされていないことが示される。図3は、このプロセスの間におけるシステム・コンポーネントのインタラクションを示している。
【0030】
図6を参照すると、システムのブート・アップ時において、ディスク・コントローラ010901は、以下の処理を開始する。
【0031】
ステップ060102:
ディスク・コントローラがすべてのビットマップを初期化する。つまり、すべてのxおよびyに関して、BM1[x][y]=BM2[x][y]=0とする。
【0032】
ステップ060103:
ディスク・コントローラは、ウェブ・サーバ・マシンの1つからのメッセージを待機する。メッセージを受け取ると、ディスク・コントローラはステップ060104に進む。
【0033】
ステップ060104:
受け取ったメッセージがReadMSG(読み出しメッセージ)であれば、ディスク・コントローラはREAD(読み出し)プロシージャ(図7)に進む。本発明の一実施態様においては、たとえばReadMSG(読み出しメッセージ)をSCSI標準の読み出しコマンドとする。
【0034】
ステップ060105:
受け取ったメッセージがWriteMSG(書き込みメッセージ)であれば、ディスク・コントローラはWRITE(書き込み)プロシージャ(図8)に進む。本発明の一実施態様においては、たとえばWriteMSG(書き込みメッセージ)をSCSI標準の書き込みコマンドとする。
【0035】
ステップ060106:
受け取ったメッセージがResyncMSG(再同期メッセージ)であれば、ディスク・コントローラはRESYNC INIT(再同期起動)プロシージャ(図5)に進む。
【0036】
ディスク・コントローラは、以上のステップを連続して繰り返す。
【0037】
図3および9を参照するが、各HTTPデーモンは、ブラウズ中のクライアント010101、010102、...、010103からの要求を処理する。図3は、このデータ・フローを丸囲みの数字1を用いてラベル付けしたラインにより図式的に示している。HTTPデーモン(HTTPd)の一般的なフローは、次のようになる。
【0038】
ステップ090102:
HTTPdが、ブラウズ中のクライアントから要求を受け取る。
【0039】
ステップ090103:
HTTPdは、受け取った要求からファイル名を獲得する。たとえば、要求されたURLが「http://www.foo.com/index.html」であった場合、HTTPdは、このURLからファイル名「index.html」を抽出する。
【0040】
ステップ090104:
一時変数yにRootDNの値をストアする。
【0041】
ステップ090105:
HTTPdは、ReqN[y]を1インクリメントして、ローカル・ディスク[y]に対する未決定のアクセスが1つ増えたこと、つまりローカル・ディスク[y]からのファイル「index.html」の読み出しが増えたことを示す。このステップは、アトミック・プロセスである。つまりこれは、このステップの間、それを除く他のプロセスがReqN[y]にアクセスできないことを意味する。
【0042】
ステップ090106:
HTTPdは、要求されたファイルのコンテンツをローカル・ディスク[y]から読み出し、ファイルの一部もしくは全部を、要求を発しているクライアントに送信する。各ウェブ・サーバのファイル・システムは、それぞれのメモリ内にこのファイルをキャッシュすることができる。要求されたファイルがすでにキャッシュされている場合には、HTTPdは、キャッシュ・メモリからそのファイルを読み出す。キャッシュされたファイルは、そのファイルをストアしているディレクトリがアンマウントされると、無効化されるかフラッシュされる。
【0043】
ステップ090107:
HTTPdは、ReqN[y]を1デクリメントして、ローカル・ディスク[y]に対する未決定の要求が、この時点において1つ少なくなったことを示す。このステップもまた、アトミック・プロセスである。なお、ステップ090106が完了するまで、このステップが実行されないことに注意されたい。
【0044】
HTTPデーモンは、システムによって受け取られる、データを求めるクライアントの要求のそれぞれに関してこれらのステップを繰り返す。ここで、各ウェブ・サーバ・マシンが、それぞれのシステム上で複数のHTTPデーモンを走らせることができる点に注意する。さらに、ウェブ・サーバ・マシンが、要求されたファイルにアクセスし、コンテンツをクライアントに送信することによってクライアントの要求を満たしているとき、オーサリング・サーバによるマスタ・ディスクのコンテンツに対する更新/追加が可能な点にも注意を要する。
【0045】
図2を参照すると、システムのブート・アップ時に、各ウェブ・サーバ・マシン内においてReMount(リマウント)デーモンが開始して待機状態020302に入ることがわかる。この待機状態においては、ReMount(リマウント)デーモンが、オーサリング・サーバ010401から送られるReMount−MSG(リマウント・メッセージ)を待機している。
【0046】
ここで図2および3を参照するが、前述したように、システムのオペレーションが正常に行なわれている間は、オーサリング・サーバが、マスタ・ディスク内においてコンテンツの作成および/または更新を行う。図3には、このアクティビティが丸囲みの数字2を用いてラベル付けした矢印で示されたデータ・フローにより示されている。このアクティビティの結果として、ローカル・ディスクがマスタ・ディスクとの同期から外れる。したがって、ローカル・ディスクの更新が必要になる。このプロシージャは、ミラー更新と呼ばれる。図2に、このプロセスの概略のステップを示した。
【0047】
同期は、コンテンツ管理者によって、あるいはスケジュールに従って、またはその他のスケジュール基準に基づいてトリガすることができる。更新が望まれたとき、ミラー更新のプロシージャが開始されて(ステップ020201)、次に示す処理に進む。
【0048】
ステップ020202:
オーサリング・サーバが、マスタ・ディスク内のコンテンツの作成および更新を停止する。
【0049】
ステップ020203:
オーサリング・サーバのメモリ内にキャッシュされているコンテンツが、マスタ・ディスクに書き込まれた後、フラッシュされる。
【0050】
ステップ020204:
オーサリング・サーバからディスク・コントローラに、ローカル・ディスク[DN]の同期を行うことを示す表示とともに、ResyncMSG(再同期メッセージ)が送られる。図3においては、これが、丸囲みの数字3を用いてラベル付けしたラインによって示されている。このメッセージによってディスク・コントローラは、マスタ・ディスク内の更新されたディスク・ブロックをローカル・ディスク[DN]にコピーする。ここで、いずれのウェブ・サーバ・マシンもローカル・ディスク[DN]をマウントしていないことに注意する。
【0051】
ステップ020205:
その後オーサリング・サーバは、待機状態に入り、ディスク・コントローラからCompleteMSG(完了メッセージ)を受け取るまで休止を設定する。
【0052】
ステップ060108:
ResyncMSG(再同期メッセージ)がディスク・コントローラに送られる(図6)。
【0053】
ステップ060103(図3の丸囲みの数字4):
図6を参照すると、ディスク・コントローラがResyncMSG(再同期メッセージ)を受け取る。プロセスは、RESYNC INIT(再同期起動)(図2のステップ020101)に継続される。ディスク・コントローラは、オーサリング・サーバによって送られたResyncMSG(再同期メッセージ)からDNを受け取る。これは、ディスク・コントローラに対して、マスタ・ディスクから更新されたディスク・ブロックをローカル・ディスク[DN]にコピーする指示を与える。これより前の再同期デーモンが処理中である場合には、ミラー更新プロシージャが、その再同期デーモンが完了するまで待機することも可能であり、あるいはディスク・コントローラからオーサリング・サーバに通知を行い、後の適切な時期にオーサリング・サーバにリトライさせることも可能である。これらは、設計上の選択肢となる。
【0054】
ステップ020102:
すべてのxについて、BM2[DN][x]をBM2[DN][x]とBM1[DN][x]の間の論理和にセットする。
【0055】
ステップ020103:
すべてのxについて、BM1[DN][x]をゼロにセットする。
【0056】
ステップ020104:
ディスク・コントローラが、CompleteMSG(完了メッセージ)をオーサリング・サーバに送る。
【0057】
ステップ020105:
ディスク・コントローラは、再同期デーモン(Resyncd)を起動し、マスタ・ディスク内の新しいコンテンツを用いてローカル・ディスク[DN]を更新する。これにより、プロセスがRESYNCD START(再同期デーモン開始)(図5のステップ050101)に進む。Resyncd(再同期デーモン)のプロシージャについては、図5と関連から後述する。
【0058】
ステップ020106:
最終的に再同期デーモンが完了する。この後、ディスク・コントローラは、再度メッセージの待機状態に入る(図6のステップ060108)。
【0059】
ステップ020205:
ここで、オーサリング・サーバが、ディスク・コントローラからのCompleteMSG(完了メッセージ)を待機していることを思い出されたい。オーサリング・サーバは、それを受け取ると、ステップ020206に進む。
【0060】
ステップ020206(図3の丸囲みの数字2):
本発明によれば、オーサリング・サーバは、更新プロセスが完了していなくてもマスタ・ディスク内のコンテンツの作成および更新を開始する。このアプローチは、オーサリング・サーバが更新したばかりのブロックを修正することはほとんどないという原理に基づいて採用されている。しかしながら、オーサリング・サーバが更新したばかりのブロックの修正を希望することもあり、その場合には、図8に示したWrite(書き込み)ルーチンによってこの問題が解決される。
【0061】
ステップ020207(図3の丸囲みの数字5):
オーサリング・サーバからすべてのウェブ・サーバ・マシン上のReMount(リマウント)デーモンに対して、ReMountMSG(リマウント・メッセージ)がDN表示とともに送られる。このメッセージによってウェブ・サーバ・マシンは、続いてクライアントから受け取る読み出し要求を、最新の情報を収容しているローカル・ディスク[DN]から満たすことになる。
【0062】
ステップ020302:
各ReMount(リマウント)デーモンが、オーサリング・サーバからReMountMSG(リマウント・メッセージ)を受け取る。
【0063】
ステップ020303(図3の丸囲みの数字6):
各ReMount(リマウント)デーモンが、ローカル・ディスク[DN]をマウントする。RootDN=DNをセットする。その後、HTTPデーモンがローカル・ディスク[DN]からデータを読み出す。
【0064】
ステップ020304:
ReqN[(DN+1) mod 2]==0であれば、各ReMount(リマウント)デーモンは、ローカル・ディスク[(DN+1) mod 2]をアンマウントすることができる。それに該当しなければ、ReMount(リマウント)デーモンは、ReqN[(DN+1) mod 2]が「0」になるまで待機する。これにおいて、「DN」は、マスタ・ディスクを用いて更新されたディスクを表し、「(DN+1) mod 2」は、更新されなかったディスクを表す。
【0065】
ステップ020305(図3の丸囲みの数字7):
各ReMount(リマウント)デーモンが、ローカル・ディスク[(DN+1) mod 2]をアンマウントする。
【0066】
ステップ020306(図3の丸囲みの数字8):
各ReMount(リマウント)デーモンが、CompleteMSG(完了メッセージ)をオーサリング・サーバに送る。
【0067】
ステップ020208:
オーサリング・サーバは、ウェブ・サーバ・マシンのそれぞれからCompleteMSG(完了メッセージ)を受け取るまで待機している。
【0068】
ステップ020209:
すべてのウェブ・サーバ・マシンが更新されなかったディスクをアンマウントすれば、DNの更新が可能になる。つまり、DN=(DN+1) mod 2。
【0069】
ステップ020210:
MIRROR UPDATE(ミラー更新)のプロセスを終了する。
【0070】
図2および5を参照すると、ステップ020105において、ディスク・コントローラが再同期デーモンを起動している。このデーモンは、更新されたディスク・ブロックをマスタ・ディスクからDNによって識別されるローカル・ディスクにコピーする。図5に示したフローチャートは、再同期デーモンのプロセスの概要を表している。
【0071】
ステップ050102:
一時変数DBNを「1」にセットする。なお、このプロシージャにおいて使用する一時変数xは、再同期デーモンによる、マスタ・ディスクからローカル・ディスク[x]への更新されたディスク・ブロックのコピーを表していることに注意されたい。xの値は、DNにセットされる。
【0072】
ステップ050103:
DBNがディスク・ブロックの最大数より大きい場合には、再同期デーモンが終了する(ステップ050108)。
【0073】
ステップ050104:
マスタ・ディスク内のディスク・ブロック[DBN]は更新されているが、コピーが行なわれていない場合には、ステップ050105に進む。それに該当しない場合は、ステップ050107に進む。ここで、BM2[x][DBN]==1は、マスタ・ディスク内のディスク・ブロック[DBN]がローカル・ディスクにまだコピーされていないことを表す点に注意が必要である。
【0074】
ステップ050105:
マスタ・ディスク内のディスク・ブロック[DBN]をローカル・ディスク[x]内のディスク・ブロック[DBN]にコピーする。これからわかるように、本発明の特徴の1つは、ディスクからディスクへのデータの直接転送である。この転送は、ストレージ・デバイス010801内のデータ・パスに沿って行なわれ、それにはデータ・スイッチ010601が含まれない。
【0075】
ステップ050106:
このプロセスがローカル・ディスク[x]のディスク・ブロック[DBN]を更新する。BM2[x][DBN]を「0」にセットして、そのブロックがコピーされたことを示す。
【0076】
ステップ050107:
DBN=DBN+1、すなわち次のブロックへのインクリメントを行う。上記のプロシージャを、マスタ・ディスク内のすべてのディスク・ブロックについて繰り返す。
【0077】
ステップ050108:
Resyncd(再同期デーモン)のプロセスを完了する。
【0078】
図7を参照するが、ローカル・ディスク[x]内のディスク・ブロックの更新は、再同期デーモンが開始した後に即座に行なわれるわけではない。更新されたブロックをマスタ・ディスクからローカル・ディスクにコピーするためには、有限の所定時間を要する。一方、その間にこれらのディスク・ブロックの1つに対する読み出しアクセスがあった場合には、ディスク・コントローラから要求発信側に対して、ローカル・ディスクが完全に更新されているという印象が与えられなければならない。ディスク・コントローラは、ローカル・ディスクに更新済みの情報が含まれているか否かを判断しなければならず、含まれていなければ、要求されたディスク・ブロックをローカル・ディスク[x]からではなく、マスタ・ディスクから読み出さなければならない。図7のフローチャートは、この状況における読み出しプロシージャの概要を示している。
【0079】
ステップ070101:
ディスク・コントローラが、ReadMSG(読み出しメッセージ)を受け取ると、ステップ060104からこのプロシージャが呼び出される。一時変数DBNおよびxは、要求発信側が、ローカル・ディスク[x]内のディスク・ブロック[DBN]の読み出しを試みていることを示す。
【0080】
ステップ070102:
ReadMSG(読み出しメッセージ)が、要求発信側がマスタ・ディスクからのデータの読み取りを試みていること(オーサリング・サーバの場合等)を示している場合には、マスタ・ディスクが、その定義から最新のコンテンツを含んでいることから、ディスク・コントローラは、単純にステップ070108に進む。読み出し要求がローカル・ディスクに関するものであれば、ステップ070103に進む。
【0081】
ステップ070103:
ローカル・ディスク[x]内のディスク・ブロック[DBN]がすでに更新されていれば(つまり、BM2[x][DBN]==0)、ステップ070104に進む。更新されていなければ、ステップ070105に進む。
【0082】
ステップ070104:
ディスク・コントローラは、ローカル・ディスク[x]からディスク・ブロック[DBN]を読み出し、そのディスク・ブロックを要求発信側に送る。READ(読み出し)プロシージャを終了する(ステップ070109)。
【0083】
ステップ070105:
ディスク・コントローラは、マスタ・ディスクからディスク・ブロック[DBN]を読み出し、そのディスク・ブロックを要求発信側に送る。
【0084】
ステップ070106:
ディスク・コントローラは、ステップ070105において読み込んだディスク・ブロック[DBN]をローカル・ディスク[x]内のディスク・ブロック[DBN]に書き込む。このプロセスは、ローカル・ディスク[x]内のディスク・ブロック[DBN]を更新することになる。
【0085】
ステップ070107:
ローカル・ディスク[x]内のディスク・ブロック[DBN]が更新されたことから、BM2[x][DBN]を「0」にセットする。READ(読み出し)プロシージャを終了する(ステップ070109)。
【0086】
ステップ070108:
ディスク・コントローラは、マスタ・ディスクからディスク・ブロック[DBN]を読み出し、そのディスク・ブロックを要求発信側に送る。READ(読み出し)プロシージャを終了する(ステップ070109)。
【0087】
ステップ070103、070105、070106、および070107からなるパスは、クリティカル・パスを構成し、その重要性については説明を後述する。
【0088】
図8を参照するが、ローカル・ディスク[x]内のディスク・ブロックの更新は、再同期デーモンが開始した後に即座に行なわれるわけではない。更新されたブロックをマスタ・ディスクからローカル・ディスクにコピーするためには、有限の所定時間を要する。その間にオーサリング・サーバは、次の作成/更新アクティビティ(図2のステップ020206)のラウンドに進む。その結果、マスタ・ディスクのブロックがローカル・ディスクにコピーされる前に、それに対する書き込みが試みられる可能性がある。図8のフローチャートは、この状況を扱うプロシージャの概要を示している。
【0089】
ステップ080101:
ディスク・コントローラがWriteMSG(書き込みメッセージ)を受け取ると、このプロシージャがステップ060105から呼び出される。一時変数DBNは、要求発信側(つまり、オーサリング・サーバ)が、マスタ・ディスク内のディスク・ブロック[DBN]に対する書き込みを希望していることを示す。なお、ウェブ・サーバ・マシンは、ローカル・ディスクに対して読み出し要求のみを発することから、ローカル・ディスクに対する書き込みアクセスがないことに注意する必要がある。
【0090】
ステップ080102:
一時変数xは、ローカル・ディスクをインデクスするために使用される。x=1にセットする。
【0091】
ステップ080103:
x>NDISKであれば、ステップ080109に進む。それに該当しなければ、ステップ080104に進む。ただし、これにおいてNDISKは、ローカル・ディスクの数、つまり2である。
【0092】
ステップ080104:
ローカル・ディスク[x]内のディスク・ブロック[DBN]がまだ更新されていなければ(つまりBM2[x][DBN]==1)、マスタ・ディスク内の対応するディスク・ブロックを上書きする前に、そのディスク・ブロックを更新しなければならない。その場合には、ステップ080105に進む。ローカル・ディスク[x]内のディスク・ブロック[DBN]がすでに更新されていれば、ステップ080107に進む。
【0093】
ステップ080105:
ディスク・コントローラがマスタ・ディスク内のディスク・ブロック[DBN]を、ローカル・ディスク[x]内のディスク・ブロック[DBN]に書き込む。
【0094】
ステップ080106:
ローカル・ディスク[x]内のディスク・ブロック[DBN]が更新されたことから、BM2[x][DBN]を「0」にセットして、この事実を反映させる。
【0095】
ステップ080107:
ステップ080109において、ディスク・コントローラがマスタ・ディスク内のディスク・ブロック[DBN]に書き込みを行い、その結果このブロックが更新されることになる。オーサリング・サーバからResyncMSG(再同期メッセージ)が送られたときには(図2のステップ020204)、ディスク・コントローラが、このディスク・ブロックをすべてのローカル・ディスクにコピーしなければならない。これは、BM1[x][DBN]を「1」にセットし、ブロックDBNが新しい情報を含んでいることを示すことによって達成される。
【0096】
ステップ080108:
すべてのローカル・ディスクに関して、上記のプロセス(ステップ080103からステップ080108まで)を繰り返す。
【0097】
ステップ080109:
ここで始めてディスク・コントローラは、WriteMSG(書き込みメッセージ)のプロセスに進むことができる。ディスク・コントローラは、マスタ・ディスク内のディスク・ブロック[DBN]に書き込みを行う。WRITE(書き込み)プロシージャを終了する(ステップ080110)。
【0098】
ステップ080104、080105、および080106からなるステップは、クリティカル・パスを構成し、その重要性については説明を後述する。
【0099】
図4のシステム・ブロック図および図14のフローチャートを参照し、本発明のもう1つの実施態様について考察する。この場合、図4に示したデータ・ストレージ・システム010801は、2つのローカル・ディスク011001、011102を包含している。この実施態様においては、マスタ・ディスクが存在しない。オーサリング・サーバは、ローカル・ディスクの一方においてコンテンツの作成および更新を行う。そのほかのコンポーネントは、図2に示した実施態様と同じになる。
【0100】
ここで簡単に、図10、11、18、および19を参照すると、各種の内部データ変数が上記のコンポーネントによって維持されていることがわかる。オーサリング・サーバ010401は、アンマウント・ディスク番号DN 160101(図13)を管理している。このデータ変数は、ローカル・ディスク[DN]が、いずれのウェブ・サーバ・マシンによってもマウントされていないことを示す。
【0101】
各ウェブ・サーバ・マシン010501、...、01050Nは、そのルート・ディレクトリのディスク番号、RootDN 110101(図11)を管理している。この変数は、各ウェブ・サーバ・マシンが、ローカル・ディスク[RootDN]からコンテンツの読み出しを行っていることを示す。また各ウェブ・サーバ・マシンは、各ローカル・ディスクに関する完了していない要求の数を管理する。たとえば、ReqN[1] 100101(図10)は、ローカル・ディスク[1]に関する完了していない要求の数を表す。ウェブ・サーバ・マシンは、そのReqN[i]がゼロである場合に限ってローカル・ディスク[i]をアンマウントすることができる。
【0102】
ストレージ・デバイス010801は、ビットマップのセットBM1[x]210301、およびBM2[x]210401(図18)を管理している。MaxDBNは、ローカル・ディスクのディスク・ブロックの最大数である。本発明においては、すべてのディスク・ドライブの有するディスク・ブロックが同数となる。変数PARENT 220101およびCHILD 220102(図19)も提供されている。これらの変数PARENT(親)およびCHILD(子)は、ローカル・ディスクの番号1または2をストアする。慣習に従ってローカル・ディスク[PARENT]は、ローカル・ディスク[CHILD]より新しいコンテンツを有する。つまり、再同期デーモンは、更新されたディスク・ブロックをローカル・ディスク[PARENT]からローカル・ディスク[CHILD]にコピーする。
【0103】
図6、9、14〜17、および20を参照すると、システムのブート・アップ時に、各ウェブ・サーバ・マシン010501、...、01050Nは、ローカル・ディスク[2]をルート・ディレクトリとしてマウントする。RootDNの値は2であり、したがってウェブ・サーバは、ローカル・ディスク[2]からコンテンツを読み出す。また各ウェブ・サーバは、ReqN[1]=0およびReqN[2]=0に初期化する。各ウェブ・サーバ・マシンは、それぞれ独自のHTTPデーモン(図9のステップ090101)および独自のReMount(リマウント)デーモン(図14のステップ170301)を起動する。HTTPデーモンは、ブラウズ中のクライアントからの要求を処理する。ReMount(リマウント)デーモンは、オーサリング・サーバからのReMount−MSG(リマウント・メッセージ)を待機する(ステップ170302)。
【0104】
オーサリング・サーバは、DNを「1」に初期化し、いずれのウェブ・サーバ・マシンもローカル・ディスク[1]をマウントしていないことを示す。システムのブート・アップ時においては、ローカル・ディスク[1]およびローカル・ディスク[2]が同一のコンテンツを含んでいる。またシステムのブート・アップ時において、ディスク・コントローラは、図6を参照して前述した方法に従って処理を開始する。本発明のこの実施態様においては、ディスク・コントローラが、すべてのxについて初期化を行い、BM1[x]およびBM2[x]が「0」にセットされる。
【0105】
本発明のこの実施態様におけるディスク・コントローラのプロセス(図6)およびHTTPデーモンのプロセス(図9)は、前述の説明と同じになる。
【0106】
図14を参照すると、本発明のこの実施態様に従った更新プロセスのフローチャートが示されている。
【0107】
ステップ170202:
オーサリング・サーバが、ローカル・ディスク[DN]内のコンテンツの作成および更新を停止する。
【0108】
ステップ170203:
オーサリング・サーバがメモリ内にキャッシュしているデータが、ローカル・ディスク[DN]にフラッシュされる。
【0109】
ステップ170204(図20の丸囲みの数字3):
オーサリング・サーバから、すべてのウェブ・サーバ・マシン上のReMount(リマウント)デーモンに対して、ReMountMSG(リマウント・メッセージ)が送られる。このメッセージによってウェブ・サーバ・マシンは、続くクライアントからのデータを求める要求を満たすために、ローカル・ディスク[DN]からコンテンツを読み出すことになる。
【0110】
ステップ170302:
各ReMount(リマウント)デーモンが、オーサリング・サーバからReMountMSG(リマウント・メッセージ)を受け取る。
【0111】
ステップ170303(図20の丸囲みの数字4):
各ReMount(リマウント)デーモンが、そのルート・ディレクトリとしてローカル・ディスク[DN]をマウントする。RootDN=DNをセットする。この時点以降は、データを求めるクライアントの要求を満たすために、ローカル・ディスク[DN]から読み出したデータが用いられる。
【0112】
ステップ170304:
ReqN[(DN+1) mod 2]==0であれば、各ReMount(リマウント)デーモンは、ローカル・ディスク[(DN+1) mod 2]をアンマウントすることができる。それに該当しなければ、ReMount(リマウント)デーモンは、ReqN[(DN+1) mod 2]が「0」になるまで待機する。
【0113】
ステップ170305(図20の丸囲みの数字5):
各ReMount(リマウント)デーモンが、ローカル・ディスク[(DN+1) mod 2]をアンマウントする。
【0114】
ステップ170306(図20の九囲みの数字6):
各ReMount(リマウント)デーモンは、以前のディスク(つまり、(DN+1) mod 2)のアンマウントに成功すると、CompleteMSG(完了メッセージ)をオーサリング・サーバに送る。
【0115】
ステップ170205:
オーサリング・サーバは、すべてのウェブ・サーバ・マシンからCompleteMSG(完了メッセージ)を受け取るまで待機しており、それをすべて受け取った時点においては、以前のディスクをマウントしているウェブ・サーバ・マシンがなくなったことになる。
【0116】
ステップ170206(図20の丸囲みの数字7):
オーサリング・サーバが、ディスク・コントローラにResyncMSG(再同期メッセージ)を送る。このメッセージによってディスク・コントローラは、ローカル・ディスク[DN]内の更新されたディスク・ブロックをローカル・ディスク[(DN+1) mod 2]にコピーする。この時点においては、いずれのウェブ・サーバ・マシンもローカル・ディスク[(DN+1) mod 2]をマウントしていないことに注意を要する。
【0117】
ステップ060108:
ResyncMSG(再同期メッセージ)がディスク・コントローラに送られる。
【0118】
ステップ060103(図20の丸囲みの数字8):
ディスク・コントローラは、ResyncMSG(再同期メッセージ)を受け取り、RESYNC INIT(再同期起動)(図14のステップ170101)に進む。この時点において、ディスク・コントローラは、オーサリング・サーバによって送られたResyncMSG(再同期メッセージ)からDNを受け取る。これは、ディスク・コントローラに対して、更新されたディスク・ブロックをローカル・ディスク[DN]からローカル・ディスク[(DN+1) mod2]にコピーすることを指示する。
【0119】
ステップ170102:
これより以前の再同期デーモンが処理中である場合には、ミラー更新プロシージャが、その再同期デーモンが完了するまで待機する。
【0120】
ステップ170103:
変数PARENT(親)およびCHILD(子)の定義から、PARENT=DNをセットする。
【0121】
ステップ170104:
CHILD=(DN+1) mod 2をセットする。
【0122】
ステップ170105:
すべてのxについて、BM2[x]=BM1[x]をセットする。
【0123】
ステップ170106:
すべてのxについて、BM1[x]=0をセットする。
【0124】
ステップ170107:
ディスク・コントローラが、CompleteMSG(完了メッセージ)をオーサリング・サーバに送る。
【0125】
ステップ170108:
ディスク・コントローラは、再同期デーモンを実行する(図15のステップ180101のRESYNCD START(再同期デーモン開始))。このデーモン・プロセスは、更新を実現するコピー・オペレーションを実際に実行するプロセスである。
【0126】
ステップ170109:
RESYNC INIT(再同期起動)のプロシージャを終了する。その後ディスク・コントローラは、別のメッセージの待機状態に入る(図6)。
【0127】
ステップ170207:
オーサリング・サーバは、ディスク・コントローラからのCompleteMSG(完了メッセージ)を待機している。オーサリング・サーバは、それを受け取ると、ステップ170208に進む。
【0128】
ステップ170208:
オーサリング・サーバは、ローカル・ディスク[(DN+1) mod 2]内において、次の作成および/または更新アクティビティのラウンドを開始する。この時点においては、再同期デーモン・プロセスが更新の実行を処理中であることに注意する。
【0129】
ステップ170209:
すべてのウェブ・サーバ・マシンが、すでにローカル・ディスク[(DN+1) mod 2]をアンマウントしていることから、DNが更新される;DN=(DN+1) mod 2。
【0130】
ステップ170210:
ミラー更新のプロセスを終了する。
【0131】
次に、図15を参照して本発明のこの実施態様における再同期デーモンについて説明する。ここで、ステップ170108において、ディスク・コントローラが再同期デーモン・プロセスを実行していることを思い出されたい。このデーモン・プロセスは、ローカル・ディスク[PARENT]内の更新されたディスク・ブロックをローカル・ディスク[CHILD]にコピーする。以下のフローチャートは、このプロシージャの概要を表している。
【0132】
ステップ180102:
一時変数DBNを「1」にセットする。
【0133】
ステップ180103:
DBNがディスク・ブロックの最大数(MaxDBN)より大きい場合には、再同期デーモンが終了する(ステップ180108)。
【0134】
ステップ180104:
ローカル・ディスク[CHILD]内のディスク・ブロック[DBN]が更新されている場合には、プロセスがステップ180105に進む。それに該当しなければ、プロセスがステップ180107に進む。なお、BM2[DBN]==1は、ローカル・ディスク[PARENT]内のディスク・ブロック[DBN]が更新されていることを表す。
【0135】
ステップ180105:
ローカル・ディスク[PARENT]内のディスク・ブロック[DBN]をローカル・ディスク[CHILD]内のディスク・ブロック[DBN]にコピーする。ほかの実施態様における場合と同様に、ディスクからディスクへの転送が、完全にストレージ・デバイス010801の内側において行なわれ、そのデータ・パスにはデータ・スイッチが含まれない。
【0136】
ステップ180106:
ローカル・ディスク[CHILD]内のディスク・ブロック[DBN]は、ステップ180105によって更新されている。ここでは、BM2[DBN]を「0」にセットしてその事実を反映させる。
【0137】
ステップ180107:
DBN=DBN+1を行う。上記のプロシージャを、マスタ・ディスク内のすべてのディスク・ブロックについて繰り返す。
【0138】
ステップ180108:
再同期デーモン・プロセスを完了する。
【0139】
ステップ180104、180105、および180106からなるステップは、クリティカル・パスを構成し、その重要性については説明を後述する。
【0140】
図16を参照するが、再同期デーモンが開始してから更新オペレーションが完了するまで、有限の所定時間を必要とする。しかしながら、その間にも読み出し要求は発せられる。つまり、必ずしもすべてのブロックの更新が完了していないことから、読み出しオペレーションの対象となるローカル・ディスク[CHILD]内のディスク・ブロックの一部は、更新済みの情報を含まないことがある。これらのディスク・ブロックの1つに対する読み出しアクセスがあった場合に、ディスク・コントローラは、ローカル・ディスク[CHILD]からではなく、ローカル・ディスク[PARENT]からそのディスク・ブロックを読み出さなければならない。図16は、このシナリオに関する読み出しプロシージャの概要を表している。
【0141】
ステップ190101:
ディスク・コントローラが、ReadMSG(読み出しメッセージ)を受け取ると、ステップ060104(図6)からこのプロシージャが呼び出される。一時変数DBNは、要求発信側が、一方のローカル・ディスク内のディスク・ブロック[DBN]に対する読み出しオペレーションを指定したことを示す。
【0142】
ステップ190102:
ReadMSG(読み出しメッセージ)によって、その読み出し要求がローカル・ディスク[PARENT]からのデータの読み取りであることが示される場合には、定義によりPARENT(親)は最新の情報を含んでいることから、ディスク・コントローラは、何も特別なことを行う必要がない。したがって、プロセスがステップ190108に進む。読み出し要求がCHILD(子)に対するものであるときには、プロセスがステップ190103に継続される。
【0143】
ステップ190103:
ローカル・ディスク[CHILD]内のディスク・ブロック[DBN]がすでに更新されていれば、ステップ070104に進む。更新されていなければ、ステップ070105に進む。
【0144】
ステップ190104:
ディスク・コントローラは、ローカル・ディスク[CHILD]内のディスク・ブロック[DBN]を読み出し、そのディスク・ブロックを要求発信側に送る。READ(読み出し)プロシージャを終了する(ステップ190109)。
【0145】
ステップ190105:
ディスク・コントローラは、ローカル・ディスク[PARENT]内のディスク・ブロック[DBN]を読み出し、そのディスク・ブロックを要求発信側に送る。
【0146】
ステップ190106:
またディスク・コントローラは、このディスク・ブロックをローカル・ディスク[CHILD]に書き込む。これによってローカル・ディスク[CHILD]内のディスク・ブロック[DBN]が更新される。
【0147】
ステップ190107:
ローカル・ディスク[CHILD]内のディスク・ブロック[DBN]が更新されたことから、BM2[DBN]を「0」にセットしてこの事実を反映させる。READ(読み出し)プロシージャを終了する(ステップ190109)。
【0148】
ステップ190108:
ディスク・コントローラは、ローカル・ディスク[PARENT]内のディスク・ブロック[DBN]を読み出し、そのディスク・ブロックを要求発信側に送る。READ(読み出し)プロシージャを終了する(ステップ190109)。
【0149】
ステップ190103、190105、190106、および190107からなるパスは、クリティカル・パスを構成し、その重要性については説明を後述する。
【0150】
ここで、図17を参照して本発明のこの実施態様に従ったWRITE(書き込み)プロセスについて説明する。
【0151】
ステップ200101:
ディスク・コントローラがWriteMSG(書き込みメッセージ)を受け取ると、このプロシージャがステップ060105(図6)から呼び出される。一時変数DBNは、要求発信側が、ローカル・ディスク[CHILD]内のディスク・ブロック[DBN]に対する書き込みを試みていることを示す。なお、いずれのウェブ・サーバ・マシンによっても、ローカル・ディスク[PARENT]に対する書き込みアクセスが行なわれないことに注意する必要がある。この点において、ウェブ・サーバ・マシンは、ローカル・ディスク[PARENT]からコンテンツの読み出しのみを行う。
【0152】
ステップ200102:
ステップ080109においては、ディスク・コントローラが、ローカル・ディスク[CHILD]内のディスク・ブロック[DBN]の書き込みを行うことになる。オーサリング・サーバからResyncMSG(再同期メッセージ)が送られたとき、このディスク・ブロックをローカル・ディスク[PARENT]にコピーすることがディスク・コントローラにわかっていなければならない。このことは、BM1[DBN]を「1」にセットすることによって維持される。
【0153】
ステップ200103:
ディスク・コントローラは、ローカル・ディスク[CHILD]内のディスク・ブロック[DBN]の書き込みを行うことによってWriteMSG(書き込みメッセージ)を処理する。WRITE(書き込み)プロシージャを終了する(ステップ200104)。
【0154】
ここで、WriteMSG(書き込みメッセージ)によって指定されたデータのサイズがディスク・ブロックのサイズより小さい場合において、BM2[DBN]==1であれば、ステップ200103に先行して、ローカル・ディスク[PARENT]内のディスク・ブロック[DBN]をローカル・ディスク[CHILD]にコピーしなければならないことに注意する必要がある。これを行う理由については、例を用いることによってもっとも良好な説明が得られる。システムのブート・アップ時においては、ローカル・ディスク[1]内のディスク・ブロック[DBN]およびローカル・ディスク[2]内のディスク・ブロック[DBN]が、同一のデータを有している。ある時点において、ローカル・ディスク[2]内のディスク・ブロック[DBN]が完全に更新されたとする。その結果、オーサリング・サーバがResync−MSG(再同期メッセージ)を発行し、ローカル・ディスク[2]内のディスク・ブロック[DBN]をローカル・ディスク[1]にコピーしなければならないことを示す。オーサリング・サーバは、このコピーが完了する前に、ローカル・ディスク[1]内のディスク・ブロック[DBN]の一部を更新することができる。コピーが完了する前に、BM2[DBN]が「0」にセットされると、ローカル・ディスク[2]内のディスク・ブロック[DBN]のほかの部分がローカル・ディスク[1]にコピーされないことがある。結果的にこれは、ローカル・ディスク[1]とローカル・ディスク[2]の間における不一致を招くことになる。
【0155】
Resyncd(再同期デーモン)がいずれかのコピー・オペレーションを処理しており、かつディスク・コントローラが上に示したクリティカル・パス内にあるときは、少なくとも何らかのロック・メカニズムが必要である。これらのクリティカル・パスは、互いに順序設定されていなければならない。2ないしはそれ以上のクリティカル・パスが、同時に実行されてはならない。これは、ビットマップBM1およびBM2が、Resyncd(再同期デーモン)およびディスク・コントローラそれぞれのための共有リソースであることによる。
【0156】
図21は、伝統的なWWW環境を示している。各ウェブ・サーバ・マシンは、それぞれ独自のローカル・ディスクを有している。ミラー更新オペレーションを実行するためには、オーサリング・サーバが、マスタ・ディスクからコンテンツを読み出し、それを各ウェブ・サーバ・マシンに送らなければならない。各ウェブ・サーバ・マシンは、図において丸囲みの数字1を用いてラベル付けした実線によって示されるように、受け取ったコンテンツをそれぞれのローカル・ディスク内にストアすることによってこれに応答する。この種のプロセスは、貴重なCPUリソースを消費する;これらのリソースは、データに関するクライアントの要求を満たすために使用された方が好ましい。つまり、大量のデータの更新を必要とするときには、ライブ更新の実行が実用的でなくなる。たとえば、ビデオ−オン−デマンド・システムにおいては、ビデオ・リリースのインストールまたはアンインストールを行うために、システムを外さなければならない。これは、伝統的な方法における制限である。
【0157】
【発明の効果】
これに対して、本発明に従った方法およびシステムは、ウェブ・サーバのCPUパワーを消費する必要がない。ストレージ・デバイスが、マスタ・ディスクからローカル・ディスクにデータのコピーを行う唯一のコンポーネントになる。ウェブ・サーバ・マシンに要求されるタスクは、更新プロセスの間におけるディスクのマウントおよびアンマウントだけである。
【0158】
共有ファイル・システムのアプローチと比較すると、本発明においては、各ウェブ・サーバ・マシンが通信オーバーヘッドを伴うことなくファイルにアクセスできることから、ファイルにアクセスするときのファイル・サーバのオーバーヘッドが抑えられる。さらに、データ・スイッチの使用がファイル・サーバのボトルネックを回避する。
【図面の簡単な説明】
【図1】本発明に従ったデータ・サーバ構成の一実施態様を表した概要図である。
【図2】本発明の一実施態様に従った更新プロシージャの間におけるメイン・プロセッシング・ステップの概要を表したハイ・レベルのフローチャートである。
【図3】本発明の一実施態様に従った更新プロシージャの前およびその間における論理的なデータの流れを示した説明図である。
【図4】本発明に従ったデータ・サーバ構成の別の実施態様を表した概要図である。
【図5】本発明の一実施態様に従った再同期デーモン・プロセスのメイン・プロセッシング・ステップを表した概略のフローチャートである。
【図6】ディスク・コントローラのメイン・プロセッシング・ステップを表した概略のフローチャートである。
【図7】本発明の一実施態様に従った読み出しプロシージャのメイン・プロセッシング・ステップを表した概略のフローチャートである。
【図8】本発明の一実施態様に従った書き込みプロシージャのメイン・プロセッシング・ステップを表した概略のフローチャートである。
【図9】HTTPデーモン・プロセスのメイン・プロセッシング・ステップを表した概略のフローチャートである。
【図10】本発明の一実施態様に従って使用されるデータ構造を示した説明図である。
【図11】本発明の一実施態様に従って使用されるデータ構造を示した説明図である。
【図12】本発明の一実施態様に従って使用されるデータ構造を示した説明図である。
【図13】本発明の一実施態様に従って使用されるデータ構造を示した説明図である。
【図14】本発明の別の実施態様に従った更新プロシージャの間におけるメイン・プロセッシング・ステップの概要を表したハイ・レベルのフローチャートである。
【図15】本発明の別の実施態様に従った再同期デーモン・プロセスのメイン・プロセッシング・ステップを表した概略のフローチャートである。
【図16】本発明の別の実施態様に従った読み出しプロシージャのメイン・プロセッシング・ステップを表した概略のフローチャートである。
【図17】本発明の別の実施態様に従った書き込みプロシージャのメイン・プロセッシング・ステップを表した概略のフローチャートである。
【図18】本発明の別の実施態様に従って使用されるデータ構造を示した説明図である。
【図19】本発明の別の実施態様に従って使用されるデータ構造を示した説明図である。
【図20】本発明の別の実施態様に従った更新プロシージャの前およびその間における論理的なデータの流れを示した説明図である。
【図21】従来技術構成のデータ・サーバ・システムにおける更新の構成を示した説明図である。
【符号の説明】
010101:ブラウズ中のクライアント、010201:インターネット、010301:負荷バランサ、010401:オーサリング・サーバ、010501:ウェブ・サーバ、010601:スイッチ、010901:ディスク・コントローラ、011001:マスタ・ディスク、011101:ローカル・ディスク、010801:ストレージ・デバイス。
Claims (18)
- コンテンツ・サーバ・システム内のデータを更新する方法であって、
前記コンテンツ・サーバ・システムは、第1、第2、および第3のデータ・ストアをそれぞれ有するストレージ・デバイスと、前記ストレージ・デバイスとデータ通信を行うデータ・スイッチと、前記データ・スイッチと通信し、前記第1のデータ・ストアからデータを読み出すことのできるデータ・サーバと、前記第2のデータ・ストアとデータの交換を行うために、前記データ・スイッチとデータ通信を行うオーサリング・サーバとを備えており、
前記ストレージ・デバイスにより実行されるステップであって、前記第1、第2、および第3のデータ・ストアのそれぞれが同一のデータを記憶するように、前記システムが起動される場合に同期させるステップと、
前記データ・サーバに前記第1のデータ・ストアをマウントさせるステップと、
前記データ・サーバが、クライアントの読み出し要求に応答して、前記第1のデータ・ストアからデータを読み出すステップと、
前記オーサリング・サーバが、前記第2のデータ・ストア内のデータを更新する第1の更新ステップと、
前記オーサリング・サーバからの同期信号を前記ストレージ・デバイスが受け取るステップと、
前記同期信号の受け取りに応じて、前記ストレージ・デバイスが、前記第2のデータ・ストアのデータと前記第3のデータ・ストアのデータとを一致させるべく、前記第2のデータ・ストアから前記第3のデータ・ストアにデータのコピーを行うステップと、
前記第2のデータ・ストアからのデータがコピーされた前記第3のデータ・ストアを、前記データ・サーバにマウントさせ、かつ、前記第1のデータ・ストアを前記データ・サーバからアンマウントさせるステップと、
その後に受け取ったクライアントからの読み出し要求に応じて、前記データ・サーバが、前記第3のデータ・ストアからデータを読み出すステップと、
を有することを特徴とするデータ更新方法。 - 請求項1記載のデータ更新方法であって、
前記コピーを行うステップは、前記データ・サーバが前記第3のデータ・ストアからデータを読み出すステップとともに行うことを特徴とする方法。 - 請求項1記載のデータ更新方法であって、
前記データ・サーバに前記第3のデータ・ストアからデータを読み出させるステップでは、前記ストレージ・デバイスは、前記第1の更新ステップにより更新された前記第2データ・ストア内の更新データが、前記コピーを行うステップにより前記第2のデータ・ストアから前記第3のデータ・ストアにコピーされているか否かを判定し、前記更新データが前記第3のデータ・ストアにコピーされている場合には、前記データ・サーバに前記第3のデータストアから前記更新データを読み出させ、前記更新データが前記第3のデータ・ストアにコピーされていない場合には、前記データ・サーバに前記第2のデータ・ストアから前記更新データを読み出させる、ことを特徴とするデータ更新方法。 - 請求項1記載のデータ更新方法であって、
前記第3のデータ・ストアからデータを読み出すステップは、前記クライアントからの読み出し要求を満たすために、更新されたデータを前記第2のデータ・ストアから読み出すステップ、および前記更新されたデータを前記第3のデータ・ストアに書き込むステップを含むことを特徴とするデータ更新方法。 - 請求項1記載のデータ更新方法であって、
前記第1のデータ・ストアからデータを読み出すステップは、データ・スイッチを介して前記データを前記データ・サーバに伝送するステップを含むことを特徴とするデータ更新方法。 - 請求項5記載のデータ更新方法であって、
前記コピーを行うステップは、前記データ・スイッチを使用せずに、前記ストレージ・デバイス内で、前記第2のデータ・ストアから前記第3のデータ・ストアにデータを直接転送することにより実行される、ことを特徴とするデータ更新方法。 - 請求項5記載のデータ更新方法であって、
前記データ・サーバが前記第3のデータ・ストアからデータを読み出すステップは、前記データ・スイッチを介して前記データを伝送するステップを含むことを特徴とするデータ更新方法。 - 請求項7記載のデータ更新方法であって、
前記第1の更新ステップは、前記データ・スイッチを介してデータを伝送するステップを含むことを特徴とするデータ更新方法。 - 請求項1記載のデータ更新方法であって、
前記第1のデータ・ストア内の前記データの一部は、キャッシュ・メモリ内に含まれ、前記データを読み出すステップは、前記キャッシュ・メモリからデータを読み出すステップを含むことを特徴とするデータ更新方法。 - 請求項9記載のデータ更新方法であって、
さらに、前記第1のデータ・ストアがアンマウントされた場合に、前記データ・サーバが、前記キャッシュ・メモリをフラッシュするステップを含むことを特徴とするデータ更新方法。 - ストレージ・デバイスを有するデータ・サーバにおける、前記ストレージ・デバイスに含まれているデータを、クライアントに対するサービスを中断することなくデータを更新する方法において、
前記ストレージ・デバイスにより実行されるステップであって、前記ストレージ・デバイス内の第1、第2、および第3のデータ・ストアのそれぞれが同一のデータを記憶するように、前記システムが起動される場合に同期させるステップと、
第1のデータ・プロセッサが、データ・スイッチを介して前記第1のデータ・ストアから前記データを読み出すステップと、
第2のデータ・プロセッサが、前記第2のデータ・ストアに前記データ・スイッチを介してデータを送信することにより、前記第2のデータ・ストア内のデータを更新させるステップと、
前記第2のデータ・プロセッサにより第1の信号を生成させるステップと、
前記第1の信号に応答して、前記ストレージ・デバイスが、前記第2のデータ・ストアから第3のデータ・ストアにデータを書き込むステップと、
前記第2のデータ・プロセッサにより第2の信号を生成するステップと、
前記第2の信号に応答して、前記第1のデータ・プロセッサが、前記データ・スイッチを介して該データを、前記第2のデータ・ストアから、もしくは前記第3のデータ・ストアから獲得するステップと、
を包含することを特徴とするデータ更新方法。 - クライアントに対してデータを提供するためのサーバ・システムであって、
第1、第2、および第3のデータ・ストアを有するストレージ・デバイスと、
前記ストレージ・デバイスとデータ通信を行うデータ・スイッチと、
前記データ・スイッチと通信し、前記複数のデータ・ストアのうちの第1のデータ・ストアからデータを読み出すことのできる第1のデータ・サーバと、
前記複数のデータ・ストアのうちの第2のデータ・ストアとデータの交換を行うために、前記データ・スイッチとデータ通信を行うオーサリング・サーバとを備え、
前記ストレージ・デバイスは、前記第1、第2、および第3のデータ・ストアのそれぞれが同一のデータを記憶するように、前記システムが起動される場合に同期させ、
前記第1のデータサーバに前記第1のデータ・ストアをマウントさせ、
クライアントの読出し要求に応じて、前記第1のデータ・サーバにより前記データ・スイッチを介して前記第1のデータ・ストアからデータを読み出させ、
前記オーサリング・サーバにより前記データ・スイッチを介して前記第2のデータ・ストア内のデータを更新させ、
前記ストレージ・デバイスは、前記オーサリング・サーバから第1の信号を受け取った場合に、前記第2のデータ・ストアのデータのうち前記オーサリング・サーバにより更新されたデータを前記第3のデータ・ストアにダイレクトに転送して記憶させ、
前記第1のデータ・サーバは、前記オーサリング・サーバから第2の信号を受け取った場合に、前記第3のデータ・ストアをマウントして、前記第3のデータ・ストアからデータを読み出す、サーバ・システム。 - データ・サーバ・システム内のデータを更新するデータ更新方法において、
前記データ・サーバ・システムは、第1および第2のデータ・ストアをそれぞれ有するストレージ・デバイスと、前記ストレージ・デバイスとデータ通信を行うデータ・スイッチと、前記データ・スイッチと通信し、前記第1のデータ・ストアを更新させるオーサリング・サーバと、前記データスイッチと通信し、前記第2のデータ・ストアからデータを読み出すことのできるデータ・サーバと、とを備えており、
クライアントからのデータの読み出し要求に応えるために前記データ・サーバが前記第2のデータ・ストアのデータを読出し、前記オーサリング・サーバが前記第1のデータ・ストアを更新させるステップと、
前記オーサリング・サーバが第1の信号を生成するステップと、
クライアントからのデータの読み出し要求に応えるために、前記ストレージ・デバイスが、前記第1の信号に応答して、前記第1のデータ・ストアのデータを読み出し、かつ、そのデータを前記第1のデータ・ストアから前記第2のデータ・ストアにコピーするステップと、
前記第1の信号に応答して、前記データ・サーバが、前記第2のデータ・ストアを更新するためにそれに対する読み出しおよび書き込みを行うステップと、
を包含することを特徴とするデータ更新方法。 - 請求項13記載データ更新方法であって、前記データ・サーバが前記第2のデータ・ストアに対する読み出しおよび書き込みを行うステップは、前記第2のデータ・ストアに記憶されているデータについての未処理の要求が全て処理されるまで待機することを特徴とするデータ更新方法。
- 請求項13記載データ更新方法であって、前記データ・サーバが前記第2のデータ・ストアに対する読み出しおよび書き込みを行うステップでは、前記ストレージ・デバイスは、前記オーサリング・サーバにより更新された前記第1のデータ・ストア内の更新データが前記第2のデータ・ストアにコピーされているか否かを判定し、前記更新データが前記第2のデータ・ストアにコピーされている場合は、前記データ・サーバに前記第2のデータ・ストアから前記更新データを読み出させ、前記更新データが前記第2のデータ・ストアにコピーされていない場合は、前記第1のデータ・ストアから前記更新データを読み出して前記第2のデータ・ストアにコピーさせる、ステップを含むことを特徴とするデータ更新方法。
- 複数のクライアントに対してデータを配信するためのシステムにおいて、
第1および第2のデータ・ストアを有するストレージ・サブシステムと、
データ・スイッチ・サブシステムと、
前記データ・スイッチを介して前記第1のデータ・ストアと通信し、前記第1のデータ・ストアからデータを読み出すことによって、クライアントからの読み出し要求を満たすべく構成された第1のプロセッシング・サブシステムと、
前記データ・スイッチを介して前記第2のデータ・ストアとデータ通信し、前記第2のデータ・ストアに記憶される更新済みデータを生成するべく構成された第2のプロセッシング・サブシステムと、を備え、
前記第2のプロセッシング・サブシステムは、前記第2のデータ・ストアに記憶されている前記更新済データが前記第1のデータ・ストアにコピーされているか否かを判定し、前記更新済データが前記第1のデータ・ストアにコピーされていない場合には、前記クライアントからの前記更新済データの読み出し要求を、前記第2のデータ・ストアの前記更新済データを読み出すことによって処理しなければならないことを示す第1の信号と、前記第1のデータ・ストアからデータを読み出す未処理の読み出し要求がないことを示す第2の信号と、を生成する手段を有し、
前記第1のプロセッシング・サブシステムは、さらに前記第1の信号の検出に応答して、前記第1のデータ・ストアとのデータ通信を中断し、かつ前記第2のデータ・ストアとのデータ通信を設定する手段を有し、
前記ストレージ・サブシステムは、前記第2の信号の検出に応じて、前記データ・スイッチを使用せずに、前記ストレージ・サブシステム内で、前記第2のデータ・ストア内の前記更新済データを前記第1のデータ・ストアに転送する手段を有する、
ことを特徴とするシステム。 - 請求項16記載のシステムであって、
前記第2のプロセッシング・サブシステムは、さらに前記第2の信号が生成された場合に、前記第1のデータ・ストア内のデータを更新する手段を有し、
前記ストレージ・サブシステムは、前記第2のデータ・ストアに記憶されている前記更新済データが前記第1のデータ・ストアにコピーされているか否かを判定し、前記更新済データが前記第1のデータ・ストアにコピーされていない場合には、前記第2のデータ・ストアから前記更新済データを読み出すことにより、前記第2のプロセッシング・サブシステムからの前記第1のデータ・ストアに対する読み出し要求を処理する手段を有することを特徴とするシステム。 - 請求項16記載のシステムであって、前記データ・スイッチは、ファイバチャネルスイッチであって、前記第1のプロセッシング・サブシステムは、さらに、クライアントからの、前記第1のデータ・ストアについての未処理の読み出し要求が全て処理されるまで、前記第1のデータ・ストアとのデータ通信の中断を遅延する手段を有することを特徴とするシステム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/606403 | 2000-06-30 | ||
| US09/606,403 US7188157B1 (en) | 2000-06-30 | 2000-06-30 | Continuous update of data in a data server system |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2002149463A JP2002149463A (ja) | 2002-05-24 |
| JP2002149463A5 JP2002149463A5 (ja) | 2005-09-15 |
| JP4265728B2 true JP4265728B2 (ja) | 2009-05-20 |
Family
ID=24427821
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2001197684A Expired - Fee Related JP4265728B2 (ja) | 2000-06-30 | 2001-06-29 | データ・サーバ・システム内のデータの連続更新方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US7188157B1 (ja) |
| JP (1) | JP4265728B2 (ja) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7281032B2 (en) * | 2000-06-30 | 2007-10-09 | Hitachi, Ltd. | File sharing system with data mirroring by storage systems |
| JP2006251892A (ja) * | 2005-03-08 | 2006-09-21 | Iij Technology:Kk | ウェブ・コンテンツ更新履歴管理システム及び方法 |
| US8949312B2 (en) * | 2006-05-25 | 2015-02-03 | Red Hat, Inc. | Updating clients from a server |
| US20100082832A1 (en) * | 2008-10-01 | 2010-04-01 | Sony Computer Entertainment America Inc. | Stream logging output via web browser |
| CN106020975B (zh) * | 2016-05-13 | 2020-01-21 | 华为技术有限公司 | 数据操作方法、装置和系统 |
| CN115292338A (zh) * | 2022-08-30 | 2022-11-04 | 携程计算机技术(上海)有限公司 | 数据更新方法及数据更新系统 |
Family Cites Families (42)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07120299B2 (ja) | 1986-01-10 | 1995-12-20 | 株式会社日立製作所 | マルチプロセッサシステムの試験方法 |
| US4837680A (en) | 1987-08-28 | 1989-06-06 | International Business Machines Corporation | Controlling asynchronously operating peripherals |
| US5680574A (en) | 1990-02-26 | 1997-10-21 | Hitachi, Ltd. | Data distribution utilizing a master disk unit for fetching and for writing to remaining disk units |
| US5155845A (en) | 1990-06-15 | 1992-10-13 | Storage Technology Corporation | Data storage system for providing redundant copies of data on different disk drives |
| US5544347A (en) * | 1990-09-24 | 1996-08-06 | Emc Corporation | Data storage system controlled remote data mirroring with respectively maintained data indices |
| SE514798C2 (sv) | 1994-11-23 | 2001-04-23 | Ericsson Telefon Ab L M | System och förfarande för att förse ett hanterande system med information och ett telekommunikationssystem |
| US5781908A (en) | 1995-12-18 | 1998-07-14 | J.D. Edwards World Source Company | File data synchronizer in a distributed data computer network |
| GB2309558A (en) | 1996-01-26 | 1997-07-30 | Ibm | Load balancing across the processors of a server computer |
| US5890156A (en) | 1996-05-02 | 1999-03-30 | Alcatel Usa, Inc. | Distributed redundant database |
| US5841980A (en) * | 1996-05-15 | 1998-11-24 | Rtime, Inc. | Distributed system for communication networks in multi-user applications |
| US6101497A (en) * | 1996-05-31 | 2000-08-08 | Emc Corporation | Method and apparatus for independent and simultaneous access to a common data set |
| US5917998A (en) | 1996-07-26 | 1999-06-29 | International Business Machines Corporation | Method and apparatus for establishing and maintaining the status of membership sets used in mirrored read and write input/output without logging |
| US5774660A (en) | 1996-08-05 | 1998-06-30 | Resonate, Inc. | World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network |
| JP3344907B2 (ja) | 1996-11-01 | 2002-11-18 | 富士通株式会社 | Raid装置及び論理ボリュームのアクセス制御方法 |
| US6052718A (en) | 1997-01-07 | 2000-04-18 | Sightpath, Inc | Replica routing |
| US5878218A (en) | 1997-03-17 | 1999-03-02 | International Business Machines Corporation | Method and system for creating and utilizing common caches for internetworks |
| US5920725A (en) * | 1997-07-02 | 1999-07-06 | Adaptivity Inc. | Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors |
| US6006264A (en) | 1997-08-01 | 1999-12-21 | Arrowpoint Communications, Inc. | Method and system for directing a flow between a client and a server |
| US6088330A (en) | 1997-09-09 | 2000-07-11 | Bruck; Joshua | Reliable array of distributed computing nodes |
| US6003045A (en) | 1997-09-17 | 1999-12-14 | International Business Machines Corporation | Accessing stored files from multiple storage devices |
| US6092213A (en) | 1997-09-30 | 2000-07-18 | Tandem Computers Incorporated | Fault tolerant method of maintaining and distributing configuration information in a distributed processing system |
| US6061761A (en) | 1997-10-06 | 2000-05-09 | Emc Corporation | Method for exchanging logical volumes in a disk array storage device in response to statistical analyses and preliminary testing |
| US6088766A (en) | 1997-10-06 | 2000-07-11 | Emc Corporation | Method for exchanging data blocks on disk storage devices utilizing disk access statistics and testing for the effect of a change |
| US6237063B1 (en) | 1997-10-06 | 2001-05-22 | Emc Corporation | Load balancing method for exchanging data in different physical disk storage devices in a disk array storage device independently of data processing system operation |
| US6189071B1 (en) | 1997-10-06 | 2001-02-13 | Emc Corporation | Method for maximizing sequential output in a disk array storage device |
| US5950203A (en) | 1997-12-31 | 1999-09-07 | Mercury Computer Systems, Inc. | Method and apparatus for high-speed access to and sharing of storage devices on a networked digital data processing system |
| JP3609599B2 (ja) * | 1998-01-30 | 2005-01-12 | 富士通株式会社 | ノード代理システム、ノード監視システム、それらの方法、及び記録媒体 |
| US6408369B1 (en) | 1998-03-12 | 2002-06-18 | Emc Corporation | Internal copy for a storage controller |
| US6065051A (en) * | 1998-04-15 | 2000-05-16 | Hewlett-Packard Company | Apparatus and method for communication between multiple browsers |
| US6324580B1 (en) * | 1998-09-03 | 2001-11-27 | Sun Microsystems, Inc. | Load balancing for replicated services |
| US6148414A (en) * | 1998-09-24 | 2000-11-14 | Seek Systems, Inc. | Methods and systems for implementing shared disk array management functions |
| US6230190B1 (en) | 1998-10-09 | 2001-05-08 | Openwave Systems Inc. | Shared-everything file storage for clustered system |
| US6282671B1 (en) * | 1998-11-10 | 2001-08-28 | International Business Machines Corporation | Method and system for improved efficiency of parity calculation in RAID system |
| US6516350B1 (en) | 1999-06-17 | 2003-02-04 | International Business Machines Corporation | Self-regulated resource management of distributed computer resources |
| US6324692B1 (en) * | 1999-07-28 | 2001-11-27 | Data General Corporation | Upgrade of a program |
| US6397292B1 (en) | 1999-08-19 | 2002-05-28 | Emc Corporation | Asymmetrical striping of mirrored storage device arrays and concurrent access to even tracks in the first array and odd tracks in the second array to improve data access performance |
| US6662268B1 (en) * | 1999-09-02 | 2003-12-09 | International Business Machines Corporation | System and method for striped mirror re-synchronization by logical partition rather than stripe units |
| US6606643B1 (en) | 2000-01-04 | 2003-08-12 | International Business Machines Corporation | Method of automatically selecting a mirror server for web-based client-host interaction |
| US6826613B1 (en) | 2000-03-15 | 2004-11-30 | 3Com Corporation | Virtually addressing storage devices through a switch |
| US6601101B1 (en) | 2000-03-15 | 2003-07-29 | 3Com Corporation | Transparent access to network attached devices |
| US6922724B1 (en) | 2000-05-08 | 2005-07-26 | Citrix Systems, Inc. | Method and apparatus for managing server load |
| US6542962B2 (en) | 2001-03-21 | 2003-04-01 | Hitachi, Ltd. | Multiple processor data processing system with mirrored data for distributed access |
-
2000
- 2000-06-30 US US09/606,403 patent/US7188157B1/en not_active Expired - Fee Related
-
2001
- 2001-06-29 JP JP2001197684A patent/JP4265728B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US7188157B1 (en) | 2007-03-06 |
| JP2002149463A (ja) | 2002-05-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7552223B1 (en) | Apparatus and method for data consistency in a proxy cache | |
| US7191290B1 (en) | Apparatus and method for tandem operation in a storage network | |
| US7115919B2 (en) | Storage system for content distribution | |
| US7284030B2 (en) | Apparatus and method for processing data in a network | |
| US10534681B2 (en) | Clustered filesystems for mix of trusted and untrusted nodes | |
| US7499905B2 (en) | Method and apparatus for accessing information based on distributed file system (DFS) paths | |
| US7617292B2 (en) | Multi-class heterogeneous clients in a clustered filesystem | |
| US8972348B2 (en) | Method and system for supporting off-line mode of operation and synchronization | |
| JP4489292B2 (ja) | 高性能オブジェクト・キャッシュ | |
| US6925533B2 (en) | Virtual disk image system with local cache disk for iSCSI communications | |
| US8010558B2 (en) | Relocation of metadata server with outstanding DMAPI requests | |
| KR100350141B1 (ko) | 매체관리자,애플리케이션프로그램인터페이스와이를구현하는방법 | |
| US7139811B2 (en) | Double-proxy remote data access system | |
| US8225002B2 (en) | Data storage and data sharing in a network of heterogeneous computers | |
| US20030028514A1 (en) | Extended attribute caching in clustered filesystem | |
| US20030078946A1 (en) | Clustered filesystem | |
| US20040139125A1 (en) | Snapshot copy of data volume during data access | |
| JP2004280826A (ja) | プロトコル独立型クライアント側キャッシュ(protocol−independentclient−sidecaching)システムおよび方法 | |
| US20030154246A1 (en) | Server for storing files | |
| CN107818111B (zh) | 一种缓存文件数据的方法、服务器及终端 | |
| US8051183B1 (en) | Non-disruptive server replacement for session-based clients | |
| JP4265728B2 (ja) | データ・サーバ・システム内のデータの連続更新方法 | |
| Bosch | A cache odyssey | |
| US9934230B1 (en) | Delegations for non-regular files |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050328 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050328 |
|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060418 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080805 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080930 |
|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20080930 |
|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20081015 |
|
| 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: 20090210 |
|
| 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: 20090210 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120227 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120227 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130227 Year of fee payment: 4 |
|
| LAPS | Cancellation because of no payment of annual fees |