JPH08500918A - 各回路網ノードに於いて分布データ・キャッシュ・チャンネルにアクセスして要求及びデータを通過させるシステム - Google Patents

各回路網ノードに於いて分布データ・キャッシュ・チャンネルにアクセスして要求及びデータを通過させるシステム

Info

Publication number
JPH08500918A
JPH08500918A JP6500488A JP50048894A JPH08500918A JP H08500918 A JPH08500918 A JP H08500918A JP 6500488 A JP6500488 A JP 6500488A JP 50048894 A JP50048894 A JP 50048894A JP H08500918 A JPH08500918 A JP H08500918A
Authority
JP
Japan
Prior art keywords
ndc
data
location
customer
channel
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
Application number
JP6500488A
Other languages
English (en)
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 ピッツ、ウィリアム、エム.
Priority claimed from CA002136727A external-priority patent/CA2136727C/en
Priority claimed from PCT/US1992/004939 external-priority patent/WO1993024890A1/en
Publication of JPH08500918A publication Critical patent/JPH08500918A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 回路網分布キャッシュ(「NDC複数」)(50)は、顧客作業端末(42)によってNDC顧客終端位置(24)に提起される要求に応答して、NDCサーヴァー終端位置(22)に記憶された命名データセットへのアクセスを許容する。データセットにアクセスするのに、複数のNCD(50)は、活性状態のバーチュアル回路(「AVC])をNDC顧客位置(24)から中間NDC位置(26B、26A)を介してNDCサーヴァー位置(22)に提供するNDCコンジット(62)を形成する。コンジット(62)によって提供されるAVCを通して、NDC位置(22、26A及び26B)は命名データセットの要求部分のイメージをNDC顧客位置(24)に投影する。複数のNDC(50)は、ソース・データセットと顧客作業端末がデータセットにアクセスする全てのNDC顧客終端位置(24、20B及び206)に於けるその投影との間の絶対的整合を維持する。各NDC(50)中のチャンネル(116)はプロファイリング・データを、それ等が求められているデータセットにアクセスする要求から累算する。複数のNDC(50)は、チャンネル(116)に記憶されたプロファイル・データを用い更なる要求を予測する。

Description

【発明の詳細な説明】各回路網ノードに於いて分布データキャッシュ・チャンネルにアクセスして要求 及びデータを通過させるシステム 技術分野 本発明は、一般に、マルチプロセッサ・コンピュータ・システム、更に詳しく は、 1.複数のプロセッサが疎結合または疎回路網構成を成し; 2.プロセッサの何れかが要するデータが、データの記憶及びデータへのアク セスを管理する異なるプロセッサによって制御され; 3.データへのアクセスを要するプロセッサが、データを制御するプロセッサ からのかかるアクセスを要求し; 4.データを制御するプロセッサが、それに対するアクセスをもったブロセッ サの要求を提供する マルチブロセッサ・コンピュータ・システムに関する。背景技術 ディジタル・コンピュータ・システムに於いては、メモリ、例えば、ランダム ・アクセス・メモリに記憶された処理データ又はフロッピーディスクドライブ、 ハードディスクドライブ、テープドライブ等の記憶装置に記憶された処理データ は、データの処理前にデータを一つの位置から他の位置に複写することを必要と する。即ち、例えば、ハードディスクのような比較的低速の記憶装置に於いてフ ァイルに記憶されたデータを処理する以前に、データは先ずコンピュータ・シス テムのハードディスクから、それよりはずっと高速のそのRAMに複写される。 データがハードディスクからRAMに複写された後、データは再びRAMからコ ンピュータ・システムの処理装置に複写され、そこでデータは実際に処理される 。データのこれ等の複写の夫々、即ちRAMに記憶されたデータの複写及び処理 装置によって処理されたデータの複写は、ハードディスクに記憶されたデー タのイメージと考えることができる。データのこれ等のイメージの夫々は、ハー ドディスクに記憶されたデータの投影として言及しても良い。 自律的にに動作する数個のプロセッサを有する疎結合または疎回路網構成を成 すコンピュータ・システムに於いては、一プロセッサが要するデータは、システ ム中の一以上の他のプロセッサを通過する通信によってのみアクセスされる。例 えば、エサーネット(Ethernet)のような局所回路(「LAN」)に於 いては、プロセッサの一つは、データを回路網を介して他のプロセッサから受け 取ってそのハードディスクに記憶し、データをそのハードディスクから回路網を 介して他のプロセッサに供給するファイル・サーヴァー(File Serve r)として専用的に動作する。かかる回路網構成のコンピュータ・システムでは 、データは一プロセッサのそのソースからそれを要求するプロセッサに伝搬して 数個のブロセッサを通過することになる。 或種の回路網構成から成るコンピュータ・システムに於いては、データのイメ ージはそれ等のソースから直接、要求するプロセッサに転送される。この形式の 回路網構成コンピュータ・システムの一動作特性は、データへのアクセスに対す る要求数が増えるに従って又は/及び各要求を処理するのに転送されるデータ量 が増えるに従って、結局、データへのアクセスを制御するプロセッサ又はデータ 転送回路網が許容時間内に要求に応答できなくなることである。かくして、かか る回路網構成のコンピュータ・システムでは、データへのアクセスを制御するプ ロセッサ又はデータ転送回路網に対して増大する作業量は、結局のところ、デー タにアクセスするプロセッサの要求と要求されたアクセスの完了との間の許容が 不能なように長い遅延を生ずる。 回路網構成のコンピュータ・システムに於けるデータへのアクセスを提供する に際しての遅延を減少する試みの中に今、データのイメージをそのソースからそ こよりはデータへのアクセスがより容易な中間記憶位置へ投影するシステムが存 在する。かかるシステムに於ける中間記憶位置はしばしば「キャッシュ」と呼ば れ、データのイメージをキャッシュに投 影するシステムは「キャッシング」システムと呼ばれる。 しばしば、「キャッシュ整合」又は「キャッシュ統一性」と言及されるキャッ シング・システムの重要な特性は、回路網コンピュータシステム中の全てのプロ セッサにデータの同一複写を同時に提供するシステムの能力である。数個のプロ セッサが同時に同一データへのアクセスを要求するとき、一プロセッサがデータ の更新をしている間、他のプロセッサは更新されているデータを言及している過 程にあるかも知れない。例えば、回路網コンピュータ上に起っている商取引に於 いて、一プロセッサはデータにアクセスして一顧客がその商取引の信用限界を越 えてしまっているかどうかを決定している間、他のプロセッサは同時にその顧客 の勘定に対して費用請求をしているかも知れない。もし、キャッシング・システ ムがキャッシュ整合を欠如している場合、顧客がその信用限界を越えてしまって いるかどうかを決定するため一プロセッサのデータへのアクセスは、最新の請求 で更新されていない顧客のデータの投影イメージを使うことになろう。逆に、完 全な又は絶対的キャッシュ整合を有するキャッシング・システムに於いては、信 用限界をチェックしているブロセッサは、それが受け取るデータが最新の修正を 含んでいることを保証される。 データ・キャッシングを採用する現在知られている一システムは、ユニックス (Unix)時分割動作システムのバークレー ・ソフトウェア・ディストリビ ューション(「BSD」)バージョン4.3である。BSD4.3システムはホ スト・コンピュータのRAMに在るバッファー・キャッシュを含みハードディス クドライブに記憶されたファイルから通常8kバイトのデータブロックの投影イ メージを記憶している。特定項目のデータがBSD4.3システムにアクセスさ れる前に、要求されたデータはハードディスクからバッファー・キャッシュに投 影されなければならない。しかしながら、データがディスクからバッファー・キ ャッシュに投影される前に、投影イメージを記憶するため先ずキャッシュ中に空 間が見いだされなければならない。かくして、BSD4.3システムのバッファ ー・キャッシュに未だ存在していないデータに対しては、システムはデータへの アクセスを提供するのに次の工程を実行しなければならない: o 非最近使用(「LRU」)ブロックのディスク・データを含 むRAM中にバッファーを所在せしめる。 o LRUブロックデータのハードディスクへの書き戻しを伴う該 ブロック・データを廃棄する。 o 要求されるブロックデータのイメージを現在、空のバッファー に投影する。 o 要求するプロセッサにデータへのアクセスを提供する。 プロセッサによってアクセスされているデータが既にBSD4.3システムのデ ータ・キャッシュに存在する場合には、データへのアクセスを求めるプロセッサ の要求に対する応答は上記の最終動作のみを必要とする。RAMに記憶されたデ ータへのアクセスはハードディスクに記憶されたデータへのアクセスよりずっと 速いので、BSD4.3システムは、そのバッファー・キャッシュに存在するデ ータへのアクセスを求める要求に対して、バッファー・キャッシュに未だ存在し ていないデータへのアクセスを求める要求に対する応答にかかる時間の約1/2 50の時間で応答する。 BSD4.3システムに於いてバッファー・キャッシュへ投影されるデータ・ イメージの整合は優れている。ハードディスク上のデータへのアクセスを要求す るプロセッサからの唯一の経路はBSD4.3システムのバッファー・キャッシ ュを通してであるので、バッファー・キャッシュ内のデータからのデータブロッ クは常にそれ等のより新しい相当物によって重ね書きされ、そのときそのブロッ クのデータはアクセスしているプロセッサから帰還する。かくして、BSDシス テムでは、システムのバッファー・キャッシュに於けるデータのイメージはその ファイルの真の状態を反映する。多くの要求が同一イメージに対して競い合う時 、BSD4.3システムは種々のプロセッサからの要求に対して順番待ちをし、 要求の順番に配列して各要求が、どの処理も次の要求に応じて開始する以前に、 完全に行われるようにする。前述の戦略を採用して、BSD4.3システムは個 々のレベルに於けるデータの保全性を保証し、ハードディスク上に 記憶されたファイル・データ・セグメントにアクセスする。 BSD4.3システムはそのバッファー・キャッシュからデータへのアクセス を提供するので、ハードディスク上のデータブロックはデータの真の状態を反映 しない。即ち、BSD4.3システムに於いては、しばしば、ファイルの真の状 態は、ハードディスクからそこに投影された後修正され、ハードディスクに未だ 書き戻されていないシステムのバッファー・キャッシュ内の投影されたイメージ に存在する。BSD4.3システムに於いては、ハードディスク上のソースより 新しく、これと異なるデータ・イメージが非常に長い時間、持続し、イメージが LRUプロセスによるその「死亡」によって廃棄されようとする直前にハードデ ィスクに最終的に書き戻される。逆に、そのイメージをデータ・キャッシュに投 影してハードディスクに記憶されたデータを維持する他のキャッシング・システ かかるキャッシング・システムの一つである。 多くの手法で、NFS顧客キャッシュはBSD4.3システム・バッファー・ キャッシュと類似している。NFSに於いては、回路網に接続された各顧客のプ ロセッサはデータブロックを記憶するために、それに固有なキャッシュを含む場 合がある。更に、BSD4.3と同じように、NFSはLRUアルゴリズムを用 い、顧客のキャッシュに、エサーネットのような回路網に跨ってNFSサーヴァ ー(Server)からデータを受け取る位置を選択する。しかしながら、多分 、NFSの最も有意義な差異の一つはデータブロックのイメージが、BSD4. 3システムのようには、プロセッサに直結するハードディスクからNFS顧客キ ャッシュに検索されないことである。むしろ、NFSでは、データブロックのイ メージは、エサーネットのような回路網に接続されたファイル・サーヴァーから NFS顧客キャッシュにもたらされる。 NFS顧客キャッシュは、BSDシステムのバッフアー・キャッシュに対して 上述の同一総合処理を用いて、顧客プロセッサによって実行されるコンピュータ ・プログラムからの要求に援助を与える。もし要求デ ータが既にNFS顧客キャッシュに投影されていれば、そのアクセスは殆ど瞬時 的に実行されるだろう。もし要求データが今NFS顧客キャッシュに投影されて いなければ、LRUアルゴリズムが交換されるべきデータブロックを決定するた めに用いられねばならず、そのデータブロックは、要求データがファイル・サー ヴァーから回路網を介して最新の取消バッファーに投影され得る前に、廃棄され ねばならない。 NFSシステムに於いては、その顧客キャッシュに無いデータへのアクセスは 、それがそこに有る場合の約500倍の時間を要する。この遅延の約半分は、デ ータをNFSファイル・サーヴァーから回路網を介してNFS顧客キャッシュへ 転送するために要する処理によるものである。この遅延の残部は、ファイル・サ ーヴァーがそのハードディスク上のデータにアクセスし、データをハードディス クからファイル・サーヴァーのRAMに転送するのに要する時間である。 この遅延を減少する試みにおいて、複数の顧客プロセッサは予め読み取りを行 い、必要なデータが既にファイル・サーヴァーから回路網を介してNFS顧客キ ャッシュに投影されているであろう確率を増大しようとする。NFSが顧客プロ セッサはファイルに順次アクセスしていることを検出すると、データブロックは 、顧客プロセッサがデータへのアクセスを要求するとき、それ等がNFS顧客キ ャッシュに在らしめようとして、非同期的に予備取出される。更に、NFSは非 同期的背後書き込み機構を採用し、顧客キャッシュに有る全ての修正データ・イ メージを、NFSがそれはデータを逐次受け取ったという確認をファイル・サー ヴァーから受け取るまで、NFS顧客キャッシュ中のデータへの顧客プロセッサ のアクセスを遅延させることなく、ファイル・サーヴァーへ戻送する。上述の背 後読み取り及び背後書き込み機構の両者は、NFSのかなりに良好な動作に有意 義な寄与をする。又、NFSの良好な動作への寄与は、それがファイル・サーヴ ァーに在るファイルのディレクトリーに対するキャッシュ及びファイル・サーヴ ァーに有るファイルの属性に対するキャッシュを使用していることである。 NFSの特徴の幾つかは、そのデータ投影イメージの整合を減少せしめる。例 えば、顧客キャッシュに有るファイル・データのイメージは3秒毎に再有効化さ れる。もし顧客がアクセスしようとしているデータブロックのイメージが3秒以 上経過していれば、NFSはファイル・サーヴァーに連絡し、ファイル・サーヴ ァーが始めにこのデータブロックのイメージを投影してからファイルが修正され ているかどうかを決定する。もしイメージが始めに投影されてから修正されてい れば、NFSの顧客キャッシュに於けるこのブロックのイメージ及び同一ファイ ルからのデータブロックの他の全ての投影イメージは顧客キャッシュから除去さ れる。これが起こると、かくして拘束から解放されたRAM中のバッファーは、 ファイル・サーヴァーから投影された次のデータを記憶するのに用いられるバッ ファーのリスト(LRUリスト)の開始時に順番を待たされる。ファイル修正後 に廃棄されたデータブロックのイメージは、顧客プロセッサがその後それ等にア クセスする場合にのみ、NFSの顧客キャッシュに再投影される。 もし顧客プロセッサがNFS顧客キャッシュに有るイメージ・データのブロッ クを修正すると、ファイル・サーヴァー上のファイルを更新するため、NFSは 修正データ・イメージを非同期的にサーヴァーに戻送する。他の顧客プロセッサ がその後そのファイル中のデータブロックへのアクセスを試みた場合にのみ、そ のキャッシュはファイルが修正されていることを検出する。 かくして、NFSは複数の顧客プロセッサに適度に良好な動作で整合のあまり 良くないデータ・イメージを供給する。しかしながら、NFSは、顧客プロセッ サがデータを共用しない又は、データを共用する場合、これがNFSの外部に在 るファイル・ロック機構の制御下でなされるような回路網応用に対してのみ動作 する。実行が極めて良好な多種のコンピュータ応用プログラムが有るが、それら はNFSが投影する低下イメージ故にNFSを用いることができないユニックス ・ファイル・システムを直接用いてファイルにアクセスする場合である。 NFSによって拘束される他の限定は、単一要求に於いて転送され得るデータ の大きさが比較的小さい(8kバイト)ことである。このように小さい転送サイ ズのため、顧客プロセッサで実行するプロセスは、ファイルを処理するに従って 、追加データを連続的に要求しなければならない。各顧客プロセッサに於いて通 常、たった数メガバイトのRAMを占める顧客キャッシュは、精々、この作業量 をある程度減少するに留まる。しかしながら、NFS顧客キャッシュは、ファイ ル・サーヴァーと回路網に接続された顧客プロセッサの全てとの間の一定且つ頻 繁な通信を採用するNFSの基本的特性を隠蔽し得ない。この頻繁なサーヴァー /顧客通信の必要は、NFS回路網の基準化能力を厳しく限定する、即ち、単一 システムに共に回路網構成化されるプロセッサの数を厳しく限定する。 アンドリュー・ファイル・システム(「AFS」)は、極めて良好な基準化能 力を提供するために特に設計されたデータ・キャッシング・システムである。今 や多くの大学で用いられているAFSは、些少数のファイル・サーヴァーが極め て広範な地理的領域に亘って分布された数千の顧客作業端末を支持し得ることを 立証している。その基準化能力を許容するAFSの主要な特性は: o キャッシュ・データの単位はNFSの8kディスクブロック ら全体のファイルに増大する。 o 全てのAFS顧客作業端末に要する局所的ハードディスクド ライブは投影されたファイル・イメージを保持する。AFS は完全なファイルのイメージを投影するので、そのRAMは 速やかにイメージ投影によって占められる。従って、AFS は完全なファイルを顧客の局所的ハードディスクに投影し、 後者において、回路網又はファイル・サーヴァーへの何等そ れ以上のアクセスを必要とせず、ファイルは何度でも局所的 にアクセスできる。 o ファイル・イメージを作業端末のハードディスクに投影する ことに加えて、BSD4.3と同様、AFSは又作業端末の RAMに在るバッファー・キャッシュを採用して、作業端末 のハードディスクに記憶されたファイル・イメージから投影 されたデータブロックのイメージを記憶する。 AFSの下では、作業端末で実行するプログラムがファイルを開くと、新しい ファイル・イメージは、ファイルが未だ作業端末のハードディスクに存在しない 場合のみ又はファイル・サーヴァー上のファイルが作業端末のハードディスクに 記憶されたイメージに取って代わる場合、ファイル・サーヴァーから作業端末に 投影される。かくして、ファイルのイメージが前に回路網のファイル・サーヴァ ーから作業端末に投影されていると仮定すると、そのファイルを開くコンピュー タ・プログラムの要求は、最低、作業端末が少なくとも一つのメッセージをサー ヴァーに戻送して、そのハードディスクに現在、記憶されているイメージが最新 のバージョンであることを確認することを要求する。投影されたイメージのこの 再有効化は、取って代わられていないファイルに対して最低25m秒の時間を要 求する。作業端末のハードディスクに記憶されたファイルのイメージが取って代 わられていれば、前記イメージはファイル・サーヴァーから作業端末に再投影さ れねばならない、即ち、プロセスは数秒を要するかも知れない。ファイル・イメ ージが再有効化され又は再投影された後、作業端末によって実行されるプログラ ムは、BSD4.3に対して上述のものと比較される応答をもって、AFSの局 所的ファイル・システム及びそのバッファー・キャッシュを介して前記イメージ にアクセスする。 AFSによって投影されたファイル・イメージの整合は暫時の間「優良」とし て開始し、やがて時間の経過と共に着実に低下していく。ファイル・イメージは 、イメージがファイル・サーヴァーから顧客プロセッサに投影された直後常に流 れているか又はファイル・サーヴァーによって再有効化される。しかしながら、 複数の顧客が同一ファイルをほぼ同時に受け取ることがあり、そしてかかる時、 各顧客は独立してそのファイルを修正しはじめることがある。各顧客は他の顧客 によってファイルになされた何らかの修正を全く知らされずにおかれる。各顧客 のプロセッサによっ て実行されたコンピュータ・プログラムがそのファイルを閉じると、ファイルが 修正されている場合、プロセッサのハードディスクに記憶されたイメージはサー ヴァーに戻送される。顧客から各引き続くファイル・サーヴァーへの戻送は直接 先立つ転送に対する重ね書きをもたらす。最終顧客プロセッサからファイル・サ ーヴァーへ転送されるファイルのバージョンは、サーヴァーがファイルを開こう とする時、引き続いて顧客の作業端末に転送しようとするバージョンである。か くして、かかるプロセスの終了時には、ファイル・サーヴァーに記憶されたファ イルは、最終作業端末によってファイルを転送するためになされる修正のみを含 み、他の作業端末に於いてなされた全ての修正は喪失される。AFSファイル・ サーヴァーは、ファイルに対する一つの作業端末の修正が他の作業端末によって 同ファイルに対してなされた修正に重ね書きをするのを検出できるが、データ保 全のこの損失を妨げるためにサーヴァーがここでできることは殆ど無い。 AFSは、NFSと同様、絶対的整合をもってイメージを投影することはでき ない。もしコンピュータ・プログラムがAFSの外部にファイル・ロック機構を 採用しない場合、システムは共用されたファイルに書き込みを行わない応用にの み、その用途は限定される。AFSには、この特性があるので、共有ファイルに 書き込まれたデータに対する高度の保全性を要求する如何なる応用にも用いるこ とができない。発明の開示 本発明の一目的は、現存するデータ・キャッシング機構に比して、より長大な 距離に亘って、より高いバンド幅で且つ大いにより良好な整合で、より大きなデ ータ・イメージを投影することができるディジタル・コンピュータ・システムを 提供することにある。 本発明の他の目的は、データ構造の多重イメージをそのソースから回路網に跨 って広く分布した位置に投影できる一般化されたデータ・キャッシング機構を提 供することにある。 本発明の他の目的は、たとえデータのイメージが数箇所の隔離し た位置において同時に修正されようとしていても、前記データ・イメージは常に ソース・データ構造の現在の状態を反映する一般化されたデータ・キャッシング 機構を提供することにある。 本発明の他の目的は、顧客プロセスが直接、投影されたイメージ上で、該イメ ージが実際にソース・データ構造であるかのように、動作することができる一般 化されたデータ・キャッシング機構を提供することにある。 本発明の他の目的は、データがトランスペアレントに共有され得る領域を拡張 する一般化されたデータ・キャッシング機構を提供することにある。 本発明の他の目的は、顧客位置によって直接処理され得るデータのイメージを 要求する顧客位置に「より近接」する位置に投影することによって、データへの アクセスに対する要求に応答する際の遅延を減少させる一般化されたデータ・キ ャッシング機構を提供することにある。 本発明の他の目的は、データをそのソースから効率的に投影位置(複数でも良 い)に輸送する一般化されたデータ・キャッシング機構を提供することにある。 本発明の他の目的は、顧客からの将来の要求を先取りし、そして、適切な時に は、データにアクセスする顧客の要求に先行してデータを顧客に向けて投射する 一般化されたデータ・キャッシング機構を提供することにある。 本発明の他の目的は、顧客による要求に対する援助がデータの最初の投影から 繰り返し与えられるように、投影されたイメージを延長された時間に亘って維持 する一般化されたデータ・キャッシング機構を提供することにある。 本発明の他の目的は、データのソースとデータの全ての投影イメージとの間の 絶対的整合を保証するために効率的な整合機構を採用する一般化されたデータ・ キャッシング機構を提供することにある。 手短に云えば、本発明は、そのより好ましい実施例に於いて、回 路網(network)として動作する複数のディジタル・コンピュータを含む 。回路網に於いて、コンピュータの幾つかは回路網分布キャッシュ([NDC」 )位置として機能する。ディジタル・コンピュータ内の各NDC位置(site )で動作するのは、NDCバッファーを含むNDCである。ディジタル・コンピ ュータの回路網は又、NDC位置であったり、なかったりする一つ以上の顧客位 置(client site)を含む。各顧客位置はNDCに、回路網内のどこ かに所在するNDC位置に記憶されるデータへアクセスする要求を提出する。顧 客位置が要求する各データ事項は、データセットと呼ばれるデータの命名された セットに属する。特定のデータセットを記憶するNDC位置は、その特定データ セットに対するNDCサーヴァー終端(server terminator) 位置と呼ばれる。顧客位置からデーターにアクセスする要求を受け取るNDC位 置は、NDC顧客終端(client terminator)位置と呼ばれる 。単一の顧客位置は、異なるNDC位置に夫々記憶された異なるデータセットに アクセスすることを同時に要求できる。かくして、各顧客位置に対しては単一の NDC顧客終端位置のみがあるが、同時に、異なるNDCサーヴァー終端位置に 記憶されたデータセットにアクセスする単一顧客位置からの要求に応答する複数 のNDCサーヴァー終端位置があっても良い。 ディジタル・コンピュータの回路網に於ける各NDCは、命名されたデータセ ットに於けるデータにアクセスする要求を受け取る。このNDC位置は、特定の 顧客位置に対するNDC顧客終端位置であれば、その顧客からの要求を受け取る だろう。しかしながら、一顧客に対するNDC顧客終端位置である同じNDC位 置は、他の顧客位置に対するNDC顧客終端位置であったり、なかったりする他 のNDC位置からデータにアクセスする要求を受け取ることもある。 NDC顧客終端位置は、顧客位置から特定の命名されたデータセットにアクセ スする第一の要求を受け取ると、チャンネルと呼ばれるデータ構造をその要求に 割り当て、該要求に付いての情報をチャンネルに記憶 する。各チャンネルは、データのイメージをデータセットへのアクセスを要求す る位置へ投影するためにNDC位置を通してのコンジットとして機能する。或い は、このNDC位置が特定要求に対するNDC顧客終端位置であれば、チャンネ ルはこのNDC位置に於けるNDCバッファーにデータのイメージを記憶しても よい。NDCサーヴァー終端位置とNDC顧客終端位置との間にデータを転送す るためのコンジットの部分として機能することに加えて、各チャンネルは又、各 顧客にアクセス・パターンの活動と共に顧客位置とNDCサーヴァー終端位置の 両方に活動能力測定を提供するデータを記憶する。 NDC位置がデータにアクセスする要求を受け取ると、その要求が顧客位置か らであろうと又は他のNDC位置からであろうと、NDCは先ずこのNDC位置 に於けるNDCバッファーをチェックし、要求されたデータの投影イメージが既 にNDCバッファーに在るかどうかを決定する。このNDC位置に於けるNDC バッファーがデータセットから要求された全てのデータの投影イメージを含まな いならば、そして要求を受け取るNDC位置がデータセットに対するNDCサー ヴァー終端位置でないならば、このNDC位置のNDCは、このNDC位置に無 い要求されたデータの全てに対する単一要求をこのNDC位置から下流に、現在 のNDC位置よりデータセットに対するNDCサーヴァー終端位置に近い他のN DC位置に転送する。もしこのNDC位置のNDCバッファーが、データセット が要求する全てのデータの投影イメージを含まないならば、そして、もしその要 求を受け取るNDC位置がデータセットに対するサーヴァー終端位置であれば、 このNDC位置のNDCは記憶されたデータセットにアクセスして、要求された データのイメージをそのNDCバッファーに投影する。要求されたデータの投影 イメージがそこに在るかどうかを決定するためのNDCバッファーをチェックす るプロセスそして、それが完全には無いならば、追加の要求データの下流NDC からの要求又は記憶されたデータセットへのアクセスは、要求を受け取る位置の バッファーが全ての要求データの投影イメージを含むまで反復する。 データを他の下流NDC位置から要求する一NDC位置のプロセスは、要求さ れたデータをNDC顧客終端位置に返却するコンジットを提供するNDC位置の 個々に夫々所在するチャンネルの一連鎖を生じる。かくして、NDC位置のこの 連鎖に於ける各継続するNDC位置は、記憶されたデータセットに又はその下流 NDC位置からアクセスすることによって全ての要求データの投影イメージを獲 得して、それから要求されたデータをそれからそれがその要求を受け取った上流 に在るNDC位置に返却する。一NDC位置からその上流のNDC位置へのデー タ返還のこのシーケンスは、要求されたデータがNDC顧客終端位置に到達する 迄、継続する。要求されたデータがこの要求のためのNDC顧客終端位置に達す ると、そのNDC位置は要求されたデータを顧客位置に返却する。 かくして、ディジタル・コンピュータの回路網は、回路網中のNDC位置の個 々に於いて動作する複数のNDCを通して、複数の顧客位置から複数のNDC顧 客終端位置に転送されるかかるデータセットへアクセスする要求に応答して、記 憶されたデータセットの複数のイメージを一NDCサーヴァー終端位置から複数 の顧客位置に投影できる。更に、各NDCは、各NDC位置内のバックグランド 中で動作するチャンネル・デモンと呼ばれるルーチンを含む。チャンネル・デモ ンは、NDCがチャンネルに記憶するデータセットへのアクセスに付いての活動 データを用い、顧客位置からデータにアクセスする要求の受取とNDC顧客終端 位置によるその要求に対する応答の間の遅延を最小にするため、データを予めN DCサーヴァー終端位置からNDC顧客終端位置へ取り込む。 記憶されたデータセットのイメージを投影することに加えて、NDCは、二つ 以上の顧客位置が同時にデータセットにアクセスする時は何時でも、また一以上 の顧客位置がデータセットを書き込もうとする時は何時でも、並行書き込み共有 (「CWS」)状態と呼ばれるデータセットに対する状態を検出する。もしCW S状態が起こると、NDC位置の一つは自身が整合制御位置(「CCS」)であ ることを宣言し、CCSから上流の他のNDC位置の動作に制限を課す。CCS が上流のNDC位置に課す 動作制限は、ディジタル・コンピュータの回路網に亘って顧客位置が、全ての顧 客位置が同一コンピュータ上で動作する場合、顧客位置がもつ同じレベルのファ イル整合をもつことを保証する。即ち、CCSが課する動作状態は、一つの顧客 位置によってデータセットになされる修正は、データセットを修正する顧客位置 が次にデータセットにアクセスすることを要求する顧客位置から如何に遠くとも 、他の顧客位置に投射されるそのデータセットのその後のイメージに反映される ことを保証する。 これ等及び他の特徴、目的及び利点は、種々の図面図に例示されているような より好ましい実施例の以下の詳細な記載から理解され、当技術分野に於いて通常 の技術を有する者に対して明白であろう。図面の簡単な説明 図1は、NDCサーヴァー終端位置、NDC顧客終端位置及び複数の中間ND C位置を含む回路網構成のマルチプロセッサ・ディジタル・コンピュータ・シス テムを描写するブロック・ダイアグラムで、回路網構成のコンピュータ・システ ム中の各NDC位置は、NDC顧客終端位置がNDCサーヴァー終端位置に記憶 されたデータにアクセスするように動作する; 図2は、図1の回路網構成、マルチプロセッサ・ディジタル・コンピュータ・ システムを例示するものの他の方法を提供するブロック・ダイアグラムである; 図3は、NDCバッファーを含む図1の各NDC位置に含まれるNDCの構造 を描写するブロック・ダイアグラムである; 図4は、図4A及び図4Bから成り、図3のNDCによって用いられるチャン ネル及び同チャンネルに含まれるサブチャンネルのデータ構造を述べるCプログ ラム言語で書かれたコンピュータ・プログラム作表である; 図5は、図4に例示されたチャンネルによって用いられる種々のフラグの値を 定めるCプログラム言語で書かれた表である; 図6は、チャンネルの状態を特定するのに用いられる種々のフラグの値を定め るCプログラム言語で書かれた表である; 図7は、図3に描写されたNDCを通して転送されている単一のデータセット の投影されたイメージを例示し、またNDCバッファー中のデータセットの種々 のセグメントの記憶機構を例示するブロック・ダイアグラムである; 図8は、図3及び図7に例示されたNDCバッファーに投射されているデータ セットの種々のセグメントにアクセスするように動作するチャンネル及び複数の サブチャンネルを描写するブロック・ダイアグラムである; 図9は、NDC位置間を転送され得る種々の異なるデータ・トランスファー・ プロトコル(「DTP」)メッセージに対するメッセージ型コードを定めるCプ ログラム言語で書かれた表である; 図10は、図10A及び図10Bから成り、DTPメッセージに対するデータ 構造のCプログラム言語で書かれた定義である; 図11は、図11A及び図11Bから成り、図4及び図10の構造に組み込ま れた種々のデータ・サブ構造に対するCプログラム言語で書かれた定義である; 図12は、DTPメッセージを連鎖するのに用いられるデータ構造のCブログ ラム言語で書かれた定義である; 図13は、図13A及び図13Bから成り、チャンネルのメタデータを含むデ ータ構造に対するCプログラム言語で書かれた定義である; 図14は、NDCサーヴァー終端位置に記憶されたデータセットにアクセスす る際に上流NDC位置の活動についての情報を記憶するために図3及び図7のN DCによって用いられる上流位置構造を述べるCプログラム言語で書かれた定義 である; 図15は、複数のNDC顧客終端位置からアクセスされてよい記憶されたファ イルを有するNDCサーヴァー終端位置を含むNDC位置のトリーを例示するブ ロック・ダイアグラムである;そして 図16は、ディジタル・コンピュータの回路網を採用するファイル・サーヴァ ー内のNDCの応用を例示するブロック・ダイアグラムである。発明を実施するための最良の態様 図1は、一般的参照番号20によって言及された回路網構成・マルチプロセッ サ・ディジタル・コンピュータ・システムを描写するブロック・ダイアダラムで ある。ディジタル・コンピュータ・システム20は、回路網分布キャッシュ(「 NDCTM」)サーヴァー位置22、NDC顧客位置24及び複数の中間NDC位 置26A及び26Bを含む。ディジタル・コンピュータ・システム20内のND C位置22、24,26A及び26Bの夫々は、プロセッサおよびRAMを含む が、何れも図1には示されていない。更に、NDCサーヴァー位置22は、顧客 位置24によってアクセスされるデータを記憶するためにハードディスク32を 含む。NDC顧客位置24及び中間NDC位置26Bの両者は夫々固有のハード ディスク34及び36を含む。顧客作業端末(client workstat ion)42は、上述のNFSシステムのそれのような回路網プロトコルに従っ て、エサーネット・ローカル・エリア・ネットワーク(「LAN」)44を介し てNDC顧客位置24と連絡している。 回路網構成コンピュータ・システム20に於けるNDC位置22,24,26 A及び26Bの夫々はNDC50を含み、その拡大図は中間位置26Aに対して 描写されている。NDC位置22、24、26A及び26Bの夫々に於けるND C50は、一組のコンピュータ・プログラム及びNDC位置22、24、26A 及び26BのRAM中に在るデータ・キャッシュを含む。NDC50の対を結合 する線によって図1に例示されているデータ・トランスファー・プロトコル(「 DTPTM」メッセージ52と共に複数のNDCは、顧客作業端末42がNDC位 置24、26B、26A及び22を介してハードディスク32上のデータにアク セスできるデータ通信回路網(communication network) を提供す る。 NDC50は、「データセット」と呼ばれるデータ構造上で動作する。データ セットは、下記によってアクセスされるデータのバイトのシーケンスと命名され る: 〇 NDCサーヴァー位置22というように、ソース・データが 所在するNDCサーヴァー位置を特定するサーヴァーid;及び 〇 通常、NDCサーヴァー位置のハードディスク32のような ハードディスク上の上記位置に記憶されたソース・データの 特定事項を識別するデータセットid。 データセットidはNDCサーヴァー位置22のハードディスク32上のファイ ルを特定しても良い。この場合には、それは複合識別子(ファイルシステムid 、ファイルid)になろう。或いは、それは、NDCサーヴァー位置22が解釈 でき、またNDC顧客位置24に転送しようとする何か他の連続するバイト・シ ーケンスを特定しても良い。例えば、データセットは、NDCサーヴァー位置2 2のRAMからの10頁でも良い。NDCサーヴァー位置22のRAMからのか かる10頁セグメントは、それ自身、仮想(virtual)メモリを識別する ファイルシステムid及び仮想メモリ内の開始頁数を表示したファイルidで特 定されているかも知れない。 NDC顧客位置24は、そこに於けるデータセット上で実行されている型の活 動が読み取り操作か書き込み操作かを特定するNDC LOADメッセージを用 いて、NDCサーヴァー位置22からのデータへのアクセスを要求する。NDC LOADメッセージで要求されたデータの範囲は、NDC顧客位置24によっ てアクセスされている命名されたデータセット内のバイト・シーケンスを特定す る。NDC顧客位置24による単一の要求は、同一要求内で特定された他の全て のシーケンスからは非連続的である以外には、各シーケンスの大きさには何の制 限のない数個の異なるバイト・シーケンスを特定するかも知れない。かくして、 NDC顧客位 置24によるデータにアクセスする要求は一連の範囲明細を含み、該明細の夫々 は命名データセット内の個々の連続的バイト・シーケンスを識別するオフセット と長さの対のリストである。 NDC回路網のトボロジー 図1に例示されているようなNDC回路網は、NDC位置22、24、26A 及び26Bを有し、以下を含む: 1.NDC位置として参与するように形成されたプロセッサの回路網に於ける 全てのノード;及び 2.NDC位置22、24、26A及び26BのようなNDC位置を互いに結 合するDTPメッセージ52。 1メガバイト以上の過剰RAMをもつプロセッサの回路網に於ける如何なるノー ドも一つのNDC位置として形成され得る。NDC位置は、非NDC位置と完全 にコンパチブルに、DTPメッセージ52を介して互いに連絡する。 図1は、顧客の作業端末42をNDCサーヴァー位置22に接続する連鎖を形 成するDTPメッセージ52によって結合される一連のNDC位置22、24、 26A及び26Bを描写している。NDC連鎖は、電気的送信線と類推的に論じ ることができる。NDC連鎖の送信線は両端で、即ち、NDCサーヴァー位置2 2によって、またNDC顧客位置24によって、終了する。かくして、NDCサ ーヴァー位置22はNDC連鎖に対するNDCサーヴァー終端位置として言及で き、NDC顧客位置24はNDC連鎖に対するNDC顧客終端位置として言及で きる。NDCサーヴァー終端位置22は、常に、ソース・データ構造を「所有す る」プロセッサ回路網内のノードとなろう。NDC連鎖の他の端部であるNDC 顧客終端位置24は、顧客作業端末42からの要求を受け取って、NDCサーヴ ァー位置22上のデータにアクセスするNDC位置である。 顧客作業端末42によってNDCサーヴァー位置22に於けるハードディスク 32に書き込まれているデータは、下流矢印54によって指 示された「下流」方向に流れる。NDCサーヴァー位置22に於けるハードディ スク32から顧客作業端末42によって負荷されるデータは、それがNDC顧客 位置24に達するまで、上流矢印56によって指示された方向にNDC連鎖を介 して「上流に」送り込まれる。データがNDC顧客位置24に達すると、同デー タはメタデータと共に、NFSのような適切な回路網プロトコルに従って、返答 メッセージに再形式化され、顧客の作業端末42に送り返される。NDC位置は 、しばしば、他のNDC位置の上流又は下流として言及される。下流NDC位置 22、26A又は26Bは、何時でも、その上流NDC位置26A、26B又は 24に於いて実行されている活動の型を知っていなければならない。 図1に描写されている回路網に於いては、顧客作業端末42によるハードディ スク上に記憶されたデータを読む単一の要求に対する援助は次のように与えられ る: 1.要求は、エサーネット・LAN44に跨って、NDC連鎖に対する出入口 として作用するNDC顧客位置24に流れる。NDC顧客位置24内では、図3 及び図7に例示されているNDC顧客インターセプト・ルーチン102が要求を 検査する。もし要求がNFS要求であって、また要求が、NDC顧客位置24が 出入口である何れかのNDC位置24、26A、26B又は22に向けられてい れば、その要求はNDC顧客インターセプト・ルーチン102によって遮断され る。 2.NDC顧客インターセプト・ルーチン102は、NFS要求をDTP要求 に変換し、次にその要求をNDCコア106に提起する。 3.NDC顧客位置24に於けるNDCコア106は要求を受取り、そのND Cキャッシュをチェックして、要求されたデータが既にそこに在るかどうかを決 定する。もし全てのデータがNDC顧客位置24のNDCキャッシュに在れぱ、 NDC50はデータに対するポインタを返答メッセージ構造に複写し、呼出中の NDC顧客インターセプトルーチン102に直ちに応答する。 4.要求されたデータの何れかがNDC顧客位置24のNDCキ ャッシュに無い場合、NDC50はどこか他の処で無いデータにアクセスする。 もしNDC位置24がサーヴァー終端位置であれば、NDC50はデータが在る ハードディスク34に対するファイル・システムにアクセスするだろう。 5.NDC顧客位置24は、サーヴァー終端位置ではなく、顧客終端位置であ るので、NDC50はそれが次の下流NDC位置、即ち、図1に描写されている 例に於ける中間NDC位置26Bから必要とするデータを要求しなければならな い。この状況の下で、図3及び図7に描写されているDTP顧客インターフェー ス・ルーチン108は、中間NDC位置26Bから、NDC顧客位置24が現在 の要求に答える必要のある如何なるデータをも要求することが求められる。 6.図3及び図7に描写されていて、下流中間NDC位置26Bに在るDTP サーヴァー・インターフェース・ルーチン104は、NDC顧客位置24のND C50から要求を受取り、それを上記工程3、4及び5に従って処理する。前述 のシーケンスは、要求がサーヴァー終端、即ち、図1に描写されている例に於い てはNDCサーヴァー位置22に達するまで、又は要求が、それを要求されてい る全てのデータを持つNDC位置に達するまで、NDC連鎖に於けるNDC位置 24、26B、26A及び22の夫々に対して反復する。 7.NDCサーヴァー終端位置22が要求を受け取ると、そのNDC50はソ ース・データ構造にアクセスする。もしソース・データ構造がハードディスク上 に在れば、適切なファイル・システム・コード(UFS、DOS等)はデータを ハードディスク32から検索することを求められる。 8.NDCサーヴァー位置22上のファイル・システム・コードがデータをハ ードディスク32から返却すると、各下流位置が上流に向かってその顧客に順次 応答する、例えば、NDCサーヴァー位置22が中間NDC位置26Aに応答す る、又は中間NDC位置26Aが中間NDC位置26Bからの要求に応答する等 の、応答連鎖が始まる。 9.ついには、応答は位置22、26A及び26Bを介してNDC顧客終端位 置24にまで徐々に広がる。 10.NDC顧客位置24上のNDC50が呼出中のNDC顧客インターセプ ト・ルーチン102に戻ると、後者は次に戻されたデータ及びメタデータをNF S返答に対するそれのような適切な回路網プロトコル・フォーマットに一括し、 データ及びメタデータを顧客作業端末42に送り返す。 NDC顧客インターセプト・ルーチン102は、何か支持された本来のプロト コル、例えば、NFS、サーヴァー・メッセージ・ブロック る複数のNDC間の通信に用いられるDTPとの間に必要とされる全ての変換を 実行する責務がある。各本来のプロトコルとDTPメッセージ52の間の変換は 、顧客作業端末42のような顧客作業端末が、該作業端末に対するサーヴァーと して機能するNDC50と前記作業端末の「本来の」サーヴァーとの間の動作に 於ける如何なる差異をも区別できない程度にまで十分に完璧でなけれぱならない 。 NDC50’の動作を具象化する他の方法は、図2に例示されている。図1に 描写されているディジタル・コンピュータ・システム20に共通な図2に描写さ れている要素は、プライム符合「’」で区別された同一参照番号を有する。位置 22’、26A’、26B’及び24’に於けるNDC50’は、NDC顧客位 置24’の顧客インターセプト・ルーチン102をNDCサーヴァー位置22’ の図3及び図7に例示されているファイル・システム・インターフェース・ルー チン112に接続する超高速データ・コンジット62を提供する。顧客作業端末 は、それ等の固有な本来のプロトコルを用いて、NDC位置22、26A、26 B及び24の夫々に於いてNDC顧客インターセブト・ルーチン102を介して NDC位置22、26A、26B及び24の夫々に於けるデータ・コンジット6 2に連絡することができる。従って、中間NDC位置26AのNDCは、ノーヴ ェル・ネットウェア回路網64にインターフェースできる。同様に、 中間NDC位置26BのNDCは、SMB回路網66及びNFS回路網にインタ ーフェースできる。もしNDC位置24、26B,26A又は22がデータにア クセスする要求に対して顧客終端位置及びサーヴァー終端位置の両方であれば、 NDCデータ・コンジット62は、そのNDC位置24、26B,26A又は2 2内に全体的に含まれる。 NDC50’が回路網44’、64、66又は68の一つの上で顧客作業端末 からの要求を遮断し、それをDTPメッセージ52’に変換すると、要求は、デ ータの全てが位置づけられるまで、データ・コンジット62を通して移動する。 もし要求が特定のデータセットに対して顧客第一のものであれば、NDC50’ の各対を相互結合するDTPメッセージ52’は要求の通過の直前にデータ・コ ンジット62を形成する。要求がNDCサーヴァー終端位置22’に達すると、 NDC50’はそれをNDCサーヴァー終端位置22’上の適切なファイルシス テムに向ける。各NDC位置22’は、数個の異なる型のファイルシステムを、 ハードディスク32’、34’及び36’のようなそれ等に付随するハードディ スクに対して支持することができる。 NDCサーヴァー終端位置22’に於けるファイルシステムが要求されたデー タをそのNDC50に返却した後、NDC50’は、それが顧客終端24’に達 するまで、返答データ及びメタデータを各NDC位置26A’及び26B’を介 して返送する。顧客終端24’に於いては、元来NDC顧客インターセプト・ル ーチン102によって呼び出されたNDCルーチンは、そのルーチンに戻る。N DC顧客インクーセプト・ルーチン102は次に、データ及びメタデータを適切 にフォーマットされた返答メッセージに再フォーマットされ、そのメッセージを 顧客作業端末42’に返送する。 NDC50’の四成分はデータ・コンジット62を支持する: ○ その顧客作業端末データがデータを消費する率を測るNDC顧客終端位置 の資源管理機構及びデータが順次アクセスされているかどうかの記録。各NDC 50’は又、下流NDC位 置からの補充の率を測る。 〇 NDC位置22’、24’、26A’及び26B’の夫々が 自動的に動作でき、それによって回路網の交通渋滞を実質的 に減少し、また各NDCが顧客作業端末又は上流NDC位置 からの要求に直接応答できる予備的取り込み機構。 〇 どんな長さの多重データセグメントも単一の要求で転送され るDTPメッセージ52’。 〇 NDCサーヴァー終端位置22’からNDC顧客終端位置2 4’への全てのデータ投影の保全性を極めて効率的に監視し、 維持する整合制御機構。 NDC50 図3及び図7に描写されているように、NDC50は五主要成分を含む: 〇 顧客インターセプト・ルーチン102; 〇 DTPサーヴァー・インターフェース・ルーチン104; 〇 NDCコア106: 〇 DTP顧客インクーフェース・ルーチン108;及び 〇 ファイル・システム・インターフェース・ルーチン112。 NDCコア106に含まれるルーチンは、NDC50の機能を具現する。他の ルーチン102、104、108及び112は、データをNDCコア106へ供 給し、データをNDCコア106から受け取る。NDCコアの主組立ブロックは 、図4に例示されたチャンネル116と呼ばれるデータ構造である。NDCコア 106は、通常、NDC位置22、24、26A又は26Bの大きさに依って、 2,000から100,000の範囲のチャンネル116を含む。チャンネル1 16によって占められる各NDC位置22、24、26A又は26Bに於けるR AMは、NDCの開始と共にNDC50に割り当てられる。各チャンネル116 は、データセットのイメージを更に上流に投影するためのコンジットである。或 いは、デ ータセットに対するチャンネル116は亦、それが顧客終端位置24に在れば、 データ・イメージが投影される空間をも提供する。NDCコアのルーチンは、以 下詳細に述べられるように、データ・イメージをNDC位置22、24、26A 又は26B以内に維持する、又はNDC位置22,24,26A又は26Bを通 してそれ等の通過を促進する責務がある。 図5は、NDC位置22、26A、26B及び24の動作を制御するのに用い られる種々のフラグの値を特定するCプログラム言語で書かれた表である。図6 は、チャンネル116の状態を特定するのに用いられる種々のフラグの値を列挙 するCプログラム言語で書かれた表である。NDC50の動作に依存して、図5 及び図6に列挙されたフラグの種々のものの値はチャンネル116又はNDC5 0に含まれる他のデータ構造に割り当てられる。 図3及び図7は顧客インターセプト・ルーチン102を例示し、これ等は、D TP以外のプロトコルに於けるデータの要求、例えば、NFSプロトコル、SM Bプロトコル又は他のプロトコルに於ける要求を受取ことができるNDC位置に 於いてのみ必要とされ、投影されたデータセット・イメージを、NDC位置22 、24、26A又は26Bに於いて支持された工業的標準プロトコルの何れかを 介して提起された要求に連絡するために必要な全ての変換に対して完全に責務が ある。 NDC位置22、24、26A及び26Bは、常に、DTPサーヴァー・イン ターフェース・ルーチン104及びDPT顧客インターフェース・ルーチン10 8の両方を装備している。NDC位置22、24、26A及び26Bは、生のデ ータを、NFS、SMB又はネットウェアのような何らかのプロトコルだけでな く、識別されたデータセット以内のバイト・シーケンス以外の何れの構造とも無 関係に、移動するDTPメッセージ52を介して通信する。DTPメッセージ5 2は、単一の要求が単一動作の目標として命名された一組のデータの多数のセグ メントを特定できるようにする。DTP要求の中で特定された各セグメントは、 何らかの長さのデータの連続するバイトの一つのシーケンスである。 ファイル・システム・インターフェース・ルーチン112は、NDCサーヴァ ー位置22のようなNDCファイル・サーヴァー位置に於いてのみNDC50に 含まれる。ファイル・システム・インターフェース・ルーチン112は、データ を、図3に描写されたディスクドライブ32A、32B及び32CとNDCサー ヴァー終端位置22からNDC顧客終端位置24へ延びるNDCデータ・コンジ ット62の間に発送する。 図7に描写されたNDC50の他の例示は、NDC位置22、24、26A又 は26BのようなNDC位置を通過するNDCデータ・コンジット62を描く。 NDCデータ・コンジット62は、NDCサーヴァー終端位置22からNDC顧 客終端位置24に延び、各NDC位置22、24、26Aまたは26Bに於ける チャンネル116から成り、該チャンネルは相互結合して、NDCサーヴァー終 端位置22とNDC顧客終端位置24との間にデータを転送するための高速通路 を形成する。NDC位置22、24、26A及び26Bの連鎖の中の各チャンネ ル116は、並行書き込み共有(「CWS」)状態がそのデータに対して存在し ないなら、それを通過するデータのイメージを捕獲し、維持することができる。 しかしながら、チャンネル116がNDC位置22、24、26A又は26Bを 通過するデータのイメージを捕獲するかどうかは、NDCデータ・コンジット6 2中のチャンネル116の位置に強く依存する。NDCデータ・コンジット62 中のチャンネル116に対して三つの可能な位置がある。 第一に、チャンネル116はNDC顧客終端位置24に位置付けられ得る。こ の場合には、データのイメージは、DTP顧客インターフェース・ルーチン10 8からの実質的援助を得て、NDCコア106内のルーチンによってNDC位置 以内に投影され、維持される。NDC顧客終端位置24に於けるNDC50は、 顧客インクーセプト・ルーチン102を介して投影されたイメージから直接、顧 客作業端末42のような顧客からの要求に援助を与える。ほとんどのイメージ投 影は、NDC顧客終端位置24のような顧客終端位置に於いてのみ持続される。 第二に、チャンネル116は、中間NDC位置26A又は26B のような中間NDC位置に位置付けられる。この場合、イメージは、通常、デー タがNDC位置を横断するのに必要な最小時間の間のみNDC位置内に投影され る。しかしながら、もしCWS状態がチャンネル116に対して存在していれば 、データの整合を制御する中間NDC位置26A又は26Bに於けるチャンネル 116は、さもなければNDC顧客終端位置24に対して更に上流に投影される イメージを捕獲し、持続するだろう。中間NDC位置26A又は26Bに於ける NDCはDTPサーヴァー・インターフェース・ルーチン104、NDCコア1 06のルーチン及びDTP顧客インターフェース・ルーチン108を採用して、 これ等の機能を提供する。 第三に、チャンネル116は、NDCサーヴァー終端位置22のようなサーヴ ァー終端に位置され得る。この場合、イメージは、通常、データがNDC位置を 横断するのに必要な最小時間の間のみNDC位置内に投影される。NDCサーヴ ァー終端位置22に於けるNDCは、DTPサーヴァー・インターフェース・ル ーチン104、NDCコア106内のルーチン及びファイル・システム・インタ ーフェース・ルーチン112を採用する。NDCサーヴァー終端位置は、ほとん どの点で、中間NDC位置と同様に動作する。しかしながら、もしNDCサーヴ ァー終端位置22が要求されたデータを欠如していれば、DTP顧客インターフ ェース・ルーチン108の代わりにファイル・システム・インクーフェース・ル ーチン112が発動され必要なデータを獲得する。 もしNDC50の顧客インターセプト・ルーチン102が顧客作業端末42の ような顧客からのデータにアクセスする要求を受け取れば、前記ルーチンは図3 に於ける矢印122で指示されたDTP要求を用意する。もしNDC50のDT Pサーヴァー・インターフェース・ルーチン104が上流NDC50からの要求 を受け取れば、それは図3に於いて矢印124で指示されたDTP要求を用意す る。DTP要求122及び124はNDCコア106に提起される。NDCコア 106以内で、DTP要求122又は124は、バッファー・サーチ・ルーチン 126が、図3に於 いて矢印130で指示されているように、NDCバッファー129のプール12 8を探索するようにし、ルーチン102又は104の何れかによって要求された 全てのデータがこのNDC50のNDCバッファー129内に在るかどうかを決 定する。(チャンネル116はこれに割り当てられたNDCバッファー129と 共に、集合的に、NDCキャッシュとして言及することができる。)もし要求さ れたデータの全てがNDCバッファー129内に在れば、バッファー・サーチ・ ルーチン126は図3に於いて矢印132で指示されたDTP応答を用意する。 後者は要求122又は124に応答し、NDCコア106はデータ及びメタデー タの両方を含むDTP応答132を顧客インターセプト・ルーチン102又はD TPサーヴァー・インターフェース・ルーチン104の何れかに、ルーチン10 2又は104の何れが要求122又は124を提起したかに依って、適切に返還 する。もし顧客インクーセプト・ルーチン102がDTP応答132を受取ると 、顧客インターセプト・ルーチン102が要求されたデータ及びメタデータを顧 客作業端末42に返却する前に、それはDTPからの応答を顧客作業端末42が データセットへのアクセスを要求したプロトコルに、例えば、NFS、SMB、 ネットウェア又は他の何らかのプロトコルに再フォーマットする。 もし要求されたデータの何れかがNDCバッファー129に無ければ、バッフ ァー・サーチ・ルーチン126は、NDCバッファー129内に無いデータにの み対して、図3に於いて矢印142によって指示されたDTP下流要求を用意す る。要求ディレクタ・ルーチン144はそこでDTP要求を、もしこのNDC5 0がNDCサーヴァー終端位置22に無ければ、DTP顧客インターフェース・ ルーチン108へ、或いは、もしこのNDC50がNDCサーヴァー終端位置に 在れぱ、ファイル・システム・インターフェース・ルーチン112へ、向ける。 DTP顧客インターフェース・ルーチン108が要求されたデータを下流NDC 位置22、26A等からのメタデータと共に取得した後、或いはファイル・シス テム・インターフェース・ルーチン112がデータをこのNDC顧客終端位置2 4から取得した後、データはNDCバッファー129に記憶され、バッファー・ サーチ・ルーチン126はデータ及ひメクデータを、上述のように、顧客インク ーセプト・ルーチン102又はDTPサーヴァー・インターフェース・ルーチン 104の何れかへ返却する。 チャンネル116 NDCはチャンネル116を用いて,各NDC位置22、24、26A及び2 6Bを通してデータ通路を提供し、顧客作業端末42のような各顧客に対して各 データセットにアクセスする様式と共に顧客とNDCサーヴァー終端位置22の 両方の経歴を記憶するための構造を提供する。この情報を用いて、NDC50は 、顧客作業端末42のような顧客による将来の需要、及びNDCサーヴァー終端 位置22に向かって下流に向けられねばならない要求が何かあるとき生ずる待ち 時間を予期することができる。 チャンネル116は、NDC50を構成する主要データ構造である。各チャン ネル116は、データのイメージが位置に投影されるのを可能にする。小さなデ ータセット(144k以下)に対しては、イメージはしばしば全体のデータセッ トを反映する。より大きいデータセットに対しては、イメージはデータセットの 一つ以上の部分イメージから成ることがある。データセットは、数個のNDC位 置22、24、26A及び26Bに同時に投影されるかもしれない。全てのND C位置22、24、26A及び26Bに於いては、何時でも、投影されたイメー ジはデータセットも現在の状態に正確に合致する。中間NDC位置26A又は2 6Bの何れかに於いてNDC50に属するチャンネル116は、「中間チャンネ ル」と言及できる。 チャンネル116は、それが連合するデータのどんな投影をも含まずNDC5 0内で存在するかもしれない。これは、データのCWSに参入しているチャンネ ルの通常の状態であろう。 CWS状態は、顧客作業端末42に於けるような多数の顧客が同 ーデータセットに同時にアクセス中で、それ等の少なくとも一つがデータセット を書き込もうとしている時、存在する。並行モードと呼ばれるこの動作態様に於 いては、イメージは、下流NDC位置からの返答の受取、例えば、中間NDC2 6Bによる中間NDC位置26Aからの返答の受取と返答の上流への送達、例え ば、中間NDC位置26BからNDC顧客終端位置24への送達又は、位置がN DC顧客終端位置24であれば、返答の顧客インターセプト・ルーチン102へ の送達との間の極めて短い期間のみに対して、NDC位置22、24、26A又 は26Bに投影される。 CWS状態が存在している時データの投影イメージを維持しないチャンネル1 16は更にディジタル・コンピュータの全操作に於いて重要な機能を受け持つ。 データに加えて、各チャンネル116は次のような他の情報を記憶する、即ち、 〇 顧客、例えば、顧客作業端末42がデータを消費する率を測 定する; 〇 顧客のアクセス様式、即ち、無秩序又は逐次的であるか、を 監視する; 〇 NDCサーヴァー終端位置22からのデータへのアクセスを 要求するような下流サーヴィスに対する応答待ち時間を測定 する;及び 〇 CWS状態の存在を検出するため上流位置の活動を監視する。 かくして、各チャンネルは、それが接続されたデータセットのイメージを記憶 するキャッシュのみよりずっと多い。チャンネル116は、投影されたイメージ の整合を維持及びレソースの効率的割当を通して高度の性能を維持するために必 要な情報の全てを含む。チャンネル116は、それを通じて制御とデータの情報 の両方が各NDC位置22、24、26A及び26Bを横断し、従って、どのよ うな要求をも処理するために必須である。以下の項は、チャンネル116の構造 と使用をより完全に記載する。 チャンネル116の構造 図4は、「C」プログラム言語でのチャンネル116に対する現在のところよ り好ましい構造を開示する。図4の顕著な特徴は: 〇 各チャンネル116は、ハッシュ・リストにリンクし得る; 〇 各チャンネル116は、チャンネル・フリー・リストにリン クし得る; 〇 各チャンネル116は、以下を含むかなりの量の状態情報を 含む: + チャンネルが連合されるデータに対するデータセット・ ハンドル(サーヴァー、ファイルシステム、ファイルを 識別する); + データセットの属性のキャッシュされたコピー: + デーヤセットがディレクトリであれば、ディレクトリの のキャッシュされたイメージに対する、既に転送上流に 対してフォーマットされたポインタ: + 顧客に聞き返す前に、どの程度まで書き込みデータがフ ラッシュされねばならないかを特定するインディケータ + 処理されている現在の要求メッセージ及び要求の実行過 程でNDC位置22、24、26A又は26Bによって 出力された何れかの現在未決裁の上流又は下流メッセー ジに対するポインタ; + 全ての上流活動の記録を取るNDC 上流 位置構造の リストに対するポインタ; + 次のレベル下流位置のアドレス;及び + チャンネル・データ率、データセット・データ率及び前 の要求の端部に正確に接続した要求数のカウント;そして、 〇 各チャンネル116は、データセットの何れかの部分が現在 投影されている、図3に例示された何れかのNDCバッファ ー129に対するポインタを含む、図4Bに例示されたサブ チャンネル152に対する構造の一例を含む。 各チャンネル116は、その本質的に備わったサブチャンネル152を含み、 約500バイトのRAMを占有する。図3に例示されデータ投影を保持するND Cバッファー129によって占有されたRAMは、各チャンネル116によって 占有されたRAMの量に付加するものである。しかしながら、NDCバッファー 129に対するポインタは、各チャンネル116によって占有されたRAM内に 含まれている。又、全てのNDCメタデータ、即ち、ファイル属性(attr) 、サーヴァー名称(サーヴアー(サーヴアー ピッド)、ファイルシステムid (NDC FH.fsid)及び図4に例示されたファイルid(NDC FH .fid)のようなデータ命名セットに付いての情報は、直接チャンネル構造( NDC STATS及びNDC ATTR)に投影される。 チャンネル116は、ファイル又はディレクトリの完全な又は部分的イメージ を含むことができる。チャンネル116は、完全なファイルをNDCサーヴァー 終端位置22から、たとえファイルが極めて大きなものであっても、NDC顧客 終端位置24に投影することができる。しかしながら、共有リソース管理の出力 は、通常NDCサーヴァー終端位置22からの大規模なデータイメージをNDC 顧客終端位置24へ投影することを通常、排除する。 NDCサーヴァー位置22からNDC顧客終端位置24に投影されるデータの どんなデータ・イメージも、常に、有効であり、直接、顧客業務端末42によっ て操作され、下流NDC位置26B、26A又は22からの更なるサーヴィスを 要求することなく読み取り又は書き込みを行う。もし顧客業務端末42がデータ を修正する場合、たとえその業務端末42がNDC終端位置22から如何に離れ ていようとも、他の何らかのNDCX位置において当に修正された投射イメージ は、そのNDC位置に於けるデータに対する次の要求を所有する前に、除去され るだろう。サブーチャンネル152 チャンネル116は、一つ以上のチャンネル構造を含むことができる。図4に 例示されたような単一チャンネル構造をのみを含むチャンネル116は、単一の チャンネル116として言及される。単一のチャンネル116は、限定された大 きさの単一イメージを投影することができる。しかしながら、図8に例示されて いるようにサブチャンネル152を通して、単一のチャンネル116は拡張され 得る、即ち、それをして、ファイル156から単一チャンネル116をのみ用い て投影され得るものより大きな連続するデータのセグメント158をファイル1 56より投影せしめる。チャンネル116及び図8に例示されている一つ以上の サブチャンネル152は、複合チャンネル116として言及することができる。 上述のように且つ図8に例示されているように、NDC50は、常に、データの イメージをセグメント158中のファイル156からデータのイメージを投影す る。前述の如く、又図8に例示されているように、NDC50は常にデータのイ メージをセグメント158中のファイル156から投影する。図8に例示されて いる各セグメント158は、サブチャンネル152の構造中に記憶されたoff set及びseg length変数によって特定されたファイル156からの 一連の連続するバイトである。更に、チャンネル116又は、ファイル156か らの非連続セグメント158を投影する追加的サブチャンネル152を含むこと ができる。チャンネル116に含まれる単一のサブチャンネル152によって収 容されるより大きなイメージ投影は、サブチャンネル152が拡張され、それに よって複合チャンネルを創生することを要求する。多重サブチャンネル152は 、サブチャンネル152の拡張ボインタ(*ext)162を介して接合され, どんな大きさのイメージをも投影できる論理的サブチャンネルを形成する。多重イメージ投影 各チャンネルは又、数個の異なる非重複イメージ投影を同時に支持する。各サ ブチャンネル152の次のサブチャンネル・ポインタ(*n ext)は、論理的サブチャンネルの夫々をリンクする。 同一データセットの多重イメージを投射する能力は、顧客作業端末42のよう な数個の顧客に同時に供することを容易にする。小さなデークセットは通常、単 一のチャンネル116によって完全に投影され、この単一投影は共有され得る。 もし顧客作業端末42のような数個の顧客が大きなデータセットに順次アクセス するが夫々がデータセットの異なる領域で動作するなら、投影は、顧客作業端末 42のような異なる顧客作業端末によってアクセスされているセグメント158 の局所的イメージを提供するように要求されて、発生する。更に、NDC50は 、夫々のイメージが単一ファイルからの非連続的セグメント158であるような 数個のイメージを単一顧客に対して、その顧客がより大きなファイルの数個の異 なる領域に於ける順次処理の有意義な量を実行していれば、投影することがある 。かかる状況の下では、ファイル156からの各セグメントは、その固有の投影 を持つだろう。 投影されたイメージが他のイメージに隣接又は重複する程度まで成長又は移動 すれば、NDC50は両イメージを単一メッセージ158に合体する。かくして 、セグメント158は、常に、少なくとも1バイトの非投影データによって互い に分離される。 多重投影を持つチャンネルの他の特性は、そのサブチャンネル152の全てが データセットへのオフセットを増大するように命令されることである。 チャンネル116、サブチャンネル152及びサブチャンネル152を拡張す るサブチャンネル152は全て、図4に開示された同じ構造を用いている。図4 に開示された構造がサブチャンネル152として又はサブチャンネル152を拡 張するために用いられる時、或フィールドは未使用のままである。これは、RA M内の或空間を消費するが、複雑なチャンネル116が、割り出し制御するため の三つの異なるリソース及び機構を必要とすることなく、要求に応じて成長する ことを可能にする。チャンネル・フリー・リスト 活動的使用状態にないチャンネル116は、たとえそれ等がおそらく未だ有効 であり、データ及びNDCメタデータの両方の投影で完結するデータセットに対 する接続を有していても、チャンネル・フリー・リスト上に位置される。要求に 援助を与えるために使用されていない全てのチャンネル116は、チャンネル・ フリー・リスト上に位置される。逆に、要求に応答することに現在従事している 何れのチャンネル116も、チャンネル・フリー・リスト上には無いであろう。 チャンネル・フリー・リストは、それ等のav forw及びav back ポインタを介して全てのフリー・チャンネルを共にリンクすることによって形成 される。チャンネル・フリー・リスト上のチャンネル116は、それ等の最後の 使用以後の時間長によって配列される。チャンネル116が用いられる時は何時 でも、それはチャンネル・フリー・リストから除去され、C BUSYと標識さ れる。チャンネル116が完全にその仕事をしたことを請求したプロセスの後、 C BUSYはクリアされ、チャンネル116はチャンネル・フリー・リストの 端部にリンクされる。この単純なプロセスの繰り返し使用が、チャンネル・フリ ー・リストを配列する「最後の使用以後の時間」をもたらす。 NDC50が現在のところチャンネル116の接続が無いデータセットを特定 する新しい要求を受け取ると、新しいチャンネル116がそのデータセットに対 して通路として作用するように割り当てられる。新しいチャンネル116が必要 とされると、最遠に用いられていた(最非最近使用の)チャンネル116は、C BUSY及び無効と指定されたチャンネル・フリー・リストの先頭から除去さ れ、前の要求に関連する全ての状態は廃棄され、チャンネル116は要求中のプ ロセスに再び割り当てられる。 上記手続きに対して二つの予告記載がある: 〇 チャンネル・フリー・リストの先頭から除去されたチャンネル116は、 NDCサーヴァー終端位置22の下流でフラッ シュされなければならない修正データ又はNDCメタデータを含むことができる 。チャンネル116中のC DELAYED WRITEフラッグの存在は、こ の状態の存在を示す。 〇 チャンネル116は、始め全てのチャンネル116が単一チャンネル11 6として始まって以来、崩壊されなければならない複合チャンネル116になり 、やがて複合チャンネル116になるように成長する。 NDC50は、各NDC位置22、24、26A及び26Bを迅速性のピーク ・レベルに維持するのに必要なチャンネル116上の一般的維持機能を実施する チャンネル・デモンと呼ばれるルーチンを含む。チャンネル・デモンは、NDC 50がデータにアクセスする要求に応答するのに多忙でない時、背景モードに於 けるそれ等の機能を実行する。NDC50は、援助が与えられる要求が無いとき は何時でも、適切なチャンネル・デモンを呼び出す。データにアクセスする要求 が検案中のピーク負荷の期間中、NDC50はチャンネル・デモンの動作を一時 停止し、チャンネル・デモンによって通常実行される仕事は、代わりに、要求処 理ルーチン自体によって直接実行される。 チャンネル・デモンは: 〇 チャンネル・フリー・リストを維持する、 〇 チャンネル116の負荷及び負荷解除を予定する、及び 〇 チャンネル116を負荷し、負荷解放する。 これ等の夫々を実行する特定化されたチャンネル・デモンがある。リーパー・ デモン・ルーチンはチャンネル・フリー・リストを維持し、ロードマスター・デ モン・ルーチンは競合するチャンネル116の要求に順位を付け、スーパーバイ サー・デモン・ルーチンはそれ等がロードマスター・デモン・ルーチンから受け 取るチャンネル116に援助を与え、チャンネル116がデータにアクセスする 次の入来する要求に直接応答するように準備せしめる。 チャンネル・フリー・リストからチャンネル116を請求するプ ロセスは、NDC50が要求に援助を与えている間、起こる。上述の二つの予告 記載の何れかを処理するために必要とされる如何なる時間も、要求に応答するた めに必要とされる時間を増大する。顧客作業端末42とNDCサーヴァー終端位 置22との間に数個のNDC位置22、24、26A及び/又は26Bが在る時 、各位置に於ける遅延は顧客作業端末42からの要求に応答する時間が容認でき なくなるまで、累積し得る。かかる遅延を最小化するため、チャンネル・フリー ・リストからのチャンネル116を請求するのに消費される時間を減少すること が重要である。 チャンネル・フリー・リストからのチャンネル116を請求するのに要する時 間を減少するために、NDC50はチャンネル・フリー・リストを、共にリンク される5個のリストとして実行する。5個のチャンネル・フリー・リストは: CQ_EMPTY これは割り当てられたNDCバッファー129の無いチ ャンネル116のリストである。このリスト上のチャンネル116はまだ有効で あるデータセットの属性をまだ含むことができる。チャンネル116は最遠に用 いられたもので、従って、データにアクセスする要求が新しいチャンネルを要す れば、再割当のための第一の候補である。 CQ_CLEAN これは、チャンネル116に割り当てられたNDCバッ ファー129を有するチャンネル116のリストである。BD_DIRTY_D ATAは、このリスト上のチャンネル116に割り当てられた如何なるNDCバ ッファー上にもセットされることはない。使えないデータ、例えば、極めて有害 なディスク読み取りエラーを蒙った要求からのデータで満たされたチャンネルは 、C_ERRORとして 指示され、かかるチャンネル116はCQ_CLEANリストの前面に列をなす 。CQ_SERVICEリストを通してかく広がったチャンネル116は、それ 等のデータがNDCサーヴァー端位置22に向かって下流にフラッシュされるや いなや、CQ_CLEANの背面に於いて列をなす。CQ_CLEANリスト上 のチャンネル116内のデータは、まだ有効であって、チャンネル116がCQ _CLEANを通してかく広がる前に要求されると用いることができる。 CQ_READY これは、顧客作業端末42からのデータにアクセスする次 の予期された要求に直ちに応答できるチャンネル116のリストである。データ セットに無秩序にアクセスする要求を経験しているチャンネル116又はデータ セットに順次アクセスする要求を経験してい、データにアクセスする予期された 要求流にまだ直ちに応答できるチャンネル116は、それ等が、データにアクセ スする要求に応答するため又はデータを予備的に取り込むための何れかのために 用いられた後チャンネル・フリー・リストに返還された時、CQ_READYリ ストの背面に於いて通常列をなす。 CQ_SERVICE CQ_SERVICEリスト上のチャンネル116は 最近用いられてい、顧客作業端末42からのデータにアクセスする要求に直ちに 応答できない程度にまで近づいている。顧客作業端末42によって修正されたデ ータのイ メージを含むCQ_SERVICEリスト上のチャンネル116は、NDCサー ヴァー終端位置22に向かって下流でフラッシュされる必要のある汚染ファイル ・デーク又はメタデータを含むことがある。顧客作業端末42によって読み取ら れているデータのイメージを含むCQ_SERVICEリスト上のチャンネル1 16は、顧客作業端末42からのデータにアクセスする将来の要求に直ちに応答 できるよう下流からそれ等に負荷される追加的なデータをもつ必要がある場合が ある。時には、CQ_SERVICEリスト上のチャンネル116は、下流での 汚染データのフラッシングと下流からの追加データの負荷との両方を同時に要求 する場合もある。 CQ_LOCKED このリスト上のチャンネル116はハード・ワイア化さ れている。チャンネル116及びそれ等に割り当てられたNDCバッファー12 9は、LRU置き換えを免れる。中間NDC位置26A及び26Bは、常に、C Q_LOCKED上に置かれ、それ等が対応する上流チャンネル116の下から 引き出されるのを免れる。ハード・ワイア化したチャンネル116は、最小時間 中に応答するデータセット接続を提供する。CQ_LOCKED上のチャンネル 116をLRU置換から免疫化することによって、チャンネル116は、最小時 間の遅延が重要である特にリアルータイムの映像化のような応用に対してデータ にアク セスする要求に迅速に応答することができる。 本発明の以下の記載に於いて、チャンネル・フリー・リストは、しばしば、単 数で言及され、単一のLRUリストとして考えられるべきである。本発明は、チ ャンネル116がC DELAYED WRITEデータを空にできるように、 又複合チャンネル116が背景を走行するチャンネル・デモン・ルーチンによっ て単一チャンネルに分解されるように、5個のフリー・リストの特殊機構の複雑 性を含む。 CQ_READYリスト又はCQ_SERVICEリストの何れかの上に在る チャンネル116は、ファイルの現在の状態を表す修正されたデータを含むこと ができる、即ち、基本的下流データは顧客作業端末42からの修正されたデータ によって取って代わられる。この状態が起こると、修正されたデータを含むチャ ンネルに割り当てられたNDCバッファー129はB_DELWRIとしてフラ グされ、C_DELAYED_WRITEとしてフラグされる。 NDC50はチャンネル116を必要とすれば、先ずCQ_EMPTYリスト をチェックする。もしCQ_EMPTYリストは如何なるチャンネル116をも もっていなければ、NDC50はCQ_CLEANリストをチェックする。この リスト上のチャンネル116は如何なるC_DELAYED_WRITEをもつ ことは決してないが、それは単一チャンネル116に分解される必要のある複合 チャンネルであるかも知れない。もしNDC50がCQ_EMPTYリスト上に 複合チャンネル116を見いだすなら、それは複合チャンネル116を単一チャ ンネルのコレクションに還元する。一つのチャンネル116は次に、データにア クセスする要求に応答するよう請求され、残りの単一チャンネル116の全ては CQ_EMPTYリストの端部で待ち行列に入れられる。 もしCQ_CLEANリストが又、空であれば、NDC50はCQ_READ Yリストをサーチする。NDC50はデータにアクセスする要求に応答する過程 にあるので、NDC50CQ_READYリストにま でスキップし、最も好都合なチャンネル116を取る。しかしながら、NDC5 0によってこのように選ばれたチャンネル116は、如何なる修正データも失わ れないように、C_DELAYED_WRITEデータから自由でなければなら ない。 チャンネル・ハッシュ・リスト NDC50が新たな要求を処理始めるとき、第一の仕事は、もしそれが存在す るなら、存在するチャンネル116に要求を接続することである。チャンネル・ ハッシュ・リストは、この接続が極めて迅速に実行されることを可能にする。存 在するチャンネル116を見いだそうとする接続機能の第一の工程は、ファイル システムidとファイルidを共に加え、次にこの和をハッシュ・バケット数で わり算することである。分割操作によって生ずる残りは、ハッシュ・バケットの 配列にインデックスとして用いられる。各バケットは、それ等のファイルシステ ムid及びファイルidがバケットのインデックスにハッシュされるファイルに 接続されるチャンネル116の短いリストを含む。 ハッシュ・バケットを識別すると、次の工程は、ファイル・サーヴァー・アド レス、ファイルシステムid及びファイルidに付いて正確な突合わせのために このバケットに対するリスト上のチャンネル116の全てをサーチすることであ る。もし現在望まれるデータセットに接続されたチャンネル116があれば、そ れは、チャンネル116がその時チャンネル・フリー・リスト上に在ろうとなか ろうとに拘らず、前記リスト上にあるだろう。データセットに現在接続されてい る何れのチャンネル116も、常に、このハッシュ機構を介して位置づけられ得 る。もしサーチが実行され、チャンネル116が見いだされなかったら、その時 は何も存在しない。 図4に開示されているチャンネル116の構造に於けるc_forw及びc_ backフィールドは、ハッシュ・リスト上のチャンネル116をリンクするた めに用いられる。チャンネル116がチャンネル・フ リー・リストから除去され、データセットにアクセスするため再び割り当てられ ると、c_forw及びc_backはセットされ、チャンネル116は直ちに 適切なハッシュ・チェイン上にリンクされる。 チャンネル116を請求する ndc_get_channel()及びndc_channel_rels e()と呼ばれるルーチンは、NDC位置22、24、26A及び26B以内で チャンネル116との接続を開閉する。 チャンネル116を「請求する」ことは、NDC50が、新たなデータセット を顧客インターセプト・ルーチン102を介して局所顧客から又はDTPサヴァ ーインターフェース・ルーチン104を介して他のNDC位置からの何れかから アクセスするために受け取った要求を満足するために、NDC位置の開始の上で NDC50に割り当てられたチャンネルの一つを獲得する過程である。チャンネ ル116を請求するのに、ndc_get_channel()ルーチンはチャ ンネル116をチャンネル・フリー・リストから離し、チャンネル116C_B USYを標識し、要求にチャンネル116を割り当てる。一旦チャンネル116 が請求されると、それは多忙となり、チャンネル116がリリースされる前にN DC50が受け取るかも知れない他のどんな要求による使用にも供さない。かく して、チャンネル116は、多忙でなくチャンネル・フリー ・リスト上に見い だされ得るか又は多忙で現在処理されている要求に供されるかのいずれかである 。 ndc_get_channel()がチャンネル116を請求することを求 められると、数個の状況のひとつが起こり得る: 〇 チャンネル116が未だ存在せず、従って、チャンネル11 6はチャンネル・フリー・リストから請求され、現在の要求 に供することに割り当てられ、適切なハッシュ・チェイン及 び呼び手に返還されるそのポインクにリンクされる。 〇 チャンネル116は存在し、多忙ではない。チャンネル11 6はチャンネル・フリー・リストから離され、C_BUSY と標識され、そのポインタは呼び手に返還される。 〇 チャンネル116は存在し、全ての上流位置に於けるイメー ジ投影をリコール又は不能化するのに多忙である。NULL ポインタは直ちに呼び手に返還され、NDC50が現在の要 求に付いての処理を実行する前に整合操作が完了するように、 呼び手が「バックオフ」することを命ずる。この状況では、 チャンネル116は、NDC位置26A、26B又は24の ような上流のNDC位置に於けるチャンネル116をリコー ルするか不能にのみすることができるから、呼び手はDTP サーヴァー・インターフェース・ルーチン104でなければ ならない。 〇 チャンネル116は存在し、多忙であり(C_BUSYがセ ットされる)そして現在の要求を出力した上流のNDC位置 をリコールするか不能にする過程にはない。この状況が起こ ると、要求する過程は待ち状態に入ると共に、チャンネル1 16がチャンネル・フリー・リストに戻るやいなや、同時に 再活動化されることを要求する。 第三の状態は極めて希にしか起こらない。或状況下では、NDC位置、例え ば、中間NDC位置26Aは、その上流位置、例えば、NDC位置26B及び2 4に顧客、例えば、顧客作業端末42によって修正されているデータの投影イメ ージをリコールし、読み込まれているデータの全ての投影イメージを不能にする メッセージを送らねばならない。かかる通信はリコール/不能化メッセージと言 及される。もしNDC位置、例えば、中間NDC位置26Aが、可能化された上 流NDC位置、例えば、データのイメージを投影する中間NDC位置26Bから 要求を受取り、該要求が上流位置26B及び24に送られたリコール/不能化メ ッセージに対する応答を待っているチャンネル116に向けられていれば、デッ ドロック状況は緊急である。このNDC位置、例えば、中間NDC位置26Aに 於い て受け取られた要求は、チャンネル116が使用可能になるまで、処理し得ない 。しかし、チャンネル116は、全ての位置、例えば、NDC位置26B及び2 4がリコール/不能化メッセージに応答するまでは決して自由にならないだろう 。しかしながら、リコール/不能化メッセージは上流位置、例えば、新しい要求 を丁度転送したNDC位置26B及び24に於いては決して処理されないだろう 。何故なら、これ等の位置に於けるチャンネル116は、それ等が未受理の要求 に対する応答を待つのに多忙だからである。 かかるデッドロック状態を避けるため、上流の要求がチャンネル116を請求 しようとし、チャンネル116は多忙であることを発見するときは何時でも、追 加の検討が実行される。もしチャンネル116が他の顧客の下流要求を処理する のに多忙であれば、NDC50は、チャンネル116が自由になる時まで待ち、 そのポインタを呼び手に返還する。しかしながら、もしチャンネル116が、投 影されたデータのそれ等のイメージをリコール又は不能化する何れかのためにC CSからの全ての上流位置への要求である上流要求を処理するのに多忙であり、 現在の要求に始まるNDC位置、即ち、今丁度チャンネル116を請求しようと しているNDC位置がそれ等の上流位置の一つであれば、ndc_get_ch annel()ルーチンは休止せず、チャンネル116のリリースを待たない。 むしろ、ndc_get_channel()ルーチンは、呼び手がそのチャン ネル116をリリースするように指示するため直ちにNULLポインタを返還す る。 DTPサーヴァー・インターフェース・ルーチン104がndc_get_c hannel()ルーチンを呼びだし、該ルーチンからNULLポインタの返還 値を受け取るとき、DTPサーヴァー・インターフェース・ルーチン104は上 流から受け取った要求を拒絶しなければならない。応答はNDC_RSP_RE QUEST_REJECTEDでフラグされ、上流位置にこの要求が受理された ことを伝える。もし始めに要求を拒絶するNDC位置とNDC顧客終端位置24 との間の中間NDC位置2 6Bのような数個のNDC位置があれば、拒絶は、それが要求を始めに受け取っ たNDC50の顧客インターセプト・ルーチンに達するまで、全ての位置を通し て通過しなければならない。拒絶を受け取ると、NDC顧客終端位置24の顧客 インターセプト・ルーチン102はバックオフする。一般に、バックオフは次の ような手続きである: 〇 顧客インターセプト・ルーチン102のようなプロセスは、 要求が拒絶されたことを通知される; 〇 顧客インターセブト・ルーチン102のようなプロセスはそ こで、そのチャンネル116をリリースする;そして 〇 リコール/不能化のプロセスは、チャンネル116を請求し、 NDCバッファー129に記憶されたデータセットの如何な る投影イメージをもフラッシュ又は無効化し次に、顧客イン クーセプト・ルーチン102のような始めのプロセスがチャ ンネル116を再請求し、最終的には顧客の要求に供するこ とができるように、チャンネル116をリリースする。 バックオフは、常に、顧客インターセプト・ルーチン102以内で実行され、何 れの顧客インターセプト・ルーチンもこの機能を実行することができる。 顧客インターセプト・ルーチン102は拒絶をNDC50から、顧客作業端末 42のような回路網顧客(network client)に返却しない。顧客 作業端末42は、NDC50によって実行される整合操作に付いては無知のまま である。NDC位置22、26A、26B及び24間の上流を流れるメッセージ は、それ等がNDC位置24、26B、26A及び22間の下流を流れる同一の データセットに対するメッセージと衝突する場合に対し、常に、優先する。全て の上流位置に於いて投影イメージを不能化又はリコールするため上流にメッセー ジを送ることは、CWS状態を創生したばかりのメッセージを処理するのにCC Sによって実行される第一の工程である。上流のメッセージと下流のメッセージ との間に衝突が起こると、下流を流れるメッセージは既にCCSに対するレース を大幅に失っている。 上述のように、チャンネル116を請求する要求に応答して、ndc get channel()ルーチンは、 1.必要なら短時間待ってから新しい又は古いチャンネル116に対するポイ ンタを呼び出すルーチンへ;又は 2.チャンネル116に対する要求は拒絶され、呼びだしルーチンは待って、 整合操作が進行するすることを許容しなければならないことを述べるためにNU LLポインタを返却する。チャンネル要求処理操作 チャンネル116が要求を処理する目的のために請求された後は、チャンネル 116は要求に委ねられ、他の如何なる要求も、現在の要求が完全に終了し、チ ャンネル116をリリースするまでは、チャンネル116を用いることはできな い。 チャンネル委任は、同一データセットに向けられた顧客要求が、次の要求に付 いての如何なる処理が始まる前にも、各要求が十分に処理されるように、順番に 配列されるプロセスである。しかしながら、多数のNDC位置22、26A、2 6B及び24は、同一データセットに対する要求を同時に受け取ることができる 。即ち、二つ以上のNDC位置22、26A、26B及び24は、約同時に同一 データセットに対する処理を開始することができ、それ等の両方は、他の何れか のNDC位置がデータセットにアクセスしているこを知らないかもしれない。N DC整合機構は、データセットにアクセスしている単一の待ち行列があるような 全ての場合を処理する。しかしながら、NDC位置22、26A、26B及び2 4間の処理及び転送の遅延のため、各顧客がデータセットへのアクセスを要求す る順序は、どの要求が始めに処理されるかを決定しない。むしろ、処理されるべ き要求は、以下により詳細に記述されるように、CCSによって受け取られる第 一のものである。かくして、CCSに「より近接した」顧客は、優先度を処理す るのに僅かな利点を有する。この僅かな利点は、多分、 顧客作業端末42のような顧客によって実行される応用プログラムによっては検 出できない。 要求が満たされるまでチャンネル116を単一要求に委ねる概念は、NDC5 0の整合制御機構に必須である。CWSが全く無いデータセット・アクセスの簡 単な場合に対しては、NDC位置22、26A、26B及び24は自律的に動作 する。このことは、NDC位置22、26A、26B及び24に於ける動作が完 了するやいなや、チャンネル116はリリースされることを意味する。即ち、各 NDC位置22、26A、26B及び24に於けるチャンネル116は、応答が 要求する顧客に送られるまでのみ委ねられる。 CWS状態が存在すると、NDC顧客終端位置24から下ってCCS(NDC 位置26B、26A又は22に有り得る)をも含む全てのNDC位置は並行モー ドで動作する。並行モードで動作する時、書き込み動作を支持するチャンネル1 16は、上流のNDC位置に対する応答を送る点を越えて委任され続けていなけ ればならない。各NDC位置に於ける並行モードで動作するチャンネル116は 、上流NDC位置がNDC_FLUSH又はNDC_RELEASEメッセージ の何れかを転送することによってそれ等をリリースするまで委任されたままであ る。CWS状態が存在しない時、データセットを読み込む顧客からの要求に対し て、チャンネル116は、応答が要求する顧客に送られるやいなや、リリースさ れる。並行モード動作は、以下により詳しく説明される。 チャンネル読み取り動作 チャンネル116がデータセットを読み取る要求を受け取ると、それはチャン ネル116以内で既に投射されているイメージから直接、要求を満足させようと する。もし追加のデータが下流から要求されると、チャンネル116は、下流デ ータを取り込むためにマッシュ・ロード技術を採用する。 始めの顧客要求が引き続くNDC位置26B、26A及び22を 通して下流にリプルすると、 〇 各NDC位置26B、26A及び22に於けるDTPサーヴ ァー・インターフェース・ルーチン104は、要求に供する ことに委ねられたチャンネル116を請求する; 〇 入来する要求は、NDC位置26B、26A及び22に於け るチャンネル116内に既に投影されているイメージに対し てマッシュされる;そして 〇 NDC位置26B、26A又は22に於けるNDC50は、 要求を満たすために以下から負荷されなければならないデー タのみを特定する前記要求を発生し、それを下流に送る。 以下の何れかが終了するまで、要求はNDC位置からNDC位置へNDCサーヴ ァー終端位置22に向かって伝搬する: 1.要求は、直前のNDC位置によって要求された全てのデータのイメージ又 は一連のイメージに対してマッシュする;又は 2.要求はNDCサーヴァー終端位置22に達する。 何れの場合にも、要求が要求されたデータの全てを有するNDC位置に達すると 、そのNDC位置からNDC顧客終端位置24に延びる一連のチャンネル116 が存在する。進行中の要求に委ねられた全てのチャンネル116は、それ等を取 り囲む保護シールドを有効に有する。データにアクセスする他の何れの要求も、 何れかの点でこのバリアに浸透できる。 もし一連の委任されたチャンネル116がNDCサーヴァー終端位置22にま でかく延びていなければ、同一データに対する他の要求が、この一連のチャンネ ル116から下流に在るNDC位置に作られる。下流NDC位置は、リコール/ 不能化メッセージを全ての上流NDC位置に出力しなければならない。一連のチ ャンネル116の下流端部にこのリコール/不能化メッセージが到達すると、そ れはチャンネル116の使用可能を待つ待ち行列ができる。このNDC位置に於 けるチャンネル116が負荷要求に応答するやいなや、それはその上流での委任 から自由になる。チャンネルは次に、リコール/不能化メッセージについて処理 を開始し、リ コール/不能化メッセージを上流に送る。リコール/不能化メッセージは、負荷 応答よりもずっと速く伝搬する。負荷応答はデータを転送しなければならないか ら。かくして、リコール/不能化メッセージは、NDC顧客終端位置24にまで かく戻ってなされる局所的応答に厳密に従うだろう。NDC顧客終端位置24に 於ける顧客インクーセプト・ルーチン102が応答を顧客作業端末42のような 顧客に送るやいなや、リコール/不能化メッセージはNDC顧客終端位置24に 於ける全ての投影イメージを無効にする。 チャンネル負荷操作の他の観点は、下流のチャンネル116は、要求されたデ ータの全てがチャンネル内にキャッシュされるまで、要求に対する応答を決して 開始しないことである。そして、応答が最終的に送られると、チャンネル116 は要求されたデータの全てを転送する必要がない。下流NDC位置に於けるチャ ンネル116による応答は、更なるデータが上流のNDC顧客終端位置24に向 けて転送されずにあるということを述べる部分的応答としてフラダされて良い。 部分的応答を受け取ると、上流NDC位置は直ちに、残りのデータに対して下流 NDC位置に対する要求を出力する。この要求に対する下流NDC位置の応答は 全応答又は部分的応答の何れでも良い。上流のNDC位置は、それがその始めの 要求に対する完全な応答を受け取るまで、更なるデータを求め続ける。下流ND C位置は、それが完全な応答を上流NDC位置に送り終えるまで、チャンネル1 16を決してリリースすることはない。このようにして、NDC50は、顧客作 業端末42のような顧客位置からのデータにアクセスする各要求に、原子的動作 として、応答する。 チャンネル書き込み動作 データセットは、常に、可能な最も遠い上流に於いて書き込まれる。データセ ットを書き込むに際して実行される動作の順序は: 〇 NDC位置へ重ね書きされるデータセットの部分のイメージを負荷する; 〇 NDC位置に投影されたデータセットのイメージに書き込む ;そして 〇 修正されたデータを含むバッファーを下流へNDCサーヴァ ー終端位置22に向かってフラッシュする。 以下の項は、書き込み動作の三つの相をより詳細に記述する。 負荷相 NDC50は、NDCバッファー129に未だ存在せず、NDCバッファー1 29に部分的にのみ書き込まれるであろうデータの各ブロックを負荷する。ブロ ックは、「C WRITE」の「func」議論をもつndc load()ル ーチンを呼出し、ndc load()ルーチンにそれが書き込み操作によって 重ね書きされるべきデータを負荷しつつあることを伝える。議論C WRITE で呼び出されるndc load()ルーチンは、一般にそれが読み取り要求に 対するものと同一であるが、次のような差異がある。 〇 もしこれはチャンネル116が創生されて以来最初の書き込み操作で あれば、下流NDC位置は、全ての必要なデータがこのNDC50のNDCバッ ファー129に既に存在していても、書き込み活動に付いて伝えられなければな らない。もしこれはデータセットが何れかのNDC位置に書き込まれるであろう 第一回目であれば、書き込まれた操作が実行されつつあることを下流NDC位置 に伝えるメッセージはNDC終端位置22にまで伝搬する。かくして、もし他の 何れかの顧客がデータセット上で活性となれば、CWS条件は検出されるだろう 。 〇 完全に重ね書きされるだろうブロックは、書き込み操作が実行されて いるNDC位置の上流に負荷される必要はない。かかる状況下で、NDC顧客終 端位置24のようなNDC位置に於けるndc load()ルーチンは空のN DCバッファー129に割当られ、データセットに書き込まれているデータを受 け取る。 〇 下流NDC位置が書き込み操作を実行するのに必要なデータ を負荷するために要求に応答するに従って、それ等は要求(メッセージ・フラグ ==NDC SITE WRITING)の目的に付いて伝えられ、又修正され たデータが書き込み操作の終了時にNDC位置を通して下流にフラッシュされる だろうかを伝えられる。始めの負荷は又、修正されたデータに対して要求される 防御性を特定する「フラッシュ・レベル」を特定する。データを書き込むNDC 位置とNDCサーヴァー終端位置22との間の各NDC位置は、フラッシュ・レ ベルをその固有のケイパビリティと比較する。もし何れかの介在NDC位置が修 正データに対する防御性の指示レベルを提供できれば、それはその下流NDC位 置に出力しようとしている負荷要求をNDC FLUSH CONTAINED でフラグする。かくして、各NDC位置は、チャンネル116がその現在の委任 からリリースされ得る最先の瞬間を決定できる。もし上流NDC位置がキャッシ ングに対して可能となれば、チャンネル116は、データがNDC位置を通過す るやいなや、リリースされ得る。連合するNDC UPSTREAM SITE は、上流位置に於いて起こっている書き込み活動があることを注釈する。他の何 れかの顧客がデータセット上で活性化すれば、修正されたデータの全ては、新し い顧客からの何らかのトランザクションが処理される前に、上記からリコールさ れる。 もし二つのNDC位置がデータが通過する共通のRAMを共用していれば、そ のデータは、それが上流のNDC位置を「クリア」してしまうまで、下流のND C位置を「クリア」することはない。この状況に於いて、下流のNDC位置は、 それが上流からの始めの要求に応答する時、チャンネル116をリリースするこ とはない。その代わり、下流のNDC位置は、それが上流のNDC位置からの他 のメッセージを受取り、戻されたデータは今や上流のNDC位置を「クリア」し たことを伝えるまで、チャンネル116を多忙のままにとどめる。これは、下流 のNDC位置が上流のNDC位置がまだ動作しているデータを修正または廃棄す ることを妨げる。 書き込み相 NDCバッファー・プール128が書き込みデータを受け取るように割り当て られた後、NDC50は書き込み操作を実行し、修正された全てのNDCバッフ ァー129は「汚れている」ものと標識される。 フラッシュ相 NDC50が書き込み操作を完了すると、応答が顧客作業端末42のような顧 客に送られ得る前に、一つの仕事のみが成されずに残っている。この位置に委ね られた書き込みデータは、顧客作業端末42のような顧客によって又はデータを 所有するNDCサーヴァー終端位置22によって要求されたレベルに確保されね ばならない。即ち、各書き込みトランズアクションの何れかの端部に於けるND C位置は、防御性レベルを特定することができる。書き込みトランズアクション の何れかの端部によって特定された最高レベルが卓越するだろう。書き込みトラ ンズアクションの何れかの端部は、以下の防御性レベルの何れかを特定できる。 〇 NDC FLUSH TO SERVER DISK 〇 NDC FLUSH TO SERVER STABLE RAM 〇 NDC FLUSH TO SITE DISK 〇 NDC FLUSH TO SITE STABLE RAM 〇 NDC_FLUSH_TO_NOWHERE 顧客作業端末42のような顧客又はNDCサーヴァー終端位置22の何れかが 、書き込まれたデータがたまたま失われるかどうか及び両者がデータ速度に対し てデータの防御性を取引しようとするかどうかを極端に気にすれば、フラッシュ 相は、書き込みトランズアクションの両端が防御性レベルNDC_FLUSH_ TO_NOWHEREを特定すれば、側路できる。この場合、書き込み操作は今 や完了されたことになる。 しかしながら、もし書き込みトランズアクションの何れかの端部がNDC_F LUSH_TO_NOWHEREより高い防御性レベルを特定すれば、ndc_ flush()ルーチンは呼び出され、全ての汚染N DCバッファー129を容認される防御性レベルをもったNDC位置にフラッシ ュするだろう。もしレベルがNDC_FLUSH_TO_SITE_STABL E_RAMであって、又このNDC位置に於ける汚染データが停電の際喪失され るだろう電池支援のRAM又はフラッシュRAMのようなステーブルRAMに既 に記憶されていれば、ndc_flush()ルーチンは直ちに戻る。 NDC50がデータを修正する瞬間、NDCバッファー129は汚れていると タグされる。もし汚染NDCバッファー129が、チャンネル116が書き込み 要求の処理終了時にリリースされる直前に起こる第一の機会に於いて下流でフラ ッシュされなければ、チャンネル116はC_DELAYED_WRITEとし てフラグされる。 もしCWS状態が存在せず、顧客作業端末42のような顧客とNDCサーヴァ ー終端位置22の両方が失われる修正データに気遣っていないならば、データは それが修正されている間、長時間に亘って留まっているNDC位置に向かって上 流に流れる。最終的には、顧客はデータセットへのアクセスを止め、その直後に チャンネル116はフラッシュ・デモン・ルーチンによってCQ READYリ ストからCQ_CLEANリストに移動されるだろう。チャンネル116がCQ _READYリストからCQ_CLEANリストに移動されると、防御性の理由 で下流でフラッシュされていず、未だ手間取っている何れかの汚染NDCバッフ アー129は、この時フラッシュされるだろう。 NDC50のNDCバッファー129に在る修正データは、もし書き込み操作 の終了時にチャンネルをリリースする第一の機会で下流にフラッシュされていな ければ、C_DELAYED_WRITEデータと特徴づけられることになる。 汚染データは、下流でデータをフラッシュしてしまうことができるルーチンが側 路されるまでは、C_DELAYED_WRITEデータではない。かかるデー タがついには下流でフラッシュされると、C_DELAYED_WRITEフラ グが除去される。 もし、書き込み要求の負荷相の一部として、データがそのイメー ジをキャッシュしないNDC位置を通して下流に圧送されると、NDC位置に於 けるチャンネル116はリリースされることはない。かかる状況の下で、データ セットを書き込んでいるNDC位置は間もなく、データを書き込み要求に応答す る最終相としてこのNDC位置を通して下流に返送しようとするであろう。 チャンネル保守操作 一般に、NDCサーヴァー終端位置22のようなファイル・サーヴァーはしば しば、それ等のプロセッサが仕事を待つ時間の有意義な部分を消費するようには 、十分に利用されない。上記のように要求を処理することに従事する時、NDC 50は応答を完了するために必須ではない全ての操作を遅らせる。かかる時には 、各NDCは要求に応答するため絶対に必要な操作のみを実行する。処理を待つ 要求がないと、NDC50はプロセッサの「アイドル」時間を使うためチャンネ ル・デモンを活性化し、ついには到着する要求の次のボレーに対して準備する。 顧客の要求に直接、供するのに必要とするNDC50の如何なるプロセスも、現 在のデモンが、もし何れかが操作中であれば、制御を放棄するやいなや、あらゆ るデモンを強制排除する。 リーパ・デモン NDC50は、CQ_EMPTYリストにEMQされたチャンネル116数が CQ_EMPTY_LOW_THRESHOLD以下に減少する時は何時でも、 背景の仕事としてリーパ・デモン・ルーチンを呼び出す。この状態に応答して、 リーパ・デモン・ルーチンは、CQ_CLEANリストの前面に在るチャンネル 116を繰り返し除去し、それに割り当てられた全てのNDCバッファー129 をリリースする。もしCQ_CLEANリストの前面から除去されたチャンネル 116が複雑なチャンネル116であれば、リーパ・デモン・ルーチンはそれを 簡単なチャンネル116の集まりに還元し、それ等の全てをリーパ・デモン・ル ーチンはCQ _EMPTYリストの前面に配置する。プロセスのこの時点に於いて、リーパ・ デモン・ルーチンが他のチャンネル116の全てを除去したチャンネル116は 有効なデータ属性をまだ含むことができる。かかる状況下で、リーパ・デモン・ ルーチンはCQ_EMPTYリストの背面に在る簡単なチャンネル116をEN Qする。何故ならば、それが異なるデータセットにアクセスする要求に応答する ために請求されるべきCQ_EMPTYリストの前面にまで広がる前に、チャン ネル116が同一データセットにアクセスする要求に応答するために請求され得 る可能性が尚存在しているからである。 チャンネル116をCQ_CLEANリストの前面から除去し、CQ_EMP TYリストに一つ以上のチャンネル116を配置する終了時には、リーパ・デモ ン・ルーチンは、データにアクセスする何か新しい要求がNDC50によって受 け取られているかを見るチェックをする。もし新しい要求が受け取られていれば 、リーパ・デモン・ルーチンは、要求に応答するだろう前景のタスクに対する制 御を放棄する。リーパ・デモン・ルーチンは、データにアクセスする何の保留要 求ももはや無いときのみ、操作を再開する。 もしCQ_EMPTYリスト上にENQされたチャンネル116数がCQ_E MPTY_HIGH_THRESHOLDを越えると、リーパ・デモンはその操 作を中断し、CQ_EMPTYリスト上にENQされたチャンネル116数が再 びCQ_EMPTY_LOW_THRESHOLD以下に減少するまで、操作を 再開することは無いだろう。 フラッシュ・デモン フラッシュ・デモン・ルーチンはチャンネル116を、C_DELAYED_ WRITEとフラグされているCQ_LOCKED、CQ_SERVICE又は CQ_EADYリスト上に位置決め、B_ELWRIとフラグされたかかるチャ ンネル116に割り当てられた全てのNDCバッファー129をNDCサーヴァ ー終端位置22に向かって下流にフ ラッシュする。チャンネル116がフラッシュ・デモン・ルーチンによって処理 された後、チャンネル116は、チャンネル116にセットされたフラグに依っ て、CQ_LEAN、CQ_ERVICE又はCQ_LOCKEDリストの端部 にENQされる。 ロードマスター・デモン NDC50は、データにアクセスする要求に保留する何の応答も無い時は何時 でも、ロードマスター・デモン・ルーチンを呼び出す。ロードマスター・デモン ・ルーチンはCQ SERVICEリスト上にENQされたチャンネル116を チェックし、それ等を個々に、チャンネル116によって要求されるサービスを 実行するスーパバイザ・デモン・ルーチンに割り当てる。チャンネル116が供 された後、それはCQ_READYリストの端部上にENQされる。 スーパバイザ・デモン スーパバイザ・デモン・ルーチンは、ロードマスター・デモン・ルーチンによ ってCQ_SERVICEリストから除去されたチャンネル116を受取り、顧 客作業端末42のような顧客から入来するだろうデータにアクセスする更なる要 求を予測し、チャンネル116がデータにアクセスする顧客からの要求に直ちに 応答できるために必要な下流のNDC位置からのサービスのための何らかの要求 を発生する。NDC50がスーパバイザ・デモン・ルーチンによって発生された 要求に対する下流のNDC位置からの応答を受け取った後、チャンネル116は CQ_READYリストの端部上にENQされる。 ローダ・デモン ローダ・デモン・ルーチンは、要求を下流NDC位置又はディスク・サブシス テムに提起し、そしてその要求に対する応答を待つようなNDC50の操作に必 要な簡単な非同期的タスクを実行する低レベルのルー チンである。 チャンネル・リリース 要求がNDC位置22、24、26A又は26Bに於いて完全に供された後、 チャンネル116はリリースされる。チャンネル116をリリースするプロセス は、次のように動作する: 〇 もし汚染データがチャンネル116内に投影されると、NDC50はn dc_flush()ルーチンを呼出し、全ての修正データが顧客及びサーヴァ ーの両者に容認されるレベルに確保されることを保証する。 〇 もし下流チャンネル116がまだ委ねられていれば、NDC50はそれ にリリース・メッセージを送り、応答が受け取られるまで待機する。リリース・ メッセージは、場合によっては、それがNDCサーヴァー終端位置22に達する まで、全てのNDC位置を通して下流に伝搬する。 〇 もし一つ以上のプロセスがこのチャンネル116又は何れかのチャンネ ル116を待機中であれば、それ等の全てはランするようにスケジュールされる 。 〇 チャンネル・フリー・リストのトレールに於いてチャンネル116をE NQする。 〇 チャンネル・フラグ:C_BUSY、C_WANTED、C_ASYN C及びその他をリセットする。 上記の操作の全てが実行された後、チャンネル116は、既に受け取られてい るか又は将来到達するだろう他の何らかの要求による使用が可能になる。 チャンネル・デス ほとんどのチャンネル116はいずれは死ぬ。死亡の主要原因は、使用しない ことに変わりはない。チャンネル116が連続的に使用されている場合に限って 、それ等は生き続ける。チャンネル116が死ぬと、次 の操作が実行される: 〇 チャンネル116内にまだ保持されている如何なる汚染データも、ND Cサーヴァー終端位置22に向かって下流でフラッシュされる。 〇 もし下流チャンネル116がまだ委ねられていると、NDC50はそれ にチャンネル116は死亡過程にあるという通知を送る。この通知は、下流でフ ラッシュされている何れかの汚染データを運ぶだろう。しかしながら、通常は、 ここでチャンネル116内にまだ留まっている如何なる汚染データも無い。種々 のチャンネル・デモンに対して設定されたしきい値は、それ等をして修正データ を、チャンネル・デモンがチャンネル116を再請求するよりも速く、NDCサ ーヴァー終端位置22へフラッシュせしめる。 〇 下流NDC位置22、26A又は26Bに於けるNDC50から死亡通 知に対する応答を受け取った後、NDC50はチャンネル116に割り当てられ た全てのレソースをリリースし、チャンネル116は無効且つ空とフラグされる 。 〇 もしチャンネル116の死亡が新しいチャンネル116に対する要求に よって開始されると、チャンネル116は要求プロセスに戻される。 〇 もしチャンネル116の死亡がチャンネル・デモンの動作によって引き 起こされと、チャンネル116は、チャンネル116内に記憶されたデータセッ トに対する属性が有効のままかどうかに依って、CQ EMPTYフリー・リス トの頭部か尾部の何れかにENQされる。 NDC顧客終端位置24に位置付けられたチャンネル116のみが、不使用に よる死亡を蒙る。下流のチャンネル116は、多忙でない時は常に、CQ_LO CKEDフリー・リスト上にENQされる。LRU置換に対して免疫のあるCQ LOCKEDフリー・リスト上のチャンネル116は、それ等の最後の上流チ ャンネル116によってそれが死につつあると通知された時又は上流位置が状態 問い合わせに応答せず、死亡したと推定される時のみ死ぬ。 下流チャンネル116は、NDC顧客終端位置24のチャンネル116をND Cサーヴァー終端位置22に結合する通信リンクである。下流チャンネル116 は全ての上流チャンネル116を整合制御動作から隔離することなく再割当はな され得ない。もし通信エラーによって回路網から一時的に隔離され、そしてもし 回路網上の他の何れかの顧客は隔離されたNDC位置が活動的チャンネル116 をもつデータセットを処理するなら、通信が再開された後、正式に隔離されたN DC位置に於いて実行される如何なるデータ修正も、正式に隔離されたNDC位 置が次にデータをNDCサーヴァー終端位置22に向って下流に戻してフラッシ ュしようとする時、下流のNDC位置によって拒絶される。かくして、下流のチ ャンネル116は、上流のチャンネル116が死に、或いは、少なくとも、死ん だものと考えられるときのみ、死ぬ。 データ・イメージ投影は下流のチャンネル116に、そのチャンネル116が 多数の上流接続をもつ時のみ、そしてその時でさえ、或状況下でのみ、保持され る。従って、下流チャンネル116は、チャンネル・フリー・リスト上にENQ された時、希にNDC位置のリソースを保持する。約500バイトのチャンネル 構造自体のみが、上流位置と下流位置との間に連係を提供すべく委ねられたまま でなければならない。 投影されると、NDCメタデータ、例えば、ファイルシステム及びファイル属 性は、常に、チャンネル構造以内に直接、記憶される。これは、アイドル下流チ ャンネル116が、それ等が接続されたデータセットに関する情報をまだ保持し ていることを意味している。 一チャンネルの死をトリガし得る三つの事象は: 〇 チャンネル116はチャンネル・フリー・リストの先頭に前進し、要求 が新しいチャンネル116に対してなされる。これが起こると、チャンネル・フ リー・リストに於けるチャンネル内の何れかの汚染データをNDCサーヴァー終 端位置22に向かって下流にフラッシングした後、チャンネル116は、下流N DC位置がチャンネル116は死につつあると適切に通知された後、新しいデー タセットへのアクセスを支持するよう に再割当がなされる。 〇 NDC50は死亡通知を、データセットにアクセスしている最後に残っ た上流NDC位置から受け取る。死亡通知メッセージは、下流NDC位置に死亡 順序を入力せしめ、更に下流にNDCサーヴァー終端位置22に向かって伝搬す る死亡通知に至ることができる。 〇 チャンネル使用タイマは、チャンネル116に付いて久しく活動が無い ことを指摘する。もしチャンネル116がNDC顧客終端位置24に在れば、そ れはこの地点で丁度殺され得る。もしチャンネル116がNDC顧客終端位置2 4に在れば、チャンネル116は状態問い合わせメッセージをその全ての上流接 続に送らねばならない。この状態問い合わせメッセージは、下流NDC位置がチ ャンネル116を殺したい緊急度を表示する。状態問い合わせメッセージに答え た後、上流NDC顧客終端位置24はそのチャンネルを殺しても良いが、上流N DC顧客終端位置はそうする必要はない。しかしながら、上流NDC位置は下流 NDC位置からの状態問い合わせに程良い間隔で答えねばならない、さもなけれ ば下流NDC位置は上流チャンネル116は死んでしまったものと見なすだろう 。 NDCインターサイト(Inter−site)動作 制御情報及びデータ情報の両方はNDC位置22、26A、26B及び24の 間を通信されなければならない。NDC位置22、26A、26B及び24の間 のデータ通信は、常に、一以上のバイト・シーケンスの命名されたデータセット である。制御情報は少々複雑で、次のように類別される: 〇 NDCメタデータは、ファイルシステム及びファイル属性、 サーヴァー名、ファイルシステムid及びファイルidのよ うな命名されたデータセットに関する情報である。 〇 DTP制御はNDC位置22、26A、26B及び24によ って発生され、用いられる情報で全てに送信されたデータ及 びNDCメタデータの整合を保証する。 DTP制御情報はDTPの構造に織り込まれた、データとNDCメタデータが NDC位置22、26A、26B及び24の間を通過されるプロトコルである。 図9は、NDC位置22、26A、26B及び24のようなNDC位置の対の 間を交換され得るDTPメッセージ52の種々の異なる型を列挙するCプログラ ム言語で書かれた表である。図10は、図9に列挙された種々の異なるDTPメ ッセージ52の何れかをアセンブルするのに用いられるCプログラム言語に於け るデータ構造を定義する。図11Aから図11Iは、図4に例示されたチャンネ ル116に組み込まれたCプログラム言語であって図10に例示されたDTPメ ッセージ52に対するデータ構造に於けるデータ・サブ構造を定義する。図12 は、DTPの連鎖を形成し、それによって数個のDTPメッセージ52が単一原 子通信としてNDC位置間を交換されるのに用いられるCプログラム言語に於け る構造を定義する。 各チャンネル116に対するメタデータは、NDCバッファー129に記憶さ れた顧客作業端末42のような顧客によって要求されたデータを除いて、各チャ ンネル116に記憶されたデータの全てから成る。各チャンネル116に於ける 二つのデータ構造は、チャンネル116の実行に極めて肝要なメタデータを含む 。図13Aは、チャンネル116が付属する命名されたデータセットに付いての 情報を特定するCプログラム言語に於けるデータ構造NDC ATTRを定義す る。図13Bは、データセットが在るフアイル・システムに付いての情報を含む Cプログラム言語に於けるデータ構造NDC−STATSを定義する。 以下に記載されるのは、NDC位置22、24、26A及び26Bが動作する 種々の態様及びNDC位置22、24、26A及び26B間で実行されなければ ならない整合動作である。 動作態様 NDC位置22、24、26A及び/又は26Bは二つの態様 (モード)の一つ、即ち自律モード又は並行モードで動作する。 チャンネル動作の自律モード 可能な時は何時でも、チャンネル116は局所的にのみ使用可能なリソースを 用いて要求に供する。順次データにアクセスしている顧客に対しては、チャンネ ル116は、データにアクセスする顧客の現在の要求に先駆けて、データを予め アグレッシブに取り込み又は一時的に記憶する。チャンネル116に対するこの 動作態様は「自律的」と言及される。チャンネル116は、顧客作業端末42の ような顧客からの要求に応答するに際し、要求を受け取る前にそのNDC位置2 2、24、26A又は26Bに於いてキャッシュされたデータ及びメタデータを 使用する時は何時でも、自律的に動作したと云われる。144kバイトより大き くないデータセットは通常、NDC顧客終端位置24に於けるNDCバッファー 129に完全に記憶され、144kバイトより小さいデータセットにアクセスす る全ての要求がNDC顧客終端位置24によって自律的に供されることを可能に する。 データの投影イメージをキャッシュすることが許容されたNDC位置は、自律 的に動作する能力を有する。データの投射イメージをキャッシュすることが許容 されないNDC位置に於けるチャンネル116は、自律的に動作できない。デー タの投影イメージをキャッシュすることが許容されないNDCに於けるチャンネ ル116は、顧客作業端末42のような顧客からの各要求に応答するに際して、 常に、要求をNDC位置に対して下流に転送しなければならない。 チャンネル116の自律的動作は、極めて大きなスケールの分布ファイル・シ ステムが構築できるための基礎である。チャンネル116の自律的動作は以下に 対して基礎を提供する: 〇 迅速な応答時間。自律的に動作しているNDC位置22、24、26A 又は26Bのチャンネル116は、顧客からデータにアクセスする要求に応答す るに際して下流NDC位置と通信する必要がないので、 顧客作業端末42のような顧客はかかる通信に固有な遅延の何れをも蒙らない。 〇 高バンド幅データ転送。もしNDC顧客終端位置24が顧客作業端末4 2内に在れば、データ転送率は極めて高くすることができる(50〜100Mバ イト/秒)。チャンネル116及び顧客が同一のコンピュータ内で動作する時、 データにアクセスする顧客の要求に対するチャンネル116からの応答は、チャ ンネル116が既に顧客作業端末42内のNDC顧客終端のNDCバッファー1 29に記憶してあるデータに対するポインタの返還からのみ成る必要がある。 〇 回路網基準判断性。平均的なデータセットに対して、自律的に動作する NDC位置26A、26B又は24に在るチャンネル116は、データセットが NDC顧客終端位置24に負荷された後は、下流NDC位置22、26A又は2 6Bに如何なる負荷も加えない。下流NDC位置22、26A又は26Bは始め にデータ及びNDCメタデータを自律的に動作するNDC顧客終端位置24内の チャンネル116に供給しなければならない。しかしながら、一旦データ及びN DCメタデータNDC50のチャンネル116もNDCバッファー129に夫々 記憶されると、顧客作業端末42のような顧客は、NDC顧客終端位置24と下 流NDC位置26B、26A又は22との間にそれ以上の如何なる通信をも要求 することなく、何度でもデータ及びメタデータにアクセスできる。もし各NDC 位置24、26B又は26Aが下流NDC位置から繰り返しデータを要求する必 要がなければ、回路網構成のディジタル・コンピュータ・システム20は顧客作 業端末42のような大多数の顧客を許容できる応答時間で支持することができる 。 自律的モードで動作する利点は、程々の努力を払うだけで、チャンネル116 が可能な時な何時でもこのモードで動作することが保証されるといえる程に意義 深い。チャンネル116を自律的に動作できないことは、常に、ただ一つの原因 、即ち、必要なデータ及びメタデータが局所的NDC位置26A、26B又は2 4に投影されていないと言うことの結果 である。 自律的モードで動作させる時、NDC位置22、26A、26B又は24はC CSと類似した態様で機能する。可能な時は何時でも、NDC位置のチャンネル 116は、下流NDC位置26B、26A又は22と通信することなく、顧客作 業端末42のような顧客からのデータにアクセスする要求に応答する。もし上流 メッセージが、NDC位置26A、26B又は24が同一チャンネル116に関 する要求を処理しながら自律モードで動作するNDC位置26A、26B又は2 4に到達すべきであれば、上流メッセージは、NDC位置26A、26B又は2 4がそれを処理できるまで待たなければならない。自律的NDC位置22、26 A、26B又は24は、それがもはや上述のようには機能できないと云うことを 知らされるまで、それがCCSであるかのように動作するあらゆる権利をもつ。 もし上流のメッセージがNDC位置26A、26B又は24はもはや自律的には 機能し得ないという通知であれば、その通知はNDC50がそのメッセージをも つまで有効とはならない。 顧客作業端末42が先ずNDC顧客終端位置24からデータへのアクセスを要 求し、NDC位置22、26A、26B及び24がそれ等の局所的チャンネル1 16を確立し、そしてNDC位置22、26A及び26Bが第一のデータをND C顧客終端位置24のNDCバッファー129に負荷した後は、局所的に投影さ れたデータセット・イメージは次の中の一つが起こらなければ自律的要求供与を 可能にするのに常に十分であろう: 〇 他の顧客による同一データセットへのアクセスがCWS状態を創生する 。もしこれが起こると、下流のCCSはイメージがNDC位置26A、26B又 は24に投影されることを、投影されたデータがNDC位置26A、26B又は 24を通過する瞬時の間、許容するのみである。 〇 顧客作業端末42のような顧客がデータへの無秩序なアクセスを要求し 、その顧客によってアクセスされているデータセットがNDC顧客終端位置24 に於いて完全にキャッシュされるには大きすぎる。ND C顧客終端位置24のような顧客によるデータへの無秩序なアクセスは、チャン ネル116が顧客からの将来の要求を予測するのを妨げる。もしチャンネル11 6が、顧客作業端末42のような顧客はデータに無秩序にアクセスしていると決 定すると、チャンネル116はその顧客に対するデータの予備的取り込みを停止 する。 もし上記の状態の何れも起こらなければ、チャンネル116は自律的に動作し 、顧客作業端末42のような顧客からのデータにアクセスする将来の要求を予測 してデータを予め取り込む。NDC位置22、26A、26B及び24に於いて 支持されている現在の負荷に依って、自律的に動作しているNDC位置に於ける チャンネル116は非同期的又は同期的の何れかでデータを予め取り込む。 非同期的予備取り込み チャンネル・デモンは通常、非同期的に動作するチャンネル116に対してデ ータを予め取り込む。チャンネル・デモンは、チャンネル116が顧客作業端末 42のような顧客から受取るデータにアクセスする次の要求に丁度先だって、チ ャンネル116に投影されたデータのイメージを維持する。もし予備的取り込み 機構の主目的が局所的リソースの使用を最小化することであれば、投影されたイ メージは次の顧客の要求に於いて特定された正確なデータのみから成り、データ のイメージは顧客の次の要求に丁度先駆けて常に投影されるだろう。しかしなが ら、これはNDC顧客終端位置24に於けるリソースを保存するだろうから、回 路網構成のディジタル・コンピュータ・システム20のリソースを非常に浪費す ることになる。回路網構成のディジタル・コンピュータ・システム20がより少 ない要求を採用し、データを負荷する各要求に応答してより大量のデータをND C顧客終端位置24に転送する方がずっとより効率的である。しかしながら、よ り大量のデータを転送することは、顧客要求に応答する遅延を増大するだろう。 データにアクセスする顧客の要求に応答する遅延を最小化するた め、チャンネル116は通常、下流NDC位置26B、26A又は22から、デ ータにアクセスする現在の要求に応答するために必要なデータのみを要求する。 チャンネル116がデータを受け取るやいなや、チャンネル116は顧客作業端 末42のような顧客に応答する。NDC顧客終端位置24内のチャンネル116 が顧客からの要求に応答するやいなや、NDC50は行列待ちをしていた他の何 れかの顧客要求の処理を開始する。NDC50が全ての行列待ちしていた顧客要 求を処理した後、チャンネル・デモンは背景に於いて動作を開始できる。上述の ように、チャンネル・デモンの動作は全ての活動的チャンネル116を連続的に チェックし、チャンネル116が、顧客作業端末42のような顧客からの要求に 直ちに応答できない一つの要求時間間隔内にあるかどうかを決定する。 もしチャンネル・デモンが、チャンネル116は顧客からの要求に直ちに応答 できない一つの要求時間間隔内にあることを検出すると、デモンは、チャンネル 116に投影されたデータのイメージが顧客からのデータにアクセスする要求に 先だって在るように、下流NDC位置26B、26A及び22から追加データを 得るために必要な如何なることもする。データセットに付いての読み取り操作を 支持しているNDC顧客終端位置24内のチャンネル116に対して、チャンネ ル・デモンは、顧客作業端末42のような顧客からの次の8個の要求に応答する のに大ざっぱに十分なデータを要求する下流NDC位置26Bに対する要求を非 同期的に出力する。データが下流NDC位置26Bから到達すると、チャンネル 116はデモンによって選ばれたデータをNDCバッファー129内に記憶する 。データを受け取るのに使われるNDCバッファー129は、しばしば、データ の現在の投影イメージに対してチャンネル116によって既に使われているもの である。このようにして、NDC50が既に顧客に呈示したイメージ部分は、顧 客からの要求がそれに向かって前進しているデータセットの一部分によって置き 換えられる。 もし、チャンネル・デモンがチャンネル116を再充填している間に、顧客作 業端末42のような顧客からの要求が到達すると、NDC5 0は、チャンネル・デモンによって開始された下流操作が完了するまで、要求を 遮断する。かくして、もしチャンネル・デモンがデータにアクセスする顧客要求 を上手く予測すると、チャンネル116は引き続き自律的に動作する。 同期的予備取り込み 自律的動作の非同期的モードは、顧客作業端末42のような顧客からの要求を 供する前景タスクからできるだけ多くの処理を顧客からの次の要求に供する準備 の背景タスクへ移行する。処理を前景タスクから背景タスクへ移行する戦略は、 応答時間に対する処理量を捌くことである。顧客作業端末42のような顧客はよ り速い応答時間を経験するが、NDC位置22、26A、26B又は24は処理 量能力を減少している。これは、NDC位置22、26A、26B及び24はそ れ等の処理量能力の近くを行っているので、程良い処分である。しかしながら、 NDC位置22、26A、26B及び24の動作に於ける間隔は、最小の応答時 間よりはむしろ最大の処理量を要求することが起こるだろう。最大要求の時間中 には、下流NDC位置からのデータを予め取り込む通常未使用の同期モードは、 NDC位置22、26A、26B及び24の処理量を最大にするために非同期モ ードに置き代わる。 同期的動作モードは、NDC位置22、26A、26B又は24に於けるCP U利用が予め確立したしきい値を越える場合、活動化する。同期的モードでは、 チャンネル・デモンは活動化されず、データにアクセスする要求に応答するため のルーチンはもはやチャンネル116へのデータの負荷及びチャンネル116か らのデータの放荷をチャンネル・デモンには任せない。NDC50が同期モード で動作する時、データは下流のNDC位置から、上流のNDC位置が要求に応じ られない場合のみ、要求される。 もしチャンネル116が追加データを要求し、NDC50が自律的動作の同期 モードで動作すれば、チャンネル116は下流NDC位置か らの要求データと追加データを要求し、データをこの位置に於けるチャンネル1 16に負荷する効率を増大する。NDC50が同期モードで動作する時間中、こ のNDC位置22、26A、26B又は24のNDCバッファー129中に無い 追加データが要求に応じるために必要とされることをチャンネル116が発見す る毎に、大量のデータがチャンネル116によって直接取り込まれる。チャンネ ル116がデータにアクセスする要求に応じられない時にのみ大量のデータを下 流のNDC位置から要求することによって、チャンネル116はそのNDC50 の処理量を最大にするが、顧客作業端末42のような顧客は、チャンネル116 がデータを下流のNDC位置26B、26A又は22から要求されることを余儀 なくされる度に、追加の遅延を蒙る。 チャンネル動作の並行モード データの投影されたイメージは、自律的に動作しているチャンネル116内で のみ起こる。以下により詳細に説明されるように、自律的チャンネル116は、 CCS又はCCSと同様に機能しているNDC顧客終端位置24に於いて又はそ の下流の於いて常に起こる。CCSがNDCサーヴァー終端位置22に在る時、 CCSの上流に在るNDC位置26A、26B又は24は常に並行モードで動作 する。CCSがNDCサーヴァー終端位置22に在る時、CCSの上流に在るN DC位置26A、26B又は24は、それを通してCCSに投影されているデー タセットのイメージが見えるCCS位置の拡張として動作する。 並行モードで動作しているチャンネル116は投影データのイメージを、最短 時間の間のみ、即ち、チャンネル116がデータを下流NDC位置から受け取る 時からチャンネル116がデータを次の上流NDC位置又は顧客作業端末42の ような顧客に送るまで、持続する。並行モードで動作するチャンネル116は、 現在の要求を満足させるのに必要なデータを常に正確に、多すぎることも少なす ぎることもなく、要求する。 整合制御操作 図15は、ファイル156に接続されたNDC位置22、26A、26B、2 4、202、204A、204B及び206の一般的参照番号200で表示され たトリーを描写している。LAN44AはNDC顧客終端位置204Bに接続し 、LAN44BはNDC顧客終端位置206に接続する。もしCWS状態がND C位置24とNDC位置204B又は206の何れかとの組み合わせによって創 生されていたら、NDC位置26Aはファイル156に対するCCSになる。N DC位置26Aは、ファイル156が分布キャッシュ整合機構を必要とせずND Cサーヴァー終端位置22から投影され得る限りである。 もしCWS状態が存在しなければ、全てのNDC位置22、26A、26B、 24、202、204A、204B及び206は自律的に動作できる。自律的に 動作している時、NDC位置22、26A、26B、24、202、204A、 204B及び206は、長時間に亘って顧客の読み取り及び書き込み操作を支持 するために使用され得るデータの投影されたイメージを持続できる。自律的位置 は、上流のNDC位置206、204A、204B、202、26A、26B又 は24が追加データを要求する時又は修正されたデータがNDCサーヴァー終端 位置22に向かって下流にフラッシュされなければならない時のみ、次の下流N DC位置204A、202、26B、26A又は22と連絡する。 しかしながら、CWS状態が起こると、上流のNDC位置206、204B又 は24に対するデータセットに多数の接続を提供するハードディスク32のよう なデータ・ソースの上流に在る第一のNDC位置26A又は202は、データセ ット上で実行されている全ての動作の整合と保全性を維持する責任を担わねばな らない。この責任を担うNDC位置26A又は202は、顧客作業端末42のよ うな現在の顧客からデータセットにアクセスする全ての要求を通さねばならない ハードディスク32のようなデータ源から最も離れた処に在る。かくして、もし CWS状態がNDC位置24とNDC位置204B又は206の何れかとの組み 合わせによって 創生されるなら、NDC位置26Aはファイル156に対するCCSに成るだろ う。 もしNDC位置26A又は202の何れかがデータセットに対するCCSに成 ると宣言すれば、NDC位置26A又は202は: 1.上流のNDC顧客終端位置206、204B又は24から修正されたデー タセットのイメージをリコールし、データのそのイメージが修正の全てを含むよ うにする;そして 2.NDC位置によって使用中であったデータの他の全ての上流投影を不能に し、データセット上の読み取り操作を支持する。 これ等の操作を完了した後、CCSは今や、データセットのイメージが投影さ れる最も離れたNDC位置である。上流のNDC位置は今や並行モードで動作し なければならず、データセットにアクセスするために受け取った全ての要求を処 理のためCCSに送る。CCSはデータセットにアクセスする要求を受け取った 順序で処理し、データセットにアクセスする次の要求を処理し始める前に各要求 の完了を保証する。 CWSの検出 NDC位置22、26A、26B、24、202、204A、204B及び2 06の夫々は、データセットにアクセスする要求がそのデータセットを修正する かどうかを、独立して記録する。NDC位置22、26A、26B、202又は 204Aがデータセットにアクセスする各要求を処理する時、それは要求された 操作を他の全ての上流NDC位置に於けるデータセット上で実行されている操作 と比較する。もし一つのデータセットにアクセスしている多数の上流NDC位置 があり、それ等の何れかがデータセットを書き込んでいれば、CWS状態が存在 する。NDC位置26A又は202がCWSを検出するやいなや、NDC位置2 6A又は202は上述のようにCCSであることを宣言しなければならない。各 NDC位置22、26A、26B、202及び204AがCWS状態を検出でき るようにするため、各上流NDC位置206、204A、204B、20 2、24、26B及び26Aは、その下流NDC位置がアクセスの形式、即ち、 データセットを修正しない「読み取り」アクセス又はデータセットを修正する「 書き込み」アクセスであって、NDC顧客終端位置206、204B又は24に 於けるデータセットに対してなされるもの、を通知されているようにしておかね ばならない。各下流NDC位置204A、202、26B、26A及び22は、 その上流NDC位置がそれに提供する情報を、下流NDC位置204A、202 、26B、26A又は22が上流NDC位置に於けるチャンネル116の死亡を 通知されるまで、記録及び保存しなければならない。 下流NDC位置の情報 もし顧客作業端末42のような顧客が新しい形式のアクセス、例えば、前の全 てアクセスが「読み取り」操作であった時、「書き込み」操作でデータセットに 対してなすアクセスでデータセットにアクセスし始める場合、顧客からの要求に 応答するNDC位置26A、26B又は24は、下流NDC位置22、26A又 は26Bに通知しなければならない。通常、この通知は、NDC位置26A、2 6B又は24が下流NDC位置22、26A又は26Bからデータセットへのア クセス(NDC_LOADメッセージ)を求める時、自動的に起こる。各NDC 位置24、26B及び26AはそのNDCバッファー129に無いデータのみを 求めるので、各逐次NDC位置24、26B又は26Aによって求められるデー タは、それから求められたものから変わり得る。しかしながら、データセットに アクセスする要求の性質は変わらない。顧客作業端末42のような顧客からND C顧客終端位置24へのデータセットを「読み取る」要求は、それがNDC位置 からNDC位置へ下流に伝搬するとき、「読み取り」操作のままである。同様に 、データセットを「書き込む」要求は、それが下流に伝搬するとき、「書き込み 」のままである。 しかしながら、もしデータセットのイメージがデータセットを読む要求に応答 して投影されていれば、そしてもし顧客がその時NDC位置 26A、26B又は24のNDCバッファー129以内に全体として含まれてい る領域内のデータセットの修正を求めるのであれば、下流NDC位置22、26 A又は26Bから如何なる追加のデータも要求されない。しかしながら、これが 起こっても、他のNDC位置に於いてデータセットにアクセスしている他の顧客 は又、データセットを書くことを求めているかも知れないから、データセットは 直ちには書かれ得ない。二箇所の顧客が同一のデータセットを同時に書く場合、 同一に命名されたデータセットの二つの投影イメージが生じるだろうし、これ等 は極めて有り得ることとして異なっているだろう! 従って、もし顧客が、データセットを読む要求に応答してNDC顧客終端位置 24のNDCバッファー129に既に負荷されているデータにのみオーバレイす るデータセットの投影されたイメージ上で書き込み操作を実行しようとすれば、 NDC位置24は通告メッセージを下流NDC位置26B、26A又は22に送 らなければならない。上流NDC位置26A、26B又は24からの通告メッセ ージは、下流NDC位置22、26A又は26Bから如何なるデータをも要求し ない。通告メッセージは単に下流NDC位置22、26A又は26Bに、書き込 み操作が今上流NDC位置26A、26B又は24に於けるデータセット上で実 行されていることを伝える。 NDC位置26B又は26Aが、示唆的に又は明瞭に、上流NDC位置26B 又は24に於いて書き込み操作が実行されているということを通知された後、も し上流NDC位置26B又は24に於けるこのデータセット上の活動がNDC位 置26A又は26Bに於いて既に支持されている活動の型と異なっていれば、N DC位置26A又は26Bは通告メッセージをNDCサーヴァー終端位置22に 向かって更に下流に転送しなければならない。 NDC位置からNDC位置へ下流に伝搬する通告メッセージは、何れかのND C位置に於いて、拒絶されるかも知れない。もし通告メッセージが下流NDC位 置によって拒絶されると、拒絶はそれが要求の発端の NDC位置の顧客インターセプト・ルーチン102に達するまで伝搬する。通告 メッセージの拒絶を受け取ると、顧客インターセプト・ルーチン102はバック オフし、チャンネル116と請求し、NDCバッファー129の中に現在有るデ ータのイメージをリコールするか又は不能化するため、既に到達しているか又は 極めて間近に到達するリコール又は不能化メッセージを許容する。 上流位置構造 上流NDC位置26A、26B又は24に於けるデータセット上で起こってい る活動に関する情報を受け取るNDC位置22、26A又は26Bは、この情報 を記録し、保存しなければならない。図14は、上流位置に於けるデータセット 上で起こっている活動に関する情報を記録し、保存するためにNDC位置22、 26A、26B、202又は204Aによって用いられる上流位置構造182を 描写している。各NDC50は、約16〜20バイトのRAM内に領域を要求す るためメモリ割当ルーチン(Unix malloc()ルーチンのような)を 呼び出すことによって要求されるような上流位置構造182を創生する。NDC 50は、それが上流位置構造182を創生した上流NDC位置から死亡通知を受 け取ると、各上流位置構造に対して割り当てられたRAMをフリー・メモリ・プ ールに返還する。 もしNDC位置22、26A、26B、202又は204Aが同一データセッ トに多数の上流接続をもつなら、それは同一数の例の上流位置構造182、各上 流NDC位置に付き1個、をもつだろう。上流位置構造182は、各上流位置構 造182に於いて*next要素を用いて共にリンクされている。データセット に対するチャンネル116内の*uss要素は、上流位置構造182のリスト中 第一の上流位置構造182を指す。リスト中の最後の上流位置構造182に於け る*next要素は、NULL値が割り当てられている。NULL値は、NDC 顧客終端位置24に於けるチャンネル116中の*uss要素に対して割り当て られ、それ以上 の上流には如何なる位置も無いことを表示している。 上流位置構造182の他の要素は: 〇 上流NDC位置のアドレスであるupstream state; 〇 このNDC位置が上流NDC位置の存在を考える状態である current_state; 〇 リコール/不能化メッセージに対するその応答に於いて上流 NDC位置によって返還されるactual state; 及び 〇 リコール/不能化操作中、その操作が上流NDC位置に呈示 される迄起こるエラー状態を保存するerror。 チャンネル死亡通知 下流NDC位置22、26A、26B、202又は204Aは何時でも、その 上流NDC位置に於いて実行されている活動の型を知らせられていなければなら ない。NDC位置22、26A、26B、202又は204Aから上流のチャン ネル116が死亡しようとしている時、それ等はそれ等の下流のNDC位置に知 らせねばならない。チャンネル116が死亡する時、それはこれまで実行してき た如何なる形式の活動をも消滅させる。 もし現在CCSである下流NDC位置26A又は202が上流NDC位置に於 けるチャンネル116から死亡通知を受け取ると、現在のCCSはCWS状態が もはや存在しないと決定できる。これが起こると、CCSはCCS機能を廃止し 、データにアクセスする要求に応答して、データのイメージが上流NDC位置に 再投影されるのを許容する。 もしチャンネル116がその唯一の上流NDC位置26A、26B、24、2 02、204A、204B又は206から死亡通知を受取り、データセットにア クセスしている顧客作業端末42のような局所的顧客が無ければ、チャンネル1 16は直ちに死ぬ。死亡中に、各チャンネル11 6はそれ自身の死亡通知をその下流NDC位置に発行する。 リコール/不可能メッセージ もしNDC位置22、26A、26B、202又は204Aが上流NDC位置 からのあらゆる連絡の中で示唆的に生ずる通知メッセージを受け取れば、NDC 位置22、26A、26B、202又は204Aはチェックして、この型の活動 は上流NDC位置に於いて既に支持されているかどうかを決定する。もしこの形 式の活動が上流NDC位置で未だ支持されていない場合、その新しい形式の活動 はCWS状態を創生してしまったかも知れない。 もしNDC位置26A又は202はCWS状態が今、創出されたことを決定し た場合、それはデータセットの上流投影の全てを直ちに不能にし、上流NDC位 置206、204B又は24に於いて修正された何れかのデータをリコールしな ければならない。全ての上流投影を不能にし、何れかの修正データをリコールす るため、下流NDC位置26A又は202はその上流位置構造のリスト182を 所有し、不能化メッセージをデータセットを読み込んでいる各上流NDC位置2 06、204B及び/又は24に送るか、或いはリコールメッセージをデータセ ットを書き込んでいる単一の上流NDC位置206、204B又は24に送る。 データにアクセスするその要求がCWS状態を創出したNDC位置206、2 04B又は24を暫くの間無視して、NDC位置202又は26AはそれがCC Sにならなければならないことを決定した時、データセットを読み込んでいる一 つ以上の顧客作業端末42のみが有り得るか、或いはデータセットを書き込んで いる単一の顧客作業端末42のみが有り得る。CWS状態に応答して、新しく宣 言されたCCSは、単一のリコールメッセージを上流NDC位置に発行するか、 或いは一つ以上の不能化メッセージを発行する。CWS状態が起こる態様は、C CWが単一のリコールメッセージ又は一つ以上の不能化メッセージの何れを送出 するかを決定する。 もし一つ以上の顧客作業端末が読み込むためにデータセットにアクセスしてい て、更に顧客作業端末がその後データセットを書き込み始めた場合、新しく宣言 されたCCSは不能化メッセージをCWS状態を創出したもの以外の全ての上流 NDC位置に送出し、次にCWS状態によって今、創生された要求に適切に応答 する。もしCWS状態を創生したNDC顧客終端位置がそのNDCバッファー1 29中にデータセットを書き込むために必要な全てのデータの投影されたイメー ジを有するなら、新しく宣言されたCCSは単にNDC顧客終端位置に、データ の投影イメージは、書き込みの完了の上で、CCSにフラッシュバックされなけ ればならないことを通知する。もしCWS状態を創出したNDC顧客終端位置が 、そのNDCバッファー129がデータセットを書き込むために必要な全てのデ ータの投影イメージを欠如しているが故に、下流NDC位置から追加データを要 求していれば、新しく宣言されたCCSはNDC顧客終端位置に必要なデータを 供給するために如何なる必要事項をもなし、そして同時にNDC顧客終端位置に 、それがデータの投影イメージを、書き込み操作の完了の上で、CCSにフラッ シュバックしなければならないことを指示する。 もし単一の顧客作業端末がデータセットを書き込み中であり、そして他の顧客 作業端末が、何等かの目的でデータセットにアクセスすることによって、その後 CWS状態を創出したなら、新しく宣言されたCCSは単一のリコールメッセー ジをデータセットを書き込んでいるNDC顧客終端位置に発行し、NDC顧客終 端位置からCCSにフラッシュバックされるべきデータセットの投影イメージを 待ち、そして更にCWS条件を創出した要求に応答するために必要な如何なる事 項をもなす。 もし顧客作業端末42のような数個の顧客が回路網に跨って広く分布され、そ して同時にCWS状態をもたらす要求を提起するなら、各NDC位置からのメッ セージは、他のNDC位置から結局はCCSになる何れかのNDC位置へのメッ セージと競合する。CCSになるNDC位置に達する第一のメッセージは始めに 処理され、後から到達するメッセージの更なる処理を、それが完全に処理されて しまうまで、遮断する。第一のメ ッセージの後に来る全てのメッセージは、結局はCCSになるNDC位置へのそ れ等の到達の順に順番待ちをする。第一のメッセージが完全に処理された後、こ れ等の後から来るメッセージは、到達の順に次々と処理される。ついには、ND C50はCWS状態を創出するメッセージを処理する。CWS状態が起こる時、 NDC50は直ちにリコール/不能化メッセージを上流のNDC位置に送る。新 しく宣言されたCCSに於いて順番待ちをしている他のNDC位置からの何れの メッセージも順に処理され、夫々は、チャンネル116がこれ等のメッセージを 発行するNDC位置をリコールしたり、不能化をするのに多忙であると云う理由 で、拒絶される。 CWS状態に応答することは、必ずしも二種類のメッセージ、即ち、不能化メ ッセージ及びリコールメッセージを要求しない。上流のNDC位置がそれ等のキ ャッシュを不能化せしめ、上流NDC位置に於いて不能化プロセスの一部として 汚染データをCCSにフラッシュバックせしめる単一形式のメッセージで十分で あろう。しかしながら、二つの区別された形式のメッセージの使用は、上流のN DC位置がそれ等のチャンネル116の現在の状態に付いてそれ等の一致を確認 することを許容する。 上流及び下流メッセージ リコール及び不能化メッセージは、それ等を転送するNDC位置から上流に流 れるので、「上流」メッセージと言及される。状況問い合わせは他の型の上流メ ッセージである。死亡通知に対するものは除いて、他の全ての要求は、顧客作業 端末42のような実の顧客によって開始され、常に下流に流れる。かかるメッセ ージは総称的に「下流」メッセージと言及される。 もし多数の上流NDC位置が在れば、数個のリコール/不能化メッセージは全 て、約同時に非同期的に転送される。これ等のメッセージを発生するプロセスは その時、このNDC位置に於けるチャンネル116に対する迫加メッセージの処 理を、全ての上流NDC位置が応答を終えるまで又は応答に対して許容される時 間が終了するまで、遮断する。もしND C位置が許容された時間以内に応答しないならば、中断エラーが適切な上流位置 構造182に記録される。もし中断エラーが記録されている上流チャンネル11 6が後になって下流チャンネル116との連絡を再確立しようとすると、この上 流チャンネル116は自身がデータセットから切断されていることを通知される だろう。もし通路に沿った顧客がデータセットを読み込んでいるだけならば、彼 らが分裂に付いて通知されずに、データセットの処理を継続することは有りそう である。しかしながら、もし顧客の一人が、多分通信不良によって回路網から切 断されているNDC位置に於けるNDCバッファー129以内に記憶されたイメ ージを修正してい、データセットの修正時間がデータセットは、サービスが中断 されたので、中断されていることを指摘すれば、そして修正されたデータをND Cサーヴァー終端22にフラッシュバックしようとする試みがなされば、フラッ シュ要求は拒絶されなければならない。フラッシュ要求の拒絶は全ての上流ND C位置に間違いなく伝搬し、エラー・メッセージが顧客作業端末42のような顧 客に例示せしめられる。 通信不良に加えて、他の型のエラーもリコール/不能化操作中、可能である。 リコール/不能化操作中、上流の通路に沿って起こるどんなエラーも適切な上流 位置構造に記憶され、後で下流NDC位置に呈示される。顧客作業端末42のよ うな顧客とNDCサーヴァー終端位置との間の直接、接続の外側で起こるエラー は、NDC顧客終端位置24に於いて顧客によってデータセット上で実行される 操作の結果に影響し得ない。上流のエラーは、エラーを蒙る通路に沿ったNDC 位置がデータセットへのアクセスを要求する次の時に、処理される。 RLCCS機構 データセットの整合を保証すると共に同時に極めて良好な応答時間を顧客の作 業端末42のような顧客からの要求に提供するため、本発明はRelocapa ble Consistency ControlSites(「RLCCS」 )−位置替え可能整合制御位置と呼ばれる 概念を具現する。RLCCSの下では、NDCサーヴァー終端位置22からCW S状態を検出するNDC顧客終端位置24への経路に沿った第一のNDC位置は データセットのCCSとなる。もしCWS状態が存在しなければ、解決されるべ きデータセット整合問題がないので、CCSは存在しない。しかしながら、CW S状態が起こると、全ての投影イメージ間の整合を維持するのに責任のある一つ のNDC位置のみが存在し得る。この位置は常に、多数の上流接続を有する第一 の上流NDC位置となろう。 RLCCSは、最大量の非分布整合制御を可能にするのに可能な最も拡張した 位置にCCSを位置づける手段である。RLCCSは、CWS状態から起こるデ ータセットの競合を最も効率的に解決するようにCCSの位置づけを確保する。 RLCCSは、ファイルレベル分布キャッシュに於いて非分布キャッシュ整合制 御戦略を具現する。NDC位置26Aと202のようなキャッシング位置の間に メッセージを通過せしめる代わりに、種々のNDC位置に於いてキャッシュされ たデータの無矛盾的な投影を維持するため、各NDC位置はその上流NDC位置 の夫々に於いて起こる活動の型を監視し、CWS状態が起こった時、これ等の位 置に於けるキャッシングを不能化する。 もしNDC位置がその上流NDC位置に於ける活動はCWS状態を創出すると 決定したら、そのNDC位置はファイル156に対するCCSになり、リコール /不能化メッセージをその上流NDC位置の全てに発行する。各上流位置は、リ コール/不能化メッセージを受け取った上で、その上流NDC位置の全てを、新 しく確立されたCCSからのメッセージに応答する前に、リコールまたは不能化 する。リコール活動が完了した後、CCS及びその下流に有る全てのNDC位置 はキャッシングのために可能になり、CCSの上流に有る全てのNDC位置は、 それ等を通過するファイルデータのためのコンジットとして動作する。 CCSの位置替えは、もしそれが必要になれば、CWS状態を創出する要求を 受け取った時のみ、実行される。以下に記述されるように、CCSを位置替えす る二つの基本的方法が有る。 CCSの上流に於ける位置替え 上流の位置替えはCCSを、現在のCCSより、顧客作業端末42のような顧 客により近いNDC位置に移動する。データにアクセスする要求に対するDTP 応答は、NDC位置からNDC位置へ上流に進んでいるデータに伴う「使用券」 を含む。DTP使用券は、データのイメージがデータを下流から取り込ませた要 求に応答するのに使われた後、それがNDC位置にキャッシュされたままかどう かに依って、USE_ONCE又はUSE_MANYと標識される。データのイ メージに対するDTP使用券は、その旅路をNDCサーヴァー終端位置から顧客 位置に向かって始める時は常にUSE_MANYと標識される。しかしながら、 データのイメージがNDC位置からNDC位置へ上流に移動するにしたがって、 その使用はそれが通過する何れかのNDC位置に於いてはUSE_ONCEに限 定される。かくして、データのイメージがファイル156に対する現在のCCS を通過する時、そのNDC位置に於けるチャンネル116はデータのDTP使用 券をUSE MANYからUSE ONCEに変える。 ファイル156のイメージが引き続くNDC位置を通して投影されると、もし DTP使用券がUSE_MANYと標識されていれば、データのイメージはイメ ージがNDC位置を横断するチャンネル116に割り当てられたNDCバッファ ー129内にキャッシュされたままである。何らかのデータが、NDC位置を通 過した後、チャンネル116に割り当てられたNDCバッファー129内にキャ ッシュされたままかどうかは、局所位置によって専ら決定される。データの投影 されたイメージをNDC位置に維持することはリソース割当問題であって、各N DC位置はその固有のリソースの制御を維持しなければならない。しかしながら 、もしDTP使用券がUSE_ONCEと標識されていれば、データの何れも、 NDC位置を横断した後、チャンネル116に割り当てられたNDCバッファー 129以内にキャッシュされたままでいない。 死亡通知によるCCSの上流での位置替えは、現在のCCSがそ れはCWS活動に従事する多数の上流NDC位置をもはや有しないかどうかを認 知することのみを要求する。それが起こると、前にはCCSであったNDC位置 は単にDTP使用券USE_ONCEの標識を止める。DTP使用券の標識に於 けるこの変化は、上流NDC位置が将来それ等に投影され得るファイル156の 何らかのイメージをキャッシングし始めるのを許容する。 しかしながら、もし上流NDC位置が現在、CWS状態を創出している更なる 上流NDC位置を有していれば、そのNDC位置は新しいCCSになることを宣 言し、DTP使用券をUSE_MANYからUSE_ONCEに変更し始めるだ ろう。こうして、本発明のNDC50は上流に有るCCSの位置替えを促進する 。 CCSの下流の於ける位置替え 下流でCCS位置替えすることは、CCSをNDCサーヴァー終端22により 近いNDC位置に移動する。図15に関して、もしどの顧客もファイル156に アクセスしようとせず、そしてLAN44B上の顧客がNDCサーヴァー終端位 置22に在るファイル156の書き込みをするアクセスを要求すれば、ファイル 156の投影イメージはNDC位置22からNDC位置26A、202、204 Aを通してNDC位置206に流れる。顧客は今やNDC顧客終端位置206に 在るファイル156の投影を、無制限数の同時プロセスをもって、各操作以前に 下流のNDC位置204A、202又は26Aの何れか又はNDCサーヴァー終 端位置22でチェックするNDC顧客終端位置206なしに、読み取り及び書き 込みをすることができる。NDC顧客終端位置206は、そこからのデータを負 荷又は放出するためのみに、下流のNDC位置204A、202、26A及び2 2と通信する必要がある。 もしNDC位置204Bに接続されたLAN44A上の顧客がファイル156 にアクセスして、その書き込みを始めるなら、NDC顧客終端位置2044Bは 、その時NDC LOADメッセージを中間NDC位 置202に送るチャンネル116を請求する。チャンネル116からのNDC_ LOADメッセージは、NDC位置204Bが書き込み操作によってオーバーレ イされるだろうデータを負荷していることを指摘するだろう。このNDC_LO ADメッセージを処理した上で、NDC位置202はチャンネル116がファイ ル156のために既に存在していることを見いだす。現存のチャンネル116は NDC位置204Aを現在の上流NDC位置と識別し、又ファイル156のため のチャンネル116が現在可能になっていることを指摘する。状態のこの組み合 わせは、ファイル156のためのCCSが、もし何れかが有れば、NDC位置2 04A又はその上流のNDC位置の何れかに在ることを示唆している。上述のよ うに、NDC位置202に於ける上流位置構造182は、ファイル156にアク セスする全ての上流NDC位置を識別するだけでなく、ファイル156にアクセ スする各NDC位置に起こったファイル操作の型を指摘する。これ等の数個の事 実、即ち、CCSの状態及びCCSはNDC位置202から現在下流に現在位置 していないということは、位置202が自身CCSであると宣言すべきことを可 能にする。 書き込み要求をNDC位置204Bから阻止しながら、NDC位置202はフ ァイル156の投影イメージをキャッシュしている全ての上流NDC位置をリコ ール又は不能化する。上述のように、「不能化」は、ファイル156が読み込ま れていたのみのどんなNDC位置に対しても十分である。しかしながら、もしフ ァイル156のそれ等のイメージを修正している何らかの位置があれば、それ等 の汚染データは新しいCCS、NDC位置202にフラッシュバックしなければ ならない。従って、NDC位置202はリコールメッセージをNDC位置204 Aに送る。 NDC位置204AがNDC位置202からのリコールメッセージに応答する 前に、NDC位置204Aはその固有のリコールメッセージをNDC顧客終端位 置206に上流へ送る。上流NDC位置の全てがNDC位置204Aからのリコ ールメッセージに応答した後に、NDC位置204AはNDC位置202に戻っ て応答し、NDC位置204A又はそれ から上流のNDC位置によって汚損されているどんな汚染データをも送出する。 NDC位置204AがNDC位置202からのリコールメッセージに応答した 後、NDC位置202はNDC位置204Bからの書き込み要求の処理を開始す ることができる。NDC位置202は今や、ファイル156に対するCCSであ ると自ら宣言している。NDC位置202は今や、ファイル156に対してその 固有の顧客によって及び全ての上流NDC位置、例えば、NDC位置204A、 204B及び206の顧客によって要求された全ての読み取り/書き込み操作を 順番付ける任にある。 中間NDC位置202は少なくとも一つがファイル156を書き込んでいる上 流NDC位置204A及び204Nに多数の接続をもつCCSのままであるが、 如何なるファイルデータ又はメタデータも中間NDC位置202の上流でキャッ シュされないであろう。もし、書き込みのためにファイル156にアクセスして いた全てのNDC位置がファイル156から切断された後、CCSとしての中間 NDC位置202がファイル156を読み込んでいる一つ以上の上流NDC位置 を有するなら、CCSは上記のように上流で位置替えするだろう。 産業上の利用性 回路網構成のディジタル・コンピュータ・システム内で、ファイルサーヴァー 、ゲートウェイ、ブリッジ及びルークは全て、NDC位置になる潜在的候補であ る。NDC50は、異なる環境に容易にポートされ得るソフトウェア・モジュー ルである。NDC50は最小250kバイトのRAMを要求し、その中50kは コードであり、残りは種々のデータ構造及びバッファーに対して割り当てられる 。各チャンネル116は約500バイトのRAMを占める。かくして、1メガバ イトのRAMは約2千チャンネル116を収容することができる。現在のメモリ の値段で、この量のRAMは十分50ドル以下の費用になる。図4に例示されて いるように、各チャンネル116に含まれるサブチャンネルに対する構造はポイ ンタを 18個のNDCバッファー129を提供する。発明のより好ましい実施例に於い て、各NDCバッファー129は8kバイトの投影データを記憶する。かくして 、各チャンネルに連合する18個のNDCバッファー129は、18x8k、即 ち、144kバイト迄のイメージを記憶できる。かくして、追加のサブチャンネ ル152が無いとして、各チャンネル116は、長さに於いて144kバイト迄 の何らかのデータセットのデータ及びNDCメタデータの両方である完全な投影 を収容できる。 たった250kバイトのRAMを有するNDC位置は或限定された応用のみに 対して有用であろう。各位置は通常、そのNDC50に対して4〜256の何処 かのメガバイトのRAMを割り当てる。例えば、NDCデータ構造に対して32 メガバイトのRAMを割り当てる128メガバイトNDC位置は、50,000 以上の同時接続をデータ・コンジット62に対して維持すると共に96メガバイ トのデータイメージ投影をも又記憶できる。大量のデータセットにアクセスする ことは1以上のチャンネル116を要求できるので、同時データセット接続は、 現在アクセスされているデータセットの混合に依って、変わる。 単一NDC位置にパックされた大多数のチャンネル116を以て、新しい要求 を特定のデーセットに対するチャンネル116に速やかに接続し又は、もしも何 も無ければ、最遠に用いられた(最非最近使用)チャンネル116を請求するタ スクは威圧行為と見なされるかもしれない。しかしながら、NDC50は、この 問題の解答を容易化する二つの機構を提供する。チャンネル・ハッシュ・リスト 及びチャンネル・フリー・リストは、何か特定なチャンネル116又は最遠に用 いられた(最非最近使用)チャンネル116を速やかに見いだし得るようにチャ ンネル116を連糸する方法である。更に、好ましくは各NDC位置に割り当て られたハッシュ・バケット数は、各ハッシュ・バケット内に平均で4チャンネル 116が有るように、調節される。各ハッシュ・バケット内のチャンネル数を4 に制限すれば、NDC位置は現在特定のデータセットへのアクセスに割り当てら れているチャンネル116を有しているかどうかが速やかに決定で きる。 もしNDC顧客終端位置24は、それが又NDCサーヴァー終端位置であるデ ータセットにアクセスする要求を顧客作業端末42から受け取ると、そしてもし その要求が現在、NDC位置24のNDCバッファー129に投影されていない データにアクセスしようとしていれば、顧客インターセプト・ルーチン102に 於いて測定されるような第一の要求に対する応答の遅れは約25ミリ秒(NFS に対するものと約同じ)である。しかしながら、一旦NDC50が応答を顧客作 業端末42に送ると、位置はインテリジェントな、効率的且つアグレッシブな読 み取りを前に採用し、顧客作業端末42がファイルに順次アクセスし続ける限り 、顧客作業端末42がそれにアクセスするのを求める前に、データはNDC顧客 終端位置24のNDCバッファー129に常に投影されるだろう。データをこの ように予め取り込むことによって、顧客の作業端末42から最も適従の要求に対 する応答は、NDC位置24がその要求を受け取った時から100μ秒以内に、 NDC顧客終端位置24から顧客作業端末42へ送られ得る。 もし顧客作業端末42が、NDC位置26B、26A又は22のような、ND C顧客終端位置以外のNDC位置に於けるデータセットへアクセスすることを要 求すれば、顧客作業端末42からの第一の要求に応答することは、その要求に応 答しなければならない各NDC位置に対して追加の25μ秒の遅延を必要とする 。しかしながら、NDC顧客終端位置24が顧客作業端末42に対してデータを 予め取り込もうとするので、NDC位置24は次の要求に対する応答を顧客作業 端末42から上記のように約100μ秒以内に発送するだろう。 NDC50の現在のところより好ましい実施例はソフトウェアで具現されるが 、NDC50のルーチンをリード・オンリー・メモリ(「ROM」)に記憶する ことによって、それはファームウェアに於いて具現されてもよい。更に、NDC 50の操作は、LAN44を具現するのに用いられるどんな通信ハードウェア及 びプロトコルと、そしてハードディスク32、34及び36にアクセスするため に用いられるファイルシステムと も独立している。類似的に、NDC50の操作は、DTPメッセージ52がND C位置の対22−26A、26A−26B又は26B−24の間を通過する通信 ハードウェア及び通信プロトコルと独立している。DTPメッセージ52を交換 するための通信ハードウェア及びプロトコルは、VMEバスのような背面バス、 エサーネットのような局面回路網及びあらゆる形式の遠距離通信を含む。従って 、NDC位置間に交換されるDTPメッセージ52は、サテライト・データ・リ ンク、ルータ及びブリッジを含むゲートウェイを通過することができる。 位置22、26A、26B及び24のような種々のNDC位置が或距離を以て 互いに離れているものと考えられる分布型マルチプロセッサコンピュータ・シス テムの文脈でNDC50が以上記述されてきたが、NDC50はコンピュータの 回路網を組み込んだ単一のコンピュータ・システム内で有効に適用され得る。図 16は、一般化された参照番号300によって言及されたファイル・サーヴァー (file server)を描写している。図1に描写されたディジタル・コ ンピュータ・システムと共通な図16中の要素は、二重プライム「”」記号で区 別された同一参照番号を有する。ファイル・サーヴァー300は、その全操作を 監督するためのホスト・プロセッサ302を含む。ファイル・サーヴァー内で、 内部バス、多分VMEバスは主ホスト・プロセッサを一対の記憶プロセッサ30 6A及び306Bに結合する。記憶プロセッサ306A−Bは複数のハードディ スク32A”から32F”の操作を制御する。内部バス304は又、一対のファ イル・プロセッサ312A及び312B、一対の共用の一次メモリ314A及び 314B、及び複数のエサーネットプロセッサ316Aから316Dをホスト・ プロセッサ302に、記憶プロセッサ306A−Bに及び互いに結合する。 NDC50を何等組み込まないファイル・サーヴァー300の正常な動作中、 エサーネット・プロセッサ316A−Dは、図1に例示されている顧客作業端末 42のような顧客からディスク32A”〜32F”に記憶されたデータにアクセ スする要求を受け取る。エサーネット・プロセ ッサ316A−Dによって受け取られた要求はファイル・プロセッサ312A− Bの一つに転送される。データにアクセスする要求を受け取ると、ファイル・プ ロセッサ312A又は312Bは内部バス304を介して記憶プロセッサ306 A又は306Bと連絡し、データのイメージをディスク32A”〜32F”から 一次メモリ314A−Bに転送する。要求されたデータのイメージが一次メモリ 314A−Bに転送された後、要求を受け取ったエサーネット・プロセッサ31 6は次に、要求されたデータを顧客に転送し、それによってその要求に応答する 。 ファイル・プロセッサ312A−Bは、一次メモリ314A−Bに在るハード ディスク・キャッシュを組み込むことができる。ハードディスク・キャッシュが ファイル・サーヴァーに在ると、それはファイル・プロセッサ312A−Bの一 つと記憶プロセッサ306A−Bの一つの間の如何なる通信なしに、データにア クセスする要求のいくつかに応答することができる。しかしながら、たとえファ イル・サーヴァー300がハードディスク・キャッシュを含もうとも、ファイル ・サーヴァー300の動作中、エサーネット・プロセッサ316A−Dによって 受け取られたデータにアクセスする各要求に応答すると、エサーネット・プロセ ッサ316A−Dとファイル・プロセッサ312A−Bとの通信は必ず必要とな る。即ち、たとえ要求に応答するためにエサーネット・プロセッサ316A−D によって必要とされるデータが既に一次メモリ314A−B中に物理的に在ると しても、データへのアクセスを得るためには、データはファイル・プロセッサ3 12A−Bの制御の下にハードディスク・キャッシュに記憶されているので、エ サーネット・プロセッサ316A−Dは先ずファイル・プロセッサ312A−B と通信しなければならない。 ファイル・サーヴァー300の全遂行をたかめるため、エサーネット・プロセ ッサ316A−Dの夫々は、NDC顧客終端位置として動作するNDC50を組 み込むことができる。エサーネット・プロセッサ316A−Dに含まれる各ND C50は、一次メモリ314A−B内に割り当てられた一組のNDCバッファー 129にアクセスする。エサーネット・ プロセッサ316A−Dに含まれるNDC50に加えて、ファイル・サーヴァー 300は又、ファイル・プロセッサ312A−B中でNDCサーヴァー終端位置 として動作する他のNDC50も含む。ファイル・プロセッサ312A−B内の NDC50は又、一次メモリ314A−B内に割り当てられた一組のNDCバッ ファー129にアクセスする。 そのようにNDC50を組み込むファイル・サーヴァー300に於いて、もし エサーネット・プロセッサ316A−Dの一つがそのNDC50のNDCバッフ ァー129に既に有るデータにアクセスする要求を受け取れば、そのNDCは、 ファイル・プロセッサ312A−Bに有るNDC50と通信することなく、要求 に直ちに応答することができる。類似的に、もしエサーネット・プロセッサ31 6A−Dの一つが、そのNDCバッファー129には無いがファイル・プロセッ ッサ312A−B中のNDC50のNDCバッファー129内に有るデータにア クセスする要求を受け取るならば、それ等のNDC50は又、ファイル・プロセ ッサ312A−Bによって制御されるハードディスク・キャッシュにアクセスす ることなく、その要求に直ちに応答できる。かかる状況下では、ファイル・プロ セッサ312A−B中で動作するNDC50は、単にそれに一次メモリ314A −B内のデータの位置に対するポインタを供給することによって、エサーネット ・プロセッサ316A−D中で動作するNDC50からの要求に直ちに応答する ことができる。かくして、NDC50をエサーネット・プロセッサ316A−D とファイル・プロセッサ312A−Bの両方に採用することによって、一次メモ リ314A−B内に位置するNDCバッファー129中に物理的に存在するデー タは、ファイル・プロセッサ312A−Bのよって制御されるハードディスク・ キャッシュにアクセスする如何なる必要をも除去することによって、顧客作業端 末42のような顧客からの要求に応答するために、より速やかにエサーネット・ プロセッサ316A−Dに対して利用可能になる。 本発明は現在のところより好ましい実施例に付いて以上記載されてきたが、か かる開示は純粋に例示的であり、限定的に解釈されるべきで ないことが理解されるべきである。従って、本発明の精神及び範囲を逸脱するこ とがなく、発明の種々の変更、修正及び/又は代替的応用は、疑いもなく、以上 の開示を読了した後、当業技術分野に於いて熟練した者に示唆されるであろう。 従って、以下の請求項が本発明の真の精神及び範囲内に入る全ての変更、修正又 は代替的応用を包括するものと解釈されることが意図される。
───────────────────────────────────────────────────── 【要約の続き】 C(50)は、チャンネル(116)に記憶されたプロ ファイル・データを用い更なる要求を予測する。

Claims (1)

  1. 【特許請求の範囲】 17.複数のNDC位置を含み、各NDC位置はNDCバッファーを有 するNDCを含むディジタル・コンピュータ回路網に於いて、記憶されたデータ セットのイメージをNDCサーヴァー終端位置から複数のNDC顧客終端位置へ 、顧客位置から前記NDC顧客終端位置へ転送されるかかるデータセットにアク セスする要求に応答して、投影する方法であって、 (a)前記NDCは前記記憶されたデータセット中のデータにアクセス する前記要求を受取り; (b)前記NDCはこのNDC位置に於いて前記NDCバッファーをチ ェックして、前記データセットから要求されたデータの投影イメージが既にそこ に有るかどうかを決定し; (c)もしこのNDC位置の前記NDCバッファーが前記データセット から要求された全てのデータの投影イメージを含まず、そしてもし前記要求を受 け取る前記NDC位置が前記データセットに対する前記NDCサーヴァー終端位 置でなければ、このNDC位置の前記NDCはデータに対する要求をこのNDC 位置から下流へ現在のNDC位置より前記データセットに対する前記NDCサー ヴァー終端位置に近い他のNDCに転送し; (d)もしこのNDC位置の前記NDCバッファーが前記データセット から要求された全てのデータの投影イメージを含まず、そしてもし前記要求を受 け取る前記NDC位置が前記データセットに対する前記NDCサーヴァー終端位 置であれば、このNDC位置の前記NDCは前記記憶されたデータセットにアク セスして、前記要求されたデータのイメージをそのNDCバッファーに投影し; (e)前記要求を受け取る下流NDC位置の前記NDCバッファーが全 ての要求されたデータの投影イメージを含む迄、工程(a)から(d)を繰り返 し; (f)各逐次NDC位置は、全ての前記要求されたデータの投影イメー ジを獲得して、それから要求されたデータを下流へそれが前記要求を受け取った NDC位置に、前記要求されたデータが前記顧客終端位置に到達する迄、返還し ;及び (g)前記NDC顧客終端位置は、前記要求されたデータを受け取った 上で、前記要求されたデータを前記顧客位置に返還する工程から成る方法。 20.請求項17の方法であって、更に次の工程; (h)各NDCは前記データセットにアクセスする最初の要求を受け取 った上で、チャンネルを請求し、そして該チャンネルを指定して、前記データセ ットにアクセスするため処理要求に関連する種々のデータを記憶し; (i)前記NDCによって集められたデータをこのNDC位置の前記チ ャンネル内で記憶すると共に前記データセットにアクセスする要求を処理し;及 び (j)もし前記NDC位置がデータセットにアクセスする要求に応答す るために必要な前記方法の何れかの工程を実行しない時、NDC位置に於いて、 I.このNDC位置の前記チャンネルに記憶されたデータを周期 的に分析し、前記データセットにアクセスする将来の要求を予測できるかどうか を決定し; II.もしこのNDC位置の前記チャンネルに記憶されたデータの 前記分析が前記データセットにアクセスする更なる要求を予測できることを確認 したら、前記チャンネルに記憶されたデータを更に分析し、予測された将来の要 求が間もなくこのNDC位置に前記データセットにアクセスする他の要求を提供 できるかどうか及び前記NDCに有るデータの投影イメージが前記予測された要 求に直ちに応答するための十分なデータを含むかどうかを決定し;及び III.もし前記データセットにアクセスする予測された将来の要 求が間もなくこのNDC位置に前記データセットにアクセスする他の要求を提供 したなら、そしてもし前記NDCバッファーに有るデータの前記投影イメージが 前記予測された要求に直ちに応答するための十分なデータを欠如していれば、こ のNDC位置は、そのための要求を受け取る前に、前記データセットからのデー タを次の下流NDC位置から要求するから成る方法。 21.前記NDC位置は、データを前記次の下流NDC位置から要求す るに際して、前記顧客位置から前記NDC顧客終端位置によって受け取られた前 記データセットにアクセスする要求に応答して、前記NDC顧客終端位置によっ て前記要求顧客位置に返還されたデータの量より大きい量のデータを要求する請 求項20の方法。 25.請求項17の方法であって、更に次の工程: (h)各NDCは、前記データセットにアクセスする最初の要求を上流 NDC位置から受け取った上で、前記NDCが前記データセット上で実行されて いる活動の型を表示する情報を記憶する上流位置構造を、このNDC位置が前記 要求を受け取った前記上流NDC位置に於いて割り当て; (i)各NDCは、もし前記データセット上で起こっている活動の型が 前記セータセットに対して既に支持されているものと異なる場合、前記データセ ットにアクセスする要求を受け取った上で、メッセージをその下流NDC位置に 転送して、該下流NDC位置に前記データセット上で今起こっている新しい型の 活動を伝え;及び (j)各NDCは、メッセージを上流NDC位置から受取り、それにそ こに於ける前記データセット上で実行されている活動の型を伝えた上で、前記上 流NDC位置に対する前記上流位置構造中にかかる情報を記憶する から成る方法。 26.請求項25の方法であって、更に次の工程: (k)各NDCは、情報を局所顧客又は上流NDC位置から受取り、そ れにそこに於けるデータセット上で実行されている活動の型を伝えた上で、受け 取ったばかりの前記情報を前記データセット上で起こっている活動の型を記録す る前に記憶された情報と比較し;及び (l)もしNDCが、前記受け取ったばかりの情報の前記前に記憶され た情報とのその比較から、前記データセットは少なくとも二つの異なるNDC位 置によってアクセスされていて、それ等のNDC位置の一つは前記データセット にアクセス中であってそれにデータを書き込んでいることを決定すると、並行書 き込み共有(「CWS」)状態が起こり、前記NDCが自身を前記データセット に対する整合制御位置(「CCS」)であると宣言する から成る方法。 27.請求項26の方法で、前記NDCが自身を前記CCSであると宣 言した後、更に次の工程: (m)もし前記データセットにアクセスして、それを書き込む要求が前 記CWS状態を創出した場合、前記CCSが不能化メッセージを前記CWS状態 を要求により創出したNDC位置以外の全ての上流NDC位置に転送し、かかる 上流NDC位置がかかるNDC位置のNDCバッファーに記憶されたデータセッ トのどんな投影イメージをも不能化するよう指示し;及び (n)もしデータセットにアクセスしてそれを読み込む要求が前記CW S状態を創出した場合、リコールメッセージをデータを前記データセットに書き 込むため、該データセットにアクセスしている前記上流のNDC位置に転送し、 かかる上流NDC位置がかかるNDC位置のNDCバッファーに記憶された前記 データセットの前記投影イメージを前記CCS に返送するように指示する から成る方法。 28.請求項27の方法であって、更に次の工程: (o)前記データセットに対して自身が前記CCSであると宣言したN DCは、前記データセットにアクセスする全ての上流NDC位置に返還された前 記データと共に、各かかる上流NDC位置は、前記データが前記NDC位置を横 断した後、それ等のNDCバッファー内に前記データの投影イメージを維持しな いように指示する から成る方法。 29.請求項28の方法であって、更に次の工程: (p)前記データセットに対して自身が前記CCSであると宣言したN DCは、情報を局所顧客又は上流のNDC位置から受取り、それにそこに於ける 前記データセット上で実行されている型の活動の休止を伝えた上で、受け取った ばかりの前記情報を前記データセットに対する前記前に記憶された情報と比較し ; (q)もし前記NDCが、前記受け取ったばかりの情報の前記データセ ットに対する前記前に記憶された情報との比較から、このNDC位置はもはや前 記データセットに対する前記CCSとして機能する必要はないと決定した場合、 前記NDC位置は前記データセットに対して前記CCSとして機能することを止 め;及び (r)このNDC位置が前記データセットに対して前記CCSとして機 能することを止めた上で、前記データセットにアクセスしている上流NDC位置 の何れかがかかるNDC位置のNDCバッファー内で前記データセットからの何 らかの適従投影のイメージを維持することを許容するから成る方法。 30.最近宣言されたCCSによって上流に転送された不能化メ ッセージ又はリコールメッセージが一つのNDC位置に到達する前であって、該 NDC位置がそのNDCバッファー内に有る前記データセットの投影イメージを 有する時、かかるNDC位置は下流に自身が前記CCSであると宣言した前記N DC位置に向かうチャンネルを通して前記データセットにアクセスする要求を転 送し、前記データセットにアクセスする前記要求が下流に転送されて、既に前記 リコールメッセージ又は不能化メッセージを転送したNDC位置に到達する請求 項26の方法であって、更に次の工程: (o)前記リコールメッセージ又は不能化メッセージを上流に転送した 後前記データセットにアクセスする要求を受け取る前記NDC位置は、前記デー タセットにアクセスする要求を拒絶することによって前記要求に応答し; (p)各上流位置は、前記データセットにアクセスする要求を拒絶する 応答を受け取った上で、前記拒絶応答を逐次上流に、拒絶メッセージが前記デー タセットにアクセスする前記要求に対して前記顧客終端位置に達する迄、再転送 し;及び (q)前記拒絶メッセージを受け取った上で、前記NDC顧客終端位置 の前記NDCは前記チャンネルをリリースし、短時間待って前記下流CCSから の前記リコールメッセージ又は不能化メッセージが処理されるようにし、そして 前記データセットにアクセスする新しい要求を発生し、それを下流に転送する から成る方法。 31.請求項25の方法であって、更に次の工程: (m)前記データセットに対して自身が前記CCSであると宣言した前 記NDC位置は、情報を局所顧客又は上流NDC位置から受取り、それにそこに 於けるデータセット上で実行されている活動の型の休止を伝えた上で、受け取っ たばかりの前記情報を前記データセットに対する前に記憶された情報と比較し; 及び (n)もし前記NDCが、前記受け取ったばかりの情報の前記データセ ットに対する前記前に記憶された情報との比較から、このNDC位置はもはや前 記データセットに対して前記CCSとして機能する必要がないと決定した場合、 前記NDC位置は前記データセットに対し前記てCCSとして作用することを止 める から成る方法。
JP6500488A 1992-06-03 1992-06-03 各回路網ノードに於いて分布データ・キャッシュ・チャンネルにアクセスして要求及びデータを通過させるシステム Pending JPH08500918A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA002136727A CA2136727C (en) 1992-06-03 1992-06-03 System for accessing distributed data cache channel at each network node to pass requests and data
PCT/US1992/004939 WO1993024890A1 (en) 1992-06-03 1992-06-03 System for accessing distributed data cache channel at each network node to pass requests and data

Publications (1)

Publication Number Publication Date
JPH08500918A true JPH08500918A (ja) 1996-01-30

Family

ID=4154743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6500488A Pending JPH08500918A (ja) 1992-06-03 1992-06-03 各回路網ノードに於いて分布データ・キャッシュ・チャンネルにアクセスして要求及びデータを通過させるシステム

Country Status (3)

Country Link
EP (1) EP0643853B1 (ja)
JP (1) JPH08500918A (ja)
AU (1) AU2227792A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488382A (zh) * 2020-04-16 2020-08-04 北京思特奇信息技术股份有限公司 一种数据调用方法、系统及电子设备

Also Published As

Publication number Publication date
EP0643853B1 (en) 1998-10-21
EP0643853A4 (en) 1995-05-10
AU2227792A (en) 1993-12-30
EP0643853A1 (en) 1995-03-22

Similar Documents

Publication Publication Date Title
US6026452A (en) Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data
US5611049A (en) System for accessing distributed data cache channel at each network node to pass requests and data
US6516380B2 (en) System and method for a log-based non-volatile write cache in a storage controller
US7937367B2 (en) System and method for parallelized replay of an NVRAM log in a storage appliance
AU2002335503B2 (en) Disk writes in a distributed shared disk system
US8364650B2 (en) System and method to maintain coherence of cache contents in a multi-tier system aimed at interfacing large databases
US8051425B2 (en) Distributed system with asynchronous execution systems and methods
US6385624B1 (en) File system control method, parallel file system and program storage medium
EP0630499A1 (en) High-performance non-volatile ram protected write cache accelerator system
JPH08129457A (ja) 外部記憶ストラクチャを拡大、縮小、及び再配分するための方法及び装置
RU96120166A (ru) Система и способ эффективного использования кэш-памяти в распределенной файловой системе
JPH09259098A (ja) 分散メモリ型マルチプロセッサシステム及び故障回復方法
CN105376269B (zh) 虚拟机存储系统及其实现方法和装置
JP2004213435A (ja) 記憶装置システム
JPH05210584A (ja) 改善されたぺージングを有するディジタルデータプロセッサ
JPH03129454A (ja) マルチプロセッサシステム
JPH08500918A (ja) 各回路網ノードに於いて分布データ・キャッシュ・チャンネルにアクセスして要求及びデータを通過させるシステム
WO1993024890A1 (en) System for accessing distributed data cache channel at each network node to pass requests and data
JP4311059B2 (ja) トランザクション制御方法
EP1366420B1 (en) Disk writes in a distributed shared disk system
JP3866448B2 (ja) ノード間共用ファイル制御方式
CA2136727C (en) System for accessing distributed data cache channel at each network node to pass requests and data
US10871908B2 (en) Storage bypass driver operation in a highly available computer system
Herman et al. The case for orderly sharing
DE69227384T2 (ja)