JP2002149454A - 論理ディスク上でのトランザクション・サポート - Google Patents

論理ディスク上でのトランザクション・サポート

Info

Publication number
JP2002149454A
JP2002149454A JP2001251031A JP2001251031A JP2002149454A JP 2002149454 A JP2002149454 A JP 2002149454A JP 2001251031 A JP2001251031 A JP 2001251031A JP 2001251031 A JP2001251031 A JP 2001251031A JP 2002149454 A JP2002149454 A JP 2002149454A
Authority
JP
Japan
Prior art keywords
data
transaction
storage device
block
tsld
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
JP2001251031A
Other languages
English (en)
Inventor
Julian Satran
ジュリアン・サトラン
Israel Gold
イスラエル・ゴールド
Dafna Sheinwald
ダフナ・シェインウォールド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/651,910 external-priority patent/US6668304B1/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2002149454A publication Critical patent/JP2002149454A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

(57)【要約】 【課題】 データ・トランザクションをサポートする改
善されたシステムを提供すること。 【解決手段】 データ・トランザクションを実行する装
置が、データを連続データ・ブロックとして受信し、そ
れぞれの物理ロケーションに記憶するように適応化され
た少なくとも1記憶装置と、制御回路とを含む。制御回
路は、連続データ・ブロックを少なくとも1記憶装置に
伝送する一方、少なくとも幾つかのデータ・ブロック
と、データ・トランザクションの識別を示すパラメータ
と、トランザクション状態のレコーダの識別と、連続デ
ータ・ブロック内の続くデータ・ブロックのロケーショ
ンとを一緒に、少なくとも1記憶装置に書込むように構
成される。制御回路はまた、幾つかの指示パラメータを
用いて、データ・トランザクションを完了する(コミッ
トまたは打ち切る)ために、データの状態を変換するよ
うに構成される。トランザクションが完了する、すなわ
ちコミットまたは打ち切られる前の装置の故障に際し
て、装置はデータ・ブロック内に記憶されたデータを用
いて、完全な回復を容易にする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般にデータ・トラ
ンザクションに関し、特に、不揮発性メモリに書込まれ
たデータの分散トランザクション・サポートに関する。
【0002】
【従来の技術】トランザクションは、データ保全性を保
証するために、原子性単位(unit ofatomicity)として
処理される情報交換及び関連作業(データベース更新な
ど)のシーケンスである。トランザクションにおいて、
データは一貫性のある状態から別の状態に変換される。
トランザクションが完了され、データ変更が不変にされ
る(またはコミットされる)ために、トランザクション
は故障に関してアトミックにされる、すなわち、完全に
完了されなければならない。トランザクションが成功裡
に完了される前に何かが起こると、そのトランザクショ
ンは打ち切られ、あたかもトランザクションが存在しな
かったかのように、データのあらゆる変更が取り消され
なければならない。以下では、用語"完了(complete)"
がトランザクションに適用されるとき、これはトランザ
クションがコミットされるか、打ち切られることを意味
する。
【0003】トランザクション・サポートに固有の問題
は、トランザクションへの参加者が分散システムの一部
であるときに悪化する。この場合、トランザクションが
コミットされるか、全ての参加者によりアトミックに、
且つ矛盾無く打ち切られることを保証することが必要で
ある。例えば、トランザクションへのある参加者が故障
するかもしれず、分散システムにおいて、他の一部の参
加者がこの故障を知らない可能性がある。また、故障後
に回復した参加者は、トランザクションの運命を決定し
なければならない。
【0004】Bernsteinらによる"Concurrency Control
and Recovery in Database Systems"(Addition-Wesle
y、1987年)の第7章では、分散システムの複数サ
イトに渡って、トランザクションの一貫性を保証するア
トミック・コミットメント・プロトコル(ACP)が述
べられている。著者はACPの1例として、2フェーズ
・コミット(2PC)・プロトコルについて述べてい
る。2PCプロトコルは、トランザクションがコミット
されるべきか、打ち切られるべきかに関して、トランザ
クションの全ての参加者がポーリングされる第1のフェ
ーズを含む。2PCプロトコルの第2のフェーズでは、
トランザクション・コーディネータが、ポーリングにも
とづき、トランザクションがコミットされるべきか、打
ち切られるべきかを決定し、決定を参加者に通知する。
【0005】データを効率的に記憶し、コンピュータ・
システム故障の際に記憶データを回復する方法が知られ
ている。これらの方法は、データに付加的な情報を、一
般にはディスクなどの不揮発性メモリに記憶し、故障発
生時には、付加情報を用いて記憶データを回復するもの
である。
【0006】Englishらによる米国特許第534557
5号は、メモリを含むディスク制御装置について述べて
いる。メモリが、ディスク上に記憶されるデータ・ブロ
ックの論理アドレスを、物理記憶ロケーションを識別す
るラベルにマップするテーブルを含む。データを記憶ロ
ケーションに書込むことに加え、ディスク制御装置が、
各記憶ロケーションの関連論理アドレス、タイム・スタ
ンプ、更に、特定のデータ・ブロックが発生するデータ
・ブロック・シーケンス内の位置を書込む。実質的にデ
ィスク全体から読出すことにより、付加情報がシステム
故障から回復するために使用される。
【0007】Chaoらによる米国特許第5481694号
は、メモリ、複数の磁気ディスク・ユニット、及び制御
装置を含む電子データ記憶システムについて述べてい
る。メモリは、論理アドレスとディスク・ユニット上の
物理アドレスとを相互参照するテーブルと、陳腐データ
を含む物理アドレスのリストと、データを受信できるデ
ィスク・ユニット上のセグメントの物理アドレスのリス
トとを含む。データがディスク・ユニットに書込まれる
とき、マルチブロック書込みの論理アドレス及びシーケ
ンス番号を含むタグがデータと共に書込まれる。システ
ム故障から回復するために、ディスク・ユニット上に記
憶されたチェックポイント・ログ及びチェックポイント
・セグメントが、テーブル及びリストを回復する。
【0008】Jongeらによる論文"The Logical Disk: A
New Approach to Improving File Systems"、Proceedin
gs on the 14th Symposium on Operating Ssytems Prin
ciples、pp.15-28(1993年12月)では、著者は
論理ディスクについて述べており、ファイル管理とディ
スク管理とを区別するインタフェースが、ディスク記憶
に対して定義される。このインタフェースは、論理ブロ
ック番号とブロック・リストとを使用し、複数ファイル
・システムをサポートする。著者はアトミック回復ユニ
ット(ARU)をサポートすることを主張している。回
復の間、同一のARUに属する全ての論理ディスク・コ
マンドが、単一の見えない操作として処理される。こう
して論理ディスクが常に、ARUの全ての操作を実行す
る前に存在した状態か、実行後に存在した状態のいずれ
かに回復する。しかしながら、コンカレントARUはサ
ポートされない。
【0009】Englishらによる論文"Loge: a self-organ
izing disk controller"、Proceedings of the USENIX
Winter 1992 Technical Conference、pp.237-251(1
992年1月)では、著者は変換テーブル及び割当てマ
ップを用いて、データをディスクに記憶するシステムに
ついて述べている。ブロック・アドレスとタイム・スタ
ンプとを含むトレーラ・タグが、記憶データと一緒にデ
ィスクに書込まれる。トレーラ・タグ内の情報が、シス
テムが故障から回復することを可能にする。
【0010】Chaoらによる論文"Mime: a high performa
nce parallel storage device withstrong recovery gu
arantees"、HPL-CSP-92-9(Hewlett-Packard社発行、1
992年11月)では、著者は前記のLogeのそれと類似
するディスク記憶アーキテクチャについて述べている。
Mimeでは、トレーラ・タグがブロック・アドレスと、マ
ルチブロック書込みのシーケンス番号と、last-packet-
in-multiblock-writeフラグとを含む。Logeの場合のよ
うに、トレーラ・タグ情報がシステムが故障から回復す
ることを可能にする。
【0011】Mimeは、可視グループの形式の限られた形
のトランザクション・サポートにより、アトミック・マ
ルチブロック書込みをサポートする。Mimeは、故障の際
に、活動状態の可視グループ内の全てのブロック書込み
が打ち切られることを保証する。
【0012】
【発明が解決しようとする課題】本発明の目的は、デー
タ・トランザクションをサポートする改善されたシステ
ムを提供することである。
【0013】本発明の別の目的は、トランザクションの
参加者がネットワーク上で分散されている場合に、コン
カレント・データ・トランザクションを実行する改善さ
れたシステムを提供することである。
【0014】
【課題を解決するための手段】本発明の好適な実施例で
は、1つ以上の記憶装置、好適には不揮発性ディスク
が、記憶装置の1つ以上のクライアントにより開始され
たトランザクションのデータ内容を記憶するために使用
される。記憶装置の各々は、制御回路、好適には記憶サ
ーバにより管理され、これがトランザクションのデータ
内容を、記憶装置の選択ブロック・フレームに書込む。
こうした記憶装置は、ここではトランザクション支援論
理ディスク(TSLD)と称される。記憶サーバはデー
タ構造を保持する揮発性メモリを有し、そこにはとりわ
け、TSLDに書込まれたトランザクション・データを
追跡し、データが書込まれるブロック・フレームの物理
アドレス及び論理アドレスを、動的にリンクするために
使用される値が含まれる。
【0015】特定の記憶サーバの故障に対してTSLD
を保護するために、サーバのデータ構造内の値がチェッ
クポイント操作により、そのTSLDに周期的な間隔で
記憶される。チェックポイント操作の間、データ構造内
の値はまた、トランザクションのデータ内容と一緒に、
各TSLDのブロック・フレームに記憶される。好適に
は、データ構造内の値、及びチェックポイント・データ
が、記憶サーバ故障の際にブロック・フレームが好都合
に見い出されることを可能にし、それにより、ブロック
・フレーム内のデータ内容が回復される。故障に際して
記憶サーバは、最後のチェックポイントが実行されて以
来記憶されたチェックポイント・データを読出し、TS
LD操作のプロセスを"再生"する(トランザクションの
コミット及び打ち切りを含む)。再生プロセスにより、
記憶サーバは、故障時におけるその状態と、進行中のト
ランザクションの状態とを回復する。記憶及び回復に関
する代替方法が、前記の仮米国特許特許出願第1765
07号、及び本願の出願人に権利譲渡される、2000
年7月6日付けの別の米国特許出願"Enhanced Stable D
isk Storage"で述べられている。
【0016】本発明の好適な実施例は、好適には、本発
明の従来技術の項で一般に述べたように、2フェーズ・
コミット(2PC)プロトコルをサポートする。トラン
ザクションの第1フェーズでは、トランザクション・コ
ーディネータと呼ばれる特定のTSLDクライアント
が、トランザクションに参加するTSLDの1つを基本
TSLDと指定することによりトランザクションを開始
する。基本TSLDはトランザクションの状態を追跡す
ることによりレコーダとして作用し、クライアントは、
基本TSLDにトランザクションを開始するように命令
する。クライアントは、トランザクションに参加する他
のTSLDに、それらの管理サーバを介してトランザク
ションの適切なデータ内容をそれぞれのTSLDに"ソ
フト書込み(soft-write)"するように命令し(それに
より非コミット・ブロック値を生成する)、また各場合
において、これが実行されたことをクライアントに通知
するように命令する。ソフト書込み操作では、書込まれ
たブロック・フレームの論理アドレス及び物理アドレス
が暫定的にリンクされる。一旦、クライアントが第1の
フェーズが成功裡に達成されたことを知ると、第2フェ
ーズにおいて、クライアントは基本TSLDにトランザ
クションをコミットするように命令し、次に、クライア
ントはコミット命令を参加TSLDの各々に対して発行
して、トランザクションをコミットし、それによりコミ
ット済みブロック値を生成する。コミット操作は、暫定
的にリンクされたアドレスを永久にリンクすることによ
り実行される。第1フェーズが所定時間内に成功裡に完
了されない場合、クライアントは基本TSLDにトラン
ザクションを打ち切るように命令し、次に、クライアン
トは打ち切り命令を各参加TSLDに発行して、トラン
ザクションを打ち切る。その際、トランザクション前に
存在したアドレス・リンクが再インストールされる。
【0017】前述のシステムは、既知のトランザクショ
ンのためのシステムに比較して、トランザクション操作
において多くの意味深い利点を有する。特に、利点を挙
げると、次のようになる。 1)TSLDがサーバ故障から実質的に完全に回復する
ことを可能にし、2フェーズ・コミット・プロトコルの
効率的な実現を可能にするために、データ構造内の同一
の情報が使用される。 2)システムが複数TSLDに渡る分散トランザクショ
ンをサポートし、また1つ以上のTSLD上で、コンカ
レント・データ・トランザクションをサポートする。 3)トランザクション状態の集中ログが存在しない。各
トランザクションは異なる基本TSLDを選択し、従っ
て、トランザクション状態のロギングが分散される。 4)TSLDがコンカレント活動トランザクションをサ
ポートし、複数のトランザクション故障から回復でき
る。 5)データ構造内の全ての情報がTSLDに記憶される
ので、TSLDが故障サーバから稼働サーバに移動可能
で、アドレス・リンク及びオープン・トランザクション
に関する情報を再生できる。 6)TSLDへのデータ構造情報の増分記憶が、TSL
Dへの余計な入出力操作無しに、実行される。 7)システムが複数のディスクや、ネットワーク上で分
散される複数のサーバを含む場合にも、ソフト書込み操
作がトランザクションのコミット及び打ち切りと共に、
サポートされる。 8)チェックポイント操作が、例えばバックグラウンド
操作として、または最後のチェックポイント以来変化し
た、データ構造内のコンポーネントを識別することによ
り、柔軟に実現される。 9)このTSLDの最後のチェックポイント操作以後記
憶されたブロック・フレームだけが読出される必要があ
るので、故障後のTSLDの回復が素早く行われる。 10)故障後のTSLDの回復が、オープン・トランザ
クションに関する十分な情報を生成するので、トランザ
クションの参加者はトランザクション状態を問い合わ
せ、トランザクションをコミットするか、または打ち切
るかについて、合意を達成することができる。クライア
ント故障の場合、トランザクションをコミットまたは打
ち切るためのTSLDに関する十分な情報が存在し、こ
の情報が他のクライアントにより処理される。
【0018】従って、本発明の好適な実施例によれば、
データ・トランザクションをサポートする装置が提供さ
れ、この装置は、データを連続データ・ブロックとして
受信し、それぞれの物理ロケーションに記憶するように
適応化された少なくとも1TSLDと、連続データ・ブ
ロックを、少なくとも幾つかのデータ・ブロックと、連
続データ・ブロック内の続くデータ・ブロックの物理ロ
ケーションを示す少なくとも1パラメータと一緒に、少
なくとも1TSLDに伝送する一方、少なくとも1TS
LDに書込み、少なくとも1パラメータを用いてデータ
・トランザクションを完了するように、データの状態を
変換するように構成される制御回路とを含む。
【0019】好適には、制御回路は、当該制御回路を少
なくとも1TSLDに接続する少なくとも1通信リンク
を含み、制御回路は、少なくとも1通信リンクを介して
少なくとも1TSLDを管理する。
【0020】好適には、装置はデータを制御回路に伝送
し、それに接続されるデータ伝送ネットワークを含む。
【0021】更に好適には、データ伝送ネットワークは
少なくとも1TSLDに接続され、それにデータを伝送
し、制御回路がデータ伝送ネットワークを介して、少な
くとも1TSLDを管理する。
【0022】好適には、装置は、データを制御回路に伝
送するクライアントを含む。
【0023】好適には、制御回路は、少なくとも幾つか
のデータ・ブロックの1つ以上の特性を示すデータを含
む、1つ以上のデータ構造を記憶するように適応化され
る少なくとも1揮発性メモリを含み、データの少なくと
も一部が制御回路により、少なくとも1TSLDに書込
まれる。それにより、少なくとも1揮発性メモリの内容
が、少なくとも1TSLDに記憶される1つ以上のデー
タ構造内の、少なくとも一部のデータから再生される。
【0024】更に好適には、データ構造の1つが、連続
データ・ブロックの論理ブロック・アドレスをそれぞれ
の物理アドレスにマップし、現在オープン・データ・ト
ランザクションに関わるデータ・ブロックをタグ付けす
る変換テーブルを含む。
【0025】好適には、データ構造の1つが補助変換テ
ーブルを含み、これがそれぞれのオープン・データ・ト
ランザクションに対して、オープン・トランザクション
に関連付けられる論理ブロック・アドレスを、データ・
トランザクションの開始以前に存在した連続データ・ブ
ロックのそれぞれの物理アドレスと、オープン・データ
・トランザクションの識別とにマップする。
【0026】好適には、制御回路がそれぞれの論理ブロ
ック・アドレスを連続データ・ブロックに書込む。
【0027】好適には、制御回路がデータ・トランザク
ションの識別を、連続データ・ブロックに書込む。
【0028】好適には、制御回路がデータ・トランザク
ションの状態のレコーダの識別を、連続データ・ブロッ
クに書込む。
【0029】好適には、データ構造の1つが、連続デー
タ・ブロックの各々の可用性をマップする割当てビット
マップを含む。
【0030】更に好適には、データ構造の1つが、連続
データ・ブロック内の次に使用可能なデータ・ブロック
のロケーションを指し示すポインタ値を含む。
【0031】好適には、データ構造の1つが、連続デー
タ・ブロック内の最初に使用可能なブロックのロケーシ
ョンを指し示すポインタ値を含む。
【0032】好適には、少なくとも1TSLDが、ディ
スク・ヘッドを有するディスクを含み、ディスク表面上
でのディスク・ヘッドの単一方向への一連の通過におい
て、制御回路がデータ・ブロックをディスクに書込む。
【0033】更に好適には、一連の通過のそれぞれが、
チェックポイント数を有し、データ構造の1つが、現チ
ェックポイント数を示す値を含む。
【0034】好適には、データ構造の1つが、ディスク
・ヘッドの通過の終わりに、連続データ・ブロックの各
々の可用性を記憶する、作業用割当てビットマップ・コ
ピーを含む。
【0035】好適には、制御回路が、ディスク・ヘッド
の通過の終わりに、1つ以上のデータ構造内の少なくと
も一部のデータを、少なくとも1TSLDに書込む。
【0036】好適には、データ構造の1つは、データ・
トランザクションの少なくとも1レコードを記憶するよ
うに適応化されたトランザクション状態ログを含み、少
なくとも1レコードが、データ・トランザクションの識
別と、データ・トランザクションに参加する少なくとも
1TSLDの識別とを含む。また、少なくとも1レコー
ドが、トランザクション開始レコード、トランザクショ
ン・コミット・レコード、及びトランザクション打ち切
りレコードを含むグループの少なくとも1つを含む。こ
れらはそれぞれ、トランザクションが開始したこと、コ
ミットされること、及び打ち切られることを記録する。
【0037】好適には、制御回路は、各データ・ブロッ
クの使用を示す1つ以上のフィールドを含むトレーラを
連続データ・ブロックに書込む。
【0038】好適には、1つ以上のデータ・フィールド
が、データ・トランザクションの識別と、データ・トラ
ンザクション状態のレコーダとして作用する基本TSL
Dの識別とを含む。
【0039】好適には、1つ以上のデータ・フィールド
が、データ・ブロックの論理アドレスを含む。
【0040】好適には、1つ以上のデータ・フィールド
が、データ・トランザクションの状態を示すタグを含
む。
【0041】好適には、装置が少なくとも1TSLDを
制御するディスク制御装置を含み、ディスク制御装置が
揮発性メモリの内容を、制御回路により少なくとも1T
SLDに書込まれたデータから回復できる。
【0042】好適には、少なくとも1パラメータが、複
数のパラメータを含む。
【0043】好適には、データ・トランザクションが複
数のコンカレント・データ・トランザクションを含む。
【0044】好適には、少なくとも1TSLDが、サー
バにより管理されるディスクを含む。
【0045】好適には、少なくとも1TSLDが、複数
のTSLDを含む。
【0046】好適には、少なくとも1パラメータが、デ
ータ・トランザクションの1つ以上の状態を記録するト
ランザクション状態ログを含む。
【0047】好適には、少なくとも1パラメータが、デ
ータ・トランザクションの1つ以上の状態を記録する分
散トランザクション状態ログの少なくとも一部を含む。
【0048】好適には、少なくとも1記憶装置上に記憶
された情報を回復するために、少なくとも1記憶装置
が、他の制御回路により操作可能なように移動可能であ
る。
【0049】本発明の好適な実施例によれば、更にデー
タ・トランザクションを実行する方法が提供され、この
方法は、少なくとも幾つかのデータ・ブロックの各々、
及び連続データ・ブロック内の続くデータ・ブロックの
物理ロケーションを示す少なくとも1パラメータと共
に、データを連続データ・ブロックとして、少なくとも
1TSLDに受信するステップと、少なくとも1パラメ
ータに応答して、データ・トランザクションを完了する
ように、少なくとも1TSLD内のデータの状態を変換
するステップとを含む。
【0050】好適には、少なくとも1パラメータが、複
数のパラメータを含む。
【0051】好適には、データを少なくとも1TSLD
に受信するステップが、データ伝送ネットワークを介し
て、データを少なくとも1TSLDに伝送するステップ
を含む。
【0052】好適には、データを伝送するステップが、
少なくとも1TSLDをデータ伝送ネットワークに接続
するステップを含む。
【0053】好適には、データを伝送するステップが、
少なくとも1TSLDを制御回路を介して、データ伝送
ネットワークに接続するステップと、制御回路をデータ
伝送ネットワークに接続するステップとを含む。
【0054】更に好適には、データを受信するステップ
が、データをクライアントから受信するステップを含
む。
【0055】好適には、本方法は、少なくとも1揮発性
メモリにデータ・ブロックの少なくとも幾つかの1つ以
上の特性を示すデータを含む、1つ以上のデータ構造を
記憶するステップと、データ構造内の少なくとも一部の
データを、少なくとも1記憶装置に書込むステップとを
含み、少なくとも1揮発性メモリの内容が、少なくとも
1記憶装置に記憶される1つ以上のデータ構造内の少な
くとも一部のデータから再生される。
【0056】好適には、1つ以上のデータ構造を記憶す
るステップが、連続データ・ブロックの論理ブロック・
アドレスをそれぞれの物理アドレスにマップし、現在オ
ープン・データ・トランザクションに関わるデータ・ブ
ロックをタグ付けする変換テーブルを記憶するステップ
を含む。
【0057】好適には、1つ以上のデータ構造を記憶す
るステップが、補助変換テーブルを記憶するステップ含
み、補助変換テーブルが、それぞれのオープン・データ
・トランザクションに対してオープン・トランザクショ
ンに関連付けられる論理ブロック・アドレスを、データ
・トランザクションの開始以前に存在した連続データ・
ブロックのそれぞれの物理アドレスと、オープン・デー
タ・トランザクションの識別とにマップする。
【0058】好適には、データを受信するステップが、
それぞれの論理ブロック・アドレスを連続データ・ブロ
ックに書込むステップを含む。
【0059】好適には、変換テーブルを用いて特定のデ
ータ・ブロックを突き止め、データを特定のデータ・ブ
ロックから読出すステップを含む。
【0060】好適には、1つ以上のデータ構造を記憶す
るステップが、連続データ・ブロックの各々の可用性を
示す割当てビットマップを記憶するステップを含む。
【0061】更に好適には、少なくとも一部のデータを
少なくとも1記憶装置に書込むステップが、データを連
続データ・ブロックの1つに書込むステップを含み、こ
の書込みステップが、1つ以上のデータ構造を走査し
て、少なくとも1記憶装置内の使用可能なデータ・ブロ
ックの物理ロケーションを決定するステップと、データ
及び1つ以上のデータ構造の少なくとも幾つかの内容
を、物理ロケーションに書込むステップと、決定された
物理ロケーションに応答して、1つ以上のデータ構造を
更新するステップとを含む。
【0062】好適には、1つ以上のデータ構造を走査す
るステップが、論理ブロック・アドレスがオープン・ト
ランザクションに関わるか否かをチェックするステップ
を含む。
【0063】好適には、データ及び1つ以上のデータ構
造の少なくとも幾つかの内容を書込むステップが、ソフ
ト書込み操作に対応する値を書込むステップと、一時書
込み操作を実行するために、少なくとも1TSLDの1
つの識別をデータ・トランザクションのレコーダとして
作用する、基本TSLDとして書込むステップとを含
む。
【0064】好適には、データ及び1つ以上のデータ構
造の少なくとも幾つかの内容を書込むステップが、開始
操作に対応する値を書込むステップを含み、1つ以上の
データ構造を更新するステップが、開始操作を実行する
ために、トランザクションの識別と、基本TSLDの識
別とを含む開始レコードを書込むステップを含む。
【0065】好適には、データ及び1つ以上のデータ構
造の少なくとも幾つかの内容を書込むステップが、コミ
ット操作に対応する値を書込むステップを含み、1つ以
上のデータ構造を更新するステップが、トランザクショ
ンのオープン状態を示すタグを除去するステップと、コ
ミット操作を実行するために、トランザクションの識別
と、基本TSLDの識別とを含むコミット・レコードを
書込むステップと、トランザクション状態ログを更新す
るステップとを含む。
【0066】好適には、データ及び1つ以上のデータ構
造の少なくとも幾つかの内容を書込むステップが、打ち
切り操作に対応する値を書込むステップを含み、1つ以
上のデータ構造を更新するステップが、トランザクショ
ンのオープン状態を示すタグを除去するステップと、打
ち切り操作を実行するために、トランザクションの識別
と、基本TSLDの識別とを含む打ち切りレコードを書
込むステップと、トランザクション状態ログを更新する
ステップとを含む。
【0067】好適には、本方法は、1つ以上のデータ構
造を走査し、データ・トランザクションの状態を決定す
るステップを含む。
【0068】好適には、本方法は、チェックポイント操
作を実行するステップを含み、前記チェックポイント操
作が、1つ以上のデータ構造をロックするステップと、
1つ以上のデータ構造の内容を、少なくとも1TSLD
内のチェックポイント・ロケーションに書込むステップ
と、少なくとも1TSLDへの前記内容の書込みに応答
して、1つ以上のデータ構造の少なくとも幾つかの内容
を変更するステップとを含む。
【0069】好適には、本方法は、回復操作を実行する
ステップを含み、回復操作が、少なくとも1TSLDか
ら1つ以上のデータ構造の内容を読出すステップと、内
容に応答して、少なくとも1揮発性メモリ内の1つ以上
のデータ構造を更新するステップとを含む。
【0070】好適には、回復操作を実行するステップ
が、チェックポイント操作の実行以来書込まれた、1つ
以上のデータ構造の全ての内容を読出すステップを含
む。
【0071】更に好適には、回復操作を実行するステッ
プが、チェックポイント操作の実行以来書込まれた、1
つ以上のデータ構造の全てに書込むのに要する時間より
も実質的に少ない時間内に、チェックポイント操作の実
行以来書込まれた、1つ以上のデータ構造の全ての内容
を読出すステップを含む。
【0072】好適には、回復操作を実行するステップ
が、オープン・トランザクションの状態を判断するステ
ップと、オープン・トランザクションの1つ以上のクラ
イアントが状態を問い合わせ、オープン・トランザクシ
ョンをコミットするか、または打ち切るかを決定するこ
とを可能にするステップとを含む。
【0073】好適には、本方法は、トランザクション調
整オペレーションを実行するステップを含み、この調整
オペレーションが、少なくとも1TSLDの1つを、デ
ータ・トランザクションの状態のレコーダとして選択す
るステップと、トランザクション開始操作をレコーダに
サブミットするステップと、レコーダから、データ・ト
ランザクションの状態を示す応答を、所定時間待機する
ステップと、応答に応じて1つ以上のソフト書込み操作
を少なくとも1TSLDにサブミットするステップと、
応答に応じてトランザクション・コミットまたは打ち切
り操作を発行することにより、トランザクションをコミ
ットするか、または打ち切るかを決定するステップとを
含む。
【0074】更に好適には、本方法は、トランザクショ
ン完了操作を実行するステップを含み、この完了操作
が、少なくとも1TSLDから、データ・トランザクシ
ョンの状態を示す内容を含む連続データ・ブロックの第
1のセットを読出すステップと、連続データ・ブロック
の第1のセットの内容に応答して、連続データ・ブロッ
クの第2のセットを少なくとも1TSLDに書込み、1
つ以上のデータ構造のセットを少なくとも1揮発性メモ
リに記憶するステップとを含む。
【0075】好適には、データ・トランザクションが複
数のコンカレント・データ・トランザクションを含む。
【0076】好適には、少なくとも1TSLDがサーバ
により管理されるディスクを含む。
【0077】好適には、少なくとも1TSLDが、複数
のTSLDを含む。
【0078】更に、本発明の好適な実施例によれば、電
子データ記憶のための装置が提供される。この装置は、
データを連続データ・ブロックとして受信し、それぞれ
の物理ロケーションに記憶するように適応化されたTS
LDと、連続データ・ブロックを少なくとも幾つかのデ
ータ・ブロックと、連続データ・ブロック内の続くデー
タ・ブロックの物理ロケーションを示す1つ以上のパラ
メータと一緒に、TSLDに伝送する一方、TSLDに
書込むように構成される制御回路とを含む。
【0079】好適には、1つ以上のパラメータは、複数
のパラメータを含む。
【0080】更に、本発明の好適な実施例によれば、電
子データ記憶のための方法が提供され、この方法は、T
SLD内のそれぞれ物理ロケーションに記憶される連続
データ・ブロックを提供するステップと、連続データ・
ブロック内の少なくとも幾つかのデータ・ブロックの各
々に対して、連続データ・ブロック内の続くデータ・ブ
ロックの物理ロケーションを示す1つ以上のパラメータ
を決定するステップと、連続データ・ブロック及び1つ
以上のパラメータをTSLDに記憶するステップとを含
む。
【0081】好適には、1つ以上のパラメータが複数の
パラメータを含む。
【0082】更に、本発明の好適な実施例によれば、デ
ータ・トランザクションを実行するプログラム命令が記
録されたコンピュータ可読媒体を含むコンピュータ・ソ
フトウェア製品が提供され、命令がコンピュータにより
読出されて、少なくとも幾つかのデータ・ブロックの各
々、及び連続データ・ブロック内の続くデータ・ブロッ
クの物理ロケーションを示す少なくとも1パラメータと
共に、データを連続データ・ブロックとして、少なくと
も1TSLDに受信するようにコンピュータに指示する
命令と、少なくとも1パラメータに応答して、データ・
トランザクションを完了するように、少なくとも1TS
LD内のデータの状態を変換するようにコンピュータに
指示する命令とを含む。
【0083】更に、本発明の好適な実施例によれば、電
子データ記憶のためのプログラム命令が記録されたコン
ピュータ可読媒体を含むコンピュータ・ソフトウェア製
品が提供され、命令がコンピュータにより読出されて、
TSLD内のそれぞれ物理ロケーションに記憶される連
続データ・ブロックを提供するように、コンピュータに
指示する命令と、連続データ・ブロック内の少なくとも
幾つかのデータ・ブロックの各々に対して、連続データ
・ブロック内の続くデータ・ブロックの物理ロケーショ
ンを示す1つ以上のパラメータを決定するように、コン
ピュータに指示する命令と、連続データ・ブロック及び
1つ以上のパラメータをTSLDに記憶するように、コ
ンピュータに指示する命令とを含む。
【0084】本発明は、添付の図面を参照して述べられ
る、前述の好適な実施例の詳細な説明から、より完全に
理解されよう。
【0085】
【発明の実施の形態】図1を参照すると、本発明の好適
な実施例に従い、ディスクが物理的に記憶サーバに接続
されて、トランザクションが発生する分散記憶システム
を示すブロック図が示される。システム20は、記憶装
置として動作する複数のディスク28、30及び34を
含む。ディスク34は記憶サーバ32に接続される。記
憶サーバ32は制御回路33を含み、これはサーバ32
がディスクを管理することを可能にする。ディスク28
及び30は、記憶サーバ26に接続される。記憶サーバ
26は制御回路35及び37を含み、これらはそれぞ
れ、サーバ26がディスクを管理することを可能にす
る。ディスク28、30及び34などの適切な制御回路
を介して管理される記憶装置は、ここではトランザクシ
ョン支援論理ディスク(TSLD)と称される。制御回
路はここではTSLDインタフェースと称され、制御回
路に接続される装置に対してTSLD操作を実行する。
TSLDの構造及び操作、TSLDインタフェース、及
びTSLD操作に関する詳細については、以下で述べ
る。システム20内の各ディスク28、30及び34
は、固有の識別を割当てられ、ここではそれぞれ、TS
LD1、TSLD2、及びTSLD3と称される。システ
ム20は3つのTSLDを含むように示されるが、シス
テムは任意の数のTSLDを含むことができ、各々が記
憶サーバ(以下では単にサーバと称する)に接続されて
管理される。システム20内の各サーバは、1つ以上の
TSLDを管理することができる。
【0086】サーバ26及び32は、ローカル・エリア
・ネットワークなどのデータ伝送ネットワーク24に接
続され、ネットワーク24には、クライアント22も接
続される。クライアント22は、システム20内の各々
のディスクの識別、及び各ディスクを管理するそれぞれ
のサーバの識別を承知している。クライアント22はT
SLDトランザクションの実行を調整する。クライアン
ト22はTSLD操作を開始し、TSLD操作を、その
操作が適用される1つ以上のTSLDの識別と一緒に適
切な記憶サーバに転送する。TSLD操作の受信に際し
て、各サーバは、クライアント22により指定される1
つ以上のTSLDに操作を実行し、クライアントに応答
する。
【0087】図2は、本発明の好適な実施例に従い、ト
ランザクションが発生する別の分散記憶システム40を
示すブロック図である。前述の違いは別として、システ
ム40の動作は一般に、システム20(図1)のそれと
類似し、従って、システム40及び20の両方におい
て、同一の参照番号で示される要素は、一般に構造的及
び動作的に同一である。システム40は記憶エリア・ネ
ットワーク42を含み、これにはサーバ26及び32、
及びディスクTSLD1、TSLD2、及びTSLD3
接続される。サーバ26及び32は、それぞれのディス
クにネットワーク42を介して仮想的に接続され、その
様子が図では破線により示される。クライアント22
は、TSLD操作をネットワークを介して適切なサーバ
に転送することにより、TSLD操作を開始し、各特定
のサーバがネットワーク42を介して、クライアント2
2に応答する。
【0088】図3は、本発明の好適な実施例に従う、サ
ーバ26とTSLD28との関係をを示すブロック図で
ある。以下の説明はTSLD28、及びサーバ26に含
まれるその関連TSLDインタフェース35に当てはま
るが、システム20またはシステム40内の各TSLD
及びそれらのそれぞれのサーバは、以下でTSLD28
及びサーバ26について述べるのと同様に、実質的に対
話する。
【0089】TSLD28は、ディスク・ドライブ61
により操作される不揮発性記憶ディスク62を含む。デ
ィスク62は好適には磁気媒体63により実現され、こ
れがディスク・アーム79上のディスク・ヘッド78に
より読み書きされる。以下で詳述するように、ディスク
・アーム79は、"前進後記憶(move-forward-and-stor
e)"動作で動作してブロックを書込む。ディスク62の
動作は、ディスク制御装置76により制御される。ディ
スク制御装置76、ディスク・ドライブ61、及びその
全てのコンポーネントは、好適には既製の業界標準アイ
テムである。磁気媒体63は既知の方法により、複数の
物理セクタ64a、64b、64c、..、64zに区
分化され、これらは以下では集合的にセクタ64として
参照される。各物理セクタは、物理セクタ・アドレスに
より参照される。最も好適には、各セクタは、2の整数
乗バイトに等しいサイズ、例えば512バイトを有す
る。
【0090】ディスク62上に記憶されるデータは、複
数の固定サイズのブロック・フレーム・ロケーション8
2a、82b、82c、...、などに書込まれる。こ
れらは以下では集合的に、ブロック・フレーム82とし
て参照される。各ブロック・フレームは好適には、ブロ
ック・フレームを構成する第1のセクタの物理セクタ・
アドレスにより参照される。各ブロック・フレーム82
は、最適には、整数個の連続セクタ64から構成され、
各ブロック・フレームはデータのブロックを記憶するこ
とができる。ディスク62のフォーマットの間、サーバ
26及びディスク62に関連する物理パラメータ及び論
理パラメータを記述するために、幾つかのセクタが確保
される。パラメータは、各セクタ64のサイズ、ディス
ク62内のセクタの数、ブロック・フレーム82のサイ
ズ及び数、及びディスク62によりサポートされる論理
ブロック・アドレス(LBA)の範囲を含む。更に、デ
ィスク62のフォーマットの間に確保されるものに、チ
ェックポイント操作の間に使用されるスペースがあり、
とりわけ、サーバ26内に含まれる揮発性メイン・メモ
リ70に記憶されるデータがディスク62に記憶され
る。チェックポイント操作については、以下で詳述され
る。
【0091】揮発性メモリ70は、TSLDインタフェ
ース35として作用する、以下で詳述する多くの揮発性
動的データ構造を記憶する。データ構造の内容は、好適
にはサーバ26により制御される。
【0092】メモリ70はTSLDインタフェース35
として、次のものを記憶する。
【0093】変換テーブル・データ構造72。これはL
BAと物理ブロック・アドレスとの間の変換を行う。こ
の変換テーブルは、各論理ブロック・アドレス"i"を、
ディスク62のブロック・フレームの対応する物理アド
レス(ここではTT(i)と称する)に結合する。TT
(i)は、最適には、その論理アドレスが"i"のブロッ
クの、最も最近記憶された内容を収容するブロック・ス
ペースの最初のセクタである。最初に、TT(i)の全
ての値がヌル値にセットされる。データはディスク62
に書込まれるので、特定の論理ブロック・アドレスiに
おけるTT(i)の値がヌル値から変更され、ブロック
iが最後に記憶されたブロック・スペースのディスク・
セクタ・アドレスになるように更新される。変換テーブ
ル72はまた、タグ・フィールド73を含み、それによ
り変換テーブル72内の各エントリTT(i)のタグ
が、ブロック"i"が現在オープン・トランザクションに
おいて処理されているように示される。特定のタグがセ
ットされる間、それぞれのエントリTT(i)は、非コ
ミット状態のブロック・フレームを指し示す。前述のよ
うに、ブロックiのコミット済みブロック・フレーム
は、補助変換テーブル・エントリATT(i)を用いて
見い出される。TT(i)エントリがタグ付けされてい
ない場合、TT(i)はブロックiのコミット済みブロ
ック・フレームを指し示す。
【0094】補助変換テーブル(ATT)データ構造1
72。これはテーブル72の圧縮形式であり、タグ・フ
ィールド73がセットされた、テーブル72の非ヌル・
エントリを含む。換言すると、補助変換テーブル172
は、オープン・トランザクションに現在関わるブロック
を追跡する。テーブル172は、オープン・トランザク
ションに関わる各ブロックiのエントリと、(ブロック
iがオープン・トランザクションより前に記憶される)
対応するブロック・フレーム・アドレスATT(i)
と、(ブロックiが現在関わる)トランザクションの識
別IDとを含む。
【0095】割当てビットマップ・データ構造74。こ
れはディスク62へのブロックの各記憶の間に使用可能
なディスク・ブロック・フレーム82を突き止めるため
に使用される。各ブロック・フレームiに対して、ブロ
ック・フレームがブロック内容の記憶のために使用可能
な場合、割当てビットマップ74内の対応ビットが、0
にセットされる。逆にブロック・フレームがブロック内
容を含むか、ブロック・フレームが、サーバ26のデー
タ構造による使用のために予約済みの場合、対応ビット
が1にセットされる。ディスク62が初期化されると
き、サーバ26のための予約済みのものを除く全てのブ
ロック・フレームが使用可能にされる。割当てビットマ
ップ74内の各ビットが0にセットされる。
【0096】作業用割当てビットマップ・データ構造1
74。作業用ビットマップ174は、最後のチェックポ
イント操作が実行されたときに作成される、割当てビッ
トマップ74のコピーである。
【0097】チェックポイント数データ構造84。これ
は実行されたチェックポイント操作の数を記録する。デ
ィスク・アーム79が前進後記憶動作を完了し、別の動
作を開始しようとするとき、チェックポイント操作が自
動的に実行される。初期には、チェックポイント数84
は0にセットされる。
【0098】2つのポインタ・データ構造、すなわち、
ファースト・アベイラブル・ブロック・フレーム・ポイ
ンタ86及びネクスト・アベイラブル・ブロック・フレ
ーム・ポインタ88。ファースト・アベイラブル・ブロ
ック・フレーム・ポインタ86は、チェックポイント操
作が発生するとき、最初に使用可能なブロック・フレー
ムを指し示す。ネクスト・アベイラブル・ブロック・フ
レーム・ポインタ88は、次のブロック記憶操作により
使用される、使用可能なブロック・フレームを指し示
す。ポインタ88は、各ブロック記憶操作において更新
される。
【0099】ディスク回復が実行されるとき、ファース
ト・アベイラブル・ブロック・フレーム・ポインタ86
により指し示されるブロック・フレームの後の、ブロッ
ク・フレームのアドレスが、サーバ26が最後のチェッ
クポイント以来のブロック記憶プロセスを"再生"するこ
とにより回復される。初期には、両方のポインタは、最
初の非予約済みブロック・フレームのアドレスにセット
される。
【0100】トランザクション状態ログ・データ構造9
0。これはトランザクション状態に関するレコードのリ
ストを含む。各トランザクションは、普遍的に固有の識
別子(ここではTidと称する)を割当てられる。トラ
ンザクション状態ログ90のレコードは、Tidと、T
idの関連要素、すなわちトランザクションに参加する
TSLDのリスト94とを含む。ログ・レコードは3つ
の部分、すなわち、レコード・タイプ、トランザクショ
ン識別子、及びリスト94から成る。レコードのタイプ
として、トランザクション開始、トランザクション・コ
ミット、及びトランザクション打ち切りがトランザクシ
ョン状態ログ90内に入力され、これらについては以下
で詳述される。
【0101】前述の各データ構造コンポーネント、すな
わち、変換テーブル72、補助変換テーブル172、割
当てビットマップ74、作業用割当てビットマップ17
4、チェックポイント数84、ファースト・アベイラブ
ル・ブロック・フレーム・ポインタ86、ネクスト・ア
ベイラブル・ブロック・フレーム・ポインタ88、及び
トランザクション状態ログ90は、メイン・メモリ70
内にTSLD35として保持され、TSLD28のチェ
ックポイント操作の間に、TSLD28に記憶される。
【0102】データを記憶するために、新たなブロック
・フレームが要求されるとき、ブロック・フレームが割
当てビットマップ74に従い、ディスク62上で使用可
能な未使用のブロック・フレームから割当てられ、作業
用割当てビットマップ174が新たな割当てを反映する
ように更新される。書込まれるブロック・フレームを選
択するために、サーバ26はネクスト・アベイラブル・
ブロック・フレーム・ポインタ88の値を書留める。サ
ーバ26はこの値を割当てビットマップ74と一緒に用
いて、最後に書込まれたブロック・フレームのアドレス
の前方のアドレスを有する、次の使用可能なブロック・
フレームを突き止める。こうして、ディスク・アーム7
9が、チェックポイント操作が呼び出されるまで前進後
記憶運動により移動する。前進後記憶方法に関する更な
る詳細については、本発明の出願人に権利譲渡される前
記の仮米国特許出願第176507号、及び2000年
7月6日付けの米国特許出願"Enhanced Stable Disk St
orage"で述べられている。
【0103】クライアントが複数のTSLD上でトラン
ザクションを開始するとき、クライアントはTSLDの
1つ、好適には最小の識別を有するTSLDを基本TS
LDとして選択する。基本TSLDは、トランザクショ
ン状態のレコーダとして作用する。トランザクション状
態ログ90のレコードは、前述のように、3タイプであ
ることが最も好ましい。
【0104】トランザクション開始レコード92は、ト
ランザクションTidが開始した事実を記録し、リスト
94内にトランザクションに参加しているTSLDを列
挙する。リスト94上の第1のTSLD96は、トラン
ザクションTidとして選択された基本TSLDであ
る。ここで使用されるトランザクション開始レコード9
2の表記法は、次のようである。
【数1】Begin(Tid;TSLD1、TSLD2...TSLDm
【0105】ここで、TSLD1は基本TSLDであ
り、TSLD2...TSLDmは、トランザクションT
idに参加する他のTSLDである。
【0106】トランザクション・コミット・レコード1
02は、トランザクションがコミットされる事実を記録
する。各トランザクション・コミット・レコード102
は、トランザクションの識別Tidと、トランザクショ
ンに参加しているTSLDのリスト94とを含む。ここ
で使用されるトランザクション・コミット・レコード1
02の表記法は、次のようである。
【数2】Commit(Tid;TSLD1、TSLD2...TSLDm
【0107】トランザクション打ち切りレコード112
は、トランザクションが打ち切られる事実を記録する。
各トランザクション打ち切りレコード112は、トラン
ザクションの識別Tidと、トランザクションに参加し
ているTSLDのリスト94とを含む。ここで使用され
るトランザクション打ち切りレコード102の表記法
は、次のようである。
【数3】Abort(Tid;TSLD1、TSLD2...TSLDm
【0108】より好適には、各トランザクション開始レ
コード92が、前述のように、トランザクションがコミ
ットまたは打ち切られるまで、トランザクションTid
の基本TSLDのトランザクション・ログ内にのみ記憶
される。
【0109】より好適には、各トランザクション・コミ
ット・レコード102が、トランザクションTidの基
本TSLDのトランザクション状態ログ90内に記憶さ
れる。好適には、トランザクション・コミット・レコー
ドは、トランザクションがコミットされることをまだ知
らないかもしれない他のTSLDのために、トランザク
ションTidに関連するデータ構造が特定のTSLD内
で更新されるまで、特定のTSLDのトランザクション
状態ログ内に留まる。特定の基本TSLD上において、
トランザクション・コミット・レコードはトランザクシ
ョン開始レコードを置換する。
【0110】最適には、各トランザクション打ち切りレ
コード112が、トランザクションTidの基本TSL
Dのトランザクション状態ログ90内に記憶される。好
適には、各トランザクション打ち切りレコード112
は、トランザクションが打ち切られることをまだ知らな
いかもしれない他のTSLDのために、Tidに関連す
るデータ構造が特定のTSLD内で更新されるまで、特
定のTSLDのトランザクション・ログ内に留まる。特
定の基本TSLD上において、トランザクション打ち切
りレコードはトランザクション開始レコードを置換す
る。
【0111】非基本TSLD上では、非基本TSLDが
関わるトランザクション打ち切り及びトランザクション
・コミット・レコードが、好適には、次のチェックポイ
ントまで保持される。
【0112】図4は、本発明の好適な実施例に従い、T
SLD28により記憶されるオンディスク(on-disk)
ブロック構造のブロック図である。データはブロック2
00として特定のブロック・フレーム82に記憶され
る。ブロック200は、クライアント22によりその内
容データを記憶するために使用されるクライアント部分
202と、TSLD28により使用されるフィールドを
含むトレーラ204とを含む。トレーラ204は次のフ
ィールドを含む。
【0113】オンディスク・チェックポイント数フィー
ルド206。ここにはチェックポイント数84の現行値
が記憶される。これはブロック記憶操作時におけるチェ
ックポイント数である。
【0114】論理ブロック・アドレス(LBA)フィー
ルド208。ここにはブロック200のLBAが記憶さ
れる。
【0115】ブロック・タイプ・フィールド210。こ
こにはブロック200のタイプを記述するタグが記憶さ
れる。ブロック200のタイプについては前述される。
【0116】トランザクション識別フィールド212。
ここにはブロック200が参加しているトランザクショ
ンの識別Tidが記憶される。或いは、ブロック200
が記憶されるときに、このブロックがトランザクション
に参加していない場合、フィールド212は0にセット
される。
【0117】基本TSLDフィールド214。ここには
ブロック200が参加しているトランザクションの基本
TSLDの識別TSLDpが記憶される。或いは、ブロ
ック200が記憶されるときに、このブロックがトラン
ザクションに参加していない場合、フィールド214は
0にセットされる。
【0118】ブロック・タイプ・フィールド210は、
次のタイプのブロックと想定される。
【0119】データ・ブロック・タイプ。この場合、ク
ライアント22からの内容データがクライアント・デー
タ・フィールド202に記憶され、ブロックが記憶され
るブロック・フレームが、変換テーブル72により参照
され、ブロックがオープン・トランザクションの一部で
ない。
【0120】ソフト書込みブロック・タイプ。この場
合、クライアント22からの内容データがクライアント
・データ・フィールド202に記憶され、データが記憶
される非コミット済みブロック・フレームが、変換テー
ブル72により参照されるが、ブロックの旧コミット済
み内容が記憶されるブロック・フレームが、クライアン
ト22の使用のために解放されずに、補助変換テーブル
172により参照される。両方のブロック・フレーム
が、割当てビットマップ74内で割当て済みとマークさ
れる。
【0121】開始ブロック・タイプ。この場合、特定の
トランザクション識別Tidが、トランザクションTi
dに参加するTSLDの識別と一緒に、フィールド20
2に記憶される。このタイプのブロックは、トランザク
ションTidが開始した事実を記録し、開始ブロックが
次のチェックポイント操作まで、それぞれのブロック・
フレームを占有する。チェックポイント操作の成功後、
占有されたブロック・フレームが上述のように解放され
る。
【0122】コミット・ブロック・タイプ。この場合、
特定のトランザクション識別Tidが、トランザクショ
ンTidに参加するTSLDの識別と一緒にフィールド
202に記憶される。特定のコミット・ブロックが、ト
ランザクションTidがコミットされることを記録し、
次のチェックポイントまでそれぞれのブロック・フレー
ムを占有する。チェックポイント操作の成功後、占有さ
れたブロック・フレームが上述のように解放される。
【0123】打ち切りブロック・タイプ。この場合、特
定のトランザクション識別Tidが、トランザクション
Tidに参加するTSLDの識別と一緒に、フィールド
202に記憶される。特定の打ち切りブロックが、トラ
ンザクションTidが打ち切られることを記録し、次の
チェックポイントまで、それぞれのブロック・フレーム
を占有する。チェックポイント操作の成功後、占有され
たブロック・フレームが上述のように解放される。
【0124】図5は、本発明の好適な実施例に従い、ソ
フト書込み操作220に関わるステップを示すフローチ
ャートである。ソフト書込み操作220は、トランザク
ションTidの内容、primTSLDの値を有する基本TSL
Dを、トランザクションTidにより更新された各ブロ
ック・フレームに記憶する。ここで使用されるソフト書
込み操作220の表記法は、次のようである。
【数4】Soft-Write(Tid;primTSLD、i、contents)
【0125】以下では、TSLD28が参加TSLDの
1つであると仮定され、ソフト書込み操作220がクラ
イアント22により開始されると仮定される。ソフト書
込み操作220は、LBA=iの旧内容を失うことな
く、内容をLBA=iに関連付ける。ソフト書込み操作
220は、後にコミットまたは打ち切られる一時書込み
操作として作用し、従って、本発明の従来技術の項で述
べた2フェーズ・コミット・プロトコルの第1フェーズ
として作用する。
【0126】チェック・ステップ222で、変換テーブ
ル72がチェックされ、LBA=i、TT(i)に対応
するエントリが、そのタグをセットされているか否かが
見い出される。タグがセットされている場合、オープン
・トランザクション・エラー・コード(その機能が図1
8に関連して説明される)が、クライアント22に返却
される。タグがセットされていない場合、走査ステップ
224で、割当てビットマップ74が走査され、ネクス
ト・アベイラブル・ブロック・フレーム88に記録され
たブロック・フレームに続く、最初の使用可能なブロッ
ク・フレームを見い出す。可用性チェック・ステップ2
26で、使用可能なブロック・フレームが見い出されな
い場合、前述のチェックポイント操作が実行される。ブ
ロック・フレームが見い出される場合、その物理アドレ
スが"a"と見なされる。
【0127】記憶ステップ228で、チェックポイント
数、LBA=i、トランザクション識別Tid、及び基
本TSLDすなわちprimTSLDの値が、ネクスト・アベイ
ラブル・ブロック・フレーム88に記録されたブロック
・フレーム内のブロックのそれぞれのトレーラ・フィー
ルド206、208、212及び214(図4)に書込
まれる。ブロックのタイプに対応する値、すなわちソフ
ト書込みブロック・タイプが、ブロック・フレームのト
レーラ・フィールド210に書込まれる。更に、クライ
アント22により提供されるTidのデータ内容がブロ
ック・フレームのデータ・フィールド202に書込まれ
る。
【0128】更新ステップ230で、メモリ70内にお
いて、次の割当てが行われる。
【0129】作業用割当てビットマップ174におい
て、A(ネクスト・アベイラブル・ブロック・フレー
ム)←1。
【0130】補助変換テーブル172において、ATT
(i)、トランザクションID)←<TT(i)、Ti
d>。
【0131】変換テーブル72において、TT(i)←
ネクスト・アベイラブル・ブロック・フレーム、且つT
T(i)のタグがタグ・フィールド73内でセットされ
る。
【0132】ネクスト・アベイラブル・ブロック・フレ
ーム88データ構造が、値"a"にセットされる。
【0133】ソフト書込み操作220は、データ及びト
レーラ・フィールド・データを完了されていないトラン
ザクションの一部として、ネクスト・アベイラブル・ブ
ロック・フレーム88内のブロックに書込むことが理解
できよう。しかしながら、iの旧内容を保持するために
使用される特定のブロック・フレームが変更されず、そ
の特定のブロック・フレームは、その割当てビットが0
にセットされることにより解放されない。従って、旧内
容が必要に応じて、依然アクセスされるかもしれない。
【0134】図6は、本発明の好適な実施例に従い、ソ
フト読出し操作240に関わるステップを示すフローチ
ャートである。ソフト読出し操作240はソフト書込み
操作220において記憶されたデータ内容を未完了トラ
ンザクションの一部として読出す。ここで使用されるソ
フト読出し操作240の表記法は、次のようである。
【数5】Soft-Read(i)
【0135】チェック・ステップ241で、変換テーブ
ル72がチェックされ、LBA=i、TT(i)に対応
するエントリが、そのタグをセットされているか否かが
見い出される。タグがセットされてない場合、オープン
・トランザクション・エラー・コードがクライアント2
2に戻される。タグがセットされている場合、読出しス
テップ242で、クライアント22などのリクエスタが
変換テーブル72内でTT(i)により指し示されるブ
ロック・フレーム内のブロックのデータ内容202を要
求する。データ内容202がリクエスタに戻され、次に
ソフト読出し操作240が終了する。
【0136】図7は、本発明の好適な実施例に従い、読
出し操作250に関わるステップを示すフローチャート
である。読出し操作250は、トランザクションを完了
したブロック・フレーム内の論理ブロックiのデータ内
容を読出し、データ内容をクライアント22などのリク
エスタに戻すために使用される。ここで使用される読出
し操作250の表記法は、次のようである。
【数6】Read(i)
【0137】最初のステップ254で、変換テーブル7
2内でTT(i)により指し示されるブロック・フレー
ム内のブロックのデータ内容202が、TSLDから読
出される。読出し操作250は次に、TT(i)のタグ
がセットされているか否かをチェックする。タグがセッ
トされている場合、TT(i)に関わるトランザクショ
ンが完了してないことを示し、オープン・トランザクシ
ョン・エラー・コードが、前に読出されたブロック・フ
レームと共にリクエスタに戻される。TT(i)のタグ
がセットされている場合には、ブロックがオープン・ト
ランザクションに関わらないことを示し、読出し操作2
50は、ブロック・フレームをユーザに戻して完了す
る。次に、読出し操作250は終了する。
【0138】図8は、本発明の好適な実施例に従い、開
始操作260に関わるステップを示すフローチャートで
ある。開始操作260は、ここでは開始ブロックと称さ
れるブロックを記憶し、これはトランザクションの詳細
を基本TSLD上に一時的に記録する。開始操作260
はまた、図3に関連して上述したトランザクション開始
レコード92、すなわちBegin(Tid;TSLD1、TSL
D2、...TSLDm)を記憶する。トランザクションは識
別Tidを有し、次のTSLDすなわちTSLD1、T
SLD2、...TSLDmに関わると仮定する。最適に
は、TSLD1がトランザクションTidの基本TSL
D(primTSLD)として作用する。トランザクション・コ
ーディネータ(ここではクライアント22と仮定され
る)が、開始操作260を基本TSLDすなわちTSL
1上で開始する。ここで使用される開始操作260の
表記法は、次のようである。
【数7】 Begin(Tid;primTSLD、TSLD2、TSLD3、...TSLDm
【0139】記録ステップ262で、トランザクション
の識別Tid及び参加TSLDすなわちTSLD1、T
SLD2、...TSLDmが、トランザクション状態ロ
グ90に記録される。走査ステップ264で、割当てビ
ットマップ74が走査され、ネクスト・アベイラブル・
ブロック・フレーム88に記録されたブロック・フレー
ムに続く、最初に使用可能なブロック・フレームが見い
出される。可用性チェック・ステップ266で、使用可
能なブロック・フレームが見い出されない場合、チェッ
クポイント操作が実行される。次のブロック・フレーム
が見い出されると、その物理アドレスが"a"と見なされ
る。
【0140】ステップ268では、チェックポイント
数、トランザクション識別Tid、及びTSLD1(pri
mTSLD)の値が、ネクスト・アベイラブル・ブロック・
フレーム88に記録されたブロック・フレーム(ここで
は物理アドレス"p"を有すると仮定する)内のブロック
の、それぞれのトレーラ・フィールド206、212及
び214(図4参照)に書込まれる。ブロックのタイ
プ、すなわち開始ブロック・タイプに対応する値がブロ
ックのトレーラ・フィールド210に書込まれる。論理
アドレス・フィールド208内には、エントリが作成さ
れない。また、記憶ステップ268では、トランザクシ
ョンの参加TSLDすなわちTSLD1、TSL
2、...TSLDmの識別が、ブロック・フレーム"
p"内のブロックのデータ・フィールド202に記録さ
れる。
【0141】更新ステップ270では、メモリ70内に
おいて、ネクスト・アベイラブル・ブロック・フレーム
88データ構造が、値"a"にセットされる。次に、開始
操作260は終了する。
【0142】作業用割当てビットマップ174は、開始
操作260において更新されない。すなわち、A(p)
は0にセットされたままである。従って、ブロック・フ
レーム"p"は"未使用(free)"とマークされたままであ
る。しかしながら、開始操作260の完了時、"a"は"
p"よりも大きく、従って、開始操作260の後の操作
は常に、"p"よりも大きな物理アドレスを有するブロッ
クを捜し求める。ブロック・フレーム"p"は、ディスク
・アーム79の現通過の間に記憶されない。現通過は、
チェックポイント操作が実行されるとき終了する。その
間、ブロック・フレーム"p"内の全ての関連パラメータ
が、ディスク62に記憶される。チェックポイント操作
後、ブロック・フレーム"p"は、続く記憶操作のために
使用可能になる。
【0143】図9は、本発明の好適な実施例に従い、コ
ミット操作280に関わるステップを示すフローチャー
トである。コミット操作280は、所与のトランザクシ
ョンに関連付けられる全てのソフト書込み操作220が
成功裡に終了した後、実行されるべきであり、そこで実
行される一時書込み操作を永久的にする。ソフト書込み
操作220に関わるコミット操作280は、トランザク
ションTidに関わる各TSLD上で実行されるべきで
ある。ここで使用されるコミット操作280の表記法
は、次のようである。
【数8】 Commit(Tid;primTSLD、TSLD2、TSLD3、...TSLDm
【0144】前述のステップ284、286及び288
は、コミット・ブロックをディスク62に記憶する。コ
ミット・ブロックは、続くチェックポイント操作が実行
されるまで、コミット操作の一時記憶として作用する。
【0145】走査ステップ284で、割当てビットマッ
プ74が操作され、ネクスト・アベイラブル・ブロック
・フレーム88に記録されたブロック・フレームに続
く、最初に使用可能なブロック・フレームが見い出され
る。可用性チェック・ステップ286で、使用可能なブ
ロック・フレームが見い出されない場合、チェックポイ
ント操作が実行される。次のブロック・フレームが見い
出されると、その物理アドレスが"a"と見なされる。
【0146】ステップ288では、チェックポイント
数、トランザクション識別Tid、及びTSLD1(pri
mTSLD)の値が、ネクスト・アベイラブル・ブロック・
フレーム88に記録されたブロック・フレーム(ここで
は物理アドレス"p"を有すると仮定する)内のブロック
の、それぞれのトレーラ・フィールド206、212、
及び214(図4参照)に書込まれる。ブロックのタイ
プ、すなわちコミット・ブロック・タイプに対応する値
が、ブロックのトレーラ・フィールド210に書込まれ
る。論理アドレス・フィールド208内には、エントリ
が作成されない。また、記憶ステップ288では、トラ
ンザクションの参加TSLDすなわちTSLD1、TS
LD2、...TSLDmの識別が、ブロック・フレー
ム"p"内のブロックのデータ・フィールド202に記録
される。
【0147】更新ステップ290では、メモリ70内に
おいて、ネクスト・アベイラブル・ブロック・フレーム
88データ構造が、値"a"にセットされる。
【0148】走査ステップ292では、補助変換テーブ
ル172が走査され、トランザクション識別Tidを含
むエントリが探索される。見い出された各エントリに対
して、 1)作業用割当てビット174内の対応ビットが0にセ
ットされ、エントリにより指し示されるブロック・フレ
ームが使用可能になる。 2)変換テーブル72内で、補助変換テーブル172内
で見い出されたエントリに対応する各エントリのタグ
が、クリアされる。 3)補助変換テーブル172内のエントリが除去され、
テーブル172を圧縮形式で保持する。
【0149】記録ステップ294では、TSLD28が
基本TSLDすなわちTSLD1の場合、トランザクシ
ョン状態ログ90のトランザクション開始レコード(記
録ステップ262(図8)で実行された)が、トランザ
クションTid及び参加TSLDのコミット・レコード
により置換され、次にコミット操作280が終了する。
TSLD28が基本TSLDでない場合、コミット操作
280はステップ292の後、終了する。
【0150】ブロック・フレーム"p"は次のチェックポ
イント操作まで占有され、その後、ブロック・フレーム
は使用可能になる。
【0151】図10は、本発明の好適な実施例に従い、
打ち切り操作300に関わるステップを示すフローチャ
ートである。打ち切り操作300は、所与のトランザク
ションに関連付けられるソフト書込み操作220の1つ
が失敗した場合に、実行されるべきである。打ち切り操
作300は、ソフト書込み操作220で実行された一時
書込み操作を撤回し、ソフト書込み操作220が実行さ
れた前のブロック・フレームの内容を使用可能にする。
打ち切り操作300は、ソフト書込み操作220に関連
して、トランザクションTidに関わる各TSLD上で
実行される。ここで使用される打ち切り操作300の表
記法は、次のようである。
【数9】 Abort(Tid;primTSLD、TSLD2、TSLD3、...TSLDm
【0152】前述のステップ304、306、308及
び310は、打ち切りブロックをディスク62に記憶す
る。打ち切りブロックは、続くチェックポイント操作が
実行されるまで、打ち切り操作の一時記憶として作用す
る。ステップ304、306及び310は、それぞれ実
質的に、前述のステップ284、286及び290と同
じである。ステップ308では、チェックポイント数、
トランザクション識別Tid、及びTSLD1(primTSL
D)の値が、ネクスト・アベイラブル・ブロック・フレ
ーム88に記録されたブロック・フレーム(ここでは物
理アドレス"q"を有すると仮定する)内のブロックの、
それぞれのトレーラ・フィールド206、212、及び
214(図4参照)に書込まれる。ブロックのタイプ、
すなわち打ち切りブロック・タイプに対応する値が、ブ
ロックのトレーラ・フィールド210に書込まれる。論
理アドレス・フィールド208内には、エントリが作成
されない。また、記憶ステップ308では、トランザク
ションの参加TSLDすなわちTSLD1、TSL
2、...TSLDmの識別が、ブロック・フレーム"
q"内のブロックのデータ・フィールド202に記録さ
れる。
【0153】走査ステップ312では、補助変換テーブ
ル172が走査され、トランザクション識別Tidを含
むエントリが探索される。見い出された各エントリに対
して、変換テーブル72を用いて対応するブロック・フ
レームが突き止められる。作業用割当てビットマップ1
74内の対応ビットがリセットされる。また、ステップ
312では、ビットがリセットされた後、今見い出され
たエントリが、補助変換テーブル172内で見い出され
たエントリを指し示すように、変換テーブル72が更新
される。最後に、補助変換テーブル172内の各エント
リが除去され、変換テーブル72内の各対応エントリの
タグが除去される。
【0154】記録ステップ314では、TSLD28が
基本TSLDすなわちTSLD1の場合、トランザクシ
ョン状態ログ90のトランザクション開始レコード(記
録ステップ262(図8)で実行された)が、トランザ
クションTid及び参加TSLDの打ち切りレコードに
より置換され、次に打ち切り操作300が終了する。T
SLD28が基本TSLDでない場合、打ち切り操作3
00はステップ312の後、終了する。
【0155】ブロック・フレーム"q"は次のチェックポ
イント操作まで占有され、その後、ブロック・フレーム
は使用可能になる。
【0156】図11は、本発明の好適な実施例に従い、
問い合わせ操作320に関わるステップを示すフローチ
ャートである。システム20またはシステム40内の各
TSLDに対して、問い合わせ操作320が特定のトラ
ンザクションTidの状態に関するトランザクション状
態ログ90をチェックし、トランザクションに関して分
かったことを、クライアント22などのリクエスタに戻
す。ここで使用される問い合わせ操作320の表記法
は、次のようである。
【数10】Query_State(Tid)
【0157】最初の問い合わせ322では、トランザク
ション状態ログ90がチェックされ、特定のトランザク
ションに対して、開始レコードが存在するか否かが確認
される。開始レコードが存在する場合、問い合わされた
TSLDが基本TSLDであり、トランザクションTi
dがまだ進行中、すなわちオープンであることを示し、
オープン状態返却が(開始レコードから取り出される)
参加TSLDのリストと共に戻される。リストは、トラ
ンザクションがオープンであることを示し、他の参加T
SLDを列挙する。
【0158】開始レコードが存在しない場合、問い合わ
せ操作320は第2の問い合わせ324に移行し、ここ
で補助変換テーブル172がチェックされ、テーブルが
トランザクションTidに対するエントリを含むか否か
が確認される。テーブルがTidに対する1つ以上のエ
ントリを含む場合、これはトランザクションが進行中で
あることを示し、"オープン"・ステートメントが戻され
る。
【0159】問い合わせ324の応答が否定の場合、問
い合わせ操作320は第3の問い合わせ326に進み、
ここでトランザクション状態ログ90がチェックされ、
特定のトランザクションに対して、打ち切りレコードが
存在するか否かが確認される。打ち切りレコードが存在
する場合、"打ち切り"ステートメントが戻される。
【0160】問い合わせ326の応答が否定の場合、問
い合わせ操作320は第4の問い合わせ328に進み、
ここでトランザクション状態ログ90がチェックされ、
トランザクションに対してコミット・レコードが存在す
るか否かが確認される。コミット・レコードが存在する
場合、"コミット済み"ステートメントが戻される。コミ
ット・レコードが存在しない場合、"不明"ステートメン
トが戻され、問い合わせ操作320は終了する。
【0161】図12は、本発明の好適な実施例に従う、
特定のTSLDに対する問い合わせ操作320からの可
能な結果の状態図330である。状態図330に示され
るように、特定のTidはオープン状態332、打ち切
り状態334、コミット状態336、または不明の状態
338で存在し得る。
【0162】トランザクションTidの基本TSLD
が、問い合わせに"不明"状態により応答する一方、別の
非基本TSLDが問い合わせに"オープン"状態で応答す
る場合、トランザクションがコミットされたと推論され
る。これはトランザクションがコミット操作を基本TS
LDにおいて成功裡に実行したが、非基本TSLDでは
実行に失敗した場合に発生する。
【0163】図13は、本発明の好適な実施例に従い、
チェックポイント操作340に関わるステップを示すフ
ローチャートである。チェックポイント操作340の以
下の説明は、特にTSLD28(図3)に当てはまる
が、システム20またはシステム40内の全てのTSL
Dが、それぞれのチェックポイント操作を実行するに当
たり、以下で述べられるステップと実質的に同一のステ
ップに従う。チェックポイント操作340は、揮発性メ
モリ70内のTSLDインタフェース35に保持される
値をディスク62に書込む。ディスク62では、値が永
久に記憶される。最適には、チェックポイント操作34
0は、当該操作に対して事前に割当てられたディスク6
2上のブロック・フレーム82eに対して書込む。更
に、最適には、チェックポイント・データは、前のチェ
ックポイント・データが即時上書きまたは消去されない
ように、ブロック・フレーム82e内の同一の空間へは
書込まれずに交互に書込まれる。チェックポイント操作
340は、周期的間隔で、TSLDインタフェース35
からの構造をディスク62にコピーする。それにより故
障に際してTSLD28は迅速に回復できる。チェック
ポイント操作340はTSLD28によりいつでも実行
され、またネクスト・アベイラブル・ブロック・フレー
ム88を越えて使用可能なブロック・フレームが存在し
ない場合に、実行されなければならない。
【0164】最初のステップ342では、TSLDイン
タフェース35内の全てのデータ構造がロックされ、T
SLD28はチェックポイント操作以外の操作をサポー
トするのをやめる。第2のステップ344では、チェッ
クポイント操作340がファースト・アベイラブル・ブ
ロック・フレーム86の値をインタフェース35から読
出す。ファースト・アベイラブル・ブロック・フレーム
86は、作業用割当てビットマップ174から決定され
るブロック・フレームであり、これは未使用で、最小の
ディスク・セクタ・アドレスに関連付けられる。増分ス
テップ346では、チェックポイント数84の値が増分
され、増分された値が読出される。
【0165】ステップ348a、348b、348c、
348d及び348eでは、チェックポイント操作34
0が変換テーブル72、補助変換テーブル172、作業
用割当てビットマップ174、ファースト・アベイラブ
ル・ブロック・フレーム86、増分されたチェックポイ
ント数84、及びトランザクション状態ログ90をブロ
ック・フレーム32eに書込む。
【0166】第1の再割当てステップ350では、ネク
スト・アベイラブル・ブロック・フレーム88の値が、
ステップ344で見い出されたファースト・アベイラブ
ル・ブロック・フレーム86の値に割当てられ、このネ
クスト・アベイラブル・ブロック・フレームが、続く前
進後記憶操作において使用される。第2の再割当てステ
ップ352では、割当てビットマップ74が作業用割当
てビットマップ174の値を割当てられる。チェックポ
イント操作340は次に、TSLDインタフェース35
内のロック済みデータ構造をロック解除し、終了する。
その時、TSLD28が更新されたデータ構造を用いて
操作を再開する。
【0167】チェックポイント操作340が特定のTS
LD上で実行されている間、TSLDは他の操作を中止
する。システム・ユーザへの影響を低減するために、チ
ェックポイント操作340は小時間セグメントで実行さ
れる。前記の仮米国特許出願第176507号、及び前
記の米国特許出願"Enhanced Storable Disk Storage"で
は、チェックポイント操作340に実質的に類似のチェ
ックポイント操作が述べられている。更に、システム・
ユーザへの影響を低減するために、チェックポイント操
作を小時間セグメントにおいて実行する方法の詳細が述
べられている。当業者であれば、チェックポイント操作
340を小時間セグメントにおいて実行するために、米
国特許出願"Enhanced Storable Disk Storage"で述べら
れる方法を、適応化することができよう。
【0168】図14は、本発明の好適な実施例に従い、
トランザクションTidの調整操作360に関わるステ
ップを示すフローチャートである。トランザクションは
ここでは、トランザクション・コーディネータとして作
用するクライアント22により開始されるものとし、ト
ランザクションに参加するTSLDがTSLD1、TS
LD2、...、TSLDmと仮定する。
【0169】最初のステップ362では、クライアント
22が参加TSLDの1つを、トランザクションTid
のための基本TSLDとして作用するように選択する。
この選択は、最小の識別子を有するTSLD、または活
動状態の度合いが最も低いTSLDを選択することによ
り、或いは、任意に選択することにより行われる。ここ
ではTSLD1が基本TSLD(primTSLD)と仮定す
る。
【0170】トランザクション開始ステップ364で
は、クライアント22が開始操作260(図8)すなわ
ちBegin(Tid;primTSLD、TSLD2、TSLD3、...TSL
Dm)をTSLD1にサブミットし、次に最初の待機ステ
ップ365で、開始操作が成功裡に完了したことを示す
TSLD1からの肯定応答を所定時間待機する。肯定応
答が返却されない場合、クライアント22は打ち切り操
作300すなわちAbort(Tid;primTSLD、TSLD2、TSL
D3、...TSLDm)をTSLD1にサブミットし、トラン
ザクションを打ち切る。
【0171】クライアント22が、開始操作が成功裡に
完了したことを示す肯定応答を受信すると、ソフト書込
みステップ366において、クライアント22が1つ以
上のソフト書込み操作220(図5)すなわちSoft-Wri
te(Tid;primTSLD、i、contents)を、参加TSLDの
各々にサブミットする。クライアント22は次のデー
タ、すなわちトランザクション識別Tid、基本TSL
D識別(TSLD1)、関連論理ブロック・アドレス、
及び記憶される関連データ・ブロック内容を各参加TS
LDに提供する。
【0172】第2の待機ステップ368では、クライア
ント22が参加TSLDの各々から、各ソフト書込み操
作が成功裡に完了したことを示す肯定応答を受信するの
を、所定時間待機する。これは各ソフト書込み操作に対
して継続する。
【0173】肯定応答が所定時間内に全ての参加TSL
Dから受信されない場合、打ち切りステップ370で、
クライアント22は打ち切り操作300すなわちAbort
(Tid;primTSLD、TSLD2、TSLD3、...TSLDm)を、参
加TSLDの各々にサブミットする。基本TSLDが、
打ち切り操作300が成功裡に完了したことの肯定応答
に失敗すると、クライアント22はスティッキ打ち切り
操作(前述)すなわちStickyAbort(Tid;primTSLD、TS
LD2、TSLD3、...TSLDm)を、参加する非基本TSL
Dの各々にサブミットし、各サブミットの後、完了の肯
定応答を待機する。一旦肯定応答が受信されるか、全て
の参加TSLDが問い合わされ、どれもが応答しなかっ
た場合、調整操作360は終了する。
【0174】所定時間内に、肯定応答が全ての参加TS
LDから受信される場合、コミット・ステップ372
で、クライアント22がコミット操作280すなわちCo
mmit(Tid; primTSLD、 TSLD2、 TSLD3、...TSLDm
を、トランザクションの基本TSLDにサブミットす
る。基本TSLDがコミット操作に肯定応答すると、コ
ミット操作が参加TSLDの各々に送信される。基本T
SLDが、コミット操作280が成功裡に完了したこと
の肯定応答に失敗すると、クライアント22はスティッ
キ・コミット操作(前述)すなわちStickyCommit(Ti
d;primTSLD、TSLD2、TSLD3、...TSLDm)を、参加す
る非基本TSLDの各々にサブミットし、各サブミット
の後、完了の肯定応答を待機する。一旦肯定応答が受信
されるか、全ての参加TSLDが問い合わされ、どれも
が応答しなかった場合、調整操作360は終了する。
【0175】スティッキ・コミット操作は、実質的にコ
ミット操作と同一であり、対応するスティッキ・コミッ
ト・レコードは、実質的にコミット・レコードと同一で
ある。スティッキ・コミット操作及びレコードは、非基
本TSLDに適用される。スティッキ・コミット操作の
結果、スティッキ・コミット・レコードが非基本TSL
Dのトランザクション状態ログに追加される。スティッ
キ・コミット・レコードは、クライアントにより明示的
に命令されない限り、非基本TSLDのトランザクショ
ン状態ログから除去される。上述の説明は、スティッキ
打ち切り操作と打ち切り操作との関係、及びスティッキ
打ち切りレコードと打ち切りレコードとの関係にも当て
はまる。
【0176】調整操作360は、トランザクションTi
dをコミットまたは打ち切ろうと試み、トランザクショ
ンの少なくとも1参加TSLD上に、操作の結果を記録
しようとすることが理解されよう。
【0177】図15は、本発明の好適な実施例に従い、
第1の回復操作373に関わるステップを示すフローチ
ャートである。回復操作373は、システム20または
システム40内のサーバ26などの記憶サーバ故障から
の回復後に実行される。以下で詳述するように、回復操
作373は割当てビットマップ74の走査を要求する。
(前記の米国特許出願"Enhanced Storable Disk Storag
e"において、不揮発性ディスク・メモリの故障からの回
復のための代替方法が詳述されており、当業者であれ
ば、その説明をサーバ26などのサーバのシステム故障
からの回復に当てはめることができよう。この代替方法
は、最後のチェックポイント以来書込まれたブロックの
数の1次関数による時間を要する。)
【0178】最初の読出しステップ374では、最後の
チェックポイント操作340において、ディスク62に
記憶された割当てビットマップ74の値が、TSLDイ
ンタフェース35内の割当てビットマップ74及び作業
用割当てビットマップ174に読戻される。
【0179】第2の読出しステップ375では、最後の
チェックポイント操作340において、ディスク62に
記憶されたファースト・アベイラブル・ブロック・フレ
ーム86の値が、ファースト・アベイラブル・ブロック
・フレーム86及びネクスト・アベイラブル・ブロック
・フレーム88に読戻される。
【0180】第3の読出しステップ376では、最後の
チェックポイント操作340において記憶された、変換
テーブル72、補助変換テーブル172、チェックポイ
ント数84、及びトランザクション状態ログ90内の値
が、TSLDインタフェース35内のそれぞれのデータ
構造に読戻される。
【0181】第4の読出しステップ377では、ネクス
ト・アベイラブル・ブロック・フレーム88により与え
られるブロック・フレーム・アドレスに記憶されたブロ
ックが読出される。
【0182】更新ステップ378では、TSLDインタ
フェース35内のチェックポイント数84が、読出され
た各ブロックの記憶済みチェックポイント数に対応する
ことをチェックする一方で、1)(最初にステップ37
7から)読出された最後ブロックに従い、TSLDイン
タフェース35内の全ての関連データ構造を更新する。
すなわち、ブロック・フレームが記憶された間に発生し
たTSLD操作を再生する。更に、2)割当てビットマ
ップ74を順方向に走査して、使用可能なブロック・フ
レームをマークする最初のビットを突き止め、そのブロ
ック・フレーム内のブロックを読出す。更に、3)ステ
ップ378a及び378bを継続することにより、割当
てビットマップ74が順方向に完全に走査されるまで、
欠陥セクタ64のために読出すことのできないあらゆる
ブロックを無視する。これで第1の回復捜査373は終
了する。
【0183】第1の回復操作373は、最後のチェック
ポイント操作以来実行されたTSLD操作を"再生"する
プロセスにより、読出し不能のブロックにより引き起こ
された局所的エラーを除き、TSLDインタフェース3
5内のデータ構造を、実質的に完全に故障以前のそれら
の値に戻す。再生プロセスは、ディスク62に書込まれ
た最後のチェックポイント操作から、1つ以上のパラメ
ータを読出し、操作以来書込まれたブロック・フレーム
・ロケーションを確立することにより達成される。
【0184】図16は、本発明の好適な実施例に従い、
第2の回復操作380に関わるステップを示すフローチ
ャートである。第2の回復操作380は最適には、第1
の回復操作373が回復サーバ、ここではサーバ26上
で終了された後に、オープン・トランザクションのステ
ータスを決定するために実行される。
【0185】第2の回復操作380の最初のステップ3
82で、サーバ26がそのトランザクション状態ログを
走査し、TSLD28を基本TSLDとするオープン・
トランザクションを示すトランザクション開始レコード
を突き止める。各こうしたトランザクションに対して問
い合わせステップ384で、TSLD28がトランザク
ションの参加TSLDの各々にコミット・レコードか打
ち切りレコードかを問い合わせる。更新ステップ386
で、TSLD28はそのトランザクション状態ログ90
をステップ384の結果に従い更新する。これで、第2
の回復操作380が終了する。第2の回復操作380を
実行することにより、TSLD28は、自身が基本TS
LDを務めるトランザクションに関わる他のTSLDか
らの問い合わせに対して、最新の情報により応答できる
状態となる。
【0186】図17は、本発明の好適な実施例に従い、
第3の回復操作390に関わるステップを示すフローチ
ャートである。第3の回復操作390について言えば、
これはサーバ26が故障から回復後に、最適には第2の
回復操作380を実行した後に、サーバ26により実行
される。最初のステップ392では、サーバ26が前述
のように復元されたその補助変換テーブル172を走査
し、オープン状態と思われるトランザクションを見いだ
す。こうした各トランザクションに対して、サーバ26
は前述のステップを実行する。すなわち、問い合わせス
テップ394では、サーバ26は、特定のトランザクシ
ョンに対応するソフト書込みブロックを突き止め、その
トランザクション状態ログ90に問い合わせて、トラン
ザクションの状態を見いだす。トランザクション状態ロ
グ90がトランザクションの状態を提供する場合、サー
バ26はメモリ70内のデータ構造を必要に応じて更新
し、次のオープン・トランザクションに進む。
【0187】トランザクション状態ログ90がトランザ
クションの状態を提供できない場合、第2の問い合わせ
ステップ396で、トランザクションのブロック・フレ
ームのトレーラ・フィールド214内で指定される、ト
ランザクションの基本TSLDが問いただされる。サー
バ26は、基本TSLDへの問い合わせの結果を、TS
LDインタフェース35のデータ構造に組み込む。ステ
ップ392で見い出される全てのオープン・トランザク
ションが、ステップ394またはステップ396を通じ
て処理された後、第3の回復操作390が終了する。
【0188】図18は、本発明の好適な実施例に従い、
クライアントにより実行されるトランザクション完了操
作400に関わるステップを示すフローチャートであ
る。通常、これはトランザクションを実行する間にクラ
イアントの故障の結果生じる。完了操作400は最適に
は、システム20またはシステム40内のクライアント
が、特定のTSLD内の特定のブロック・フレームを読
出そうとして、オープン・トランザクション・エラー・
リターンを受信するとき、そのクライアントにより実行
される(例えば、上述のソフト書込み操作220のチェ
ック・ステップ222参照)。ここではクライアントは
クライアント22で、ブロック・フレームが、TSLD
28内のブロック・フレーム64aとする。オープン・
トランザクション・エラーは、ブロック・フレーム64
aがオープン・トランザクションに関与していることを
示す。完了操作400はオープン・トランザクションへ
の参加者が、トランザクションをコミットするか打ち切
るかに関して、合意を確立することを可能にし、それに
よりトランザクションを完了する。
【0189】最初のステップ402で、クライアント2
2はブロック・フレーム64aに対し、ソフト読出し操
作240(図6)すなわちSoft-Read(i)を実行し、ト
ランザクション識別Tid及び基本TSLDの識別を受
信する。最初の問い合わせステップ404で、クライア
ント22は基本TSLDに対して、問い合わせ操作32
0(図11)すなわちQuery_State(Tid)を実行し、受
信される応答に従い作用する。
【0190】応答がない場合、基本TSLDが機能して
いないので、クライアント22はトランザクションを完
了することができない。この場合、待機ステップ406
で、クライアント22は基本TSLDが現在機能してい
るサーバに移されるのを待機する。
【0191】最初の応答ステップ408で、基本TSL
Dが"不明"ステートメントにより応答すると、クライア
ント22は、自身がオープン・トランザクション・エラ
ー信号を受信した相手の特定のTSLD、この場合TS
LD28に対してコミット操作280すなわちCommit
(Tid;primTSLD、TSLD2、TSLD3、...TSLDm)を実行
する。
【0192】第2の応答ステップ410で、基本TSL
Dがトランザクションに参加する他のTSLDのリスト
と一緒に、"オープン"・ステートメントにより応答する
場合、第2の問い合わせステップ412で、クライアン
ト22が参加TSLDの各々に対して、問い合わせ操作
320を実行する。
【0193】いずれかの参加TSLDから確定応答、す
なわち"コミット済み"または"打ち切り"応答が受信され
る場合、第3の応答ステップ414で、クライアント2
2は残りの参加TSLDに対して、それぞれコミット操
作280または打ち切り操作300、Abort(Tid; prim
TSLD、TSLD2、TSLD3、...TSLDm)を実行する。
【0194】第2の応答ステップ412で、全ての参加
TSLDが"オープン"応答を戻す場合、第4の応答ステ
ップ416で、クライアント22は、完了操作400の
開始以来変化があった場合に備えて、再度、初期ブロッ
ク・フレームすなわちブロック・フレーム64aを読出
そうとする。変化がなかった場合、クライアント22は
参加TSLDに対して、打ち切り操作300を実行す
る。
【0195】第2の応答ステップ412で、参加TSL
Dの1つが応答しない場合、第5の応答ステップ418
で、クライアント22は特定のTSLDから応答を待機
する。なぜなら、特定の非応答TSLDが要求応答を有
するかもしれないからである。ステップ406、40
8、414、416、または418の後、完了操作40
0は終了する。
【0196】TSLD28がアクセス可能なときには常
に、TSLD28の特定のブロック・フレーム82はト
ランザクションに関与しないか、或いは関与し、変換テ
ーブル72がその関与を記す。同一のことが、システム
20またはシステム40内の他のアクセス可能なTSL
D、及びそれらのそれぞれの変換テーブルにも当てはま
る。従って、トランザクション完了操作400におい
て、クライアント22は1TSLD上のブロック・フレ
ームのブロック内容、及び別のTSLD上のブロック・
フレームのブロック内容を読出すことができ、それによ
りシステム20またはシステム40は矛盾するように思
われる。しかしながら、この場合にも、クライアント2
2はシステムのステータスをよく承知しており、任意の
未完了のトランザクションの状態について、結論に達す
ることができる。
【0197】トランザクション状態ログ90のサイズを
最小化するために、レコードはそれらがもはや要求され
ないときに、ログ90から除去される必要がある。前述
のように、基本TSLDでは、各トランザクション開始
レコードがコミット・レコードまたは打ち切りレコード
により置換される。所定時間後に、基本TSLD上のコ
ミット・レコードは除去することができる。なぜなら、
それらは要求されないからである。(上述のように、ト
ランザクションが非基本TSLD上でオープン状態であ
ることが知れており、基本TSLDが問い合わせに対し
て"不明"ステートメントにより応答する場合、トランザ
クションはコミットされたと見なされる。)一旦基本T
SLDが、関連トランザクションの全ての参加TSLD
がトランザクションの状態を承知したことを確認する
と、基本TSLD上の打ち切りレコードは除去される。
【0198】特定のトランザクションの基本TSLD
が、非基本TSLDにトランザクションについて問い合
わせると、非基本TSLDは、そのトランザクションの
コミットまたは打ち切りレコードを除去することができ
る。なぜなら、問い合わせに際して基本TSLDがトラ
ンザクション状態を記録するからである。従って、最適
には、不要なトランザクション・レコードをトランザク
ション状態ログ90から除去するために、システム内の
TSLDは上述のように調整を行う。
【0199】システム20及びシステム40は複数のT
SLD、及びTSLDを管理する複数のサーバを使用す
るが、本発明の原理は1TSLDを管理する1サーバに
も当てはまる。更に、本発明の原理は、これらのトラン
ザクションが1つ以上のTSLD上で実行される場合に
おける、複数のコンカレント・データ・トランザクショ
ンの回復及び完了にも当てはまる。なぜなら、複数のト
ランザクションが実質的に互いに独立にログに記録さ
れ、回復されるからである。
【0200】本発明の範囲は、続くデータ・ブロックの
ロケーションを示す1つ以上のパラメータが記憶装置に
書込まれ、サーバの故障後に、連続データ・ブロックか
らデータを回復する前述の方法以外の方法も含む。こう
した方法の例が、前記の仮米国特許出願第176507
号及び米国特許出願"Enhanced Storable Disk Storage"
に述べられている。
【0201】本発明の好適な実施例は、コンピュータ・
ソフトウェア製品として提供されてもよい。こうした製
品は、電子データ伝送として、またはCD−ROMなど
のコンピュータ可読媒体上で有形形式で、或いは両形式
の組み合わせとして提供される。
【0202】前述の好適な実施例は1例として引用され
たもので、本発明はここで具体的に示された例に限定さ
れるものではない。本発明の範囲は、前述の様々なフィ
ーチャの組み合わせ及び一部の組み合わせの他に、当業
者であれば、前述の説明から考え得るそれらの変形をも
含み得る。
【0203】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0204】(1)データ・トランザクションをサポー
トする装置であって、データを連続データ・ブロックと
して受信し、それぞれの物理ロケーションに記憶するよ
うに適応化された少なくとも1記憶装置と、前記連続デ
ータ・ブロックを、少なくとも幾つかのデータ・ブロッ
クと、前記連続データ・ブロック内の続くデータ・ブロ
ックの物理ロケーションを示す少なくとも1パラメータ
と一緒に、前記少なくとも1記憶装置に伝送する一方、
前記少なくとも1記憶装置に書込み、前記少なくとも1
パラメータを用いて、データ・トランザクションを完了
するように、データの状態を変換するように構成される
制御回路とを含む、装置。 (2)前記制御回路が、該制御回路を前記少なくとも1
記憶装置に接続する少なくとも1通信リンクを含み、前
記制御回路が前記少なくとも1通信リンクを介して前記
少なくとも1記憶装置を管理する、前記(1)記載の装
置。 (3)データを前記制御回路に伝送し、前記制御回路に
接続されるデータ伝送ネットワークを含む、前記(1)
記載の装置。 (4)前記データ伝送ネットワークが前記少なくとも1
記憶装置に接続され、該記憶装置にデータを伝送し、前
記制御回路が前記データ伝送ネットワークを介して、前
記少なくとも1記憶装置を管理する、前記(3)記載の
装置。 (5)データを前記制御回路に伝送するクライアントを
含む、前記(1)記載の装置。 (6)前記制御回路が、少なくとも幾つかのデータ・ブ
ロックの1つ以上の特性を示すデータを含む、1つ以上
のデータ構造を記憶するように適応化される少なくとも
1揮発性メモリを含み、前記データの少なくとも一部が
前記制御回路により、前記少なくとも1記憶装置に書込
まれ、それにより、前記少なくとも1揮発性メモリの内
容が、前記少なくとも1記憶装置に記憶される前記1つ
以上のデータ構造内の前記少なくとも一部のデータから
再生される、前記(1)記載の装置。 (7)前記データ構造の1つが、前記連続データ・ブロ
ックの論理ブロック・アドレスを、それぞれの物理アド
レスにマップし、現在オープン・データ・トランザクシ
ョンに関わるデータ・ブロックをタグ付けする変換テー
ブルを含む、前記(6)記載の装置。 (8)前記データ構造の1つが補助変換テーブルを含
み、前記補助変換テーブルがそれぞれのオープン・デー
タ・トランザクションに対して、オープン・トランザク
ションに関連付けられる論理ブロック・アドレスを、前
記データ・トランザクションの開始以前に存在した前記
連続データ・ブロックのそれぞれの物理アドレスと、前
記オープン・データ・トランザクションの識別とにマッ
プする、前記(7)記載の装置。 (9)前記制御回路がそれぞれの論理ブロック・アドレ
スを前記連続データ・ブロックに書込む、前記(7)記
載の装置。 (10)前記制御回路がデータ・トランザクションの識
別を、前記連続データ・ブロックに書込む、前記(7)
記載の装置。 (11)前記制御回路がデータ・トランザクションの状
態のレコーダの識別を、前記連続データ・ブロックに書
込む、前記(7)記載の装置。 (12)前記データ構造の1つが、前記連続データ・ブ
ロックの各々の可用性をマップする割当てビットマップ
を含む、前記(6)記載の装置。 (13)前記データ構造の1つが、前記連続データ・ブ
ロック内の次に使用可能なデータ・ブロックのロケーシ
ョンを指すポインタ値を含む、前記(6)記載の装置。 (14)前記データ構造の1つが、前記連続データ・ブ
ロック内の最初に使用可能なブロックのロケーションを
指すポインタ値を含む、前記(6)記載の装置。 (15)前記少なくとも1記憶装置が、ディスク・ヘッ
ドを有するディスクを含み、ディスク表面上での前記デ
ィスク・ヘッドの単一方向への一連の通過において、前
記制御回路が前記データ・ブロックを前記ディスクに書
込む、前記(6)記載の装置。 (16)前記一連の通過のそれぞれがチェックポイント
数を有し、前記データ構造の1つが、現チェックポイン
ト数を示す値を含む、前記(15)記載の装置。 (17)前記データ構造の1つが、前記ディスク・ヘッ
ドの前記通過の終わりに、前記連続データ・ブロックの
各々の可用性を記憶する、作業用割当てビットマップを
含む、前記(15)記載の装置。 (18)前記制御回路が、前記ディスク・ヘッドの前記
通過の終わりに、前記1つ以上のデータ構造内の少なく
とも一部のデータを、前記少なくとも1記憶装置に書込
む、前記(15)記載の装置。 (19)前記データ構造の1つが、前記データ・トラン
ザクションの少なくとも1レコードを記憶するように適
応化されたトランザクション状態ログを含み、前記少な
くとも1レコードが、前記データ・トランザクションの
識別と、前記データ・トランザクションに参加する前記
少なくとも1記憶装置の識別とを含み、前記少なくとも
1レコードが、前記トランザクションが開始されたこ
と、コミットされること、及び打ち切られることをそれ
ぞれ記録する、トランザクション開始レコード、トラン
ザクション・コミット・レコード、及びトランザクショ
ン打ち切りレコードを含むグループの少なくとも1つを
含む、前記(6)記載の装置。 (20)前記制御回路が、前記データ・ブロックの各々
の使用を示す1つ以上のフィールドを含むトレーラを連
続データ・ブロックに書込む、前記(1)記載の装置。 (21)前記1つ以上のデータ・フィールドが、前記デ
ータ・トランザクションの識別と、前記データ・トラン
ザクションのレコーダの識別とを含み、前記データ・ト
ランザクションのレコーダが、前記少なくとも1記憶装
置の1つを含む、前記(20)記載の装置。 (22)前記1つ以上のデータ・フィールドが、前記デ
ータ・ブロックの論理アドレスを含む、前記(20)記
載の装置。 (23)前記1つ以上のデータ・フィールドが、前記デ
ータ・トランザクションの状態を示すタグを含む、前記
(20)記載の装置。 (24)前記少なくとも1記憶装置を制御するディスク
制御装置を含み、前記ディスク制御装置が揮発性メモリ
の内容を、前記制御回路により前記少なくとも1記憶装
置に書込まれたデータから回復できる、前記(1)記載
の装置。 (25)前記少なくとも1パラメータが複数のパラメー
タを含む、前記(1)記載の装置。 (26)前記データ・トランザクションが複数のコンカ
レント・データ・トランザクションを含む、前記(1)
記載の装置。 (27)前記少なくとも1記憶装置が、サーバにより管
理されるディスクを含む、前記(1)記載の装置。 (28)前記少なくとも1記憶装置が複数の記憶装置を
含む、前記(1)記載の装置。 (29)前記少なくとも1パラメータが、前記データ・
トランザクションの1つ以上の状態を記録するトランザ
クション状態ログを含む、前記(1)記載の装置。 (30)前記少なくとも1パラメータが、前記データ・
トランザクションの1つ以上の状態を記録する分散トラ
ンザクション状態ログの少なくとも一部を含む、前記
(1)記載の装置。 (31)前記少なくとも1記憶装置上に記憶された情報
を回復するために、前記少なくとも1記憶装置が、他の
制御回路により操作可能なように移動可能である、前記
(1)記載の装置。 (32)データ・トランザクションを実行する方法であ
って、少なくとも幾つかのデータ・ブロックの各々、及
び連続データ・ブロック内の続くデータ・ブロックの物
理ロケーションを示す少なくとも1パラメータと共に、
データを連続データ・ブロックとして、少なくとも1記
憶装置に受信するステップと、前記少なくとも1パラメ
ータに応答して、データ・トランザクションを完了する
ように、前記少なくとも1記憶装置内のデータの状態を
変換するステップとを含む、方法。 (33)前記少なくとも1パラメータが複数のパラメー
タを含む、前記(32)記載の方法。 (34)前記データを少なくとも1記憶装置に受信する
ステップが、データ伝送ネットワークを介して、データ
を前記少なくとも1記憶装置に伝送するステップを含
む、前記(32)記載の方法。 (35)前記データを伝送するステップが、前記少なく
とも1記憶装置を前記データ伝送ネットワークに接続す
るステップを含む、前記(34)記載の方法。 (36)前記データを伝送するステップが、前記少なく
とも1記憶装置を制御回路を介して、前記データ伝送ネ
ットワークに接続するステップと、前記制御回路を前記
データ伝送ネットワークに接続するステップとを含む、
前記(34)記載の方法。 (37)前記データを受信するステップが、データをク
ライアントから受信するステップを含む、前記(32)
記載の方法。 (38)少なくとも1揮発性メモリに、前記データ・ブ
ロックの少なくとも幾つかの1つ以上の特性を示すデー
タを含む、1つ以上のデータ構造を記憶するステップ
と、前記データ構造内の少なくとも一部のデータを、前
記少なくとも1記憶装置に書込むステップとを含み、前
記少なくとも1揮発性メモリの内容が、前記少なくとも
1記憶装置に記憶される前記1つ以上のデータ構造内の
前記少なくとも一部のデータから再生される、前記(3
2)記載の方法。 (39)前記1つ以上のデータ構造を記憶するステップ
が、前記連続データ・ブロックの論理ブロック・アドレ
スを、それぞれの物理アドレスにマップし、現在オープ
ン・データ・トランザクションに関わるデータ・ブロッ
クをタグ付けする変換テーブルを記憶するステップを含
む、前記(38)記載の方法。 (40)前記1つ以上のデータ構造を記憶するステップ
が、補助変換テーブルを記憶するステップ含み、前記補
助変換テーブルが、それぞれのオープン・データ・トラ
ンザクションに対して、オープン・トランザクションに
関連付けられる論理ブロック・アドレスを前記データ・
トランザクションの開始以前に存在した前記連続データ
・ブロックのそれぞれの物理アドレスと、前記オープン
・データ・トランザクションの識別とにマップする、前
記(39)記載の方法。 (41)前記データを受信するステップが、それぞれの
前記論理ブロック・アドレスを前記連続データ・ブロッ
クに書込むステップを含む、前記(39)記載の方法。 (42)前記変換テーブルを用いて、特定のデータ・ブ
ロックを突き止め、データを前記特定のデータ・ブロッ
クから読出すステップを含む、前記(39)記載の方
法。 (43)前記1つ以上のデータ構造を記憶するステップ
が、前記連続データ・ブロックの各々の可用性を示す割
当てビットマップを記憶するステップを含む、前記(3
8)記載の方法。 (44)前記少なくとも一部のデータを少なくとも1記
憶装置に書込むステップが、データを前記連続データ・
ブロックの1つに書込むステップを含み、該書込みステ
ップが、前記1つ以上のデータ構造を走査して、前記少
なくとも1記憶装置内の使用可能なデータ・ブロックの
物理ロケーションを決定するステップと、前記データ及
び前記1つ以上のデータ構造の少なくとも幾つかの内容
を、前記物理ロケーションに書込むステップと、決定さ
れた前記物理ロケーションに応答して、前記1つ以上の
データ構造を更新するステップとを含む、前記(38)
記載の方法。 (45)前記1つ以上のデータ構造を走査するステップ
が、前記論理ブロック・アドレスがオープン・トランザ
クションに関わるか否かをチェックするステップを含
む、前記(44)記載の方法。 (46)前記データ及び前記1つ以上のデータ構造の少
なくとも幾つかの内容を書込むステップが、ソフト書込
み操作に対応する値を書込むステップと、一時書込み操
作を実行するために、前記少なくとも1記憶装置の1つ
の識別を、トランザクション状態のレコーダとして書込
むステップとを含む、前記(44)記載の方法。 (47)前記データ及び前記1つ以上のデータ構造の少
なくとも幾つかの内容を書込むステップが、開始操作に
対応する値を書込むステップを含み、前記1つ以上のデ
ータ構造を更新するステップが、前記開始操作を実行す
るために、前記トランザクションの識別と、前記少なく
とも1記憶装置の識別とを含む開始レコードを書込むス
テップを含む、前記(44)記載の方法。 (48)前記データ及び前記1つ以上のデータ構造の少
なくとも幾つかの内容を書込むステップが、コミット操
作に対応する値を書込むステップを含み、前記1つ以上
のデータ構造を更新するステップが、前記トランザクシ
ョンのオープン状態を示すタグを除去するステップと、
前記コミット操作を実行するために、前記トランザクシ
ョンの識別と、前記少なくとも1記憶装置の識別とを含
むコミット・レコードを書込むステップと、トランザク
ション状態ログを更新するステップとを含む、前記(4
4)記載の方法。 (49)前記データ及び前記1つ以上のデータ構造の少
なくとも幾つかの内容を書込むステップが、打ち切り操
作に対応する値を書込むステップを含み、前記1つ以上
のデータ構造を更新するステップが、前記トランザクシ
ョンのオープン状態を示すタグを除去するステップと、
前記打ち切り操作を実行するために、前記トランザクシ
ョンの識別と、前記少なくとも1記憶装置の識別とを含
む打ち切りレコードを書込むステップと、トランザクシ
ョン状態ログを更新するステップとを含む、前記(4
4)記載の方法。 (50)前記1つ以上のデータ構造を走査し、前記デー
タ・トランザクションの状態を決定するステップを含
む、前記(38)記載の方法。 (51)チェックポイント操作を実行するステップを含
み、前記チェックポイント操作が、前記1つ以上のデー
タ構造をロックするステップと、前記1つ以上のデータ
構造の内容を、前記少なくとも1記憶装置内のチェック
ポイント・ロケーションに書込むステップと、前記少な
くとも1記憶装置への前記内容の書込みに応答して、前
記1つ以上のデータ構造の少なくとも幾つかの内容を変
更するステップとを含む、前記(38)記載の方法。 (52)回復操作を実行するステップを含み、前記回復
操作が、前記少なくとも1記憶装置から前記1つ以上の
データ構造の内容を読出すステップと、前記内容に応答
して、前記少なくとも1揮発性メモリ内の前記1つ以上
のデータ構造を更新するステップとを含む、前記(5
1)記載の方法。 (53)前記回復操作を実行するステップが、前記チェ
ックポイント操作の実行以来書込まれた、前記1つ以上
の全てのデータ構造の全ての内容を読出すステップを含
む、前記(52)記載の方法。 (54)前記回復操作を実行するステップが、前記チェ
ックポイント操作の実行以来書込まれた、前記1つ以上
のデータ構造の全てに書込むのに要する時間よりも実質
的に少ない時間内に、前記チェックポイント操作の実行
以来書込まれた、前記1つ以上のデータ構造の全ての内
容を読出すステップを含む、前記(52)記載の方法。 (55)前記回復操作を実行するステップが、オープン
・トランザクションの状態を判断するステップと、前記
オープン・トランザクションの1つ以上のクライアント
が状態を問い合わせ、前記オープン・トランザクション
をコミットするか、または打ち切るかを決定することを
可能にするステップとを含む、前記(52)記載の方
法。 (56)トランザクション調整オペレーションを実行す
るステップを含み、前記調整オペレーションが、前記少
なくとも1記憶装置の1つを、前記データ・トランザク
ションの状態のレコーダとして選択するステップと、ト
ランザクション開始操作を前記レコーダにサブミットす
るステップと、前記少なくとも1記憶装置から、前記デ
ータ・トランザクションの状態を示す応答を、所定時間
待機するステップと、前記応答に応じて、1つ以上のソ
フト書込み操作を前記少なくとも1記憶装置にサブミッ
トするステップと、前記応答に応じて、トランザクショ
ン・コミットまたは打ち切り操作を発行することによ
り、前記トランザクションをコミットするか、または打
ち切るかを決定するステップとを含む、前記(38)記
載の方法。 (57)トランザクション完了操作を実行するステップ
を含み、前記完了操作が、前記少なくとも1記憶装置か
ら、前記データ・トランザクションの状態を示す内容を
含む連続データ・ブロックの第1のセットを読出すステ
ップと、前記連続データ・ブロックの第1のセットの内
容に応答して、前記連続データ・ブロックの第2のセッ
トを、前記少なくとも1記憶装置に書込み、前記1つ以
上のデータ構造のセットを前記少なくとも1揮発性メモ
リに記憶するステップとを含む、前記(38)記載の方
法。 (58)前記データ・トランザクションが複数のコンカ
レント・データ・トランザクションを含む、前記(3
2)記載の方法。 (59)前記少なくとも1記憶装置が、サーバにより管
理されるディスクを含む、前記(32)記載の方法。 (60)前記少なくとも1記憶装置が複数の記憶装置を
含む、前記(32)記載の方法。 (61)電子データ記憶のための装置であって、データ
を連続データ・ブロックとして受信し、それぞれの物理
ロケーションに記憶するように適応化された記憶装置
と、前記連続データ・ブロックを、少なくとも幾つかの
データ・ブロックと、前記連続データ・ブロック内の続
くデータ・ブロックの物理ロケーションを示す1つ以上
のパラメータと一緒に、前記記憶装置に伝送する一方、
前記記憶装置に書込むように構成される制御回路とを含
む、装置。 (62)前記1つ以上のパラメータが複数のパラメータ
を含む、前記(61)記載の装置。 (63)電子データ記憶のための方法であって、記憶装
置内のそれぞれ物理ロケーションに記憶される連続デー
タ・ブロックを提供するステップと、前記連続データ・
ブロック内の少なくとも幾つかのデータ・ブロックの各
々に対して、前記連続データ・ブロック内の続くデータ
・ブロックの物理ロケーションを示す1つ以上のパラメ
ータを決定するステップと、前記連続データ・ブロック
及び前記1つ以上のパラメータを前記記憶装置に記憶す
るステップとを含む、方法。 (64)前記1つ以上のパラメータが複数のパラメータ
を含む、前記(63)記載の方法。 (65)データ・トランザクションを実行するプログラ
ム命令が記録されたコンピュータ可読媒体を含むコンピ
ュータ・ソフトウェア製品であって、前記命令がコンピ
ュータにより読出されて、少なくとも幾つかのデータ・
ブロックの各々、及び連続データ・ブロック内の続くデ
ータ・ブロックの物理ロケーションを示す少なくとも1
パラメータと共に、データを連続データ・ブロックとし
て、少なくとも1記憶装置に受信するように、前記コン
ピュータに指示する命令と、前記少なくとも1パラメー
タに応答して、前記データ・トランザクションを完了す
るように、前記少なくとも1記憶装置内のデータの状態
を変換するように、前記コンピュータに指示する命令と
を含む、コンピュータ・ソフトウェア製品。 (66)電子データ記憶のためのプログラム命令が記録
されたコンピュータ可読媒体を含むコンピュータ・ソフ
トウェア製品であって、前記命令がコンピュータにより
読出されて、記憶装置内のそれぞれ物理ロケーションに
記憶される連続データ・ブロックを提供するように、前
記コンピュータに指示する命令と、前記連続データ・ブ
ロック内の少なくとも幾つかのデータ・ブロックの各々
に対して、前記連続データ・ブロック内の続くデータ・
ブロックの物理ロケーションを示す1つ以上のパラメー
タを決定するように、前記コンピュータに指示する命令
と、前記連続データ・ブロック及び前記1つ以上のパラ
メータを前記記憶装置に記憶するように、前記コンピュ
ータに指示する命令とを含む、コンピュータ・ソフトウ
ェア製品。
【図面の簡単な説明】
【図1】本発明の好適な実施例に従い、ディスクが物理
的に記憶サーバに接続され、トランザクションが発生す
る分散記憶システムを示すブロック図である。
【図2】本発明の好適な実施例に従い、ディスクが仮想
的に記憶サーバに接続され、トランザクションが発生す
る、別の分散記憶システムを示すブロック図である。
【図3】本発明の好適な実施例に従い、図1または図2
のシステムに含まれる、サーバとトランザクション支援
論理ディスク(TSLD)との関係を示すブロック図で
ある。
【図4】本発明の好適な実施例に従い、TSLDにより
記憶されるオンディスク・ブロック構造のブロック図で
ある。
【図5】本発明の好適な実施例に従い、ソフト書込み操
作に関わるステップを示すフローチャートである。
【図6】本発明の好適な実施例に従い、ソフト読出し操
作に関わるステップを示すフローチャートである。
【図7】本発明の好適な実施例に従い、読出し操作に関
わるステップを示すフローチャートである。
【図8】本発明の好適な実施例に従い、開始操作に関わ
るステップを示すフローチャートである。
【図9】本発明の好適な実施例に従い、コミット操作に
関わるステップを示すフローチャートである。
【図10】本発明の好適な実施例に従い、打ち切り操作
に関わるステップを示すフローチャートである。
【図11】本発明の好適な実施例に従い、問い合わせ操
作に関わるステップを示すフローチャートである。
【図12】本発明の好適な実施例に従い、図11の問い
合わせ操作からの可能な結果の状態図である。
【図13】本発明の好適な実施例に従い、チェックポイ
ント操作に関わるステップを示すフローチャートであ
る。
【図14】本発明の好適な実施例に従い、トランザクシ
ョンの調整操作に関わるステップを示すフローチャート
である。
【図15】本発明の好適な実施例に従い、第1の回復操
作に関わるステップを示すフローチャートである。
【図16】本発明の好適な実施例に従い、第2の回復操
作に関わるステップを示すフローチャートである。
【図17】本発明の好適な実施例に従い、第3の回復操
作に関わるステップを示すフローチャートである。
【図18】本発明の好適な実施例に従い、トランザクシ
ョン完了操作に関わるステップを示すフローチャートで
ある。
【符号の説明】
20 システム 22 クライアント 24 データ伝送ネットワーク 26、32 記憶サーバ 28、30、34 ディスク 33、35、37 制御回路 40 分散記憶システム 42 記憶エリア・ネットワーク 61 ディスク・ドライブ 62 不揮発性記憶ディスク 63 磁気媒体 64 セクタ 70 揮発性メモリ 72 変換テーブル・データ構造 73 タグ・フィールド 74 割当てビットマップ・データ構造 76 ディスク制御装置 78 ディスク・ヘッド 79 ディスク・アーム 82 ブロック・フレーム 84 チェックポイント数データ構造 86 ファースト・アベイラブル・ブロック・フレーム
・ポインタ 88 ネクスト・アベイラブル・ブロック・フレーム・
ポインタ 90 トランザクション状態ログ・データ構造 92 トランザクション開始レコード 94 TSLDのリスト 102 トランザクション・コミット・レコード 112 トランザクション打ち切りレコード 172 補助変換テーブル(ATT)データ構造 174 作業用割当てビットマップ 202 クライアント部分 204 トレーラ 206 オンディスク・チェックポイント数フィールド 208 論理ブロック・アドレス(LBA)フィールド 210 ブロック・タイプ・フィールド 212 トランザクション識別フィールド 214 基本TSLDフィールド 220 ソフト書込み操作 240 ソフト読出し操作 250 読出し操作 260 開始操作 280 コミット操作 300 打ち切り操作 320 問い合わせ操作 330 状態図 332 オープン状態 334 打ち切り状態 336 コミット状態 338 不明の状態 340 チェックポイント操作 360 調整操作 373 第1の回復操作 380 第2の回復操作 390 第3の回復操作 400 トランザクション完了操作
───────────────────────────────────────────────────── フロントページの続き (72)発明者 イスラエル・ゴールド イスラエル34525、ハイファ、ハティシュ ビ・ストリート 50 (72)発明者 ダフナ・シェインウォールド イスラエル36001、ノフィット 183 Fターム(参考) 5B065 BA06 CA13 CC08 CE02 CE12 5B082 FA16 GB06

Claims (66)

    【特許請求の範囲】
  1. 【請求項1】データ・トランザクションをサポートする
    装置であって、 データを連続データ・ブロックとして受信し、それぞれ
    の物理ロケーションに記憶するように適応化された少な
    くとも1記憶装置と、 前記連続データ・ブロックを、少なくとも幾つかのデー
    タ・ブロックと、前記連続データ・ブロック内の続くデ
    ータ・ブロックの物理ロケーションを示す少なくとも1
    パラメータと一緒に、前記少なくとも1記憶装置に伝送
    する一方、前記少なくとも1記憶装置に書込み、前記少
    なくとも1パラメータを用いて、データ・トランザクシ
    ョンを完了するように、データの状態を変換するように
    構成される制御回路とを含む、装置。
  2. 【請求項2】前記制御回路が、該制御回路を前記少なく
    とも1記憶装置に接続する少なくとも1通信リンクを含
    み、前記制御回路が前記少なくとも1通信リンクを介し
    て前記少なくとも1記憶装置を管理する、請求項1記載
    の装置。
  3. 【請求項3】データを前記制御回路に伝送し、前記制御
    回路に接続されるデータ伝送ネットワークを含む、請求
    項1記載の装置。
  4. 【請求項4】前記データ伝送ネットワークが前記少なく
    とも1記憶装置に接続され、該記憶装置にデータを伝送
    し、前記制御回路が前記データ伝送ネットワークを介し
    て、前記少なくとも1記憶装置を管理する、請求項3記
    載の装置。
  5. 【請求項5】データを前記制御回路に伝送するクライア
    ントを含む、請求項1記載の装置。
  6. 【請求項6】前記制御回路が、少なくとも幾つかのデー
    タ・ブロックの1つ以上の特性を示すデータを含む、1
    つ以上のデータ構造を記憶するように適応化される少な
    くとも1揮発性メモリを含み、前記データの少なくとも
    一部が前記制御回路により、前記少なくとも1記憶装置
    に書込まれ、それにより、前記少なくとも1揮発性メモ
    リの内容が、前記少なくとも1記憶装置に記憶される前
    記1つ以上のデータ構造内の前記少なくとも一部のデー
    タから再生される、請求項1記載の装置。
  7. 【請求項7】前記データ構造の1つが、前記連続データ
    ・ブロックの論理ブロック・アドレスを、それぞれの物
    理アドレスにマップし、現在オープン・データ・トラン
    ザクションに関わるデータ・ブロックをタグ付けする変
    換テーブルを含む、請求項6記載の装置。
  8. 【請求項8】前記データ構造の1つが補助変換テーブル
    を含み、前記補助変換テーブルがそれぞれのオープン・
    データ・トランザクションに対して、オープン・トラン
    ザクションに関連付けられる論理ブロック・アドレス
    を、前記データ・トランザクションの開始以前に存在し
    た前記連続データ・ブロックのそれぞれの物理アドレス
    と、前記オープン・データ・トランザクションの識別と
    にマップする、請求項7記載の装置。
  9. 【請求項9】前記制御回路がそれぞれの論理ブロック・
    アドレスを前記連続データ・ブロックに書込む、請求項
    7記載の装置。
  10. 【請求項10】前記制御回路がデータ・トランザクショ
    ンの識別を、前記連続データ・ブロックに書込む、請求
    項7記載の装置。
  11. 【請求項11】前記制御回路がデータ・トランザクショ
    ンの状態のレコーダの識別を、前記連続データ・ブロッ
    クに書込む、請求項7記載の装置。
  12. 【請求項12】前記データ構造の1つが、前記連続デー
    タ・ブロックの各々の可用性をマップする割当てビット
    マップを含む、請求項6記載の装置。
  13. 【請求項13】前記データ構造の1つが、前記連続デー
    タ・ブロック内の次に使用可能なデータ・ブロックのロ
    ケーションを指すポインタ値を含む、請求項6記載の装
    置。
  14. 【請求項14】前記データ構造の1つが、前記連続デー
    タ・ブロック内の最初に使用可能なブロックのロケーシ
    ョンを指すポインタ値を含む、請求項6記載の装置。
  15. 【請求項15】前記少なくとも1記憶装置が、ディスク
    ・ヘッドを有するディスクを含み、ディスク表面上での
    前記ディスク・ヘッドの単一方向への一連の通過におい
    て、前記制御回路が前記データ・ブロックを前記ディス
    クに書込む、請求項6記載の装置。
  16. 【請求項16】前記一連の通過のそれぞれがチェックポ
    イント数を有し、前記データ構造の1つが、現チェック
    ポイント数を示す値を含む、請求項15記載の装置。
  17. 【請求項17】前記データ構造の1つが、前記ディスク
    ・ヘッドの前記通過の終わりに、前記連続データ・ブロ
    ックの各々の可用性を記憶する、作業用割当てビットマ
    ップを含む、請求項15記載の装置。
  18. 【請求項18】前記制御回路が、前記ディスク・ヘッド
    の前記通過の終わりに、前記1つ以上のデータ構造内の
    少なくとも一部のデータを、前記少なくとも1記憶装置
    に書込む、請求項15記載の装置。
  19. 【請求項19】前記データ構造の1つが、前記データ・
    トランザクションの少なくとも1レコードを記憶するよ
    うに適応化されたトランザクション状態ログを含み、前
    記少なくとも1レコードが、前記データ・トランザクシ
    ョンの識別と、前記データ・トランザクションに参加す
    る前記少なくとも1記憶装置の識別とを含み、前記少な
    くとも1レコードが、前記トランザクションが開始され
    たこと、コミットされること、及び打ち切られることを
    それぞれ記録する、トランザクション開始レコード、ト
    ランザクション・コミット・レコード、及びトランザク
    ション打ち切りレコードを含むグループの少なくとも1
    つを含む、請求項6記載の装置。
  20. 【請求項20】前記制御回路が、前記データ・ブロック
    の各々の使用を示す1つ以上のフィールドを含むトレー
    ラを連続データ・ブロックに書込む、請求項1記載の装
    置。
  21. 【請求項21】前記1つ以上のデータ・フィールドが、
    前記データ・トランザクションの識別と、前記データ・
    トランザクションのレコーダの識別とを含み、前記デー
    タ・トランザクションのレコーダが、前記少なくとも1
    記憶装置の1つを含む、請求項20記載の装置。
  22. 【請求項22】前記1つ以上のデータ・フィールドが、
    前記データ・ブロックの論理アドレスを含む、請求項2
    0記載の装置。
  23. 【請求項23】前記1つ以上のデータ・フィールドが、
    前記データ・トランザクションの状態を示すタグを含
    む、請求項20記載の装置。
  24. 【請求項24】前記少なくとも1記憶装置を制御するデ
    ィスク制御装置を含み、前記ディスク制御装置が揮発性
    メモリの内容を、前記制御回路により前記少なくとも1
    記憶装置に書込まれたデータから回復できる、請求項1
    記載の装置。
  25. 【請求項25】前記少なくとも1パラメータが複数のパ
    ラメータを含む、請求項1記載の装置。
  26. 【請求項26】前記データ・トランザクションが複数の
    コンカレント・データ・トランザクションを含む、請求
    項1記載の装置。
  27. 【請求項27】前記少なくとも1記憶装置が、サーバに
    より管理されるディスクを含む、請求項1記載の装置。
  28. 【請求項28】前記少なくとも1記憶装置が複数の記憶
    装置を含む、請求項1記載の装置。
  29. 【請求項29】前記少なくとも1パラメータが、前記デ
    ータ・トランザクションの1つ以上の状態を記録するト
    ランザクション状態ログを含む、請求項1記載の装置。
  30. 【請求項30】前記少なくとも1パラメータが、前記デ
    ータ・トランザクションの1つ以上の状態を記録する分
    散トランザクション状態ログの少なくとも一部を含む、
    請求項1記載の装置。
  31. 【請求項31】前記少なくとも1記憶装置上に記憶され
    た情報を回復するために、前記少なくとも1記憶装置
    が、他の制御回路により操作可能なように移動可能であ
    る、請求項1記載の装置。
  32. 【請求項32】データ・トランザクションを実行する方
    法であって、 少なくとも幾つかのデータ・ブロックの各々、及び連続
    データ・ブロック内の続くデータ・ブロックの物理ロケ
    ーションを示す少なくとも1パラメータと共に、データ
    を連続データ・ブロックとして、少なくとも1記憶装置
    に受信するステップと、 前記少なくとも1パラメータに応答して、データ・トラ
    ンザクションを完了するように、前記少なくとも1記憶
    装置内のデータの状態を変換するステップとを含む、方
    法。
  33. 【請求項33】前記少なくとも1パラメータが複数のパ
    ラメータを含む、請求項32記載の方法。
  34. 【請求項34】前記データを少なくとも1記憶装置に受
    信するステップが、データ伝送ネットワークを介して、
    データを前記少なくとも1記憶装置に伝送するステップ
    を含む、請求項32記載の方法。
  35. 【請求項35】前記データを伝送するステップが、前記
    少なくとも1記憶装置を前記データ伝送ネットワークに
    接続するステップを含む、請求項34記載の方法。
  36. 【請求項36】前記データを伝送するステップが、 前記少なくとも1記憶装置を制御回路を介して、前記デ
    ータ伝送ネットワークに接続するステップと、 前記制御回路を前記データ伝送ネットワークに接続する
    ステップとを含む、請求項34記載の方法。
  37. 【請求項37】前記データを受信するステップが、デー
    タをクライアントから受信するステップを含む、請求項
    32記載の方法。
  38. 【請求項38】少なくとも1揮発性メモリに、前記デー
    タ・ブロックの少なくとも幾つかの1つ以上の特性を示
    すデータを含む、1つ以上のデータ構造を記憶するステ
    ップと、前記データ構造内の少なくとも一部のデータ
    を、前記少なくとも1記憶装置に書込むステップとを含
    み、前記少なくとも1揮発性メモリの内容が、前記少な
    くとも1記憶装置に記憶される前記1つ以上のデータ構
    造内の前記少なくとも一部のデータから再生される、請
    求項32記載の方法。
  39. 【請求項39】前記1つ以上のデータ構造を記憶するス
    テップが、前記連続データ・ブロックの論理ブロック・
    アドレスを、それぞれの物理アドレスにマップし、現在
    オープン・データ・トランザクションに関わるデータ・
    ブロックをタグ付けする変換テーブルを記憶するステッ
    プを含む、請求項38記載の方法。
  40. 【請求項40】前記1つ以上のデータ構造を記憶するス
    テップが、補助変換テーブルを記憶するステップ含み、
    前記補助変換テーブルが、それぞれのオープン・データ
    ・トランザクションに対して、オープン・トランザクシ
    ョンに関連付けられる論理ブロック・アドレスを前記デ
    ータ・トランザクションの開始以前に存在した前記連続
    データ・ブロックのそれぞれの物理アドレスと、前記オ
    ープン・データ・トランザクションの識別とにマップす
    る、請求項39記載の方法。
  41. 【請求項41】前記データを受信するステップが、それ
    ぞれの前記論理ブロック・アドレスを前記連続データ・
    ブロックに書込むステップを含む、請求項39記載の方
    法。
  42. 【請求項42】前記変換テーブルを用いて、特定のデー
    タ・ブロックを突き止め、データを前記特定のデータ・
    ブロックから読出すステップを含む、請求項39記載の
    方法。
  43. 【請求項43】前記1つ以上のデータ構造を記憶するス
    テップが、前記連続データ・ブロックの各々の可用性を
    示す割当てビットマップを記憶するステップを含む、請
    求項38記載の方法。
  44. 【請求項44】前記少なくとも一部のデータを少なくと
    も1記憶装置に書込むステップが、データを前記連続デ
    ータ・ブロックの1つに書込むステップを含み、該書込
    みステップが、 前記1つ以上のデータ構造を走査して、前記少なくとも
    1記憶装置内の使用可能なデータ・ブロックの物理ロケ
    ーションを決定するステップと、 前記データ及び前記1つ以上のデータ構造の少なくとも
    幾つかの内容を、前記物理ロケーションに書込むステッ
    プと、 決定された前記物理ロケーションに応答して、前記1つ
    以上のデータ構造を更新するステップとを含む、請求項
    38記載の方法。
  45. 【請求項45】前記1つ以上のデータ構造を走査するス
    テップが、前記論理ブロック・アドレスがオープン・ト
    ランザクションに関わるか否かをチェックするステップ
    を含む、請求項44記載の方法。
  46. 【請求項46】前記データ及び前記1つ以上のデータ構
    造の少なくとも幾つかの内容を書込むステップが、 ソフト書込み操作に対応する値を書込むステップと、 一時書込み操作を実行するために、前記少なくとも1記
    憶装置の1つの識別を、トランザクション状態のレコー
    ダとして書込むステップとを含む、請求項44記載の方
    法。
  47. 【請求項47】前記データ及び前記1つ以上のデータ構
    造の少なくとも幾つかの内容を書込むステップが、開始
    操作に対応する値を書込むステップを含み、前記1つ以
    上のデータ構造を更新するステップが、前記開始操作を
    実行するために、前記トランザクションの識別と、前記
    少なくとも1記憶装置の識別とを含む開始レコードを書
    込むステップを含む、請求項44記載の方法。
  48. 【請求項48】前記データ及び前記1つ以上のデータ構
    造の少なくとも幾つかの内容を書込むステップが、コミ
    ット操作に対応する値を書込むステップを含み、前記1
    つ以上のデータ構造を更新するステップが、 前記トランザクションのオープン状態を示すタグを除去
    するステップと、 前記コミット操作を実行するために、前記トランザクシ
    ョンの識別と、前記少なくとも1記憶装置の識別とを含
    むコミット・レコードを書込むステップと、 トランザクション状態ログを更新するステップとを含
    む、請求項44記載の方法。
  49. 【請求項49】前記データ及び前記1つ以上のデータ構
    造の少なくとも幾つかの内容を書込むステップが、打ち
    切り操作に対応する値を書込むステップを含み、前記1
    つ以上のデータ構造を更新するステップが、 前記トランザクションのオープン状態を示すタグを除去
    するステップと、 前記打ち切り操作を実行するために、前記トランザクシ
    ョンの識別と、前記少なくとも1記憶装置の識別とを含
    む打ち切りレコードを書込むステップと、 トランザクション状態ログを更新するステップとを含
    む、請求項44記載の方法。
  50. 【請求項50】前記1つ以上のデータ構造を走査し、前
    記データ・トランザクションの状態を決定するステップ
    を含む、請求項38記載の方法。
  51. 【請求項51】チェックポイント操作を実行するステッ
    プを含み、前記チェックポイント操作が、 前記1つ以上のデータ構造をロックするステップと、 前記1つ以上のデータ構造の内容を、前記少なくとも1
    記憶装置内のチェックポイント・ロケーションに書込む
    ステップと、 前記少なくとも1記憶装置への前記内容の書込みに応答
    して、前記1つ以上のデータ構造の少なくとも幾つかの
    内容を変更するステップとを含む、請求項38記載の方
    法。
  52. 【請求項52】回復操作を実行するステップを含み、前
    記回復操作が、 前記少なくとも1記憶装置から前記1つ以上のデータ構
    造の内容を読出すステップと、 前記内容に応答して、前記少なくとも1揮発性メモリ内
    の前記1つ以上のデータ構造を更新するステップとを含
    む、請求項51記載の方法。
  53. 【請求項53】前記回復操作を実行するステップが、前
    記チェックポイント操作の実行以来書込まれた、前記1
    つ以上の全てのデータ構造の全ての内容を読出すステッ
    プを含む、請求項52記載の方法。
  54. 【請求項54】前記回復操作を実行するステップが、前
    記チェックポイント操作の実行以来書込まれた、前記1
    つ以上のデータ構造の全てに書込むのに要する時間より
    も実質的に少ない時間内に、前記チェックポイント操作
    の実行以来書込まれた、前記1つ以上のデータ構造の全
    ての内容を読出すステップを含む、請求項52記載の方
    法。
  55. 【請求項55】前記回復操作を実行するステップが、 オープン・トランザクションの状態を判断するステップ
    と、 前記オープン・トランザクションの1つ以上のクライア
    ントが状態を問い合わせ、前記オープン・トランザクシ
    ョンをコミットするか、または打ち切るかを決定するこ
    とを可能にするステップとを含む、請求項52記載の方
    法。
  56. 【請求項56】トランザクション調整オペレーションを
    実行するステップを含み、前記調整オペレーションが、 前記少なくとも1記憶装置の1つを、前記データ・トラ
    ンザクションの状態のレコーダとして選択するステップ
    と、 トランザクション開始操作を前記レコーダにサブミット
    するステップと、前記少なくとも1記憶装置から、前記
    データ・トランザクションの状態を示す応答を、所定時
    間待機するステップと、 前記応答に応じて、1つ以上のソフト書込み操作を前記
    少なくとも1記憶装置にサブミットするステップと、 前記応答に応じて、トランザクション・コミットまたは
    打ち切り操作を発行することにより、前記トランザクシ
    ョンをコミットするか、または打ち切るかを決定するス
    テップとを含む、請求項38記載の方法。
  57. 【請求項57】トランザクション完了操作を実行するス
    テップを含み、前記完了操作が、 前記少なくとも1記憶装置から、前記データ・トランザ
    クションの状態を示す内容を含む連続データ・ブロック
    の第1のセットを読出すステップと、 前記連続データ・ブロックの第1のセットの内容に応答
    して、前記連続データ・ブロックの第2のセットを、前
    記少なくとも1記憶装置に書込み、前記1つ以上のデー
    タ構造のセットを前記少なくとも1揮発性メモリに記憶
    するステップとを含む、請求項38記載の方法。
  58. 【請求項58】前記データ・トランザクションが複数の
    コンカレント・データ・トランザクションを含む、請求
    項32記載の方法。
  59. 【請求項59】前記少なくとも1記憶装置が、サーバに
    より管理されるディスクを含む、請求項32記載の方
    法。
  60. 【請求項60】前記少なくとも1記憶装置が複数の記憶
    装置を含む、請求項32記載の方法。
  61. 【請求項61】電子データ記憶のための装置であって、 データを連続データ・ブロックとして受信し、それぞれ
    の物理ロケーションに記憶するように適応化された記憶
    装置と、 前記連続データ・ブロックを、少なくとも幾つかのデー
    タ・ブロックと、前記連続データ・ブロック内の続くデ
    ータ・ブロックの物理ロケーションを示す1つ以上のパ
    ラメータと一緒に、前記記憶装置に伝送する一方、前記
    記憶装置に書込むように構成される制御回路とを含む、
    装置。
  62. 【請求項62】前記1つ以上のパラメータが複数のパラ
    メータを含む、請求項61記載の装置。
  63. 【請求項63】電子データ記憶のための方法であって、 記憶装置内のそれぞれ物理ロケーションに記憶される連
    続データ・ブロックを提供するステップと、 前記連続データ・ブロック内の少なくとも幾つかのデー
    タ・ブロックの各々に対して、前記連続データ・ブロッ
    ク内の続くデータ・ブロックの物理ロケーションを示す
    1つ以上のパラメータを決定するステップと、 前記連続データ・ブロック及び前記1つ以上のパラメー
    タを前記記憶装置に記憶するステップとを含む、方法。
  64. 【請求項64】前記1つ以上のパラメータが複数のパラ
    メータを含む、請求項63記載の方法。
  65. 【請求項65】データ・トランザクションを実行するプ
    ログラム命令が記録されたコンピュータ可読媒体を含む
    コンピュータ・ソフトウェア製品であって、前記命令が
    コンピュータにより読出されて、 少なくとも幾つかのデータ・ブロックの各々、及び連続
    データ・ブロック内の続くデータ・ブロックの物理ロケ
    ーションを示す少なくとも1パラメータと共に、データ
    を連続データ・ブロックとして、少なくとも1記憶装置
    に受信するように、前記コンピュータに指示する命令
    と、 前記少なくとも1パラメータに応答して、前記データ・
    トランザクションを完了するように、前記少なくとも1
    記憶装置内のデータの状態を変換するように、前記コン
    ピュータに指示する命令とを含む、コンピュータ・ソフ
    トウェア製品。
  66. 【請求項66】電子データ記憶のためのプログラム命令
    が記録されたコンピュータ可読媒体を含むコンピュータ
    ・ソフトウェア製品であって、前記命令がコンピュータ
    により読出されて、 記憶装置内のそれぞれ物理ロケーションに記憶される連
    続データ・ブロックを提供するように、前記コンピュー
    タに指示する命令と、 前記連続データ・ブロック内の少なくとも幾つかのデー
    タ・ブロックの各々に対して、前記連続データ・ブロッ
    ク内の続くデータ・ブロックの物理ロケーションを示す
    1つ以上のパラメータを決定するように、前記コンピュ
    ータに指示する命令と、 前記連続データ・ブロック及び前記1つ以上のパラメー
    タを前記記憶装置に記憶するように、前記コンピュータ
    に指示する命令とを含む、コンピュータ・ソフトウェア
    製品。
JP2001251031A 2000-08-30 2001-08-22 論理ディスク上でのトランザクション・サポート Pending JP2002149454A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/651,910 US6668304B1 (en) 2000-01-18 2000-08-30 Transaction support on logical disks
US09/651910 2000-08-30

Publications (1)

Publication Number Publication Date
JP2002149454A true JP2002149454A (ja) 2002-05-24

Family

ID=24614740

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001251031A Pending JP2002149454A (ja) 2000-08-30 2001-08-22 論理ディスク上でのトランザクション・サポート

Country Status (5)

Country Link
JP (1) JP2002149454A (ja)
KR (1) KR100420549B1 (ja)
CN (1) CN1190741C (ja)
SG (1) SG99941A1 (ja)
TW (1) TW522303B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009526324A (ja) * 2006-02-10 2009-07-16 オラクル・インターナショナル・コーポレイション ロックによって管理されるリソースに対する予測的変更
CN102999434A (zh) * 2011-09-15 2013-03-27 阿里巴巴集团控股有限公司 一种内存管理方法及装置
CN103578207A (zh) * 2012-07-20 2014-02-12 中国移动通信集团公司 一种数据处理方法、装置、系统及相关设备

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100898228B1 (ko) * 2002-09-16 2009-05-18 주식회사 케이티 테이블스페이스 자동할당 장치 및 그 방법
US8495131B2 (en) 2002-10-08 2013-07-23 International Business Machines Corporation Method, system, and program for managing locks enabling access to a shared resource
US7496574B2 (en) 2003-05-01 2009-02-24 International Business Machines Corporation Managing locks and transactions
US11734393B2 (en) 2004-09-20 2023-08-22 Warner Bros. Entertainment Inc. Content distribution with renewable content protection
CN101512503B (zh) * 2005-04-29 2013-03-27 微软公司 Xml应用程序框架
JP4740766B2 (ja) * 2006-02-27 2011-08-03 富士通株式会社 データ受信装置、データ送受信システム、データ送受信システムの制御方法及びデータ受信装置の制御プログラム
GB0616068D0 (en) * 2006-08-12 2006-09-20 Ibm Method,Apparatus And Computer Program For Transaction Recovery
KR101132389B1 (ko) * 2007-04-09 2012-04-03 엘지엔시스(주) 분산자료구조 기반 체크포인트메모리 구조화 장치 및 방법
JP5461436B2 (ja) * 2008-02-11 2014-04-02 セキュアー コンテント ストレージ アソシエイション, リミテッド ライアビリティ カンパニー 簡易非自律ピアリング環境透かし、認証、及びバインド
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US20130339680A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US9384004B2 (en) 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US10509658B2 (en) * 2012-07-06 2019-12-17 Nvidia Corporation System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations
CN103235747B (zh) * 2013-04-24 2016-12-28 曙光信息产业(北京)有限公司 元数据的恢复方法和系统
CN103605583B (zh) * 2013-07-08 2017-03-15 宇龙计算机通信科技(深圳)有限公司 文件恢复方法与系统
KR102593362B1 (ko) * 2016-04-27 2023-10-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20200037584A (ko) 2018-10-01 2020-04-09 에스케이하이닉스 주식회사 메모리 시스템, 그것의 동작방법 및 메모리 시스템을 포함하는 데이터베이스 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619761A (ja) * 1992-07-06 1994-01-28 Fujitsu Ltd ファイル管理方式
JPH07175700A (ja) * 1993-12-20 1995-07-14 Fujitsu Ltd データベース管理方式
JPH0991183A (ja) * 1995-09-27 1997-04-04 Toshiba Corp データベースリカバリ装置
JP2000163294A (ja) * 1998-11-30 2000-06-16 Nec Corp データベース管理方法及びその装置並びにプログラムを記録した機械読み取り可能な記録媒体

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02310665A (ja) * 1989-05-25 1990-12-26 Toshiba Corp 分散トランザクション処理システム
US5481694A (en) * 1991-09-26 1996-01-02 Hewlett-Packard Company High performance multiple-unit electronic data storage system with checkpoint logs for rapid failure recovery
US5630047A (en) * 1995-09-12 1997-05-13 Lucent Technologies Inc. Method for software error recovery using consistent global checkpoints
US5799305A (en) * 1995-11-02 1998-08-25 Informix Software, Inc. Method of commitment in a distributed database transaction
JPH1153235A (ja) * 1997-08-08 1999-02-26 Toshiba Corp ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム
US6202067B1 (en) * 1998-04-07 2001-03-13 Lucent Technologies, Inc. Method and apparatus for correct and complete transactions in a fault tolerant distributed database system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619761A (ja) * 1992-07-06 1994-01-28 Fujitsu Ltd ファイル管理方式
JPH07175700A (ja) * 1993-12-20 1995-07-14 Fujitsu Ltd データベース管理方式
JPH0991183A (ja) * 1995-09-27 1997-04-04 Toshiba Corp データベースリカバリ装置
JP2000163294A (ja) * 1998-11-30 2000-06-16 Nec Corp データベース管理方法及びその装置並びにプログラムを記録した機械読み取り可能な記録媒体

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009526324A (ja) * 2006-02-10 2009-07-16 オラクル・インターナショナル・コーポレイション ロックによって管理されるリソースに対する予測的変更
CN102999434A (zh) * 2011-09-15 2013-03-27 阿里巴巴集团控股有限公司 一种内存管理方法及装置
CN103578207A (zh) * 2012-07-20 2014-02-12 中国移动通信集团公司 一种数据处理方法、装置、系统及相关设备
CN103578207B (zh) * 2012-07-20 2015-12-02 中国移动通信集团公司 一种数据处理方法、装置、系统及相关设备

Also Published As

Publication number Publication date
CN1190741C (zh) 2005-02-23
TW522303B (en) 2003-03-01
SG99941A1 (en) 2003-11-27
KR100420549B1 (ko) 2004-03-02
CN1365056A (zh) 2002-08-21
KR20020018158A (ko) 2002-03-07

Similar Documents

Publication Publication Date Title
US6668304B1 (en) Transaction support on logical disks
JP2002149454A (ja) 論理ディスク上でのトランザクション・サポート
JP3741609B2 (ja) 複製されたデータに独立してアクセスできるようにするためのデータプロセッシングの方法及び装置
US7991749B2 (en) Database recovery method applying update journal and database log
US7480654B2 (en) Achieving cache consistency while allowing concurrent changes to metadata
US6311193B1 (en) Computer system
US6732244B2 (en) Instant virtual copy technique with expedited creation of backup dataset inventory from source dataset inventory
US6826666B2 (en) Method and system for transporting data content on a storage area network
US6529995B1 (en) Method and apparatus for maintaining and restoring mapping table entries and data in a raid system
US7774565B2 (en) Methods and apparatus for point in time data access and recovery
EP0405859B1 (en) Method and apparatus for managing a shadow set of storage media
US7107395B1 (en) Apparatus and methods for operating a computer storage system
US6959368B1 (en) Method and apparatus for duplicating computer backup data
US5778394A (en) Space reclamation system and method for use in connection with tape logging system
US6920537B2 (en) Apparatus and methods for copying, backing up and restoring logical objects in a computer storage system by transferring blocks out of order or in parallel
US20010042222A1 (en) System and method for reconstructing data associated with protected storage volume stored in multiple modules of back-up mass data storage facility
US20040078641A1 (en) Operating system-independent file restore from disk image
CN113220729B (zh) 数据存储方法、装置、电子设备及计算机可读存储介质
US7194486B2 (en) Method and system for data processing with data replication for the same
JP4127461B2 (ja) ディスク共用ファイルシステムにおけるバックアップシステムおよび方法
JP2002318717A (ja) データベースシステム
US7587466B2 (en) Method and computer system for information notification
JP2830826B2 (ja) 分散ファイルの同期システムと方法
JPH0816881B2 (ja) データベース更新方法
JP2924786B2 (ja) 疎結合多重計算機システムにおける共有ファイルの排他制御システム、排他制御方法、および排他制御プログラムを記憶する媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050920

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20051219

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051219

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20051219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20051219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060330

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060629

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061017

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070115

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070417

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070417

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070516

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070803

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070803

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070913

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20071019

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20081216

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090528

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090602

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20090602

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090603

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090827

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100519

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20100519