JP2000284995A - データ処理装置及び記録媒体 - Google Patents
データ処理装置及び記録媒体Info
- Publication number
- JP2000284995A JP2000284995A JP11087457A JP8745799A JP2000284995A JP 2000284995 A JP2000284995 A JP 2000284995A JP 11087457 A JP11087457 A JP 11087457A JP 8745799 A JP8745799 A JP 8745799A JP 2000284995 A JP2000284995 A JP 2000284995A
- Authority
- JP
- Japan
- Prior art keywords
- log
- metadata
- transaction
- meta
- volume
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Abstract
をする際には、まず、メタデータ読み込み手段4により
メタボリューム1a〜1c内の必要なメタデータがメタ
キャッシュ3に読み込まれる。その際、読み込んだメタ
データがどのメタボリュームから読み込まれたものであ
るのかが、メタデータ管理手段5によって管理される。
ここで、トランザクション6がメタデータの内容を更新
すると、ログ採取手段7によって更新後のメタデータが
ログとして採取される。この際、メタデータが格納され
ていたメタボリューム1a〜1cの識別情報をも採取す
る。採取した情報は、ログバッファ8に保持される。そ
して、ログ書き込み手段9により、ログバッファ8内の
情報がログボリューム2に書き込まれる。
Description
修正機能を有するデータ処理装置及び記録媒体に関し、
特にログを用いてファイルシステムの不整合の修正を行
うデータ処理装置及び記録媒体に関する。
と、何らかの理由によりシステムがダウンする場合があ
る。突然のシステムダウンが発生すると、ファイルシス
テムの不整合が生じる。そこで、システムダウン後のブ
ート時には、従来であればファイルシステム全体を走査
し、その矛盾点の検出を行う。矛盾点が発見されたら、
場合に応じた変更をファイルシステムに加えることによ
って、ファイルシステムの整合性を回復していた。とこ
ろが、ファイルシステム全体を走査するには多くの時間
が必要であり、結果としてシステムダウン後の復旧の遅
れを招いていた。
ステム(OS)のような多くのコンピュータOSのファ
イルシステムでは、ファイルシステムオペレーションに
おいてファイルシステムに保存されているデータが更新
される度に、その更新情報をログ(ジャーナル)として
採取している。ファイルシステムオペレーション時に更
新情報のログ採取を行っておくことにより、システムダ
ウン後のブート時のファイルシステム整合性チェックの
フェーズでは、残されたログを順次走査し、対応する領
域へアップデートすることによって、ファイルシステム
の整合性が保証される。その結果、システムのダウン時
間が短縮される。
入することにより、次に挙げる問題が生じていた。 (1)第1の問題点 ファイルを管理するメタデータ(二次記憶装置に格納さ
れたファイルを管理するためのデータ)は、ファイルシ
ステムオペレーション時に二次記憶装置からメモリへ読
み込まれ、メモリ内において操作される。その後、所定
のタイミングで二次記憶装置へとその更新内容が反映さ
れる。ログ機構の導入時には、その二次記憶装置への反
映前に更新内容をログ専用の二次記憶装置へと記録する
必要がある。
るために、複数の二次記憶装置がメタデータに割り当て
られ、異なる二次記憶装置に割り当てられたメタデータ
を1つのファイルシステムオペレーションが操作する場
合がある。このファイルシステムオペレーションのログ
を採取する際に、メモリ内のメタデータだけをログとし
て記録していたのでは、残されたログからメタデータ毎
に異なる二次記憶装置を検索するのに時間を消費し、ロ
グ機構導入による最大のメリットである、ファイルシス
テム復元の時間短縮に悪い影響を与える。
える要因として、有限なサイズしかないログ専用の二次
記憶装置全体をファイルシステム復元時に探索すること
が考えられる。
ーションを細分化したトランザクションの完了を常に保
証しつつ動作するため、ログ機構を導入した多くのファ
イルシステムはトランザクションにシーケンス番号を与
え、ファイルシステム復元時にはシーケンス番号をもと
に最古のトランザクションを同定する。そして、最古の
トランザクションからログリプレイと呼ばれるログを用
いたファイルシステム復元操作を開始する。
装置内には、ファイルシステムの整合性を復元するため
に欠かせないログが確かに存在する可能性があるが、有
限なサイズを有効利用するためにログ専用の二次記憶装
置は過去のログを上書きしてサイクリックに利用しなけ
ればならない。このような処理を行うには、ある程度以
上古いログが必ず不必要となっていることが前提とな
る。従って、多くのログの内容は既に不必要となってい
る。すなわち、ログ専用の二次記憶装置全体を探索ある
いは反映するのは非効率的である。
号は単調増加であることが要求され、運用途中にオーバ
ーフローによってゼロに戻されてしまうことは許されな
い。これを回避するために、ファイルシステム復元作業
終了時、またはオーバーフロー直前にログ専用の二次記
憶装置全体をゼロクリアし、再度シーケンス番号ゼロか
ら順にトランザクションを処理するのが一般的である。
しかし、ログ専用の二次記憶装置をゼロクリアするため
には多くの時間が必要となる。少なくともシステムの運
用を一時停止する必要があり、サーバ装置などによるサ
ービスの提供を停止せざるを得なくなってしまう。
ステム復元時の問題であるが、ログ機構を導入すること
は通常の運用時にも問題を引き起こす可能性を持ってい
る。ログ機構は、メモリ上にログをスプールする手法
や、ログ専用の二次記憶装置として用いられるディスク
の特性を考慮したシーケンシャルアクセスなど、高速化
のための条件は整えられているが、ログの採取の仕方を
熟考しなければ、ログ採取に伴う性能劣化は非常に大き
いものとなりうる。
することは度々あるが、その都度、その同一データに対
するログを採取したのではメモリが不足し、二次記憶装
置へのI/O量が増加する。
終了したトランザクションのログを順に採取することを
要求するために、あるトランザクションが操作したログ
対象データを他のトランザクションが操作することが一
般的に不可能な状況となりうる。ここで、個々のファイ
ルの内容を対象とするトランザクションについては、フ
ァイル単位に排他制御を行うことによって、複数のトラ
ンザクションが並列実行することは比較的容易である。
しかしながら、個々のファイルによらないもの、特に領
域の割り当て情報を操作する場合には、並列実行がきわ
めて難しくなる。
合を考えると、それぞれが獲得、解放のログを採取す
る。同一の管理情報(ここでは、ビットマップを考え
る)によって管理される領域の獲得・解放処理であった
場合には、同一の管理情報が、解放された状態、獲得さ
れた状態でログに記録されることになる。
ばならないようなシステムダウンが発生するタイミング
によっては、このように別トランザクションの更新情報
を含むログの採取方式では様々な問題が生じる。
というトランザクションが獲得処理を行う場合を考え
る。ここで、トランザクションAの解放処理はトランザ
クションBの獲得処理よりも先に行われ、かつ、トラン
ザクションAはトランザクションBよりも後に終わる場
合を例に挙げる。
領域をトランザクションBが獲得してしまう場合が考え
られる。トランザクションBが先に終了することから、
残されたログには、まず獲得処理が記録され、次に解放
処理が記録される。
けが記録されており、それを復元に用いた場合には、本
来行われたはずである解放処理の記録が残されていない
ことから、該当領域が二重に獲得された状態となってし
まう。トランザクションAのログまで記録されており、
復元に用いられると、トランザクションBが利用してい
る領域がトランザクションAの解放処理のログによって
解放されている状態となってしまう。いずれも本来の状
態とは異なっており、避けなければならない。しかしな
がら、これを回避するために並列実行を制限すること
は、マルチタスクを実現したOS上のファイルシステム
の速度性能の低下に与える影響が非常に大きい。
システムを復元するために費やす時間の短縮が挙げられ
るが、そのためにトランザクションの独立性を疎かにし
たり、中途半端な状態での整合性回復によりあたかも正
常に動作しているかのように振る舞うファイルシステム
が多く見受けられる。
を記録するためのメモリ空間をファイルシステム全体で
1つのキャッシュメモリを共有していたのではトランザ
クション毎の独立性を保つのが難しく、他のトランザク
ションによる更新情報が1つのトランザクションのログ
として記録されてしまう可能性が高い。特にファイルに
対する排他で制御しきれない割り当て管理情報について
は前述の通りである。
ことから、複数のログバッファとしてログを記録するた
めのメモリをトランザクション毎に割り当て、管理する
場合に、全てのメモリサイズが同一である必要はない。
例えば、ファイルの参照時刻を更新するだけのトランザ
クションが残すログのサイズは大変小さく、巨大なデー
タ書き込み要求のトランザクションは必然的にそれだけ
大きいログサイズとなる。
て、限られたメモリ空間の有効利用を試みても、キャッ
シュメモリサイズは残されるログサイズに比較して、や
はり小さい。
ョンを分割し、中途の状態のログを出力することが考え
られる。しかし、一般にファイルを管理するメタデータ
は、トランザクションが中途の状態ではやはり中途の状
態であり、そのままログに記録したところで、そのログ
を用いて復元されるファイルシステムは中途の状態にし
かなり得ない。これではオペレーションのセマンティク
スを保証した復元とはなり得ない。
ョンの中断はファイルシステムにとって危険な状態とい
える。ログ機構の導入は、採取したログをログボリュー
ムに反映するまでは該当メタデータもキャッシュメモリ
から追い出せないことを意味する。ログがキャッシュメ
モリに入りきらないほど巨大となっているときには、メ
タデータを管理するキャッシュメモリの利用率も高くな
っていることが考えられる。ログを出力するまでメタデ
ータをキャッシュメモリから追い出せないため、このよ
うな状態で多くのトランザクションが並列実行される
と、メモリ枯渇によるハングアップ状態に陥ることも考
えられる。
憶装置についても言える。キャッシュメモリに比較すれ
ば巨大な二次記憶装置についても、メタデータ記録用の
二次記憶装置へのI/Oを削減するために、多くのログ
を有効なログとして残しておけば、それは利用可能な領
域の減少を引き起こす。その際に多数のトランザクショ
ンの並列実行を許すことはメタデータキャッシュ枯渇、
ログキャッシュ枯渇、ログ記録用二次記憶装置枯渇、な
どを誘発する可能性がある。
のであり、ファイルシステム修復処理の効率化を図った
データ処理装置を提供することを目的とする。
決するための第1の発明として、ログを用いてファイル
システムの不整合の修正を行うデータ処理装置におい
て、ファイルを管理するメタデータを記憶するための二
次記憶装置である複数のメタボリュームと、メタデータ
の更新結果であるログを記憶するための二次記憶装置で
あるログボリュームと、メタデータを記憶するために主
記憶装置内に設けられたメタキャッシュと、メタデータ
の内容が変更される際に、対象となるメタデータを前記
メタキャッシュへと読み込むメタデータ読み込み手段
と、前記メタキャッシュ内に読み込まれたメタデータの
内容を更新するトランザクションと、前記メタキャッシ
ュに読み込まれたメタデータが格納されていたメタボリ
ュームの識別情報を管理するメタデータ管理手段と、前
記メタキャッシュ内で変更されたメタデータの内容をロ
グとして採取するとともに、採取したメタデータが格納
されていたメタボリュームの識別情報を採取するログ採
取手段と、前記ログ採取手段が採取した情報を保持する
ログバッファと、前記ログバッファが保持する情報を、
適宜前記ログボリュームに格納するログ書き込み手段
と、を有することを特徴とするデータ処理装置が提供さ
れる。
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。その
際、読み込んだメタデータがどのメタボリュームから読
み込まれたものであるのかが、メタデータ管理手段によ
って管理される。ここで、トランザクションがメタデー
タの内容を更新すると、ログ採取手段によって更新後の
メタデータがログとして採取される。この際、メタデー
タが格納されていたメタボリュームの識別情報をも採取
する。採取した情報は、ログバッファに保持される。そ
して、ログ書き込み手段により、ログバッファ内の情報
がログボリュームに書き込まれる。
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータの更新結果であるログを記憶するため
の二次記憶装置であるログボリュームと、メタデータを
記憶するために主記憶装置内に設けられたメタキャッシ
ュと、メタデータの内容が変更される際に、対象となる
メタデータを前記メタキャッシュへと読み込むメタデー
タ読み込み手段と、前記メタキャッシュ内に読み込まれ
たメタデータの内容を更新するトランザクションと、前
記メタキャッシュ内で変更されたメタデータの内容をロ
グとして採取するログ採取手段と、前記ログ採取手段が
採取した情報を保持するログバッファと、前記ログボリ
ューム内の領域を定期的に循環するようにして、前記ロ
グバッファが保持する情報を前記ログボリュームに格納
するログ書き込み手段と、前記メタキャッシュ内のメタ
データをメタボリューム内に格納するメタデータ書き込
み手段と、前記メタデータ書き込み手段による書き込み
動作を監視しており、変更内容が前記メタボリュームに
反映されていないメタデータに対応する前記ログボリュ
ーム内のログを、有効なログとして指定する有効範囲監
視手段と、ファイルシステム復元要求を受け取ると、前
記ログボリュームに格納されたログの中で、前記有効範
囲監視手段により有効なログとして指定されているログ
のみを用いて、前記メタボリューム内のメタデータの不
整合を修正するファイルシステム復元手段と、を有する
ことを特徴とするデータ処理装置が提供される。
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する
と、ログ採取手段によって更新後のメタデータがログと
して採取される。採取した情報は、ログバッファに保持
される。そして、ログ書き込み手段により、ログバッフ
ァ内の情報がログボリュームに書き込まれる。その後、
メタデータ書き込み手段により、メタキャッシュ内のメ
タデータがメタボリューム内に格納される。その書き込
み動作は、有効範囲監視手段で監視されており、変更内
容がメタボリュームに反映されていないメタデータに対
応するログボリューム内のログが、有効なログとして指
定される。そして、ファイルシステム復元要求が出され
ると、ファイルシステム復元手段により、ログボリュー
ムに格納されたログの中で、有効範囲監視手段により有
効なログとして指定されているログのみを用いて、メタ
ボリューム内のメタデータの不整合が修正される。
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータの更新結果であるログを記憶するため
の二次記憶装置であるログボリュームと、メタデータを
記憶するために主記憶装置内に設けられたメタキャッシ
ュと、メタデータの内容が変更される際に、対象となる
メタデータを前記メタキャッシュへと読み込むメタデー
タ読み込み手段と、前記メタキャッシュ内に読み込まれ
たメタデータの内容を更新するトランザクションと、前
記メタキャッシュ内で変更されたメタデータの内容をロ
グとして採取するログ採取手段と、前記ログ採取手段が
採取した情報を保持するログバッファと、前記ログバッ
ファが保持する情報を前記ログボリュームに格納するロ
グ書き込み手段と、前記ログボリュームに格納されたロ
グを用いて前記メタボリューム内のメタデータの不整合
を修正するファイルシステム復元手段と、前記ファイル
システム復元手段が前記メタボリューム内のメタデータ
の不整合を修正した時に用いられたログの最後のシーケ
ンス番号を記憶する初期シーケンス番号記憶手段と、
前記ログ書き込み手段がログの書き込みを行う際に、シ
ーケンス番号を昇順で採番し、採番したシーケンス番号
を書き込むべきログに付与しており、前記ファイルシス
テム復元手段が前記メタボリューム内のメタデータの不
整合を修正した直後には、前記初期シーケンス番号記憶
手段に格納されたシーケンス番号を基準として採番する
シーケンス番号採番手段と、を有することを特徴とする
データ処理装置が提供される。
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する
と、ログ採取手段によって更新後のメタデータがログと
して採取される。採取した情報は、ログバッファに保持
される。そして、ログ書き込み手段により、ログバッフ
ァ内の情報がログボリュームに書き込まれる。その際、
シーケンス番号採番手段により、シーケンス番号が昇順
で採番され、書き込むべきログに付与される。ファイル
システムに不整合が発生すると、ファイルシステム復元
手段により、ログボリュームに残されたログを用いてメ
タデータの不整合が修正される。このとき、修正に用い
られた最後のログのシーケンス番号が初期シーケンス番
号記憶手段に記憶される。その後、ログ書き込み手段に
よりログバッファ内の情報がログボリュームに書き込ま
れると、シーケンス番号採番手段により、初期シーケン
ス番号記憶手段に格納されたシーケンス番号を基準とし
てシーケンス番号が採番され、書き込むべきログに付与
される。
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータを記憶するために主記憶装置内に設け
られたメタキャッシュと、メタデータの内容が変更され
る際に、対象となるメタデータを前記メタキャッシュへ
と読み込むメタデータ読み込み手段と、前記メタキャッ
シュ内に読み込まれたメタデータの内容を更新するトラ
ンザクションと、前記トランザクションの種別を判断
し、メタデータの更新を複数回行う可能性のあるトラン
ザクションの場合には、前記メタキャッシュ内で変更さ
れたメタデータの最終形態のみをログとして採取するロ
グ採取手段と、を有することを特徴とするデータ処理装
置が提供される。
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する。
すると、ログ採取手段により、トランザクションの種別
が判断され、メタデータの更新を複数回行う可能性のあ
るトランザクションの場合には、メタキャッシュ内で変
更されたメタデータの最終形態のみがログとして採取さ
れる。
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、メタデータに対する割り当
てを管理するための割り当て管理情報を複数の領域に分
割して保持する割り当て管理情報保持手段と、前記割り
当て管理情報保持手段内の割り当て管理情報の一部領域
の複製を生成し、獲得操作用管理情報とするとともに、
前記獲得操作用管理情報内に未獲得のメタデータがなく
なると、割り当て管理情報の別の領域の複製を前記獲得
操作用管理情報とする獲得操作用管理情報生成手段と、
メタデータの獲得及び解放要求を出力するトランザクシ
ョンと、前記トランザクションによりメタデータの獲得
要求が出された場合には、前記獲得操作用管理情報の中
の未獲得のメタデータを獲得し、獲得したメタデータを
獲得済みとするように前記獲得操作用管理情報と前記割
り当て管理情報との内容を変更するメタデータ獲得手段
と、前記トランザクションによりメタデータの解放要求
が出された場合には、指定されたメタデータが未獲得の
状態となるように、前記割り当て管理情報の内容を変更
するメタデータ解放手段と、を有することを特徴とする
データ処理装置が提供される。
操作用管理情報生成手段により、割り当て管理情報の一
部領域の複製が生成され、獲得操作用管理情報とされ
る。トランザクションにより獲得要求があると、メタデ
ータ獲得手段により、獲得操作用管理情報内の未獲得の
メタデータが獲得される。すると、獲得操作用管理情報
と割り当て管理情報との内容が更新される。また、トラ
ンザクションよりメタデータの解放要求があると、メタ
データ解放手段により該当するメタデータの解放処理が
行われる。この際、割り当て管理情報の内容のみが更新
される。ここで、獲得操作用管理情報内に未獲得のメタ
データがなくなると、割り当て管理情報内の別の領域の
複製が獲得操作用管理情報とされる。
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、メタデータに対する割り当
てを管理するための割り当て管理情報を保持する割り当
て管理情報保持手段と、メタデータの獲得及び解放要求
を出力するトランザクションと、前記トランザクション
によりメタデータの獲得要求が出された場合には、前記
割り当て管理情報保の中の未獲得のメタデータを獲得
し、獲得したメタデータを獲得済みとするように前記割
り当て管理情報の内容を変更するメタデータ獲得手段
と、前記トランザクションによりメタデータの解放要求
が出された場合には、指定されたメタデータ未獲得の状
態となるように、前記割り当て管理情報の内容を変更す
るメタデータ解放手段と、前記割り当て管理情報内の前
記メタデータ獲得手段及び前記メタデータ解放手段によ
って変更された部分の情報をログとして採取するログ採
取手段と、を有することを特徴とするデータ処理装置が
提供される。
ンザクションからメタデータの獲得要求が出されると、
メタデータ獲得手段によって未獲得のメタデータの1つ
が割り当て管理情報内から獲得され、そのメタデータが
獲得済みの状態とされる。また、トランザクションから
メタデータの解放要求が出されると、メタデータ解放手
段によって該当するメタデータが未獲得の状態に変更さ
れる。そして、ログ採取手段により、割り当て管理情報
内のメタデータ獲得手段及びメタデータ解放手段によっ
て変更された部分の情報がログとして採取される。
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータを記憶するために主記憶装置内に設け
られたメタキャッシュと、メタデータの内容が変更され
る際に、対象となるメタデータを前記メタキャッシュへ
と読み込むメタデータ読み込み手段と、前記メタキャッ
シュ内に読み込まれたメタデータの内容を更新する複数
のトランザクションと、 ログをトランザクション毎に
保持する、サイズの異なる複数のログバッファと、前記
メタキャッシュ内で変更されたメタデータの内容をログ
として採取し、前記トランザクション毎に分けて前記ロ
グバッファに格納するログ採取手段と、を有することを
特徴とするデータ処理装置が提供される。
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する。
すると、ログ採取手段により、メタキャッシュ内で変更
されたメタデータがログとして採取され、トランザクシ
ョン毎のログバッファに保持される。
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータの更新結果であるログを記憶するため
の二次記憶装置であるログボリュームと、メタデータを
記憶するために主記憶装置内に設けられたメタキャッシ
ュと、メタデータの内容が変更される際に、対象となる
メタデータを前記メタキャッシュへと読み込むメタデー
タ読み込み手段と、前記メタキャッシュ内に読み込まれ
たメタデータの内容を更新するトランザクションと、ロ
グをトランザクション毎に保持するログバッファと、前
記メタキャッシュ内で変更されたメタデータの内容をロ
グとして採取し、前記ログバッファに格納するログ採取
手段と、前記トランザクションが終了した場合に前記ロ
グバッファの内容を前記ログボリュームに書き込むとと
もに、前記トランザクションによるログが前記ログバッ
ファ内に格納しきれない場合には、前記ログバッファ内
のデータを完結したログに加工し、中間ログとして前記
ログボリューム内に格納するログ書き込み手段と、を有
することを特徴とするデータ処理装置が提供される。
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する
と、ログ採取手段によって更新後のメタデータがログと
して採取される。採取した情報は、ログバッファに保持
される。そして、ログバッファに格納しきれなくなる
か、トランザクションが終了すると、ログ書き込み手段
により、ログバッファ内の情報がログボリュームに書き
込まれる。ログバッファに格納しきれなくなった場合に
は、ログバッファの内容を完結したログに加工され、中
間ログとしてログボリュームに格納される。
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータの更新結果であるログを記憶するため
の二次記憶装置であるログボリュームと、メタデータを
記憶するために主記憶装置内に設けられたメタキャッシ
ュと、メタデータの内容が変更される際に、対象となる
メタデータを前記メタキャッシュへと読み込むメタデー
タ読み込み手段と、前記メタキャッシュ内に読み込まれ
たメタデータの内容を更新する、複数同時実行可能なト
ランザクションと、前記トランザクションからの開始要
求を受け付けると、ログ採取に関するシステムの動作状
況を判断し、前記トランザクションの受け入れ許否を判
断するトランザクション受け入れ判断手段と、前記メタ
キャッシュ内で変更されたメタデータの内容をログとし
て採取するログ採取手段と、前記ログ採取手段が採取し
た情報を保持するログバッファと、前記ログバッファが
保持する情報を、適宜前記ログボリュームに格納するロ
グ書き込み手段と、を有することを特徴とするデータ処
理装置が提供される。
ンザクションから開始要求が出されると、トランザクシ
ョン受け入れ制限手段が受け入れの許否を判断する。そ
の後、メタデータ書き込み手段によるメタデータの書き
込みが進み、有効なログの割合が減少したら、その時点
でトランザクションの開始要求を許可する。
を参照して説明する。図1は、第1の発明の原理構成図
である。この第1の発明は、複数の二次記憶装置がメタ
データに割り当てられている場合におけるファイルシス
テム不整合修復時間の短縮を図るものである。
してメタボリューム1a,1b,1cとログボリューム
2とが設けられている。各メタボリューム1a,1b,
1cには、ファイルを管理するためのメタデータが記憶
されている。また、ログボリューム2には、メタデータ
の更新結果であるログが記憶されている。また、主記憶
装置内にはメタキャッシュ3が設けられている。メタキ
ャッシュ3は、メタデータを記憶するための主記憶装置
内の記憶領域である。メタデータ読み込み手段4は、メ
タデータの内容が変更される際に、対象となるメタデー
タをメタキャッシュ3へと読み込む。メタデータ管理手
段5は、メタキャッシュ3に読み込まれたメタデータが
格納されていたメタボリューム1a,1b,1cの識別
情報を管理する。トランザクション6は、メタキャッシ
ュ3内に読み込まれたメタデータの内容を更新する。ロ
グ採取手段7は、メタキャッシュ3内で変更されたメタ
データの内容をログとして採取するとともに、採取した
メタデータが格納されていたメタボリューム1a,1
b,1cの識別情報を採取する。ログバッファ8は、ロ
グ採取手段7が採取した情報を保持する。ログ書き込み
手段9は、ログバッファ8が保持する情報を、適宜ログ
ボリューム2に格納する。
ザクション6がメタデータの更新をする際には、まず、
メタデータ読み込み手段4によりメタボリューム1a〜
1c内の必要なメタデータがメタキャッシュ3に読み込
まれる。その際、読み込んだメタデータがどのメタボリ
ュームから読み込まれたものであるのかが、メタデータ
管理手段5によって管理される。ここで、トランザクシ
ョン6がメタデータの内容を更新すると、ログ採取手段
7によって更新後のメタデータがログとして採取され
る。この際、メタデータが格納されていたメタボリュー
ム1a〜1cの識別情報をも採取する。採取した情報
は、ログバッファ8に保持される。そして、ログ書き込
み手段9により、ログバッファ8内の情報がログボリュ
ーム2に書き込まれる。
たログがどのメタボリューム1a〜1cのメタデータに
関するログであるのかを管理することができる。その結
果、複数のメタボリューム1a〜1cにメタデータが格
納されていても、ファイルシステムの不整合を修正する
ことが可能となる。
第2の発明は、ログの有効範囲を監視することで、ファ
イルシステム復元時の効率化を図ったものである。第2
の発明は、以下のような要素で構成される。
るメタデータを記憶するための二次記憶装置である。ロ
グボリューム12は、メタデータの更新結果であるログ
を記憶するための二次記憶装置である。メタキャッシュ
13は、メタデータを記憶するために主記憶装置内に設
けられた記憶領域である。メタデータ読み込み手段14
は、メタデータの内容が変更される際に、対象となるメ
タデータをメタキャッシュ13へと読み込む。トランザ
クション15は、メタキャッシュ13内に読み込まれた
メタデータの内容を更新する。ログ採取手段16は、メ
タキャッシュ13内で変更されたメタデータの内容をロ
グとして採取するとともに、採取したメタデータが格納
されていたメタボリュームの識別情報を採取する。ログ
バッファ17は、ログ採取手段16が採取した情報を保
持する。ログ書き込み手段18は、ログボリューム12
内の領域を定期的に循環するようにして、ログバッファ
17が保持する情報をログボリューム12に格納する。
メタデータ書き込み手段19は、メタキャッシュ13内
のメタデータをメタボリューム11内に格納する。有効
範囲監視手段20は、メタデータ書き込み手段19によ
る書き込み動作を監視しており、変更内容がメタボリュ
ーム11に反映されていないメタデータに対応するログ
ボリューム12内のログを、有効なログとして指定す
る。ファイルシステム復元手段21は、ファイルシステ
ム復元要求を受け取ると、ログボリューム12に格納さ
れたログの中で、有効範囲監視手段20により有効なロ
グとして指定されているログのみを用いて、メタボリュ
ーム11内のメタデータの不整合を修正する。なお、有
効範囲監視手段20による有効なログの指定方法として
は、例えば、有効範囲を示す情報を不揮発性の記録媒体
(ログボリューム12等)に記録することができる。こ
の場合、ファイルシステム復元手段21は、有効範囲が
記録された不揮発性の記録媒体内の情報を読みとること
で、有効なログと指定されているログを認識できる。
ンザクション15がメタデータの更新をする際には、ま
ず、メタデータ読み込み手段14によりメタボリューム
11内の必要なメタデータがメタキャッシュ13に読み
込まれる。ここで、トランザクション15がメタデータ
の内容を更新すると、ログ採取手段16によって更新後
のメタデータがログとして採取される。採取した情報
は、ログバッファ17に保持される。そして、ログ書き
込み手段18により、ログバッファ17内の情報がログ
ボリューム12に書き込まれる。その後、メタデータ書
き込み手段19により、メタキャッシュ13内のメタデ
ータがメタボリューム11内に格納される。その書き込
み動作は、有効範囲監視手段20で監視されており、変
更内容がメタボリューム11に反映されていないメタデ
ータに対応するログボリューム12内のログが、有効な
ログとして指定される。そして、ファイルシステム復元
要求が出されると、ファイルシステム復元手段21によ
り、ログボリューム12に格納されたログの中で、有効
範囲監視手段20により有効なログとして指定されてい
るログのみを用いて、メタボリューム11内のメタデー
タの不整合が修正される。
際には、ログボリューム12内の有効なログのみを用い
て効率よく復元処理を行うことが可能となる。図3は、
第3の発明の原理構成図である。第3の発明は、ログに
付加するシーケンス番号のデータサイズを十分大きなも
のとし、シーケンス番号を常に昇順で使い続けることが
できる(ゼロクリアが不要となる)ようにしたものであ
る。第3の実施の形態は、以下のような要素で構成され
る。
るメタデータを記憶するための二次記憶装置である。ロ
グボリューム32は、メタデータの更新結果であるログ
を記憶するための二次記憶装置である。メタキャッシュ
33は、メタデータを記憶するために主記憶装置内に設
けられた記憶領域である。メタデータ読み込み手段34
は、メタデータの内容が変更される際に、対象となるメ
タデータをメタキャッシュ33へと読み込む。トランザ
クション35は、メタキャッシュ33内に読み込まれた
メタデータの内容を更新する。ログ採取手段36は、メ
タキャッシュ33内で変更されたメタデータの内容をロ
グとして採取する。ログバッファ37は、ログ採取手段
36が採取した情報を保持する。ログ書き込み手段38
は、ログバッファが保持する情報を前記ログボリューム
に格納する。ファイルシステム復元手段39は、ログボ
リューム32に格納されたログを用いてメタボリューム
31内のメタデータの不整合を修正する。初期シーケン
ス番号記憶手段30aは、ファイルシステム復元手段3
9がメタボリューム31内のメタデータの不整合を修正
した時に用いられたログの最後のシーケンス番号を記憶
する。シーケンス番号採番手段30bは、ログ書き込み
手段38がログの書き込みを行う際に、シーケンス番号
を昇順で採番し、採番したシーケンス番号を書き込むべ
きログに付与しており、ファイルシステム復元手段39
がメタボリューム31内のメタデータの不整合を修正し
た直後には、初期シーケンス番号記憶手段30aに格納
されたシーケンス番号を基準として採番する。
ンザクション35がメタデータの更新をする際には、ま
ず、メタデータ読み込み手段34によりメタボリューム
31内の必要なメタデータがメタキャッシュ33に読み
込まれる。ここで、トランザクション35がメタデータ
の内容を更新すると、ログ採取手段36によって更新後
のメタデータがログとして採取される。採取した情報
は、ログバッファ37に保持される。そして、ログ書き
込み手段38により、ログバッファ37内の情報がログ
ボリューム32に書き込まれる。その際、シーケンス番
号採番手段30bによりシーケンス番号が昇順で採番さ
れ、書き込むべきログに付与される。また、ファイルシ
ステム復元手段39により、ログボリューム32に格納
されたログを用いてメタボリューム31内のメタデータ
の不整合が修正されると、修正した時に用いられたログ
の最後のシーケンス番号が初期シーケンス番号記憶手段
30aに記憶される。その後、ログ書き込み手段38に
より、ログバッファ37内の情報がログボリューム32
に書き込まれると、シーケンス番号採番手段30bによ
り、初期シーケンス番号採番手段30aに記憶されたシ
ーケンス番号を基準としてシーケンス番号が昇順で採番
され、書き込むべきログに付与される。
に用いたログと、ファイルシステム復元後に介したトラ
ンザクションのログとのシーケンス番号が重ならないこ
とを保証することができる。その結果、システムが使用
可能な期間中にログボリュームをゼロクリアする必要が
なくなり、ゼロクリアに伴う処理の遅延を避けることが
できる。
第4の発明は、同じメタデータに対して複数回更新処理
が行われる場合に、最終形態のメタデータのみをログと
して採取するものである。第4の発明は、以下のような
要素で構成される。
るメタデータを記憶するための二次記憶装置である。メ
タキャッシュ42は、メタデータを記憶するために主記
憶装置内に設けられた記憶領域である。メタデータ読み
込み手段43は、メタデータの内容が変更される際に、
対象となるメタデータをメタキャッシュ42へと読み込
む。トランザクション44は、メタキャッシュ42内に
読み込まれたメタデータの内容を更新する。ログ採取手
段45は、トランザクション44の種別を判断し、メタ
データの更新を複数回行う可能性のあるトランザクショ
ンの場合には、メタキャッシュ42内で変更されたメタ
データの最終形態のみをログとして採取する。ログバッ
ファ46は、ログ採取手段45が採取した情報を保持す
る。
ンザクション44がメタデータの更新をする際には、ま
ず、メタデータ読み込み手段43によりメタボリューム
41内の必要なメタデータがメタキャッシュ42に読み
込まれる。ここで、トランザクション44がメタデータ
の内容を更新する。すると、ログ採取手段45により、
トランザクション44の種別が判断され、メタデータの
更新を複数回行う可能性のあるメタデータ属性を予測す
る。予測されたメタデータ属性において、同一メタデー
タが何度も更新される可能性がある場合には、その属性
のメタデータがメタキャッシュ42内で変更された時点
ではログ採取を行わず、トランザクション44が終了し
た時点で、最終形態のメタデータをログとして採取す
る。採取した情報は、ログバッファ46に保持される。
のログを更新処理の度に採取することがなくなり、メモ
リの効率化を図ることができるともに、ログを書き出す
ときのI/Oの量も減らすことができる。
第5の発明は、メタデータ割り当て管理情報の一部の複
製を生成し、複製として生成した情報内からのみメタデ
ータの獲得を可能とし、解放する際には、割り当て管理
情報においてのみ解放された旨の情報の更新を行うこと
で、解放直後に別のトランザクションに獲得されるのを
防止したものである。第5の発明は、以下のような要素
で構成される。
ータに対する割り当てを管理するための割り当て管理情
報51aを複数の領域に分割して保持する。獲得操作用
管理情報生成手段52は、割り当て管理情報保持手段5
1内の割り当て管理情報の一部領域の複製を生成し、獲
得操作用管理情報51bとする。また、獲得操作用管理
情報51b内に未獲得のメタデータがなくなると、割り
当て管理情報の別の領域の複製を獲得操作用管理情報5
1bとする。トランザクション53は、メタデータの獲
得及び解放要求を出力する。メタデータ獲得手段54
は、トランザクション53によりメタデータの獲得要求
が出された場合には、獲得操作用管理情報51bの中の
未獲得のメタデータを獲得し、獲得したメタデータを獲
得済みとするように獲得操作用管理情報51bと割り当
て管理情報51aとの内容を変更する。メタデータ解放
手段55は、トランザクション53によりメタデータの
解放要求が出された場合には、指定されたメタデータが
未獲得の状態となるように、割り当て管理情報の内容を
変更する。
操作用管理情報生成手段52により、割り当て管理情報
51aの一部領域の複製が生成され、獲得操作用管理情
報51bとされる。トランザクション53により獲得要
求があると、メタデータ獲得手段54により、獲得操作
用管理情報51b内の未獲得のメタデータが獲得され
る。すると、獲得操作用管理情報51bと割り当て管理
情報51aとの内容が更新される。また、トランザクシ
ョン53よりメタデータの解放要求があると、メタデー
タ解放手段55により該当するメタデータの解放処理が
行われる。この際、割り当て管理情報51aの内容のみ
が更新される。ここで、獲得操作用管理情報51b内に
未獲得のメタデータがなくなると、割り当て管理情報5
1a内の別の領域の複製が獲得操作用管理情報51bと
される。
作用管理情報51bに反映されないため、解放直後のメ
タデータが他のトランザクションに獲得されることがな
くなる。その結果、解放処理を行ったトランザクション
の終了前にシステムがダウンしても、少なくとも解放前
の状態のまま保全されることが保証される。
第6の発明は、トランザクション単位に、獲得や解放に
関する情報をログとして記録することで、必要なメモリ
容量の削減を図るとともに、平行動作するトランザクシ
ョンのログに起因して割り当て管理情報に不正な状態が
発生することを防ぐものである。第6の発明は、以下の
ような要素で構成される。
ータに対する割り当てを管理するための割り当て管理情
報を保持する。トランザクション62は、メタデータの
獲得及び解放要求を出力する。メタデータ獲得手段63
は、トランザクション62によりメタデータの獲得要求
が出された場合には、獲得操作用管理情報の中の未獲得
のメタデータを獲得し、獲得したメタデータを獲得済み
とするように割り当て管理情報61aの内容を変更す
る。メタデータ解放手段64は、トランザクション62
によりメタデータの解放要求が出された場合には、指定
されたメタデータ未獲得の状態となるように、割り当て
管理情報61aの内容を変更する。ログ採取手段65
は、割り当て管理情報内のメタデータ獲得手段63及び
メタデータ解放手段64によって変更された部分の情報
をログとして採取する。ログバッファ66は、ログ採取
手段65が採取したログを保持する。
ンザクション62からメタデータの獲得要求が出される
と、メタデータ獲得手段63によって未獲得のメタデー
タの1つが割り当て管理情報61a内から獲得され、そ
のメタデータが獲得済みの状態とされる。また、トラン
ザクション62からメタデータの解放要求が出される
と、メタデータ解放手段64によって該当するメタデー
タが未獲得の状態に変更される。そして、ログ採取手段
65により、割り当て管理情報61a内のメタデータ獲
得手段63及びメタデータ解放手段64によって変更さ
れた部分の情報がログとして採取され、ログバッファ6
6に保持される。
際に、トランザクションが獲得や解放を行ったという情
報のみをログとして格納することで、メモリ等の領域を
効率よく利用することができるとともに、他トランザク
ションによる獲得や解放処理の情報がログに含まれない
ことによって、割り当て管理情報が不正な状態となるこ
とを防ぐことができる。
第7の発明は、ログバッファを複数設けることにより、
トランザクションの独立性をいっそう高めたものであ
る。第7の発明の構成要素は以下の通りである。
るメタデータを記憶するための二次記憶装置である。メ
タキャッシュ72は、メタデータを記憶するために主記
憶装置内に設けられた記憶領域である。メタデータ読み
込み手段73は、メタデータの内容が変更される際に、
対象となるメタデータをメタキャッシュ72へと読み込
む。複数のトランザクション74a〜74cは、メタキ
ャッシュ72内に読み込まれたメタデータの内容を更新
する。複数のログバッファ75a〜75eは、ログをト
ランザクション毎に保持する。各ログバッファ75a〜
75eのサイズは一定ではなく、大きなサイズや小さな
サイズが存在する。ログ採取手段76は、メタキャッシ
ュ72内で変更されたメタデータの内容をログとして採
取し、前記トランザクション毎に分けて適したサイズの
ログバッファ75a〜75eに格納する。例えば、最初
にログを格納する場合には、トランザクションの内容に
よって予想される処理に適した大きさのログバッファに
格納し、格納対象となるログバッファの記憶容量が不足
してきたら、より大きな記憶容量のログバッファへログ
を移し替え、以後、より大きな記憶容量のログバッファ
をログの格納対象とする。
ンザクション74a〜74cがメタデータの更新をする
際には、まず、メタデータ読み込み手段73によりメタ
ボリューム71内の必要なメタデータがメタキャッシュ
72に読み込まれる。ここで、トランザクション74a
〜74cがメタデータの内容を更新する。すると、ログ
採取手段76により、メタキャッシュ72内で変更され
たメタデータがログとして採取され、適したサイズのロ
グバッファ75a〜75eに保持される。
トランザクション毎に1つのログバッファを使用するよ
うにしたことで、トランザクションの独立性を保つこと
ができる。しかも、複数のサイズのログバッファを用意
し、トランザクション毎に適したサイズのログバッファ
を使用することにより、メモリを効率的に利用できる。
第8の発明は、あるトランザクションのログがログバッ
ファに入りきらない場合に、中間ログとしてログバッフ
ァの内容を書き出すものである。第8の発明の構成は以
下の通りである。
るメタデータを記憶するための二次記憶装置である。ロ
グボリューム82は、メタデータの更新結果であるログ
を記憶するための二次記憶装置である。メタキャッシュ
83は、メタデータを記憶するために主記憶装置内に設
けられた記憶領域である。メタデータ読み込み手段84
は、メタデータの内容が変更される際に、対象となるメ
タデータをメタキャッシュ83へと読み込む。トランザ
クション85は、メタキャッシュ83内に読み込まれた
メタデータの内容を更新する。ログバッファ86は、ロ
グをトランザクション毎に保持する。ログ採取手段87
は、メタキャッシュ83内で変更されたメタデータの内
容をログとして採取し、ログバッファ86に格納する。
ログ書き込み手段88は、トランザクション85が終了
した場合にログバッファ86の内容をログボリューム8
2に書き込むとともに、トランザクション85によるロ
グがログバッファ86内に格納しきれない場合には、ロ
グバッファ86内のデータを完結したログに加工し、中
間ログとしてログボリューム82内に格納する。なお、
中間ログを生成する際には、中間ログに対してトランザ
クションを実行するのに必要とされたパラメタに関する
情報を付加する。ファイルシステム復元手段89は、フ
ァイルシステム復元要求を受け取ると、ログボリューム
82に格納されたログを用いて、メタボリューム81内
のメタデータの不整合を修正する。このとき、中間ログ
を発見すると、中間ログに含まれたパラメタを用いてト
ランザクションを再実行させる。
ンザクション85がメタデータの更新をする際には、ま
ず、メタデータ読み込み手段84によりメタボリューム
81内の必要なメタデータがメタキャッシュ83に読み
込まれる。ここで、トランザクション85がメタデータ
の内容を更新すると、ログ採取手段87によって更新後
のメタデータがログとして採取される。採取した情報
は、ログバッファ86に保持される。そして、ログバッ
ファ86に格納しきれなくなるか、トランザクション8
5が終了すると、ログ書き込み手段88により、ログバ
ッファ86内の情報がログボリューム82に書き込まれ
る。ログバッファ86に格納しきれなくなった場合に
は、ログバッファ86の内容を完結したログに加工し、
中間ログとしてログボリューム82に格納する。そし
て、ファイルシステム復元要求が出されると、ファイル
システム復元手段89により、ログボリューム82に格
納されたログを用いて、メタボリューム81内のメタデ
ータの不整合が修正されるとともに、中間ログまで採取
した段階で停止しているトランザクションが再実行され
る。
うトランザクションの実行中にシステムがダウンした場
合には、途中の状態まで戻すことができるとともに、ト
ランザクションが再実行されることで、トランザクショ
ンの実行後の状態へ遷移させることができる。
トランザクションの受け入れを一定の条件によって制限
することで、メモリ枯渇等を防止するものである。第9
の発明の構成は以下の通りである。
るメタデータを記憶するための二次記憶装置である。ロ
グボリューム92は、メタデータの更新結果であるログ
を記憶するための二次記憶装置である。メタキャッシュ
94は、メタデータを記憶するために主記憶装置内に設
けられた記憶領域である。メタデータ読み込み手段93
は、メタデータの内容が変更される際に、対象となるメ
タデータをメタキャッシュ94へと読み込む。互いの同
時実行可能な複数のトランザクション90b〜90d
は、メタキャッシュ94内に読み込まれたメタデータの
内容を更新する。トランザクション受け入れ制限手段9
0aは、トランザクション90b〜90dからの開始要
求を受け付けると、ログ採取に関するシステムの動作状
況に基づいて、トランザクション90b〜90dの受け
入れ許否を判断する。受け入れ判断基準としては、例え
ばログボリューム内の有効なログが占める割合を用い
る。すなわち、有効範囲監視手段99によって有効なロ
グとされたログがログボリューム中に占める割合が一定
値以上である間は、トランザクション90b〜90dの
受け入れを拒絶する。
内で変更されたメタデータの内容をログとして採取す
る。ログバッファ95は、ログ採取手段96が採取した
情報を保持する。ログ書き込み手段97は、ログバッフ
ァ95が保持する情報を、適宜ログボリューム92に格
納する。メタデータ書き込み手段98は、メタキャッシ
ュ94内のメタデータをメタボリューム91内に格納す
る。有効範囲監視手段99は、メタデータ書き込み手段
98による書き込み動作を監視しており、変更内容が前
記メタボリュームに反映されていないメタデータに対応
するログボリューム92内のログを、有効なログとして
指定する。
ンザクション90b〜90dから開始要求が出される
と、トランザクション受け入れ制限手段90aが受け入
れの許否を判断する。例えば、有効範囲監視手段99に
より有効であると指定されたログのログボリューム92
内に示す割合が一定以上の場合には、それ以上ログが発
生しないように、トランザクションの受け入れを拒絶す
る。その後、メタデータ書き込み手段98によるメタデ
ータの書き込みが進み、有効なログの割合が減少した
ら、その時点でトランザクションの開始要求を許可す
る。
減少に伴うハングアップなどの障害の発生を防止するこ
とができる。次に、本発明の実施の形態を具体的に説明
する。
置のハードウェア構成図である。データ処理システム
は、CPU(Central Processing Unit)211を中心に
構成されている。CPU211は、バス217を介して
他の機器を制御するとともに、様々なデータ処理を行
う。バス217には、メモリ212、入力機器インタフ
ェース213、表示制御回路214、HDD(Hard Disk
Drive)インタフェース215、及びネットワークイン
タフェース216が接続されている。
きプログラムや、プログラムの実行に必要な各種データ
を一時的に保持する。入力機器インタフェース213
は、入力機器としてキーボード221とマウス222が
接続されており、これらの入力機器からの入力内容をC
PU211に伝える。
接続されており、CPU211から送られてきた画像デ
ータを表示装置223で表示可能な画像情報に変換し、
表示装置223の画面に表示させる。
DD231〜233が接続されており、CPU211か
ら送られてきたデータをHDD231〜233に格納す
るとともに、CPU211からの要求に応じてHDD2
31〜233内のデータを読み取り、CPU211に転
送する。
AN(Local Area Network)に接続されており、LANを
介してデータ通信を行う。すなわち、CPU211から
送られたデータをLANに接続された他のコンピュータ
に転送するとともに、他のコンピュータからLANを介
して送られてきたデータをCPU211に転送する。
や、そのファイルを管理するためのメタデータ及びログ
が格納されている。このような構成のシステムにおい
て、CPU211がHDD231〜233に格納された
オペレーティングシステム用のプログラムを実行するこ
とにより、本発明のログ採取機能が実現される。
ログ採取機能の構成図である。図のように、ファイルを
管理するためのメタボリューム111〜113も複数設
けられている。メタボリューム111〜113には、そ
れぞれメタデータが格納されている。メタデータは、フ
ァイルの格納場所等を管理するために必要な情報を有し
ている。
納するための二次記憶装置である。ログボリューム12
0には、ログ122の他にボリューム管理情報121が
格納されている。
作するためのメモリ上の領域である。メタキャッシュ1
30内には、操作対象となるメタデータ132とそのメ
タデータの割り当て管理情報131とが格納される。
ファ141〜144を有している。ログバッファ141
〜144のサイズは均一ではなく、大きなサイズのもの
や小さなサイズのものがある。これらのログバッファ1
41〜144には、メタキャッシュ130内で更新され
たメタデータの複製がログとして格納される。
バッファ150が設けられている。ログライトバッファ
150には、トランザクションの処理が終了した時点
で、ログバッファ141〜144内のログが転送され
る。
1〜103が並列動作している。このトランザクション
101〜103は、ファイルシステムオペレーションを
分割したものである。
あり、それぞれをメタライトデーモン104、ログライ
トデーモン105と呼ぶ。ログライトデーモン105が
ログをログ専用の二次記憶装置であるログボリューム1
20に出力する。メタライトデーモン104は、ログボ
リューム120に対してログが出力されたことを確認し
た後、そのログに対応するメタデータをメタデータ専用
の二次記憶装置であるメタボリューム111〜113に
出力する。
のような特徴を有している。第1の特徴は、各メタデー
タに対応するメタデータ管理情報として、メタボリュー
ムを識別する情報が付加されていることである。これ
は、大規模ファイルシステムに対応するためのものであ
る。すなわち、複数の二次記憶装置がメタボリューム1
11〜113として定義される場合に、メタキャッシュ
130上のメタデータ管理情報にそのメタデータが存在
するボリュームの情報を持たせている。
ある。メタデータ管理情報には、「ボリューム番号」、
「メタデータ番号」、及び「メタデータポインタ」が登
録されている。「ボリューム番号」には、対応するメタ
データが存在するボリューム番号が登録されている。
「メタデータ番号」には、ボリューム毎におけるメタデ
ータ管理番号が登録されている。すなわち、システムが
認識するボリュームのデバイス番号とそのボリューム内
の位置から算定される数値によってメタデータが管理さ
れ、メタデータ自体がそれらの値を管理情報として保持
する。「メタデータポインタ」には、メタデータの実体
のある場所を指し示している。
タデータの内容が更新されると、更新後のメタデータの
内容がログとしてログバッファに記録されるとともに、
メタデータ管理情報の内容がログに記録される。
ある。ログバッファには、「BEGINマーク」、「ボ
リューム番号」、「メタデータ番号」、「メタデータ実
体」、及び「ENDマーク」の情報を含んでいる。
内に記されているボリューム番号によって、そのログに
よって復元すべきメタデータの存在するメタボリューム
が認識される。これにより、従来技術のようにファイル
システム復元時にメタデータ番号からその存在すべきボ
リュームを決定するよりも速度向上が望め、システムダ
ウン後の大規模ファイルシステムにおいてもログ機構導
入によるファイルシステム復元時間の短縮が有効に機能
する。
更新されたメタデータが、それぞれの管理構造にリンク
ポインタを持つことである。ログとしてログボリューム
120に記録されたメタデータはメタライトリストに繋
がれ、メタボリュームヘ反映が完了した時点でこのメタ
ライトリストから外される。さらに、ログとして記録さ
れているログボリューム120内の位置情報をも、メタ
ライトリスト内に持つ。このログボリューム内位置情報
をリストを辿って検索することによって、システムダウ
ン時に必要とされるログの範囲を特定することができ
る。そこで、ここから得られる有効範囲情報をログボリ
ューム120の特定位置に設けたボリューム管理情報1
21内に記録する。有効範囲情報を記録し、ファイルシ
ステム復元時にそこに含まれるログのみをリプレイする
ことにより、ログボリューム全体を検索する必要がなく
なり、ログボリューム全体を読み込む必要のある、有効
範囲情報を記録しない従来の方式よりもファイルシステ
ムの復元時間をさらに短縮することができる。
持ったディスクアクセスを行うことで、記録すべき内容
をヘッドシークすることなしにディスクヘ保存でき、デ
ィスクアクセス時間の短縮を図っている。ところが、本
手法を採用した場合、メタデータのメタボリューム反映
時、ログボリュームヘの書き出し時に、ログボリューム
の特定位置に有効範囲情報を書き出すこととなる。これ
ではシーク削減の意図が全く意味を成さない。
ンターバルを空けて、有効範囲情報は書き出すように工
夫した。変更がある度に、常に書き込まれるわけではな
いため有効範囲情報として保存されている情報には若干
の誤差が含まれてしまう。ファイルシステム復元時にそ
の誤差を吸収する必要がある。
図中において、「●」で示すのが、まだメタボリューム
に反映が終了しておらず、ファイルシステム復元に必要
なログを意味する。「○」で示すのは、メタボリューム
に反映が完了したことによって、ファイルシステム復元
時には利用しなくても良いログである。
用いたファイルシステム復元では、ログボリューム全体
を検索し,ログに記録されたシーケンス番号から、最古
のログを求め、たとえそれがメタボリュームに反映済み
の、利用しなくても良いログであっても利用して、ログ
ボリューム全体のログを用いていた。
き出した時の有効範囲が示されている。その後、有効範
囲を書き出さずに、メタボリュームヘの反映が進み、ま
た、別のトランザクションのログがログボリュームに書
き出されたことによって、実際の有効範囲と有効範囲情
報とはズレを生じている。この時点でシステムがダウン
し、ログを用いてファイルシステムを復元する場合に
は、多少のムダが生じるが、有効範囲情報が示す先頭位
置から、ログを利用する。利用すべきログの末端は有効
範囲情報以降の一定範囲を検索しなければならないが、
その検索は有効範囲情報を書き込むインターバルに依存
し、範囲が限られている。
ョン終了時にシーケンス番号を与え、その番号にはデー
タサイズが肥大化することを考慮に入れた上で、十分大
きいデータ型を適用することである。データ型の大きさ
は、コンピュータ自身の使用可能年数の間使い続けても
枯渇しない程度のサイズとする。例えば、システムの日
時表記を4桁の十進数「1999」で表していた場合、
西暦1万年まで使用されることは想定されていない。そ
の場合、西暦9999年まで使用可能なデータ型とすれ
ば、ログに対するシーケンス番号がオーバーフローして
逆転することがないことを保証することができ、それに
より、ログボリューム全体をゼロクリアして初期化する
必要が生じない。具体的には、データ型を64ビット型
とすれば、オーバーフローすることは現実にはありえな
い(4万年ほど耐えられるものと思われる)。ファイル
システム管理情報、各トランザクションのログ、有効範
囲情報にこのシーケンス番号を含め、ログボリュームに
記録する。このように、ログに与えるシーケンス番号の
データ型に十分大きいものを適用することにより、通常
の運用時にトランザクションが動作する毎にインクリメ
ントしても、オーバーフローは現実には起こり得ない。
ルシステム全体の管理情報にこのシーケンス番号を含
め、正常なアンマウント処理時及びファイルシステム復
元時にスーパブロックに含まれるシーケンス番号を正し
く設定し、次回のマウント時にそこから得られる値を用
いる。これにより、シーケンス番号は必ず昇順となるこ
とが保証され、ファイルシステム復元時に新しいログを
古いものと取り違えないことが保証される。
よって、ファイルシステム復元時にログボリュームをゼ
ロクリアしなくとも、常に正しいログを利用することが
可能となり、ファイルシステム復元時にログボリューム
全体をゼロクリアするのに比べ、大幅な時間短縮が可能
となる。
であるファイルシステム復元の時間短縮がより一層有効
に機能することが可能となる。第4の特徴は、トランザ
クションによって更新されたメタデータが、そのメタデ
ータの属性に応じ、再度同一のトランザクションにおい
て更新される可能性のあるメタデータであった場合に
は、更新の時点ではログバッファにはコピーせず、リス
ト構造(トランスリスト)によって管理することであ
る。
更新されるメタデータとして、領域割当て管理情報をリ
スト構造で管理し、トランザクション進行中にはその中
途段階のログは採取しない。トランザクション終了時に
リスト構造を辿って、トランザクションの更新の最終状
態のみを一括してログとすることによって、ログの縮小
が図られ、それに伴いファイルシステム復元時間の短縮
が可能となる。
タデータを管理する構造にトランスリストヘのリンクポ
インタを持たせることによって実現している。トランザ
クションによって更新されたメタデータは、ただ一回し
か更新されないことが分かっているメタデータである場
合には、その時点でログバッファヘコピーされるが、以
降もトランザクション進行中に更新される可能性がある
場合には、このリンクポインタを用いてリスト構造に繋
がれる。メタデータの更新可能性の有無は、トランザク
ションの種別で判断する。例えば、データ領域の空きな
どを管理するためのトランザクションでは、何度もメタ
データが更新される。
このトランスリストを辿り、メタデータの最終形態をロ
グバッファヘコピーする。すると、結局はトランザクシ
ョンが同一メタデータを複数回更新しても、最終形態の
一回だけのログ採取で済まされる。
である。この処理は、オペレーティングシステムを実行
するCPUが行う処理である。以下、CPUがオペレー
ティングシステムを実行することにより実現する機能
を、単に「システム」ということとする。 [S1]トランザクションの開始宣言を行う。 [S2]ログ採取要求を行う。 [S3]対象メタデータの更新可能性の有無を判断す
る。更新可能性があればステップS5に進み、そうでな
ければステップS4に進む。 [S4]ログバッファへメタデータをコピーし、ステッ
プS2に進む。 [S5]対象メタデータはトランスリストに繋がれてい
るか否かを判断する。トランスリストに繋がれていれば
ステップS7に進み、そうでなければステップS6に進
む。 [S6]メタデータ毎にトランスリストに繋ぐ。 [S7]トランザクションの処理が終了するか否かを判
断する。終了するのであればステップS8に進み、そう
でなければステップS2に進む。 [S8]トランザクション終了宣言を行う。 [S9]トランスリストを辿り、繋がれている最終形態
のメタデータをそれぞれログバッファへコピーする。
の最終状態のみを一括してログとして保存することがで
きる。第5の特徴は、メタボリュームの割当て管理情報
は獲得用として通常の割当て管理情報の複製を新たに設
けたことである。ここで、割り当て管理情報として、ビ
ットマップを例に挙げて説明する。
状況を示す図である。割り当て管理情報131には、使
用されているメタデータを管理するためのビットマップ
131aが用意されている。ビットマップ131aは複
数のブロックに分けられている。そして各ブロックのビ
ットマップの各ビットが「0」か「1」かによって、対
応するメタデータが空いているか否かが示される。そし
て、ブロックに分けられたビットマップの1つの複製が
作られ、獲得用ビットマップ131bとされる。
様に未割り当て状態の領域の検索が行われる。この時、
検索対象として用いるのは獲得用ビットマップ131b
である。獲得用ビットマップ131b内から未割り当て
状態の領域(ビットが立っていない)が見つかった時に
は、その獲得要求には見つかったビット番号を返す。そ
して、獲得用ビットマップ131b及び、その複製元と
なったビットマップの対応ビットを立てる。一方、獲得
用ビットマップ131b内から未割り当て状態の領域が
見つからなかった時には、別のブロックのビットマップ
の複製を生成し、新たな獲得用ビットマップ131cと
する。
獲得処理を示すフローチャートである。この処理は、シ
ステムが行う処理である。 [S11]獲得要求を発行する。 [S12]獲得用ビットマップに空きがあるか否かを判
断する。空きがあればステップS20に進み、そうでな
ければステップS13に進む。 [S13]メモリ(メタキャッシュ130)上のビット
マップに「FreeDirty」フラグが立てられていないビッ
トマップが存在するか否かを判断する。存在すればステ
ップS14に進み、存在しなければステップS16に進
む。ここで「FreeDirty」フラグとは、一回以上の解放
処理が対象ビットマップに対してなされたことを意味す
る。 [S14]「FreeDirty」フラグが立てられていないビ
ットマップの中で、空きのあるものがあるか否かを判断
する。そのようなビットマップがあればステップS15
に進み、そうでなければステップS16に進む。 [S15]「FreeDirty」フラグが立てられておらず、
空きのあるビットマップの複製を、獲得用ビットマップ
に作成する。その後、ステップS20に進む。 [S16]メタボリューム111〜113上のビットマ
ップに空きがあるか否かを判断する。空きのあるビット
マップがあればステップS17に進み、そうでなければ
ステップS18に進む。 [S17]メタボリューム111〜113上の空きのビ
ットマップをメモリ(メタキャッシュ130)上に読み
込み、ステップS15に進む。 [S18]メモリ(メタキャッシュ130)上のビット
マップに「FreeDirty」フラグが立てられたビットマッ
プが存在するか否かを判断する。存在すればステップS
19に進み、存在しなければ、獲得不可能と判断し処理
を終了する。 [S19]「FreeDirty」フラグが立てられたビットマ
ップをメタボリュームに反映し、「clean」状態にす
る。ここで「clean」状態とは、獲得、解放の処理が全
く行われていない状態を示す。その後、ステップS13
に進む。 [S20]獲得用ビットマップのビットを立てる。 [S21]複製元ビットマップの同一ビットを立てる。 [S22]複製元ビットマップに「AllocDirty」フラグ
を立てる。ここで、「AllocDirty」フラグとは、対象ビ
ットマップから一回以上の獲得処理によって更新がなさ
れた場合に、そのビットマップの管理構造体内のフラグ
に立てる値である。「AllocDirty」フラグや「FreeDirt
y」フラグが立ったビットマップはログ採取対象であ
る。メタボリュームに反映された時にこれらのフラグは
落とされ、「clean」状態となる。
得できる。解放時にも、通常のビットマップ操作と同様
に、要求された領域が対応するビットの算出がまず行わ
れるが、対応するビットを落とす操作は、対象のビット
マップに対してのみ行い、仮にその対象ビットマップの
複製が獲得用ビットマップとして存在する場合にも、そ
の獲得用ビットマップに対しては行わない。
る。この処理は、システムが行う。 [S31]解放要求を出す。 [S32]対象ビットマップがメモリ(メタキャッシュ
130)上にあるか否かを判断する。対象ビットマップ
があればステップS34に進み、そうでなければステッ
プS33に進む。 [S33]メタボリューム111〜113上の対象ビッ
トマップをメモリ(メタキャッシュ130)上に読み込
む。 [S34]対象ビットマップの対応するビットを落と
す。 [S35]対象ビットマップに「FreeDirty」フラグを
立てる。
した領域を即座に別の用途に利用してしまうことを回避
することが可能となり、システムダウン時に中途までし
か終了していなかった解放トランザクションが解放した
はずである領域は、解放される直前の状態のまま保全さ
れることが保証できる。
処理、Bというトランザクションが獲得処理を行う場合
を考える。ここで、トランザクションAの解放処理はト
ランザクションBの獲得処理よりも先に行われ、かつ、
トランザクションAはトランザクションBよりも後に終
わる場合を例に挙げる。
と終了の状況を示す図である。この図において、各トラ
ンザクションは「BEGIN」で始まり、「END」で
終わることを意味し、トランザクションの「○」が解放
処理を、「●」が獲得処理を意味する。
処理がトランザクションBの獲得処理よりも先に行わ
れ、かつ、トランザクションBのほうがトランザクショ
ンAよりも先に終了した場合に従来のログ採取方式では
問題が生ずることは既に述べた。
ザクションBが獲得する領域がトランザクションAが解
放した領域となることは基本的にはなく、領域枯渇状態
に近く、どうしてもこの領域を獲得せねばならない時に
は、一旦、該当ビットマップをメタボリュームに反映し
た後、獲得処理が行われる。これにより、ファイルシス
テム復元時に必要とされる、メタボリュームに未反映な
メタデータを対象とするログを用いた復元では、管理情
報上、二重獲得と見えるようなログは残り得ない。
ンザクションAの解放処理が記録されないため、トラン
ザクションBのログよりも後に復元に用いるトランザク
ションAのログによって、トランザクションBが獲得し
た領域を変更されることもありえない。
入にあたり、獲得・解放操作のログとして、その獲得・
解放した対象の情報(このビットを立てた・落した)の
みを記録することである。これによって、複数の獲得・
解放要求に対して、要求の発生後、トランザクションの
終了時点までをシリアライズすることなくログ管理で
き、かつログ採取量は減少し、複数トランザクション動
作による変更をメタボリュームヘ反映する回数をも減少
させることができる。
数のログバッファで管理し、この時、いくつかの異なる
サイズとすることである。ログキャッシュ140を分割
して複数のログバッファとして管理することによって、
トランザクションの独立性を確立することが容易となる
とともに、有限なメモリ空間を有効に活用することが可
能となる。
新するより以前に、自分がメタデータを更新する旨、シ
ステムに宣言する。この時、トランザクションの種別よ
り予測されるログ採取情報に応じて、最適なサイズのロ
グバッファがシステムより与えられ、トランザクション
進行に伴い蓄積されるログはここへ溜められることとな
る。上記第6の特徴で説明した手法に加え、トランザク
ション毎に異なるログバッファを用いることによって、
複数のトランザクション更新の混じらない、純粋なログ
として残すことが可能である。
手法に加え、トランザクションの開始時に予測したログ
採取量よりも多くのログを採取しなければならなかった
場合に、与えられたログバッファから、さらに大きいロ
グバッファへ移行することである。システムの状況に応
じて、トランザクションによって残されるログのサイズ
は変動し、その差異を複雑な処理を必要とせず、かつ、
有限なメモリ空間を有効に活用して吸収することが可能
である。
い場合には、ログボリュームへ中間ログを書き出すとと
もに、中間ログを書き出すことによる矛盾の発生を防止
する機能を備えたことである。
させるために、ログライトバッファと呼ぶ二次キャッシ
ュ領域を設けている。終了したトランザクションのログ
は、ログバッファからこのログライトバッファヘ移さ
れ、適時にログライトデーモン105によってログボリ
ュームヘ書き出される。この適時とは、負荷が低い場合
には一定の周期で良いが、トランザクションによるメタ
データの更新量が多く、最大のログバッファでも収まら
ない場合などには強制的なI/O発行が必要とされる。
このような場合において、中途の段階でのログの出力で
は、まだ更新されていない(かもしれない)メタデータ
を含めた書き出しをファイルシステムの整合性を保つた
めには必要である。
ることを考慮した上で、ログバッファ内に収まりきらな
いログをトランザクション途中で出力する時に、残され
るログによって復元されるファイルシステムの整合性を
正当なものとするための手法を提案している。
高くない場合には、ログのログボリュームに対するI/
Oを極力少なくするために事前に与えられた周期に応じ
て定期的にデーモンによって行われる。しかし、ログバ
ッファが枯渇し、以降のトランザクション進行で溜めら
れるログが収まらないと判断された時、部分的なログと
して、この時点のログをログボリュームヘ出力する。こ
の時、まだ更新されていない情報をもログに出力する。
例えばファイルを追加ライトするトランザクションの場
合は、部分的なログを出力する時点でのファイルサイズ
や時刻情報を合わせてログに記録する。これによって、
部分的であるはずのこのログを、ファイルシステム復元
時には完結した1つのトランザクションのログと同等に
扱うことが可能となり、ファイルシステム復元時に複雑
な考慮の必要なしに、望ましい状態にファイルシステム
を復元することが可能となる。
況を示す図である。この例では、2種類のサイズのログ
バッファ141〜146が設けられている。ログバッフ
ァ141〜145は通常のサイズであり、ログバッファ
146が大きなサイズである。
するためのログバッファ管理テーブル148,149が
設けられている。ログバッファ管理テーブル148は、
ログバッファ141〜146に対応するフラグビットを
有している。そして、使用されているログバッファに対
応するフラグビットの値が「1」に設定され、未使用の
ログバッファに対応するフラグビットの値は「0」に設
定されている。同様に、大きいサイズのログバッファ1
46に対応するログバッファ管理テーブル149もフラ
グビットを有しており、そのフラグビットの値によっ
て、ログバッファ146が使用されているか否かを管理
している。
141〜145のうち、ログバッファ143とログバッ
ファ145とが現在利用中であることを意味するため
に、「●▲」などの記号を用いた。ここで、ログバッフ
ァ145には多くのログが溜まっており、既に満杯の状
態となっている。このように通常のサイズのログバッフ
ァ141〜145では容量が足りなくなった際には、そ
のログを大きいサイズのログバッファ146に移動す
る。そして、トランザクションが継続している間は、更
新されたメタデータの内容を、随時ログバッファに格納
していく。ここで、トランザクションが終了したら、そ
のトランザクションに対応するログバッファの内容をロ
グライトバッファ150へ転送する。
ッファ151,152が設けられており、それらのバッ
ファ151,152にログが書き込まれる。ログライト
バッファ150内のログは、ログライトデーモン105
によって随時ログボリュームに書き込まれる。
ートである。これはシステムが行う処理である。 [S41]BEGIN宣言を行う。 [S42]ログバッファの予約をする。 [S43]ログ採取要求を行う。 [S44]現在のログバッファに今回のログが収まるか
否かを判断する。収まるのであればステップS51に進
み、収まらないのであればステップS45に進む。 [S45]現在のログバッファより大きいログバッファ
が存在するか否かを判断する。存在すればステップS4
6に進み、そうでなければステップS47に進む。 [S46]現在のバッファから大きいバッファへ内容を
コピーし、ステップS44に進む。 [S47]トランザクションに与えられたパラメタをロ
グ採取する。 [S48]現時点のファイル状態を正しく表す管理情報
をログ採取する。 [S49]現在の中途段階のログをログライトデーモン
105に書き出させる。 [S50]現在のログバッファをクリアする。 [S51]ログを採取する。 [S52]ログ採取要求を終了する。 [S53]END宣言あるか否かを判断する。END宣言
があればステップS54に進み、そうでなければステッ
プS43に進む。 [S54]END宣言を行い、処理を終了する。
する前に、システムダウンが発生した場合に備え、分割
して出力するログにはトランザクションに与えられたパ
ラメタを含め、ファイルシステム復元時にそのパラメタ
を元に、再度トランザクションを実行することである。
ョンに与えられたパラメタを記録し、ファイルシステム
復元時にそれを用いて、通常のログだけでは中途で終わ
った状態までしか復元できないファイルを、トランザク
ションが終了した状態にまでファイルシステムに反映す
ることが可能となる。
すフローチャートである。これはシステムが行う処理で
ある。 [S61]システムダウン等が発生する。 [S62]ファイルシステムの異常を検知する。
存在するか否かを判断する。ログ終了マークが存在すれ
ばステップS65に進み、ログ終了マークが存在しなけ
ればステップS66に進む。 [S65]開始マークから終了マークまでのログを用い
て復元処理を実行する。その後、ステップS63に進
む。 [S66]対象トランザクションが以前のログだけで完
結するか否かを判断する。完結するのであれば復元処理
を終了し、完結しないのであればステップS67に進
む。 [S67]ログに記録されたパラメタを読み込む。 [S68]トランザクションとして行いたかった処理を
理解する。 [S69]ファイルに対して直接処理を再実行する。そ
の後、復元処理を終了する。
クスを保証したファイルシステムの復元が可能となり、
従来技術では完全に元に戻す、または完全に再実行する
ことが不可能であったトランザクションを、完全に再実
行することによってファイルの整合性をも回復すること
が可能となる。
ランザクションが更新処理を行う前に、その旨をシステ
ムに対し宣言することである。さらに、システムは宣言
を受け入れるか否かを判断する機構を持つことである。
ここでは、以下の条件の場合には新規のトランザクショ
ンの受け入れを拒否し、拒否されたトランザクションは
再度認可が下りるまで待合わせなければならない。 ・メタキャッシュ130がフルに近い状態にある場合。 ・トランザクションの多重度が、システムで規定された
値を既に越えていた場合。 ・ログボリュームに残されたログの大部分が有効なログ
状態である場合。
トランザクションの受け入れを拒否し、トランザクショ
ンの多重度を宣言することによって、結果としてダーテ
ィなメタデータの数を制限することが可能となり、メタ
キャッシュ130の空き領域枯渇などを要因とするハン
グアップ状態に陥ることを回避することが可能となる。
特に、分割ログとしてログ採取しなければならないトラ
ンザクションが動作中に、新規トランザクションの開始
を拒否することは、システムの状態を正常に維持する上
で効果が高い。
受け入れ拒否の機構をログボリューム内の有効ログの割
合に応じて適用することにより、単一の、多数のメタデ
ータを更新するトランザクションのみならず複数のトラ
ンザクションが更新したメタデータによって空き領域の
減少に伴うハングアップ状態をも回避することである。
含むトランザクションの受け入れ処理について説明す
る。図23は、新規トランザクションの受け入れ許否判
定処理を示すフローチャートである。 [S71]トランザクションを行うプロセス(以下、単
にトランザクションという)が、トランザクション処理
を開始する。 [S72]「BEGIN」宣言を行う。この際、オペレーテ
ィングシステム(以下、単に「システム」という)に対
して問い合わせを行う。 [S73]トランザクションは、システムからの回答待
ち状態となる。システムより「OK」の回答を受け取っ
たらステップS82に進む。 [S74]トランザクションからの問い合わせを受けた
システムが、パラメタの評価を開始する。 [S75]システムは、既に多重度が規定値より上であ
れるか否かを判断する。多重度が規定値より上であれば
「NG」としてステップS81に進み、そうでなければ
「OK」としてステップS76に進む。 [S76]システムは、現在サブトランザクションが動
作中であるか否かを判断する。サブトランザクションが
動作中であれば「NG」としてステップS81に進み、
そうでなければ「OK」としてステップS77に進む。
ここでサブトランザクションとは、ログを複数に分割し
て格納する場合に、1つのログバッファにログを格納で
きるような処理単位に分割されたトランザクションであ
る。 [S77]システムは、メタキャッシュ130に十分な
空きがあるか否かを判断する。十分な空きがなければ
「NG」としてステップS79に進み、十分な空きがあ
れば「OK」としてステップS78に進む。 [S78]システムは、ログボリュームに上書き可能領
域が少ないか否かを判断する。上書き可能領域が十分に
なければ「NG」としてステップS79に進み、十分な
上書き可能領域があれば「OK」としてトランザクショ
ンに対して「OK」の回答を返す。 [S79]システムは、ログライトデーモン105を起
動する。 [S80]システムは、メタライトデーモン104を起
動する。 [S81]システムは、NG条件が解消されるまでスリ
ープ状態で待つ。NG条件が解消されたら、ステップS
75に進む。 [S82]トランザクションは、システムからの「O
K」の回答を受け取ったら、多重インクリメント処理を
行う。 [S83]トランザクションは、「BEGIN」処理を終了
する。 [S84]トランザクションは、処理に応じて、メタデ
ータをキャッシュに読み込み、その度に空き量をデクリ
メントする。分割ログ化するなら他トランザクションの
開始を拒否するようにシステムに依頼する。 [S85]トランザクションは、「END宣言」を行う。 [S86]トランザクションは、多重度をデクリメント
する。 [S87]トランザクションは、必要に応じてログ採取
を繰り返した後、自己のトランザクション処理を終了す
る。
な処理内容について説明する。本発明の全ての特徴を備
えたシステムにおけるログ採取手順は以下のようにな
る。ファイルシステムオペレーションを分割したトラン
ザクションはメタデータを更新するより前に、自分がこ
れからメタデータを更新する旨を宣言する(BEGI
N)。BEGIN時にトランザクションに対し、独立し
たログバッファが割当てられる。この時、既にトランザ
クションの並列動作数が非常に多かったりメタキャッシ
ュ130域の利用率が高い場合には、システムによって
BEGIN宣言が拒否される。BEGIN宣言を拒否さ
れたトランザクションはその許否理由が解消されるま
で、待ち合わせなければならない。
時に割り当てられたログバッファヘコピーされる。それ
と同時にメタデータ種類に応じたリストへ繋がれる。更
新すべき全てのメタデータを更新し終わったトランザク
ションは、そこで完了を宣言する(END)。END時
には、これまで溜めたログバッファの内容をログ専用の
二次キャッシュであるログライトバッファヘ移動し、さ
らに、まだログバッファヘコピーされていなかったメタ
データをログライトハッファヘコピーする。
て繋がれていたリストから、そのトランザクションが更
新した全てのメタデータを「ログ待ちリスト」へ繋ぎ替
える。
了することができる。トランザクションが同期要求であ
った場合には、ログを書き出すまで待ち合わせなければ
ならない。
ライトデーモン105)が行う。このデーモンの起動契
機は、同期要求トランザクションによる起動要求(wa
keup)、メタキャッシュ130の空き状態監視機構
による起動要求(wakeup)、及びタイマである。
のトランザクションのログがまとめられたログライトバ
ッファを1つのI/Oとして発行する。そして、ログ待
ちリストから「書き出しリスト」ヘメタデータを移動す
る。
メタライトデーモン104の役割である。メタライトデ
ーモン104は書き出しリストに繋がれたメタデータを
順に非同期ライトによってメタボリュームに反映する。
メタライトデーモン104の起動契機は、ログバッファ
の空きが少なくなった時、ログボリュームの空きが少な
くなった時、及びタイマである。
ションの開始から、更新されたメタデータがメタボリュ
ームに反映されるまでの大まかな流れである。以降に、
ログの採取とそのディスク反映手法、そして、メタデー
タのディスク反映の処理について詳細に説明する。 (1)ログの構造 (1.1)ログボリューム ログボリュームに格納される情報は、以下のような情報
である。
ューム管理情報が先頭にある。その次にログの有効範囲
を示す構造体を記録する。構造体は以下のメンバを持
つ。 ・有効ログ先頭のログボリューム内オフセット ・有効ログ先頭のログシーケンス番号 ・有効ログ末尾のログボリューム内オフセット ・有効ログ末尾のログシーケンス番号 ただし注意しなければならないのは、ここで先頭・末尾
と言っているのは、真の値ではない可能性があることを
リプレイ時に考慮しなければならない点である。なぜな
ら、ログはボリュームをシーケンシャルアクセスするこ
とによってシーク時間の短縮を計っているが、このよう
にボリュームの一部へ毎回アクセスしたのでは、そのシ
ーケンシャル性が損なわれてしまう。そのために、ログ
の書き出し毎にはこの有効範囲の書き出しは行わず、数
回に一回、書き出している。
セットは正確ではないためにリプレイ時に検索が必要で
はある。しかしながら、全体を検索するよりも大幅に検
索量が減るため、利点は保持できるものと考える。
によって構成される。 (1.2)ログブロックの基本構造 ログボリューム120内に残されたログ(メタデータの
更新情報)は基本的にはトランザクション単位である。
これをログブロックと呼ぶ。しかし、キャッシュ域フル
などによって、1つのトランザクションを一度にまとめ
ることができない場合は複数の分割ログに分ける。この
分割ログをサブトランザクションログと呼ぶ。
ことによって、ファイルシステムの整合性が保てるよ
う、その内容は工夫されている。しかしながら、トラン
ザクションの途中までのサブトランザクションをリプレ
イしたのでは、トランザクション全体が終わっていない
ことから、ファイルシステムとしての整合性が保てて
も、ファイルの中身は異常であるという状態に陥ってし
まうことが考えられる。
ンザクションに別れたトランザクションがどのようなオ
ペレーションであったかをログに採取する(オペレーシ
ョンログ)。ログリプレイ時には、サブトランザクショ
ンをリプレイした後、オペレーションログをリプレイヤ
が再実行することによって、トランザクション全体が終
わった状態とすることが可能である。
トランザクションは全体終了時に「終わったこと」をロ
グに記録し(最終ENDマーク)、リプレイヤはその有
無を調べてオペレーションログの実行を判断する。 (1.3)ログの採取形式 メタデータの更新情報は該当するメタデータの管理構造
単位で採取する。また、メタボリュームの管理構造であ
るビットマップはその更新部分だけのログ採取とする、
スーパブロックについては特殊であり、データ空き容量
についてのみログ採取を行う。 (1.3.1)inode、Vデータ、空き管理情報 ファイルの管理情報であるiノード、Vデータと呼ぶデ
ィレクトリやシンボリックリンクデータや空き管理情報
のメタデータ本体は、それらのI/O単位(ブロック単
位)でのログ採取を行う。
処理であるfsckによるログリプレイ時の処理を簡略
化することを意識している。変更された部分だけをログ
採取した場合、ログリプレイ時には、該当ブロックの算
定→読み込み→変更部分の更新→再度書き込み、とステ
ップが増えてしまう。しかし、ブロック全体のログ採取
によって、リプレイ時にはメタボリュームにログ情報を
上書きするだけでよい。
のVデータは、更新中はファイルのロックで保護されて
いる。しかしながら、空き管理情報についてはファイル
のロックでは保護されない。そのため、トランザクショ
ン途中で他トランザクションによって更新され、そのト
ランザクションが追い越して先に終わってしまうと、ロ
グには古い情報が後に残されてしまい、リプレイすると
ファイルシステムに不整合が生じてしまう。
は更新するトランザクションが並行動作しないことを保
証することによって実質的な排他制御を行い、他のメタ
データと同じ採取形式とした。 (1.3.2)ビットマップ メタデータの割り当て状況を管理するビットマップも空
き管理部と同様にファイルのロックで保護されていな
い。そのため、ビットマップ全体のログ採取を行うと、
そのログには複数のトランザクションによる更新が含ま
れてしまう可能性がある。特に、トランザクションの追
い越しが発生すると、新しいはずのログによって、ビッ
トマップの情報が古く書き戻されてしまうことが考えら
れる。
分だけとする。更新部分とは、あるビットが0になっ
た、あるいは1になったと記録するだけである。それに
より、トランザクションが並行動作してもそれぞれのト
ランザクションが更新した内容のみがログに残されるた
め、メタデータの後退は起こり得ない。
0」)した後、他トランザクションがそこを獲得(「0
→1」)した場合である。トランザクションの追い越し
が発生すると、ログリプレイによって獲得した領域を解
放してしまう。
プを1つ定め、複製を用いて操作を行うことによって回
避する。 (1.4)ログの記録構造 (1.4.1)一般ログ 有効状態であっても、ある程度の複数スレッドが同時に
進行することを許す。これは性能要件より必須である。
しかし、ログボリューム内のログは前述の通り、トラン
ザクション毎に保存する。1つのトランザクション結果
をログに記録する際、ログは以下のパーツで構成する。 1)BEGINマーク 2)ヘッダ 3)更新内容 (2)+3)の繰り返し) 4)ENDマーク これを以下、ログブロックと呼ぶ。ログブロックはログ
ボリュームの物理ブロック境界から始まるが、その終わ
りは物理ブロック境界であるとは限らない。 1)BEGINマーク トランザクションの開始時に作成される情報であり、以
下の内容を含む。 ・マジックワード ・トランザクションタイプ ・ログシーケンス番号 ・ログブロックサイズ マジックワード:1つのトランザクションが始まったこ
とを示すマジックワードを埋め込む。
クにトランザクションのタイプ(種類)を埋め込むこと
によって、その後ろの更新情報に含まれる内容の概要を
事前に知ることが可能。
ランザクション毎にインクリメントされる数値。このカ
ウンタが最小のログブロックがそのログボリューム内で
最も古いトランザクションであることを示す。カウンタ
は64ビット型とし、オーバーフローすることは現実に
はありえない(4万年ほど耐えられるものと思われ
る)。ログリプレイ時に、ログボリュームをゼロクリア
することにより、再度0から開始することも考えられる
が、リプレイ時間の短縮を考慮し、利用したログの最後
のシーケンス番号より昇順に採番することによりゼロク
リアを回避する。
Dマークまでのサイズを記録する。BEGINマークの
先頭からENDマークの先頭までのサイズである。リプ
レイ時にはBEIGNマークの先頭からこのサイズだけ
移動し、ENDマークの情報を参照して、ログの有効性
を判定する。 2)ヘッダ 更新されたメタデータについて、その保管位置を特定す
るための情報であり、以下のメンバによって構成され
る。 ・メタデータタイプ ・メタボリューム番号 ・ボリュームローカルメタデータ番号 メタデータタイプ:更新情報の後方にある又データ更新
内容が何のメタデータであるのかを特定するために用い
られ、リプレイヤはここから更新内容のサイズを判断す
る。
いているメタボリューム毎の番号を記録する。リプレイ
時には、この番号から書き戻すメタボリュームを決定す
る。ボリュームローカルメタデータ番号:メタデータ管
理で用いている、メタボリューム毎、メタデータ毎に0
から始まる値を記録する。リプレイ時には、この番号か
らメタボリューム内のブロック位置に変換し、更新内容
を書き戻す。これはブロック位置変換を削減することに
よるログ採取の高速化が狙いである。対象がビットマッ
プである場合には、変更されたビットが該当するメタデ
ータ本体のメタデータ番号を記載する(ビットマップ番
号ではない)。 3)更新内容 メタデータ本体の場合には、更新内容が含まれるブロッ
ク(それぞれのメタデータの管理単位)である。例え
ば、ディレクトリブロックが更新された場合には102
4バイトのディレクトリブロック全体である。
ここには「0→1」または「1→0」という情報だけ記
録する。リプレイ時にはヘッダから該当するビットマッ
プを判定し、それを読み込み、ここの内容から該当ビッ
トを変更して書き戻す。 4)ENDマーク BEGINマークに対応するマジックワード、ログシー
ケンス番号、ログブロックサイズを記録する。
だけでは、メタデータの内容によってはそれが偽りのE
NDマークとして見えてしまい、リプレイの時に処理を
誤る可能性がある。これを回避するために、ENDマー
クは固有形式(メタデータを誤認することのない形式)
としなければならない。
は、BEGINマークだけ書き出された時点で、システ
ムダウンした場合を考慮し、いずれにせよENDマーク
の識別ができなければならないからである。
バイト分続ける。これにより、全てのメタデータがEN
Dマークに化けることはなくなる。これに続けて、マジ
ックワード、カウンタ(ログ番号)、ログブロックサイ
ズを記録する。以降、ブロック境界まで、上記数値を埋
める。BEGINマークに対応したENDマークを見つ
けることができないログ情報はリプレイしてはならない
(ログ書き出し途中にシステムが異常終了したことを意
味する)。 (1.4.2)巨大トランザクションのログ トランザクションが多くのメタデータを更新する場合に
は、ログバッファサイズ、ログボリュームサイズが有限
であることから、複数のサブトランザクションログに分
割する。サブトランザクションログはそれだけのリプレ
イによって、ファイルシステムの整合性は保たれる。し
かし、トランザクション全体のサブトランザクションロ
グをリプレイしなければ、ファイルの整合性が保てな
い。そのため、サブトランザクション途中でのシステム
ダウンを考慮し、オペレーションログ内部に含む。 1)BEGINマーク 2)オペレーションログ 3)ヘッダ 4)更新内容 (3)+4)の繰り返し) 5)ENDマーク (1)〜5)の繰り返し) (5’)最終ENDマーク) 1)BEGINマーク 一般ログのBEGINマークと同じ。ただし、サブトラ
ンザクションログとなりうるトランザクションは、書き
込みや削除など、データ領域を触るものや、領域管理に
関わるものに限定される。
ーク内で設定されていたら、そのログはサブトランザク
ション化している可能性があり、必すオペレーションロ
グが続いている(たとえ単一のサブトランザクションロ
グで構成されていても)。 2)オペレーションログ サブトランザクション化したトランザクション(関数)
に与えられた引数をオペレーションログとして保存す
る。巨大トランザクションを対象としたBEGINマー
クの直後には必ずオペレーションログを配置する。オペ
レーションログは、最初にトランザクションヘ渡された
情報(このファイルをこれだけのサイズトランケートす
るとか、このファイルをこれだけアペンドライトするな
ど)である。
ステムを直接操作して、ここで残されたオペレーション
ログを実行しなければならない。オペレーションログは
以下のメンバで構成される。 ・パラメタ1 ・パラメタ2 ・・・ リプレイヤはBEGINマーク内のトランザクションタ
イプを見ることによって、オペレーションログ部分に並
ぶパラメタ群のサイズ及び内容を知ることができる。 3)ヘッダ 一般ログのヘッダと同じ。 4)更新内容 一般ログの更新内容と同じ。 5)5’)ENDマーク、最終ENDマーク 一般ログのENDマークと同じ意味合いを持ち、BEG
INマークに対応するENDマークあるいは最終END
マークが見つからない場合には、BEGINマーク以降
の更新内容をリプレイしてはならない。
ョンに分割されず、単一のログブロックのみの場合に
は、ENDマーク部分には最終ENDマークが書き出さ
れる。複数のサブトランザクションログに分かれている
場合には、最後のログブロックだけ、ENDマークが最
終ENDマークに化ける(最後以外のログブロックには
通常のENDマークが書かれている)。
同一であり、マジックワード、カウンタ(ログ番号)、
ログブロックサイズが記録されており、ブロック境界ま
で固有数値が埋まる。
マジックワードのみである。最終ENDマークがトラン
ザクション全体の終了を表すことから、とても巨大なト
ランザクションが多くのサブトランザクションログに分
割されている場合には、全ての処理が完了する時にこの
最終ENDマークを出力する。すなわち、巨大トランザ
クションとして定義されるトランザクションについて、
通常のENDマークで終わるログブロックがいくつか見
つかったのに、最終ENDマークで終わるログブロック
が存在しない場合には、それは巨大トランザクションの
途中でシステムダウンが発生したことを意味し、ログリ
プレイヤがオペレーションログのリプレイを行わなけれ
ばならないことを意味する。 (2)ログの採取 (2.1)ログバッファの管理 ログをトランザクション単位にログボリューム120ヘ
出力するためには、メタデータの更新情報を一度、メモ
リ内に溜める必要がある。これをログバッファと呼ぶ。
ログバッファはマウント時にまとめて用意し、ファイル
システム利用中にメモリの追加獲得は行わない。
た、トランザクション動作中に他のトランザクションが
並行動作することを狙い、ファイルシステム毎にログバ
ッファを複数持つ。その数は並行動作を許すトランザク
ション数によって決められる。
による性能劣化要因の1つとなるが、 ・ログリプレイ時の処理を単純化 ・巨大なログバッファを分割して使うことによる複雑さ
の回避 などのメリットが考えられるため、この方式とする。
たログバッファにログを作成し、トランザクション終了
時にまとめてログライトバッファヘコピーする。ログラ
イトバッファの内容を実際にI/O出力するのはログラ
イトデーモン105と呼ぶデーモンの働きによる。
クションが用いるログバッファよりも大きいログバッフ
ァ(以降、それぞれを一般ログバッファ、巨大ログバッ
ファと呼ぶ)を1つ用意する。巨大トランザクションも
当初は一般ログバッファの1つを用いる。巨大トランザ
クションとログバッファの関係には次の二段階がある。 1)あまり多くのメタデータを更新せず、一般ログバッ
ファで十分足りると判断できた時点で、次の巨大トラン
ザクションのBEGINを受け付ける。 2)更新するメタデータ数がある程度多く、一般ログバ
ッファでは足りないと判断できた時点で、巨大ログバッ
ファにこれまでの内容をコピー、そこで処理を継続す
る。 3)更新するメタデータ数が大変多く、巨大ログバッフ
ァでは足りない場合には、サブトランザクションとして
分割する。
なりそうであるが、巨大トランザクションがそれほど多
くないと考えると、あまり頻繁に発生するものではない
ので、この方法とする。
用)について、ビットマップで管理される。各ログバッ
ファを管理する構造をログバッファ数の配列で確保し、
それぞれが ・ログバッファのアドレス ・これまでに採取したログサイズ を持っている。
イトデーモン105によってログボリューム120ヘ反
映するが、そのログライトデーモン105が複数のログ
バッファの内容を一括してI/O発行するために、トラ
ンザクション終了時にそれぞれのログバッファの内容を
ログライトバッファ150と呼ぶ専用の領域にコピーす
る。
て、 ・追加モードにあるログライトバッファはどちらか ・それぞれのログライトバッファに溜められたログサイ
ズ がある。
ム120ヘ書き出している間は、その後のトランザクシ
ョンが終了するためにログライトバッファにログバッフ
ァをコピーしようとしても、I/O中であるためにガー
ドしなければならない。これは性能劣化に繋がるため避
けなければならない。そのため、ログライトバッファは
2本用意する。
開始時に、空のログバッファをビットマップより見つけ
(未利用ログバッファを0で示し、ここで1とする)、
そのビット番号がトランザクション番号となる。
にて処理進行中、一般ログバッファでは入りきらないと
判断されるとこれまでの内容をこの巨大ログバッファヘ
コピーし、そこで処理を継続する。この時、これまで用
いていた一般ログバッファは空きバッファリストヘ繋ぎ
直される。 (2.2)巨大トランザクションの管理 空き領域管理ツリーや獲得済領域管理ツリーを操作する
トランザクションを巨大トランザクションと定義する。
巨大トランザクションは場合によっては木構造を大きく
変更しなければならないかもしれない。この時、サブト
ランザクション化する必要が生ずる。
クションが並行動作した場合、どれもが多くのメタデー
タを更新すると、メタキャッシュ130がいずれ全てダ
ーティとなり、新たにメタデータを読み込んで更新しよ
うにも追い出すこともできずにデッドロックに陥ること
が考えられる。
は並行動作ができないよう、ここではシリアライズし
た。しかし、上記の通り、多くのメタデータを更新する
可能性があると考えられるトランザクションは多い。こ
れらを全てトランザクション終了までシリアライズする
と、その性能インパクトは大きい。
それほど多くのメタデータを更新しないこともありえ
る。一般トランザクションと同等の数しかメタデータを
更新しないのであれば、扱いを一般トランザクションと
同様にすることによって、その性能インパクトを小さく
することが可能である。
ンザクションと変わらない程度しかメタデータを更新し
ないと分かった時点で、この巨大トランザクションの扱
いは一般トランザクションと同じにする(デグレー
ド)。
般ログバッファの1つを一般トランザクション開始時と
同様に与えられる。しかし、1つの巨大トランザクショ
ンが動作中は次の巨大トランザクションにログバッファ
を与えない点が一般トランザクションの場合と異なる。
タデータを更新することが分かった時点で、これまでの
一般ログバッファの内容を巨大ログバッファヘコピー
し、そこで処理を継続する。
しないと判断されれば、そのまま一般ログバッファで処
理が継続され、また、次の巨大トランザクションに対
し、処理の開始(ログバッファに使用)を許可する。
ら一般トランザクションとして扱うこと(デグレード)
を実現する。 (2.2.1)デグレード契機・サブトランザクション
化契機 巨大トランザクションは複数のサブトランザクションに
分割される場合もあれば、一般トランザクションへデグ
レードする場合もある。それぞれの判定基準は以下の通
りである。 ◎デグレード判定基準 ・一般ログバッファの残りサイズで、将来全てのメタデ
ータ更新が完了できると判断できた場合。 ◎巨大トランザクション用ログバッファへの移行契機 ・一般ログバッファの残りサイズが次のステップの最大
変更量よりも少ない場合。 ◎サブトランザクション判定基準 ・巨大ログバッファの残りサイズが次ステップの最大変
更量よりも少ない場合。 (2.3)一般トランザクションのログ採取 一般トランザクションは、以下の手順に従いログを採取
する。 1)LOG_BEGIN a)利用するログバッファを確定する。
クを作成する。 2)各メタデータの更新 c)更新されたメタデータがリリースされる(ロックが
解放される)直前に、更新されたメタデータについて、
ヘッダ(更新情報)をログバッファに作成し、更新内容
をログバッファにコピーする。
ぐ。 3)LOG_END e)ENDマークをログバッファに作成する。
コピーする。 g)ログライトデーモン105がログボリューム120
ヘ反映する。 h)このトランザクションで立てられた追い出し不可フ
ラグを落とす。 (2.3.1)LOG_BEGIN トランザクション開始を意味する。同一関数内にLOG
_ENDの宣言が必要。並行動作可能数だけ既にトラン
ザクションが動作していたら、それらのどれか1つが終
了するまで寝て待つ。
グバッファの数と等しい場合、それは既に許された並行
動作数だけトランザクションが実行中であることを意味
する。そのため、他トランザクションが終了するまで寝
る。そのような状態でなければ、ログバッファの利用状
況を管理するビットマップより未利用状態のログバッフ
ァを1つ選び出し、そのビットを立てる。さらに、並行
動作数カウンタをインクリメントする。
ァの先頭に作成する。 (2.3.2)各メタデータの更新 メタデータを参照した場合にはログ採取の必要はない。
更新した場合のみログを採らなければならない。
タデータについて処理が終了し、メタキャッシュ130
より解放するための関数(リリース関数)を呼び出す
際、「更新した」ことを明示された場合、ログを採取す
る。
ョン内でのロック解放時がログ採取契機でおる。具体的
には、上記で使用権を得たログバッファにヘッダを作成
し、メタデータの更新内容をコピーする。このとき、メ
タデータの種類によってその手法が若干異なる。
獲得(解放)したメタデータ番号を入れ、更新内容は
「0→1」「1→0」とビット操作だけとする。 c−2)メタデータ本体の場合:更新内容にはメタデー
タをそのままコピーする。
ンザクションがデグレードした場合のみ、一般ログ内で
のスーパブロックのログ採取がありうる。その時刻(シ
ーケンシャル番号)とデータ空きサイズを記録する。
ミナルで管理されるログサイズに、っこで作成したログ
のサイズを加える。 d)メタキャッシュ130の大きさは有限であることか
ら、トランザクションが進行するためには、必要のない
メタデータをメタキャッシュ130から追い出し、その
場所に必要なメタデータを読み込むという処理を行う追
い出し機構がある。更新されたメタデータはログを書き
出すまでは追い出されてはならない。そのために、この
メタデータをメタライトリストと呼ぶ、メタボリューム
ヘの反映を司るメタライトデーモン104が参照するリ
ストへ繋ぐ。 (2.3.3)LOG_END トランザクションの終了を示す。ここで、ENDマーク
の作成を行う。ログボリューム120反映はログライト
デーモン105による作業である。
GINマークに対応するENDマークをログバッファの
末尾に作成する。 f)利用したログバッファの内容を追加モードにあるロ
グライトバッファにコピーする。この時にログ番号を決
定し、BEGINマーク、ENDマークに埋め込むログ
バッファのターミナルに記録していたログのサイズをロ
グライトバッファのサイズに加える。同期書き込み要求
の場合は、ログライトデーモン105(詳細後述)が正
常にログボリューム120に反映したことを待つ必要が
あるが、同期書き込み要求でない場合には、ログバッフ
ァを解放(ビットを落とす)して終了する。
が、ログライトバッファの内容をログボリュームヘ反映
する。 h)リリース時に立てた追い出し不可フラグを全て落と
す。ただし、フラグを落とすのはログライドデーモンに
よってなされるため、このトランザクションはそのまま
終了する。 (2.4)巨大トランザクションのログ採取 巨大トランザクションも、一般トランザクションとほぼ
同様の処理だが、最大の違いは、トランザクションの状
況によってログバッファをサイズの大きい巨大ログバッ
ファヘ移行したり、サブトランザクションとして分割し
たログ採取を行わなければならない場合があることであ
る。 1)LOG_BEGIN a)利用するログバッファを確定する。
クを作成する。 c)BEGINマーク作成と同時に、オペレーションロ
グをログバッファに作成する。 2)各メタデータの更新 メタデータがリリースされた時に「更新したこと」が明
示されたら、 d)更新メタデータが空き管理情報の場合、更新メタデ
ータがリリースされる度にBTFリストあるいはBTA
リストとよぶ空き管理メタデータのために用意するリス
トに繋ぐ。この時、既にリストに繋がれていればリスト
構造には手を加えない。
場合、更新されたメタデータがリリースされる度にヘッ
ダをログバッファに作成し、更新内容をログバッファ域
にコピーする。
一般ログバッファで処理している場合、 g)一般ログバッファで足りるか判定する g−a)足りないなら巨大ログバッファヘこれまでの内
容をコピー。
ード条件を満たせば、次の巨大トランザクションを受け
付ける。 g−c)まだ判断ができなければそのまま継続する。既
に巨大ログバッファで処理している場合、 h)サブトランザクション化するか判定する h−a)するなら、BTFリスト及びBTAリストをた
どりながらそれらをログバッファにコピー、ENDマー
クを作成し、ログライトバッファヘコピーする。ログラ
イトデーモン105を起動し、ログを出力する。
る。 3)LOG_END i)最終ENDマークをログバッファに作成する。
コピーする。 k)ログライトデーモン105がログボリューム120
ヘ反映する。 l)このトランザクションで立てられた追い出し不可フ
ラグを落とす。 (2.4.1)LOG_BEGIN 巨大トランザクションも最初は一般ログバッファを用い
る。
の並行動作トランザクション数とログバッファの数との
関係によってログバッファを獲得できるかどうかが定ま
った。巨大トランザクションの場合は、現在他の巨大ト
ランザクションが動作中か否かが問題であり、一般トラ
ンザクションの並行動作数とは関係しない。巨大トラン
ザクションが動作中か否かのフラグを調査し、非動作中
であれば、そのフラグを立て、ログバッファの利用状況
を管理するビットマップより未利用状態のログバッファ
を1つ選び出し、そのビットを立てる。巨大トランザク
ションが現在動作中であれば、終了まで寝て待つ。
で、トランザクションタイプに巨大トランザクションと
なりうるトランザクションが指定されていた場合には、
必ず後ろにはオペレーションログが付随する。対応する
ENDマークがないログはリプレイしてはならない。ま
た、サブトランザクション化しているのに、最終END
マークがないなら、オペレーションログのリプレイが必
要である。
クションログとして分割する場合にはオペレーションロ
グを採取する必要がある。ここで、オペレーションログ
とは、各ログ採取対象関数に与えられたパラメタが、将
来リプレイすることが可能な形に変更されたものであ
る。具体的には、メモリアドレスで与えられるパラメタ
は、メタボリューム内のオフセットに変更して記録す
る。 (2.4.2)各メタデータの更新 d)更新メタデータが空き管理情報である場合、一回の
トランザクションで同一の領域が何度も変更される場合
が考えられる。その都度、ログを採取しているとインコ
アログやログボリュームがフルになる可能性が高まる。
これを回避するために、更新情報をリストによって管理
し、複数回更新された空き管理メタデータを1つにまと
めてログに記録する。具体的には、メタデータの状態毎
にリスト管理する専用のBTFリスト及びBTAリスト
に繋がれる。このリストに繋がれていれば、そのデータ
はダーティであることを意味する。初めて更新するデー
タであれば、ターミナルから繋がるリストに追加する。
既にリストに繋がれているのであれば、2回目以降の更
新であることを意味し、ポインタについてはそのままで
良い。リストにメタデータを追加する場合には、ログサ
イズを更新する。
あれば、同一メタデータに対して何度もホールド/リリ
ースが発行されるとは考えられないので、リリースの度
(ロック解放の度)にログバッファヘコピーする(一般
トランザクションの場合と同じ)。ログサイズを更新す
る。
データがログよりも先にメタボリューム111〜113
ヘ反映されてはならない。この追い出し不可状態もリス
ト構造によって管理される。
メタデータが、以降、どれだけの数のメタデータを更新
するかを算出することによって、処理が分かれる。 g−a)現在利用している一般ログバッファの残りでは
次ステップの実行によるメタデータの更新の全てをまか
ないきれない場合があると判断した場合には、巨大ログ
バッファヘの移管を行う。
ァの内容を巨大ログバッファヘコピーする。この時、B
TFリストはそのまま繋いだままとし、BTAリストは
巨大トランザクション用のターミナルヘ移動する。
その巨大トランザクションは処理を継続する。 g−b)現在利用している一般ログバッファの残りだけ
で、以降のメタデータ更新を全て記録できると判断でき
るならば、この巨大トランザクションは一般トランザク
ションにデグレードする。BTFリストにメタデータが
繋がれている場合はデグレード条件を満たさないため、
ここでの処理はありえない。BTFリストはそのまま利
用を続ける。
か否かを示すフラグを落とす。 gb−2)一般トランザクションの並行動作数カウンタ
をインクリメント。 gb−3)次の巨大トランザクションが寝ているならば
起こして、実行を受け付ける。
用して処理を継続する。 g−c)まだ判断できないのであれば、このまま一般ロ
グバッファを利用して処理を継続する。
述)に基づき、このトランザクションをサブトランザク
ション化するかどうか判定する。 h−a)サブトランザクションに分割する場合は、 ha−1)更新された空き管理情報を、リストを辿りな
がらログバッファヘコピーする。
制起動する。 ha−6)ここで変更した全てのメタデータの追い出し
不可フラグを落としてメタライトリストに繋ぐ。これに
より,メタライトデーモン104は任意の時ににこれら
のメタデータを書き出すことが可能となる。
GINマークを作成する。 ha−8)オペレーションログを作成する。 h−b)サブトランザクションに分割する必要がない間
は、巨大ログバッファ内でそのまま継続する。 (2.4.3)LOG_END トランザクションの終了を示す。ここで、ENDマーク
の作成を行う。実際のログボリューム120反映はログ
ライトデーモン105の仕事である。
NDマークは通常のENDマークとマジックワードが異
なるだけである。 j)利用したログバッファの内容を追加モードにあるロ
グライトバッファヘコピーする。この時にログ番号を決
定し、ログサイズをログライトサイズに加える。同期書
き込み要求の場合は、ログライトデーモン105が正常
にログボリューム120反映したことを待つ必要がある
が、その他の場合には待たないで次の処理へ進む(すな
わち非同期書き出しである)。巨大トランザクション動
作中フラグを落とし、寝て待つ次の巨大トランザクショ
ンを起こす。
イトバッファの内容をログボリュームヘ反映する。 l)更新したメタデータをログバッファヘコピーした時
に立てた追い出し不可フラグを全て落とす。ただし、フ
ラグを落とすのはログライトデーモン105によってな
されるため、このトランザクションはそのまま終了す
る。 (2.5)ログライトデーモン 並行して動作し、順次終了するトランザクションによっ
て更新されたメタデータのログは専用の書き出しデーモ
ン(ログライトデーモン105)によってログボリュー
ムヘ反映する。このデーモンはマウント時に起動され、
アンマウント時に停止する。すなわち、ファイルシステ
ム毎にスレッドを生成する。
ッファ内にENDマークが作成され、このログバッファ
の内容はログライトバッファ150にコピーされる。こ
のログライトバッファ150は複数のログバッファの内
容を一括してログボリューム120に反映するためのも
のであり、そこにはメモリコピーの負担があるが、何度
もI/Oを発行するよりは良いと考える。
と、そのログバッファは利用中バッファリストから空き
バッファリストヘと繋ぎ直され、かつ、トランザクショ
ンが同期書き込み要求でなければ、動作中トランザクシ
ョン数をデクリメントする。これにより、次トランザク
ションの実行が進むようになる。
ッファの内容を、定期的、あるいは同期書き込み指定の
トランザクションがある場合などにログボリュームに反
映する。反映している間(I/O中)は2本あるログラ
イトバッファのうち、もう片方のログライトバッファに
内容をコピーしてそのトランザクションは処理を終了す
る。 (2.5.1)処理手順 ログライトデーモン105単体の処理手順はそれほど複
雑ではない。
ードにし、もう片方を追加モードにする。 b)ログライトバッファの内容をログボリューム120
ヘ同期書き出しする。
す。 d)ログ待ちリストに繋がるメタデータを、メタライト
リストヘ繋ぎかえる。 e)規定時間の間、スリープする。
こされたらa)へ。 以下、詳細説明である。 a)I/O中はその対象域に対して追加更新は許されな
い。そのため、現在のログライトバッファが書き出しが
終わり、次の書き出しが始まるまでは、もう片方のログ
ライトバッファヘ終了したログバッファをコピーするよ
う設定する。I/O中のログライトバッファをライトモ
ード、ログバッファの内容をコピーする方を追加モード
と呼ぶ。切り替えはこのデーモンによって行われ、各ト
ランザクションは常に追加モードにあるログライトバッ
ファに自ログバッファの内容をコピーする。
まれていないのであれば、I/Oを発行する必要はな
い。そこで、まずログライトサイズを調べ、ゼロであれ
ばI/Oを発行せず、タイマを指定して再び寝る。書き
出すべきログが存在するのであれば、以下の手順に従
う。
定。 ログボリュームの先頭オフセット(A)、メタライトリ
スト先頭のメタデータを管理する構造の上書き可能オフ
セット(B)を調べる。それとログライトオフセット
(C)、及びログボリュームの最終オフセット(D)か
ら以下の手順となる。 ・A<B≦C<D ログライトサイズが(D−C)以下ならば、Cから書
き出す。 ログライトサイズが(D−C)より大きく、かつ、
(B−A)以下ならば、Aから書き出す。 ・A≦C<B≦D ログライトサイズが(B−C)より小さければ、Cか
ら書き出す。
きない場合には、メタライトデーモン104を起動し
て、自分はスリープする。メタライトデーモン104の
動作により起動されたら、再度、空きサイズ判定から行
う。
出しする。 b−c)エラー判定。同期書き出し後、エラー判定を行
う。エラーが発見された場合の処置については後述
(2.5.3)する。
域の判定を行う。ここで、残りが少ないと判定された
時、その残りの大きさに応じてメタライトデーモン10
4を「平常起動」「緊急起動」する。
は、メタライトリスト先頭の上書き可能オフセットから
たった今書き出した位置までである。そこで、それを有
効範囲情報としてディスクヘ書き出す。ここで、書き出
しはログのシーケンシャル性を考慮し、ある程度の間隔
をおいて行う。ここでは、回数に応じて、数回に一回、
書き出すこととした。
タデータは全て「ログ未反映状態」、すなわち追い出し
不可状態としてリスト(ログ未反映リスト)に繋がれて
いるはずである。そこで、ログ未反映リストを辿りなが
ら、そこに繋がるメタデータをメタライトリストに追加
することにより、メタライトデーモン104が任意の時
にこれらのメタデータをメタボリュームに反映できるよ
うになる。
書き出しとし、トランザクションが同期書き込み要求で
なければ、ログを書き出す前にそのトランザクションは
終了することができる。さらにI/O発行回数を削減す
るために、複数のトランザクションを一括して書き出す
ために、しばらくの間スリープし、その間にログライト
バッファヘ複数トランザクションのログを溜める。
繰り返す。しかし、他要因によって突然起こされて処理
を始める場合もある。「その他の要因については後述
(2.5.2)する。 (2.5.2)動作契機 ログライトデーモン105は以下の契機でログライトバ
ッファの内容をログボリュームへ書き出す。 ◎定周期 ログライトデーモン105は一定周期毎にスリープ状態
から自発的に目覚め、ログライトバッファ150の内容
をログボリューム120ヘ反映する。 ◎同期書き込み要求のトランザクション トランザクションによっては同期書き込み要求で呼ばれ
る場合がある。このトランザクションについては、ログ
の書き出しを待たなければ終了してはならない。そのた
め、LOG_END呼び出し後に、明示的にLOG_S
YNCを行う。LOG_SYNCはログライトデーモン
105が寝ている場合には起こし、ログライトバッファ
の内容をその場で書き出させる。
であったら、ログライトデーモン105の処理が終わる
のを寝て待つ。 ◎ログライトバッファ不足定 周期毎にログライトバッファをクリアしても、大きなロ
グバッファが連続して終了すると、その前にログライト
バッファがフルに近い状態になることがありえる。この
時にはログライトデーモン105が起こされ、ログライ
トバッファ150の内容をログボリューム120に書き
出してクリアする。
グバッファの内容をLOG_ENDによってコピーしよ
うとした時、ログライトバッファ150の残りサイズが
自ログよりも小さいと判断された時、ログライトデーモ
ン105を起こし、追加モードのログライトバッファ1
50を切り替えてもらい、その間は寝て待つ。
グライトバッファ150が足りなくなった時には、その
トランザクションは待ち合わさざるを得ない。 ◎メタキャッシュ不足 トランザクション実行中に、メタキャッシュ130域の
いずれかのメタデータを追い出さなければ必要なメタデ
ータをメタボリューム111〜113から読み込むこと
ができずに処理が進まなくなる場合が考えられる。
シュ上のメタデータを追い出そうとする時、メタキャッ
シュ130上のメタデータが全てダーティであり、か
つ、ログ待ちリストに繋がれたメタデータが存在する場
合には、ログライトデーモン105を起動する。 ◎アンマウント時 アンマウント時には必ず書き出さなければならない。そ
のため、アンマウント処理の延長でログライトデーモン
105を起こし、書き出しを行う。この時、アンマウン
トを実行するため、該当ファイルシステムにメタデータ
を更新するようなトランザクションは動作していないこ
とが保証される。従って、現在のログライトバッファの
内容を者き出せば、それで全てである。
後、ログライトデーモン105は終了する。 (3)メタデータ管理 次に、メタデータの管理方式について説明する。メタキ
ャッシュ130内のメタデータはmetalist構造
体によって管理される。metalist構造体には以
下のメンバがある。 ・メタデータへのポインタ ・TRANS(トランザクション)リストポインタ ・メタライトリストprevボインタ ・メタライトリストnextポインタ ・ログ待ちリストprevポインタ ・ログ待ちリストnextポインタ ・ログシーケンス番号 ・ログボリューム内オフセット ・トランザクション番号 ・状態フラグ ・メタデータタイプ ・buf構造体実体 (3.1)メタデータの状態遷移 metalist構造体には次の6種類の状態があり、
4種類のリストに繋がれる。それはmetalist構
造体のフラグによって示され、それぞれ夕ーミナルを別
とするリストに繋げられることによって実現する。全て
のmetalist構造体はいずれかのリストに繋がっ
ており、例外はない。 A)空き管理構造更新状態 データ空き領域を管理するメタデータがトランザクショ
ンによって更新されると、リストに繋ぎ、将来まとめて
ログバッファにコピーすることは既に述べた。トランザ
クション終了時に本リストに繋がれたメタデータが直接
ログボリュームヘ反映される。リストは並行動作数に応
じて必要である。このリストをBTFリストと呼ぶ。
ファヘはコピーされておらず、同一トランザクションに
よって再度更新される場合がある。既にリストに繋がれ
ているメタデータであった場合は、リスト状態は変更し
ない。当然、メタボリュームに反映してはならない。
トランザクション途中状態と同じメンバを用いて繋がれ
ている。 B)利用域管理構造更新状態 実施例ではファイルシステムをエクステント管理してい
る。iノードから導かれる、そのファイルが利用してい
るエクステントを示す、間接エクステントブロックにつ
いても、トランザクション内で1つの間接エクステント
ブロックが何度も更新される場合が考えられる。そこ
で、空き管理構造の場合と同様に、トランザクション中
は独自のリストに繋ぎ、トランザクション終了時にまと
めてログバッファヘコピーする。リストは並行動作数に
応じて必要である。このリストをBTAリストと呼ぶ。
はまだログバッファヘはコピーされておらず、同一トラ
ンザクションによって再度更新される場合がある。既に
リストに繋がれている間接エクステントブロックであっ
た場合は、リスト状態は変更しない。当然、メタボリュ
ームに反映してはならない。
トランザクション途中状態と同じメンバを用いて繋がれ
ている。 C)トランザクション途中状態 トランザクション途中を示す。この状態のとき、該当す
るメタデータを更新したトランザクションは、ある1つ
のログバッファを専有しており、既にそこに更新後状態
がコピーされている。リストは並行動作数に応じて必要
である。このリストをTRANSリストと呼ぶ。
いないことからログがログボリューム120ヘ反映され
ておらず、本メタデータもメタボリュームヘの反映はで
きない。この状態にあるメタデータはファイルのロック
によって保護されているため、他トランザクションから
参照・更新されることはない。
っており、その要素番号はトランザクションが用いてい
るログバッファの番号(トランザクション番号)に対応
する。
れているメタデータが繋がる場合がある。TRANSリ
ストは単方向環状リストであり、BTFリストが用いる
メンバを併用する。
の内容はログライトデーモン105によってログボリュ
ーム120ヘ反映されるため、この時点ではまだログボ
リューム120に反映されていない状態である。(デー
モンは同期ライトを行うが、トランザクションの視点か
ら見れば、ログ反映が非同期に行われているように見え
る。) トランザクションが終了する際に、C)の状態にあるT
RANSリスト(巨大トランザクションの場合はBTF
リストも)をログ待ちリストに繋ぎかえる。このリスト
はトランザクションが終了する毎に後方へ伸びるリスト
であり、ログライトバッファと同数の2本存在する。
クションが終了しており、ログはログライトバッファに
コピーされている。トランザクションが終了しているこ
とから、他トランザクションによって参照・更新される
可能性がある。この時(他トランザクションによって状
態が変化した時)、リスト位置は変更せず、状態フラグ
だけを変更する。
が、他トランザクションによって再度更新されたため
に、トランザクション途中状態になり、そのトランザク
ションが終了したことによって、ログ待ち状態になった
場合には、このメタデータはメタライトリストにも繋が
れている。
の反映が進むと、それに応じたメタデータをメタライト
リストヘ追加していく。この時、既にメタライトリスト
に繋がれているメタデータは、そのままの位置でいなけ
ればならない。 E)書き出し可能状態 これは、ログバッファのログボリュームへ反映が終了
し、自由にメタデータをメタボリュームへ反映すること
ができるようになった状態である。この状態にあるメタ
データは他トランザクションによって参照・更新される
可能性がある。この時、リスト位置は変更せず、状態フ
ラグだけを変更する。
1本だけ存在する。メタライトデーモン104はこのリ
ストを参照してメタボリュームヘの反映を行う。 F)I/O中状態 この状態にあるメタデータは現在非同期ライトによって
メタボリュームに対してI/Oを投げているが、まだ完
了していない。I/O途中であるため、他トランザクシ
ョンは操作することができない(参照することはでき
る)。メタライトリストにそのまま繋がれている。 (3−2)ログボリュームの上書き判定情報 ログボリュームはサイズが有限であるため、サイクリッ
クに利用し、過去のログを上書きしてシステムは動作す
る。ここで、過去のログを上書きするためには、そのト
ランザクションが更新したメタデータが全てメタボリュ
ームに反映されていることが必要である。上書き可能領
域を管理するために、以下の構造を設け、メタライトデ
ーモン104が変更、ログライトデーモン105が参照
する。 ◎ログシーケンス番号 各トランザクションが終了し、ログバッファの内容をロ
グライトバッファヘコピーする毎に与えられる、シーケ
ンシャル番号である。ログボリューム内のBEGINマ
ーク、ENDマークに含まれる番号と同一である。既に
ライトリストに繋がるメタデータが再度更新される場合
にも、この番号は変更されない。 ◎ロクボリューム内オフセット ログボリューム内にはトランザクション毎のログが連続
して並んでおり、上書きするためには、それぞれのトラ
ンザクションが更新した全てのメタデータがメタボリュ
ームへ反映されている必要がある。
造体は、ここにはそのログの先頭オフセットを挿入す
る。LOG_ENDによってログバッファの内容がログ
ライトバッファにコピーされる際、そのアドレスとログ
ボリュームの書き出しオフセットから導かれる。トラン
ザクション毎のログボリューム内オフセットがTRAN
Sリストを辿りながらそれぞれのmetalist構造
体に設定する。
出す際にメタライトリストの先頭に繋がるmetali
st構造体を参照し、現在のポインタにログライトバッ
ファに入っているログサイズを足した位置が、このオフ
セット値を超えないことを確認した後で書き出しを行
う。 (3.3)メタボリュームヘの反映 トランザクションによって更新されたメタデータは、ト
ランザクションが終了しログがログボリューム120に
反映されるまでは書き出されてはならない。そのため
に、メタキャッシュ130上の各メタデータはそれぞれ
の状態に応じてリストに繋がれ、唯一メタボリュームヘ
の反映が許可されているリストはメタライトリストであ
る。
ン内で行うことを避けるために、メタデータのメタボリ
ュームヘの反映はトランザクションとは関係ないところ
で動作するデーモンに委ねる。このデーモンはメタライ
トリストだけを意識し、metalist構造体内の情
報から状態に応じてI/O発行するかどうかを決定し、
関連付けられたbuf構造体を用いてメタデータをメタ
ボリュームヘ反映する。
タデータを書き出した後、そのメタデータをリストから
外し、cleanであると設定する。 (3.4)メタライトデーモン メタライトデーモン104は、マウント時に起動され、
アンマウント時に停止する。すなわち、ファイルシステ
ム毎にスレッドを起動する。
が更新したメタデータは、それを管理するmetali
st構造体が全てメタライトリストに繋がれている。メ
タライトデーモン104はメタライトリストに繋がるメ
タデータを、ログボリュームの残りが少なくなったと判
断された場合などに非同期でメタボリュームに反映す
る。反映している間は該当するメタデータは更新するこ
とができず、I/O終了を待ち合わせることになる。
ストを意識し、繋がるメタデータをメタボリュームへ反
映する。これにより、ログボリュームの上書き可能領域
が拡大する。
メタデータの中にも、再度トランザクションによって更
新が進み、メタボリュームヘの反映が禁じられているも
のが存在する場合がある。この時、他のメタデータを書
き出すとしても、そのメタデータについては非同期ライ
トの発行を待ちあわせなければならない。このようなメ
タデータが存在すると、以降のメタデータを全て書き出
せたとしても、上書き可能領域を拡大することができな
い。
されて処理を開始する場合と、自発的に起動する場合が
ある。以下に処理手順を述べるが、システムの状態(ロ
グボリュームの空きやメタキャッシュ130の空きな
ど)に応じて動作が若干異なる。また、ここで述べる処
理手順にはデーモン内だけではなく、ドライバから呼ば
れる関数での処理も含まれている。 (3.4.1)自発起動処理 メタライトデーモン104はタイマによって自発的に起
動して、それまでにメタライトシストに繋がれた書き出
し可能なメタデータをメタボリュームに反映する。この
時、メタライトリストの全てを書き出す訳ではなく、あ
る一定の数だけ非同期書き出しを行う。普段から少しず
つメタデータの書き出しを行っておくことによって、資
源不足による起動を避け、I/O負荷分散を図る目的が
ある。
繋がるメタデータ数を調査する。 b)メタライトリストの先頭から、メタデータの状態を
調べる。 c)メタデータが書き出し可能状態であれば、その状態
をI/O負荷態に変更し、非同期ライトを発行する。
功を確認する。 e)b_iodoneの関数がメタライトリストから外
す。 f)規定数だけ繰り返す g)スリープする。
ストに繋がるメタデータ数を確認する。具体的には、メ
タライトリストのターミナルに含まれる、リンクされた
メタデータ数を調べる。このとき、それほど多くのメタ
データが繋がれていない場合には書き出しは行わない。
の書き出しが終わった、書き出し可能状態のメタデータ
が繋がれている。しかし、トランザクションが終了して
メタライトリストに繋がれた後で他トランザクションに
よって更新されると、そのメタデータだけは書き出し不
可の状態に戻ってしまう。そのため、メタライトデーモ
ン104はメタライトリストに繋がるメタデータの状態
を確認しながら書き出し処理を行わなければならない。
し可能状態であれば、その状態をI/O状態に書き換
え、metalist構造体に含まれるbuf構造体を
用いてI/Oを発行する。I/O中状態のメタデータは
他トランザクションから更新されることはない。メタデ
ータのディスクライトは非同期ライトで行い、デーモン
はI/Oの結果を待たずに次の処理へ進む。
ら、そのメタデータは諦め、リストの次に繋がるメタデ
ータに進み、状態を調べる。 d)非同期ライトによって発行されたI/Oの結果を判
定するのは、buf構造体のメンバb_iodoneに
組み込まれた関数である。この関数にはbuf構造体が
引数に与えられ、それを元にエラー判定処理を呼び出
す。ここでエラーを検出した場合には、異常系処理へ進
む(後述)。成功していた場合には、該当メタデータの
clean数をインクリメントする。
はメタライトリストの管理も行う。引数に渡されたbu
f構造体の上を見るとそこはmetalist構造体に
なっており、そのフフグからI/O中フラグを落とし、
メタライトリストから外す。また、メタデータをダーテ
ィ状態からclean状態へ変更する。これは、メタキ
ャッシュ130で管理されるメタデータである場合に
は、それぞれの管理構造体で管理されており、この管理
構造体はmetalist構造体からポイントされる。
ist構造体をリリースする。 f)メタライトリストに繋がる書き出し可能メタデータ
を、次々とリストを辿りながら定義した数だけ処理を繰
り返す。ここで、書き出しが不可とされているメタデー
タについては、この数には含めない。また、メタライト
リストが定義数よりも少ない場合には、当然そこで終了
となる。 g)スリープする。再度、自発的に起動するか、あるい
は資源不足によって他から起動されるまで、スリープは
継続する。 (3.4.2)平常処理 システム状態が以下の場合には、ここで述べる処理手順
に従いメタライトデーモン104は動作する。 ◎ログボリュームの残りが少ない。
グライトバッファを書き出す際に、上書き可能域の大き
さを計算し、この閾値を下回った時にメタライトデーモ
ン104を起動する。 ◎メタキャッシュの残りが少ない。
clean数がデクリメントされるが、その数がこの閾
値を下回った時にメタライトデーモン104を起動す
る。 a)メタライトリストの先頭から、メタデータの状態を
調べる。
ば、その状態をI/O中状態に変更し、非同期ライトを
発行する。 c)b_iodoneの関数がI/Oの成功を確認す
る。
リストから外す。 e)メタライトリストの最後まで繰り返す。 f)スリープする。
出し可能メタデータについて処理を繰り返す。平常処理
時には、書き出し不可のメタデータについては飛ばして
処理を行う。そのため、ログボリューム不足時には、メ
タライトリストの先頭、すなわち、ログボリュームの上
書き可能位置を制限しているメタデータが書き出せなけ
れば資源不足は解消しないが、平常処理であるため、こ
こでは特別な対処を行わない。
に従いメタライトデーモン104は動作する。 ◎ログボリュームの残りが非常に少ない。 ◎メタキャッシュ130の残りが非常に少ない。
る。 b)メタライトリストの先頭から、メタデータの状態を
調べる。 c)メタデータが書き出し可能状態であれば、その状態
をI/O中状態に変更し、非同期ライトを発行する。
タがあれば、ログライトデーモン105を起動する。 e)b_iodoneの関数がI/Oの成功を確認す
る。
リストから外す。 g)繰り返す。 h)現在の資源状態を調査し、不足があれば、それが解
消するまで繰り返す。
の開始を受け付けない。具体的には、トランザクション
に利用するログバッファを与えないことによって、その
トランザクションのBEGIN宣言時にてスリープさせ
る。そのために、特定のフラグを設け、BEGIN宣言
時にそのフラグを参照しなければならない。
と同じ処理である。すなわち、メタライトリストの先頭
から、追い出し不可状態のメタデータは飛ばして、書き
出し可能状態のメタデータを順に非同期ライトによって
書き出す。
われることから、たとえトランザクションが終了してい
てもログが未反映のためにメタボリュームへの反映を拒
否しているメタデータが存在することが考えられる。こ
の場合は、強制的にログライトデーモン105を起動し
て、書き出し可能状態へ移行するように操作する。既に
ログライトデーモン105が動作中であれば、そのまま
先へ進む。
常処理の動作契機となる閾値以上の資源が回復していな
ければ、再度、メタライトリスト内のメタデータ書き出
しを試みる。ここで、d)によってログ未反映状態のメ
タデータが、書き出し可能となったことによって進展す
ることを期待している。複数回、繰り返すことによっ
て、新規トランザクションの受付を制限していることか
ら、資源回復までメタデータの書き出しが可能であると
考える。
ンの受付を再開する。 j)タイマを設定して、スリープする。 (4)獲得解放処理 メタデータの割り当て状況を管理するビットマップの状
態として、FREE-dirtyとALLOC-dirtyを区分し、FREE-di
rtyなビットマップからは獲得しないようにする。
得用と定める。簡単のため、複数読み込むビットマップ
のうち、一番若いもの(最初に読み込むもの)を最初の
獲得用ビットマップとする。 ・獲得用ビットマップの複製を作成する。 ・獲得時には複製を検索して獲得位置を決定し、本体と
複製の両方のビットを操作する。 ・解放時には本体のみのビットを操作する。 ・複製ビットマップには解放が記録されないため、獲得
処理が進むと全てのビットが立ち、そのビットマップで
は獲得できないと判断される。その場合、現在メモリ上
にあるビットマップのうち、CLEANなもの、または
ALLOC-dirtyのビットマップを次の獲得用ビットマップ
と定義し、その複製を作成する。 ・メモリ上のビットマップが全てFREE-dirtyである場合
には、どれかを追い出し、新しいビットマップを獲得用
ビットマップとして読み込む。そして、その複製を作成
する。ここで、追い出し・読み込みのアルゴリズムは従
来通りで良い。
マップは追い出しの対象とはしない。そのためメタキャ
ッシュ域不足によって他から追い出されることはない。
また、メタライトリストに繋がったことによって、メタ
ボリュームに反映された場合にも、CLEANな状態に
はなるが、複製は更新せず、そのままとする。
ある。以上説明したように、本発明によれば複数の二次
記憶装置に保存されたメタデータのログにボリューム情
報を含め、また、有効なログの位置を算出・保存するこ
とでリプレイするログ量を減少せしめ、さらに、ログボ
リューム全体のゼロクリアをする必要をなくすことによ
り、ログ機構の最大の利点であるところのファイルシス
テム復元時間の短縮に及ぼす影響を小さくし、オーバオ
ールコンピュータシステム可用性の増大に寄与するとこ
ろが大きい。
ョン内で複数回更新されるメタデータのログを一度しか
採取せず、また、ログバッファの分割や、獲得・解放処
理の特殊なログ採取方式によって複数のトランザクショ
ンの独立性を考慮し、かつ、ログ機構導入による速度性
能の劣化を最小に留めることにおいて寄与するところが
大きい。
毎に異なるログの採取量を考慮し、多くのメタデータを
更新するトランザクションについては分割し、トランザ
クションに与えられたパラメタをもログに採取し、リプ
レイ時にそのパラメタを元に、中途で終わったトランザ
クションを再度実行することによって、オペレーション
のセマンティクスを保証した復元が可能となる面におい
て寄与するところが大きい。
よって実現することができる。その場合、説明した処理
内容は、コンピュータで読み取り可能な記録媒体に記録
されたプログラムに記述されており、このプログラムを
コンピュータで実行することにより、上記処理がコンピ
ュータで実現される。コンピュータで読み取り可能な記
録媒体としては、磁気記録装置や半導体メモリ等があ
る。市場へ流通させる場合には、CD−ROM(Compact
Disk Read Only Memory)やフロッピーディスク等の可
搬型記録媒体にプログラムを格納して流通させたり、ネ
ットワークを介して接続されたコンピュータの記憶装置
に格納しておき、ネットワークを通じて他のコンピュー
タに転送することもできる。コンピュータで実行する際
には、コンピュータ内のハードディスク装置等にプログ
ラムを格納しておき、メインメモリにロードして実行す
る。
メタキャッシュ内のメタデータとともにメタデータがど
のメタボリュームから取り出されたのかを示すメタデー
タ管理情報をログとして採取するようにしたため、保持
されたログがどのメタボリュームのメタデータに関する
ログであるのかを管理することができる。その結果、複
数のログボリュームにメタデータが格納されていても、
ファイルシステムの不整合を修正することが可能とな
る。
範囲を管理するようにしたため、ファイルシステムを復
元する際には、ログボリューム12内の有効なログのみ
を用いて効率よく復元処理を行うことが可能となる。
て付与するシーケンス番号の最大値を、システムの使用
可能年数以上使い続けることができる値としたことで、
常に昇順の採番が可能となり、ログボリュームのゼロク
リアに伴う処理の遅延を避けることができる。
回更新される場合には、最終形態のみをログとして採取
するようにしたため、ログデータが短縮されるととも
に、ログデータの短縮に伴いファイルシステム復元時間
の短縮が図れる。
の一部の複製を獲得操作用管理情報とし、メタデータの
獲得時には獲得操作用管理情報内から取得すべきメタデ
ータを特定するが、解放時には獲得操作用管理情報の情
報を更新しないようにしたため、メタデータの解放直後
に別のトランザクションにより獲得されることがなくな
る。その結果、システムダウン時に中途までしか終了し
ていなかった解放トランザクションが解放したはずであ
る領域は、解放される直前の状態のまま保全されること
が保証される。
ログとして、その操作対象となった情報のみを記録する
ようにしたため、ログ採取量が少量ですむ。また、第7
の発明では、複数のログバッファを設け、さらにいくつ
か異なるサイズのログバッファを用意し、トランザクシ
ョン毎のログをそのトランザクションに適したサイズの
ログバッファに格納するようにしたため、複数のトラン
ザクションが並列実行される際のトランザクションの独
立性を高めることができ、また、メモリ空間を有効に活
用できる。
ションのログがログバッファに収まらない場合に、中間
ログとして完結されたログをログボリュームに書き出す
ようにしたため、部分的であるログを、ファイル復元時
には1つのトランザクションのログと同値に扱うことが
可能となり、ファイルシステムの復元時に望ましい状態
に復元するのが容易となる。
システムの状態よってトランザクションの受け入れを制
限するようにしたため、複数のトランザクションが並列
実行されることによるメモリ枯渇等の障害の発生を防止
することができる。
ェア構成図である。
の構成図である。
である。
すフローチャートである。
を示す図である。
ある。
ートである。
理を示すフローチャートである。
2)
修正機能を有するデータ処理装置及び記録媒体に関し、
特にログを用いてファイルシステムの不整合の修正を行
うデータ処理装置及び記録媒体に関する。
と、何らかの理由によりシステムがダウンする場合があ
る。突然のシステムダウンが発生すると、ファイルシス
テムの不整合が生じる。そこで、システムダウン後のブ
ート時には、従来であればファイルシステム全体を走査
し、その矛盾点の検出を行う。矛盾点が発見されたら、
場合に応じた変更をファイルシステムに加えることによ
って、ファイルシステムの整合性を回復していた。とこ
ろが、ファイルシステム全体を走査するには多くの時間
が必要であり、結果としてシステムダウン後の復旧の遅
れを招いていた。
ステム(OS)のような多くのコンピュータOSのファ
イルシステムでは、ファイルシステムオペレーションに
おいてファイルシステムに保存されているデータが更新
される度に、その更新情報をログ(ジャーナル)として
採取している。ファイルシステムオペレーション時に更
新情報のログ採取を行っておくことにより、システムダ
ウン後のブート時のファイルシステム整合性チェックの
フェーズでは、残されたログを順次走査し、対応する領
域へアップデートすることによって、ファイルシステム
の整合性が保証される。その結果、システムのダウン時
間が短縮される。
入することにより、次に挙げる問題が生じていた。 (1)第1の問題点 ファイルを管理するメタデータ(二次記憶装置に格納さ
れたファイルを管理するためのデータ)は、ファイルシ
ステムオペレーション時に二次記憶装置からメモリへ読
み込まれ、メモリ内において操作される。その後、所定
のタイミングで二次記憶装置へとその更新内容が反映さ
れる。ログ機構の導入時には、その二次記憶装置への反
映前に更新内容をログ専用の二次記憶装置へと記録する
必要がある。
るために、複数の二次記憶装置がメタデータに割り当て
られ、異なる二次記憶装置に割り当てられたメタデータ
を1つのファイルシステムオペレーションが操作する場
合がある。このファイルシステムオペレーションのログ
を採取する際に、メモリ内のメタデータだけをログとし
て記録していたのでは、残されたログからメタデータ毎
に異なる二次記憶装置を検索するのに時間を消費し、ロ
グ機構導入による最大のメリットである、ファイルシス
テム復元の時間短縮に悪い影響を与える。
える要因として、有限なサイズしかないログ専用の二次
記憶装置全体をファイルシステム復元時に探索すること
が考えられる。
ーションを細分化したトランザクションの完了を常に保
証しつつ動作するため、ログ機構を導入した多くのファ
イルシステムはトランザクションにシーケンス番号を与
え、ファイルシステム復元時にはシーケンス番号をもと
に最古のトランザクションを同定する。そして、最古の
トランザクションからログリプレイと呼ばれるログを用
いたファイルシステム復元操作を開始する。
装置内には、ファイルシステムの整合性を復元するため
に欠かせないログが確かに存在する可能性があるが、有
限なサイズを有効利用するためにログ専用の二次記憶装
置は過去のログを上書きしてサイクリックに利用しなけ
ればならない。このような処理を行うには、ある程度以
上古いログが必ず不必要となっていることが前提とな
る。従って、多くのログの内容は既に不必要となってい
る。すなわち、ログ専用の二次記憶装置全体を探索ある
いは反映するのは非効率的である。
号は単調増加であることが要求され、運用途中にオーバ
ーフローによってゼロに戻されてしまうことは許されな
い。これを回避するために、ファイルシステム復元作業
終了時、またはオーバーフロー直前にログ専用の二次記
憶装置全体をゼロクリアし、再度シーケンス番号ゼロか
ら順にトランザクションを処理するのが一般的である。
しかし、ログ専用の二次記憶装置をゼロクリアするため
には多くの時間が必要となる。少なくともシステムの運
用を一時停止する必要があり、サーバ装置などによるサ
ービスの提供を停止せざるを得なくなってしまう。
ステム復元時の問題であるが、ログ機構を導入すること
は通常の運用時にも問題を引き起こす可能性を持ってい
る。ログ機構は、メモリ上にログをスプールする手法
や、ログ専用の二次記憶装置として用いられるディスク
の特性を考慮したシーケンシャルアクセスなど、高速化
のための条件は整えられているが、ログの採取の仕方を
熟考しなければ、ログ採取に伴う性能劣化は非常に大き
いものとなりうる。
することは度々あるが、その都度、その同一データに対
するログを採取したのではメモリが不足し、二次記憶装
置へのI/O量が増加する。
終了したトランザクションのログを順に採取することを
要求するために、あるトランザクションが操作したログ
対象データを他のトランザクションが操作することが一
般的に不可能な状況となりうる。ここで、個々のファイ
ルの内容を対象とするトランザクションについては、フ
ァイル単位に排他制御を行うことによって、複数のトラ
ンザクションが並列実行することは比較的容易である。
しかしながら、個々のファイルによらないもの、特に領
域の割り当て情報を操作する場合には、並列実行がきわ
めて難しくなる。
合を考えると、それぞれが獲得、解放のログを採取す
る。同一の管理情報(ここでは、ビットマップを考え
る)によって管理される領域の獲得・解放処理であった
場合には、同一の管理情報が、解放された状態、獲得さ
れた状態でログに記録されることになる。
ばならないようなシステムダウンが発生するタイミング
によっては、このように別トランザクションの更新情報
を含むログの採取方式では様々な問題が生じる。
というトランザクションが獲得処理を行う場合を考え
る。ここで、トランザクションAの解放処理はトランザ
クションBの獲得処理よりも先に行われ、かつ、トラン
ザクションAはトランザクションBよりも後に終わる場
合を例に挙げる。
領域をトランザクションBが獲得してしまう場合が考え
られる。トランザクションBが先に終了することから、
残されたログには、まず獲得処理が記録され、次に解放
処理が記録される。
けが記録されており、それを復元に用いた場合には、本
来行われたはずである解放処理の記録が残されていない
ことから、該当領域が二重に獲得された状態となってし
まう。トランザクションAのログまで記録されており、
復元に用いられると、トランザクションBが利用してい
る領域がトランザクションAの解放処理のログによって
解放されている状態となってしまう。いずれも本来の状
態とは異なっており、避けなければならない。しかしな
がら、これを回避するために並列実行を制限すること
は、マルチタスクを実現したOS上のファイルシステム
の速度性能の低下に与える影響が非常に大きい。
システムを復元するために費やす時間の短縮が挙げられ
るが、そのためにトランザクションの独立性を疎かにし
たり、中途半端な状態での整合性回復によりあたかも正
常に動作しているかのように振る舞うファイルシステム
が多く見受けられる。
を記録するためのメモリ空間をファイルシステム全体で
1つのキャッシュメモリを共有していたのではトランザ
クション毎の独立性を保つのが難しく、他のトランザク
ションによる更新情報が1つのトランザクションのログ
として記録されてしまう可能性が高い。特にファイルに
対する排他で制御しきれない割り当て管理情報について
は前述の通りである。
ことから、複数のログバッファとしてログを記録するた
めのメモリをトランザクション毎に割り当て、管理する
場合に、全てのメモリサイズが同一である必要はない。
例えば、ファイルの参照時刻を更新するだけのトランザ
クションが残すログのサイズは大変小さく、巨大なデー
タ書き込み要求のトランザクションは必然的にそれだけ
大きいログサイズとなる。
て、限られたメモリ空間の有効利用を試みても、キャッ
シュメモリサイズは残されるログサイズに比較して、や
はり小さい。
ョンを分割し、中途の状態のログを出力することが考え
られる。しかし、一般にファイルを管理するメタデータ
は、トランザクションが中途の状態ではやはり中途の状
態であり、そのままログに記録したところで、そのログ
を用いて復元されるファイルシステムは中途の状態にし
かなり得ない。これではオペレーションのセマンティク
スを保証した復元とはなり得ない。
ョンの中断はファイルシステムにとって危険な状態とい
える。ログ機構の導入は、採取したログをログボリュー
ムに反映するまでは該当メタデータもキャッシュメモリ
から追い出せないことを意味する。ログがキャッシュメ
モリに入りきらないほど巨大となっているときには、メ
タデータを管理するキャッシュメモリの利用率も高くな
っていることが考えられる。ログを出力するまでメタデ
ータをキャッシュメモリから追い出せないため、このよ
うな状態で多くのトランザクションが並列実行される
と、メモリ枯渇によるハングアップ状態に陥ることも考
えられる。
憶装置についても言える。キャッシュメモリに比較すれ
ば巨大な二次記憶装置についても、メタデータ記録用の
二次記憶装置へのI/Oを削減するために、多くのログ
を有効なログとして残しておけば、それは利用可能な領
域の減少を引き起こす。その際に多数のトランザクショ
ンの並列実行を許すことはメタデータキャッシュ枯渇、
ログキャッシュ枯渇、ログ記録用二次記憶装置枯渇、な
どを誘発する可能性がある。
のであり、ファイルシステム修復処理の効率化を図った
データ処理装置を提供することを目的とする。
決するための第1の発明として、ログを用いてファイル
システムの不整合の修正を行うデータ処理装置におい
て、ファイルを管理するメタデータを記憶するための二
次記憶装置である複数のメタボリュームと、メタデータ
の更新結果であるログを記憶するための二次記憶装置で
あるログボリュームと、メタデータを記憶するために主
記憶装置内に設けられたメタキャッシュと、メタデータ
の内容が変更される際に、対象となるメタデータを前記
メタキャッシュへと読み込むメタデータ読み込み手段
と、前記メタキャッシュ内に読み込まれたメタデータの
内容を更新するトランザクションと、前記メタキャッシ
ュに読み込まれたメタデータが格納されていたメタボリ
ュームの識別情報を管理するメタデータ管理手段と、前
記メタキャッシュ内で変更されたメタデータの内容をロ
グとして採取するとともに、採取したメタデータが格納
されていたメタボリュームの識別情報を採取するログ採
取手段と、前記ログ採取手段が採取した情報を保持する
ログバッファと、前記ログバッファが保持する情報を、
適宜前記ログボリュームに格納するログ書き込み手段
と、を有することを特徴とするデータ処理装置が提供さ
れる。
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。その
際、読み込んだメタデータがどのメタボリュームから読
み込まれたものであるのかが、メタデータ管理手段によ
って管理される。ここで、トランザクションがメタデー
タの内容を更新すると、ログ採取手段によって更新後の
メタデータがログとして採取される。この際、メタデー
タが格納されていたメタボリュームの識別情報をも採取
する。採取した情報は、ログバッファに保持される。そ
して、ログ書き込み手段により、ログバッファ内の情報
がログボリュームに書き込まれる。
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータの更新結果であるログを記憶するため
の二次記憶装置であるログボリュームと、メタデータを
記憶するために主記憶装置内に設けられたメタキャッシ
ュと、メタデータの内容が変更される際に、対象となる
メタデータを前記メタキャッシュへと読み込むメタデー
タ読み込み手段と、前記メタキャッシュ内に読み込まれ
たメタデータの内容を更新するトランザクションと、前
記メタキャッシュ内で変更されたメタデータの内容をロ
グとして採取するログ採取手段と、前記ログ採取手段が
採取した情報を保持するログバッファと、前記ログボリ
ューム内の領域を定期的に循環するようにして、前記ロ
グバッファが保持する情報を前記ログボリュームに格納
するログ書き込み手段と、前記メタキャッシュ内のメタ
データをメタボリューム内に格納するメタデータ書き込
み手段と、前記メタデータ書き込み手段による書き込み
動作を監視しており、変更内容が前記メタボリュームに
反映されていないメタデータに対応する前記ログボリュ
ーム内のログを、有効なログとして指定する有効範囲監
視手段と、ファイルシステム復元要求を受け取ると、前
記ログボリュームに格納されたログの中で、前記有効範
囲監視手段により有効なログとして指定されているログ
のみを用いて、前記メタボリューム内のメタデータの不
整合を修正するファイルシステム復元手段と、を有する
ことを特徴とするデータ処理装置が提供される。
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する
と、ログ採取手段によって更新後のメタデータがログと
して採取される。採取した情報は、ログバッファに保持
される。そして、ログ書き込み手段により、ログバッフ
ァ内の情報がログボリュームに書き込まれる。その後、
メタデータ書き込み手段により、メタキャッシュ内のメ
タデータがメタボリューム内に格納される。その書き込
み動作は、有効範囲監視手段で監視されており、変更内
容がメタボリュームに反映されていないメタデータに対
応するログボリューム内のログが、有効なログとして指
定される。そして、ファイルシステム復元要求が出され
ると、ファイルシステム復元手段により、ログボリュー
ムに格納されたログの中で、有効範囲監視手段により有
効なログとして指定されているログのみを用いて、メタ
ボリューム内のメタデータの不整合が修正される。
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータの更新結果であるログを記憶するため
の二次記憶装置であるログボリュームと、メタデータを
記憶するために主記憶装置内に設けられたメタキャッシ
ュと、メタデータの内容が変更される際に、対象となる
メタデータを前記メタキャッシュへと読み込むメタデー
タ読み込み手段と、前記メタキャッシュ内に読み込まれ
たメタデータの内容を更新するトランザクションと、前
記メタキャッシュ内で変更されたメタデータの内容をロ
グとして採取するログ採取手段と、前記ログ採取手段が
採取した情報を保持するログバッファと、前記ログバッ
ファが保持する情報を前記ログボリュームに格納するロ
グ書き込み手段と、前記ログボリュームに格納されたロ
グを用いて前記メタボリューム内のメタデータの不整合
を修正するファイルシステム復元手段と、前記ファイル
システム復元手段が前記メタボリューム内のメタデータ
の不整合を修正した時に用いられたログの最後のシーケ
ンス番号を記憶する初期シーケンス番号記憶手段と、
前記ログ書き込み手段がログの書き込みを行う際に、シ
ーケンス番号を昇順で採番し、採番したシーケンス番号
を書き込むべきログに付与しており、前記ファイルシス
テム復元手段が前記メタボリューム内のメタデータの不
整合を修正した直後には、前記初期シーケンス番号記憶
手段に格納されたシーケンス番号を基準として採番する
シーケンス番号採番手段と、を有することを特徴とする
データ処理装置が提供される。
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する
と、ログ採取手段によって更新後のメタデータがログと
して採取される。採取した情報は、ログバッファに保持
される。そして、ログ書き込み手段により、ログバッフ
ァ内の情報がログボリュームに書き込まれる。その際、
シーケンス番号採番手段により、シーケンス番号が昇順
で採番され、書き込むべきログに付与される。ファイル
システムに不整合が発生すると、ファイルシステム復元
手段により、ログボリュームに残されたログを用いてメ
タデータの不整合が修正される。このとき、修正に用い
られた最後のログのシーケンス番号が初期シーケンス番
号記憶手段に記憶される。その後、ログ書き込み手段に
よりログバッファ内の情報がログボリュームに書き込ま
れると、シーケンス番号採番手段により、初期シーケン
ス番号記憶手段に格納されたシーケンス番号を基準とし
てシーケンス番号が採番され、書き込むべきログに付与
される。
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータを記憶するために主記憶装置内に設け
られたメタキャッシュと、メタデータの内容が変更され
る際に、対象となるメタデータを前記メタキャッシュへ
と読み込むメタデータ読み込み手段と、前記メタキャッ
シュ内に読み込まれたメタデータの内容を更新するトラ
ンザクションと、前記トランザクションの種別を判断
し、メタデータの更新を複数回行う可能性のあるトラン
ザクションの場合には、前記メタキャッシュ内で変更さ
れたメタデータの最終形態のみをログとして採取するロ
グ採取手段と、を有することを特徴とするデータ処理装
置が提供される。
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する。
すると、ログ採取手段により、トランザクションの種別
が判断され、メタデータの更新を複数回行う可能性のあ
るトランザクションの場合には、メタキャッシュ内で変
更されたメタデータの最終形態のみがログとして採取さ
れる。
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、メタデータに対する割り当
てを管理するための割り当て管理情報を複数の領域に分
割して保持する割り当て管理情報保持手段と、前記割り
当て管理情報保持手段内の割り当て管理情報の一部領域
の複製を生成し、獲得操作用管理情報とするとともに、
前記獲得操作用管理情報内に未獲得のメタデータがなく
なると、割り当て管理情報の別の領域の複製を前記獲得
操作用管理情報とする獲得操作用管理情報生成手段と、
メタデータの獲得及び解放要求を出力するトランザクシ
ョンと、前記トランザクションによりメタデータの獲得
要求が出された場合には、前記獲得操作用管理情報の中
の未獲得のメタデータを獲得し、獲得したメタデータを
獲得済みとするように前記獲得操作用管理情報と前記割
り当て管理情報との内容を変更するメタデータ獲得手段
と、前記トランザクションによりメタデータの解放要求
が出された場合には、指定されたメタデータが未獲得の
状態となるように、前記割り当て管理情報の内容を変更
するメタデータ解放手段と、を有することを特徴とする
データ処理装置が提供される。
操作用管理情報生成手段により、割り当て管理情報の一
部領域の複製が生成され、獲得操作用管理情報とされ
る。トランザクションにより獲得要求があると、メタデ
ータ獲得手段により、獲得操作用管理情報内の未獲得の
メタデータが獲得される。すると、獲得操作用管理情報
と割り当て管理情報との内容が更新される。また、トラ
ンザクションよりメタデータの解放要求があると、メタ
データ解放手段により該当するメタデータの解放処理が
行われる。この際、割り当て管理情報の内容のみが更新
される。ここで、獲得操作用管理情報内に未獲得のメタ
データがなくなると、割り当て管理情報内の別の領域の
複製が獲得操作用管理情報とされる。
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、メタデータに対する割り当
てを管理するための割り当て管理情報を保持する割り当
て管理情報保持手段と、メタデータの獲得及び解放要求
を出力するトランザクションと、前記トランザクション
によりメタデータの獲得要求が出された場合には、前記
割り当て管理情報保持手段の中の未獲得のメタデータを
獲得し、獲得したメタデータを獲得済みとするように前
記割り当て管理情報の内容を変更するメタデータ獲得手
段と、前記トランザクションによりメタデータの解放要
求が出された場合には、指定されたメタデータ未獲得の
状態となるように、前記割り当て管理情報の内容を変更
するメタデータ解放手段と、前記割り当て管理情報内の
前記メタデータ獲得手段及び前記メタデータ解放手段に
よって変更された部分の情報をログとして採取するログ
採取手段と、を有することを特徴とするデータ処理装置
が提供される。
ンザクションからメタデータの獲得要求が出されると、
メタデータ獲得手段によって未獲得のメタデータの1つ
が割り当て管理情報内から獲得され、そのメタデータが
獲得済みの状態とされる。また、トランザクションから
メタデータの解放要求が出されると、メタデータ解放手
段によって該当するメタデータが未獲得の状態に変更さ
れる。そして、ログ採取手段により、割り当て管理情報
内のメタデータ獲得手段及びメタデータ解放手段によっ
て変更された部分の情報がログとして採取される。
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータを記憶するために主記憶装置内に設け
られたメタキャッシュと、メタデータの内容が変更され
る際に、対象となるメタデータを前記メタキャッシュへ
と読み込むメタデータ読み込み手段と、前記メタキャッ
シュ内に読み込まれたメタデータの内容を更新する複数
のトランザクションと、 ログをトランザクション毎に
保持する、サイズの異なる複数のログバッファと、前記
メタキャッシュ内で変更されたメタデータの内容をログ
として採取し、前記トランザクション毎に分けて前記ロ
グバッファに格納するログ採取手段と、を有することを
特徴とするデータ処理装置が提供される。
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する。
すると、ログ採取手段により、メタキャッシュ内で変更
されたメタデータがログとして採取され、トランザクシ
ョン毎のログバッファに保持される。
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータの更新結果であるログを記憶するため
の二次記憶装置であるログボリュームと、メタデータを
記憶するために主記憶装置内に設けられたメタキャッシ
ュと、メタデータの内容が変更される際に、対象となる
メタデータを前記メタキャッシュへと読み込むメタデー
タ読み込み手段と、前記メタキャッシュ内に読み込まれ
たメタデータの内容を更新するトランザクションと、ロ
グをトランザクション毎に保持するログバッファと、前
記メタキャッシュ内で変更されたメタデータの内容をロ
グとして採取し、前記ログバッファに格納するログ採取
手段と、前記トランザクションが終了した場合に前記ロ
グバッファの内容を前記ログボリュームに書き込むとと
もに、前記トランザクションによるログが前記ログバッ
ファ内に格納しきれない場合には、前記ログバッファ内
のデータを完結したログに加工し、中間ログとして前記
ログボリューム内に格納するログ書き込み手段と、を有
することを特徴とするデータ処理装置が提供される。
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する
と、ログ採取手段によって更新後のメタデータがログと
して採取される。採取した情報は、ログバッファに保持
される。そして、ログバッファに格納しきれなくなる
か、トランザクションが終了すると、ログ書き込み手段
により、ログバッファ内の情報がログボリュームに書き
込まれる。ログバッファに格納しきれなくなった場合に
は、ログバッファの内容を完結したログに加工され、中
間ログとしてログボリュームに格納される。
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータの更新結果であるログを記憶するため
の二次記憶装置であるログボリュームと、メタデータを
記憶するために主記憶装置内に設けられたメタキャッシ
ュと、メタデータの内容が変更される際に、対象となる
メタデータを前記メタキャッシュへと読み込むメタデー
タ読み込み手段と、前記メタキャッシュ内に読み込まれ
たメタデータの内容を更新する、複数同時実行可能なト
ランザクションと、前記トランザクションからの開始要
求を受け付けると、ログ採取に関するシステムの動作状
況を判断し、前記トランザクションの受け入れ許否を判
断するトランザクション受け入れ判断手段と、前記メタ
キャッシュ内で変更されたメタデータの内容をログとし
て採取するログ採取手段と、前記ログ採取手段が採取し
た情報を保持するログバッファと、前記ログバッファが
保持する情報を、適宜前記ログボリュームに格納するロ
グ書き込み手段と、を有することを特徴とするデータ処
理装置が提供される。
ンザクションから開始要求が出されると、トランザクシ
ョン受け入れ制限手段が受け入れの許否を判断する。そ
の後、メタデータ書き込み手段によるメタデータの書き
込みが進み、有効なログの割合が減少したら、その時点
でトランザクションの開始要求を許可する。
を参照して説明する。図1は、第1の発明の原理構成図
である。この第1の発明は、複数の二次記憶装置がメタ
データに割り当てられている場合におけるファイルシス
テム不整合修復時間の短縮を図るものである。
してメタボリューム1a,1b,1cとログボリューム
2とが設けられている。各メタボリューム1a,1b,
1cには、ファイルを管理するためのメタデータが記憶
されている。また、ログボリューム2には、メタデータ
の更新結果であるログが記憶されている。また、主記憶
装置内にはメタキャッシュ3が設けられている。メタキ
ャッシュ3は、メタデータを記憶するための主記憶装置
内の記憶領域である。メタデータ読み込み手段4は、メ
タデータの内容が変更される際に、対象となるメタデー
タをメタキャッシュ3へと読み込む。メタデータ管理手
段5は、メタキャッシュ3に読み込まれたメタデータが
格納されていたメタボリューム1a,1b,1cの識別
情報を管理する。トランザクション6は、メタキャッシ
ュ3内に読み込まれたメタデータの内容を更新する。ロ
グ採取手段7は、メタキャッシュ3内で変更されたメタ
データの内容をログとして採取するとともに、採取した
メタデータが格納されていたメタボリューム1a,1
b,1cの識別情報を採取する。ログバッファ8は、ロ
グ採取手段7が採取した情報を保持する。ログ書き込み
手段9は、ログバッファ8が保持する情報を、適宜ログ
ボリューム2に格納する。
ンザクション6がメタデータの更新をする際には、ま
ず、メタデータ読み込み手段4によりメタボリューム1
a〜1c内の必要なメタデータがメタキャッシュ3に読
み込まれる。その際、読み込んだメタデータがどのメタ
ボリュームから読み込まれたものであるのかが、メタデ
ータ管理手段5によって管理される。ここで、トランザ
クション6がメタデータの内容を更新すると、ログ採取
手段7によって更新後のメタデータがログとして採取さ
れる。この際、メタデータが格納されていたメタボリュ
ーム1a〜1cの識別情報をも採取する。採取した情報
は、ログバッファ8に保持される。そして、ログ書き込
み手段9により、ログバッファ8内の情報がログボリュ
ーム2に書き込まれる。
たログがどのメタボリューム1a〜1cのメタデータに
関するログであるのかを管理することができる。その結
果、複数のメタボリューム1a〜1cにメタデータが格
納されていても、ファイルシステムの不整合を修正する
ことが可能となる。
第2の発明は、ログの有効範囲を監視することで、ファ
イルシステム復元時の効率化を図ったものである。第2
の発明は、以下のような要素で構成される。
るメタデータを記憶するための二次記憶装置である。ロ
グボリューム12は、メタデータの更新結果であるログ
を記憶するための二次記憶装置である。メタキャッシュ
13は、メタデータを記憶するために主記憶装置内に設
けられた記憶領域である。メタデータ読み込み手段14
は、メタデータの内容が変更される際に、対象となるメ
タデータをメタキャッシュ13へと読み込む。トランザ
クション15は、メタキャッシュ13内に読み込まれた
メタデータの内容を更新する。ログ採取手段16は、メ
タキャッシュ13内で変更されたメタデータの内容をロ
グとして採取するとともに、採取したメタデータが格納
されていたメタボリュームの識別情報を採取する。ログ
バッファ17は、ログ採取手段16が採取した情報を保
持する。ログ書き込み手段18は、ログボリューム12
内の領域を定期的に循環するようにして、ログバッファ
17が保持する情報をログボリューム12に格納する。
メタデータ書き込み手段19は、メタキャッシュ13内
のメタデータをメタボリューム11内に格納する。有効
範囲監視手段20は、メタデータ書き込み手段19によ
る書き込み動作を監視しており、変更内容がメタボリュ
ーム11に反映されていないメタデータに対応するログ
ボリューム12内のログを、有効なログとして指定す
る。ファイルシステム復元手段21は、ファイルシステ
ム復元要求を受け取ると、ログボリューム12に格納さ
れたログの中で、有効範囲監視手段20により有効なロ
グとして指定されているログのみを用いて、メタボリュ
ーム11内のメタデータの不整合を修正する。なお、有
効範囲監視手段20による有効なログの指定方法として
は、例えば、有効範囲を示す情報を不揮発性の記録媒体
(ログボリューム12等)に記録することができる。こ
の場合、ファイルシステム復元手段21は、有効範囲が
記録された不揮発性の記録媒体内の情報を読みとること
で、有効なログと指定されているログを認識できる。
ンザクション15がメタデータの更新をする際には、ま
ず、メタデータ読み込み手段14によりメタボリューム
11内の必要なメタデータがメタキャッシュ13に読み
込まれる。ここで、トランザクション15がメタデータ
の内容を更新すると、ログ採取手段16によって更新後
のメタデータがログとして採取される。採取した情報
は、ログバッファ17に保持される。そして、ログ書き
込み手段18により、ログバッファ17内の情報がログ
ボリューム12に書き込まれる。その後、メタデータ書
き込み手段19により、メタキャッシュ13内のメタデ
ータがメタボリューム11内に格納される。その書き込
み動作は、有効範囲監視手段20で監視されており、変
更内容がメタボリューム11に反映されていないメタデ
ータに対応するログボリューム12内のログが、有効な
ログとして指定される。そして、ファイルシステム復元
要求が出されると、ファイルシステム復元手段21によ
り、ログボリューム12に格納されたログの中で、有効
範囲監視手段20により有効なログとして指定されてい
るログを用いて、メタボリューム11内のメタデータの
不整合が修正される。
際には、ログボリューム12内の有効なログのみを用い
て効率よく復元処理を行うことが可能となる。図3は、
第3の発明の原理構成図である。第3の発明は、ログに
付加するシーケンス番号のデータサイズを十分大きなも
のとし、シーケンス番号を常に昇順で使い続けることが
できる(ゼロクリアが不要となる)ようにしたものであ
る。第3の実施の形態は、以下のような要素で構成され
る。
るメタデータを記憶するための二次記憶装置である。ロ
グボリューム32は、メタデータの更新結果であるログ
を記憶するための二次記憶装置である。メタキャッシュ
33は、メタデータを記憶するために主記憶装置内に設
けられた記憶領域である。メタデータ読み込み手段34
は、メタデータの内容が変更される際に、対象となるメ
タデータをメタキャッシュ33へと読み込む。トランザ
クション35は、メタキャッシュ33内に読み込まれた
メタデータの内容を更新する。ログ採取手段36は、メ
タキャッシュ33内で変更されたメタデータの内容をロ
グとして採取する。ログバッファ37は、ログ採取手段
36が採取した情報を保持する。ログ書き込み手段38
は、ログバッファが保持する情報を前記ログボリューム
に格納する。ファイルシステム復元手段39は、ログボ
リューム32に格納されたログを用いてメタボリューム
31内のメタデータの不整合を修正する。初期シーケン
ス番号記憶手段30aは、ファイルシステム復元手段3
9がメタボリューム31内のメタデータの不整合を修正
した時に用いられたログの最後のシーケンス番号を記憶
する。シーケンス番号採番手段30bは、ログ書き込み
手段38がログの書き込みを行う際に、シーケンス番号
を昇順で採番し、採番したシーケンス番号を書き込むべ
きログに付与しており、ファイルシステム復元手段39
がメタボリューム31内のメタデータの不整合を修正し
た直後には、初期シーケンス番号記憶手段30aに格納
されたシーケンス番号を基準として採番する。
ンザクション35がメタデータの更新をする際には、ま
ず、メタデータ読み込み手段34によりメタボリューム
31内の必要なメタデータがメタキャッシュ33に読み
込まれる。ここで、トランザクション35がメタデータ
の内容を更新すると、ログ採取手段36によって更新後
のメタデータがログとして採取される。採取した情報
は、ログバッファ37に保持される。そして、ログ書き
込み手段38により、ログバッファ37内の情報がログ
ボリューム32に書き込まれる。その際、シーケンス番
号採番手段30bによりシーケンス番号が昇順で採番さ
れ、書き込むべきログに付与される。また、ファイルシ
ステム復元手段39により、ログボリューム32に格納
されたログを用いてメタボリューム31内のメタデータ
の不整合が修正されると、修正した時に用いられたログ
の最後のシーケンス番号が初期シーケンス番号記憶手段
30aに記憶される。その後、ログ書き込み手段38に
より、ログバッファ37内の情報がログボリューム32
に書き込まれると、シーケンス番号採番手段30bによ
り、初期シーケンス番号記憶手段30aに記憶されたシ
ーケンス番号を基準としてシーケンス番号が昇順で採番
され、書き込むべきログに付与される。
に用いたログと、ファイルシステム復元後に介したトラ
ンザクションのログとのシーケンス番号が重ならないこ
とを保証することができる。その結果、システムが使用
可能な期間中にログボリュームをゼロクリアする必要が
なくなり、ゼロクリアに伴う処理の遅延を避けることが
できる。
第4の発明は、同じメタデータに対して複数回更新処理
が行われる場合に、最終形態のメタデータのみをログと
して採取するものである。第4の発明は、以下のような
要素で構成される。
るメタデータを記憶するための二次記憶装置である。メ
タキャッシュ42は、メタデータを記憶するために主記
憶装置内に設けられた記憶領域である。メタデータ読み
込み手段43は、メタデータの内容が変更される際に、
対象となるメタデータをメタキャッシュ42へと読み込
む。トランザクション44は、メタキャッシュ42内に
読み込まれたメタデータの内容を更新する。ログ採取手
段45は、トランザクション44の種別を判断し、メタ
データの更新を複数回行う可能性のあるトランザクショ
ンの場合には、メタキャッシュ42内で変更されたメタ
データの最終形態のみをログとして採取する。ログバッ
ファ46は、ログ採取手段45が採取した情報を保持す
る。
ンザクション44がメタデータの更新をする際には、ま
ず、メタデータ読み込み手段43によりメタボリューム
41内の必要なメタデータがメタキャッシュ42に読み
込まれる。ここで、トランザクション44がメタデータ
の内容を更新する。すると、ログ採取手段45により、
トランザクション44の種別が判断され、メタデータの
更新を複数回行う可能性のあるメタデータ属性を予測す
る。予測されたメタデータ属性において、同一メタデー
タが何度も更新される可能性がある場合には、その属性
のメタデータがメタキャッシュ42内で変更された時点
ではログ採取を行わず、トランザクション44が終了し
た時点で、最終形態のメタデータをログとして採取す
る。採取した情報は、ログバッファ46に保持される。
のログを更新処理の度に採取することがなくなり、メモ
リの効率化を図ることができるともに、ログを書き出す
ときのI/Oの量も減らすことができる。
第5の発明は、メタデータ割り当て管理情報の一部の複
製を生成し、複製として生成した情報内からのみメタデ
ータの獲得を可能とし、解放する際には、割り当て管理
情報においてのみ解放された旨の情報の更新を行うこと
で、解放直後に別のトランザクションに獲得されるのを
防止したものである。第5の発明は、以下のような要素
で構成される。
ータに対する割り当てを管理するための割り当て管理情
報51aを複数の領域に分割して保持する。獲得操作用
管理情報生成手段52は、割り当て管理情報保持手段5
1内の割り当て管理情報の一部領域の複製を生成し、獲
得操作用管理情報51bとする。また、獲得操作用管理
情報51b内に未獲得のメタデータがなくなると、割り
当て管理情報の別の領域の複製を獲得操作用管理情報5
1bとする。トランザクション53は、メタデータの獲
得及び解放要求を出力する。メタデータ獲得手段54
は、トランザクション53によりメタデータの獲得要求
が出された場合には、獲得操作用管理情報51bの中の
未獲得のメタデータを獲得し、獲得したメタデータを獲
得済みとするように獲得操作用管理情報51bと割り当
て管理情報51aとの内容を変更する。メタデータ解放
手段55は、トランザクション53によりメタデータの
解放要求が出された場合には、指定されたメタデータが
未獲得の状態となるように、割り当て管理情報の内容を
変更する。
操作用管理情報生成手段52により、割り当て管理情報
51aの一部領域の複製が生成され、獲得操作用管理情
報51bとされる。トランザクション53により獲得要
求があると、メタデータ獲得手段54により、獲得操作
用管理情報51b内の未獲得のメタデータが獲得され
る。すると、獲得操作用管理情報51bと割り当て管理
情報51aとの内容が更新される。また、トランザクシ
ョン53よりメタデータの解放要求があると、メタデー
タ解放手段55により該当するメタデータの解放処理が
行われる。この際、割り当て管理情報51aの内容のみ
が更新される。ここで、獲得操作用管理情報51b内に
未獲得のメタデータがなくなると、割り当て管理情報5
1a内の別の領域の複製が獲得操作用管理情報51bと
される。
作用管理情報51bに反映されないため、解放直後のメ
タデータが他のトランザクションに獲得されることがな
くなる。その結果、解放処理を行ったトランザクション
の終了前にシステムがダウンしても、少なくとも解放前
の状態のまま保全されることが保証される。
第6の発明は、トランザクション単位に、獲得や解放に
関する情報をログとして記録することで、必要なメモリ
容量の削減を図るとともに、平行動作するトランザクシ
ョンのログに起因して割り当て管理情報に不正な状態が
発生することを防ぐものである。第6の発明は、以下の
ような要素で構成される。
ータに対する割り当てを管理するための割り当て管理情
報を保持する。トランザクション62は、メタデータの
獲得及び解放要求を出力する。メタデータ獲得手段63
は、トランザクション62によりメタデータの獲得要求
が出された場合には、獲得操作用管理情報の中の未獲得
のメタデータを獲得し、獲得したメタデータを獲得済み
とするように割り当て管理情報61aの内容を変更す
る。メタデータ解放手段64は、トランザクション62
によりメタデータの解放要求が出された場合には、指定
されたメタデータ未獲得の状態となるように、割り当て
管理情報61aの内容を変更する。ログ採取手段65
は、割り当て管理情報内のメタデータ獲得手段63及び
メタデータ解放手段64によって変更された部分の情報
をログとして採取する。ログバッファ66は、ログ採取
手段65が採取したログを保持する。
ンザクション62からメタデータの獲得要求が出される
と、メタデータ獲得手段63によって未獲得のメタデー
タの1つが割り当て管理情報61a内から獲得され、そ
のメタデータが獲得済みの状態とされる。また、トラン
ザクション62からメタデータの解放要求が出される
と、メタデータ解放手段64によって該当するメタデー
タが未獲得の状態に変更される。そして、ログ採取手段
65により、割り当て管理情報61a内のメタデータ獲
得手段63及びメタデータ解放手段64によって変更さ
れた部分の情報がログとして採取され、ログバッファ6
6に保持される。
際に、トランザクションが獲得や解放を行ったという情
報のみをログとして格納することで、メモリ等の領域を
効率よく利用することができるとともに、他トランザク
ションによる獲得や解放処理の情報がログに含まれない
ことによって、割り当て管理情報が不正な状態となるこ
とを防ぐことができる。
第7の発明は、ログバッファを複数設けることにより、
トランザクションの独立性をいっそう高めたものであ
る。第7の発明の構成要素は以下の通りである。
るメタデータを記憶するための二次記憶装置である。メ
タキャッシュ72は、メタデータを記憶するために主記
憶装置内に設けられた記憶領域である。メタデータ読み
込み手段73は、メタデータの内容が変更される際に、
対象となるメタデータをメタキャッシュ72へと読み込
む。複数のトランザクション74a〜74cは、メタキ
ャッシュ72内に読み込まれたメタデータの内容を更新
する。複数のログバッファ75a〜75eは、ログをト
ランザクション毎に保持する。各ログバッファ75a〜
75eのサイズは一定ではなく、大きなサイズや小さな
サイズが存在する。ログ採取手段76は、メタキャッシ
ュ72内で変更されたメタデータの内容をログとして採
取し、前記トランザクション毎に分けて適したサイズの
ログバッファ75a〜75eに格納する。例えば、最初
にログを格納する場合には、トランザクションの内容に
よって予想される処理に適した大きさのログバッファに
格納し、格納対象となるログバッファの記憶容量が不足
してきたら、より大きな記憶容量のログバッファへログ
を移し替え、以後、より大きな記憶容量のログバッファ
をログの格納対象とする。
ンザクション74a〜74cがメタデータの更新をする
際には、まず、メタデータ読み込み手段73によりメタ
ボリューム71内の必要なメタデータがメタキャッシュ
72に読み込まれる。ここで、トランザクション74a
〜74cがメタデータの内容を更新する。すると、ログ
採取手段76により、メタキャッシュ72内で変更され
たメタデータがログとして採取され、適したサイズのロ
グバッファ75a〜75eに保持される。
トランザクション毎に1つのログバッファを使用するよ
うにしたことで、トランザクションの独立性を保つこと
ができる。しかも、複数のサイズのログバッファを用意
し、トランザクション毎に適したサイズのログバッファ
を使用することにより、メモリを効率的に利用できる。
第8の発明は、あるトランザクションのログがログバッ
ファに入りきらない場合に、中間ログとしてログバッフ
ァの内容を書き出すものである。第8の発明の構成は以
下の通りである。
るメタデータを記憶するための二次記憶装置である。ロ
グボリューム82は、メタデータの更新結果であるログ
を記憶するための二次記憶装置である。メタキャッシュ
83は、メタデータを記憶するために主記憶装置内に設
けられた記憶領域である。メタデータ読み込み手段84
は、メタデータの内容が変更される際に、対象となるメ
タデータをメタキャッシュ83へと読み込む。トランザ
クション85は、メタキャッシュ83内に読み込まれた
メタデータの内容を更新する。ログバッファ86は、ロ
グをトランザクション毎に保持する。ログ採取手段87
は、メタキャッシュ83内で変更されたメタデータの内
容をログとして採取し、ログバッファ86に格納する。
ログ書き込み手段88は、トランザクション85が終了
した場合にログバッファ86の内容をログボリューム8
2に書き込むとともに、トランザクション85によるロ
グがログバッファ86内に格納しきれない場合には、ロ
グバッファ86内のデータを完結したログに加工し、中
間ログとしてログボリューム82内に格納する。なお、
中間ログを生成する際には、中間ログに対してトランザ
クションを実行するのに必要とされたパラメタに関する
情報を付加する。ファイルシステム復元手段89は、フ
ァイルシステム復元要求を受け取ると、ログボリューム
82に格納されたログを用いて、メタボリューム81内
のメタデータの不整合を修正する。このとき、中間ログ
を発見すると、中間ログに含まれたパラメタを用いてト
ランザクションを再実行させる。
ンザクション85がメタデータの更新をする際には、ま
ず、メタデータ読み込み手段84によりメタボリューム
81内の必要なメタデータがメタキャッシュ83に読み
込まれる。ここで、トランザクション85がメタデータ
の内容を更新すると、ログ採取手段87によって更新後
のメタデータがログとして採取される。採取した情報
は、ログバッファ86に保持される。そして、ログバッ
ファ86に格納しきれなくなるか、トランザクション8
5が終了すると、ログ書き込み手段88により、ログバ
ッファ86内の情報がログボリューム82に書き込まれ
る。ログバッファ86に格納しきれなくなった場合に
は、ログバッファ86の内容を完結したログに加工し、
中間ログとしてログボリューム82に格納する。そし
て、ファイルシステム復元要求が出されると、ファイル
システム復元手段89により、ログボリューム82に格
納されたログを用いて、メタボリューム81内のメタデ
ータの不整合が修正されるとともに、中間ログまで採取
した段階で停止しているトランザクションが再実行され
る。
うトランザクションの実行中にシステムがダウンした場
合には、途中の状態まで戻すことができるとともに、ト
ランザクションが再実行されることで、トランザクショ
ンの実行後の状態へ遷移させることができる。
トランザクションの受け入れを一定の条件によって制限
することで、メモリ枯渇等を防止するものである。第9
の発明の構成は以下の通りである。
るメタデータを記憶するための二次記憶装置である。ロ
グボリューム92は、メタデータの更新結果であるログ
を記憶するための二次記憶装置である。メタキャッシュ
94は、メタデータを記憶するために主記憶装置内に設
けられた記憶領域である。メタデータ読み込み手段93
は、メタデータの内容が変更される際に、対象となるメ
タデータをメタキャッシュ94へと読み込む。互いの同
時実行可能な複数のトランザクション90b〜90d
は、メタキャッシュ94内に読み込まれたメタデータの
内容を更新する。トランザクション受け入れ制限手段9
0aは、トランザクション90b〜90dからの開始要
求を受け付けると、ログ採取に関するシステムの動作状
況に基づいて、トランザクション90b〜90dの受け
入れ許否を判断する。受け入れ判断基準としては、例え
ばログボリューム内の有効なログが占める割合を用い
る。すなわち、有効範囲監視手段99によって有効なロ
グとされたログがログボリューム中に占める割合が一定
値以上である間は、トランザクション90b〜90dの
受け入れを拒絶する。
内で変更されたメタデータの内容をログとして採取す
る。ログバッファ95は、ログ採取手段96が採取した
情報を保持する。ログ書き込み手段97は、ログバッフ
ァ95が保持する情報を、適宜ログボリューム92に格
納する。メタデータ書き込み手段98は、メタキャッシ
ュ94内のメタデータをメタボリューム91内に格納す
る。有効範囲監視手段99は、メタデータ書き込み手段
98による書き込み動作を監視しており、変更内容が前
記メタボリュームに反映されていないメタデータに対応
するログボリューム92内のログを、有効なログとして
指定する。
ンザクション90b〜90dから開始要求が出される
と、トランザクション受け入れ制限手段90aが受け入
れの許否を判断する。例えば、有効範囲監視手段99に
より有効であると指定されたログのログボリューム92
内に示す割合が一定以上の場合には、それ以上ログが発
生しないように、トランザクションの受け入れを拒絶す
る。その後、メタデータ書き込み手段98によるメタデ
ータの書き込みが進み、有効なログの割合が減少した
ら、その時点でトランザクションの開始要求を許可す
る。
減少に伴うハングアップなどの障害の発生を防止するこ
とができる。次に、本発明の実施の形態を具体的に説明
する。
置のハードウェア構成図である。データ処理システム
は、CPU(Central Processing Unit)211を中心に
構成されている。CPU211は、バス217を介して
他の機器を制御するとともに、様々なデータ処理を行
う。バス217には、メモリ212、入力機器インタフ
ェース213、表示制御回路214、HDD(Hard Disk
Drive)インタフェース215、及びネットワークイン
タフェース216が接続されている。
きプログラムや、プログラムの実行に必要な各種データ
を一時的に保持する。入力機器インタフェース213
は、入力機器としてキーボード221とマウス222が
接続されており、これらの入力機器からの入力内容をC
PU211に伝える。
接続されており、CPU211から送られてきた画像デ
ータを表示装置223で表示可能な画像情報に変換し、
表示装置223の画面に表示させる。
DD231〜233が接続されており、CPU211か
ら送られてきたデータをHDD231〜233に格納す
るとともに、CPU211からの要求に応じてHDD2
31〜233内のデータを読み取り、CPU211に転
送する。
AN(Local Area Network)に接続されており、LANを
介してデータ通信を行う。すなわち、CPU211から
送られたデータをLANに接続された他のコンピュータ
に転送するとともに、他のコンピュータからLANを介
して送られてきたデータをCPU211に転送する。
や、そのファイルを管理するためのメタデータ及びログ
が格納されている。このような構成のシステムにおい
て、CPU211がHDD231〜233に格納された
オペレーティングシステム用のプログラムを実行するこ
とにより、本発明のログ採取機能が実現される。
ログ採取機能の構成図である。図のように、ファイルを
管理するためのメタボリューム111〜113も複数設
けられている。メタボリューム111〜113には、そ
れぞれメタデータが格納されている。メタデータは、フ
ァイルの格納場所等を管理するために必要な情報を有し
ている。
納するための二次記憶装置である。ログボリューム12
0には、ログ122の他にボリューム管理情報121が
格納されている。
作するためのメモリ上の領域である。メタキャッシュ1
30内には、操作対象となるメタデータ132とそのメ
タデータの割り当て管理情報131とが格納される。
ファ141〜144を有している。ログバッファ141
〜144のサイズは均一ではなく、大きなサイズのもの
や小さなサイズのものがある。これらのログバッファ1
41〜144には、メタキャッシュ130内で更新され
たメタデータの複製がログとして格納される。
バッファ150が設けられている。ログライトバッファ
150には、トランザクションの処理が終了した時点
で、ログバッファ141〜144内のログが転送され
る。
1〜103が並列動作している。このトランザクション
101〜103は、ファイルシステムオペレーションを
分割したものである。
あり、それぞれをメタライトデーモン104、ログライ
トデーモン105と呼ぶ。ログライトデーモン105が
ログをログ専用の二次記憶装置であるログボリューム1
20に出力する。メタライトデーモン104は、ログボ
リューム120に対してログが出力されたことを確認し
た後、そのログに対応するメタデータをメタデータ専用
の二次記憶装置であるメタボリューム111〜113に
出力する。
のような特徴を有している。第1の特徴は、各メタデー
タに対応するメタデータ管理情報として、メタボリュー
ムを識別する情報が付加されていることである。これ
は、大規模ファイルシステムに対応するためのものであ
る。すなわち、複数の二次記憶装置がメタボリューム1
11〜113として定義される場合に、メタキャッシュ
130上のメタデータ管理情報にそのメタデータが存在
するボリュームの情報を持たせている。
ある。メタデータ管理情報には、「ボリューム番号」、
「メタデータ番号」、及び「メタデータポインタ」が登
録されている。「ボリューム番号」には、対応するメタ
データが存在するボリューム番号が登録されている。
「メタデータ番号」には、ボリューム毎におけるメタデ
ータ管理番号が登録されている。すなわち、システムが
認識するボリュームのデバイス番号とそのボリューム内
の位置から算定される数値によってメタデータが管理さ
れ、メタデータ自体がそれらの値を管理情報として保持
する。「メタデータポインタ」には、メタデータの実体
のある場所を指し示している。
タデータの内容が更新されると、更新後のメタデータの
内容がログとしてログバッファに記録されるとともに、
メタデータ管理情報の内容がログに記録される。
ある。ログバッファには、「BEGINマーク」、「ボ
リューム番号」、「メタデータ番号」、「メタデータ実
体」、及び「ENDマーク」の情報を含んでいる。
内に記されているボリューム番号によって、そのログに
よって復元すべきメタデータの存在するメタボリューム
が認識される。これにより、従来技術のようにファイル
システム復元時にメタデータ番号からその存在すべきボ
リュームを決定するよりも速度向上が望め、システムダ
ウン後の大規模ファイルシステムにおいてもログ機構導
入によるファイルシステム復元時間の短縮が有効に機能
する。
更新されたメタデータが、それぞれの管理構造にリンク
ポインタを持つことである。ログとしてログボリューム
120に記録されたメタデータはメタライトリストに繋
がれ、メタボリュームヘ反映が完了した時点でこのメタ
ライトリストから外される。さらに、ログとして記録さ
れているログボリューム120内の位置情報をも、メタ
ライトリスト内に持つ。このログボリューム内位置情報
をリストを辿って検索することによって、システムダウ
ン時に必要とされるログの範囲を特定することができ
る。そこで、ここから得られる有効範囲情報をログボリ
ューム120の特定位置に設けたボリューム管理情報1
21内に記録する。有効範囲情報を記録し、ファイルシ
ステム復元時にそこに含まれるログのみをリプレイする
ことにより、ログボリューム全体を検索する必要がなく
なり、ログボリューム全体を読み込む必要のある、有効
範囲情報を記録しない従来の方式よりもファイルシステ
ムの復元時間をさらに短縮することができる。
持ったディスクアクセスを行うことで、記録すべき内容
をヘッドシークすることなしにディスクヘ保存でき、デ
ィスクアクセス時間の短縮を図っている。ところが、本
手法を採用した場合、メタデータのメタボリューム反映
時、ログボリュームヘの書き出し時に、ログボリューム
の特定位置に有効範囲情報を書き出すこととなる。これ
ではシーク削減の意図が全く意味を成さない。
ンターバルを空けて、有効範囲情報は書き出すように工
夫した。変更がある度に、常に書き込まれるわけではな
いため有効範囲情報として保存されている情報には若干
の誤差が含まれてしまう。ファイルシステム復元時にそ
の誤差を吸収する必要がある。
図中において、「●」で示すのが、まだメタボリューム
に反映が終了しておらず、ファイルシステム復元に必要
なログを意味する。「○」で示すのは、メタボリューム
に反映が完了したことによって、ファイルシステム復元
時には利用しなくても良いログである。
用いたファイルシステム復元では、ログボリューム全体
を検索し,ログに記録されたシーケンス番号から、最古
のログを求め、たとえそれがメタボリュームに反映済み
の、利用しなくても良いログであっても利用して、ログ
ボリューム全体のログを用いていた。
き出した時の有効範囲が示されている。その後、有効範
囲を書き出さずに、メタボリュームヘの反映が進み、ま
た、別のトランザクションのログがログボリュームに書
き出されたことによって、実際の有効範囲と有効範囲情
報とはズレを生じている。この時点でシステムがダウン
し、ログを用いてファイルシステムを復元する場合に
は、多少のムダが生じるが、有効範囲情報が示す先頭位
置から、ログを利用する。利用すべきログの末端は有効
範囲情報以降の一定範囲を検索しなければならないが、
その検索は有効範囲情報を書き込むインターバルに依存
し、範囲が限られている。
ョン終了時にシーケンス番号を与え、その番号にはデー
タサイズが肥大化することを考慮に入れた上で、十分大
きいデータ型を適用することである。データ型の大きさ
は、コンピュータ自身の使用可能年数の間使い続けても
枯渇しない程度のサイズとする。例えば、システムの年
表記を4桁の十進数「最大9999」で表していた場
合、西暦1万年まで使用されることは想定されていな
い。その場合、西暦9999年まで使用可能なデータ型
とすれば、ログに対するシーケンス番号がオーバーフロ
ーして逆転することがないことを保証することができ、
それにより、ログボリューム全体をゼロクリアして初期
化する必要が生じない。具体的には、データ型を64ビ
ット型とすれば、オーバーフローすることは現実にはあ
りえない(4万年ほど耐えられるものと思われる)。フ
ァイルシステム管理情報、各トランザクションのログ、
有効範囲情報にこのシーケンス番号を含め、ログボリュ
ームに記録する。このように、ログに与えるシーケンス
番号のデータ型に十分大きいものを適用することによ
り、通常の運用時にトランザクションが動作する毎にイ
ンクリメントしても、オーバーフローは現実には起こり
得ない。
ルシステム全体の管理情報にこのシーケンス番号を含
め、正常なアンマウント処理時及びファイルシステム復
元時にスーパブロックに含まれるシーケンス番号を正し
く設定し、次回のマウント時にそこから得られる値を用
いる。これにより、シーケンス番号は必ず昇順となるこ
とが保証され、ファイルシステム復元時に新しいログを
古いものと取り違えないことが保証される。
よって、ファイルシステム復元時にログボリュームをゼ
ロクリアしなくとも、常に正しいログを利用することが
可能となり、ファイルシステム復元時にログボリューム
全体をゼロクリアするのに比べ、大幅な時間短縮が可能
となる。
であるファイルシステム復元の時間短縮がより一層有効
に機能することが可能となる。第4の特徴は、トランザ
クションによって更新されたメタデータが、そのメタデ
ータの属性に応じ、再度同一のトランザクションにおい
て更新される可能性のあるメタデータであった場合に
は、更新の時点ではログバッファにはコピーせず、リス
ト構造(トランスリスト)によって管理することであ
る。
更新されるメタデータとして、領域割当て管理情報をリ
スト構造で管理し、トランザクション進行中にはその中
途段階のログは採取しない。トランザクション終了時に
リスト構造を辿って、トランザクションの更新の最終状
態のみを一括してログとすることによって、ログの縮小
が図られ、それに伴いファイルシステム復元時間の短縮
が可能となる。
タデータを管理する構造にトランスリストヘのリンクポ
インタを持たせることによって実現している。トランザ
クションによって更新されたメタデータは、ただ一回し
か更新されないことが分かっているメタデータである場
合には、その時点でログバッファヘコピーされるが、以
降もトランザクション進行中に更新される可能性がある
場合には、このリンクポインタを用いてリスト構造に繋
がれる。メタデータの更新可能性の有無は、トランザク
ションの種別で判断する。例えば、データ領域の空きな
どを管理するためのトランザクションでは、何度もメタ
データが更新される。
このトランスリストを辿り、メタデータの最終形態をロ
グバッファヘコピーする。すると、結局はトランザクシ
ョンが同一メタデータを複数回更新しても、最終形態の
一回だけのログ採取で済まされる。
である。この処理は、オペレーティングシステムを実行
するCPUが行う処理である。以下、CPUがオペレー
ティングシステムを実行することにより実現する機能
を、単に「システム」ということとする。 [S1]トランザクションの開始宣言を行う。 [S2]ログ採取要求を行う。 [S3]対象メタデータの更新可能性の有無を判断す
る。更新可能性があればステップS5に進み、そうでな
ければステップS4に進む。 [S4]ログバッファへメタデータをコピーし、ステッ
プS2に進む。 [S5]対象メタデータはトランスリストに繋がれてい
るか否かを判断する。トランスリストに繋がれていれば
ステップS7に進み、そうでなければステップS6に進
む。 [S6]メタデータ毎にトランスリストに繋ぐ。 [S7]トランザクションの処理が終了するか否かを判
断する。終了するのであればステップS8に進み、そう
でなければステップS2に進む。 [S8]トランザクション終了宣言を行う。 [S9]トランスリストを辿り、繋がれている最終形態
のメタデータをそれぞれログバッファへコピーする。
の最終状態のみを一括してログとして保存することがで
きる。第5の特徴は、メタボリュームの割当て管理情報
は獲得用として通常の割当て管理情報の複製を新たに設
けたことである。ここで、割り当て管理情報として、ビ
ットマップを例に挙げて説明する。
状況を示す図である。割り当て管理情報131には、使
用されているメタデータを管理するためのビットマップ
131aが用意されている。ビットマップ131aは複
数のブロックに分けられている。そして各ブロックのビ
ットマップの各ビットが「0」か「1」かによって、対
応するメタデータが空いているか否かが示される。そし
て、ブロックに分けられたビットマップの1つの複製が
作られ、獲得用ビットマップ131bとされる。
様に未割り当て状態の領域の検索が行われる。この時、
検索対象として用いるのは獲得用ビットマップ131b
である。獲得用ビットマップ131b内から未割り当て
状態の領域(ビットが立っていない)が見つかった時に
は、その獲得要求には見つかったビット番号を返す。そ
して、獲得用ビットマップ131b及び、その複製元と
なったビットマップの対応ビットを立てる。一方、獲得
用ビットマップ131b内から未割り当て状態の領域が
見つからなかった時には、別のブロックのビットマップ
の複製を生成し、新たな獲得用ビットマップ131cと
する。
獲得処理を示すフローチャートである。この処理は、シ
ステムが行う処理である。 [S11]獲得要求を発行する。 [S12]獲得用ビットマップに空きがあるか否かを判
断する。空きがあればステップS20に進み、そうでな
ければステップS13に進む。 [S13]メモリ(メタキャッシュ130)上のビット
マップに「FreeDirty」フラグが立てられていないビッ
トマップが存在するか否かを判断する。存在すればステ
ップS14に進み、存在しなければステップS16に進
む。ここで「FreeDirty」フラグとは、一回以上の解放
処理が対象ビットマップに対してなされたことを意味す
る。 [S14]「FreeDirty」フラグが立てられていないビ
ットマップの中で、空きのあるものがあるか否かを判断
する。そのようなビットマップがあればステップS15
に進み、そうでなければステップS16に進む。 [S15]「FreeDirty」フラグが立てられておらず、
空きのあるビットマップの複製を、獲得用ビットマップ
に作成する。その後、ステップS20に進む。 [S16]メタボリューム111〜113上のビットマ
ップに空きがあるか否かを判断する。空きのあるビット
マップがあればステップS17に進み、そうでなければ
ステップS18に進む。 [S17]メタボリューム111〜113上の空きのビ
ットマップをメモリ(メタキャッシュ130)上に読み
込み、ステップS15に進む。 [S18]メモリ(メタキャッシュ130)上のビット
マップに「FreeDirty」フラグが立てられたビットマッ
プが存在するか否かを判断する。存在すればステップS
19に進み、存在しなければ、獲得不可能と判断し処理
を終了する。 [S19]「FreeDirty」フラグが立てられたビットマ
ップをメタボリュームに反映し、「clean」状態にす
る。ここで「clean」状態とは、獲得、解放の処理が全
く行われていない状態を示す。その後、ステップS13
に進む。 [S20]獲得用ビットマップのビットを立てる。 [S21]複製元ビットマップの同一ビットを立てる。 [S22]複製元ビットマップに「AllocDirty」フラグ
を立てる。ここで、「AllocDirty」フラグとは、対象ビ
ットマップから一回以上の獲得処理によって更新がなさ
れた場合に、そのビットマップの管理構造体内のフラグ
に立てる値である。「AllocDirty」フラグや「FreeDirt
y」フラグが立ったビットマップはログ採取対象であ
る。メタボリュームに反映された時にこれらのフラグは
落とされ、「clean」状態となる。
得できる。解放時にも、通常のビットマップ操作と同様
に、要求された領域が対応するビットの算出がまず行わ
れるが、対応するビットを落とす操作は、対象のビット
マップに対してのみ行い、仮にその対象ビットマップの
複製が獲得用ビットマップとして存在する場合にも、そ
の獲得用ビットマップに対しては行わない。
る。この処理は、システムが行う。 [S31]解放要求を出す。 [S32]対象ビットマップがメモリ(メタキャッシュ
130)上にあるか否かを判断する。対象ビットマップ
があればステップS34に進み、そうでなければステッ
プS33に進む。 [S33]メタボリューム111〜113上の対象ビッ
トマップをメモリ(メタキャッシュ130)上に読み込
む。 [S34]対象ビットマップの対応するビットを落と
す。 [S35]対象ビットマップに「FreeDirty」フラグを
立てる。
した領域を即座に別の用途に利用してしまうことを回避
することが可能となり、システムダウン時に中途までし
か終了していなかった解放トランザクションが解放した
はずである領域は、解放される直前の状態のまま保全さ
れることが保証できる。
処理、Bというトランザクションが獲得処理を行う場合
を考える。ここで、トランザクションAの解放処理はト
ランザクションBの獲得処理よりも先に行われ、かつ、
トランザクションAはトランザクションBよりも後に終
わる場合を例に挙げる。
と終了の状況を示す図である。この図において、各トラ
ンザクションは「BEGIN」で始まり、「END」で
終わることを意味し、トランザクションの「○」が解放
処理を、「●」が獲得処理を意味する。
処理がトランザクションBの獲得処理よりも先に行わ
れ、かつ、トランザクションBのほうがトランザクショ
ンAよりも先に終了した場合に従来のログ採取方式では
問題が生ずることは既に述べた。
ザクションBが獲得する領域がトランザクションAが解
放した領域となることは基本的にはなく、領域枯渇状態
に近く、どうしてもこの領域を獲得せねばならない時に
は、一旦、該当ビットマップをメタボリュームに反映し
た後、獲得処理が行われる。これにより、ファイルシス
テム復元時に必要とされる、メタボリュームに未反映な
メタデータを対象とするログを用いた復元では、管理情
報上、二重獲得と見えるようなログは残り得ない。
ンザクションAの解放処理が記録されないため、トラン
ザクションBのログよりも後に復元に用いるトランザク
ションAのログによって、トランザクションBが獲得し
た領域を変更されることもありえない。
入にあたり、獲得・解放操作のログとして、その獲得・
解放した対象の情報(このビットを立てた・落した)の
みを記録することである。これによって、複数の獲得・
解放要求に対して、要求の発生後、トランザクションの
終了時点までをシリアライズすることなくログ管理で
き、かつログ採取量は減少し、複数トランザクション動
作による変更をメタボリュームヘ反映する回数をも減少
させることができる。
数のログバッファで管理し、この時、いくつかの異なる
サイズとすることである。ログキャッシュ140を分割
して複数のログバッファとして管理することによって、
トランザクションの独立性を確立することが容易となる
とともに、有限なメモリ空間を有効に活用することが可
能となる。
新するより以前に、自分がメタデータを更新する旨、シ
ステムに宣言する。この時、トランザクションの種別よ
り予測されるログ採取情報に応じて、最適なサイズのロ
グバッファがシステムより与えられ、トランザクション
進行に伴い蓄積されるログはここへ溜められることとな
る。上記第6の特徴で説明した手法に加え、トランザク
ション毎に異なるログバッファを用いることによって、
複数のトランザクション更新の混じらない、純粋なログ
として残すことが可能である。
手法に加え、トランザクションの開始時に予測したログ
採取量よりも多くのログを採取しなければならなかった
場合に、与えられたログバッファから、さらに大きいロ
グバッファへ移行することである。システムの状況に応
じて、トランザクションによって残されるログのサイズ
は変動し、その差異を複雑な処理を必要とせず、かつ、
有限なメモリ空間を有効に活用して吸収することが可能
である。
い場合には、ログボリュームへ中間ログを書き出すとと
もに、中間ログを書き出すことによる矛盾の発生を防止
する機能を備えたことである。
させるために、ログライトバッファと呼ぶ二次キャッシ
ュ領域を設けている。終了したトランザクションのログ
は、ログバッファからこのログライトバッファヘ移さ
れ、適時にログライトデーモン105によってログボリ
ュームヘ書き出される。この適時とは、負荷が低い場合
には一定の周期で良いが、トランザクションによるメタ
データの更新量が多く、最大のログバッファでも収まら
ない場合などには強制的なI/O発行が必要とされる。
このような場合において、中途の段階でのログの出力で
は、まだ更新されていない(かもしれない)メタデータ
を含めた書き出しを行うことがファイルシステムの整合
性を保つためには必要である。
ることを考慮した上で、ログバッファ内に収まりきらな
いログをトランザクション途中で出力する時に、残され
るログによって復元されるファイルシステムの整合性を
正当なものとするための手法を提案している。
高くない場合には、ログのログボリュームに対するI/
Oを極力少なくするために事前に与えられた周期に応じ
て定期的にデーモンによって行われる。しかし、ログバ
ッファが枯渇し、以降のトランザクション進行で溜めら
れるログが収まらないと判断された時、部分的なログと
して、この時点のログをログボリュームヘ出力する。こ
の時、まだ更新されていない情報をもログに出力する。
例えばファイルを追加ライトするトランザクションの場
合は、部分的なログを出力する時点でのファイルサイズ
や時刻情報を合わせてログに記録する。これによって、
部分的であるはずのこのログを、ファイルシステム復元
時には完結した1つのトランザクションのログと同等に
扱うことが可能となり、ファイルシステム復元時に複雑
な考慮の必要なしに、望ましい状態にファイルシステム
を復元することが可能となる。
況を示す図である。この例では、2種類のサイズのログ
バッファ141〜146が設けられている。ログバッフ
ァ141〜145は通常のサイズであり、ログバッファ
146が大きなサイズである。
するためのログバッファ管理テーブル148,149が
設けられている。ログバッファ管理テーブル148は、
ログバッファ141〜146に対応するフラグビットを
有している。そして、使用されているログバッファに対
応するフラグビットの値が「1」に設定され、未使用の
ログバッファに対応するフラグビットの値は「0」に設
定されている。同様に、大きいサイズのログバッファ1
46に対応するログバッファ管理テーブル149もフラ
グビットを有しており、そのフラグビットの値によっ
て、ログバッファ146が使用されているか否かを管理
している。
141〜145のうち、ログバッファ143とログバッ
ファ145とが現在利用中であることを意味するため
に、「●▲」などの記号を用いた。ここで、ログバッフ
ァ145には多くのログが溜まっており、既に満杯の状
態となっている。このように通常のサイズのログバッフ
ァ141〜145では容量が足りなくなった際には、そ
のログを大きいサイズのログバッファ146に移動す
る。そして、トランザクションが継続している間は、更
新されたメタデータの内容を、随時ログバッファに格納
していく。ここで、トランザクションが終了したら、そ
のトランザクションに対応するログバッファの内容をロ
グライトバッファ150へ転送する。
ッファ151,152が設けられており、それらのバッ
ファ151,152にログが書き込まれる。ログライト
バッファ150内のログは、ログライトデーモン105
によって随時ログボリュームに書き込まれる。
ートである。これはシステムが行う処理である。 [S41]BEGIN宣言を行う。 [S42]ログバッファの予約をする。 [S43]ログ採取要求を行う。 [S44]現在のログバッファに今回のログが収まるか
否かを判断する。収まるのであればステップS51に進
み、収まらないのであればステップS45に進む。 [S45]現在のログバッファより大きいログバッファ
が存在するか否かを判断する。存在すればステップS4
6に進み、そうでなければステップS47に進む。 [S46]現在のバッファから大きいバッファへ内容を
コピーし、ステップS44に進む。 [S47]トランザクションに与えられたパラメタをロ
グ採取する。 [S48]現時点のファイル状態を正しく表す管理情報
をログ採取する。 [S49]現在の中途段階のログをログライトデーモン
105に書き出させる。 [S50]現在のログバッファをクリアする。 [S51]ログを採取する。 [S52]ログ採取要求を終了する。 [S53]END宣言があるか否かを判断する。END宣
言があればステップS54に進み、そうでなければステ
ップS43に進む。 [S54]END宣言を行い、処理を終了する。
する前に、システムダウンが発生した場合に備え、分割
して出力するログにはトランザクションに与えられたパ
ラメタを含め、ファイルシステム復元時にそのパラメタ
を元に、再度トランザクションを実行することである。
ョンに与えられたパラメタを記録し、ファイルシステム
復元時にそれを用いて、通常のログだけでは中途で終わ
った状態までしか復元できないファイルを、トランザク
ションが終了した状態にまでファイルシステムに反映す
ることが可能となる。
すフローチャートである。これはシステムが行う処理で
ある。 [S61]システムダウン等が発生する。 [S62]ファイルシステムの異常を検知する。
存在するか否かを判断する。ログ終了マークが存在すれ
ばステップS65に進み、ログ終了マークが存在しなけ
ればステップS66に進む。 [S65]開始マークから終了マークまでのログを用い
て復元処理を実行する。その後、ステップS63に進
む。 [S66]対象トランザクションが以前のログだけで完
結するか否かを判断する。完結するのであれば復元処理
を終了し、完結しないのであればステップS67に進
む。 [S67]ログに記録されたパラメタを読み込む。 [S68]トランザクションとして行いたかった処理を
理解する。 [S69]ファイルに対して直接処理を再実行する。そ
の後、復元処理を終了する。
クスを保証したファイルシステムの復元が可能となり、
従来技術では完全に元に戻す、または完全に再実行する
ことが不可能であったトランザクションを、完全に再実
行することによってファイルの整合性をも回復すること
が可能となる。
ランザクションが更新処理を行う前に、その旨をシステ
ムに対し宣言することである。さらに、システムは宣言
を受け入れるか否かを判断する機構を持つことである。
ここでは、以下の条件の場合には新規のトランザクショ
ンの受け入れを拒否し、拒否されたトランザクションは
再度認可が下りるまで待合わせなければならない。 ・メタキャッシュ130がフルに近い状態にある場合。 ・トランザクションの多重度が、システムで規定された
値を既に越えていた場合。 ・ログボリュームに残されたログの大部分が有効なログ
状態である場合。
トランザクションの受け入れを拒否し、トランザクショ
ンの多重度を制限することによって、結果としてダーテ
ィなメタデータの数を制限することが可能となり、メタ
キャッシュ130の空き領域枯渇などを要因とするハン
グアップ状態に陥ることを回避することが可能となる。
特に、分割ログとしてログ採取しなければならないトラ
ンザクションが動作中に、新規トランザクションの開始
を拒否することは、システムの状態を正常に維持する上
で効果が高い。
受け入れ拒否の機構をログボリューム内の有効ログの割
合に応じて適用することにより、単一の、多数のメタデ
ータを更新するトランザクションのみならず複数のトラ
ンザクションが更新したメタデータによって空き領域の
減少に伴うハングアップ状態をも回避することである。
含むトランザクションの受け入れ処理について説明す
る。図23は、新規トランザクションの受け入れ許否判
定処理を示すフローチャートである。 [S71]トランザクションを行うプロセス(以下、単
にトランザクションという)が、トランザクション処理
を開始する。 [S72]「BEGIN」宣言を行う。この際、オペレーテ
ィングシステム(以下、単に「システム」という)に対
して問い合わせを行う。 [S73]トランザクションは、システムからの回答待
ち状態となる。システムより「OK」の回答を受け取っ
たらステップS82に進む。 [S74]トランザクションからの問い合わせを受けた
システムが、パラメタの評価を開始する。 [S75]システムは、既に多重度が規定値より上であ
るか否かを判断する。多重度が規定値より上であれば
「NG」としてステップS81に進み、そうでなければ
「OK」としてステップS76に進む。 [S76]システムは、現在サブトランザクションが動
作中であるか否かを判断する。サブトランザクションが
動作中であれば「NG」としてステップS81に進み、
そうでなければ「OK」としてステップS77に進む。
ここでサブトランザクションとは、ログを複数に分割し
て格納する場合に、1つのログバッファにログを格納で
きるような処理単位に分割されたトランザクションであ
る。 [S77]システムは、メタキャッシュ130に十分な
空きがあるか否かを判断する。十分な空きがなければ
「NG」としてステップS79に進み、十分な空きがあ
れば「OK」としてステップS78に進む。 [S78]システムは、ログボリュームに上書き可能領
域が少ないか否かを判断する。上書き可能領域が十分に
なければ「NG」としてステップS79に進み、十分な
上書き可能領域があれば「OK」としてトランザクショ
ンに対して「OK」の回答を返す。 [S79]システムは、ログライトデーモン105を起
動する。 [S80]システムは、メタライトデーモン104を起
動する。 [S81]システムは、NG条件が解消されるまでスリ
ープ状態で待つ。NG条件が解消されたら、ステップS
75に進む。 [S82]トランザクションは、システムからの「O
K」の回答を受け取ったら、多重度インクリメント処理
を行う。 [S83]トランザクションは、「BEGIN」処理を終了
する。 [S84]トランザクションは、処理に応じて、メタデ
ータをキャッシュに読み込み、その度に空き量をデクリ
メントする。分割ログ化するなら他トランザクションの
開始を拒否するようにシステムに依頼する。 [S85]トランザクションは、「END宣言」を行う。 [S86]トランザクションは、多重度をデクリメント
する。 [S87]トランザクションは、必要に応じてログ採取
を繰り返した後、自己のトランザクション処理を終了す
る。
な処理内容について説明する。本発明の全ての特徴を備
えたシステムにおけるログ採取手順は以下のようにな
る。ファイルシステムオペレーションを分割したトラン
ザクションはメタデータを更新するより前に、自分がこ
れからメタデータを更新する旨を宣言する(BEGI
N)。BEGIN時にトランザクションに対し、独立し
たログバッファが割当てられる。この時、既にトランザ
クションの並列動作数が非常に多かったりメタキャッシ
ュ130域の利用率が高い場合には、システムによって
BEGIN宣言が拒否される。BEGIN宣言を拒否さ
れたトランザクションはその拒否理由が解消されるま
で、待ち合わせなければならない。
時に割り当てられたログバッファヘコピーされる。それ
と同時にメタデータ種類に応じたリストへ繋がれる。更
新すべき全てのメタデータを更新し終わったトランザク
ションは、そこで完了を宣言する(END)。END時
には、これまで溜めたログバッファの内容をログ専用の
二次キャッシュであるログライトバッファヘ移動し、さ
らに、まだログバッファヘコピーされていなかったメタ
データをログライトバッファヘコピーする。
て繋がれていたリストから、そのトランザクションが更
新した全てのメタデータを「ログ待ちリスト」へ繋ぎ替
える。
了することができる。トランザクションが同期要求であ
った場合には、ログを書き出すまで待ち合わせなければ
ならない。
ライトデーモン105)が行う。このデーモンの起動契
機は、同期要求トランザクションによる起動要求(wa
keup)、メタキャッシュ130の空き状態監視機構
による起動要求(wakeup)、及びタイマである。
のトランザクションのログがまとめられたログライトバ
ッファを1つのI/Oとして発行する。そして、ログ待
ちリストから「書き出しリスト」ヘメタデータを移動す
る。
メタライトデーモン104の役割である。メタライトデ
ーモン104は書き出しリストに繋がれたメタデータを
順に非同期ライトによってメタボリュームに反映する。
メタライトデーモン104の起動契機は、ログバッファ
の空きが少なくなった時、ログボリュームの空きが少な
くなった時、及びタイマである。
ションの開始から、更新されたメタデータがメタボリュ
ームに反映されるまでの大まかな流れである。以降に、
ログの採取とそのディスク反映手法、そして、メタデー
タのディスク反映の処理について詳細に説明する。 (1)ログの構造 (1.1)ログボリューム ログボリュームに格納される情報は、以下のような情報
である。
ューム管理情報が先頭にある。その次にログの有効範囲
を示す構造体を記録する。構造体は以下のメンバを持
つ。 ・有効ログ先頭のログボリューム内オフセット ・有効ログ先頭のログシーケンス番号 ・有効ログ末尾のログボリューム内オフセット ・有効ログ末尾のログシーケンス番号 ただし注意しなければならないのは、ここで先頭・末尾
と言っているのは、真の値ではない可能性があることを
リプレイ時に考慮しなければならない点である。なぜな
ら、ログはボリュームをシーケンシャルアクセスするこ
とによってシーク時間の短縮を計っているが、このよう
にボリュームの一部へ毎回アクセスしたのでは、そのシ
ーケンシャル性が損なわれてしまう。そのために、ログ
の書き出し毎にはこの有効範囲の書き出しは行わず、数
回に一回、書き出している。
セットは正確ではないためにリプレイ時に検索が必要で
はある。しかしながら、全体を検索するよりも大幅に検
索量が減るため、利点は保持できるものと考える。
によって構成される。 (1.2)ログブロックの基本構造 ログボリューム120内に残されたログ(メタデータの
更新情報)は基本的にはトランザクション単位である。
これをログブロックと呼ぶ。しかし、キャッシュ域フル
などによって、1つのトランザクションを一度にまとめ
ることができない場合は複数の分割ログに分ける。この
分割ログをサブトランザクションログと呼ぶ。
ことによって、ファイルシステムの整合性が保てるよ
う、その内容は工夫されている。しかしながら、トラン
ザクションの途中までのサブトランザクションをリプレ
イしたのでは、トランザクション全体が終わっていない
ことから、ファイルシステムとしての整合性が保てて
も、ファイルの中身は異常であるという状態に陥ってし
まうことが考えられる。
ンザクションに別れたトランザクションがどのようなオ
ペレーションであったかをログに採取する(オペレーシ
ョンログ)。ログリプレイ時には、サブトランザクショ
ンをリプレイした後、オペレーションログをリプレイヤ
が再実行することによって、トランザクション全体が終
わった状態とすることが可能である。
トランザクションは全体終了時に「終わったこと」をロ
グに記録し(最終ENDマーク)、リプレイヤはその有
無を調べてオペレーションログの実行を判断する。 (1.3)ログの採取形式 メタデータの更新情報は該当するメタデータの管理構造
単位で採取する。また、メタボリュームの管理構造であ
るビットマップはその更新部分だけのログ採取とする、
スーパブロックについては特殊であり、データ空き容量
についてのみログ採取を行う。 (1.3.1)inode、Vデータ、空き管理情報 ファイルの管理情報であるiノード、Vデータと呼ぶデ
ィレクトリやシンボリックリンクデータや空き管理情報
のメタデータ本体は、それらのI/O単位(ブロック単
位)でのログ採取を行う。
処理であるfsckによるログリプレイ時の処理を簡略
化することを意識している。変更された部分だけをログ
採取した場合、ログリプレイ時には、該当ブロックの算
定→読み込み→変更部分の更新→再度書き込み、とステ
ップが増えてしまう。しかし、ブロック全体のログ採取
によって、リプレイ時にはメタボリュームにログ情報を
上書きするだけでよい。
のVデータは、更新中はファイルのロックで保護されて
いる。しかしながら、空き管理情報についてはファイル
のロックでは保護されない。そのため、トランザクショ
ン途中で他トランザクションによって更新され、そのト
ランザクションが追い越して先に終わってしまうと、ロ
グには古い情報が後に残されてしまい、リプレイすると
ファイルシステムに不整合が生じてしまう。
は更新するトランザクションが並行動作しないことを保
証することによって実質的な排他制御を行い、他のメタ
データと同じ採取形式とした。 (1.3.2)ビットマップ メタデータの割り当て状況を管理するビットマップも空
き管理部と同様にファイルのロックで保護されていな
い。そのため、ビットマップ全体のログ採取を行うと、
そのログには複数のトランザクションによる更新が含ま
れてしまう可能性がある。特に、トランザクションの追
い越しが発生すると、新しいはずのログによって、ビッ
トマップの情報が古く書き戻されてしまうことが考えら
れる。
分だけとする。更新部分とは、あるビットが0になっ
た、あるいは1になったと記録するだけである。それに
より、トランザクションが並行動作してもそれぞれのト
ランザクションが更新した内容のみがログに残されるた
め、メタデータの後退は起こり得ない。
0」)した後、他トランザクションがそこを獲得(「0
→1」)した場合である。トランザクションの追い越し
が発生すると、ログリプレイによって獲得した領域を解
放してしまう。
プを1つ定め、複製を用いて操作を行うことによって回
避する。 (1.4)ログの記録構造 (1.4.1)一般ログログ 有効状態であっても、ある程度の複数スレッドが同
時に進行することを許す。これは性能要件より必須であ
る。しかし、ログボリューム内のログは前述の通り、ト
ランザクション毎に保存する。1つのトランザクション
結果をログに記録する際、ログは以下のパーツで構成す
る。 1)BEGINマーク 2)ヘッダ 3)更新内容 (2)+3)の繰り返し) 4)ENDマーク これを以下、ログブロックと呼ぶ。ログブロックはログ
ボリュームの物理ブロック境界から始まるが、その終わ
りは物理ブロック境界であるとは限らない。 1)BEGINマーク トランザクションの開始時に作成される情報であり、以
下の内容を含む。 ・マジックワード ・トランザクションタイプ ・ログシーケンス番号 ・ログブロックサイズ マジックワード:1つのトランザクションが始まったこ
とを示すマジックワードを埋め込む。
クにトランザクションのタイプ(種類)を埋め込むこと
によって、その後ろの更新情報に含まれる内容の概要を
事前に知ることが可能。
ランザクション毎にインクリメントされる数値。このカ
ウンタが最小のログブロックがそのログボリューム内で
最も古いトランザクションであることを示す。カウンタ
は64ビット型とし、オーバーフローすることは現実に
はありえない(4万年ほど耐えられるものと思われ
る)。ログリプレイ時に、ログボリュームをゼロクリア
することにより、再度0から開始することも考えられる
が、リプレイ時間の短縮を考慮し、利用したログの最後
のシーケンス番号より昇順に採番することによりゼロク
リアを回避する。
Dマークまでのサイズを記録する。BEGINマークの
先頭からENDマークの先頭までのサイズである。リプ
レイ時にはBEGINマークの先頭からこのサイズだけ
移動し、ENDマークの情報を参照して、ログの有効性
を判定する。 2)ヘッダ 更新されたメタデータについて、その保管位置を特定す
るための情報であり、以下のメンバによって構成され
る。 ・メタデータタイプ ・メタボリューム番号 ・ボリュームローカルメタデータ番号 メタデータタイプ:更新情報の後方にあるメタデータ更
新内容が何のメタデータであるのかを特定するために用
いられ、リプレイヤはここから更新内容のサイズを判断
する。
いているメタボリューム毎の番号を記録する。リプレイ
時には、この番号から書き戻すメタボリュームを決定す
る。 ボリュームローカルメタデータ番号:メタデータ管理で
用いている、メタボリューム毎、メタデータ毎に0から
始まる値を記録する。リプレイ時には、この番号からメ
タボリューム内のブロック位置に変換し、更新内容を書
き戻す。これはブロック位置変換を削減することによる
ログ採取の高速化が狙いである。対象がビットマップで
ある場合には、変更されたビットが該当するメタデータ
本体のメタデータ番号を記載する(ビットマップ番号で
はない)。 3)更新内容 メタデータ本体の場合には、更新内容が含まれるブロッ
ク(それぞれのメタデータの管理単位)である。例え
ば、ディレクトリブロックが更新された場合には102
4バイトのディレクトリブロック全体である。
ここには「0→1」または「1→0」という情報だけ記
録する。リプレイ時にはヘッダから該当するビットマッ
プを判定し、それを読み込み、ここの内容から該当ビッ
トを変更して書き戻す。 4)ENDマーク BEGINマークに対応するマジックワード、ログシー
ケンス番号、ログブロックサイズを記録する。
だけでは、メタデータの内容によってはそれが偽りのE
NDマークとして見えてしまい、リプレイの時に処理を
誤る可能性がある。これを回避するために、ENDマー
クは固有形式(メタデータを誤認することのない形式)
としなければならない。
は、BEGINマークだけ書き出された時点で、システ
ムダウンした場合を考慮し、いずれにせよENDマーク
の識別ができなければならないからである。
バイト分続ける。これにより、全てのメタデータがEN
Dマークに化けることはなくなる。これに続けて、マジ
ックワード、カウンタ(ログ番号)、ログブロックサイ
ズを記録する。以降、ブロック境界まで、上記数値を埋
める。BEGINマークに対応したENDマークを見つ
けることができないログ情報はリプレイしてはならない
(ログ書き出し途中にシステムが異常終了したことを意
味する)。 (1.4.2)巨大トランザクションのログ トランザクションが多くのメタデータを更新する場合に
は、ログバッファサイズ、ログボリュームサイズが有限
であることから、複数のサブトランザクションログに分
割する。サブトランザクションログはそれだけのリプレ
イによって、ファイルシステムの整合性は保たれる。し
かし、トランザクション全体のサブトランザクションロ
グをリプレイしなければ、ファイルの整合性が保てな
い。そのため、サブトランザクション途中でのシステム
ダウンを考慮し、オペレーションログを内部に含む。 1)BEGINマーク 2)オペレーションログ 3)ヘッダ 4)更新内容 (3)+4)の繰り返し) 5)ENDマーク (1)〜5)の繰り返し) (5’)最終ENDマーク) 1)BEGINマーク 一般ログのBEGINマークと同じ。ただし、サブトラ
ンザクションログとなりうるトランザクションは、書き
込みや削除など、データ領域を触るものや、領域管理に
関わるものに限定される。
ーク内で設定されていたら、そのログはサブトランザク
ション化している可能性があり、必すオペレーションロ
グが続いている(たとえ単一のサブトランザクションロ
グで構成されていても)。 2)オペレーションログ サブトランザクション化したトランザクション(関数)
に与えられた引数をオペレーションログとして保存す
る。巨大トランザクションを対象としたBEGINマー
クの直後には必ずオペレーションログを配置する。オペ
レーションログは、最初にトランザクションヘ渡された
情報(このファイルをこれだけのサイズトランケートす
るとか、このファイルをこれだけアペンドライトするな
ど)である。
ステムを直接操作して、ここで残されたオペレーション
ログを実行しなければならない。オペレーションログは
以下のメンバで構成される。 ・パラメタ1 ・パラメタ2 ・・・ リプレイヤはBEGINマーク内のトランザクションタ
イプを見ることによって、オペレーションログ部分に並
ぶパラメタ群のサイズ及び内容を知ることができる。 3)ヘッダ 一般ログのヘッダと同じ。 4)更新内容 一般ログの更新内容と同じ。 5)5’)ENDマーク、最終ENDマーク 一般ログのENDマークと同じ意味合いを持ち、BEG
INマークに対応するENDマークあるいは最終END
マークが見つからない場合には、BEGINマーク以降
の更新内容をリプレイしてはならない。
ョンに分割されず、単一のログブロックのみの場合に
は、ENDマーク部分には最終ENDマークが書き出さ
れる。複数のサブトランザクションログに分かれている
場合には、最後のログブロックだけ、ENDマークが最
終ENDマークに化ける(最後以外のログブロックには
通常のENDマークが書かれている)。
同一であり固有数値64バイト、マジックワード、カウ
ンタ(ログ番号)、ログブロックサイズが記録されてお
り、ブロック境界まで固有数値が埋まる。
マジックワードのみである。最終ENDマークがトラン
ザクション全体の終了を表すことから、とても巨大なト
ランザクションが多くのサブトランザクションログに分
割されている場合には、全ての処理が完了する時にこの
最終ENDマークを出力する。すなわち、巨大トランザ
クションとして定義されるトランザクションについて、
通常のENDマークで終わるログブロックがいくつか見
つかったのに、最終ENDマークで終わるログブロック
が存在しない場合には、それは巨大トランザクションの
途中でシステムダウンが発生したことを意味し、ログリ
プレイヤがオペレーションログのリプレイを行わなけれ
ばならないことを意味する。 (2)ログの採取 (2.1)ログバッファの管理 ログをトランザクション単位にログボリューム120ヘ
出力するためには、メタデータの更新情報を一度、メモ
リ内に溜める必要がある。これをログバッファと呼ぶ。
ログバッファはマウント時にまとめて用意し、ファイル
システム利用中にメモリの追加獲得は行わない。
た、トランザクション動作中に他のトランザクションが
並行動作することを狙い、ファイルシステム毎にログバ
ッファを複数持つ。その数は並行動作を許すトランザク
ション数によって決められる。
による性能劣化要因の1つとなるが、 ・ログリプレイ時の処理を単純化 ・巨大なログバッファを分割して使うことによる複雑さ
の回避 などのメリットが考えられるため、この方式とする。
たログバッファにログを作成し、トランザクション終了
時にまとめてログライトバッファヘコピーする。ログラ
イトバッファの内容を実際にI/O出力するのはログラ
イトデーモン105と呼ぶデーモンの働きによる。
クションが用いるログバッファよりも大きいログバッフ
ァ(以降、それぞれを一般ログバッファ、巨大ログバッ
ファと呼ぶ)を1つ用意する。巨大トランザクションも
当初は一般ログバッファの1つを用いる。巨大トランザ
クションとログバッファの関係には次の二段階がある。 1)あまり多くのメタデータを更新せず、一般ログバッ
ファで十分足りると判断できた時点で、次の巨大トラン
ザクションのBEGINを受け付ける。 2)更新するメタデータ数がある程度多く、一般ログバ
ッファでは足りないと判断できた時点で、巨大ログバッ
ファにこれまでの内容をコピー、そこで処理を継続す
る。 3)更新するメタデータ数が大変多く、巨大ログバッフ
ァでは足りない場合には、サブトランザクションとして
分割する。
なりそうであるが、巨大トランザクションがそれほど多
くないと考えると、あまり頻繁に発生するものではない
ので、この方法とする。
用)について、ビットマップで管理される。各ログバッ
ファを管理する構造をログバッファ数の配列で確保し、
それぞれが ・ログバッファのアドレス ・これまでに採取したログサイズ を持っている。
イトデーモン105によってログボリューム120ヘ反
映するが、そのログライトデーモン105が複数のログ
バッファの内容を一括してI/O発行するために、トラ
ンザクション終了時にそれぞれのログバッファの内容を
ログライトバッファ150と呼ぶ専用の領域にコピーす
る。
て、 ・追加モードにあるログライトバッファはどちらか ・それぞれのログライトバッファに溜められたログサイ
ズ がある。
ム120ヘ書き出している間は、その後のトランザクシ
ョンが終了するためにログライトバッファにログバッフ
ァをコピーしようとしても、I/O中であるためにガー
ドしなければならない。これは性能劣化に繋がるため避
けなければならない。そのため、ログライトバッファは
2本用意する。
開始時に、空のログバッファをビットマップより見つけ
(未利用ログバッファを0で示し、ここで1とする)、
そのビット番号がトランザクション番号となる。
にて処理進行中、一般ログバッファでは入りきらないと
判断されるとこれまでの内容をこの巨大ログバッファヘ
コピーし、そこで処理を継続する。この時、これまで用
いていた一般ログバッファは空き状態として、次のトラ
ンザクションによる利用を可能にする。 (2.2)巨大トランザクションの管理 空き領域管理ツリーや獲得済領域管理ツリーを操作する
トランザクションを巨大トランザクションと定義する。
巨大トランザクションは場合によっては木構造を大きく
変更しなければならないかもしれない。この時、サブト
ランザクション化する必要が生ずる。
クションが並行動作した場合、どれもが多くのメタデー
タを更新すると、メタキャッシュ130がいずれ全てダ
ーティとなり、新たにメタデータを読み込んで更新しよ
うにも追い出すこともできずにデッドロックに陥ること
が考えられる。
は並行動作ができないよう、ここではシリアライズし
た。しかし、上記の通り、多くのメタデータを更新する
可能性があると考えられるトランザクションは多い。こ
れらを全てトランザクション終了までシリアライズする
と、その性能インパクトは大きい。
それほど多くのメタデータを更新しないこともありえ
る。一般トランザクションと同等の数しかメタデータを
更新しないのであれば、扱いを一般トランザクションと
同様にすることによって、その性能インパクトを小さく
することが可能である。
ンザクションと変わらない程度しかメタデータを更新し
ないと分かった時点で、この巨大トランザクションの扱
いは一般トランザクションと同じにする(デグレー
ド)。
般ログバッファの1つを一般トランザクション開始時と
同様に与えられる。しかし、1つの巨大トランザクショ
ンが動作中は次の巨大トランザクションにログバッファ
を与えない点が一般トランザクションの場合と異なる。
タデータを更新することが分かった時点で、これまでの
一般ログバッファの内容を巨大ログバッファヘコピー
し、そこで処理を継続する。
しないと判断されれば、そのまま一般ログバッファで処
理が継続され、また、次の巨大トランザクションに対
し、処理の開始(ログバッファの使用)を許可する。
ら一般トランザクションとして扱うこと(デグレード)
を実現する。 (2.2.1)デグレード契機・サブトランザクション
化契機 巨大トランザクションは複数のサブトランザクションに
分割される場合もあれば、一般トランザクションへデグ
レードする場合もある。それぞれの判定基準は以下の通
りである。 ◎デグレード判定基準 ・一般ログバッファの残りサイズで、将来全てのメタデ
ータ更新が完了できると判断できた場合。 ◎巨大トランザクション用ログバッファへの移行契機 ・一般ログバッファの残りサイズが次のステップの最大
変更量よりも少ない場合。 ◎サブトランザクション判定基準 ・巨大ログバッファの残りサイズが次ステップの最大変
更量よりも少ない場合。 (2.3)一般トランザクションのログ採取 一般トランザクションは、以下の手順に従いログを採取
する。 1)LOG_BEGIN a)利用するログバッファを確定する。
クを作成する。 2)各メタデータの更新 c)更新されたメタデータがリリースされる(ロックが
解放される)直前に、更新されたメタデータについて、
ヘッダ(更新情報)をログバッファに作成し、更新内容
をログバッファにコピーする。
ぐ。 3)LOG_END e)ENDマークをログバッファに作成する。
コピーする。 g)ログライトデーモン105がログボリューム120
ヘ反映する。 h)このトランザクションで立てられた追い出し不可フ
ラグを落とす。 (2.3.1)LOG_BEGIN トランザクション開始を意味する。同一関数内にLOG
_ENDの宣言が必要。並行動作可能数だけ既にトラン
ザクションが動作していたら、それらのどれか1つが終
了するまで寝て待つ。
グバッファの数と等しい場合、それは既に許された並行
動作数だけトランザクションが実行中であることを意味
する。そのため、他トランザクションが終了するまで寝
る。そのような状態でなければ、ログバッファの利用状
況を管理するビットマップより未利用状態のログバッフ
ァを1つ選び出し、そのビットを立てる。さらに、並行
動作数カウンタをインクリメントする。
ァの先頭に作成する。 (2.3.2)各メタデータの更新 メタデータを参照した場合にはログ採取の必要はない。
更新した場合のみログを採らなければならない。
タデータについて処理が終了し、メタキャッシュ130
より解放するための関数(リリース関数)を呼び出す
際、「更新した」ことを明示された場合、ログを採取す
る。
ョン内でのロック解放時がログ採取契機である。具体的
には、上記で使用権を得たログバッファにヘッダを作成
し、メタデータの更新内容をコピーする。このとき、メ
タデータの種類によってその手法が若干異なる。
獲得(解放)したメタデータ番号を入れ、更新内容は
「0→1」「1→0」とビット操作だけとする。 c−2)メタデータ本体の場合:更新内容にはメタデー
タをそのままコピーする。
ンザクションがデグレードした場合のみ、一般ログ内で
のスーパブロックのログ採取がありうる。その時刻(シ
ーケンシャル番号)とデータ空きサイズを記録する。
ミナルで管理されるログサイズに、ここで作成したログ
のサイズを加える。 d)メタキャッシュ130の大きさは有限であることか
ら、トランザクションが進行するためには、必要のない
メタデータをメタキャッシュ130から追い出し、その
場所に必要なメタデータを読み込むという処理を行う追
い出し機構がある。更新されたメタデータはログを書き
出すまでは追い出されてはならない。そのために、この
メタデータをメタライトリストと呼ぶ、メタボリューム
ヘの反映を司るメタライトデーモン104が参照するリ
ストへ繋ぐ。 (2.3.3)LOG_END トランザクションの終了を示す。ここで、ENDマーク
の作成を行う。ログボリューム120への反映はログラ
イトデーモン105による作業である。
GINマークに対応するENDマークをログバッファの
末尾に作成する。 f)利用したログバッファの内容を追加モードにあるロ
グライトバッファにコピーする。この時にログ番号を決
定し、BEGINマーク、ENDマークに埋め込む。ロ
グバッファのターミナルに記録していたログのサイズを
ログライトバッファのサイズに加える。ログバッファの
「ターミナル」とは、そのログバッファ自身の構造に関
する情報を格納する場所を意味している。同期書き込み
要求の場合は、ログライトデーモン105(詳細後述)
が正常にログボリューム120に反映したことを待つ必
要があるが、同期書き込み要求でない場合には、ログバ
ッファを解放(ビットを落とす)して終了する。
が、ログライトバッファの内容をログボリュームヘ反映
する。 h)リリース時に立てた追い出し不可フラグを全て落と
す。ただし、フラグを落とすのはログライトデーモンに
よってなされるため、このトランザクションはそのまま
終了する。 (2.4)巨大トランザクションのログ採取 巨大トランザクションも、一般トランザクションとほぼ
同様の処理だが、最大の違いは、トランザクションの状
況によってログバッファをサイズの大きい巨大ログバッ
ファヘ移行したり、サブトランザクションとして分割し
たログ採取を行わなければならない場合があることであ
る。 1)LOG_BEGIN a)利用するログバッファを確定する。
クを作成する。 c)BEGINマーク作成と同時に、オペレーションロ
グをログバッファに作成する。 2)各メタデータの更新 メタデータがリリースされた時に「更新したこと」が明
示されたら、 d)更新メタデータが空き管理情報の場合、更新メタデ
ータがリリースされる度にBTFリストあるいはBTA
リストとよぶ空き管理メタデータのために用意するリス
トに繋ぐ。この時、既にリストに繋がれていればリスト
構造には手を加えない。
場合、更新されたメタデータがリリースされる度にヘッ
ダをログバッファに作成し、更新内容をログバッファ域
にコピーする。
一般ログバッファで処理している場合、 g)一般ログバッファで足りるか判定する。
これまでの内容をコピー。 g−b)足りると確定でき、かつ、デグレード条件を満
たせば、次の巨大トランザクションを受け付ける。
継続する。既に巨大ログバッファで処理している場合、 h)サブトランザクション化するか判定する。
Aリストをたどりながらそれらをログバッファにコピ
ー、ENDマークを作成し、ログライトバッファヘコピ
ーする。ログライトデーモン105を起動し、ログを出
力する。
る。 3)LOG_END i)最終ENDマークをログバッファに作成する。
コピーする。 k)ログライトデーモン105がログボリューム120
ヘ反映する。 l)このトランザクションで立てられた追い出し不可フ
ラグを落とす。 (2.4.1)LOG_BEGIN 巨大トランザクションも最初は一般ログバッファを用い
る。
の並行動作トランザクション数とログバッファの数との
関係によってログバッファを獲得できるかどうかが定ま
った。巨大トランザクションの場合は、現在他の巨大ト
ランザクションが動作中か否かが問題であり、一般トラ
ンザクションの並行動作数とは関係しない。巨大トラン
ザクションが動作中か否かのフラグを調査し、非動作中
であれば、そのフラグを立て、ログバッファの利用状況
を管理するビットマップより未利用状態のログバッファ
を1つ選び出し、そのビットを立てる。巨大トランザク
ションが現在動作中であれば、終了まで寝て待つ。
で、トランザクションタイプに巨大トランザクションと
なりうるトランザクションが指定されていた場合には、
必ず後ろにはオペレーションログが付随する。対応する
ENDマークがないログはリプレイしてはならない。ま
た、サブトランザクション化しているのに、最終END
マークがないなら、オペレーションログのリプレイが必
要である。
クションログとして分割する場合にはオペレーションロ
グを採取する必要がある。ここで、オペレーションログ
とは、各ログ採取対象関数に与えられたパラメタが、将
来リプレイすることが可能な形に変更されたものであ
る。具体的には、メモリアドレスで与えられるパラメタ
は、メタボリューム内のオフセットに変更して記録す
る。 (2.4.2)各メタデータの更新 d)更新メタデータが空き管理情報である場合、一回の
トランザクションで同一の領域が何度も変更される場合
が考えられる。その都度、ログを採取しているとログバ
ッファやログボリュームがフルになる可能性が高まる。
これを回避するために、更新情報をリストによって管理
し、複数回更新された空き管理メタデータを1つにまと
めてログに記録する。具体的には、メタデータの状態毎
にリスト管理する専用のBTFリスト及びBTAリスト
に繋がれる。このリストに繋がれていれば、そのデータ
はダーティであることを意味する。初めて更新するデー
タであれば、ターミナルから繋がるリストに追加する。
既にリストに繋がれているのであれば、2回目以降の更
新であることを意味し、ポインタについてはそのままで
良い。リストにメタデータを追加する場合には、ログサ
イズを更新する。
あれば、同一メタデータに対して何度もホールド/リリ
ースが発行されるとは考えられないので、リリースの度
(ロック解放の度)にログバッファヘコピーする(一般
トランザクションの場合と同じ)。ログサイズを更新す
る。
データがログよりも先にメタボリューム111〜113
ヘ反映されてはならない。この追い出し不可状態もリス
ト構造によって管理される。
メタデータが、以降、どれだけの数のメタデータを更新
するかを算出することによって、処理が分かれる。 g−a)現在利用している一般ログバッファの残りでは
次ステップの実行によるメタデータの更新の全てをまか
ないきれない場合があると判断した場合には、巨大ログ
バッファヘの移管を行う。
ァの内容を巨大ログバッファヘコピーする。この時、B
TFリストはそのまま繋いだままとし、BTAリストは
巨大トランザクション用のターミナルヘ移動する。
その巨大トランザクションは処理を継続する。 g−b)現在利用している一般ログバッファの残りだけ
で、以降のメタデータ更新を全て記録できると判断でき
るならば、この巨大トランザクションは一般トランザク
ションにデグレードする。BTFリストにメタデータが
繋がれている場合はデグレード条件を満たさないため、
ここでの処理はありえない。BTFリストはそのまま利
用を続ける。
か否かを示すフラグを落とす。 gb−2)一般トランザクションの並行動作数カウンタ
をインクリメント。 gb−3)次の巨大トランザクションが寝ているならば
起こして、実行を受け付ける。
用して処理を継続する。 g−c)まだ判断できないのであれば、このまま一般ロ
グバッファを利用して処理を継続する。
述)に基づき、このトランザクションをサブトランザク
ション化するかどうか判定する。 h−a)サブトランザクションに分割する場合は、 ha−1)更新された空き管理情報を、リストを辿りな
がらログバッファヘコピーする。
制起動する。 ha−6)ここで変更した全てのメタデータの追い出し
不可フラグを落としてメタライトリストに繋ぐ。これに
より,メタライトデーモン104は任意の時ににこれら
のメタデータを書き出すことが可能となる。
GINマークを作成する。 ha−8)オペレーションログを作成する。 h−b)サブトランザクションに分割する必要がない間
は、巨大ログバッファ内でそのまま継続する。 (2.4.3)LOG_END トランザクションの終了を示す。ここで、最終ENDマ
ークの作成を行う。実際のログボリューム120への反
映はログライトデーモン105の仕事である。
NDマークは通常のENDマークとマジックワードが異
なるだけである。 j)利用したログバッファの内容を追加モードにあるロ
グライトバッファヘコピーする。この時にログ番号を決
定し、ログサイズをログライトサイズに加える。同期書
き込み要求の場合は、ログライトデーモン105が正常
にログボリューム120に反映したことを待つ必要があ
るが、その他の場合には待たないで次の処理へ進む(す
なわち非同期書き出しである)。巨大トランザクション
動作中フラグを落とし、寝て待つ次の巨大トランザクシ
ョンを起こす。
イトバッファの内容をログボリュームヘ反映する。 l)更新したメタデータをログバッファヘコピーした時
に立てた追い出し不可フラグを全て落とす。ただし、フ
ラグを落とすのはログライトデーモン105によってな
されるため、このトランザクションはそのまま終了す
る。 (2.5)ログライトデーモン 並行して動作し、順次終了するトランザクションによっ
て更新されたメタデータのログは専用の書き出しデーモ
ン(ログライトデーモン105)によってログボリュー
ムヘ反映する。このデーモンはマウント時に起動され、
アンマウント時に停止する。すなわち、ファイルシステ
ム毎にスレッドを生成する。
ッファ内にENDマークが作成され、このログバッファ
の内容はログライトバッファ150にコピーされる。こ
のログライトバッファ150は複数のログバッファの内
容を一括してログボリューム120に反映するためのも
のであり、そこにはメモリコピーの負担があるが、何度
もI/Oを発行するよりは良いと考える。
と、そのログバッファは利用中バッファリストから空き
バッファリストヘと繋ぎ直され、かつ、トランザクショ
ンが同期書き込み要求でなければ、動作中トランザクシ
ョン数をデクリメントする。これにより、次トランザク
ションの実行が進むようになる。
ッファの内容を、定期的、あるいは同期書き込み指定の
トランザクションがある場合などにログボリュームに反
映する。反映している間(I/O中)は2本あるログラ
イトバッファのうち、もう片方のログライトバッファに
内容をコピーしてそのトランザクションは処理を終了す
る。 (2.5.1)処理手順 ログライトデーモン105単体の処理手順はそれほど複
雑ではない。
ードにし、もう片方を追加モードにする。 b)ログライトバッファの内容をログボリューム120
ヘ同期書き出しする。
す。 d)ログ待ちリストに繋がるメタデータを、メタライト
リストヘ繋ぎかえる。 e)規定時間の間、スリープする。
こされたらa)へ。 以下、詳細説明である。 a)I/O中はその対象域に対して追加更新は許されな
い。そのため、現在のログライトバッファが書き出しが
終わり、次の書き出しが始まるまでは、もう片方のログ
ライトバッファヘ終了したログバッファをコピーするよ
う設定する。I/O中のログライトバッファをライトモ
ード、ログバッファの内容をコピーする方を追加モード
と呼ぶ。切り替えはこのデーモンによって行われ、各ト
ランザクションは常に追加モードにあるログライトバッ
ファに自ログバッファの内容をコピーする。
まれていないのであれば、I/Oを発行する必要はな
い。そこで、まずログライトサイズを調べ、ゼロであれ
ばI/Oを発行せず、タイマを指定して再び寝る。書き
出すべきログが存在するのであれば、以下の手順に従
う。
定。ログボリュームの先頭オフセット(A)、メタライ
トリスト先頭のメタデータを管理する構造の上書き可能
オフセット(B)を調べる。それとログライトオフセッ
ト(C)、及びログボリュームの最終オフセット(D)
から以下の手順となる。 ・A<B≦C<D ログライトサイズが(D−C)以下ならば、Cから書
き出す。 ログライトサイズが(D−C)より大きく、かつ、
(B−A)以下ならば、Aから書き出す。 ・A≦C<B≦D ログライトサイズが(B−C)より小さければ、Cか
ら書き出す。
きない場合には、メタライトデーモン104を起動し
て、自分はスリープする。メタライトデーモン104の
動作により起動されたら、再度、空きサイズ判定から行
う。
出しする。 b−c)エラー判定。同期書き出し後、エラー判定を行
う。エラーが発見された場合の処置については省略す
る。
域の判定を行う。ここで、残りが少ないと判定された
時、その残りの大きさに応じてメタライトデーモン10
4を「平常起動」または「緊急起動」する。
は、メタライトリスト先頭の上書き可能オフセットから
たった今書き出した位置までである。そこで、それを有
効範囲情報としてディスクヘ書き出す。ここで、書き出
しはログのシーケンシャル性を考慮し、ある程度の間隔
をおいて行う。ここでは、回数に応じて、数回に一回、
書き出すこととした。
タデータは全て「ログ未反映状態」、すなわち追い出し
不可状態としてリスト(ログ未反映リスト)に繋がれて
いるはずである。そこで、ログ未反映リストを辿りなが
ら、そこに繋がるメタデータをメタライトリストに追加
することにより、メタライトデーモン104が任意の時
にこれらのメタデータをメタボリュームに反映できるよ
うになる。
書き出しとし、トランザクションが同期書き込み要求で
なければ、ログを書き出す前にそのトランザクションは
終了することができる。さらにI/O発行回数を削減す
るために、複数のトランザクションを一括して書き出す
ために、しばらくの間スリープし、その間にログライト
バッファヘ複数トランザクションのログを溜める。
繰り返す。しかし、他要因によって突然起こされて処理
を始める場合もある。「その他の要因については次の項
(2.5.2)で述べる。 (2.5.2)動作契機 ログライトデーモン105は以下の契機でログライトバ
ッファの内容をログボリュームへ書き出す。 ◎一定周期 ログライトデーモン105は一定周期毎にスリープ状態
から自発的に目覚め、ログライトバッファ150の内容
をログボリューム120ヘ反映する。 ◎同期書き込み要求のトランザクション トランザクションによっては同期書き込み要求で呼ばれ
る場合がある。このトランザクションについては、ログ
の書き出しを待たなければ終了してはならない。そのた
め、LOG_END呼び出し後に、明示的にLOG_S
YNCを行う。LOG_SYNCはログライトデーモン
105が寝ている場合には起こし、ログライトバッファ
の内容をその場で書き出させる。
であったら、ログライトデーモン105の処理が終わる
のを寝て待つ。 ◎ログライトバッファ不足 周期毎にログライトバッファをクリアしても、大きなロ
グバッファが連続して終了すると、その前にログライト
バッファがフルに近い状態になることがありえる。この
時にはログライトデーモン105が起こされ、ログライ
トバッファ150の内容をログボリューム120に書き
出してクリアする。
グバッファの内容をLOG_ENDによってコピーしよ
うとした時、ログライトバッファ150の残りサイズが
自ログよりも小さいと判断された時、ログライトデーモ
ン105を起こし、追加モードのログライトバッファ1
50を切り替えてもらい、その間は寝て待つ。
グライトバッファ150が足りなくなった時には、その
トランザクションは待ち合わさざるを得ない。 ◎メタキャッシュ不足 トランザクション実行中に、メタキャッシュ130域の
いずれかのメタデータを追い出さなければ必要なメタデ
ータをメタボリューム111〜113から読み込むこと
ができずに処理が進まなくなる場合が考えられる。
シュ上のメタデータを追い出そうとする時、メタキャッ
シュ130上のメタデータが全てダーティであり、か
つ、ログ待ちリストに繋がれたメタデータが存在する場
合には、ログライトデーモン105を起動する。 ◎アンマウント時 アンマウント時には必ず書き出さなければならない。そ
のため、アンマウント処理の延長でログライトデーモン
105を起こし、書き出しを行う。この時、アンマウン
トを実行するため、該当ファイルシステムにメタデータ
を更新するようなトランザクションは動作していないこ
とが保証される。従って、現在のログライトバッファの
内容を書き出せば、それで全てである。
後、ログライトデーモン105は終了する。 (3)メタデータ管理 次に、メタデータの管理方式について説明する。メタキ
ャッシュ130内のメタデータはmetalist構造
体によって管理される。metalist構造体には以
下のメンバがある。 ・メタデータへのポインタ ・TRANS(トランザクション)リストポインタ ・メタライトリストprevポインタ ・メタライトリストnextポインタ ・ログ待ちリストprevポインタ ・ログ待ちリストnextポインタ ・ログシーケンス番号 ・ログボリューム内オフセット ・トランザクション番号 ・状態フラグ ・メタデータタイプ ・buf構造体実体 (3.1)メタデータの状態遷移 metalist構造体には次の6種類の状態があり、
4種類のリストに繋がれる。それはmetalist構
造体のフラグによって示され、それぞれ夕ーミナルを別
とするリストに繋げられることによって実現する。全て
のmetalist構造体はいずれかのリストに繋がっ
ており、例外はない。 A)空き管理構造更新状態 データ空き領域を管理するメタデータがトランザクショ
ンによって更新されると、リストに繋ぎ、将来まとめて
ログバッファにコピーすることは既に述べた。トランザ
クション終了時に本リストに繋がれたメタデータが直接
ログボリュームヘ反映される。リストは並行動作数に応
じて必要である。このリストをBTFリストと呼ぶ。
ファヘはコピーされておらず、同一トランザクションに
よって再度更新される場合がある。既にリストに繋がれ
ているメタデータであった場合は、リスト状態は変更し
ない。当然、メタボリュームに反映してはならない。
トランザクション途中状態と同じメンバを用いて繋がれ
ている。 B)利用域管理構造更新状態 実施例ではファイルシステムをエクステント管理してい
る。iノードから導かれる、そのファイルが利用してい
るエクステントを示す、間接エクステントブロックにつ
いても、トランザクション内で1つの間接エクステント
ブロックが何度も更新される場合が考えられる。そこ
で、空き管理構造の場合と同様に、トランザクション中
は独自のリストに繋ぎ、トランザクション終了時にまと
めてログバッファヘコピーする。リストは並行動作数に
応じて必要である。このリストをBTAリストと呼ぶ。
はまだログバッファヘはコピーされておらず、同一トラ
ンザクションによって再度更新される場合がある。既に
リストに繋がれている間接エクステントブロックであっ
た場合は、リスト状態は変更しない。当然、メタボリュ
ームに反映してはならない。
トランザクション途中状態と同じメンバを用いて繋がれ
ている。 C)トランザクション途中状態 トランザクション途中を示す。この状態のとき、該当す
るメタデータを更新したトランザクションは、ある1つ
のログバッファを専有しており、既にそこに更新後状態
がコピーされている。リストは並行動作数に応じて必要
である。このリストをTRANSリストと呼ぶ。
いないことからログがログボリューム120ヘ反映され
ておらず、本メタデータもメタボリュームヘの反映はで
きない。この状態にあるメタデータはファイルのロック
によって保護されているため、他トランザクションから
参照・更新されることはない。
っており、その要素番号はトランザクションが用いてい
るログバッファの番号(トランザクション番号)に対応
する。
れているメタデータが繋がる場合がある。TRANSリ
ストは単方向環状リストであり、BTFリストが用いる
メンバを併用する。
ッファの内容はログライトデーモン105によってログ
ボリューム120ヘ反映されるため、この時点ではまだ
ログボリューム120に反映されていない状態である。
(デーモンは同期ライトを行うが、トランザクションの
視点から見れば、ログ反映が非同期に行われているよう
に見える。) トランザクションが終了する際に、C)の状態にあるT
RANSリスト(巨大トランザクションの場合はBTF
リストも)をログ待ちリストに繋ぎかえる。このリスト
はトランザクションが終了する毎に後方へ伸びるリスト
であり、ログライトバッファと同数の2本存在する。
クションが終了しており、ログはログライトバッファに
コピーされている。トランザクションが終了しているこ
とから、他トランザクションによって参照・更新される
可能性がある。この時(他トランザクションによって状
態が変化した時)、リスト位置は変更せず、状態フラグ
だけを変更する。
が、他トランザクションによって再度更新されたため
に、トランザクション途中状態になり、そのトランザク
ションが終了したことによって、ログ待ち状態になった
場合には、このメタデータはメタライトリストにも繋が
れている。
の反映が進むと、それに応じたメタデータをメタライト
リストヘ追加していく。この時、既にメタライトリスト
に繋がれているメタデータは、そのままの位置でいなけ
ればならない。 E)書き出し可能状態 これは、ログバッファのログボリュームへ反映が終了
し、自由にメタデータをメタボリュームへ反映すること
ができるようになった状態である。この状態にあるメタ
データは他トランザクションによって参照・更新される
可能性がある。この時、リスト位置は変更せず、状態フ
ラグだけを変更する。
1本だけ存在する。メタライトデーモン104はこのリ
ストを参照してメタボリュームヘの反映を行う。 F)I/O中状態 この状態にあるメタデータは現在非同期ライトによって
メタボリュームに対してI/Oを投げているが、まだ完
了していない。I/O途中であるため、他トランザクシ
ョンは操作することができない(参照することはでき
る)。メタライトリストにそのまま繋がれている。 (3−2)ログボリュームの上書き判定情報 ログボリュームはサイズが有限であるため、サイクリッ
クに利用し、過去のログを上書きしてシステムは動作す
る。ここで、過去のログを上書きするためには、そのト
ランザクションが更新したメタデータが全てメタボリュ
ームに反映されていることが必要である。上書き可能領
域を管理するために、以下の構造を設け、メタライトデ
ーモン104が変更、ログライトデーモン105が参照
する。 ◎ログシーケンス番号 各トランザクションが終了し、ログバッファの内容をロ
グライトバッファヘコピーする毎に与えられる、シーケ
ンシャル番号である。ログボリューム内のBEGINマ
ーク、ENDマークに含まれる番号と同一である。既に
ライトリストに繋がるメタデータが再度更新される場合
にも、この番号は変更されない。 ◎ロクボリューム内オフセット ログボリューム内にはトランザクション毎のログが連続
して並んでおり、上書きするためには、それぞれのトラ
ンザクションが更新した全てのメタデータがメタボリュ
ームへ反映されている必要がある。
造体は、ここにはそのログの先頭オフセットを挿入す
る。LOG_ENDによってログバッファの内容がログ
ライトバッファにコピーされる際、そのアドレスとログ
ボリュームの書き出しオフセットから導かれる。トラン
ザクション毎のログボリューム内オフセットがTRAN
Sリストを辿りながら、トランザクション毎のログボリ
ューム内オフセットをそれぞれのmetalist構造
体に設定する。
出す際にメタライトリストの先頭に繋がるmetali
st構造体を参照し、現在のポインタにログライトバッ
ファに入っているログサイズを足した位置が、このオフ
セット値を超えないことを確認した後で書き出しを行
う。 (3.3)メタボリュームヘの反映 トランザクションによって更新されたメタデータは、ト
ランザクションが終了しログがログボリューム120に
反映されるまでは書き出されてはならない。そのため
に、メタキャッシュ130上の各メタデータはそれぞれ
の状態に応じてリストに繋がれ、唯一メタボリュームヘ
の反映が許可されているリストはメタライトリストであ
る。
ン内で行うことを避けるために、メタデータのメタボリ
ュームヘの反映はトランザクションとは関係ないところ
で動作するデーモンに委ねる。このデーモンはメタライ
トリストだけを意識し、metalist構造体内の情
報から状態に応じてI/O発行するかどうかを決定し、
関連付けられたbuf構造体を用いてメタデータをメタ
ボリュームヘ反映する。
タデータを書き出した後、そのメタデータをリストから
外し、cleanであると設定する。 (3.4)メタライトデーモン メタライトデーモン104は、マウント時に起動され、
アンマウント時に停止する。すなわち、ファイルシステ
ム毎にスレッドを起動する。
が更新したメタデータは、それを管理するmetali
st構造体が全てメタライトリストに繋がれている。メ
タライトデーモン104はメタライトリストに繋がるメ
タデータを、ログボリュームの残りが少なくなったと判
断された場合などに非同期でメタボリュームに反映す
る。反映している間は該当するメタデータは更新するこ
とができず、I/O終了を待ち合わせることになる。
ストを意識し、繋がるメタデータをメタボリュームへ反
映する。これにより、ログボリュームの上書き可能領域
が拡大する。
メタデータの中にも、再度トランザクションによって更
新が進み、メタボリュームヘの反映が禁じられているも
のが存在する場合がある。この時、他のメタデータを書
き出すとしても、そのメタデータについては非同期ライ
トの発行を待ちあわせなければならない。このようなメ
タデータが存在すると、以降のメタデータを全て書き出
せたとしても、上書き可能領域を拡大することができな
い。
されて処理を開始する場合と、自発的に起動する場合が
ある。以下に処理手順を述べるが、システムの状態(ロ
グボリュームの空きやメタキャッシュ130の空きな
ど)に応じて動作が若干異なる。また、ここで述べる処
理手順にはデーモン内だけではなく、ドライバから呼ば
れる関数での処理も含まれている。 (3.4.1)自発起動処理 メタライトデーモン104はタイマによって自発的に起
動して、それまでにメタライトシストに繋がれた書き出
し可能なメタデータをメタボリュームに反映する。この
時、メタライトリストの全てを書き出す訳ではなく、あ
る一定の数だけ非同期書き出しを行う。普段から少しず
つメタデータの書き出しを行っておくことによって、資
源不足による起動を避け、I/O負荷分散を図る目的が
ある。
繋がるメタデータ数を調査する。 b)メタライトリストの先頭から、メタデータの状態を
調べる。 c)メタデータが書き出し可能状態であれば、その状態
をI/O中状態に変更し、非同期ライトを発行する。
功を確認する。 e)b_iodoneの関数をメタライトリストから外
す。 f)規定数だけ繰り返す g)スリープする。
ストに繋がるメタデータ数を確認する。具体的には、メ
タライトリストのターミナルに含まれる、リンクされた
メタデータ数を調べる。このとき、それほど多くのメタ
データが繋がれていない場合には書き出しは行わない。
の書き出しが終わった、書き出し可能状態のメタデータ
が繋がれている。しかし、トランザクションが終了して
メタライトリストに繋がれた後で他トランザクションに
よって更新されると、そのメタデータだけは書き出し不
可の状態に戻ってしまう。そのため、メタライトデーモ
ン104はメタライトリストに繋がるメタデータの状態
を確認しながら書き出し処理を行わなければならない。
し可能状態であれば、その状態をI/O状態に書き換
え、metalist構造体に含まれるbuf構造体を
用いてI/Oを発行する。I/O中状態のメタデータは
他トランザクションから更新されることはない。メタデ
ータのディスクライトは非同期ライトで行い、デーモン
はI/Oの結果を待たずに次の処理へ進む。
ら、そのメタデータは諦め、リストの次に繋がるメタデ
ータに進み、状態を調べる。 d)非同期ライトによって発行されたI/Oの結果を判
定するのは、buf構造体のメンバb_iodoneに
組み込まれた関数である。この関数にはbuf構造体が
引数に与えられ、それを元にエラー判定処理を呼び出
す。ここでエラーを検出した場合には、異常系処理へ進
む(省略)。成功していた場合には、該当メタデータの
clean数をインクリメントする。
はメタライトリストの管理も行う。引数に渡されたbu
f構造体の上を見るとそこはmetalist構造体に
なっており、そのフラグからI/O中フラグを落とし、
メタライトリストから外す。また、メタデータをダーテ
ィ状態からclean状態へ変更する。これは、メタキ
ャッシュ130で管理されるメタデータである場合に
は、それぞれの管理構造体で管理されており、この管理
構造体はmetalist構造体からポイントされる。
ist構造体をリリースする。 f)メタライトリストに繋がる書き出し可能メタデータ
を、次々とリストを辿りながら定義した数だけ処理を繰
り返す。ここで、書き出しが不可とされているメタデー
タについては、この数には含めない。また、メタライト
リストが定義数よりも少ない場合には、当然そこで終了
となる。 g)スリープする。再度、自発的に起動するか、あるい
は資源不足によって他から起動されるまで、スリープは
継続する。 (3.4.2)平常処理 システム状態が以下の場合には、ここで述べる処理手順
に従いメタライトデーモン104は動作する。 ◎ログボリュームの残りが少ない。
グライトバッファを書き出す際に、上書き可能域の大き
さを計算し、これが所定の閾値を下回った時にメタライ
トデーモン104を起動する。 ◎メタキャッシュの残りが少ない。
clean数がデクリメントされるが、その数が所定の
閾値を下回った時にメタライトデーモン104を起動す
る。 a)メタライトリストの先頭から、メタデータの状態を
調べる。
ば、その状態をI/O中状態に変更し、非同期ライトを
発行する。 c)b_iodoneの関数がI/Oの成功を確認す
る。
リストから外す。 e)メタライトリストの最後まで繰り返す。 f)スリープする。
出し可能メタデータについて処理を繰り返す。平常処理
時には、書き出し不可のメタデータについては飛ばして
処理を行う。そのため、ログボリューム不足時には、メ
タライトリストの先頭、すなわち、ログボリュームの上
書き可能位置を制限しているメタデータが書き出せなけ
れば資源不足は解消しないが、平常処理であるため、こ
こでは特別な対処を行わない。
に従いメタライトデーモン104は動作する。 ◎ログボリュームの残りが非常に少ない。 ◎メタキャッシュ130の残りが非常に少ない。
る。 b)メタライトリストの先頭から、メタデータの状態を
調べる。 c)メタデータが書き出し可能状態であれば、その状態
をI/O中状態に変更し、非同期ライトを発行する。
タがあれば、ログライトデーモン105を起動する。 e)b_iodoneの関数がI/Oの成功を確認す
る。
リストから外す。 g)繰り返す。 h)現在の資源状態を調査し、不足があれば、それが解
消するまで繰り返す。
の開始を受け付けない。具体的には、トランザクション
に利用するログバッファを与えないことによって、その
トランザクションのBEGIN宣言時にてスリープさせ
る。そのために、特定のフラグを設け、BEGIN宣言
時にそのフラグを参照しなければならない。
と同じ処理である。すなわち、メタライトリストの先頭
から、追い出し不可状態のメタデータは飛ばして、書き
出し可能状態のメタデータを順に非同期ライトによって
書き出す。
われることから、たとえトランザクションが終了してい
てもログが未反映のためにメタボリュームへの反映を拒
否しているメタデータが存在することが考えられる。こ
の場合は、強制的にログライトデーモン105を起動し
て、書き出し可能状態へ移行するように操作する。既に
ログライトデーモン105が動作中であれば、そのまま
先へ進む。
常処理の動作契機となる閾値以上の資源が回復していな
ければ、再度、メタライトリスト内のメタデータ書き出
しを試みる。ここで、d)によってログ未反映状態のメ
タデータが、書き出し可能となったことによって進展す
ることを期待している。複数回、繰り返すことによっ
て、新規トランザクションの受付を制限していることか
ら、資源回復までメタデータの書き出しが可能であると
考える。
ンの受付を再開する。 j)タイマを設定して、スリープする。 (4)獲得解放処理 メタデータの割り当て状況を管理するビットマップの状
態として、FREE-dirtyとALLOC-dirtyを区分し、FREE-di
rtyなビットマップからは獲得しないようにする。
得用と定める。説明を簡単にするため、複数読み込むビ
ットマップのうち、一番若いもの(最初に読み込むも
の)を最初の獲得用ビットマップとする。 ・獲得用ビットマップの複製を作成する。 ・獲得時には複製を検索して獲得位置を決定し、本体と
複製の両方のビットを操作する。 ・解放時には本体のみのビットを操作する。 ・複製ビットマップには解放が記録されないため、獲得
処理が進むと全てのビットが立ち、そのビットマップで
は獲得できないと判断される。その場合、現在メモリ上
にあるビットマップのうち、CLEANなもの、または
ALLOC-dirtyのビットマップを次の獲得用ビットマップ
と定義し、その複製を作成する。 ・メモリ上のビットマップが全てFREE-dirtyである場合
には、どれかを追い出し、新しいビットマップを獲得用
ビットマップとして読み込む。そして、その複製を作成
する。ここで、追い出し・読み込みのアルゴリズムは従
来通りで良い。
マップは追い出しの対象とはしない。そのためメタキャ
ッシュ域不足によって他から追い出されることはない。
また、メタライトリストに繋がったことによって、メタ
ボリュームに反映された場合にも、CLEANな状態に
はなるが、複製は更新せず、そのままとする。
ある。以上説明したように、本発明によれば複数の二次
記憶装置に保存されたメタデータのログにボリューム情
報を含め、また、有効なログの位置を算出・保存するこ
とでリプレイするログ量を減少せしめ、さらに、ログボ
リューム全体のゼロクリアをする必要をなくすことによ
り、ログ機構の最大の利点であるところのファイルシス
テム復元時間の短縮に及ぼす影響を小さくし、オーバオ
ールコンピュータシステム可用性の増大に寄与するとこ
ろが大きい。
ョン内で複数回更新されるメタデータのログを一度しか
採取せず、また、ログバッファの分割や、獲得・解放処
理の特殊なログ採取方式によって複数のトランザクショ
ンの独立性を考慮し、かつ、ログ機構導入による速度性
能の劣化を最小に留めることにおいて寄与するところが
大きい。
毎に異なるログの採取量を考慮し、多くのメタデータを
更新するトランザクションについては分割し、トランザ
クションに与えられたパラメタをもログに採取し、リプ
レイ時にそのパラメタを元に、中途で終わったトランザ
クションを再度実行することによって、オペレーション
のセマンティクスを保証した復元が可能となる面におい
て寄与するところが大きい。
よって実現することができる。その場合、説明した処理
内容は、コンピュータで読み取り可能な記録媒体に記録
されたプログラムに記述されており、このプログラムを
コンピュータで実行することにより、上記処理がコンピ
ュータで実現される。コンピュータで読み取り可能な記
録媒体としては、磁気記録装置や半導体メモリ等があ
る。市場へ流通させる場合には、CD−ROM(Compact
Disk Read Only Memory)やフロッピーディスク等の可
搬型記録媒体にプログラムを格納して流通させたり、ネ
ットワークを介して接続されたコンピュータの記憶装置
に格納しておき、ネットワークを通じて他のコンピュー
タに転送することもできる。コンピュータで実行する際
には、コンピュータ内のハードディスク装置等にプログ
ラムを格納しておき、メインメモリにロードして実行す
る。
メタキャッシュ内のメタデータとともにメタデータがど
のメタボリュームから取り出されたのかを示すメタデー
タ管理情報をログとして採取するようにしたため、保持
されたログがどのメタボリュームのメタデータに関する
ログであるのかを管理することができる。その結果、複
数のログボリュームにメタデータが格納されていても、
ファイルシステムの不整合を修正することが可能とな
る。
範囲を管理するようにしたため、ファイルシステムを復
元する際には、ログボリューム12内の有効なログのみ
を用いて効率よく復元処理を行うことが可能となる。
て付与するシーケンス番号の最大値を、システムの使用
可能年数以上使い続けることができる値としたことで、
常に昇順の採番が可能となり、ログボリュームのゼロク
リアに伴う処理の遅延を避けることができる。
回更新される場合には、最終形態のみをログとして採取
するようにしたため、ログデータが短縮されるととも
に、ログデータの短縮に伴いファイルシステム復元時間
の短縮が図れる。
の一部の複製を獲得操作用管理情報とし、メタデータの
獲得時には獲得操作用管理情報内から取得すべきメタデ
ータを特定するが、解放時には獲得操作用管理情報の情
報を更新しないようにしたため、メタデータの解放直後
に別のトランザクションにより獲得されることがなくな
る。その結果、システムダウン時に中途までしか終了し
ていなかった解放トランザクションが解放したはずであ
る領域は、解放される直前の状態のまま保全されること
が保証される。
ログとして、その操作対象となった情報のみを記録する
ようにしたため、ログ採取量が少量ですむ。また、第7
の発明では、複数のログバッファを設け、さらにいくつ
か異なるサイズのログバッファを用意し、トランザクシ
ョン毎のログをそのトランザクションに適したサイズの
ログバッファに格納するようにしたため、複数のトラン
ザクションが並列実行される際のトランザクションの独
立性を高めることができ、また、メモリ空間を有効に活
用できる。
ションのログがログバッファに収まらない場合に、中間
ログとして完結されたログをログボリュームに書き出す
ようにしたため、部分的であるログを、ファイル復元時
には1つのトランザクションのログと同値に扱うことが
可能となり、ファイルシステムの復元時に望ましい状態
に復元するのが容易となる。
システムの状態よってトランザクションの受け入れを制
限するようにしたため、複数のトランザクションが並列
実行されることによるメモリ枯渇等の障害の発生を防止
することができる。
ェア構成図である。
の構成図である。
である。
すフローチャートである。
を示す図である。
ある。
ートである。
理を示すフローチャートである。
Claims (21)
- 【請求項1】 ログを用いてファイルシステムの不整合
の修正を行うデータ処理装置において、 ファイルを管理するメタデータを記憶するための二次記
憶装置である複数のメタボリュームと、 メタデータの更新結果であるログを記憶するための二次
記憶装置であるログボリュームと、 メタデータを記憶するために主記憶装置内に設けられた
メタキャッシュと、 メタデータの内容が変更される際に、対象となるメタデ
ータを前記メタキャッシュへと読み込むメタデータ読み
込み手段と、 前記メタキャッシュ内に読み込まれたメタデータの内容
を更新するトランザクションと、 前記メタキャッシュに読み込まれたメタデータが格納さ
れていたメタボリュームの識別情報を管理するメタデー
タ管理手段と、 前記メタキャッシュ内で変更されたメタデータの内容を
ログとして採取するとともに、採取したメタデータが格
納されていたメタボリュームの識別情報を採取するログ
採取手段と、 前記ログ採取手段が採取した情報を保持するログバッフ
ァと、 前記ログバッファが保持する情報を、適宜前記ログボリ
ュームに格納するログ書き込み手段と、 を有することを特徴とするデータ処理装置。 - 【請求項2】 ログを用いてファイルシステムの不整合
の修正を行うデータ処理装置において、 ファイルを管理するメタデータを記憶するための二次記
憶装置であるメタボリュームと、 メタデータの更新結果であるログを記憶するための二次
記憶装置であるログボリュームと、 メタデータを記憶するために主記憶装置内に設けられた
メタキャッシュと、 メタデータの内容が変更される際に、対象となるメタデ
ータを前記メタキャッシュへと読み込むメタデータ読み
込み手段と、 前記メタキャッシュ内に読み込まれたメタデータの内容
を更新するトランザクションと、 前記メタキャッシュ内で変更されたメタデータの内容を
ログとして採取するログ採取手段と、 前記ログ採取手段が採取した情報を保持するログバッフ
ァと、 前記ログボリューム内の領域を定期的に循環するように
して、前記ログバッファが保持する情報を前記ログボリ
ュームに格納するログ書き込み手段と、 前記メタキャッシュ内のメタデータをメタボリューム内
に格納するメタデータ書き込み手段と、 前記メタデータ書き込み手段による書き込み動作を監視
しており、変更内容が前記メタボリュームに反映されて
いないメタデータに対応する前記ログボリューム内のロ
グを、有効なログとして指定する有効範囲監視手段と、 ファイルシステム復元要求を受け取ると、前記ログボリ
ュームに格納されたログの中で、前記有効範囲監視手段
により有効なログとして指定されているログのみを用い
て、前記メタボリューム内のメタデータの不整合を修正
するファイルシステム復元手段と、 を有することを特徴とするデータ処理装置。 - 【請求項3】 ログを用いてファイルシステムの不整合
の修正を行うデータ処理装置において、 ファイルを管理するメタデータを記憶するための二次記
憶装置であるメタボリュームと、 メタデータの更新結果であるログを記憶するための二次
記憶装置であるログボリュームと、 メタデータを記憶するために主記憶装置内に設けられた
メタキャッシュと、 メタデータの内容が変更される際に、対象となるメタデ
ータを前記メタキャッシュへと読み込むメタデータ読み
込み手段と、 前記メタキャッシュ内に読み込まれたメタデータの内容
を更新するトランザクションと、 前記メタキャッシュ内で変更されたメタデータの内容を
ログとして採取するログ採取手段と、 前記ログ採取手段が採取した情報を保持するログバッフ
ァと、 前記ログバッファが保持する情報を前記ログボリューム
に格納するログ書き込み手段と、 前記ログボリュームに格納されたログを用いて前記メタ
ボリューム内のメタデータの不整合を修正するファイル
システム復元手段と、 前記ファイルシステム復元手段が前記メタボリューム内
のメタデータの不整合を修正した時に用いられたログの
最後のシーケンス番号を記憶する初期シーケンス番号記
憶手段と、 前記ログ書き込み手段がログの書き込みを行う際に、シ
ーケンス番号を昇順で採番し、採番したシーケンス番号
を書き込むべきログに付与しており、前記ファイルシス
テム復元手段が前記メタボリューム内のメタデータの不
整合を修正した直後には、前記初期シーケンス番号記憶
手段に格納されたシーケンス番号を基準として採番する
シーケンス番号採番手段と、 を有することを特徴とするデータ処理装置。 - 【請求項4】 ログを用いてファイルシステムの不整合
の修正を行うデータ処理装置において、 ファイルを管理するメタデータを記憶するための二次記
憶装置であるメタボリュームと、 メタデータを記憶するために主記憶装置内に設けられた
メタキャッシュと、 メタデータの内容が変更される際に、対象となるメタデ
ータを前記メタキャッシュへと読み込むメタデータ読み
込み手段と、 前記メタキャッシュ内に読み込まれたメタデータの内容
を更新するトランザクションと、 前記トランザクションの種別を判断し、メタデータの更
新を複数回行う可能性のあるトランザクションの場合に
は、前記メタキャッシュ内で変更されたメタデータの最
終形態のみをログとして採取するログ採取手段と、 を有することを特徴とするデータ処理装置。 - 【請求項5】 ログを用いてファイルシステムの不整合
の修正を行うデータ処理装置において、 メタデータに対する割り当てを管理するための割り当て
管理情報を複数の領域に分割して保持する割り当て管理
情報保持手段と、 前記割り当て管理情報保持手段内の割り当て管理情報の
一部領域の複製を生成し、獲得操作用管理情報とすると
ともに、前記獲得操作用管理情報内に未獲得のメタデー
タがなくなると、割り当て管理情報の別の領域の複製を
前記獲得操作用管理情報とする獲得操作用管理情報生成
手段と、 メタデータの獲得及び解放要求を出力するトランザクシ
ョンと、 前記トランザクションによりメタデータの獲得要求が出
された場合には、前記獲得操作用管理情報の中の未獲得
のメタデータを獲得し、獲得したメタデータを獲得済み
とするように前記獲得操作用管理情報と前記割り当て管
理情報との内容を変更するメタデータ獲得手段と、 前記トランザクションによりメタデータの解放要求が出
された場合には、指定されたメタデータが未獲得の状態
となるように、前記割り当て管理情報の内容を変更する
メタデータ解放手段と、 を有することを特徴とするデータ処理装置。 - 【請求項6】 ログを用いてファイルシステムの不整合
の修正を行うデータ処理装置において、 メタデータに対する割り当てを管理するための割り当て
管理情報を保持する割り当て管理情報保持手段と、 メタデータの獲得及び解放要求を出力するトランザクシ
ョンと、 前記トランザクションによりメタデータの獲得要求が出
された場合には、前記割り当て管理情報の中の未獲得の
メタデータを獲得し、獲得したメタデータを獲得済みと
するように前記割り当て管理情報の内容を変更するメタ
データ獲得手段と、 前記トランザクションによりメタデータの解放要求が出
された場合には、指定されたメタデータ未獲得の状態と
なるように、前記割り当て管理情報の内容を変更するメ
タデータ解放手段と、 前記割り当て管理情報内の前記メタデータ獲得手段及び
前記メタデータ解放手段によって変更された部分の情報
をログとして採取するログ採取手段と、 を有することを特徴とするデータ処理装置。 - 【請求項7】 ログを用いてファイルシステムの不整合
の修正を行うデータ処理装置において、 ファイルを管理するメタデータを記憶するための二次記
憶装置であるメタボリュームと、 メタデータを記憶するために主記憶装置内に設けられた
メタキャッシュと、 メタデータの内容が変更される際に、対象となるメタデ
ータを前記メタキャッシュへと読み込むメタデータ読み
込み手段と、 前記メタキャッシュ内に読み込まれたメタデータの内容
を更新する複数のトランザクションと、 ログをトランザクション毎に保持する、サイズの異なる
複数のログバッファと、 前記メタキャッシュ内で変更されたメタデータの内容を
ログとして採取し、前記トランザクション毎に分けて前
記ログバッファに格納するログ採取手段と、 を有することを特徴とするデータ処理装置。 - 【請求項8】 前記ログ採取手段は、最初にログを格納
する場合には、トランザクションの内容によって予想さ
れる処理に適した大きさの前記ログバッファに格納し、
格納対象となる前記ログバッファの記憶容量が不足して
きたら、より大きな記憶容量のログバッファへログを移
し替え、以後、より大きな記憶容量のログバッファをロ
グの格納対象とすることを特徴とする請求項7記載のデ
ータ処理装置。 - 【請求項9】 ログを用いてファイルシステムの不整合
の修正を行うデータ処理装置において、 ファイルを管理するメタデータを記憶するための二次記
憶装置であるメタボリュームと、 メタデータの更新結果であるログを記憶するための二次
記憶装置であるログボリュームと、 メタデータを記憶するために主記憶装置内に設けられた
メタキャッシュと、 メタデータの内容が変更される際に、対象となるメタデ
ータを前記メタキャッシュへと読み込むメタデータ読み
込み手段と、 前記メタキャッシュ内に読み込まれたメタデータの内容
を更新するトランザクションと、 ログをトランザクション毎に保持するログバッファと、 前記メタキャッシュ内で変更されたメタデータの内容を
ログとして採取し、前記ログバッファに格納するログ採
取手段と、 前記トランザクションが終了した場合に前記ログバッフ
ァの内容を前記ログボリュームに書き込むとともに、前
記トランザクションによるログが前記ログバッファ内に
格納しきれない場合には、前記ログバッファ内のデータ
を完結したログに加工し、中間ログとして前記ログボリ
ューム内に格納するログ書き込み手段と、 を有することを特徴とするデータ処理装置。 - 【請求項10】 前記ログ書き込み手段は、前記中間ロ
グに対して、トランザクションを実行するのに必要とさ
れたパラメタに関する情報を付加し、 ファイルシステム復元要求を受け取ると、前記ログボリ
ュームに格納されたログを用いて、前記メタボリューム
内のメタデータの不整合を修正するとともに、前記中間
ログを発見すると、前記中間ログに含まれたパラメタを
用いて、前記トランザクションを再実行させるファイル
システム復元手段をさらに有することを特徴とする請求
項9記載のデータ処理装置。 - 【請求項11】 ログを用いてファイルシステムの不整
合の修正を行うデータ処理装置において、 ファイルを管理するメタデータを記憶するための二次記
憶装置であるメタボリュームと、 メタデータの更新結果であるログを記憶するための二次
記憶装置であるログボリュームと、 メタデータを記憶するために主記憶装置内に設けられた
メタキャッシュと、 メタデータの内容が変更される際に、対象となるメタデ
ータを前記メタキャッシュへと読み込むメタデータ読み
込み手段と、 前記メタキャッシュ内に読み込まれたメタデータの内容
を更新する、複数同時実行可能なトランザクションと、 前記トランザクションからの開始要求を受け付けると、
ログ採取に関するシステムの動作状況を判断し、前記ト
ランザクションの受け入れ許否を判断するトランザクシ
ョン受け入れ判断手段と、 前記メタキャッシュ内で変更されたメタデータの内容を
ログとして採取するログ採取手段と、 前記ログ採取手段が採取した情報を保持するログバッフ
ァと、 前記ログバッファが保持する情報を、適宜前記ログボリ
ュームに格納するログ書き込み手段と、 を有することを特徴とするデータ処理装置。 - 【請求項12】 前記メタキャッシュ内のメタデータ
をメタボリューム内に格納するメタデータ書き込み手段
と、 前記メタデータ書き込み手段による書き込み動作を監視
しており、変更内容が前記メタボリュームに反映されて
いないメタデータに対応する前記ログボリューム内のロ
グを、有効なログとして指定する有効範囲監視手段とを
さらに有し、 前記トランザクション受け入れ判断手段は、前記有効範
囲監視手段によって有効なログとされたログがログボリ
ューム中に占める割合が一定値以上である間は、前記ト
ランザクションの受け入れを拒絶することを特徴とする
請求項11記載のデータ処理装置。 - 【請求項13】 ログを用いてファイルシステムの不整
合の修正を行うファイル管理プログラムを記録したコン
ピュータ読み取り可能な記録媒体において、ファイルを
管理するメタデータを記憶するための二次記憶装置であ
る複数のメタボリューム、 メタデータの更新結果であるログを記憶するための二次
記憶装置であるログボリューム、 メタデータを記憶するために主記憶装置内に設けられた
メタキャッシュ、 メタデータの内容が変更される際に、対象となるメタデ
ータを前記メタキャッシュへと読み込むメタデータ読み
込み手段、 前記メタキャッシュ内に読み込まれたメタデータの内容
を更新するトランザクション、 前記メタキャッシュに読み込まれたメタデータが格納さ
れていたメタボリュームの識別情報を管理するメタデー
タ管理手段、 前記メタキャッシュ内で変更されたメタデータの内容を
ログとして採取するとともに、採取したメタデータが格
納されていたメタボリュームの識別情報を採取するログ
採取手段、 前記ログ採取手段が採取した情報を保持するログバッフ
ァ、 前記ログバッファが保持する情報を、適宜前記ログボリ
ュームに格納するログ書き込み手段、 としてコンピュータを機能させることを特徴とするファ
イル管理プログラムを記録したコンピュータ読み取り可
能な記録媒体。 - 【請求項14】 ログを用いてファイルシステムの不整
合の修正を行うファイル管理プログラムを記録したコン
ピュータ読み取り可能な記録媒体において、 ファイルを管理するメタデータを記憶するための二次記
憶装置であるメタボリューム、 メタデータの更新結果であるログを記憶するための二次
記憶装置であるログボリューム、 メタデータを記憶するために主記憶装置内に設けられた
メタキャッシュ、 メタデータの内容が変更される際に、対象となるメタデ
ータを前記メタキャッシュへと読み込むメタデータ読み
込み手段、 前記メタキャッシュ内に読み込まれたメタデータの内容
を更新するトランザクション、 前記メタキャッシュ内で変更されたメタデータの内容を
ログとして採取するログ採取手段、 前記ログ採取手段が採取した情報を保持するログバッフ
ァ、 前記ログボリューム内の領域を定期的に循環するように
して、前記ログバッファが保持する情報を前記ログボリ
ュームに格納するログ書き込み手段、 前記メタキャッシュ内のメタデータをメタボリューム内
に格納するメタデータ書き込み手段、 前記メタデータ書き込み手段による書き込み動作を監視
しており、変更内容が前記メタボリュームに反映されて
いないメタデータに対応する前記ログボリューム内のロ
グを、有効なログとして指定する有効範囲監視手段、 ファイルシステム復元要求を受け取ると、前記ログボリ
ュームに格納されたログの中で、前記有効範囲監視手段
により有効なログとして指定されているログのみを用い
て、前記メタボリューム内のメタデータの不整合を修正
するファイルシステム復元手段、 としてコンピュータを機能させることを特徴とするファ
イル管理プログラムを記録したコンピュータ読み取り可
能な記録媒体。 - 【請求項15】 ログを用いてファイルシステムの不整
合の修正を行うファイル管理プログラムを記録したコン
ピュータ読み取り可能な記録媒体において、 ファイルを管理するメタデータを記憶するための二次記
憶装置であるメタボリューム、 メタデータの更新結果であるログを記憶するための二次
記憶装置であるログボリューム、 メタデータを記憶するために主記憶装置内に設けられた
メタキャッシュ、 メタデータの内容が変更される際に、対象となるメタデ
ータを前記メタキャッシュへと読み込むメタデータ読み
込み手段、 前記メタキャッシュ内に読み込まれたメタデータの内容
を更新するトランザクション、 前記メタキャッシュ内で変更されたメタデータの内容を
ログとして採取するログ採取手段、 前記ログ採取手段が採取した情報を保持するログバッフ
ァ、 前記ログバッファが保持する情報を前記ログボリューム
に格納するログ書き込み手段、 前記ログボリュームに格納されたログを用いて前記メタ
ボリューム内のメタデータの不整合を修正するファイル
システム復元手段、 前記ファイルシステム復元手段が前記メタボリューム内
のメタデータの不整合を修正した時に用いられたログの
最後のシーケンス番号を記憶する初期シーケンス番号記
憶手段、 前記ログ書き込み手段がログの書き込みを行う際に、シ
ステムの使用可能年数以上使い続けることができる値を
最大値としたシーケンス番号を昇順で採番し、書き込む
べきログに付与しており、前記ファイルシステム復元手
段が前記メタボリューム内のメタデータの不整合を修正
した直後には、前記初期シーケンス番号記憶手段に格納
されたシーケンス番号から昇順で採番するシーケンス番
号採番手段、 としてコンピュータを機能させることを特徴とするファ
イル管理プログラムを記録したコンピュータ読み取り可
能な記録媒体。 - 【請求項16】 ログを用いてファイルシステムの不整
合の修正を行うファイル管理プログラムを記録したコン
ピュータ読み取り可能な記録媒体において、 ファイルを管理するメタデータを記憶するための二次記
憶装置であるメタボリューム、 メタデータを記憶するために主記憶装置内に設けられた
メタキャッシュ、 メタデータの内容が変更される際に、対象となるメタデ
ータを前記メタキャッシュへと読み込むメタデータ読み
込み手段、 前記メタキャッシュ内に読み込まれたメタデータの内容
を更新するトランザクション、 前記トランザクションの種別を判断し、メタデータの更
新を複数回行う可能性のあるトランザクションの場合に
は、前記メタキャッシュ内で変更されたメタデータの最
終形態のみをログとして採取するログ採取手段、 としてコンピュータを機能させることを特徴とするファ
イル管理プログラムを記録したコンピュータ読み取り可
能な記録媒体。 - 【請求項17】 ログを用いてファイルシステムの不整
合の修正を行うファイル管理プログラムを記録したコン
ピュータ読み取り可能な記録媒体において、 メタデータに対する割り当てを管理するための割り当て
管理情報を複数の領域に分割して保持する割り当て管理
情報保持手段、 前記割り当て管理情報保持手段内の割り当て管理情報の
一部領域の複製を生成し、獲得操作用管理情報とすると
ともに、前記獲得操作用管理情報内に未獲得のメタデー
タがなくなると、割り当て管理情報の別の領域の複製を
前記獲得操作用管理情報とする獲得操作用管理情報生成
手段、 メタデータの獲得及び解放要求を出力するトランザクシ
ョン、 前記トランザクションによりメタデータの獲得要求が出
された場合には、前記獲得操作用管理情報の中の未獲得
のメタデータを獲得し、獲得したメタデータを獲得済み
とするように前記獲得操作用管理情報と前記割り当て管
理情報との内容を変更するメタデータ獲得手段、 前記トランザクションによりメタデータの解放要求が出
された場合には、指定されたメタデータが未獲得の状態
となるように、前記割り当て管理情報の内容を変更する
メタデータ解放手段、 としてコンピュータを機能させることを特徴とするファ
イル管理プログラムを記録したコンピュータ読み取り可
能な記録媒体。 - 【請求項18】 ログを用いてファイルシステムの不整
合の修正を行うファイル管理プログラムを記録したコン
ピュータ読み取り可能な記録媒体において、 メタデータに対する割り当てを管理するための割り当て
管理情報を保持する割り当て管理情報保持手段、 メタデータの獲得及び解放要求を出力するトランザクシ
ョン、 前記トランザクションによりメタデータの獲得要求が出
された場合には、前記割り当て管理情報の中の未獲得の
メタデータを獲得し、獲得したメタデータを獲得済みと
するように前記割り当て管理情報の内容を変更するメタ
データ獲得手段、 前記トランザクションによりメタデータの解放要求が出
された場合には、指定されたメタデータ未獲得の状態と
なるように、前記割り当て管理情報の内容を変更するメ
タデータ解放手段、 前記割り当て管理情報内の前記メタデータ獲得手段及び
前記メタデータ解放手段によって変更された部分の情報
をログとして採取するログ採取手段、 としてコンピュータを機能させることを特徴とするファ
イル管理プログラムを記録したコンピュータ読み取り可
能な記録媒体。 - 【請求項19】 ログを用いてファイルシステムの不整
合の修正を行うファイル管理プログラムを記録したコン
ピュータ読み取り可能な記録媒体において、 ファイルを管理するメタデータを記憶するための二次記
憶装置であるメタボリューム、 メタデータを記憶するために主記憶装置内に設けられた
メタキャッシュ、 メタデータの内容が変更される際に、対象となるメタデ
ータを前記メタキャッシュへと読み込むメタデータ読み
込み手段、 前記メタキャッシュ内に読み込まれたメタデータの内容
を更新する複数のトランザクション、 ログをトランザクション毎に保持する、サイズの異なる
複数のログバッファ、 前記メタキャッシュ内で変更されたメタデータの内容を
ログとして採取し、前記トランザクション毎に分けて前
記ログバッファに格納するログ採取手段、 としてコンピュータを機能させることを特徴とするファ
イル管理プログラムを記録したコンピュータ読み取り可
能な記録媒体。 - 【請求項20】 ログを用いてファイルシステムの不整
合の修正を行うファイル管理プログラムを記録したコン
ピュータ読み取り可能な記録媒体において、 ファイルを管理するメタデータを記憶するための二次記
憶装置であるメタボリューム、 メタデータの更新結果であるログを記憶するための二次
記憶装置であるログボリューム、 メタデータを記憶するために主記憶装置内に設けられた
メタキャッシュ、 メタデータの内容が変更される際に、対象となるメタデ
ータを前記メタキャッシュへと読み込むメタデータ読み
込み手段、 前記メタキャッシュ内に読み込まれたメタデータの内容
を更新するトランザクション、 ログをトランザクション毎に保持するログバッファ、 前記メタキャッシュ内で変更されたメタデータの内容を
ログとして採取し、前記ログバッファに格納するログ採
取手段、 前記トランザクションが終了した場合に前記ログバッフ
ァの内容を前記ログボリュームに書き込むとともに、前
記トランザクションによるログが前記ログバッファ内に
格納しきれない場合には、前記ログバッファ内のデータ
を完結したログに加工し、中間ログとして前記ログボリ
ューム内に格納するログ書き込み手段、 としてコンピュータを機能させることを特徴とするファ
イル管理プログラムを記録したコンピュータ読み取り可
能な記録媒体。 - 【請求項21】 ログを用いてファイルシステムの不整
合の修正を行うファイル管理プログラムを記録したコン
ピュータ読み取り可能な記録媒体において、 ファイルを管理するメタデータを記憶するための二次記
憶装置であるメタボリューム、 メタデータの更新結果であるログを記憶するための二次
記憶装置であるログボリューム、 メタデータを記憶するために主記憶装置内に設けられた
メタキャッシュと、 メタデータの内容が変更される際に、対象となるメタデ
ータを前記メタキャッシュへと読み込むメタデータ読み
込み手段、 前記メタキャッシュ内に読み込まれたメタデータの内容
を更新する、複数同時実行可能なトランザクション、 前記トランザクションからの開始要求を受け付けると、
ログ採取に関するシステムの動作状況を判断し、前記ト
ランザクションの受け入れ許否を判断するトランザクシ
ョン受け入れ判断手段、 前記メタキャッシュ内で変更されたメタデータの内容を
ログとして採取するログ採取手段、 前記ログ採取手段が採取した情報を保持するログバッフ
ァ、 前記ログバッファが保持する情報を、適宜前記ログボリ
ュームに格納するログ書き込み手段、 としてコンピュータを機能させることを特徴とするファ
イル管理プログラムを記録したコンピュータ読み取り可
能な記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08745799A JP3763992B2 (ja) | 1999-03-30 | 1999-03-30 | データ処理装置及び記録媒体 |
US09/501,568 US6732124B1 (en) | 1999-03-30 | 2000-02-09 | Data processing system with mechanism for restoring file systems based on transaction logs |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08745799A JP3763992B2 (ja) | 1999-03-30 | 1999-03-30 | データ処理装置及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000284995A true JP2000284995A (ja) | 2000-10-13 |
JP3763992B2 JP3763992B2 (ja) | 2006-04-05 |
Family
ID=13915409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08745799A Expired - Fee Related JP3763992B2 (ja) | 1999-03-30 | 1999-03-30 | データ処理装置及び記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6732124B1 (ja) |
JP (1) | JP3763992B2 (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004252933A (ja) * | 2002-06-03 | 2004-09-09 | Thomson Licensing Sa | メタデータ項目の伝達を制御する方法 |
JP2005316635A (ja) * | 2004-04-28 | 2005-11-10 | Hitachi Ltd | データ処理システムおよび方法並びにその処理プログラム |
KR100781515B1 (ko) * | 2006-01-10 | 2007-12-03 | 삼성전자주식회사 | 트랜잭션 처리를 위한 로그 정보 관리 시스템 및 방법 |
JP2008040699A (ja) * | 2006-08-04 | 2008-02-21 | Fujitsu Ltd | Hsm制御プログラム、hsm制御装置、hsm制御方法 |
US7640388B2 (en) | 2003-10-10 | 2009-12-29 | Sony Corporation | File storage apparatus for storing file data and management information |
JP4699516B2 (ja) * | 2006-03-28 | 2011-06-15 | 富士通株式会社 | 名前空間複製プログラム、名前空間複製装置、名前空間複製方法 |
WO2012032727A1 (en) * | 2010-09-09 | 2012-03-15 | Nec Corporation | Storage system |
JP2013250982A (ja) * | 2012-06-01 | 2013-12-12 | Samsung Electronics Co Ltd | 記憶装置のデータ書き込み方法 |
CN110719233A (zh) * | 2019-10-11 | 2020-01-21 | 北京百度网讯科技有限公司 | 用于发送信息的方法及装置 |
CN113448772A (zh) * | 2020-11-23 | 2021-09-28 | 北京新氧科技有限公司 | 一种精细化数据回滚方法及装置 |
Families Citing this family (450)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7581077B2 (en) | 1997-10-30 | 2009-08-25 | Commvault Systems, Inc. | Method and system for transferring data in a storage operation |
US6418478B1 (en) * | 1997-10-30 | 2002-07-09 | Commvault Systems, Inc. | Pipelined high speed data transfer mechanism |
US8234477B2 (en) | 1998-07-31 | 2012-07-31 | Kom Networks, Inc. | Method and system for providing restricted access to a storage medium |
US9361243B2 (en) | 1998-07-31 | 2016-06-07 | Kom Networks Inc. | Method and system for providing restricted access to a storage medium |
US6438661B1 (en) * | 1999-03-03 | 2002-08-20 | International Business Machines Corporation | Method, system, and program for managing meta data in a storage system and rebuilding lost meta data in cache |
AU6016600A (en) | 1999-07-14 | 2001-02-05 | Matsushita Electric Industrial Co., Ltd. | Apparatus for providing information, information receiver and storage medium |
US7035880B1 (en) | 1999-07-14 | 2006-04-25 | Commvault Systems, Inc. | Modular backup and retrieval system used in conjunction with a storage area network |
US7395282B1 (en) | 1999-07-15 | 2008-07-01 | Commvault Systems, Inc. | Hierarchical backup and retrieval system |
US7389311B1 (en) | 1999-07-15 | 2008-06-17 | Commvault Systems, Inc. | Modular backup and retrieval system |
US7003641B2 (en) | 2000-01-31 | 2006-02-21 | Commvault Systems, Inc. | Logical view with granular access to exchange data managed by a modular data and storage management system |
US6658436B2 (en) * | 2000-01-31 | 2003-12-02 | Commvault Systems, Inc. | Logical view and access to data managed by a modular data and storage management system |
US7155481B2 (en) | 2000-01-31 | 2006-12-26 | Commvault Systems, Inc. | Email attachment management in a computer system |
JP3851493B2 (ja) * | 2000-06-12 | 2006-11-29 | 株式会社日立製作所 | データベース検索方法及びデータベース検索システム並びにデータベース検索プログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6983464B1 (en) * | 2000-07-31 | 2006-01-03 | Microsoft Corporation | Dynamic reconfiguration of multimedia stream processing modules |
US7072916B1 (en) * | 2000-08-18 | 2006-07-04 | Network Appliance, Inc. | Instant snapshot |
US6636879B1 (en) * | 2000-08-18 | 2003-10-21 | Network Appliance, Inc. | Space allocation in a write anywhere file system |
WO2002031696A1 (en) * | 2000-10-09 | 2002-04-18 | Maximum Availability Limited | Method and apparatus for data processing |
US7058662B2 (en) * | 2000-11-30 | 2006-06-06 | Xythos Software, Inc. | Maintenance of data integrity during transfer among computer networks |
JP3877519B2 (ja) * | 2000-12-15 | 2007-02-07 | 株式会社日立製作所 | システム回復方法およびその実施計算機システム並びにその処理プログラムを記録した記録媒体 |
US7730213B2 (en) * | 2000-12-18 | 2010-06-01 | Oracle America, Inc. | Object-based storage device with improved reliability and fast crash recovery |
US7328263B1 (en) * | 2001-01-30 | 2008-02-05 | Cisco Technology, Inc. | Controlling access of concurrent users of computer resources in a distributed system using an improved semaphore counting approach |
WO2002071220A1 (en) * | 2001-03-05 | 2002-09-12 | Sanpro Systems Inc. | A system and a method for asynchronous replication for storage area networks |
US20020169940A1 (en) * | 2001-04-12 | 2002-11-14 | Kyler Daniel B. | System and method for using memory mapping to scan a master file table |
US20020165902A1 (en) * | 2001-05-03 | 2002-11-07 | Robb Mary Thomas | Independent log manager |
US7028079B2 (en) * | 2001-05-25 | 2006-04-11 | Lenovo (Singapore) Pte, Ltd. | Method and apparatus for the automatic migration of applications and their associated data and configuration files |
US6976039B2 (en) * | 2001-05-25 | 2005-12-13 | International Business Machines Corporation | Method and system for processing backup data associated with application, querying metadata files describing files accessed by the application |
US7016920B2 (en) * | 2001-05-25 | 2006-03-21 | International Business Machines Corporation | Method for tracking relationships between specified file name and particular program used for subsequent access in a database |
US7269608B2 (en) * | 2001-05-30 | 2007-09-11 | Sun Microsystems, Inc. | Apparatus and methods for caching objects using main memory and persistent memory |
US7437525B2 (en) * | 2001-05-31 | 2008-10-14 | Oracle International Corporation | Guaranteed undo retention |
US7617292B2 (en) * | 2001-06-05 | 2009-11-10 | Silicon Graphics International | Multi-class heterogeneous clients in a clustered filesystem |
US20040139125A1 (en) | 2001-06-05 | 2004-07-15 | Roger Strassburg | Snapshot copy of data volume during data access |
US7640582B2 (en) | 2003-04-16 | 2009-12-29 | Silicon Graphics International | Clustered filesystem for mix of trusted and untrusted nodes |
US8010558B2 (en) | 2001-06-05 | 2011-08-30 | Silicon Graphics International | Relocation of metadata server with outstanding DMAPI requests |
GB2378782B (en) * | 2001-08-16 | 2005-04-13 | Sun Microsystems Inc | Message brokering |
GB2378781B (en) * | 2001-08-16 | 2005-06-01 | Sun Microsystems Inc | Message brokering |
US20030055809A1 (en) * | 2001-09-18 | 2003-03-20 | Sun Microsystems, Inc. | Methods, systems, and articles of manufacture for efficient log record access |
US7415539B2 (en) * | 2001-09-28 | 2008-08-19 | Siebel Systems, Inc. | Method and apparatus for detecting insufficient memory for data extraction processes |
US7257649B2 (en) * | 2001-09-28 | 2007-08-14 | Siebel Systems, Inc. | Method and system for transferring information during server synchronization with a computing device |
US7487168B2 (en) * | 2001-11-01 | 2009-02-03 | Microsoft Corporation | System and method for loading hierarchical data into relational database systems |
US20030088814A1 (en) * | 2001-11-07 | 2003-05-08 | Campbell Ralph B. | Method and apparatus for logging file system operations |
US7149761B2 (en) * | 2001-11-13 | 2006-12-12 | Tadpole Technology Plc | System and method for managing the synchronization of replicated version-managed databases |
JP2005514683A (ja) * | 2001-12-06 | 2005-05-19 | ニューヨーク・ユニバーシティ | 合成、認識および圧縮のための多モード・データ集団の多重線形表現のための論理装置、データ構造、システムおよび方法 |
US7047358B2 (en) * | 2001-12-26 | 2006-05-16 | Boon Storage Technologies, Inc. | High-performance log-structured RAID |
US7036043B2 (en) * | 2001-12-28 | 2006-04-25 | Storage Technology Corporation | Data management with virtual recovery mapping and backward moves |
US20030131253A1 (en) * | 2001-12-28 | 2003-07-10 | Martin Marcia Reid | Data management appliance |
JP4323745B2 (ja) * | 2002-01-15 | 2009-09-02 | 三洋電機株式会社 | 記憶装置 |
CA2370601A1 (en) * | 2002-02-05 | 2003-08-05 | Ibm Canada Limited-Ibm Canada Limitee | Optimizing log usage for temporary objects |
US6895529B2 (en) * | 2002-02-13 | 2005-05-17 | Bull Hn Information Systems, Inc. | Rebuilding “in-doubt” states reliably after multiple system failures in a data processing system performing two-phase transaction processing |
JP3971941B2 (ja) | 2002-03-05 | 2007-09-05 | 三洋電機株式会社 | データ記憶装置 |
US6850957B2 (en) * | 2002-03-12 | 2005-02-01 | Hitachi, Ltd. | Information system and data access method |
US6993539B2 (en) | 2002-03-19 | 2006-01-31 | Network Appliance, Inc. | System and method for determining changes in two snapshots and for transmitting changes to destination snapshot |
US6895413B2 (en) * | 2002-03-22 | 2005-05-17 | Network Appliance, Inc. | System and method for performing an on-line check of a file system |
US7155464B2 (en) * | 2002-03-29 | 2006-12-26 | Panasas, Inc. | Recovering and checking large file systems in an object-based data storage system |
US6993634B2 (en) * | 2002-04-29 | 2006-01-31 | Intel Corporation | Active tracking and retrieval of shared memory resource information |
US7546365B2 (en) * | 2002-04-30 | 2009-06-09 | Canon Kabushiki Kaisha | Network device management system and method of controlling same |
US7546364B2 (en) * | 2002-05-16 | 2009-06-09 | Emc Corporation | Replication of remote copy data for internet protocol (IP) transmission |
WO2003098578A1 (en) * | 2002-05-17 | 2003-11-27 | Xanavi Informatics Corporation | Map data product, map data processing program product, map data processing method, and map data processing device |
US7073038B2 (en) * | 2002-05-22 | 2006-07-04 | Storage Technology Corporation | Apparatus and method for implementing dynamic structure level pointers |
US7249152B2 (en) * | 2002-05-24 | 2007-07-24 | Oracle International Corporation | Dynamic disk space management by multiple database server instances in a cluster configuration |
US7484216B2 (en) * | 2002-06-18 | 2009-01-27 | Microsoft Corporation | System and method for decoupling space reservation in transactional logging systems |
JP4387087B2 (ja) * | 2002-07-25 | 2009-12-16 | 三洋電機株式会社 | データ記憶装置 |
US6934822B2 (en) * | 2002-08-06 | 2005-08-23 | Emc Corporation | Organization of multiple snapshot copies in a data storage system |
GB2410106B (en) | 2002-09-09 | 2006-09-13 | Commvault Systems Inc | Dynamic storage device pooling in a computer system |
GB2409553B (en) | 2002-09-16 | 2007-04-04 | Commvault Systems Inc | System and method for optimizing storage operations |
EP1403764A1 (en) * | 2002-09-26 | 2004-03-31 | Sap Ag | Method and computer system for dynamic data type enrichment |
KR100484485B1 (ko) * | 2002-10-01 | 2005-04-20 | 한국전자통신연구원 | 비휘발성 메모리에의 데이터 저장 방법 및 장치 |
US7707184B1 (en) * | 2002-10-09 | 2010-04-27 | Netapp, Inc. | System and method for snapshot full backup and hard recovery of a database |
US7340486B1 (en) * | 2002-10-10 | 2008-03-04 | Network Appliance, Inc. | System and method for file system snapshot of a virtual logical disk |
US7024583B2 (en) * | 2002-10-31 | 2006-04-04 | Hewlett-Packard Development Company, L.P. | Method and apparatus for detecting file system corruption |
JP4186602B2 (ja) * | 2002-12-04 | 2008-11-26 | 株式会社日立製作所 | ジャーナルログを利用した更新データ書込方法 |
US7428751B2 (en) * | 2002-12-05 | 2008-09-23 | Microsoft Corporation | Secure recovery in a serverless distributed file system |
JP4290975B2 (ja) * | 2002-12-19 | 2009-07-08 | 株式会社日立製作所 | データベース処理方法及び装置並びにその処理プログラム及びディザスタリカバリ方法及びシステム |
JP4393762B2 (ja) * | 2002-12-19 | 2010-01-06 | 株式会社日立製作所 | データベース処理方法及び装置並びにその処理プログラム |
US7660790B1 (en) * | 2005-02-24 | 2010-02-09 | Symantec Operating Corporation | Method and apparatus for utilizing a file change log |
US7890469B1 (en) * | 2002-12-30 | 2011-02-15 | Symantec Operating Corporation | File change log |
JP2004213435A (ja) * | 2003-01-07 | 2004-07-29 | Hitachi Ltd | 記憶装置システム |
JP3974538B2 (ja) | 2003-02-20 | 2007-09-12 | 株式会社日立製作所 | 情報処理システム |
JP2004259079A (ja) * | 2003-02-27 | 2004-09-16 | Hitachi Ltd | データ処理システム |
JP2004265110A (ja) * | 2003-02-28 | 2004-09-24 | Hitachi Ltd | メタデータ配置方法、プログラムおよびディスク装置 |
US7769722B1 (en) | 2006-12-08 | 2010-08-03 | Emc Corporation | Replication and restoration of multiple data storage object types in a data network |
JP4165747B2 (ja) * | 2003-03-20 | 2008-10-15 | 株式会社日立製作所 | 記憶システム、制御装置及び制御装置のプログラム |
JP4301849B2 (ja) * | 2003-03-31 | 2009-07-22 | 株式会社日立製作所 | 情報処理方法及びその実施システム並びにその処理プログラム並びにディザスタリカバリ方法およびシステム並びにその処理を実施する記憶装置およびその制御処理方法 |
CA2520498C (en) | 2003-04-03 | 2012-09-25 | Commvault Systems, Inc. | System and method for dynamically performing storage operations in a computer network |
GB0308262D0 (en) * | 2003-04-10 | 2003-05-14 | Ibm | Recovery from failures within data processing systems |
US7039773B2 (en) * | 2003-04-29 | 2006-05-02 | Oracle International Corporation | Method and mechanism for efficient implementation of ordered records |
US7089383B2 (en) * | 2003-06-06 | 2006-08-08 | Hewlett-Packard Development Company, L.P. | State machine and system for data redundancy |
US7653699B1 (en) * | 2003-06-12 | 2010-01-26 | Symantec Operating Corporation | System and method for partitioning a file system for enhanced availability and scalability |
US7454569B2 (en) | 2003-06-25 | 2008-11-18 | Commvault Systems, Inc. | Hierarchical system and method for performing storage operations in a computer network |
US7567991B2 (en) * | 2003-06-25 | 2009-07-28 | Emc Corporation | Replication of snapshot using a file system copy differential |
US7694086B1 (en) * | 2003-06-30 | 2010-04-06 | Symantec Operating Corporation | Method and system for incremental backup of data volumes |
US7379925B2 (en) * | 2003-07-25 | 2008-05-27 | New York University | Logic arrangement, data structure, system and method for multilinear representation of multimodal data ensembles for synthesis, rotation and compression |
US7406487B1 (en) * | 2003-08-29 | 2008-07-29 | Symantec Operating Corporation | Method and system for performing periodic replication using a log |
US7587568B2 (en) * | 2003-09-05 | 2009-09-08 | Oracel International Corporation | Method and system of reclaiming storage space in data storage systems |
US7266653B2 (en) * | 2003-09-29 | 2007-09-04 | International Business Machines Corporation | Remote data mirroring with acknowledgment upon writing copied data to volatile cache memory |
US7085902B2 (en) * | 2003-09-29 | 2006-08-01 | International Business Machines Corporation | Storage system with symmetrical mirroring |
US7010721B2 (en) * | 2003-09-29 | 2006-03-07 | International Business Machines Corporation | File system journal management |
US20050081099A1 (en) * | 2003-10-09 | 2005-04-14 | International Business Machines Corporation | Method and apparatus for ensuring valid journaled file system metadata during a backup operation |
US7181647B2 (en) | 2003-10-15 | 2007-02-20 | International Business Machines Corporation | Error tracking method and system |
US7328376B2 (en) * | 2003-10-31 | 2008-02-05 | Sun Microsystems, Inc. | Error reporting to diagnostic engines based on their diagnostic capabilities |
US7401093B1 (en) * | 2003-11-10 | 2008-07-15 | Network Appliance, Inc. | System and method for managing file data during consistency points |
US7721062B1 (en) | 2003-11-10 | 2010-05-18 | Netapp, Inc. | Method for detecting leaked buffer writes across file system consistency points |
US7546324B2 (en) | 2003-11-13 | 2009-06-09 | Commvault Systems, Inc. | Systems and methods for performing storage operations using network attached storage |
CA2548542C (en) | 2003-11-13 | 2011-08-09 | Commvault Systems, Inc. | System and method for performing a snapshot and for restoring data |
CA2544063C (en) | 2003-11-13 | 2013-09-10 | Commvault Systems, Inc. | System and method for combining data streams in pilelined storage operations in a storage network |
US7440982B2 (en) * | 2003-11-13 | 2008-10-21 | Commvault Systems, Inc. | System and method for stored data archive verification |
US7613748B2 (en) | 2003-11-13 | 2009-11-03 | Commvault Systems, Inc. | Stored data reverification management system and method |
US7228456B2 (en) * | 2003-12-01 | 2007-06-05 | Emc Corporation | Data recovery for virtual ordered writes for multiple storage devices |
US7730489B1 (en) * | 2003-12-10 | 2010-06-01 | Oracle America, Inc. | Horizontally scalable and reliable distributed transaction management in a clustered application server environment |
JP2005189995A (ja) * | 2003-12-24 | 2005-07-14 | Hitachi Ltd | ファイル授受プロセス管理方法、および、ファイル授受プロセス可視化方法、ならびに、ファイル授受システムにおけるファイル授受プロセス管理装置、および、ユーザ端末 |
JP2007518199A (ja) * | 2004-01-13 | 2007-07-05 | ニューヨーク・ユニバーシティ | 多重線形独立要素分析を使用した画像認識の方法、システム、記憶媒体、及びデータ構造 |
JP4477370B2 (ja) * | 2004-01-30 | 2010-06-09 | 株式会社日立製作所 | データ処理システム |
JP4551096B2 (ja) * | 2004-02-03 | 2010-09-22 | 株式会社日立製作所 | ストレージサブシステム |
US7130957B2 (en) * | 2004-02-10 | 2006-10-31 | Sun Microsystems, Inc. | Storage system structure for storing relational cache metadata |
US7130956B2 (en) * | 2004-02-10 | 2006-10-31 | Sun Microsystems, Inc. | Storage system including hierarchical cache metadata |
US7346620B2 (en) * | 2004-02-12 | 2008-03-18 | International Business Machines Corporation | Adjusting log size in a static logical volume |
WO2005086001A1 (en) * | 2004-02-27 | 2005-09-15 | Incipient, Inc. | Distributed asynchronous ordered replication |
JP4452533B2 (ja) * | 2004-03-19 | 2010-04-21 | 株式会社日立製作所 | システムおよび記憶装置システム |
US7698699B2 (en) * | 2004-03-22 | 2010-04-13 | Microsoft Corporation | Computing device with relatively limited storage space and operating/file system thereof |
US7647358B2 (en) * | 2004-03-22 | 2010-01-12 | Microsoft Corporation | Computing device with relatively limited storage space and operating/file system thereof |
US8069192B2 (en) * | 2004-03-22 | 2011-11-29 | Microsoft Corporation | Computing device with relatively limited storage space and operating / file system thereof |
US7130971B2 (en) * | 2004-03-30 | 2006-10-31 | Hitachi, Ltd. | Assuring genuineness of data stored on a storage device |
US7343459B2 (en) | 2004-04-30 | 2008-03-11 | Commvault Systems, Inc. | Systems and methods for detecting & mitigating storage risks |
US8266406B2 (en) | 2004-04-30 | 2012-09-11 | Commvault Systems, Inc. | System and method for allocation of organizational resources |
US20050246362A1 (en) * | 2004-05-03 | 2005-11-03 | Borland Devin P | System and method for dynamci log compression in a file system |
US20050256859A1 (en) * | 2004-05-13 | 2005-11-17 | Internation Business Machines Corporation | System, application and method of providing application programs continued access to frozen file systems |
US8090691B2 (en) * | 2004-08-13 | 2012-01-03 | Computer Associates Think, Inc. | System and method for variable block logging with log-ahead buffers |
US7711721B2 (en) * | 2004-09-01 | 2010-05-04 | International Business Machines Corporation | Apparatus, system, and method for suspending a request during file server serialization reinitialization |
US7627578B2 (en) * | 2004-09-01 | 2009-12-01 | International Business Machines Corporation | Apparatus, system, and method for file system serialization reinitialization |
US7490088B2 (en) * | 2004-09-01 | 2009-02-10 | International Business Machines Corporation | Apparatus, system, and method for preserving connection/position data integrity during file server serialization reinitialization |
US7496642B2 (en) * | 2004-09-29 | 2009-02-24 | International Business Machines Corporation | Adaptive vicinity prefetching for filesystem metadata |
US8918677B1 (en) * | 2004-09-30 | 2014-12-23 | Emc Corporation | Methods and apparatus for performing data validation in a network management application |
CN101077008A (zh) * | 2004-10-13 | 2007-11-21 | 韩国电子通信研究院 | 扩展多媒体文件结构以及多媒体文件生成方法和多媒体文件执行方法 |
US9080894B2 (en) * | 2004-10-20 | 2015-07-14 | Electro Industries/Gauge Tech | Intelligent electronic device for receiving and sending data at high speeds over a network |
US7304586B2 (en) | 2004-10-20 | 2007-12-04 | Electro Industries / Gauge Tech | On-line web accessed energy meter |
US8185555B2 (en) * | 2004-10-22 | 2012-05-22 | International Business Machines Corporation | Model extension framework |
US20060101091A1 (en) * | 2004-10-22 | 2006-05-11 | International Business Machines Corporation | Recovering references in an extended model |
US7747733B2 (en) | 2004-10-25 | 2010-06-29 | Electro Industries/Gauge Tech | Power meter having multiple ethernet ports |
US7403945B2 (en) * | 2004-11-01 | 2008-07-22 | Sybase, Inc. | Distributed database system providing data and space management methodology |
US7499954B2 (en) * | 2004-11-01 | 2009-03-03 | International Business Machines Corporation | Consistent reintegration of a failed primary instance |
US8566326B2 (en) * | 2004-11-05 | 2013-10-22 | Oracle International Corporation | High-performance log-based processing |
US7975061B1 (en) | 2004-11-05 | 2011-07-05 | Commvault Systems, Inc. | System and method for performing multistream storage operations |
US7536291B1 (en) * | 2004-11-08 | 2009-05-19 | Commvault Systems, Inc. | System and method to support simulated storage operations |
US7716260B2 (en) * | 2004-12-16 | 2010-05-11 | Oracle International Corporation | Techniques for transaction semantics for a database server performing file operations |
US7627574B2 (en) * | 2004-12-16 | 2009-12-01 | Oracle International Corporation | Infrastructure for performing file operations by a database server |
US20060136508A1 (en) * | 2004-12-16 | 2006-06-22 | Sam Idicula | Techniques for providing locks for file operations in a database management system |
US7548918B2 (en) | 2004-12-16 | 2009-06-16 | Oracle International Corporation | Techniques for maintaining consistency for different requestors of files in a database management system |
JP4681868B2 (ja) * | 2004-12-16 | 2011-05-11 | キヤノン株式会社 | 情報処理装置及びその制御方法、コンピュータプログラム及び記憶媒体 |
US7774304B2 (en) * | 2005-01-31 | 2010-08-10 | International Business Machines Corporation | Method, apparatus and program storage device for managing buffers during online reorganization |
US20080162591A1 (en) * | 2005-03-10 | 2008-07-03 | Hewlett-Packard Development Company, L.P. | Method of Logging Transactions and a Method of Reversing a Transaction |
US20060218200A1 (en) * | 2005-03-24 | 2006-09-28 | International Business Machines Corporation | Application of log records by storage servers |
US20060218204A1 (en) * | 2005-03-25 | 2006-09-28 | International Business Machines Corporation | Log stream validation in log shipping data replication systems |
US8590044B2 (en) * | 2005-04-14 | 2013-11-19 | International Business Machines Corporation | Selective virus scanning system and method |
US8145686B2 (en) * | 2005-05-06 | 2012-03-27 | Microsoft Corporation | Maintenance of link level consistency between database and file system |
US7613743B1 (en) * | 2005-06-10 | 2009-11-03 | Apple Inc. | Methods and apparatuses for data protection |
US20060282471A1 (en) * | 2005-06-13 | 2006-12-14 | Mark Timothy W | Error checking file system metadata while the file system remains available |
US8224837B2 (en) * | 2005-06-29 | 2012-07-17 | Oracle International Corporation | Method and mechanism for supporting virtual content in performing file operations at a RDBMS |
US7809675B2 (en) * | 2005-06-29 | 2010-10-05 | Oracle International Corporation | Sharing state information among a plurality of file operation servers |
US7873683B2 (en) * | 2005-07-01 | 2011-01-18 | Qnx Software Systems Gmbh & Co. Kg | File system having transaction record coalescing |
US7809777B2 (en) * | 2005-07-01 | 2010-10-05 | Qnx Software Systems Gmbh & Co. Kg | File system having deferred verification of data integrity |
US8959125B2 (en) | 2005-07-01 | 2015-02-17 | 226008 Ontario Inc. | File system having inverted hierarchical structure |
US7970803B2 (en) | 2005-07-01 | 2011-06-28 | Qnx Software Systems Gmbh & Co. Kg | Optimized startup verification of file system integrity |
CA2512385C (en) * | 2005-07-08 | 2008-11-04 | Marathon Marine Manufacturing (1996) Ltd. | Cargo deck for a truck box |
US7653682B2 (en) * | 2005-07-22 | 2010-01-26 | Netapp, Inc. | Client failure fencing mechanism for fencing network file system data in a host-cluster environment |
US7865962B2 (en) * | 2005-08-15 | 2011-01-04 | Microsoft Corporation | Multi-level sequence number based lazy invalidation |
US7885965B2 (en) * | 2005-08-17 | 2011-02-08 | Oracle America, Inc. | Application-responsive markup language parser |
US7519859B2 (en) * | 2005-08-30 | 2009-04-14 | International Business Machines Corporation | Fault recovery for transaction server |
US7496609B2 (en) * | 2005-09-01 | 2009-02-24 | Microsoft Corporation | Dirty shutdown recovery of file system filters |
US7552147B2 (en) * | 2005-09-02 | 2009-06-23 | International Business Machines Corporation | System and method for minimizing data outage time and data loss while handling errors detected during recovery |
US9047344B2 (en) * | 2005-10-17 | 2015-06-02 | International Business Machines Corporation | Guaranteeing data and metadata referential integrity in content management archival solutions |
US7620661B2 (en) * | 2005-10-27 | 2009-11-17 | International Business Machines Corporation | Method for improving the performance of database loggers using agent coordination |
EP1949214B1 (en) * | 2005-10-28 | 2012-12-19 | Network Appliance, Inc. | System and method for optimizing multi-pathing support in a distributed storage system environment |
JP2007122643A (ja) * | 2005-10-31 | 2007-05-17 | Toshiba Corp | データ検索システム、メタデータ同期方法およびデータ検索装置 |
US7467169B2 (en) * | 2005-10-31 | 2008-12-16 | Network Appliance, Inc. | Circular and bi-directional mirroring of flexible volumes |
US7490096B2 (en) * | 2005-11-04 | 2009-02-10 | Sun Microsystems, Inc. | Automatic intent log testing |
JP4945118B2 (ja) * | 2005-11-14 | 2012-06-06 | 株式会社日立製作所 | 記憶容量を効率的に使用する計算機システム |
US7801864B2 (en) * | 2005-11-28 | 2010-09-21 | Commvault Systems, Inc. | Systems and methods for using metadata to enhance data identification operations |
US7822749B2 (en) * | 2005-11-28 | 2010-10-26 | Commvault Systems, Inc. | Systems and methods for classifying and transferring information in a storage network |
US7765187B2 (en) * | 2005-11-29 | 2010-07-27 | Emc Corporation | Replication of a consistency group of data storage objects from servers in a data network |
US7610304B2 (en) * | 2005-12-05 | 2009-10-27 | Oracle International Corporation | Techniques for performing file operations involving a link at a database management system |
CA2632935C (en) | 2005-12-19 | 2014-02-04 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US7617262B2 (en) * | 2005-12-19 | 2009-11-10 | Commvault Systems, Inc. | Systems and methods for monitoring application data in a data replication system |
US7543125B2 (en) * | 2005-12-19 | 2009-06-02 | Commvault Systems, Inc. | System and method for performing time-flexible calendric storage operations |
US8572330B2 (en) | 2005-12-19 | 2013-10-29 | Commvault Systems, Inc. | Systems and methods for granular resource management in a storage network |
US20110010518A1 (en) | 2005-12-19 | 2011-01-13 | Srinivas Kavuri | Systems and Methods for Migrating Components in a Hierarchical Storage Network |
US7636743B2 (en) * | 2005-12-19 | 2009-12-22 | Commvault Systems, Inc. | Pathname translation in a data replication system |
US8930496B2 (en) | 2005-12-19 | 2015-01-06 | Commvault Systems, Inc. | Systems and methods of unified reconstruction in storage systems |
US8661216B2 (en) * | 2005-12-19 | 2014-02-25 | Commvault Systems, Inc. | Systems and methods for migrating components in a hierarchical storage network |
US7962709B2 (en) * | 2005-12-19 | 2011-06-14 | Commvault Systems, Inc. | Network redirector systems and methods for performing data replication |
US7620710B2 (en) | 2005-12-19 | 2009-11-17 | Commvault Systems, Inc. | System and method for performing multi-path storage operations |
US7651593B2 (en) | 2005-12-19 | 2010-01-26 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US7617253B2 (en) * | 2005-12-19 | 2009-11-10 | Commvault Systems, Inc. | Destination systems and methods for performing data replication |
US7606844B2 (en) | 2005-12-19 | 2009-10-20 | Commvault Systems, Inc. | System and method for performing replication copy storage operations |
US20200257596A1 (en) | 2005-12-19 | 2020-08-13 | Commvault Systems, Inc. | Systems and methods of unified reconstruction in storage systems |
US7693864B1 (en) * | 2006-01-03 | 2010-04-06 | Netapp, Inc. | System and method for quickly determining changed metadata using persistent consistency point image differencing |
US7774391B1 (en) * | 2006-03-30 | 2010-08-10 | Vmware, Inc. | Method of universal file access for a heterogeneous computing environment |
US7734648B2 (en) * | 2006-04-11 | 2010-06-08 | Sap Ag | Update manager for database system |
US7395377B2 (en) * | 2006-04-20 | 2008-07-01 | International Business Machines Corporation | Method and system for adaptive back-off and advance for non-volatile storage (NVS) occupancy level management |
US7716420B2 (en) * | 2006-04-28 | 2010-05-11 | Network Appliance, Inc. | Methods of converting traditional volumes into flexible volumes |
US7636829B2 (en) * | 2006-05-02 | 2009-12-22 | Intel Corporation | System and method for allocating and deallocating memory within transactional code |
US7797692B1 (en) * | 2006-05-12 | 2010-09-14 | Google Inc. | Estimating a dominant resource used by a computer program |
US7478210B2 (en) * | 2006-06-09 | 2009-01-13 | Intel Corporation | Memory reclamation with optimistic concurrency |
US7797329B2 (en) * | 2006-06-09 | 2010-09-14 | Oracle America Inc. | Method and system for enabling a synchronization-free and parallel commit phase |
US7647360B2 (en) * | 2006-06-19 | 2010-01-12 | Hitachi, Ltd. | System and method for managing a consistency among volumes in a continuous data protection environment |
US7624129B2 (en) * | 2006-06-30 | 2009-11-24 | Microsoft Corporation | Dual logging of changes to a user preference in a computer device |
US7865471B1 (en) * | 2006-06-30 | 2011-01-04 | Symantec Operating Corporation | Apparatus and method for accelerating database recovery |
US8726242B2 (en) * | 2006-07-27 | 2014-05-13 | Commvault Systems, Inc. | Systems and methods for continuous data replication |
US8015215B2 (en) * | 2006-08-24 | 2011-09-06 | Oracle America, Inc. | Delegation in a file system with distributed components |
US7908276B2 (en) | 2006-08-25 | 2011-03-15 | Qnx Software Systems Gmbh & Co. Kg | Filesystem having a filename cache |
US20080059510A1 (en) * | 2006-08-31 | 2008-03-06 | Daniel Cardamore | Multimedia system framework having layer consolidating access to multiple media devices |
US8566503B2 (en) * | 2006-08-25 | 2013-10-22 | Qnx Software Systems Limited | Multimedia filesystem having unified representation of content on diverse multimedia devices |
US7613946B2 (en) * | 2006-09-14 | 2009-11-03 | International Business Machines Corporation | Apparatus, system, and method for recovering a multivolume data set |
US7882077B2 (en) | 2006-10-17 | 2011-02-01 | Commvault Systems, Inc. | Method and system for offline indexing of content and classifying stored data |
US7765361B2 (en) * | 2006-11-21 | 2010-07-27 | Microsoft Corporation | Enforced transaction system recoverability on media without write-through |
US8370442B2 (en) | 2008-08-29 | 2013-02-05 | Commvault Systems, Inc. | Method and system for leveraging identified changes to a mail server |
US8706833B1 (en) | 2006-12-08 | 2014-04-22 | Emc Corporation | Data storage server having common replication architecture for multiple storage object types |
US7752180B1 (en) * | 2006-12-12 | 2010-07-06 | Network Appliance, Inc. | File system group consistency point |
US20080147747A1 (en) * | 2006-12-14 | 2008-06-19 | Dan Cardamore | Media system having synchronization with preemptive prioritization of synchronization order |
US20080147878A1 (en) * | 2006-12-15 | 2008-06-19 | Rajiv Kottomtharayil | System and methods for granular resource management in a storage network |
US8677091B2 (en) * | 2006-12-18 | 2014-03-18 | Commvault Systems, Inc. | Writing data and storage system specific metadata to network attached storage device |
KR101354152B1 (ko) * | 2006-12-18 | 2014-01-27 | 삼성전자주식회사 | 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치 |
US7599969B2 (en) * | 2006-12-20 | 2009-10-06 | International Business Machines Corporation | Method and system for scheduling workload in databases |
US8312323B2 (en) | 2006-12-22 | 2012-11-13 | Commvault Systems, Inc. | Systems and methods for remote monitoring in a computer network and reporting a failed migration operation without accessing the data being moved |
US20080228771A1 (en) | 2006-12-22 | 2008-09-18 | Commvault Systems, Inc. | Method and system for searching stored data |
US8880478B2 (en) * | 2006-12-28 | 2014-11-04 | International Business Machines Corporation | Scan-free archiving |
US8918427B1 (en) | 2006-12-29 | 2014-12-23 | Symantec Operating Corporation | Virtualization of file input/output operations |
US8301673B2 (en) * | 2006-12-29 | 2012-10-30 | Netapp, Inc. | System and method for performing distributed consistency verification of a clustered file system |
US7818302B2 (en) * | 2007-03-09 | 2010-10-19 | Emc Corporation | System and method for performing file system checks on an active file system |
US8290808B2 (en) | 2007-03-09 | 2012-10-16 | Commvault Systems, Inc. | System and method for automating customer-validated statement of work for a data storage environment |
US7660570B2 (en) * | 2007-03-12 | 2010-02-09 | John Mezzalingua Associates, Inc. | Active step attenuator |
US8219821B2 (en) | 2007-03-27 | 2012-07-10 | Netapp, Inc. | System and method for signature based data container recognition |
US10845399B2 (en) | 2007-04-03 | 2020-11-24 | Electro Industries/Gaugetech | System and method for performing data transfers in an intelligent electronic device |
US8219749B2 (en) * | 2007-04-27 | 2012-07-10 | Netapp, Inc. | System and method for efficient updates of sequential block storage |
US7882304B2 (en) * | 2007-04-27 | 2011-02-01 | Netapp, Inc. | System and method for efficient updates of sequential block storage |
US7827350B1 (en) | 2007-04-27 | 2010-11-02 | Netapp, Inc. | Method and system for promoting a snapshot in a distributed file system |
US8819080B2 (en) * | 2007-06-13 | 2014-08-26 | The Boeing Company | System and method for collection, retrieval, and distribution of data |
US7913075B2 (en) * | 2007-07-03 | 2011-03-22 | Pmc-Sierra, Inc. | Systems and methods for automatic provisioning of storage and operating system installation from pre-existing iSCSI target |
US8468212B2 (en) * | 2007-08-08 | 2013-06-18 | Silicon Image, Inc. | Network repository for metadata |
US7805632B1 (en) * | 2007-09-24 | 2010-09-28 | Net App, Inc. | Storage system and method for rapidly recovering from a system failure |
US8140483B2 (en) * | 2007-09-28 | 2012-03-20 | International Business Machines Corporation | Transaction log management |
US7996636B1 (en) | 2007-11-06 | 2011-08-09 | Netapp, Inc. | Uniquely identifying block context signatures in a storage volume hierarchy |
US8086564B2 (en) * | 2007-12-12 | 2011-12-27 | Oracle International Corporation | Techniques for the logical replication of high-level procedures |
US7836174B2 (en) * | 2008-01-30 | 2010-11-16 | Commvault Systems, Inc. | Systems and methods for grid-based data scanning |
US8296301B2 (en) | 2008-01-30 | 2012-10-23 | Commvault Systems, Inc. | Systems and methods for probabilistic data classification |
US8725986B1 (en) | 2008-04-18 | 2014-05-13 | Netapp, Inc. | System and method for volume block number to disk block number mapping |
US8145931B2 (en) * | 2008-05-27 | 2012-03-27 | Sharp Laboratories Of America, Inc. | Imaging device with adaptive power saving behavior and method for use thereon |
US20090327601A1 (en) * | 2008-06-30 | 2009-12-31 | Shachar Fienblit | Asynchronous data mirroring with look-ahead synchronization record |
US8190575B1 (en) * | 2008-08-27 | 2012-05-29 | Western Digital Technologies, Inc. | Disk drive maintaining multiple copies of code segments |
EP2164002A1 (en) * | 2008-09-16 | 2010-03-17 | Siemens Aktiengesellschaft | Method for archiving data stored in a database by partition rotation |
US9178842B2 (en) * | 2008-11-05 | 2015-11-03 | Commvault Systems, Inc. | Systems and methods for monitoring messaging applications for compliance with a policy |
US9495382B2 (en) | 2008-12-10 | 2016-11-15 | Commvault Systems, Inc. | Systems and methods for performing discrete data replication |
US8204859B2 (en) | 2008-12-10 | 2012-06-19 | Commvault Systems, Inc. | Systems and methods for managing replicated database data |
US7930588B2 (en) * | 2009-01-28 | 2011-04-19 | International Business Machines Corporation | Deferred volume metadata invalidation |
US8793223B1 (en) | 2009-02-09 | 2014-07-29 | Netapp, Inc. | Online data consistency checking in a network storage system with optional committal of remedial changes |
US8078582B2 (en) * | 2009-04-06 | 2011-12-13 | Microsoft Corporation | Data change ordering in multi-log based replication |
US8364644B1 (en) * | 2009-04-22 | 2013-01-29 | Network Appliance, Inc. | Exclusion of data from a persistent point-in-time image |
US20100318746A1 (en) * | 2009-06-12 | 2010-12-16 | Seakr Engineering, Incorporated | Memory change track logging |
US8392386B2 (en) | 2009-08-05 | 2013-03-05 | International Business Machines Corporation | Tracking file contents |
US9201684B2 (en) * | 2009-08-28 | 2015-12-01 | International Business Machines Corporation | Aiding resolution of a transaction |
US9110919B2 (en) * | 2009-10-30 | 2015-08-18 | Symantec Corporation | Method for quickly identifying data residing on a volume in a multivolume file system |
WO2011082113A1 (en) | 2009-12-31 | 2011-07-07 | Commvault Systems, Inc. | Asynchronous methods of data classification using change journals and other data structures |
US8402205B2 (en) * | 2010-03-18 | 2013-03-19 | Seagate Technology Llc | Multi-tiered metadata scheme for a data storage array |
US8504517B2 (en) | 2010-03-29 | 2013-08-06 | Commvault Systems, Inc. | Systems and methods for selective data replication |
US8725698B2 (en) | 2010-03-30 | 2014-05-13 | Commvault Systems, Inc. | Stub file prioritization in a data replication system |
US8352422B2 (en) | 2010-03-30 | 2013-01-08 | Commvault Systems, Inc. | Data restore systems and methods in a replication environment |
US8504515B2 (en) | 2010-03-30 | 2013-08-06 | Commvault Systems, Inc. | Stubbing systems and methods in a data replication environment |
US8671074B2 (en) | 2010-04-12 | 2014-03-11 | Microsoft Corporation | Logical replication in clustered database system with adaptive cloning |
US8315991B2 (en) * | 2010-04-20 | 2012-11-20 | International Business Machines Corporation | Detecting inadvertent or malicious data corruption in storage subsystems and recovering data |
US9268832B1 (en) * | 2010-05-18 | 2016-02-23 | Netapp, Inc. | Sorting a data set by using a limited amount of memory in a processing system |
US8572038B2 (en) | 2010-05-28 | 2013-10-29 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US11449394B2 (en) | 2010-06-04 | 2022-09-20 | Commvault Systems, Inc. | Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources |
US8504526B2 (en) | 2010-06-04 | 2013-08-06 | Commvault Systems, Inc. | Failover systems and methods for performing backup operations |
US8352786B2 (en) * | 2010-07-20 | 2013-01-08 | International Business Machines Corporation | Compressed replay buffer |
US8954664B1 (en) * | 2010-10-01 | 2015-02-10 | Western Digital Technologies, Inc. | Writing metadata files on a disk |
US8756361B1 (en) | 2010-10-01 | 2014-06-17 | Western Digital Technologies, Inc. | Disk drive modifying metadata cached in a circular buffer when a write operation is aborted |
US9268811B1 (en) * | 2010-10-25 | 2016-02-23 | Symantec Corporation | Replay of writes in replication log |
US9009430B2 (en) * | 2010-12-02 | 2015-04-14 | International Business Machines Corporation | Restoration of data from a backup storage volume |
US9021198B1 (en) | 2011-01-20 | 2015-04-28 | Commvault Systems, Inc. | System and method for sharing SAN storage |
US8719264B2 (en) | 2011-03-31 | 2014-05-06 | Commvault Systems, Inc. | Creating secondary copies of data based on searches for content |
US9767268B2 (en) | 2011-04-20 | 2017-09-19 | International Business Machines Corporation | Optimizing a compiled access control table in a content management system |
US8612390B2 (en) * | 2011-05-02 | 2013-12-17 | Microsoft Corporation | Lightweight caching of transaction log for sequential access |
US20170192705A1 (en) * | 2011-05-09 | 2017-07-06 | International Business Machines Corporation | Data formats of self-contained audit objects |
US8554726B2 (en) * | 2011-06-01 | 2013-10-08 | Clustrix, Inc. | Systems and methods for reslicing data in a relational database |
US9294564B2 (en) | 2011-06-30 | 2016-03-22 | Amazon Technologies, Inc. | Shadowing storage gateway |
US8756382B1 (en) | 2011-06-30 | 2014-06-17 | Western Digital Technologies, Inc. | Method for file based shingled data storage utilizing multiple media types |
US8806588B2 (en) | 2011-06-30 | 2014-08-12 | Amazon Technologies, Inc. | Storage gateway activation process |
US8832039B1 (en) | 2011-06-30 | 2014-09-09 | Amazon Technologies, Inc. | Methods and apparatus for data restore and recovery from a remote data store |
US8706834B2 (en) | 2011-06-30 | 2014-04-22 | Amazon Technologies, Inc. | Methods and apparatus for remotely updating executing processes |
US10754813B1 (en) * | 2011-06-30 | 2020-08-25 | Amazon Technologies, Inc. | Methods and apparatus for block storage I/O operations in a storage gateway |
US8793343B1 (en) | 2011-08-18 | 2014-07-29 | Amazon Technologies, Inc. | Redundant storage gateways |
US8789208B1 (en) | 2011-10-04 | 2014-07-22 | Amazon Technologies, Inc. | Methods and apparatus for controlling snapshot exports |
US9183245B2 (en) * | 2011-11-07 | 2015-11-10 | Sap Se | Implicit group commit when writing database log entries |
US9635132B1 (en) | 2011-12-15 | 2017-04-25 | Amazon Technologies, Inc. | Service and APIs for remote volume-based block storage |
US20130160022A1 (en) * | 2011-12-19 | 2013-06-20 | International Business Machines Corporation | Transaction manager for negotiating large transactions |
US8612706B1 (en) | 2011-12-21 | 2013-12-17 | Western Digital Technologies, Inc. | Metadata recovery in a disk drive |
US8688703B1 (en) * | 2011-12-22 | 2014-04-01 | Emc Corporation | Metadata cache supporting multiple heterogeneous systems |
US9135123B1 (en) * | 2011-12-28 | 2015-09-15 | Emc Corporation | Managing global data caches for file system |
US9223805B2 (en) * | 2012-01-30 | 2015-12-29 | Memsql, Inc. | Durability implementation plan in an in-memory database system |
CN102629250A (zh) * | 2012-02-28 | 2012-08-08 | 杭州丰城信息技术有限公司 | 一种内存数据库重做日志文件的恢复方法 |
US9471578B2 (en) | 2012-03-07 | 2016-10-18 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9298715B2 (en) | 2012-03-07 | 2016-03-29 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
EP2783288A1 (en) * | 2012-03-15 | 2014-10-01 | Hitachi, Ltd. | Storage system and data management method |
US9342537B2 (en) | 2012-04-23 | 2016-05-17 | Commvault Systems, Inc. | Integrated snapshot interface for a data storage system |
US8892523B2 (en) | 2012-06-08 | 2014-11-18 | Commvault Systems, Inc. | Auto summarization of content |
US9519590B1 (en) * | 2012-06-26 | 2016-12-13 | EMC IP Holding Company LLC | Managing global caches in data storage systems |
US9183200B1 (en) * | 2012-08-02 | 2015-11-10 | Symantec Corporation | Scale up deduplication engine via efficient partitioning |
JP6056453B2 (ja) * | 2012-12-20 | 2017-01-11 | 富士通株式会社 | プログラム、データ管理方法および情報処理装置 |
US20140181396A1 (en) * | 2012-12-20 | 2014-06-26 | Amazon Technologies, Inc. | Virtual tape using a logical data container |
US10013166B2 (en) | 2012-12-20 | 2018-07-03 | Amazon Technologies, Inc. | Virtual tape library system |
US10379988B2 (en) | 2012-12-21 | 2019-08-13 | Commvault Systems, Inc. | Systems and methods for performance monitoring |
US9146928B1 (en) * | 2012-12-31 | 2015-09-29 | Emc Corporation | Techniques for storing metadata of a filesystem in persistent memory |
US9886346B2 (en) | 2013-01-11 | 2018-02-06 | Commvault Systems, Inc. | Single snapshot for multiple agents |
US9336226B2 (en) | 2013-01-11 | 2016-05-10 | Commvault Systems, Inc. | Criteria-based data synchronization management |
US20140222879A1 (en) * | 2013-02-01 | 2014-08-07 | Apple Inc. | Method and system for unmounting an inaccessible network file system |
US9250858B2 (en) * | 2013-02-20 | 2016-02-02 | International Business Machines Corporation | Dual-buffer serialization and consumption of variable-length data records produced by multiple parallel threads |
US9286336B2 (en) * | 2013-03-12 | 2016-03-15 | Sap Se | Unified architecture for hybrid database storage using fragments |
US10706009B2 (en) * | 2013-03-14 | 2020-07-07 | Oracle International Corporation | Techniques to parallelize CPU and IO work of log writes |
US9244775B2 (en) | 2013-03-14 | 2016-01-26 | International Business Machines Corporation | Reducing reading of database logs by persisting long-running transaction data |
US9576012B2 (en) | 2013-03-14 | 2017-02-21 | Oracle International Corporation | Hierarchical tablespace space management |
US9672237B2 (en) | 2013-03-15 | 2017-06-06 | Amazon Technologies, Inc. | System-wide checkpoint avoidance for distributed database systems |
US9501501B2 (en) | 2013-03-15 | 2016-11-22 | Amazon Technologies, Inc. | Log record management |
US11030055B2 (en) | 2013-03-15 | 2021-06-08 | Amazon Technologies, Inc. | Fast crash recovery for distributed database systems |
US10180951B2 (en) * | 2013-03-15 | 2019-01-15 | Amazon Technologies, Inc. | Place snapshots |
US9514007B2 (en) | 2013-03-15 | 2016-12-06 | Amazon Technologies, Inc. | Database system with database engine and separate distributed storage service |
US9229864B1 (en) * | 2013-03-15 | 2016-01-05 | Emc Corporation | Managing metadata synchronization for reducing host system latency in a storage system |
US9483213B1 (en) | 2013-04-29 | 2016-11-01 | Amazon Technologies, Inc. | Virtual media changers |
US10747746B2 (en) | 2013-04-30 | 2020-08-18 | Amazon Technologies, Inc. | Efficient read replicas |
US9483361B2 (en) | 2013-05-08 | 2016-11-01 | Commvault Systems, Inc. | Information management cell with failover management capability |
US9146946B2 (en) * | 2013-05-09 | 2015-09-29 | International Business Machines Corporation | Comparing database performance without benchmark workloads |
US9760596B2 (en) | 2013-05-13 | 2017-09-12 | Amazon Technologies, Inc. | Transaction ordering |
US9208032B1 (en) | 2013-05-15 | 2015-12-08 | Amazon Technologies, Inc. | Managing contingency capacity of pooled resources in multiple availability zones |
US10303564B1 (en) | 2013-05-23 | 2019-05-28 | Amazon Technologies, Inc. | Reduced transaction I/O for log-structured storage systems |
US9047189B1 (en) | 2013-05-28 | 2015-06-02 | Amazon Technologies, Inc. | Self-describing data blocks of a minimum atomic write size for a data store |
US9928285B1 (en) * | 2013-06-25 | 2018-03-27 | EMC IP Holding Company LLC | Optimized cloning for backup to disk |
WO2015050620A2 (en) * | 2013-07-16 | 2015-04-09 | Openpeak Inc. | Method and system for backing up and restoring a virtual file system |
US9923762B1 (en) * | 2013-08-13 | 2018-03-20 | Ca, Inc. | Upgrading an engine when a scenario is running |
US10402374B2 (en) * | 2013-08-26 | 2019-09-03 | Vmware, Inc. | Log-structured storage device format |
US10216949B1 (en) | 2013-09-20 | 2019-02-26 | Amazon Technologies, Inc. | Dynamic quorum membership changes |
US9460008B1 (en) | 2013-09-20 | 2016-10-04 | Amazon Technologies, Inc. | Efficient garbage collection for a log-structured data store |
US10223184B1 (en) | 2013-09-25 | 2019-03-05 | Amazon Technologies, Inc. | Individual write quorums for a log-structured distributed storage system |
US9699017B1 (en) | 2013-09-25 | 2017-07-04 | Amazon Technologies, Inc. | Dynamic utilization of bandwidth for a quorum-based distributed storage system |
US9767178B2 (en) | 2013-10-30 | 2017-09-19 | Oracle International Corporation | Multi-instance redo apply |
US9880933B1 (en) | 2013-11-20 | 2018-01-30 | Amazon Technologies, Inc. | Distributed in-memory buffer cache system using buffer cache nodes |
US9223843B1 (en) | 2013-12-02 | 2015-12-29 | Amazon Technologies, Inc. | Optimized log storage for asynchronous log updates |
CN103778030B (zh) * | 2013-12-30 | 2017-09-22 | 上海晨思电子科技有限公司 | 日志子系统写入方法、错误追踪方法及处理器 |
US9836515B1 (en) * | 2013-12-31 | 2017-12-05 | Veritas Technologies Llc | Systems and methods for adding active volumes to existing replication configurations |
US9753812B2 (en) | 2014-01-24 | 2017-09-05 | Commvault Systems, Inc. | Generating mapping information for single snapshot for multiple applications |
US9639426B2 (en) | 2014-01-24 | 2017-05-02 | Commvault Systems, Inc. | Single snapshot for multiple applications |
US9632874B2 (en) | 2014-01-24 | 2017-04-25 | Commvault Systems, Inc. | Database application backup in single snapshot for multiple applications |
US9495251B2 (en) | 2014-01-24 | 2016-11-15 | Commvault Systems, Inc. | Snapshot readiness checking and reporting |
US9563518B2 (en) | 2014-04-02 | 2017-02-07 | Commvault Systems, Inc. | Information management by a media agent in the absence of communications with a storage manager |
US9396089B2 (en) * | 2014-05-30 | 2016-07-19 | Apple Inc. | Activity tracing diagnostic systems and methods |
WO2016014061A1 (en) * | 2014-07-24 | 2016-01-28 | Hewlett-Packard Development Company, L.P. | Storing metadata |
US9774672B2 (en) | 2014-09-03 | 2017-09-26 | Commvault Systems, Inc. | Consolidated processing of storage-array commands by a snapshot-control media agent |
US10042716B2 (en) | 2014-09-03 | 2018-08-07 | Commvault Systems, Inc. | Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent |
US11144397B2 (en) | 2014-09-12 | 2021-10-12 | Microsoft Technology Licensing, Llc | Data recovery using bitmap data structure |
US9507689B2 (en) * | 2014-09-17 | 2016-11-29 | International Business Machines Corporation | Updating of troubleshooting assistants |
US10922276B2 (en) * | 2014-11-10 | 2021-02-16 | Hewlett Packard Enterprise Development Lp | Online file system check |
US9448731B2 (en) | 2014-11-14 | 2016-09-20 | Commvault Systems, Inc. | Unified snapshot storage management |
US9648105B2 (en) | 2014-11-14 | 2017-05-09 | Commvault Systems, Inc. | Unified snapshot storage management, using an enhanced storage manager and enhanced media agents |
US9959178B2 (en) * | 2014-11-25 | 2018-05-01 | Sap Se | Transactional and parallel log replay for asynchronous table replication |
CN105740303B (zh) | 2014-12-12 | 2019-09-06 | 国际商业机器公司 | 改进的对象存储的方法及装置 |
US9665585B2 (en) | 2015-01-23 | 2017-05-30 | International Business Machines Corporation | Preserving high value entries in an event log |
US9898213B2 (en) | 2015-01-23 | 2018-02-20 | Commvault Systems, Inc. | Scalable auxiliary copy processing using media agent resources |
US9904481B2 (en) | 2015-01-23 | 2018-02-27 | Commvault Systems, Inc. | Scalable auxiliary copy processing in a storage management system using media agent resources |
US9940590B2 (en) * | 2015-03-18 | 2018-04-10 | Ca, Inc. | System and method to generate a transaction count using filtering |
US10409770B1 (en) | 2015-05-14 | 2019-09-10 | Amazon Technologies, Inc. | Automatic archiving of data store log data |
US10599630B2 (en) | 2015-05-29 | 2020-03-24 | Oracle International Corporation | Elimination of log file synchronization delay at transaction commit time |
CN106294193B (zh) * | 2015-06-03 | 2019-10-15 | 杭州海康威视系统技术有限公司 | 存储设备及基于该存储设备的分块存储方法 |
US10769125B2 (en) | 2015-06-10 | 2020-09-08 | International Business Machines Corporation | Ordering records for timed meta-data generation in a blocked record environment |
US9864774B2 (en) | 2015-06-23 | 2018-01-09 | International Business Machines Corporation | Granular buffering of metadata changes for journaling file systems |
US10275320B2 (en) | 2015-06-26 | 2019-04-30 | Commvault Systems, Inc. | Incrementally accumulating in-process performance data and hierarchical reporting thereof for a data stream in a secondary copy operation |
US10176036B2 (en) | 2015-10-29 | 2019-01-08 | Commvault Systems, Inc. | Monitoring, diagnosing, and repairing a management database in a data storage management system |
US10019193B2 (en) | 2015-11-04 | 2018-07-10 | Hewlett Packard Enterprise Development Lp | Checkpointing a journal by virtualization of non-volatile random access memory |
JP2017091456A (ja) * | 2015-11-17 | 2017-05-25 | 富士通株式会社 | 制御装置、制御プログラムおよび制御方法 |
WO2017087015A1 (en) * | 2015-11-19 | 2017-05-26 | Hewlett Packard Enterprise Development Lp | Count of metadata operations |
US10976946B2 (en) * | 2015-11-27 | 2021-04-13 | Hitachi, Ltd. | Method and computer system for managing blocks |
US10503753B2 (en) | 2016-03-10 | 2019-12-10 | Commvault Systems, Inc. | Snapshot replication operations based on incremental block change tracking |
US10817512B2 (en) | 2016-04-01 | 2020-10-27 | Arista Networks, Inc. | Standing queries in memory |
US10642844B2 (en) | 2016-04-01 | 2020-05-05 | Arista Networks, Inc. | Non-materialized tables with standing queries |
US10783147B2 (en) | 2016-04-01 | 2020-09-22 | Arista Networks, Inc. | Query result flow control in a network switch |
US10783144B2 (en) * | 2016-04-01 | 2020-09-22 | Arista Networks, Inc. | Use of null rows to indicate the end of a one-shot query in network switch |
US10284673B2 (en) | 2016-04-01 | 2019-05-07 | Arista Networks, Inc. | Interface for a client of a network device |
US10860568B2 (en) | 2016-04-01 | 2020-12-08 | Arista Networks, Inc. | External data source linking to queries in memory |
US10380100B2 (en) * | 2016-04-27 | 2019-08-13 | Western Digital Technologies, Inc. | Generalized verification scheme for safe metadata modification |
US10380069B2 (en) | 2016-05-04 | 2019-08-13 | Western Digital Technologies, Inc. | Generalized write operations verification method |
US10339934B2 (en) | 2016-06-27 | 2019-07-02 | Google Llc | Asynchronous processing of user requests |
US10324809B2 (en) * | 2016-09-12 | 2019-06-18 | Oracle International Corporation | Cache recovery for failed database instances |
US10805238B1 (en) | 2016-09-23 | 2020-10-13 | Amazon Technologies, Inc. | Management of alternative resources |
US10666569B1 (en) | 2016-09-23 | 2020-05-26 | Amazon Technologies, Inc. | Journal service with named clients |
US10346366B1 (en) * | 2016-09-23 | 2019-07-09 | Amazon Technologies, Inc. | Management of a data processing pipeline |
US10423459B1 (en) | 2016-09-23 | 2019-09-24 | Amazon Technologies, Inc. | Resource manager |
US10417102B2 (en) | 2016-09-30 | 2019-09-17 | Commvault Systems, Inc. | Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including virtual machine distribution logic |
US10540516B2 (en) | 2016-10-13 | 2020-01-21 | Commvault Systems, Inc. | Data protection within an unsecured storage environment |
US10922189B2 (en) | 2016-11-02 | 2021-02-16 | Commvault Systems, Inc. | Historical network data-based scanning thread generation |
US10389810B2 (en) | 2016-11-02 | 2019-08-20 | Commvault Systems, Inc. | Multi-threaded scanning of distributed file systems |
KR101956236B1 (ko) * | 2016-11-16 | 2019-03-11 | 주식회사 실크로드소프트 | 데이터베이스 관리 시스템에서의 데이터 복제 기법 |
US10762107B2 (en) * | 2016-11-29 | 2020-09-01 | Sap Se | Synchronization mechanism for serialized data log replay in database systems |
US10235310B2 (en) * | 2016-11-29 | 2019-03-19 | International Business Machines Corporation | Deallocation of memory buffer in multiprocessor systems |
US11010261B2 (en) | 2017-03-31 | 2021-05-18 | Commvault Systems, Inc. | Dynamically allocating streams during restoration of data |
JP6897248B2 (ja) * | 2017-04-06 | 2021-06-30 | 富士通株式会社 | 更新反映プログラム、更新反映方法及び更新反映装置 |
US10489381B2 (en) * | 2017-04-13 | 2019-11-26 | Sap Se | Adaptive metadata refreshing |
US10896168B2 (en) * | 2017-04-28 | 2021-01-19 | Hewlett Packard Enterprise Development Lp | Application-defined object logging through a file system journal |
US10984041B2 (en) | 2017-05-11 | 2021-04-20 | Commvault Systems, Inc. | Natural language processing integrated with database and data storage management |
GB201709499D0 (en) * | 2017-06-15 | 2017-08-02 | Microsoft Technology Licensing Llc | Memory management in non-volatile memory |
US10565062B1 (en) * | 2017-08-03 | 2020-02-18 | Veritas Technologies Llc | Systems and methods for managing replication of data to a remote storage device |
US10349097B2 (en) * | 2017-10-27 | 2019-07-09 | Mti Film, Llc | Metadata editor for multimedia delivery |
US11481362B2 (en) * | 2017-11-13 | 2022-10-25 | Cisco Technology, Inc. | Using persistent memory to enable restartability of bulk load transactions in cloud databases |
US11914571B1 (en) | 2017-11-22 | 2024-02-27 | Amazon Technologies, Inc. | Optimistic concurrency for a multi-writer database |
US10831591B2 (en) | 2018-01-11 | 2020-11-10 | Commvault Systems, Inc. | Remedial action based on maintaining process awareness in data storage management |
GB201801679D0 (en) * | 2018-02-01 | 2018-03-21 | Microsoft Technology Licensing Llc | Database transaction log writing and integrity checking |
US10732885B2 (en) | 2018-02-14 | 2020-08-04 | Commvault Systems, Inc. | Block-level live browsing and private writable snapshots using an ISCSI server |
US10642886B2 (en) | 2018-02-14 | 2020-05-05 | Commvault Systems, Inc. | Targeted search of backup data using facial recognition |
US11048590B1 (en) | 2018-03-15 | 2021-06-29 | Pure Storage, Inc. | Data consistency during recovery in a cloud-based storage system |
US10484829B1 (en) | 2018-04-27 | 2019-11-19 | Microsoft Technology Licensing, Llc | Methods and systems for generating maps corresponding to physical spaces, devices, and/or users |
US11210323B2 (en) | 2018-04-27 | 2021-12-28 | Microsoft Technology Licensing, Llc | Methods and systems for generating property keys corresponding to physical spaces, devices, and/or users |
US10951482B2 (en) | 2018-05-16 | 2021-03-16 | Microsoft Technology Licensing, Llc | Device identification on a building automation control network |
US11456915B2 (en) | 2018-05-21 | 2022-09-27 | Microsoft Technology Licensing, Llc | Device model templates |
US11159469B2 (en) | 2018-09-12 | 2021-10-26 | Commvault Systems, Inc. | Using machine learning to modify presentation of mailbox objects |
US11663207B2 (en) * | 2018-09-24 | 2023-05-30 | Salesforce, Inc. | Translation of tenant identifiers |
US11308119B2 (en) * | 2018-12-03 | 2022-04-19 | International Business Machines Corporation | Replicating large statements with low latency |
US11200124B2 (en) | 2018-12-06 | 2021-12-14 | Commvault Systems, Inc. | Assigning backup resources based on failover of partnered data storage servers in a data storage management system |
US20200192572A1 (en) | 2018-12-14 | 2020-06-18 | Commvault Systems, Inc. | Disk usage growth prediction system |
US11055184B2 (en) | 2018-12-19 | 2021-07-06 | Vmware, Inc. | In-place garbage collection of a sharded, replicated distributed state machine based on supersedable operations |
US10877881B2 (en) * | 2019-01-11 | 2020-12-29 | Vmware, Inc. | In-place garbage collection of a sharded, replicated distributed state machine based on mergeable operations |
EP3715981A1 (de) * | 2019-03-27 | 2020-09-30 | Siemens Aktiengesellschaft | Verfahren und steuersystem zum steuern einer ausführung von transaktionen |
US11176042B2 (en) | 2019-05-21 | 2021-11-16 | Arm Limited | Method and apparatus for architectural cache transaction logging |
US11237960B2 (en) * | 2019-05-21 | 2022-02-01 | Arm Limited | Method and apparatus for asynchronous memory write-back in a data processing system |
US11042318B2 (en) | 2019-07-29 | 2021-06-22 | Commvault Systems, Inc. | Block-level data replication |
KR20210016191A (ko) | 2019-08-01 | 2021-02-15 | 삼성전자주식회사 | 스토리지 장치 |
US11029855B1 (en) * | 2019-10-01 | 2021-06-08 | Datacore Software Corporation | Containerized storage stream microservice |
US11340815B2 (en) * | 2019-10-25 | 2022-05-24 | EMC IP Holding Company, LLC | Storage management system and method |
US11409666B2 (en) * | 2019-11-22 | 2022-08-09 | EMC IP Holding Company LLC | Techniques for providing I/O hints using I/O flags |
US11347725B2 (en) * | 2020-01-14 | 2022-05-31 | EMC IP Holding Company LLC | Efficient handling of highly amortized metadata page updates in storage clusters with delta log-based architectures |
US11803593B2 (en) * | 2020-02-14 | 2023-10-31 | Coupang Corp. | Systems and methods for receiving and propagating efficient search updates in real time |
US11099956B1 (en) | 2020-03-26 | 2021-08-24 | Commvault Systems, Inc. | Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations |
US11341163B1 (en) | 2020-03-30 | 2022-05-24 | Amazon Technologies, Inc. | Multi-level replication filtering for a distributed database |
US11971855B2 (en) * | 2020-05-19 | 2024-04-30 | EMC IP Holding Company LLC | Supporting multiple operations in transaction logging for a cloud-enabled file system |
CN111597152B (zh) * | 2020-05-20 | 2023-04-21 | 杭州海康威视系统技术有限公司 | 固态硬盘文件系统管理方法、装置及电子设备 |
US11372842B2 (en) * | 2020-06-04 | 2022-06-28 | International Business Machines Corporation | Prioritization of data in mounted filesystems for FSCK operations |
US11494417B2 (en) | 2020-08-07 | 2022-11-08 | Commvault Systems, Inc. | Automated email classification in an information management system |
US11645175B2 (en) | 2021-02-12 | 2023-05-09 | Commvault Systems, Inc. | Automatic failover of a storage manager |
US20220269667A1 (en) * | 2021-02-24 | 2022-08-25 | Ronen Grosman | Method and system for non-blocking database logging batching |
US11934670B2 (en) | 2021-03-31 | 2024-03-19 | Netapp, Inc. | Performing various operations at the granularity of a consistency group within a cross-site storage solution |
US11893261B2 (en) | 2021-05-05 | 2024-02-06 | Netapp, Inc. | Usage of OP logs to synchronize across primary and secondary storage clusters of a cross-site distributed storage system and lightweight OP logging |
US20230032678A1 (en) * | 2021-07-29 | 2023-02-02 | Micro Focus Llc | Abnormality detection in log entry collection |
US11593223B1 (en) | 2021-09-02 | 2023-02-28 | Commvault Systems, Inc. | Using resource pool administrative entities in a data storage management system to provide shared infrastructure to tenants |
US11892982B2 (en) | 2021-10-20 | 2024-02-06 | Netapp, Inc. | Facilitating immediate performance of volume resynchronization with the use of passive cache entries |
US11809285B2 (en) | 2022-02-09 | 2023-11-07 | Commvault Systems, Inc. | Protecting a management database of a data storage management system to meet a recovery point objective (RPO) |
US11726916B1 (en) * | 2022-04-27 | 2023-08-15 | EMC IP Holding Company, LLC | Method, computer program product, and computing system for defining a normal IO write mode and handling requests to enter a testing IO write mode |
US11907562B2 (en) | 2022-07-11 | 2024-02-20 | Netapp, Inc. | Methods and storage nodes to decrease delay in resuming input output (I/O) operations after a non-disruptive event for a storage object of a distributed storage system by utilizing asynchronous inflight replay of the I/O operations |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06124223A (ja) * | 1991-03-28 | 1994-05-06 | Texas Instr Inc <Ti> | ディスクファイルシステムのログ装置および方法 |
US5715447A (en) * | 1991-08-06 | 1998-02-03 | Fujitsu Limited | Method of and an apparatus for shortening a lock period of a shared buffer |
US5530855A (en) * | 1992-10-13 | 1996-06-25 | International Business Machines Corporation | Replicating a database by the sequential application of hierarchically sorted log records |
US5870757A (en) | 1995-09-11 | 1999-02-09 | Sun Microsystems, Inc. | Single transaction technique for a journaling file system of a computer operating system |
US5778168A (en) | 1995-09-11 | 1998-07-07 | Sun Microsystems, Inc. | Transaction device driver technique for a journaling file system to ensure atomicity of write operations to a computer mass storage device |
JP2000515657A (ja) * | 1996-08-02 | 2000-11-21 | トランソフト コーポレイション | 共有資源の分散制御を可能にする方法と装置 |
US5832516A (en) * | 1997-01-21 | 1998-11-03 | Oracle Corporation | Caching data in recoverable objects |
US5897661A (en) * | 1997-02-25 | 1999-04-27 | International Business Machines Corporation | Logical volume manager and method having enhanced update capability with dynamic allocation of storage and minimal storage of metadata information |
US6119208A (en) * | 1997-04-18 | 2000-09-12 | Storage Technology Corporation | MVS device backup system for a data processor using a data storage subsystem snapshot copy capability |
US5897641A (en) * | 1997-05-13 | 1999-04-27 | International Business Machines Corporation | Application of log records to data compressed with different encoding scheme |
US6144999A (en) * | 1998-05-29 | 2000-11-07 | Sun Microsystems, Incorporated | Method and apparatus for file system disaster recovery |
US6185663B1 (en) * | 1998-06-15 | 2001-02-06 | Compaq Computer Corporation | Computer method and apparatus for file system block allocation with multiple redo |
US6341341B1 (en) * | 1999-12-16 | 2002-01-22 | Adaptec, Inc. | System and method for disk control with snapshot feature including read-write snapshot half |
-
1999
- 1999-03-30 JP JP08745799A patent/JP3763992B2/ja not_active Expired - Fee Related
-
2000
- 2000-02-09 US US09/501,568 patent/US6732124B1/en not_active Expired - Fee Related
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004252933A (ja) * | 2002-06-03 | 2004-09-09 | Thomson Licensing Sa | メタデータ項目の伝達を制御する方法 |
US7934195B2 (en) | 2002-06-03 | 2011-04-26 | Thomson Licensing | Method for controlling the propagation of metadata items |
US7640388B2 (en) | 2003-10-10 | 2009-12-29 | Sony Corporation | File storage apparatus for storing file data and management information |
JP2005316635A (ja) * | 2004-04-28 | 2005-11-10 | Hitachi Ltd | データ処理システムおよび方法並びにその処理プログラム |
JP4561168B2 (ja) * | 2004-04-28 | 2010-10-13 | 株式会社日立製作所 | データ処理システムおよび方法並びにその処理プログラム |
KR100781515B1 (ko) * | 2006-01-10 | 2007-12-03 | 삼성전자주식회사 | 트랜잭션 처리를 위한 로그 정보 관리 시스템 및 방법 |
JP4699516B2 (ja) * | 2006-03-28 | 2011-06-15 | 富士通株式会社 | 名前空間複製プログラム、名前空間複製装置、名前空間複製方法 |
JP2008040699A (ja) * | 2006-08-04 | 2008-02-21 | Fujitsu Ltd | Hsm制御プログラム、hsm制御装置、hsm制御方法 |
WO2012032727A1 (en) * | 2010-09-09 | 2012-03-15 | Nec Corporation | Storage system |
JP2013514561A (ja) * | 2010-09-09 | 2013-04-25 | 日本電気株式会社 | ストレージシステム |
US8924663B2 (en) | 2010-09-09 | 2014-12-30 | Nec Corporation | Storage system, computer-readable medium, and data management method having a duplicate storage elimination function |
JP2013250982A (ja) * | 2012-06-01 | 2013-12-12 | Samsung Electronics Co Ltd | 記憶装置のデータ書き込み方法 |
CN110719233A (zh) * | 2019-10-11 | 2020-01-21 | 北京百度网讯科技有限公司 | 用于发送信息的方法及装置 |
CN110719233B (zh) * | 2019-10-11 | 2023-10-31 | 北京百度网讯科技有限公司 | 用于发送信息的方法及装置 |
CN113448772A (zh) * | 2020-11-23 | 2021-09-28 | 北京新氧科技有限公司 | 一种精细化数据回滚方法及装置 |
CN113448772B (zh) * | 2020-11-23 | 2023-08-11 | 北京新氧科技有限公司 | 一种精细化数据回滚方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US6732124B1 (en) | 2004-05-04 |
JP3763992B2 (ja) | 2006-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3763992B2 (ja) | データ処理装置及び記録媒体 | |
US6493837B1 (en) | Using log buffers to trace an event in a computer system | |
JP3593366B2 (ja) | デ−タベ−ス管理方法 | |
US9021303B1 (en) | Multi-threaded in-memory processing of a transaction log for concurrent access to data during log replay | |
US7266669B2 (en) | File system with file management function and file management method | |
US7107294B2 (en) | Method and apparatus for interrupting updates to a database to provide read-only access | |
JP2679779B2 (ja) | トランザクション処理方法及び装置 | |
US5933593A (en) | Method for writing modified data from a main memory of a computer back to a database | |
US7085955B2 (en) | Checkpointing with a write back controller | |
EP1089176A2 (en) | Transactional file system for realizing atomic update of plural files by transactions | |
Ren et al. | Low-overhead asynchronous checkpointing in main-memory database systems | |
JP4916892B2 (ja) | トランザクション処理のためのログ情報管理システムおよび方法 | |
JPH07175700A (ja) | データベース管理方式 | |
Graefe | A survey of B-tree logging and recovery techniques | |
JP7101566B2 (ja) | 不揮発性メモリにおけるマルチバージョン同時実行制御(mvcc) | |
JPH09503328A (ja) | 非同期に順序付けされた動作を行うコンピュータ方法及び装置 | |
US20030028723A1 (en) | Efficient data backup using a single side file | |
JPH0644010A (ja) | タイムゼロ・バックアップ・コピー・プロセスにおける副ファイル状態のポーリングのための方法およびシステム | |
JPH05210555A (ja) | ゼロ時間データ・バックアップ・コピーの方法及び装置 | |
JP2009251853A (ja) | メモリデータベース、メモリデータベースシステム及びメモリデータベース更新方法 | |
CN113220490A (zh) | 异步写回持久化内存的事务持久化方法及系统 | |
JP4189342B2 (ja) | ストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法 | |
JP4286857B2 (ja) | ノード間共用ファイル制御方法 | |
JP3107094B2 (ja) | 共用バッファのロック期間短縮処理方法及び装置 | |
JPH0816881B2 (ja) | データベース更新方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060117 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060118 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100127 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110127 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110127 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120127 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130127 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130127 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140127 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |