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
Application number
JP11087457A
Other languages
English (en)
Other versions
JP3763992B2 (ja
Inventor
Michihiko Koseki
道彦 小関
Mamoru Yokoyama
衛 横山
Masashi Washimi
昌司 鷲見
Satoru Yamaguchi
悟 山口
Sadayoshi Taniwaki
貞善 谷脇
Seishiro Hamanaka
征志郎 浜中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP08745799A priority Critical patent/JP3763992B2/ja
Priority to US09/501,568 priority patent/US6732124B1/en
Publication of JP2000284995A publication Critical patent/JP2000284995A/ja
Application granted granted Critical
Publication of JP3763992B2 publication Critical patent/JP3763992B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Abstract

(57)【要約】 【課題】 ファイルシステム修復処理の効率化を図る。 【解決手段】 トランザクション6がメタデータの更新
をする際には、まず、メタデータ読み込み手段4により
メタボリューム1a〜1c内の必要なメタデータがメタ
キャッシュ3に読み込まれる。その際、読み込んだメタ
データがどのメタボリュームから読み込まれたものであ
るのかが、メタデータ管理手段5によって管理される。
ここで、トランザクション6がメタデータの内容を更新
すると、ログ採取手段7によって更新後のメタデータが
ログとして採取される。この際、メタデータが格納され
ていたメタボリューム1a〜1cの識別情報をも採取す
る。採取した情報は、ログバッファ8に保持される。そ
して、ログ書き込み手段9により、ログバッファ8内の
情報がログボリューム2に書き込まれる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はファイルシステムの
修正機能を有するデータ処理装置及び記録媒体に関し、
特にログを用いてファイルシステムの不整合の修正を行
うデータ処理装置及び記録媒体に関する。
【0002】
【従来の技術】コンピュータシステムを運用している
と、何らかの理由によりシステムがダウンする場合があ
る。突然のシステムダウンが発生すると、ファイルシス
テムの不整合が生じる。そこで、システムダウン後のブ
ート時には、従来であればファイルシステム全体を走査
し、その矛盾点の検出を行う。矛盾点が発見されたら、
場合に応じた変更をファイルシステムに加えることによ
って、ファイルシステムの整合性を回復していた。とこ
ろが、ファイルシステム全体を走査するには多くの時間
が必要であり、結果としてシステムダウン後の復旧の遅
れを招いていた。
【0003】そこで近代のUNIXオペレーティングシ
ステム(OS)のような多くのコンピュータOSのファ
イルシステムでは、ファイルシステムオペレーションに
おいてファイルシステムに保存されているデータが更新
される度に、その更新情報をログ(ジャーナル)として
採取している。ファイルシステムオペレーション時に更
新情報のログ採取を行っておくことにより、システムダ
ウン後のブート時のファイルシステム整合性チェックの
フェーズでは、残されたログを順次走査し、対応する領
域へアップデートすることによって、ファイルシステム
の整合性が保証される。その結果、システムのダウン時
間が短縮される。
【0004】
【発明が解決しようとする課題】しかし、ログ機構を導
入することにより、次に挙げる問題が生じていた。 (1)第1の問題点 ファイルを管理するメタデータ(二次記憶装置に格納さ
れたファイルを管理するためのデータ)は、ファイルシ
ステムオペレーション時に二次記憶装置からメモリへ読
み込まれ、メモリ内において操作される。その後、所定
のタイミングで二次記憶装置へとその更新内容が反映さ
れる。ログ機構の導入時には、その二次記憶装置への反
映前に更新内容をログ専用の二次記憶装置へと記録する
必要がある。
【0005】しかし、大規模ファイルシステムに対応す
るために、複数の二次記憶装置がメタデータに割り当て
られ、異なる二次記憶装置に割り当てられたメタデータ
を1つのファイルシステムオペレーションが操作する場
合がある。このファイルシステムオペレーションのログ
を採取する際に、メモリ内のメタデータだけをログとし
て記録していたのでは、残されたログからメタデータ毎
に異なる二次記憶装置を検索するのに時間を消費し、ロ
グ機構導入による最大のメリットである、ファイルシス
テム復元の時間短縮に悪い影響を与える。
【0006】(2)第2の問題点 同様にファイルシステム復元の時間短縮に悪い影響を与
える要因として、有限なサイズしかないログ専用の二次
記憶装置全体をファイルシステム復元時に探索すること
が考えられる。
【0007】ログ機構の導入はファイルシステムオペレ
ーションを細分化したトランザクションの完了を常に保
証しつつ動作するため、ログ機構を導入した多くのファ
イルシステムはトランザクションにシーケンス番号を与
え、ファイルシステム復元時にはシーケンス番号をもと
に最古のトランザクションを同定する。そして、最古の
トランザクションからログリプレイと呼ばれるログを用
いたファイルシステム復元操作を開始する。
【0008】ここで、有限サイズのログ専用の二次記憶
装置内には、ファイルシステムの整合性を復元するため
に欠かせないログが確かに存在する可能性があるが、有
限なサイズを有効利用するためにログ専用の二次記憶装
置は過去のログを上書きしてサイクリックに利用しなけ
ればならない。このような処理を行うには、ある程度以
上古いログが必ず不必要となっていることが前提とな
る。従って、多くのログの内容は既に不必要となってい
る。すなわち、ログ専用の二次記憶装置全体を探索ある
いは反映するのは非効率的である。
【0009】(3)第3の問題点 最古のトランザクションを特定するためのシーケンス番
号は単調増加であることが要求され、運用途中にオーバ
ーフローによってゼロに戻されてしまうことは許されな
い。これを回避するために、ファイルシステム復元作業
終了時、またはオーバーフロー直前にログ専用の二次記
憶装置全体をゼロクリアし、再度シーケンス番号ゼロか
ら順にトランザクションを処理するのが一般的である。
しかし、ログ専用の二次記憶装置をゼロクリアするため
には多くの時間が必要となる。少なくともシステムの運
用を一時停止する必要があり、サーバ装置などによるサ
ービスの提供を停止せざるを得なくなってしまう。
【0010】以上の(1)〜(3)の課題はファイルシ
ステム復元時の問題であるが、ログ機構を導入すること
は通常の運用時にも問題を引き起こす可能性を持ってい
る。ログ機構は、メモリ上にログをスプールする手法
や、ログ専用の二次記憶装置として用いられるディスク
の特性を考慮したシーケンシャルアクセスなど、高速化
のための条件は整えられているが、ログの採取の仕方を
熟考しなければ、ログ採取に伴う性能劣化は非常に大き
いものとなりうる。
【0011】(4)第4の問題点 単一のトランザクション内で、同一データを複数回更新
することは度々あるが、その都度、その同一データに対
するログを採取したのではメモリが不足し、二次記憶装
置へのI/O量が増加する。
【0012】(5)第5の問題点 ログ機構の導入はトランザクションの順序性を保証し、
終了したトランザクションのログを順に採取することを
要求するために、あるトランザクションが操作したログ
対象データを他のトランザクションが操作することが一
般的に不可能な状況となりうる。ここで、個々のファイ
ルの内容を対象とするトランザクションについては、フ
ァイル単位に排他制御を行うことによって、複数のトラ
ンザクションが並列実行することは比較的容易である。
しかしながら、個々のファイルによらないもの、特に領
域の割り当て情報を操作する場合には、並列実行がきわ
めて難しくなる。
【0013】領域の獲得・解放処理が並列に動作する場
合を考えると、それぞれが獲得、解放のログを採取す
る。同一の管理情報(ここでは、ビットマップを考え
る)によって管理される領域の獲得・解放処理であった
場合には、同一の管理情報が、解放された状態、獲得さ
れた状態でログに記録されることになる。
【0014】ファイルシステムの復元処理を行わなけれ
ばならないようなシステムダウンが発生するタイミング
によっては、このように別トランザクションの更新情報
を含むログの採取方式では様々な問題が生じる。
【0015】Aというトランザクションが解放処理、B
というトランザクションが獲得処理を行う場合を考え
る。ここで、トランザクションAの解放処理はトランザ
クションBの獲得処理よりも先に行われ、かつ、トラン
ザクションAはトランザクションBよりも後に終わる場
合を例に挙げる。
【0016】このとき、トランザクションAが開放した
領域をトランザクションBが獲得してしまう場合が考え
られる。トランザクションBが先に終了することから、
残されたログには、まず獲得処理が記録され、次に解放
処理が記録される。
【0017】上記の場合のトランザクションBのログだ
けが記録されており、それを復元に用いた場合には、本
来行われたはずである解放処理の記録が残されていない
ことから、該当領域が二重に獲得された状態となってし
まう。トランザクションAのログまで記録されており、
復元に用いられると、トランザクションBが利用してい
る領域がトランザクションAの解放処理のログによって
解放されている状態となってしまう。いずれも本来の状
態とは異なっており、避けなければならない。しかしな
がら、これを回避するために並列実行を制限すること
は、マルチタスクを実現したOS上のファイルシステム
の速度性能の低下に与える影響が非常に大きい。
【0018】(6)第6の問題点 既に述べたようにログ機構の第一の目的としてファイル
システムを復元するために費やす時間の短縮が挙げられ
るが、そのためにトランザクションの独立性を疎かにし
たり、中途半端な状態での整合性回復によりあたかも正
常に動作しているかのように振る舞うファイルシステム
が多く見受けられる。
【0019】従来のメタデータ管理方式のように、ログ
を記録するためのメモリ空間をファイルシステム全体で
1つのキャッシュメモリを共有していたのではトランザ
クション毎の独立性を保つのが難しく、他のトランザク
ションによる更新情報が1つのトランザクションのログ
として記録されてしまう可能性が高い。特にファイルに
対する排他で制御しきれない割り当て管理情報について
は前述の通りである。
【0020】(7)第7の問題点 トランザクション毎に必要とするログのサイズが異なる
ことから、複数のログバッファとしてログを記録するた
めのメモリをトランザクション毎に割り当て、管理する
場合に、全てのメモリサイズが同一である必要はない。
例えば、ファイルの参照時刻を更新するだけのトランザ
クションが残すログのサイズは大変小さく、巨大なデー
タ書き込み要求のトランザクションは必然的にそれだけ
大きいログサイズとなる。
【0021】(8)第8の問題点 トランザクション毎に残すログサイズの違いを考慮し
て、限られたメモリ空間の有効利用を試みても、キャッ
シュメモリサイズは残されるログサイズに比較して、や
はり小さい。
【0022】(9)第9の問題点 「第8の問題点」の解決策として、1つのトランザクシ
ョンを分割し、中途の状態のログを出力することが考え
られる。しかし、一般にファイルを管理するメタデータ
は、トランザクションが中途の状態ではやはり中途の状
態であり、そのままログに記録したところで、そのログ
を用いて復元されるファイルシステムは中途の状態にし
かなり得ない。これではオペレーションのセマンティク
スを保証した復元とはなり得ない。
【0023】(10)第10の問題点 「第9の問題点」で示した中途の状態でのトランザクシ
ョンの中断はファイルシステムにとって危険な状態とい
える。ログ機構の導入は、採取したログをログボリュー
ムに反映するまでは該当メタデータもキャッシュメモリ
から追い出せないことを意味する。ログがキャッシュメ
モリに入りきらないほど巨大となっているときには、メ
タデータを管理するキャッシュメモリの利用率も高くな
っていることが考えられる。ログを出力するまでメタデ
ータをキャッシュメモリから追い出せないため、このよ
うな状態で多くのトランザクションが並列実行される
と、メモリ枯渇によるハングアップ状態に陥ることも考
えられる。
【0024】(11)第11の問題点 第10の問題点と同様の資源枯渇はログ記録用の二次記
憶装置についても言える。キャッシュメモリに比較すれ
ば巨大な二次記憶装置についても、メタデータ記録用の
二次記憶装置へのI/Oを削減するために、多くのログ
を有効なログとして残しておけば、それは利用可能な領
域の減少を引き起こす。その際に多数のトランザクショ
ンの並列実行を許すことはメタデータキャッシュ枯渇、
ログキャッシュ枯渇、ログ記録用二次記憶装置枯渇、な
どを誘発する可能性がある。
【0025】本発明はこのような点に鑑みてなされたも
のであり、ファイルシステム修復処理の効率化を図った
データ処理装置を提供することを目的とする。
【0026】
【課題を解決するための手段】本発明では上記課題を解
決するための第1の発明として、ログを用いてファイル
システムの不整合の修正を行うデータ処理装置におい
て、ファイルを管理するメタデータを記憶するための二
次記憶装置である複数のメタボリュームと、メタデータ
の更新結果であるログを記憶するための二次記憶装置で
あるログボリュームと、メタデータを記憶するために主
記憶装置内に設けられたメタキャッシュと、メタデータ
の内容が変更される際に、対象となるメタデータを前記
メタキャッシュへと読み込むメタデータ読み込み手段
と、前記メタキャッシュ内に読み込まれたメタデータの
内容を更新するトランザクションと、前記メタキャッシ
ュに読み込まれたメタデータが格納されていたメタボリ
ュームの識別情報を管理するメタデータ管理手段と、前
記メタキャッシュ内で変更されたメタデータの内容をロ
グとして採取するとともに、採取したメタデータが格納
されていたメタボリュームの識別情報を採取するログ採
取手段と、前記ログ採取手段が採取した情報を保持する
ログバッファと、前記ログバッファが保持する情報を、
適宜前記ログボリュームに格納するログ書き込み手段
と、を有することを特徴とするデータ処理装置が提供さ
れる。
【0027】このようなデータ処理装置によれば、トラ
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。その
際、読み込んだメタデータがどのメタボリュームから読
み込まれたものであるのかが、メタデータ管理手段によ
って管理される。ここで、トランザクションがメタデー
タの内容を更新すると、ログ採取手段によって更新後の
メタデータがログとして採取される。この際、メタデー
タが格納されていたメタボリュームの識別情報をも採取
する。採取した情報は、ログバッファに保持される。そ
して、ログ書き込み手段により、ログバッファ内の情報
がログボリュームに書き込まれる。
【0028】また、上記課題を解決する第2の発明とし
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータの更新結果であるログを記憶するため
の二次記憶装置であるログボリュームと、メタデータを
記憶するために主記憶装置内に設けられたメタキャッシ
ュと、メタデータの内容が変更される際に、対象となる
メタデータを前記メタキャッシュへと読み込むメタデー
タ読み込み手段と、前記メタキャッシュ内に読み込まれ
たメタデータの内容を更新するトランザクションと、前
記メタキャッシュ内で変更されたメタデータの内容をロ
グとして採取するログ採取手段と、前記ログ採取手段が
採取した情報を保持するログバッファと、前記ログボリ
ューム内の領域を定期的に循環するようにして、前記ロ
グバッファが保持する情報を前記ログボリュームに格納
するログ書き込み手段と、前記メタキャッシュ内のメタ
データをメタボリューム内に格納するメタデータ書き込
み手段と、前記メタデータ書き込み手段による書き込み
動作を監視しており、変更内容が前記メタボリュームに
反映されていないメタデータに対応する前記ログボリュ
ーム内のログを、有効なログとして指定する有効範囲監
視手段と、ファイルシステム復元要求を受け取ると、前
記ログボリュームに格納されたログの中で、前記有効範
囲監視手段により有効なログとして指定されているログ
のみを用いて、前記メタボリューム内のメタデータの不
整合を修正するファイルシステム復元手段と、を有する
ことを特徴とするデータ処理装置が提供される。
【0029】このようなデータ処理装置によれば、トラ
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する
と、ログ採取手段によって更新後のメタデータがログと
して採取される。採取した情報は、ログバッファに保持
される。そして、ログ書き込み手段により、ログバッフ
ァ内の情報がログボリュームに書き込まれる。その後、
メタデータ書き込み手段により、メタキャッシュ内のメ
タデータがメタボリューム内に格納される。その書き込
み動作は、有効範囲監視手段で監視されており、変更内
容がメタボリュームに反映されていないメタデータに対
応するログボリューム内のログが、有効なログとして指
定される。そして、ファイルシステム復元要求が出され
ると、ファイルシステム復元手段により、ログボリュー
ムに格納されたログの中で、有効範囲監視手段により有
効なログとして指定されているログのみを用いて、メタ
ボリューム内のメタデータの不整合が修正される。
【0030】また、上記課題を解決する第3の発明とし
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータの更新結果であるログを記憶するため
の二次記憶装置であるログボリュームと、メタデータを
記憶するために主記憶装置内に設けられたメタキャッシ
ュと、メタデータの内容が変更される際に、対象となる
メタデータを前記メタキャッシュへと読み込むメタデー
タ読み込み手段と、前記メタキャッシュ内に読み込まれ
たメタデータの内容を更新するトランザクションと、前
記メタキャッシュ内で変更されたメタデータの内容をロ
グとして採取するログ採取手段と、前記ログ採取手段が
採取した情報を保持するログバッファと、前記ログバッ
ファが保持する情報を前記ログボリュームに格納するロ
グ書き込み手段と、前記ログボリュームに格納されたロ
グを用いて前記メタボリューム内のメタデータの不整合
を修正するファイルシステム復元手段と、前記ファイル
システム復元手段が前記メタボリューム内のメタデータ
の不整合を修正した時に用いられたログの最後のシーケ
ンス番号を記憶する初期シーケンス番号記憶手段と、
前記ログ書き込み手段がログの書き込みを行う際に、シ
ーケンス番号を昇順で採番し、採番したシーケンス番号
を書き込むべきログに付与しており、前記ファイルシス
テム復元手段が前記メタボリューム内のメタデータの不
整合を修正した直後には、前記初期シーケンス番号記憶
手段に格納されたシーケンス番号を基準として採番する
シーケンス番号採番手段と、を有することを特徴とする
データ処理装置が提供される。
【0031】このようなデータ処理装置によれば、トラ
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する
と、ログ採取手段によって更新後のメタデータがログと
して採取される。採取した情報は、ログバッファに保持
される。そして、ログ書き込み手段により、ログバッフ
ァ内の情報がログボリュームに書き込まれる。その際、
シーケンス番号採番手段により、シーケンス番号が昇順
で採番され、書き込むべきログに付与される。ファイル
システムに不整合が発生すると、ファイルシステム復元
手段により、ログボリュームに残されたログを用いてメ
タデータの不整合が修正される。このとき、修正に用い
られた最後のログのシーケンス番号が初期シーケンス番
号記憶手段に記憶される。その後、ログ書き込み手段に
よりログバッファ内の情報がログボリュームに書き込ま
れると、シーケンス番号採番手段により、初期シーケン
ス番号記憶手段に格納されたシーケンス番号を基準とし
てシーケンス番号が採番され、書き込むべきログに付与
される。
【0032】また、上記課題を解決する第4の発明とし
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータを記憶するために主記憶装置内に設け
られたメタキャッシュと、メタデータの内容が変更され
る際に、対象となるメタデータを前記メタキャッシュへ
と読み込むメタデータ読み込み手段と、前記メタキャッ
シュ内に読み込まれたメタデータの内容を更新するトラ
ンザクションと、前記トランザクションの種別を判断
し、メタデータの更新を複数回行う可能性のあるトラン
ザクションの場合には、前記メタキャッシュ内で変更さ
れたメタデータの最終形態のみをログとして採取するロ
グ採取手段と、を有することを特徴とするデータ処理装
置が提供される。
【0033】このようなデータ処理装置によれば、トラ
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する。
すると、ログ採取手段により、トランザクションの種別
が判断され、メタデータの更新を複数回行う可能性のあ
るトランザクションの場合には、メタキャッシュ内で変
更されたメタデータの最終形態のみがログとして採取さ
れる。
【0034】また、上記課題を解決する第5の発明とし
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、メタデータに対する割り当
てを管理するための割り当て管理情報を複数の領域に分
割して保持する割り当て管理情報保持手段と、前記割り
当て管理情報保持手段内の割り当て管理情報の一部領域
の複製を生成し、獲得操作用管理情報とするとともに、
前記獲得操作用管理情報内に未獲得のメタデータがなく
なると、割り当て管理情報の別の領域の複製を前記獲得
操作用管理情報とする獲得操作用管理情報生成手段と、
メタデータの獲得及び解放要求を出力するトランザクシ
ョンと、前記トランザクションによりメタデータの獲得
要求が出された場合には、前記獲得操作用管理情報の中
の未獲得のメタデータを獲得し、獲得したメタデータを
獲得済みとするように前記獲得操作用管理情報と前記割
り当て管理情報との内容を変更するメタデータ獲得手段
と、前記トランザクションによりメタデータの解放要求
が出された場合には、指定されたメタデータが未獲得の
状態となるように、前記割り当て管理情報の内容を変更
するメタデータ解放手段と、を有することを特徴とする
データ処理装置が提供される。
【0035】このようなデータ処理装置によれば、獲得
操作用管理情報生成手段により、割り当て管理情報の一
部領域の複製が生成され、獲得操作用管理情報とされ
る。トランザクションにより獲得要求があると、メタデ
ータ獲得手段により、獲得操作用管理情報内の未獲得の
メタデータが獲得される。すると、獲得操作用管理情報
と割り当て管理情報との内容が更新される。また、トラ
ンザクションよりメタデータの解放要求があると、メタ
データ解放手段により該当するメタデータの解放処理が
行われる。この際、割り当て管理情報の内容のみが更新
される。ここで、獲得操作用管理情報内に未獲得のメタ
データがなくなると、割り当て管理情報内の別の領域の
複製が獲得操作用管理情報とされる。
【0036】また、上記課題を解決する第6の発明とし
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、メタデータに対する割り当
てを管理するための割り当て管理情報を保持する割り当
て管理情報保持手段と、メタデータの獲得及び解放要求
を出力するトランザクションと、前記トランザクション
によりメタデータの獲得要求が出された場合には、前記
割り当て管理情報保の中の未獲得のメタデータを獲得
し、獲得したメタデータを獲得済みとするように前記割
り当て管理情報の内容を変更するメタデータ獲得手段
と、前記トランザクションによりメタデータの解放要求
が出された場合には、指定されたメタデータ未獲得の状
態となるように、前記割り当て管理情報の内容を変更す
るメタデータ解放手段と、前記割り当て管理情報内の前
記メタデータ獲得手段及び前記メタデータ解放手段によ
って変更された部分の情報をログとして採取するログ採
取手段と、を有することを特徴とするデータ処理装置が
提供される。
【0037】このようなデータ処理装置によれば、トラ
ンザクションからメタデータの獲得要求が出されると、
メタデータ獲得手段によって未獲得のメタデータの1つ
が割り当て管理情報内から獲得され、そのメタデータが
獲得済みの状態とされる。また、トランザクションから
メタデータの解放要求が出されると、メタデータ解放手
段によって該当するメタデータが未獲得の状態に変更さ
れる。そして、ログ採取手段により、割り当て管理情報
内のメタデータ獲得手段及びメタデータ解放手段によっ
て変更された部分の情報がログとして採取される。
【0038】また、上記課題を解決する第7の発明とし
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータを記憶するために主記憶装置内に設け
られたメタキャッシュと、メタデータの内容が変更され
る際に、対象となるメタデータを前記メタキャッシュへ
と読み込むメタデータ読み込み手段と、前記メタキャッ
シュ内に読み込まれたメタデータの内容を更新する複数
のトランザクションと、 ログをトランザクション毎に
保持する、サイズの異なる複数のログバッファと、前記
メタキャッシュ内で変更されたメタデータの内容をログ
として採取し、前記トランザクション毎に分けて前記ロ
グバッファに格納するログ採取手段と、を有することを
特徴とするデータ処理装置が提供される。
【0039】このようなデータ処理装置によれば、トラ
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する。
すると、ログ採取手段により、メタキャッシュ内で変更
されたメタデータがログとして採取され、トランザクシ
ョン毎のログバッファに保持される。
【0040】また、上記課題を解決する第8の発明とし
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータの更新結果であるログを記憶するため
の二次記憶装置であるログボリュームと、メタデータを
記憶するために主記憶装置内に設けられたメタキャッシ
ュと、メタデータの内容が変更される際に、対象となる
メタデータを前記メタキャッシュへと読み込むメタデー
タ読み込み手段と、前記メタキャッシュ内に読み込まれ
たメタデータの内容を更新するトランザクションと、ロ
グをトランザクション毎に保持するログバッファと、前
記メタキャッシュ内で変更されたメタデータの内容をロ
グとして採取し、前記ログバッファに格納するログ採取
手段と、前記トランザクションが終了した場合に前記ロ
グバッファの内容を前記ログボリュームに書き込むとと
もに、前記トランザクションによるログが前記ログバッ
ファ内に格納しきれない場合には、前記ログバッファ内
のデータを完結したログに加工し、中間ログとして前記
ログボリューム内に格納するログ書き込み手段と、を有
することを特徴とするデータ処理装置が提供される。
【0041】このようなデータ処理装置によれば、トラ
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する
と、ログ採取手段によって更新後のメタデータがログと
して採取される。採取した情報は、ログバッファに保持
される。そして、ログバッファに格納しきれなくなる
か、トランザクションが終了すると、ログ書き込み手段
により、ログバッファ内の情報がログボリュームに書き
込まれる。ログバッファに格納しきれなくなった場合に
は、ログバッファの内容を完結したログに加工され、中
間ログとしてログボリュームに格納される。
【0042】また、上記課題を解決する第9の発明とし
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータの更新結果であるログを記憶するため
の二次記憶装置であるログボリュームと、メタデータを
記憶するために主記憶装置内に設けられたメタキャッシ
ュと、メタデータの内容が変更される際に、対象となる
メタデータを前記メタキャッシュへと読み込むメタデー
タ読み込み手段と、前記メタキャッシュ内に読み込まれ
たメタデータの内容を更新する、複数同時実行可能なト
ランザクションと、前記トランザクションからの開始要
求を受け付けると、ログ採取に関するシステムの動作状
況を判断し、前記トランザクションの受け入れ許否を判
断するトランザクション受け入れ判断手段と、前記メタ
キャッシュ内で変更されたメタデータの内容をログとし
て採取するログ採取手段と、前記ログ採取手段が採取し
た情報を保持するログバッファと、前記ログバッファが
保持する情報を、適宜前記ログボリュームに格納するロ
グ書き込み手段と、を有することを特徴とするデータ処
理装置が提供される。
【0043】このようなデータ処理装置によれば、トラ
ンザクションから開始要求が出されると、トランザクシ
ョン受け入れ制限手段が受け入れの許否を判断する。そ
の後、メタデータ書き込み手段によるメタデータの書き
込みが進み、有効なログの割合が減少したら、その時点
でトランザクションの開始要求を許可する。
【0044】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。図1は、第1の発明の原理構成図
である。この第1の発明は、複数の二次記憶装置がメタ
データに割り当てられている場合におけるファイルシス
テム不整合修復時間の短縮を図るものである。
【0045】このデータ処理装置には、二次記憶装置と
してメタボリューム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に格納する。
【0046】このようなデータ処理装置よれば、トラン
ザクション6がメタデータの更新をする際には、まず、
メタデータ読み込み手段4によりメタボリューム1a〜
1c内の必要なメタデータがメタキャッシュ3に読み込
まれる。その際、読み込んだメタデータがどのメタボリ
ュームから読み込まれたものであるのかが、メタデータ
管理手段5によって管理される。ここで、トランザクシ
ョン6がメタデータの内容を更新すると、ログ採取手段
7によって更新後のメタデータがログとして採取され
る。この際、メタデータが格納されていたメタボリュー
ム1a〜1cの識別情報をも採取する。採取した情報
は、ログバッファ8に保持される。そして、ログ書き込
み手段9により、ログバッファ8内の情報がログボリュ
ーム2に書き込まれる。
【0047】これにより、ログボリューム2に保持され
たログがどのメタボリューム1a〜1cのメタデータに
関するログであるのかを管理することができる。その結
果、複数のメタボリューム1a〜1cにメタデータが格
納されていても、ファイルシステムの不整合を修正する
ことが可能となる。
【0048】図2は、第2の発明の原理構成図である。
第2の発明は、ログの有効範囲を監視することで、ファ
イルシステム復元時の効率化を図ったものである。第2
の発明は、以下のような要素で構成される。
【0049】メタボリューム11は、ファイルを管理す
るメタデータを記憶するための二次記憶装置である。ロ
グボリューム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は、有効範囲が
記録された不揮発性の記録媒体内の情報を読みとること
で、有効なログと指定されているログを認識できる。
【0050】このようなデータ処理装置によれば、トラ
ンザクション15がメタデータの更新をする際には、ま
ず、メタデータ読み込み手段14によりメタボリューム
11内の必要なメタデータがメタキャッシュ13に読み
込まれる。ここで、トランザクション15がメタデータ
の内容を更新すると、ログ採取手段16によって更新後
のメタデータがログとして採取される。採取した情報
は、ログバッファ17に保持される。そして、ログ書き
込み手段18により、ログバッファ17内の情報がログ
ボリューム12に書き込まれる。その後、メタデータ書
き込み手段19により、メタキャッシュ13内のメタデ
ータがメタボリューム11内に格納される。その書き込
み動作は、有効範囲監視手段20で監視されており、変
更内容がメタボリューム11に反映されていないメタデ
ータに対応するログボリューム12内のログが、有効な
ログとして指定される。そして、ファイルシステム復元
要求が出されると、ファイルシステム復元手段21によ
り、ログボリューム12に格納されたログの中で、有効
範囲監視手段20により有効なログとして指定されてい
るログのみを用いて、メタボリューム11内のメタデー
タの不整合が修正される。
【0051】これにより、ファイルシステムを復元する
際には、ログボリューム12内の有効なログのみを用い
て効率よく復元処理を行うことが可能となる。図3は、
第3の発明の原理構成図である。第3の発明は、ログに
付加するシーケンス番号のデータサイズを十分大きなも
のとし、シーケンス番号を常に昇順で使い続けることが
できる(ゼロクリアが不要となる)ようにしたものであ
る。第3の実施の形態は、以下のような要素で構成され
る。
【0052】メタボリューム31は、ファイルを管理す
るメタデータを記憶するための二次記憶装置である。ロ
グボリューム32は、メタデータの更新結果であるログ
を記憶するための二次記憶装置である。メタキャッシュ
33は、メタデータを記憶するために主記憶装置内に設
けられた記憶領域である。メタデータ読み込み手段34
は、メタデータの内容が変更される際に、対象となるメ
タデータをメタキャッシュ33へと読み込む。トランザ
クション35は、メタキャッシュ33内に読み込まれた
メタデータの内容を更新する。ログ採取手段36は、メ
タキャッシュ33内で変更されたメタデータの内容をロ
グとして採取する。ログバッファ37は、ログ採取手段
36が採取した情報を保持する。ログ書き込み手段38
は、ログバッファが保持する情報を前記ログボリューム
に格納する。ファイルシステム復元手段39は、ログボ
リューム32に格納されたログを用いてメタボリューム
31内のメタデータの不整合を修正する。初期シーケン
ス番号記憶手段30aは、ファイルシステム復元手段3
9がメタボリューム31内のメタデータの不整合を修正
した時に用いられたログの最後のシーケンス番号を記憶
する。シーケンス番号採番手段30bは、ログ書き込み
手段38がログの書き込みを行う際に、シーケンス番号
を昇順で採番し、採番したシーケンス番号を書き込むべ
きログに付与しており、ファイルシステム復元手段39
がメタボリューム31内のメタデータの不整合を修正し
た直後には、初期シーケンス番号記憶手段30aに格納
されたシーケンス番号を基準として採番する。
【0053】このようなデータ処理装置によれば、トラ
ンザクション35がメタデータの更新をする際には、ま
ず、メタデータ読み込み手段34によりメタボリューム
31内の必要なメタデータがメタキャッシュ33に読み
込まれる。ここで、トランザクション35がメタデータ
の内容を更新すると、ログ採取手段36によって更新後
のメタデータがログとして採取される。採取した情報
は、ログバッファ37に保持される。そして、ログ書き
込み手段38により、ログバッファ37内の情報がログ
ボリューム32に書き込まれる。その際、シーケンス番
号採番手段30bによりシーケンス番号が昇順で採番さ
れ、書き込むべきログに付与される。また、ファイルシ
ステム復元手段39により、ログボリューム32に格納
されたログを用いてメタボリューム31内のメタデータ
の不整合が修正されると、修正した時に用いられたログ
の最後のシーケンス番号が初期シーケンス番号記憶手段
30aに記憶される。その後、ログ書き込み手段38に
より、ログバッファ37内の情報がログボリューム32
に書き込まれると、シーケンス番号採番手段30bによ
り、初期シーケンス番号採番手段30aに記憶されたシ
ーケンス番号を基準としてシーケンス番号が昇順で採番
され、書き込むべきログに付与される。
【0054】これにより、既にファイルシステムの復元
に用いたログと、ファイルシステム復元後に介したトラ
ンザクションのログとのシーケンス番号が重ならないこ
とを保証することができる。その結果、システムが使用
可能な期間中にログボリュームをゼロクリアする必要が
なくなり、ゼロクリアに伴う処理の遅延を避けることが
できる。
【0055】図4は、第4の発明の原理構成図である。
第4の発明は、同じメタデータに対して複数回更新処理
が行われる場合に、最終形態のメタデータのみをログと
して採取するものである。第4の発明は、以下のような
要素で構成される。
【0056】メタボリューム41は、ファイルを管理す
るメタデータを記憶するための二次記憶装置である。メ
タキャッシュ42は、メタデータを記憶するために主記
憶装置内に設けられた記憶領域である。メタデータ読み
込み手段43は、メタデータの内容が変更される際に、
対象となるメタデータをメタキャッシュ42へと読み込
む。トランザクション44は、メタキャッシュ42内に
読み込まれたメタデータの内容を更新する。ログ採取手
段45は、トランザクション44の種別を判断し、メタ
データの更新を複数回行う可能性のあるトランザクショ
ンの場合には、メタキャッシュ42内で変更されたメタ
データの最終形態のみをログとして採取する。ログバッ
ファ46は、ログ採取手段45が採取した情報を保持す
る。
【0057】このようなデータ処理装置によれば、トラ
ンザクション44がメタデータの更新をする際には、ま
ず、メタデータ読み込み手段43によりメタボリューム
41内の必要なメタデータがメタキャッシュ42に読み
込まれる。ここで、トランザクション44がメタデータ
の内容を更新する。すると、ログ採取手段45により、
トランザクション44の種別が判断され、メタデータの
更新を複数回行う可能性のあるメタデータ属性を予測す
る。予測されたメタデータ属性において、同一メタデー
タが何度も更新される可能性がある場合には、その属性
のメタデータがメタキャッシュ42内で変更された時点
ではログ採取を行わず、トランザクション44が終了し
た時点で、最終形態のメタデータをログとして採取す
る。採取した情報は、ログバッファ46に保持される。
【0058】これにより、複数回更新されたメタデータ
のログを更新処理の度に採取することがなくなり、メモ
リの効率化を図ることができるともに、ログを書き出す
ときのI/Oの量も減らすことができる。
【0059】図5は、第5の発明の原理構成図である。
第5の発明は、メタデータ割り当て管理情報の一部の複
製を生成し、複製として生成した情報内からのみメタデ
ータの獲得を可能とし、解放する際には、割り当て管理
情報においてのみ解放された旨の情報の更新を行うこと
で、解放直後に別のトランザクションに獲得されるのを
防止したものである。第5の発明は、以下のような要素
で構成される。
【0060】割り当て管理情報保持手段51は、メタデ
ータに対する割り当てを管理するための割り当て管理情
報51aを複数の領域に分割して保持する。獲得操作用
管理情報生成手段52は、割り当て管理情報保持手段5
1内の割り当て管理情報の一部領域の複製を生成し、獲
得操作用管理情報51bとする。また、獲得操作用管理
情報51b内に未獲得のメタデータがなくなると、割り
当て管理情報の別の領域の複製を獲得操作用管理情報5
1bとする。トランザクション53は、メタデータの獲
得及び解放要求を出力する。メタデータ獲得手段54
は、トランザクション53によりメタデータの獲得要求
が出された場合には、獲得操作用管理情報51bの中の
未獲得のメタデータを獲得し、獲得したメタデータを獲
得済みとするように獲得操作用管理情報51bと割り当
て管理情報51aとの内容を変更する。メタデータ解放
手段55は、トランザクション53によりメタデータの
解放要求が出された場合には、指定されたメタデータが
未獲得の状態となるように、割り当て管理情報の内容を
変更する。
【0061】このようなデータ処理装置によれば、獲得
操作用管理情報生成手段52により、割り当て管理情報
51aの一部領域の複製が生成され、獲得操作用管理情
報51bとされる。トランザクション53により獲得要
求があると、メタデータ獲得手段54により、獲得操作
用管理情報51b内の未獲得のメタデータが獲得され
る。すると、獲得操作用管理情報51bと割り当て管理
情報51aとの内容が更新される。また、トランザクシ
ョン53よりメタデータの解放要求があると、メタデー
タ解放手段55により該当するメタデータの解放処理が
行われる。この際、割り当て管理情報51aの内容のみ
が更新される。ここで、獲得操作用管理情報51b内に
未獲得のメタデータがなくなると、割り当て管理情報5
1a内の別の領域の複製が獲得操作用管理情報51bと
される。
【0062】これにより、解放された旨の情報が獲得操
作用管理情報51bに反映されないため、解放直後のメ
タデータが他のトランザクションに獲得されることがな
くなる。その結果、解放処理を行ったトランザクション
の終了前にシステムがダウンしても、少なくとも解放前
の状態のまま保全されることが保証される。
【0063】図6は、第6の発明の原理構成図である。
第6の発明は、トランザクション単位に、獲得や解放に
関する情報をログとして記録することで、必要なメモリ
容量の削減を図るとともに、平行動作するトランザクシ
ョンのログに起因して割り当て管理情報に不正な状態が
発生することを防ぐものである。第6の発明は、以下の
ような要素で構成される。
【0064】割り当て管理情報保持手段61は、メタデ
ータに対する割り当てを管理するための割り当て管理情
報を保持する。トランザクション62は、メタデータの
獲得及び解放要求を出力する。メタデータ獲得手段63
は、トランザクション62によりメタデータの獲得要求
が出された場合には、獲得操作用管理情報の中の未獲得
のメタデータを獲得し、獲得したメタデータを獲得済み
とするように割り当て管理情報61aの内容を変更す
る。メタデータ解放手段64は、トランザクション62
によりメタデータの解放要求が出された場合には、指定
されたメタデータ未獲得の状態となるように、割り当て
管理情報61aの内容を変更する。ログ採取手段65
は、割り当て管理情報内のメタデータ獲得手段63及び
メタデータ解放手段64によって変更された部分の情報
をログとして採取する。ログバッファ66は、ログ採取
手段65が採取したログを保持する。
【0065】このようなデータ処理装置によれば、トラ
ンザクション62からメタデータの獲得要求が出される
と、メタデータ獲得手段63によって未獲得のメタデー
タの1つが割り当て管理情報61a内から獲得され、そ
のメタデータが獲得済みの状態とされる。また、トラン
ザクション62からメタデータの解放要求が出される
と、メタデータ解放手段64によって該当するメタデー
タが未獲得の状態に変更される。そして、ログ採取手段
65により、割り当て管理情報61a内のメタデータ獲
得手段63及びメタデータ解放手段64によって変更さ
れた部分の情報がログとして採取され、ログバッファ6
6に保持される。
【0066】このように、獲得、解放のログを採取する
際に、トランザクションが獲得や解放を行ったという情
報のみをログとして格納することで、メモリ等の領域を
効率よく利用することができるとともに、他トランザク
ションによる獲得や解放処理の情報がログに含まれない
ことによって、割り当て管理情報が不正な状態となるこ
とを防ぐことができる。
【0067】図7は、第7の発明の原理構成図である。
第7の発明は、ログバッファを複数設けることにより、
トランザクションの独立性をいっそう高めたものであ
る。第7の発明の構成要素は以下の通りである。
【0068】メタボリューム71は、ファイルを管理す
るメタデータを記憶するための二次記憶装置である。メ
タキャッシュ72は、メタデータを記憶するために主記
憶装置内に設けられた記憶領域である。メタデータ読み
込み手段73は、メタデータの内容が変更される際に、
対象となるメタデータをメタキャッシュ72へと読み込
む。複数のトランザクション74a〜74cは、メタキ
ャッシュ72内に読み込まれたメタデータの内容を更新
する。複数のログバッファ75a〜75eは、ログをト
ランザクション毎に保持する。各ログバッファ75a〜
75eのサイズは一定ではなく、大きなサイズや小さな
サイズが存在する。ログ採取手段76は、メタキャッシ
ュ72内で変更されたメタデータの内容をログとして採
取し、前記トランザクション毎に分けて適したサイズの
ログバッファ75a〜75eに格納する。例えば、最初
にログを格納する場合には、トランザクションの内容に
よって予想される処理に適した大きさのログバッファに
格納し、格納対象となるログバッファの記憶容量が不足
してきたら、より大きな記憶容量のログバッファへログ
を移し替え、以後、より大きな記憶容量のログバッファ
をログの格納対象とする。
【0069】このようなデータ処理装置によれば、トラ
ンザクション74a〜74cがメタデータの更新をする
際には、まず、メタデータ読み込み手段73によりメタ
ボリューム71内の必要なメタデータがメタキャッシュ
72に読み込まれる。ここで、トランザクション74a
〜74cがメタデータの内容を更新する。すると、ログ
採取手段76により、メタキャッシュ72内で変更され
たメタデータがログとして採取され、適したサイズのロ
グバッファ75a〜75eに保持される。
【0070】このように、複数のログバッファに分け、
トランザクション毎に1つのログバッファを使用するよ
うにしたことで、トランザクションの独立性を保つこと
ができる。しかも、複数のサイズのログバッファを用意
し、トランザクション毎に適したサイズのログバッファ
を使用することにより、メモリを効率的に利用できる。
【0071】図8は、第8の発明の原理構成図である。
第8の発明は、あるトランザクションのログがログバッ
ファに入りきらない場合に、中間ログとしてログバッフ
ァの内容を書き出すものである。第8の発明の構成は以
下の通りである。
【0072】メタボリューム81は、ファイルを管理す
るメタデータを記憶するための二次記憶装置である。ロ
グボリューム82は、メタデータの更新結果であるログ
を記憶するための二次記憶装置である。メタキャッシュ
83は、メタデータを記憶するために主記憶装置内に設
けられた記憶領域である。メタデータ読み込み手段84
は、メタデータの内容が変更される際に、対象となるメ
タデータをメタキャッシュ83へと読み込む。トランザ
クション85は、メタキャッシュ83内に読み込まれた
メタデータの内容を更新する。ログバッファ86は、ロ
グをトランザクション毎に保持する。ログ採取手段87
は、メタキャッシュ83内で変更されたメタデータの内
容をログとして採取し、ログバッファ86に格納する。
ログ書き込み手段88は、トランザクション85が終了
した場合にログバッファ86の内容をログボリューム8
2に書き込むとともに、トランザクション85によるロ
グがログバッファ86内に格納しきれない場合には、ロ
グバッファ86内のデータを完結したログに加工し、中
間ログとしてログボリューム82内に格納する。なお、
中間ログを生成する際には、中間ログに対してトランザ
クションを実行するのに必要とされたパラメタに関する
情報を付加する。ファイルシステム復元手段89は、フ
ァイルシステム復元要求を受け取ると、ログボリューム
82に格納されたログを用いて、メタボリューム81内
のメタデータの不整合を修正する。このとき、中間ログ
を発見すると、中間ログに含まれたパラメタを用いてト
ランザクションを再実行させる。
【0073】このようなデータ処理装置によれば、トラ
ンザクション85がメタデータの更新をする際には、ま
ず、メタデータ読み込み手段84によりメタボリューム
81内の必要なメタデータがメタキャッシュ83に読み
込まれる。ここで、トランザクション85がメタデータ
の内容を更新すると、ログ採取手段87によって更新後
のメタデータがログとして採取される。採取した情報
は、ログバッファ86に保持される。そして、ログバッ
ファ86に格納しきれなくなるか、トランザクション8
5が終了すると、ログ書き込み手段88により、ログバ
ッファ86内の情報がログボリューム82に書き込まれ
る。ログバッファ86に格納しきれなくなった場合に
は、ログバッファ86の内容を完結したログに加工し、
中間ログとしてログボリューム82に格納する。そし
て、ファイルシステム復元要求が出されると、ファイル
システム復元手段89により、ログボリューム82に格
納されたログを用いて、メタボリューム81内のメタデ
ータの不整合が修正されるとともに、中間ログまで採取
した段階で停止しているトランザクションが再実行され
る。
【0074】これにより、メタデータの更新を大量に行
うトランザクションの実行中にシステムがダウンした場
合には、途中の状態まで戻すことができるとともに、ト
ランザクションが再実行されることで、トランザクショ
ンの実行後の状態へ遷移させることができる。
【0075】図9は、第9の発明の原理構成図である。
トランザクションの受け入れを一定の条件によって制限
することで、メモリ枯渇等を防止するものである。第9
の発明の構成は以下の通りである。
【0076】メタボリューム91は、ファイルを管理す
るメタデータを記憶するための二次記憶装置である。ロ
グボリューム92は、メタデータの更新結果であるログ
を記憶するための二次記憶装置である。メタキャッシュ
94は、メタデータを記憶するために主記憶装置内に設
けられた記憶領域である。メタデータ読み込み手段93
は、メタデータの内容が変更される際に、対象となるメ
タデータをメタキャッシュ94へと読み込む。互いの同
時実行可能な複数のトランザクション90b〜90d
は、メタキャッシュ94内に読み込まれたメタデータの
内容を更新する。トランザクション受け入れ制限手段9
0aは、トランザクション90b〜90dからの開始要
求を受け付けると、ログ採取に関するシステムの動作状
況に基づいて、トランザクション90b〜90dの受け
入れ許否を判断する。受け入れ判断基準としては、例え
ばログボリューム内の有効なログが占める割合を用い
る。すなわち、有効範囲監視手段99によって有効なロ
グとされたログがログボリューム中に占める割合が一定
値以上である間は、トランザクション90b〜90dの
受け入れを拒絶する。
【0077】ログ採取手段96は、メタキャッシュ94
内で変更されたメタデータの内容をログとして採取す
る。ログバッファ95は、ログ採取手段96が採取した
情報を保持する。ログ書き込み手段97は、ログバッフ
ァ95が保持する情報を、適宜ログボリューム92に格
納する。メタデータ書き込み手段98は、メタキャッシ
ュ94内のメタデータをメタボリューム91内に格納す
る。有効範囲監視手段99は、メタデータ書き込み手段
98による書き込み動作を監視しており、変更内容が前
記メタボリュームに反映されていないメタデータに対応
するログボリューム92内のログを、有効なログとして
指定する。
【0078】このようなデータ処理装置によれば、トラ
ンザクション90b〜90dから開始要求が出される
と、トランザクション受け入れ制限手段90aが受け入
れの許否を判断する。例えば、有効範囲監視手段99に
より有効であると指定されたログのログボリューム92
内に示す割合が一定以上の場合には、それ以上ログが発
生しないように、トランザクションの受け入れを拒絶す
る。その後、メタデータ書き込み手段98によるメタデ
ータの書き込みが進み、有効なログの割合が減少した
ら、その時点でトランザクションの開始要求を許可す
る。
【0079】これにより、ログボリュームの空き容量の
減少に伴うハングアップなどの障害の発生を防止するこ
とができる。次に、本発明の実施の形態を具体的に説明
する。
【0080】図10は、本発明を適用するデータ処理装
置のハードウェア構成図である。データ処理システム
は、CPU(Central Processing Unit)211を中心に
構成されている。CPU211は、バス217を介して
他の機器を制御するとともに、様々なデータ処理を行
う。バス217には、メモリ212、入力機器インタフ
ェース213、表示制御回路214、HDD(Hard Disk
Drive)インタフェース215、及びネットワークイン
タフェース216が接続されている。
【0081】メモリ212は、CPU211が実行すべ
きプログラムや、プログラムの実行に必要な各種データ
を一時的に保持する。入力機器インタフェース213
は、入力機器としてキーボード221とマウス222が
接続されており、これらの入力機器からの入力内容をC
PU211に伝える。
【0082】表示制御回路214は、表示装置223が
接続されており、CPU211から送られてきた画像デ
ータを表示装置223で表示可能な画像情報に変換し、
表示装置223の画面に表示させる。
【0083】HDDインタフェース215は、複数のH
DD231〜233が接続されており、CPU211か
ら送られてきたデータをHDD231〜233に格納す
るとともに、CPU211からの要求に応じてHDD2
31〜233内のデータを読み取り、CPU211に転
送する。
【0084】ネットワークインタフェース216は、L
AN(Local Area Network)に接続されており、LANを
介してデータ通信を行う。すなわち、CPU211から
送られたデータをLANに接続された他のコンピュータ
に転送するとともに、他のコンピュータからLANを介
して送られてきたデータをCPU211に転送する。
【0085】HDD231〜233には、各種ファイル
や、そのファイルを管理するためのメタデータ及びログ
が格納されている。このような構成のシステムにおい
て、CPU211がHDD231〜233に格納された
オペレーティングシステム用のプログラムを実行するこ
とにより、本発明のログ採取機能が実現される。
【0086】図11は、ファイルシステム上で動作する
ログ採取機能の構成図である。図のように、ファイルを
管理するためのメタボリューム111〜113も複数設
けられている。メタボリューム111〜113には、そ
れぞれメタデータが格納されている。メタデータは、フ
ァイルの格納場所等を管理するために必要な情報を有し
ている。
【0087】ログボリューム120は、ログ122を格
納するための二次記憶装置である。ログボリューム12
0には、ログ122の他にボリューム管理情報121が
格納されている。
【0088】メタキャッシュ130は、メタデータを操
作するためのメモリ上の領域である。メタキャッシュ1
30内には、操作対象となるメタデータ132とそのメ
タデータの割り当て管理情報131とが格納される。
【0089】ログキャッシュ140は、複数のログバッ
ファ141〜144を有している。ログバッファ141
〜144のサイズは均一ではなく、大きなサイズのもの
や小さなサイズのものがある。これらのログバッファ1
41〜144には、メタキャッシュ130内で更新され
たメタデータの複製がログとして格納される。
【0090】ログキャッシュ140とは別にログライト
バッファ150が設けられている。ログライトバッファ
150には、トランザクションの処理が終了した時点
で、ログバッファ141〜144内のログが転送され
る。
【0091】この例では、複数のトランザクション10
1〜103が並列動作している。このトランザクション
101〜103は、ファイルシステムオペレーションを
分割したものである。
【0092】実際にI/Oを行うのは2つのデーモンで
あり、それぞれをメタライトデーモン104、ログライ
トデーモン105と呼ぶ。ログライトデーモン105が
ログをログ専用の二次記憶装置であるログボリューム1
20に出力する。メタライトデーモン104は、ログボ
リューム120に対してログが出力されたことを確認し
た後、そのログに対応するメタデータをメタデータ専用
の二次記憶装置であるメタボリューム111〜113に
出力する。
【0093】さらに、本発明のログ採取機能では、以下
のような特徴を有している。第1の特徴は、各メタデー
タに対応するメタデータ管理情報として、メタボリュー
ムを識別する情報が付加されていることである。これ
は、大規模ファイルシステムに対応するためのものであ
る。すなわち、複数の二次記憶装置がメタボリューム1
11〜113として定義される場合に、メタキャッシュ
130上のメタデータ管理情報にそのメタデータが存在
するボリュームの情報を持たせている。
【0094】図12は、メタデータ管理情報を示す図で
ある。メタデータ管理情報には、「ボリューム番号」、
「メタデータ番号」、及び「メタデータポインタ」が登
録されている。「ボリューム番号」には、対応するメタ
データが存在するボリューム番号が登録されている。
「メタデータ番号」には、ボリューム毎におけるメタデ
ータ管理番号が登録されている。すなわち、システムが
認識するボリュームのデバイス番号とそのボリューム内
の位置から算定される数値によってメタデータが管理さ
れ、メタデータ自体がそれらの値を管理情報として保持
する。「メタデータポインタ」には、メタデータの実体
のある場所を指し示している。
【0095】このようなメタデータ管理情報を有するメ
タデータの内容が更新されると、更新後のメタデータの
内容がログとしてログバッファに記録されるとともに、
メタデータ管理情報の内容がログに記録される。
【0096】図13は、ログバッファの形式を示す図で
ある。ログバッファには、「BEGINマーク」、「ボ
リューム番号」、「メタデータ番号」、「メタデータ実
体」、及び「ENDマーク」の情報を含んでいる。
【0097】ファイルシステムを復元する際には、ログ
内に記されているボリューム番号によって、そのログに
よって復元すべきメタデータの存在するメタボリューム
が認識される。これにより、従来技術のようにファイル
システム復元時にメタデータ番号からその存在すべきボ
リュームを決定するよりも速度向上が望め、システムダ
ウン後の大規模ファイルシステムにおいてもログ機構導
入によるファイルシステム復元時間の短縮が有効に機能
する。
【0098】第2の特徴は、メタキャッシュ130内で
更新されたメタデータが、それぞれの管理構造にリンク
ポインタを持つことである。ログとしてログボリューム
120に記録されたメタデータはメタライトリストに繋
がれ、メタボリュームヘ反映が完了した時点でこのメタ
ライトリストから外される。さらに、ログとして記録さ
れているログボリューム120内の位置情報をも、メタ
ライトリスト内に持つ。このログボリューム内位置情報
をリストを辿って検索することによって、システムダウ
ン時に必要とされるログの範囲を特定することができ
る。そこで、ここから得られる有効範囲情報をログボリ
ューム120の特定位置に設けたボリューム管理情報1
21内に記録する。有効範囲情報を記録し、ファイルシ
ステム復元時にそこに含まれるログのみをリプレイする
ことにより、ログボリューム全体を検索する必要がなく
なり、ログボリューム全体を読み込む必要のある、有効
範囲情報を記録しない従来の方式よりもファイルシステ
ムの復元時間をさらに短縮することができる。
【0099】ところで、ログ機構はシーケンシャル性を
持ったディスクアクセスを行うことで、記録すべき内容
をヘッドシークすることなしにディスクヘ保存でき、デ
ィスクアクセス時間の短縮を図っている。ところが、本
手法を採用した場合、メタデータのメタボリューム反映
時、ログボリュームヘの書き出し時に、ログボリューム
の特定位置に有効範囲情報を書き出すこととなる。これ
ではシーク削減の意図が全く意味を成さない。
【0100】そのため、本実施の形態ではある程度のイ
ンターバルを空けて、有効範囲情報は書き出すように工
夫した。変更がある度に、常に書き込まれるわけではな
いため有効範囲情報として保存されている情報には若干
の誤差が含まれてしまう。ファイルシステム復元時にそ
の誤差を吸収する必要がある。
【0101】図14は、有効範囲を説明する図である。
図中において、「●」で示すのが、まだメタボリューム
に反映が終了しておらず、ファイルシステム復元に必要
なログを意味する。「○」で示すのは、メタボリューム
に反映が完了したことによって、ファイルシステム復元
時には利用しなくても良いログである。
【0102】従来のファイルシステムにおいて、ログを
用いたファイルシステム復元では、ログボリューム全体
を検索し,ログに記録されたシーケンス番号から、最古
のログを求め、たとえそれがメタボリュームに反映済み
の、利用しなくても良いログであっても利用して、ログ
ボリューム全体のログを用いていた。
【0103】本発明では、ある時点で有効範囲情報を書
き出した時の有効範囲が示されている。その後、有効範
囲を書き出さずに、メタボリュームヘの反映が進み、ま
た、別のトランザクションのログがログボリュームに書
き出されたことによって、実際の有効範囲と有効範囲情
報とはズレを生じている。この時点でシステムがダウン
し、ログを用いてファイルシステムを復元する場合に
は、多少のムダが生じるが、有効範囲情報が示す先頭位
置から、ログを利用する。利用すべきログの末端は有効
範囲情報以降の一定範囲を検索しなければならないが、
その検索は有効範囲情報を書き込むインターバルに依存
し、範囲が限られている。
【0104】第3の特徴は、ログに対してトランザクシ
ョン終了時にシーケンス番号を与え、その番号にはデー
タサイズが肥大化することを考慮に入れた上で、十分大
きいデータ型を適用することである。データ型の大きさ
は、コンピュータ自身の使用可能年数の間使い続けても
枯渇しない程度のサイズとする。例えば、システムの日
時表記を4桁の十進数「1999」で表していた場合、
西暦1万年まで使用されることは想定されていない。そ
の場合、西暦9999年まで使用可能なデータ型とすれ
ば、ログに対するシーケンス番号がオーバーフローして
逆転することがないことを保証することができ、それに
より、ログボリューム全体をゼロクリアして初期化する
必要が生じない。具体的には、データ型を64ビット型
とすれば、オーバーフローすることは現実にはありえな
い(4万年ほど耐えられるものと思われる)。ファイル
システム管理情報、各トランザクションのログ、有効範
囲情報にこのシーケンス番号を含め、ログボリュームに
記録する。このように、ログに与えるシーケンス番号の
データ型に十分大きいものを適用することにより、通常
の運用時にトランザクションが動作する毎にインクリメ
ントしても、オーバーフローは現実には起こり得ない。
【0105】さらに、スーパブロックと呼ばれるファイ
ルシステム全体の管理情報にこのシーケンス番号を含
め、正常なアンマウント処理時及びファイルシステム復
元時にスーパブロックに含まれるシーケンス番号を正し
く設定し、次回のマウント時にそこから得られる値を用
いる。これにより、シーケンス番号は必ず昇順となるこ
とが保証され、ファイルシステム復元時に新しいログを
古いものと取り違えないことが保証される。
【0106】シーケンス番号の順序性を保証することに
よって、ファイルシステム復元時にログボリュームをゼ
ロクリアしなくとも、常に正しいログを利用することが
可能となり、ファイルシステム復元時にログボリューム
全体をゼロクリアするのに比べ、大幅な時間短縮が可能
となる。
【0107】以上の理由により、ログの最大のメリット
であるファイルシステム復元の時間短縮がより一層有効
に機能することが可能となる。第4の特徴は、トランザ
クションによって更新されたメタデータが、そのメタデ
ータの属性に応じ、再度同一のトランザクションにおい
て更新される可能性のあるメタデータであった場合に
は、更新の時点ではログバッファにはコピーせず、リス
ト構造(トランスリスト)によって管理することであ
る。
【0108】そして、同一トランザクション内で複数回
更新されるメタデータとして、領域割当て管理情報をリ
スト構造で管理し、トランザクション進行中にはその中
途段階のログは採取しない。トランザクション終了時に
リスト構造を辿って、トランザクションの更新の最終状
態のみを一括してログとすることによって、ログの縮小
が図られ、それに伴いファイルシステム復元時間の短縮
が可能となる。
【0109】具体的には、メタキャッシュ130内のメ
タデータを管理する構造にトランスリストヘのリンクポ
インタを持たせることによって実現している。トランザ
クションによって更新されたメタデータは、ただ一回し
か更新されないことが分かっているメタデータである場
合には、その時点でログバッファヘコピーされるが、以
降もトランザクション進行中に更新される可能性がある
場合には、このリンクポインタを用いてリスト構造に繋
がれる。メタデータの更新可能性の有無は、トランザク
ションの種別で判断する。例えば、データ領域の空きな
どを管理するためのトランザクションでは、何度もメタ
データが更新される。
【0110】そして、トランザクションが終了する時に
このトランスリストを辿り、メタデータの最終形態をロ
グバッファヘコピーする。すると、結局はトランザクシ
ョンが同一メタデータを複数回更新しても、最終形態の
一回だけのログ採取で済まされる。
【0111】図15は、ログ採取処理のフローチャート
である。この処理は、オペレーティングシステムを実行
するCPUが行う処理である。以下、CPUがオペレー
ティングシステムを実行することにより実現する機能
を、単に「システム」ということとする。 [S1]トランザクションの開始宣言を行う。 [S2]ログ採取要求を行う。 [S3]対象メタデータの更新可能性の有無を判断す
る。更新可能性があればステップS5に進み、そうでな
ければステップS4に進む。 [S4]ログバッファへメタデータをコピーし、ステッ
プS2に進む。 [S5]対象メタデータはトランスリストに繋がれてい
るか否かを判断する。トランスリストに繋がれていれば
ステップS7に進み、そうでなければステップS6に進
む。 [S6]メタデータ毎にトランスリストに繋ぐ。 [S7]トランザクションの処理が終了するか否かを判
断する。終了するのであればステップS8に進み、そう
でなければステップS2に進む。 [S8]トランザクション終了宣言を行う。 [S9]トランスリストを辿り、繋がれている最終形態
のメタデータをそれぞれログバッファへコピーする。
【0112】このようにして、トランザクションの更新
の最終状態のみを一括してログとして保存することがで
きる。第5の特徴は、メタボリュームの割当て管理情報
は獲得用として通常の割当て管理情報の複製を新たに設
けたことである。ここで、割り当て管理情報として、ビ
ットマップを例に挙げて説明する。
【0113】図16は、メタボリュームの割り当て管理
状況を示す図である。割り当て管理情報131には、使
用されているメタデータを管理するためのビットマップ
131aが用意されている。ビットマップ131aは複
数のブロックに分けられている。そして各ブロックのビ
ットマップの各ビットが「0」か「1」かによって、対
応するメタデータが空いているか否かが示される。そし
て、ブロックに分けられたビットマップの1つの複製が
作られ、獲得用ビットマップ131bとされる。
【0114】獲得時には、通常のビットマップ操作と同
様に未割り当て状態の領域の検索が行われる。この時、
検索対象として用いるのは獲得用ビットマップ131b
である。獲得用ビットマップ131b内から未割り当て
状態の領域(ビットが立っていない)が見つかった時に
は、その獲得要求には見つかったビット番号を返す。そ
して、獲得用ビットマップ131b及び、その複製元と
なったビットマップの対応ビットを立てる。一方、獲得
用ビットマップ131b内から未割り当て状態の領域が
見つからなかった時には、別のブロックのビットマップ
の複製を生成し、新たな獲得用ビットマップ131cと
する。
【0115】図17は、ビットマップによるメタデータ
獲得処理を示すフローチャートである。この処理は、シ
ステムが行う処理である。 [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」状態となる。
【0116】このようにして、空きのビットマップを獲
得できる。解放時にも、通常のビットマップ操作と同様
に、要求された領域が対応するビットの算出がまず行わ
れるが、対応するビットを落とす操作は、対象のビット
マップに対してのみ行い、仮にその対象ビットマップの
複製が獲得用ビットマップとして存在する場合にも、そ
の獲得用ビットマップに対しては行わない。
【0117】図18は、解放処理のフローチャートであ
る。この処理は、システムが行う。 [S31]解放要求を出す。 [S32]対象ビットマップがメモリ(メタキャッシュ
130)上にあるか否かを判断する。対象ビットマップ
があればステップS34に進み、そうでなければステッ
プS33に進む。 [S33]メタボリューム111〜113上の対象ビッ
トマップをメモリ(メタキャッシュ130)上に読み込
む。 [S34]対象ビットマップの対応するビットを落と
す。 [S35]対象ビットマップに「FreeDirty」フラグを
立てる。
【0118】この一見複雑に見える作業によって、解放
した領域を即座に別の用途に利用してしまうことを回避
することが可能となり、システムダウン時に中途までし
か終了していなかった解放トランザクションが解放した
はずである領域は、解放される直前の状態のまま保全さ
れることが保証できる。
【0119】例えば、Aというトランザクションが解放
処理、Bというトランザクションが獲得処理を行う場合
を考える。ここで、トランザクションAの解放処理はト
ランザクションBの獲得処理よりも先に行われ、かつ、
トランザクションAはトランザクションBよりも後に終
わる場合を例に挙げる。
【0120】図19は、トランザクションの処理の獲得
と終了の状況を示す図である。この図において、各トラ
ンザクションは「BEGIN」で始まり、「END」で
終わることを意味し、トランザクションの「○」が解放
処理を、「●」が獲得処理を意味する。
【0121】上図のように、トランザクションAの解放
処理がトランザクションBの獲得処理よりも先に行わ
れ、かつ、トランザクションBのほうがトランザクショ
ンAよりも先に終了した場合に従来のログ採取方式では
問題が生ずることは既に述べた。
【0122】本発明が提案する手法を用いれば、トラン
ザクションBが獲得する領域がトランザクションAが解
放した領域となることは基本的にはなく、領域枯渇状態
に近く、どうしてもこの領域を獲得せねばならない時に
は、一旦、該当ビットマップをメタボリュームに反映し
た後、獲得処理が行われる。これにより、ファイルシス
テム復元時に必要とされる、メタボリュームに未反映な
メタデータを対象とするログを用いた復元では、管理情
報上、二重獲得と見えるようなログは残り得ない。
【0123】また、トランザクションBのログにはトラ
ンザクションAの解放処理が記録されないため、トラン
ザクションBのログよりも後に復元に用いるトランザク
ションAのログによって、トランザクションBが獲得し
た領域を変更されることもありえない。
【0124】第6の特徴は、前述のようにログ機構の導
入にあたり、獲得・解放操作のログとして、その獲得・
解放した対象の情報(このビットを立てた・落した)の
みを記録することである。これによって、複数の獲得・
解放要求に対して、要求の発生後、トランザクションの
終了時点までをシリアライズすることなくログ管理で
き、かつログ採取量は減少し、複数トランザクション動
作による変更をメタボリュームヘ反映する回数をも減少
させることができる。
【0125】第7の特徴は、ログキャッシュ140を複
数のログバッファで管理し、この時、いくつかの異なる
サイズとすることである。ログキャッシュ140を分割
して複数のログバッファとして管理することによって、
トランザクションの独立性を確立することが容易となる
とともに、有限なメモリ空間を有効に活用することが可
能となる。
【0126】まず、トランザクションがメタデータを更
新するより以前に、自分がメタデータを更新する旨、シ
ステムに宣言する。この時、トランザクションの種別よ
り予測されるログ採取情報に応じて、最適なサイズのロ
グバッファがシステムより与えられ、トランザクション
進行に伴い蓄積されるログはここへ溜められることとな
る。上記第6の特徴で説明した手法に加え、トランザク
ション毎に異なるログバッファを用いることによって、
複数のトランザクション更新の混じらない、純粋なログ
として残すことが可能である。
【0127】第8の特徴は、上記第7の特徴で説明した
手法に加え、トランザクションの開始時に予測したログ
採取量よりも多くのログを採取しなければならなかった
場合に、与えられたログバッファから、さらに大きいロ
グバッファへ移行することである。システムの状況に応
じて、トランザクションによって残されるログのサイズ
は変動し、その差異を複雑な処理を必要とせず、かつ、
有限なメモリ空間を有効に活用して吸収することが可能
である。
【0128】第9の特徴は、ログバッファに入りきらな
い場合には、ログボリュームへ中間ログを書き出すとと
もに、中間ログを書き出すことによる矛盾の発生を防止
する機能を備えたことである。
【0129】ログボリュームに対するI/O発行を減少
させるために、ログライトバッファと呼ぶ二次キャッシ
ュ領域を設けている。終了したトランザクションのログ
は、ログバッファからこのログライトバッファヘ移さ
れ、適時にログライトデーモン105によってログボリ
ュームヘ書き出される。この適時とは、負荷が低い場合
には一定の周期で良いが、トランザクションによるメタ
データの更新量が多く、最大のログバッファでも収まら
ない場合などには強制的なI/O発行が必要とされる。
このような場合において、中途の段階でのログの出力で
は、まだ更新されていない(かもしれない)メタデータ
を含めた書き出しをファイルシステムの整合性を保つた
めには必要である。
【0130】このように有限なメモリ空間を有効活用す
ることを考慮した上で、ログバッファ内に収まりきらな
いログをトランザクション途中で出力する時に、残され
るログによって復元されるファイルシステムの整合性を
正当なものとするための手法を提案している。
【0131】ファイルシステムに対する負荷がそれほど
高くない場合には、ログのログボリュームに対するI/
Oを極力少なくするために事前に与えられた周期に応じ
て定期的にデーモンによって行われる。しかし、ログバ
ッファが枯渇し、以降のトランザクション進行で溜めら
れるログが収まらないと判断された時、部分的なログと
して、この時点のログをログボリュームヘ出力する。こ
の時、まだ更新されていない情報をもログに出力する。
例えばファイルを追加ライトするトランザクションの場
合は、部分的なログを出力する時点でのファイルサイズ
や時刻情報を合わせてログに記録する。これによって、
部分的であるはずのこのログを、ファイルシステム復元
時には完結した1つのトランザクションのログと同等に
扱うことが可能となり、ファイルシステム復元時に複雑
な考慮の必要なしに、望ましい状態にファイルシステム
を復元することが可能となる。
【0132】図20は、ログバッファへのログの格納状
況を示す図である。この例では、2種類のサイズのログ
バッファ141〜146が設けられている。ログバッフ
ァ141〜145は通常のサイズであり、ログバッファ
146が大きなサイズである。
【0133】また、ログバッファ141〜146を管理
するためのログバッファ管理テーブル148,149が
設けられている。ログバッファ管理テーブル148は、
ログバッファ141〜146に対応するフラグビットを
有している。そして、使用されているログバッファに対
応するフラグビットの値が「1」に設定され、未使用の
ログバッファに対応するフラグビットの値は「0」に設
定されている。同様に、大きいサイズのログバッファ1
46に対応するログバッファ管理テーブル149もフラ
グビットを有しており、そのフラグビットの値によっ
て、ログバッファ146が使用されているか否かを管理
している。
【0134】ログキャッシュ140内の各ログバッファ
141〜145のうち、ログバッファ143とログバッ
ファ145とが現在利用中であることを意味するため
に、「●▲」などの記号を用いた。ここで、ログバッフ
ァ145には多くのログが溜まっており、既に満杯の状
態となっている。このように通常のサイズのログバッフ
ァ141〜145では容量が足りなくなった際には、そ
のログを大きいサイズのログバッファ146に移動す
る。そして、トランザクションが継続している間は、更
新されたメタデータの内容を、随時ログバッファに格納
していく。ここで、トランザクションが終了したら、そ
のトランザクションに対応するログバッファの内容をロ
グライトバッファ150へ転送する。
【0135】ログライトバッファ150には、複数のバ
ッファ151,152が設けられており、それらのバッ
ファ151,152にログが書き込まれる。ログライト
バッファ150内のログは、ログライトデーモン105
によって随時ログボリュームに書き込まれる。
【0136】図21は、ログ採取手順を示すフローチャ
ートである。これはシステムが行う処理である。 [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宣言を行い、処理を終了する。
【0137】第10の特徴は、トランザクションが完了
する前に、システムダウンが発生した場合に備え、分割
して出力するログにはトランザクションに与えられたパ
ラメタを含め、ファイルシステム復元時にそのパラメタ
を元に、再度トランザクションを実行することである。
【0138】さらに、この部分的なログにトランザクシ
ョンに与えられたパラメタを記録し、ファイルシステム
復元時にそれを用いて、通常のログだけでは中途で終わ
った状態までしか復元できないファイルを、トランザク
ションが終了した状態にまでファイルシステムに反映す
ることが可能となる。
【0139】図22は、ファイルシステム復元処理を示
すフローチャートである。これはシステムが行う処理で
ある。 [S61]システムダウン等が発生する。 [S62]ファイルシステムの異常を検知する。
【0140】以降、ファイルシステム復元処理を行う。 [S63]ログ開始マークを検出する。 [S64]ログ開始マークに対応するログ終了マークが
存在するか否かを判断する。ログ終了マークが存在すれ
ばステップS65に進み、ログ終了マークが存在しなけ
ればステップS66に進む。 [S65]開始マークから終了マークまでのログを用い
て復元処理を実行する。その後、ステップS63に進
む。 [S66]対象トランザクションが以前のログだけで完
結するか否かを判断する。完結するのであれば復元処理
を終了し、完結しないのであればステップS67に進
む。 [S67]ログに記録されたパラメタを読み込む。 [S68]トランザクションとして行いたかった処理を
理解する。 [S69]ファイルに対して直接処理を再実行する。そ
の後、復元処理を終了する。
【0141】これにより、オペレーションのセマンティ
クスを保証したファイルシステムの復元が可能となり、
従来技術では完全に元に戻す、または完全に再実行する
ことが不可能であったトランザクションを、完全に再実
行することによってファイルの整合性をも回復すること
が可能となる。
【0142】第11の特徴は、メタデータを更新するト
ランザクションが更新処理を行う前に、その旨をシステ
ムに対し宣言することである。さらに、システムは宣言
を受け入れるか否かを判断する機構を持つことである。
ここでは、以下の条件の場合には新規のトランザクショ
ンの受け入れを拒否し、拒否されたトランザクションは
再度認可が下りるまで待合わせなければならない。 ・メタキャッシュ130がフルに近い状態にある場合。 ・トランザクションの多重度が、システムで規定された
値を既に越えていた場合。 ・ログボリュームに残されたログの大部分が有効なログ
状態である場合。
【0143】これらの場合に、ファイルシステムが新規
トランザクションの受け入れを拒否し、トランザクショ
ンの多重度を宣言することによって、結果としてダーテ
ィなメタデータの数を制限することが可能となり、メタ
キャッシュ130の空き領域枯渇などを要因とするハン
グアップ状態に陥ることを回避することが可能となる。
特に、分割ログとしてログ採取しなければならないトラ
ンザクションが動作中に、新規トランザクションの開始
を拒否することは、システムの状態を正常に維持する上
で効果が高い。
【0144】第12の特徴は、新規トランザクションの
受け入れ拒否の機構をログボリューム内の有効ログの割
合に応じて適用することにより、単一の、多数のメタデ
ータを更新するトランザクションのみならず複数のトラ
ンザクションが更新したメタデータによって空き領域の
減少に伴うハングアップ状態をも回避することである。
【0145】以下に、第11の特徴と第12の特徴とを
含むトランザクションの受け入れ処理について説明す
る。図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]トランザクションは、必要に応じてログ採取
を繰り返した後、自己のトランザクション処理を終了す
る。
【0146】次に、本発明を適用したシステムの具体的
な処理内容について説明する。本発明の全ての特徴を備
えたシステムにおけるログ採取手順は以下のようにな
る。ファイルシステムオペレーションを分割したトラン
ザクションはメタデータを更新するより前に、自分がこ
れからメタデータを更新する旨を宣言する(BEGI
N)。BEGIN時にトランザクションに対し、独立し
たログバッファが割当てられる。この時、既にトランザ
クションの並列動作数が非常に多かったりメタキャッシ
ュ130域の利用率が高い場合には、システムによって
BEGIN宣言が拒否される。BEGIN宣言を拒否さ
れたトランザクションはその許否理由が解消されるま
で、待ち合わせなければならない。
【0147】更新が完了したメタデータは、BEGIN
時に割り当てられたログバッファヘコピーされる。それ
と同時にメタデータ種類に応じたリストへ繋がれる。更
新すべき全てのメタデータを更新し終わったトランザク
ションは、そこで完了を宣言する(END)。END時
には、これまで溜めたログバッファの内容をログ専用の
二次キャッシュであるログライトバッファヘ移動し、さ
らに、まだログバッファヘコピーされていなかったメタ
データをログライトハッファヘコピーする。
【0148】また、END時にメタデータの種類に応じ
て繋がれていたリストから、そのトランザクションが更
新した全てのメタデータを「ログ待ちリスト」へ繋ぎ替
える。
【0149】以上で非同期要求のトランザクションは終
了することができる。トランザクションが同期要求であ
った場合には、ログを書き出すまで待ち合わせなければ
ならない。
【0150】ログの書き出しは独立したデーモン(ログ
ライトデーモン105)が行う。このデーモンの起動契
機は、同期要求トランザクションによる起動要求(wa
keup)、メタキャッシュ130の空き状態監視機構
による起動要求(wakeup)、及びタイマである。
【0151】起動したログライトデーモン105は複数
のトランザクションのログがまとめられたログライトバ
ッファを1つのI/Oとして発行する。そして、ログ待
ちリストから「書き出しリスト」ヘメタデータを移動す
る。
【0152】メタボリュームヘI/Oを発行するのは、
メタライトデーモン104の役割である。メタライトデ
ーモン104は書き出しリストに繋がれたメタデータを
順に非同期ライトによってメタボリュームに反映する。
メタライトデーモン104の起動契機は、ログバッファ
の空きが少なくなった時、ログボリュームの空きが少な
くなった時、及びタイマである。
【0153】以上で、メタデータを更新するトランザク
ションの開始から、更新されたメタデータがメタボリュ
ームに反映されるまでの大まかな流れである。以降に、
ログの採取とそのディスク反映手法、そして、メタデー
タのディスク反映の処理について詳細に説明する。 (1)ログの構造 (1.1)ログボリューム ログボリュームに格納される情報は、以下のような情報
である。
【0154】ログボリュームにはスーパブロック、ボリ
ューム管理情報が先頭にある。その次にログの有効範囲
を示す構造体を記録する。構造体は以下のメンバを持
つ。 ・有効ログ先頭のログボリューム内オフセット ・有効ログ先頭のログシーケンス番号 ・有効ログ末尾のログボリューム内オフセット ・有効ログ末尾のログシーケンス番号 ただし注意しなければならないのは、ここで先頭・末尾
と言っているのは、真の値ではない可能性があることを
リプレイ時に考慮しなければならない点である。なぜな
ら、ログはボリュームをシーケンシャルアクセスするこ
とによってシーク時間の短縮を計っているが、このよう
にボリュームの一部へ毎回アクセスしたのでは、そのシ
ーケンシャル性が損なわれてしまう。そのために、ログ
の書き出し毎にはこの有効範囲の書き出しは行わず、数
回に一回、書き出している。
【0155】これにより、上記構造体に収められたオフ
セットは正確ではないためにリプレイ時に検索が必要で
はある。しかしながら、全体を検索するよりも大幅に検
索量が減るため、利点は保持できるものと考える。
【0156】上記以外は、全て、メタデータの更新履歴
によって構成される。 (1.2)ログブロックの基本構造 ログボリューム120内に残されたログ(メタデータの
更新情報)は基本的にはトランザクション単位である。
これをログブロックと呼ぶ。しかし、キャッシュ域フル
などによって、1つのトランザクションを一度にまとめ
ることができない場合は複数の分割ログに分ける。この
分割ログをサブトランザクションログと呼ぶ。
【0157】サブトランザクションログをリプレイする
ことによって、ファイルシステムの整合性が保てるよ
う、その内容は工夫されている。しかしながら、トラン
ザクションの途中までのサブトランザクションをリプレ
イしたのでは、トランザクション全体が終わっていない
ことから、ファイルシステムとしての整合性が保てて
も、ファイルの中身は異常であるという状態に陥ってし
まうことが考えられる。
【0158】この状態を回避するために、そのサブトラ
ンザクションに別れたトランザクションがどのようなオ
ペレーションであったかをログに採取する(オペレーシ
ョンログ)。ログリプレイ時には、サブトランザクショ
ンをリプレイした後、オペレーションログをリプレイヤ
が再実行することによって、トランザクション全体が終
わった状態とすることが可能である。
【0159】サブトランザクション化する可能性のある
トランザクションは全体終了時に「終わったこと」をロ
グに記録し(最終ENDマーク)、リプレイヤはその有
無を調べてオペレーションログの実行を判断する。 (1.3)ログの採取形式 メタデータの更新情報は該当するメタデータの管理構造
単位で採取する。また、メタボリュームの管理構造であ
るビットマップはその更新部分だけのログ採取とする、
スーパブロックについては特殊であり、データ空き容量
についてのみログ採取を行う。 (1.3.1)inode、Vデータ、空き管理情報 ファイルの管理情報であるiノード、Vデータと呼ぶデ
ィレクトリやシンボリックリンクデータや空き管理情報
のメタデータ本体は、それらのI/O単位(ブロック単
位)でのログ採取を行う。
【0160】これは、ファイルシステム整合性チェック
処理であるfsckによるログリプレイ時の処理を簡略
化することを意識している。変更された部分だけをログ
採取した場合、ログリプレイ時には、該当ブロックの算
定→読み込み→変更部分の更新→再度書き込み、とステ
ップが増えてしまう。しかし、ブロック全体のログ採取
によって、リプレイ時にはメタボリュームにログ情報を
上書きするだけでよい。
【0161】iノード本体やディレクトリブロックなど
のVデータは、更新中はファイルのロックで保護されて
いる。しかしながら、空き管理情報についてはファイル
のロックでは保護されない。そのため、トランザクショ
ン途中で他トランザクションによって更新され、そのト
ランザクションが追い越して先に終わってしまうと、ロ
グには古い情報が後に残されてしまい、リプレイすると
ファイルシステムに不整合が生じてしまう。
【0162】そのため、空き管理部については、ここで
は更新するトランザクションが並行動作しないことを保
証することによって実質的な排他制御を行い、他のメタ
データと同じ採取形式とした。 (1.3.2)ビットマップ メタデータの割り当て状況を管理するビットマップも空
き管理部と同様にファイルのロックで保護されていな
い。そのため、ビットマップ全体のログ採取を行うと、
そのログには複数のトランザクションによる更新が含ま
れてしまう可能性がある。特に、トランザクションの追
い越しが発生すると、新しいはずのログによって、ビッ
トマップの情報が古く書き戻されてしまうことが考えら
れる。
【0163】そこで、ビットマップのログ採取は更新部
分だけとする。更新部分とは、あるビットが0になっ
た、あるいは1になったと記録するだけである。それに
より、トランザクションが並行動作してもそれぞれのト
ランザクションが更新した内容のみがログに残されるた
め、メタデータの後退は起こり得ない。
【0164】注意すべきは、ある領域を解放(「1→
0」)した後、他トランザクションがそこを獲得(「0
→1」)した場合である。トランザクションの追い越し
が発生すると、ログリプレイによって獲得した領域を解
放してしまう。
【0165】これについては、アロケート用ビットマッ
プを1つ定め、複製を用いて操作を行うことによって回
避する。 (1.4)ログの記録構造 (1.4.1)一般ログ 有効状態であっても、ある程度の複数スレッドが同時に
進行することを許す。これは性能要件より必須である。
しかし、ログボリューム内のログは前述の通り、トラン
ザクション毎に保存する。1つのトランザクション結果
をログに記録する際、ログは以下のパーツで構成する。 1)BEGINマーク 2)ヘッダ 3)更新内容 (2)+3)の繰り返し) 4)ENDマーク これを以下、ログブロックと呼ぶ。ログブロックはログ
ボリュームの物理ブロック境界から始まるが、その終わ
りは物理ブロック境界であるとは限らない。 1)BEGINマーク トランザクションの開始時に作成される情報であり、以
下の内容を含む。 ・マジックワード ・トランザクションタイプ ・ログシーケンス番号 ・ログブロックサイズ マジックワード:1つのトランザクションが始まったこ
とを示すマジックワードを埋め込む。
【0166】トランザクションタイプ:BEGINマー
クにトランザクションのタイプ(種類)を埋め込むこと
によって、その後ろの更新情報に含まれる内容の概要を
事前に知ることが可能。
【0167】ログシーケンス番号:ログに記録されたト
ランザクション毎にインクリメントされる数値。このカ
ウンタが最小のログブロックがそのログボリューム内で
最も古いトランザクションであることを示す。カウンタ
は64ビット型とし、オーバーフローすることは現実に
はありえない(4万年ほど耐えられるものと思われ
る)。ログリプレイ時に、ログボリュームをゼロクリア
することにより、再度0から開始することも考えられる
が、リプレイ時間の短縮を考慮し、利用したログの最後
のシーケンス番号より昇順に採番することによりゼロク
リアを回避する。
【0168】ログブロックサイズ:ログブロックのEN
Dマークまでのサイズを記録する。BEGINマークの
先頭からENDマークの先頭までのサイズである。リプ
レイ時にはBEIGNマークの先頭からこのサイズだけ
移動し、ENDマークの情報を参照して、ログの有効性
を判定する。 2)ヘッダ 更新されたメタデータについて、その保管位置を特定す
るための情報であり、以下のメンバによって構成され
る。 ・メタデータタイプ ・メタボリューム番号 ・ボリュームローカルメタデータ番号 メタデータタイプ:更新情報の後方にある又データ更新
内容が何のメタデータであるのかを特定するために用い
られ、リプレイヤはここから更新内容のサイズを判断す
る。
【0169】メタボリューム番号:メタデータ管理で用
いているメタボリューム毎の番号を記録する。リプレイ
時には、この番号から書き戻すメタボリュームを決定す
る。ボリュームローカルメタデータ番号:メタデータ管
理で用いている、メタボリューム毎、メタデータ毎に0
から始まる値を記録する。リプレイ時には、この番号か
らメタボリューム内のブロック位置に変換し、更新内容
を書き戻す。これはブロック位置変換を削減することに
よるログ採取の高速化が狙いである。対象がビットマッ
プである場合には、変更されたビットが該当するメタデ
ータ本体のメタデータ番号を記載する(ビットマップ番
号ではない)。 3)更新内容 メタデータ本体の場合には、更新内容が含まれるブロッ
ク(それぞれのメタデータの管理単位)である。例え
ば、ディレクトリブロックが更新された場合には102
4バイトのディレクトリブロック全体である。
【0170】ビットマップの場合には、全体ではなく、
ここには「0→1」または「1→0」という情報だけ記
録する。リプレイ時にはヘッダから該当するビットマッ
プを判定し、それを読み込み、ここの内容から該当ビッ
トを変更して書き戻す。 4)ENDマーク BEGINマークに対応するマジックワード、ログシー
ケンス番号、ログブロックサイズを記録する。
【0171】ENDマークがマジックワードとログ番号
だけでは、メタデータの内容によってはそれが偽りのE
NDマークとして見えてしまい、リプレイの時に処理を
誤る可能性がある。これを回避するために、ENDマー
クは固有形式(メタデータを誤認することのない形式)
としなければならない。
【0172】BEGINマークを固有形式としないの
は、BEGINマークだけ書き出された時点で、システ
ムダウンした場合を考慮し、いずれにせよENDマーク
の識別ができなければならないからである。
【0173】固有形式とするために、固有の数値を64
バイト分続ける。これにより、全てのメタデータがEN
Dマークに化けることはなくなる。これに続けて、マジ
ックワード、カウンタ(ログ番号)、ログブロックサイ
ズを記録する。以降、ブロック境界まで、上記数値を埋
める。BEGINマークに対応したENDマークを見つ
けることができないログ情報はリプレイしてはならない
(ログ書き出し途中にシステムが異常終了したことを意
味する)。 (1.4.2)巨大トランザクションのログ トランザクションが多くのメタデータを更新する場合に
は、ログバッファサイズ、ログボリュームサイズが有限
であることから、複数のサブトランザクションログに分
割する。サブトランザクションログはそれだけのリプレ
イによって、ファイルシステムの整合性は保たれる。し
かし、トランザクション全体のサブトランザクションロ
グをリプレイしなければ、ファイルの整合性が保てな
い。そのため、サブトランザクション途中でのシステム
ダウンを考慮し、オペレーションログ内部に含む。 1)BEGINマーク 2)オペレーションログ 3)ヘッダ 4)更新内容 (3)+4)の繰り返し) 5)ENDマーク (1)〜5)の繰り返し) (5’)最終ENDマーク) 1)BEGINマーク 一般ログのBEGINマークと同じ。ただし、サブトラ
ンザクションログとなりうるトランザクションは、書き
込みや削除など、データ領域を触るものや、領域管理に
関わるものに限定される。
【0174】これらのトランザクションがBEGINマ
ーク内で設定されていたら、そのログはサブトランザク
ション化している可能性があり、必すオペレーションロ
グが続いている(たとえ単一のサブトランザクションロ
グで構成されていても)。 2)オペレーションログ サブトランザクション化したトランザクション(関数)
に与えられた引数をオペレーションログとして保存す
る。巨大トランザクションを対象としたBEGINマー
クの直後には必ずオペレーションログを配置する。オペ
レーションログは、最初にトランザクションヘ渡された
情報(このファイルをこれだけのサイズトランケートす
るとか、このファイルをこれだけアペンドライトするな
ど)である。
【0175】リプレイ時には、リプレイヤがファイルシ
ステムを直接操作して、ここで残されたオペレーション
ログを実行しなければならない。オペレーションログは
以下のメンバで構成される。 ・パラメタ1 ・パラメタ2 ・・・ リプレイヤはBEGINマーク内のトランザクションタ
イプを見ることによって、オペレーションログ部分に並
ぶパラメタ群のサイズ及び内容を知ることができる。 3)ヘッダ 一般ログのヘッダと同じ。 4)更新内容 一般ログの更新内容と同じ。 5)5’)ENDマーク、最終ENDマーク 一般ログのENDマークと同じ意味合いを持ち、BEG
INマークに対応するENDマークあるいは最終END
マークが見つからない場合には、BEGINマーク以降
の更新内容をリプレイしてはならない。
【0176】巨大トランザクションがサブトランザクシ
ョンに分割されず、単一のログブロックのみの場合に
は、ENDマーク部分には最終ENDマークが書き出さ
れる。複数のサブトランザクションログに分かれている
場合には、最後のログブロックだけ、ENDマークが最
終ENDマークに化ける(最後以外のログブロックには
通常のENDマークが書かれている)。
【0177】ENDマークは一般ログのENDマークと
同一であり、マジックワード、カウンタ(ログ番号)、
ログブロックサイズが記録されており、ブロック境界ま
で固有数値が埋まる。
【0178】最終ENDマークとENDマークの差は、
マジックワードのみである。最終ENDマークがトラン
ザクション全体の終了を表すことから、とても巨大なト
ランザクションが多くのサブトランザクションログに分
割されている場合には、全ての処理が完了する時にこの
最終ENDマークを出力する。すなわち、巨大トランザ
クションとして定義されるトランザクションについて、
通常のENDマークで終わるログブロックがいくつか見
つかったのに、最終ENDマークで終わるログブロック
が存在しない場合には、それは巨大トランザクションの
途中でシステムダウンが発生したことを意味し、ログリ
プレイヤがオペレーションログのリプレイを行わなけれ
ばならないことを意味する。 (2)ログの採取 (2.1)ログバッファの管理 ログをトランザクション単位にログボリューム120ヘ
出力するためには、メタデータの更新情報を一度、メモ
リ内に溜める必要がある。これをログバッファと呼ぶ。
ログバッファはマウント時にまとめて用意し、ファイル
システム利用中にメモリの追加獲得は行わない。
【0179】トランザクション毎のログ採取とし、ま
た、トランザクション動作中に他のトランザクションが
並行動作することを狙い、ファイルシステム毎にログバ
ッファを複数持つ。その数は並行動作を許すトランザク
ション数によって決められる。
【0180】並行動作数を限定することはログ機能追加
による性能劣化要因の1つとなるが、 ・ログリプレイ時の処理を単純化 ・巨大なログバッファを分割して使うことによる複雑さ
の回避 などのメリットが考えられるため、この方式とする。
【0181】各トランザクションは開始時に割り振られ
たログバッファにログを作成し、トランザクション終了
時にまとめてログライトバッファヘコピーする。ログラ
イトバッファの内容を実際にI/O出力するのはログラ
イトデーモン105と呼ぶデーモンの働きによる。
【0182】巨大トランザクションには、一般トランザ
クションが用いるログバッファよりも大きいログバッフ
ァ(以降、それぞれを一般ログバッファ、巨大ログバッ
ファと呼ぶ)を1つ用意する。巨大トランザクションも
当初は一般ログバッファの1つを用いる。巨大トランザ
クションとログバッファの関係には次の二段階がある。 1)あまり多くのメタデータを更新せず、一般ログバッ
ファで十分足りると判断できた時点で、次の巨大トラン
ザクションのBEGINを受け付ける。 2)更新するメタデータ数がある程度多く、一般ログバ
ッファでは足りないと判断できた時点で、巨大ログバッ
ファにこれまでの内容をコピー、そこで処理を継続す
る。 3)更新するメタデータ数が大変多く、巨大ログバッフ
ァでは足りない場合には、サブトランザクションとして
分割する。
【0183】2)におけるバッファ間のコピーが負担と
なりそうであるが、巨大トランザクションがそれほど多
くないと考えると、あまり頻繁に発生するものではない
ので、この方法とする。
【0184】一般ログバッファは状態(利用中・未利
用)について、ビットマップで管理される。各ログバッ
ファを管理する構造をログバッファ数の配列で確保し、
それぞれが ・ログバッファのアドレス ・これまでに採取したログサイズ を持っている。
【0185】また、ログバッファの内容は専用のログラ
イトデーモン105によってログボリューム120ヘ反
映するが、そのログライトデーモン105が複数のログ
バッファの内容を一括してI/O発行するために、トラ
ンザクション終了時にそれぞれのログバッファの内容を
ログライトバッファ150と呼ぶ専用の領域にコピーす
る。
【0186】ログライトバッファを管理する構造とし
て、 ・追加モードにあるログライトバッファはどちらか ・それぞれのログライトバッファに溜められたログサイ
ズ がある。
【0187】ログライトバッファの内容をログボリュー
ム120ヘ書き出している間は、その後のトランザクシ
ョンが終了するためにログライトバッファにログバッフ
ァをコピーしようとしても、I/O中であるためにガー
ドしなければならない。これは性能劣化に繋がるため避
けなければならない。そのため、ログライトバッファは
2本用意する。
【0188】一般トランザクションはトランザクション
開始時に、空のログバッファをビットマップより見つけ
(未利用ログバッファを0で示し、ここで1とする)、
そのビット番号がトランザクション番号となる。
【0189】巨大トランザクションが一般ログバッファ
にて処理進行中、一般ログバッファでは入りきらないと
判断されるとこれまでの内容をこの巨大ログバッファヘ
コピーし、そこで処理を継続する。この時、これまで用
いていた一般ログバッファは空きバッファリストヘ繋ぎ
直される。 (2.2)巨大トランザクションの管理 空き領域管理ツリーや獲得済領域管理ツリーを操作する
トランザクションを巨大トランザクションと定義する。
巨大トランザクションは場合によっては木構造を大きく
変更しなければならないかもしれない。この時、サブト
ランザクション化する必要が生ずる。
【0190】サブトランザクション化した巨大トランザ
クションが並行動作した場合、どれもが多くのメタデー
タを更新すると、メタキャッシュ130がいずれ全てダ
ーティとなり、新たにメタデータを読み込んで更新しよ
うにも追い出すこともできずにデッドロックに陥ること
が考えられる。
【0191】そのため、巨大トランザクションについて
は並行動作ができないよう、ここではシリアライズし
た。しかし、上記の通り、多くのメタデータを更新する
可能性があると考えられるトランザクションは多い。こ
れらを全てトランザクション終了までシリアライズする
と、その性能インパクトは大きい。
【0192】巨大トランザクションも、場合によっては
それほど多くのメタデータを更新しないこともありえ
る。一般トランザクションと同等の数しかメタデータを
更新しないのであれば、扱いを一般トランザクションと
同様にすることによって、その性能インパクトを小さく
することが可能である。
【0193】そこで、巨大トランザクションが一般トラ
ンザクションと変わらない程度しかメタデータを更新し
ないと分かった時点で、この巨大トランザクションの扱
いは一般トランザクションと同じにする(デグレー
ド)。
【0194】巨大トランザクションはその開始時には一
般ログバッファの1つを一般トランザクション開始時と
同様に与えられる。しかし、1つの巨大トランザクショ
ンが動作中は次の巨大トランザクションにログバッファ
を与えない点が一般トランザクションの場合と異なる。
【0195】巨大トランザクションがある程度以上のメ
タデータを更新することが分かった時点で、これまでの
一般ログバッファの内容を巨大ログバッファヘコピー
し、そこで処理を継続する。
【0196】しかし、それほど多くのメタデータを更新
しないと判断されれば、そのまま一般ログバッファで処
理が継続され、また、次の巨大トランザクションに対
し、処理の開始(ログバッファに使用)を許可する。
【0197】こうして、巨大トランザクションを途中か
ら一般トランザクションとして扱うこと(デグレード)
を実現する。 (2.2.1)デグレード契機・サブトランザクション
化契機 巨大トランザクションは複数のサブトランザクションに
分割される場合もあれば、一般トランザクションへデグ
レードする場合もある。それぞれの判定基準は以下の通
りである。 ◎デグレード判定基準 ・一般ログバッファの残りサイズで、将来全てのメタデ
ータ更新が完了できると判断できた場合。 ◎巨大トランザクション用ログバッファへの移行契機 ・一般ログバッファの残りサイズが次のステップの最大
変更量よりも少ない場合。 ◎サブトランザクション判定基準 ・巨大ログバッファの残りサイズが次ステップの最大変
更量よりも少ない場合。 (2.3)一般トランザクションのログ採取 一般トランザクションは、以下の手順に従いログを採取
する。 1)LOG_BEGIN a)利用するログバッファを確定する。
【0198】b)ログバッファの先頭にBEGINマー
クを作成する。 2)各メタデータの更新 c)更新されたメタデータがリリースされる(ロックが
解放される)直前に、更新されたメタデータについて、
ヘッダ(更新情報)をログバッファに作成し、更新内容
をログバッファにコピーする。
【0199】d)更新されたメタデータをリストに繋
ぐ。 3)LOG_END e)ENDマークをログバッファに作成する。
【0200】f)ログバッファをログライトバッファヘ
コピーする。 g)ログライトデーモン105がログボリューム120
ヘ反映する。 h)このトランザクションで立てられた追い出し不可フ
ラグを落とす。 (2.3.1)LOG_BEGIN トランザクション開始を意味する。同一関数内にLOG
_ENDの宣言が必要。並行動作可能数だけ既にトラン
ザクションが動作していたら、それらのどれか1つが終
了するまで寝て待つ。
【0201】a)現在実行中のトランザクション数がロ
グバッファの数と等しい場合、それは既に許された並行
動作数だけトランザクションが実行中であることを意味
する。そのため、他トランザクションが終了するまで寝
る。そのような状態でなければ、ログバッファの利用状
況を管理するビットマップより未利用状態のログバッフ
ァを1つ選び出し、そのビットを立てる。さらに、並行
動作数カウンタをインクリメントする。
【0202】b)前述のBEGINマークをログバッフ
ァの先頭に作成する。 (2.3.2)各メタデータの更新 メタデータを参照した場合にはログ採取の必要はない。
更新した場合のみログを採らなければならない。
【0203】c)メタキャッシュ130に読み込んだメ
タデータについて処理が終了し、メタキャッシュ130
より解放するための関数(リリース関数)を呼び出す
際、「更新した」ことを明示された場合、ログを採取す
る。
【0204】iノードについてはログ対象トランザクシ
ョン内でのロック解放時がログ採取契機でおる。具体的
には、上記で使用権を得たログバッファにヘッダを作成
し、メタデータの更新内容をコピーする。このとき、メ
タデータの種類によってその手法が若干異なる。
【0205】c−1)ビットマップの場合:ヘッダには
獲得(解放)したメタデータ番号を入れ、更新内容は
「0→1」「1→0」とビット操作だけとする。 c−2)メタデータ本体の場合:更新内容にはメタデー
タをそのままコピーする。
【0206】c−3)スーパブロックの場合:巨大トラ
ンザクションがデグレードした場合のみ、一般ログ内で
のスーパブロックのログ採取がありうる。その時刻(シ
ーケンシャル番号)とデータ空きサイズを記録する。
【0207】コピーするとともに、ログバッファのター
ミナルで管理されるログサイズに、っこで作成したログ
のサイズを加える。 d)メタキャッシュ130の大きさは有限であることか
ら、トランザクションが進行するためには、必要のない
メタデータをメタキャッシュ130から追い出し、その
場所に必要なメタデータを読み込むという処理を行う追
い出し機構がある。更新されたメタデータはログを書き
出すまでは追い出されてはならない。そのために、この
メタデータをメタライトリストと呼ぶ、メタボリューム
ヘの反映を司るメタライトデーモン104が参照するリ
ストへ繋ぐ。 (2.3.3)LOG_END トランザクションの終了を示す。ここで、ENDマーク
の作成を行う。ログボリューム120反映はログライト
デーモン105による作業である。
【0208】e)LOG_BEGINにて作成したBE
GINマークに対応するENDマークをログバッファの
末尾に作成する。 f)利用したログバッファの内容を追加モードにあるロ
グライトバッファにコピーする。この時にログ番号を決
定し、BEGINマーク、ENDマークに埋め込むログ
バッファのターミナルに記録していたログのサイズをロ
グライトバッファのサイズに加える。同期書き込み要求
の場合は、ログライトデーモン105(詳細後述)が正
常にログボリューム120に反映したことを待つ必要が
あるが、同期書き込み要求でない場合には、ログバッフ
ァを解放(ビットを落とす)して終了する。
【0209】g)後述するログライトデーモン105
が、ログライトバッファの内容をログボリュームヘ反映
する。 h)リリース時に立てた追い出し不可フラグを全て落と
す。ただし、フラグを落とすのはログライドデーモンに
よってなされるため、このトランザクションはそのまま
終了する。 (2.4)巨大トランザクションのログ採取 巨大トランザクションも、一般トランザクションとほぼ
同様の処理だが、最大の違いは、トランザクションの状
況によってログバッファをサイズの大きい巨大ログバッ
ファヘ移行したり、サブトランザクションとして分割し
たログ採取を行わなければならない場合があることであ
る。 1)LOG_BEGIN a)利用するログバッファを確定する。
【0210】b)ログバッファの先頭にBEGINマー
クを作成する。 c)BEGINマーク作成と同時に、オペレーションロ
グをログバッファに作成する。 2)各メタデータの更新 メタデータがリリースされた時に「更新したこと」が明
示されたら、 d)更新メタデータが空き管理情報の場合、更新メタデ
ータがリリースされる度にBTFリストあるいはBTA
リストとよぶ空き管理メタデータのために用意するリス
トに繋ぐ。この時、既にリストに繋がれていればリスト
構造には手を加えない。
【0211】e)更新メタデータが空き管理情報以外の
場合、更新されたメタデータがリリースされる度にヘッ
ダをログバッファに作成し、更新内容をログバッファ域
にコピーする。
【0212】f)更新メタデータをリストに繋ぐ。まだ
一般ログバッファで処理している場合、 g)一般ログバッファで足りるか判定する g−a)足りないなら巨大ログバッファヘこれまでの内
容をコピー。
【0213】g−b)足りると確定でき、かつ、デグレ
ード条件を満たせば、次の巨大トランザクションを受け
付ける。 g−c)まだ判断ができなければそのまま継続する。既
に巨大ログバッファで処理している場合、 h)サブトランザクション化するか判定する h−a)するなら、BTFリスト及びBTAリストをた
どりながらそれらをログバッファにコピー、ENDマー
クを作成し、ログライトバッファヘコピーする。ログラ
イトデーモン105を起動し、ログを出力する。
【0214】h−b)まだしないなら、そのまま継続す
る。 3)LOG_END i)最終ENDマークをログバッファに作成する。
【0215】j)ログバッファをログライトバッファヘ
コピーする。 k)ログライトデーモン105がログボリューム120
ヘ反映する。 l)このトランザクションで立てられた追い出し不可フ
ラグを落とす。 (2.4.1)LOG_BEGIN 巨大トランザクションも最初は一般ログバッファを用い
る。
【0216】a)一般トランザクションの場合は、現在
の並行動作トランザクション数とログバッファの数との
関係によってログバッファを獲得できるかどうかが定ま
った。巨大トランザクションの場合は、現在他の巨大ト
ランザクションが動作中か否かが問題であり、一般トラ
ンザクションの並行動作数とは関係しない。巨大トラン
ザクションが動作中か否かのフラグを調査し、非動作中
であれば、そのフラグを立て、ログバッファの利用状況
を管理するビットマップより未利用状態のログバッファ
を1つ選び出し、そのビットを立てる。巨大トランザク
ションが現在動作中であれば、終了まで寝て待つ。
【0217】b)BEGINマークを作成する。ここ
で、トランザクションタイプに巨大トランザクションと
なりうるトランザクションが指定されていた場合には、
必ず後ろにはオペレーションログが付随する。対応する
ENDマークがないログはリプレイしてはならない。ま
た、サブトランザクション化しているのに、最終END
マークがないなら、オペレーションログのリプレイが必
要である。
【0218】c)巨大トランザクションをサブトランザ
クションログとして分割する場合にはオペレーションロ
グを採取する必要がある。ここで、オペレーションログ
とは、各ログ採取対象関数に与えられたパラメタが、将
来リプレイすることが可能な形に変更されたものであ
る。具体的には、メモリアドレスで与えられるパラメタ
は、メタボリューム内のオフセットに変更して記録す
る。 (2.4.2)各メタデータの更新 d)更新メタデータが空き管理情報である場合、一回の
トランザクションで同一の領域が何度も変更される場合
が考えられる。その都度、ログを採取しているとインコ
アログやログボリュームがフルになる可能性が高まる。
これを回避するために、更新情報をリストによって管理
し、複数回更新された空き管理メタデータを1つにまと
めてログに記録する。具体的には、メタデータの状態毎
にリスト管理する専用のBTFリスト及びBTAリスト
に繋がれる。このリストに繋がれていれば、そのデータ
はダーティであることを意味する。初めて更新するデー
タであれば、ターミナルから繋がるリストに追加する。
既にリストに繋がれているのであれば、2回目以降の更
新であることを意味し、ポインタについてはそのままで
良い。リストにメタデータを追加する場合には、ログサ
イズを更新する。
【0219】e)更新メタデータが室き管理情報以外で
あれば、同一メタデータに対して何度もホールド/リリ
ースが発行されるとは考えられないので、リリースの度
(ロック解放の度)にログバッファヘコピーする(一般
トランザクションの場合と同じ)。ログサイズを更新す
る。
【0220】f)既に何度か述べたが、更新されたメタ
データがログよりも先にメタボリューム111〜113
ヘ反映されてはならない。この追い出し不可状態もリス
ト構造によって管理される。
【0221】g)この巨大トランザクションが更新する
メタデータが、以降、どれだけの数のメタデータを更新
するかを算出することによって、処理が分かれる。 g−a)現在利用している一般ログバッファの残りでは
次ステップの実行によるメタデータの更新の全てをまか
ないきれない場合があると判断した場合には、巨大ログ
バッファヘの移管を行う。
【0222】ga−1)これまでに溜まったログバッフ
ァの内容を巨大ログバッファヘコピーする。この時、B
TFリストはそのまま繋いだままとし、BTAリストは
巨大トランザクション用のターミナルヘ移動する。
【0223】ga−2)巨大ログバッファを利用して、
その巨大トランザクションは処理を継続する。 g−b)現在利用している一般ログバッファの残りだけ
で、以降のメタデータ更新を全て記録できると判断でき
るならば、この巨大トランザクションは一般トランザク
ションにデグレードする。BTFリストにメタデータが
繋がれている場合はデグレード条件を満たさないため、
ここでの処理はありえない。BTFリストはそのまま利
用を続ける。
【0224】gb−1)巨大トランザクションが動作中
か否かを示すフラグを落とす。 gb−2)一般トランザクションの並行動作数カウンタ
をインクリメント。 gb−3)次の巨大トランザクションが寝ているならば
起こして、実行を受け付ける。
【0225】gb−4)このまま一般ログバッファを利
用して処理を継続する。 g−c)まだ判断できないのであれば、このまま一般ロ
グバッファを利用して処理を継続する。
【0226】h)サブトランザクション判定基準(前
述)に基づき、このトランザクションをサブトランザク
ション化するかどうか判定する。 h−a)サブトランザクションに分割する場合は、 ha−1)更新された空き管理情報を、リストを辿りな
がらログバッファヘコピーする。
【0227】ha−2)ENDマークを作成する。 ha−3)ログライトバッファヘコピーする。 ha−4)ログライトサイズを更新する。
【0228】ha−5)ログライトデーモン105を強
制起動する。 ha−6)ここで変更した全てのメタデータの追い出し
不可フラグを落としてメタライトリストに繋ぐ。これに
より,メタライトデーモン104は任意の時ににこれら
のメタデータを書き出すことが可能となる。
【0229】ha−7)巨大ログバッファの先頭にBE
GINマークを作成する。 ha−8)オペレーションログを作成する。 h−b)サブトランザクションに分割する必要がない間
は、巨大ログバッファ内でそのまま継続する。 (2.4.3)LOG_END トランザクションの終了を示す。ここで、ENDマーク
の作成を行う。実際のログボリューム120反映はログ
ライトデーモン105の仕事である。
【0230】i)最終ENDマークを作成する。最終E
NDマークは通常のENDマークとマジックワードが異
なるだけである。 j)利用したログバッファの内容を追加モードにあるロ
グライトバッファヘコピーする。この時にログ番号を決
定し、ログサイズをログライトサイズに加える。同期書
き込み要求の場合は、ログライトデーモン105が正常
にログボリューム120反映したことを待つ必要がある
が、その他の場合には待たないで次の処理へ進む(すな
わち非同期書き出しである)。巨大トランザクション動
作中フラグを落とし、寝て待つ次の巨大トランザクショ
ンを起こす。
【0231】k)ログライトデーモン105が、ログラ
イトバッファの内容をログボリュームヘ反映する。 l)更新したメタデータをログバッファヘコピーした時
に立てた追い出し不可フラグを全て落とす。ただし、フ
ラグを落とすのはログライトデーモン105によってな
されるため、このトランザクションはそのまま終了す
る。 (2.5)ログライトデーモン 並行して動作し、順次終了するトランザクションによっ
て更新されたメタデータのログは専用の書き出しデーモ
ン(ログライトデーモン105)によってログボリュー
ムヘ反映する。このデーモンはマウント時に起動され、
アンマウント時に停止する。すなわち、ファイルシステ
ム毎にスレッドを生成する。
【0232】各トランザクションが終了すると、ログバ
ッファ内にENDマークが作成され、このログバッファ
の内容はログライトバッファ150にコピーされる。こ
のログライトバッファ150は複数のログバッファの内
容を一括してログボリューム120に反映するためのも
のであり、そこにはメモリコピーの負担があるが、何度
もI/Oを発行するよりは良いと考える。
【0233】ログライトバッファ150ヘコピーされる
と、そのログバッファは利用中バッファリストから空き
バッファリストヘと繋ぎ直され、かつ、トランザクショ
ンが同期書き込み要求でなければ、動作中トランザクシ
ョン数をデクリメントする。これにより、次トランザク
ションの実行が進むようになる。
【0234】ログライトデーモン105はログライトバ
ッファの内容を、定期的、あるいは同期書き込み指定の
トランザクションがある場合などにログボリュームに反
映する。反映している間(I/O中)は2本あるログラ
イトバッファのうち、もう片方のログライトバッファに
内容をコピーしてそのトランザクションは処理を終了す
る。 (2.5.1)処理手順 ログライトデーモン105単体の処理手順はそれほど複
雑ではない。
【0235】a)現在のログライトバッファをライトモ
ードにし、もう片方を追加モードにする。 b)ログライトバッファの内容をログボリューム120
ヘ同期書き出しする。
【0236】o)場合に応じて有効範囲情報を書き出
す。 d)ログ待ちリストに繋がるメタデータを、メタライト
リストヘ繋ぎかえる。 e)規定時間の間、スリープする。
【0237】f)規定時問が経過、または他の要因で起
こされたらa)へ。 以下、詳細説明である。 a)I/O中はその対象域に対して追加更新は許されな
い。そのため、現在のログライトバッファが書き出しが
終わり、次の書き出しが始まるまでは、もう片方のログ
ライトバッファヘ終了したログバッファをコピーするよ
う設定する。I/O中のログライトバッファをライトモ
ード、ログバッファの内容をコピーする方を追加モード
と呼ぶ。切り替えはこのデーモンによって行われ、各ト
ランザクションは常に追加モードにあるログライトバッ
ファに自ログバッファの内容をコピーする。
【0238】b)ログライトバッファに新しい内容が含
まれていないのであれば、I/Oを発行する必要はな
い。そこで、まずログライトサイズを調べ、ゼロであれ
ばI/Oを発行せず、タイマを指定して再び寝る。書き
出すべきログが存在するのであれば、以下の手順に従
う。
【0239】b−a)ログボリュームの空きサイズ判
定。 ログボリュームの先頭オフセット(A)、メタライトリ
スト先頭のメタデータを管理する構造の上書き可能オフ
セット(B)を調べる。それとログライトオフセット
(C)、及びログボリュームの最終オフセット(D)か
ら以下の手順となる。 ・A<B≦C<D ログライトサイズが(D−C)以下ならば、Cから書
き出す。 ログライトサイズが(D−C)より大きく、かつ、
(B−A)以下ならば、Aから書き出す。 ・A≦C<B≦D ログライトサイズが(B−C)より小さければ、Cか
ら書き出す。
【0240】これらの条件に合致せず、ログの出力がで
きない場合には、メタライトデーモン104を起動し
て、自分はスリープする。メタライトデーモン104の
動作により起動されたら、再度、空きサイズ判定から行
う。
【0241】b−b)ログボリューム120ヘ同期書き
出しする。 b−c)エラー判定。同期書き出し後、エラー判定を行
う。エラーが発見された場合の処置については後述
(2.5.3)する。
【0242】b−d)領域判定。 書き出しが終わった後、再び、b−a)と同様な空き領
域の判定を行う。ここで、残りが少ないと判定された
時、その残りの大きさに応じてメタライトデーモン10
4を「平常起動」「緊急起動」する。
【0243】c)ファイルシステム復元に必要なログ
は、メタライトリスト先頭の上書き可能オフセットから
たった今書き出した位置までである。そこで、それを有
効範囲情報としてディスクヘ書き出す。ここで、書き出
しはログのシーケンシャル性を考慮し、ある程度の間隔
をおいて行う。ここでは、回数に応じて、数回に一回、
書き出すこととした。
【0244】d)b)にて書き出したログに含まれるメ
タデータは全て「ログ未反映状態」、すなわち追い出し
不可状態としてリスト(ログ未反映リスト)に繋がれて
いるはずである。そこで、ログ未反映リストを辿りなが
ら、そこに繋がるメタデータをメタライトリストに追加
することにより、メタライトデーモン104が任意の時
にこれらのメタデータをメタボリュームに反映できるよ
うになる。
【0245】e)ログもシステム全体から見れば非同期
書き出しとし、トランザクションが同期書き込み要求で
なければ、ログを書き出す前にそのトランザクションは
終了することができる。さらにI/O発行回数を削減す
るために、複数のトランザクションを一括して書き出す
ために、しばらくの間スリープし、その間にログライト
バッファヘ複数トランザクションのログを溜める。
【0246】f)規定時間後には自分で起きて、処理を
繰り返す。しかし、他要因によって突然起こされて処理
を始める場合もある。「その他の要因については後述
(2.5.2)する。 (2.5.2)動作契機 ログライトデーモン105は以下の契機でログライトバ
ッファの内容をログボリュームへ書き出す。 ◎定周期 ログライトデーモン105は一定周期毎にスリープ状態
から自発的に目覚め、ログライトバッファ150の内容
をログボリューム120ヘ反映する。 ◎同期書き込み要求のトランザクション トランザクションによっては同期書き込み要求で呼ばれ
る場合がある。このトランザクションについては、ログ
の書き出しを待たなければ終了してはならない。そのた
め、LOG_END呼び出し後に、明示的にLOG_S
YNCを行う。LOG_SYNCはログライトデーモン
105が寝ている場合には起こし、ログライトバッファ
の内容をその場で書き出させる。
【0247】現在ログライトデーモン105がI/O中
であったら、ログライトデーモン105の処理が終わる
のを寝て待つ。 ◎ログライトバッファ不足定 周期毎にログライトバッファをクリアしても、大きなロ
グバッファが連続して終了すると、その前にログライト
バッファがフルに近い状態になることがありえる。この
時にはログライトデーモン105が起こされ、ログライ
トバッファ150の内容をログボリューム120に書き
出してクリアする。
【0248】具体的には、あるトランザクションが自ロ
グバッファの内容をLOG_ENDによってコピーしよ
うとした時、ログライトバッファ150の残りサイズが
自ログよりも小さいと判断された時、ログライトデーモ
ン105を起こし、追加モードのログライトバッファ1
50を切り替えてもらい、その間は寝て待つ。
【0249】現在I/O中てあり、かつ追加モードのロ
グライトバッファ150が足りなくなった時には、その
トランザクションは待ち合わさざるを得ない。 ◎メタキャッシュ不足 トランザクション実行中に、メタキャッシュ130域の
いずれかのメタデータを追い出さなければ必要なメタデ
ータをメタボリューム111〜113から読み込むこと
ができずに処理が進まなくなる場合が考えられる。
【0250】そのため、トランザクションが現在キャッ
シュ上のメタデータを追い出そうとする時、メタキャッ
シュ130上のメタデータが全てダーティであり、か
つ、ログ待ちリストに繋がれたメタデータが存在する場
合には、ログライトデーモン105を起動する。 ◎アンマウント時 アンマウント時には必ず書き出さなければならない。そ
のため、アンマウント処理の延長でログライトデーモン
105を起こし、書き出しを行う。この時、アンマウン
トを実行するため、該当ファイルシステムにメタデータ
を更新するようなトランザクションは動作していないこ
とが保証される。従って、現在のログライトバッファの
内容を者き出せば、それで全てである。
【0251】ログリアとバッファの内容を書き出した
後、ログライトデーモン105は終了する。 (3)メタデータ管理 次に、メタデータの管理方式について説明する。メタキ
ャッシュ130内のメタデータはmetalist構造
体によって管理される。metalist構造体には以
下のメンバがある。 ・メタデータへのポインタ ・TRANS(トランザクション)リストポインタ ・メタライトリストprevボインタ ・メタライトリストnextポインタ ・ログ待ちリストprevポインタ ・ログ待ちリストnextポインタ ・ログシーケンス番号 ・ログボリューム内オフセット ・トランザクション番号 ・状態フラグ ・メタデータタイプ ・buf構造体実体 (3.1)メタデータの状態遷移 metalist構造体には次の6種類の状態があり、
4種類のリストに繋がれる。それはmetalist構
造体のフラグによって示され、それぞれ夕ーミナルを別
とするリストに繋げられることによって実現する。全て
のmetalist構造体はいずれかのリストに繋がっ
ており、例外はない。 A)空き管理構造更新状態 データ空き領域を管理するメタデータがトランザクショ
ンによって更新されると、リストに繋ぎ、将来まとめて
ログバッファにコピーすることは既に述べた。トランザ
クション終了時に本リストに繋がれたメタデータが直接
ログボリュームヘ反映される。リストは並行動作数に応
じて必要である。このリストをBTFリストと呼ぶ。
【0252】この状態にあるメタデータはまだログバッ
ファヘはコピーされておらず、同一トランザクションに
よって再度更新される場合がある。既にリストに繋がれ
ているメタデータであった場合は、リスト状態は変更し
ない。当然、メタボリュームに反映してはならない。
【0253】BTFリストは単方向環状リストであり、
トランザクション途中状態と同じメンバを用いて繋がれ
ている。 B)利用域管理構造更新状態 実施例ではファイルシステムをエクステント管理してい
る。iノードから導かれる、そのファイルが利用してい
るエクステントを示す、間接エクステントブロックにつ
いても、トランザクション内で1つの間接エクステント
ブロックが何度も更新される場合が考えられる。そこ
で、空き管理構造の場合と同様に、トランザクション中
は独自のリストに繋ぎ、トランザクション終了時にまと
めてログバッファヘコピーする。リストは並行動作数に
応じて必要である。このリストをBTAリストと呼ぶ。
【0254】この状態にある間接エクステントブロック
はまだログバッファヘはコピーされておらず、同一トラ
ンザクションによって再度更新される場合がある。既に
リストに繋がれている間接エクステントブロックであっ
た場合は、リスト状態は変更しない。当然、メタボリュ
ームに反映してはならない。
【0255】BTAリストは単方向環状リストであり、
トランザクション途中状態と同じメンバを用いて繋がれ
ている。 C)トランザクション途中状態 トランザクション途中を示す。この状態のとき、該当す
るメタデータを更新したトランザクションは、ある1つ
のログバッファを専有しており、既にそこに更新後状態
がコピーされている。リストは並行動作数に応じて必要
である。このリストをTRANSリストと呼ぶ。
【0256】しかし、まだトランザクションが終了して
いないことからログがログボリューム120ヘ反映され
ておらず、本メタデータもメタボリュームヘの反映はで
きない。この状態にあるメタデータはファイルのロック
によって保護されているため、他トランザクションから
参照・更新されることはない。
【0257】TRANSリストのターミナルは配列にな
っており、その要素番号はトランザクションが用いてい
るログバッファの番号(トランザクション番号)に対応
する。
【0258】メタライトリストやログ待ちリストに繋が
れているメタデータが繋がる場合がある。TRANSリ
ストは単方向環状リストであり、BTFリストが用いる
メンバを併用する。
【0259】D)ログ待ち状態 トランザクションは既に終了しているが、ログバッファ
の内容はログライトデーモン105によってログボリュ
ーム120ヘ反映されるため、この時点ではまだログボ
リューム120に反映されていない状態である。(デー
モンは同期ライトを行うが、トランザクションの視点か
ら見れば、ログ反映が非同期に行われているように見え
る。) トランザクションが終了する際に、C)の状態にあるT
RANSリスト(巨大トランザクションの場合はBTF
リストも)をログ待ちリストに繋ぎかえる。このリスト
はトランザクションが終了する毎に後方へ伸びるリスト
であり、ログライトバッファと同数の2本存在する。
【0260】この状態にあるメタデータは既にトランザ
クションが終了しており、ログはログライトバッファに
コピーされている。トランザクションが終了しているこ
とから、他トランザクションによって参照・更新される
可能性がある。この時(他トランザクションによって状
態が変化した時)、リスト位置は変更せず、状態フラグ
だけを変更する。
【0261】メタライトリストに繋がれたメタデータ
が、他トランザクションによって再度更新されたため
に、トランザクション途中状態になり、そのトランザク
ションが終了したことによって、ログ待ち状態になった
場合には、このメタデータはメタライトリストにも繋が
れている。
【0262】ログライトデーモン105によって、ログ
の反映が進むと、それに応じたメタデータをメタライト
リストヘ追加していく。この時、既にメタライトリスト
に繋がれているメタデータは、そのままの位置でいなけ
ればならない。 E)書き出し可能状態 これは、ログバッファのログボリュームへ反映が終了
し、自由にメタデータをメタボリュームへ反映すること
ができるようになった状態である。この状態にあるメタ
データは他トランザクションによって参照・更新される
可能性がある。この時、リスト位置は変更せず、状態フ
ラグだけを変更する。
【0263】繋がるリストはメタライトリストであり、
1本だけ存在する。メタライトデーモン104はこのリ
ストを参照してメタボリュームヘの反映を行う。 F)I/O中状態 この状態にあるメタデータは現在非同期ライトによって
メタボリュームに対してI/Oを投げているが、まだ完
了していない。I/O途中であるため、他トランザクシ
ョンは操作することができない(参照することはでき
る)。メタライトリストにそのまま繋がれている。 (3−2)ログボリュームの上書き判定情報 ログボリュームはサイズが有限であるため、サイクリッ
クに利用し、過去のログを上書きしてシステムは動作す
る。ここで、過去のログを上書きするためには、そのト
ランザクションが更新したメタデータが全てメタボリュ
ームに反映されていることが必要である。上書き可能領
域を管理するために、以下の構造を設け、メタライトデ
ーモン104が変更、ログライトデーモン105が参照
する。 ◎ログシーケンス番号 各トランザクションが終了し、ログバッファの内容をロ
グライトバッファヘコピーする毎に与えられる、シーケ
ンシャル番号である。ログボリューム内のBEGINマ
ーク、ENDマークに含まれる番号と同一である。既に
ライトリストに繋がるメタデータが再度更新される場合
にも、この番号は変更されない。 ◎ロクボリューム内オフセット ログボリューム内にはトランザクション毎のログが連続
して並んでおり、上書きするためには、それぞれのトラ
ンザクションが更新した全てのメタデータがメタボリュ
ームへ反映されている必要がある。
【0264】同一のログ番号を持つmetalist構
造体は、ここにはそのログの先頭オフセットを挿入す
る。LOG_ENDによってログバッファの内容がログ
ライトバッファにコピーされる際、そのアドレスとログ
ボリュームの書き出しオフセットから導かれる。トラン
ザクション毎のログボリューム内オフセットがTRAN
Sリストを辿りながらそれぞれのmetalist構造
体に設定する。
【0265】ログライトデーモン105は、ログを書き
出す際にメタライトリストの先頭に繋がるmetali
st構造体を参照し、現在のポインタにログライトバッ
ファに入っているログサイズを足した位置が、このオフ
セット値を超えないことを確認した後で書き出しを行
う。 (3.3)メタボリュームヘの反映 トランザクションによって更新されたメタデータは、ト
ランザクションが終了しログがログボリューム120に
反映されるまでは書き出されてはならない。そのため
に、メタキャッシュ130上の各メタデータはそれぞれ
の状態に応じてリストに繋がれ、唯一メタボリュームヘ
の反映が許可されているリストはメタライトリストであ
る。
【0266】時間のかかるI/O要求をトランザクショ
ン内で行うことを避けるために、メタデータのメタボリ
ュームヘの反映はトランザクションとは関係ないところ
で動作するデーモンに委ねる。このデーモンはメタライ
トリストだけを意識し、metalist構造体内の情
報から状態に応じてI/O発行するかどうかを決定し、
関連付けられたbuf構造体を用いてメタデータをメタ
ボリュームヘ反映する。
【0267】デーモンはメタライトリストに繋がれたメ
タデータを書き出した後、そのメタデータをリストから
外し、cleanであると設定する。 (3.4)メタライトデーモン メタライトデーモン104は、マウント時に起動され、
アンマウント時に停止する。すなわち、ファイルシステ
ム毎にスレッドを起動する。
【0268】ログ書き出しの終わったトランザクション
が更新したメタデータは、それを管理するmetali
st構造体が全てメタライトリストに繋がれている。メ
タライトデーモン104はメタライトリストに繋がるメ
タデータを、ログボリュームの残りが少なくなったと判
断された場合などに非同期でメタボリュームに反映す
る。反映している間は該当するメタデータは更新するこ
とができず、I/O終了を待ち合わせることになる。
【0269】メタライトデーモン104はメタライトリ
ストを意識し、繋がるメタデータをメタボリュームへ反
映する。これにより、ログボリュームの上書き可能領域
が拡大する。
【0270】しかし、メタライトリストに繋がれている
メタデータの中にも、再度トランザクションによって更
新が進み、メタボリュームヘの反映が禁じられているも
のが存在する場合がある。この時、他のメタデータを書
き出すとしても、そのメタデータについては非同期ライ
トの発行を待ちあわせなければならない。このようなメ
タデータが存在すると、以降のメタデータを全て書き出
せたとしても、上書き可能領域を拡大することができな
い。
【0271】メタライトデーモン104は他者から起動
されて処理を開始する場合と、自発的に起動する場合が
ある。以下に処理手順を述べるが、システムの状態(ロ
グボリュームの空きやメタキャッシュ130の空きな
ど)に応じて動作が若干異なる。また、ここで述べる処
理手順にはデーモン内だけではなく、ドライバから呼ば
れる関数での処理も含まれている。 (3.4.1)自発起動処理 メタライトデーモン104はタイマによって自発的に起
動して、それまでにメタライトシストに繋がれた書き出
し可能なメタデータをメタボリュームに反映する。この
時、メタライトリストの全てを書き出す訳ではなく、あ
る一定の数だけ非同期書き出しを行う。普段から少しず
つメタデータの書き出しを行っておくことによって、資
源不足による起動を避け、I/O負荷分散を図る目的が
ある。
【0272】a)自発起動時には、メタライトリストに
繋がるメタデータ数を調査する。 b)メタライトリストの先頭から、メタデータの状態を
調べる。 c)メタデータが書き出し可能状態であれば、その状態
をI/O負荷態に変更し、非同期ライトを発行する。
【0273】d)b_iodoneの関数がI/Oの成
功を確認する。 e)b_iodoneの関数がメタライトリストから外
す。 f)規定数だけ繰り返す g)スリープする。
【0274】以下、詳細説明である。 a)自発起動間隔として定義する間隔毎にメタライトリ
ストに繋がるメタデータ数を確認する。具体的には、メ
タライトリストのターミナルに含まれる、リンクされた
メタデータ数を調べる。このとき、それほど多くのメタ
データが繋がれていない場合には書き出しは行わない。
【0275】b)メタライトリストには基本的にはログ
の書き出しが終わった、書き出し可能状態のメタデータ
が繋がれている。しかし、トランザクションが終了して
メタライトリストに繋がれた後で他トランザクションに
よって更新されると、そのメタデータだけは書き出し不
可の状態に戻ってしまう。そのため、メタライトデーモ
ン104はメタライトリストに繋がるメタデータの状態
を確認しながら書き出し処理を行わなければならない。
【0276】c)現在ポイントするメタデータが書き出
し可能状態であれば、その状態をI/O状態に書き換
え、metalist構造体に含まれるbuf構造体を
用いてI/Oを発行する。I/O中状態のメタデータは
他トランザクションから更新されることはない。メタデ
ータのディスクライトは非同期ライトで行い、デーモン
はI/Oの結果を待たずに次の処理へ進む。
【0277】メタデータが書き出し不可状態であるな
ら、そのメタデータは諦め、リストの次に繋がるメタデ
ータに進み、状態を調べる。 d)非同期ライトによって発行されたI/Oの結果を判
定するのは、buf構造体のメンバb_iodoneに
組み込まれた関数である。この関数にはbuf構造体が
引数に与えられ、それを元にエラー判定処理を呼び出
す。ここでエラーを検出した場合には、異常系処理へ進
む(後述)。成功していた場合には、該当メタデータの
clean数をインクリメントする。
【0278】e)b_iodoneに組み込まれた関数
はメタライトリストの管理も行う。引数に渡されたbu
f構造体の上を見るとそこはmetalist構造体に
なっており、そのフフグからI/O中フラグを落とし、
メタライトリストから外す。また、メタデータをダーテ
ィ状態からclean状態へ変更する。これは、メタキ
ャッシュ130で管理されるメタデータである場合に
は、それぞれの管理構造体で管理されており、この管理
構造体はmetalist構造体からポイントされる。
【0279】全ての処理が終了したら、このmetal
ist構造体をリリースする。 f)メタライトリストに繋がる書き出し可能メタデータ
を、次々とリストを辿りながら定義した数だけ処理を繰
り返す。ここで、書き出しが不可とされているメタデー
タについては、この数には含めない。また、メタライト
リストが定義数よりも少ない場合には、当然そこで終了
となる。 g)スリープする。再度、自発的に起動するか、あるい
は資源不足によって他から起動されるまで、スリープは
継続する。 (3.4.2)平常処理 システム状態が以下の場合には、ここで述べる処理手順
に従いメタライトデーモン104は動作する。 ◎ログボリュームの残りが少ない。
【0280】ログライトデーモン105が判断する。ロ
グライトバッファを書き出す際に、上書き可能域の大き
さを計算し、この閾値を下回った時にメタライトデーモ
ン104を起動する。 ◎メタキャッシュの残りが少ない。
【0281】更新リリースがあった時、各メタデータの
clean数がデクリメントされるが、その数がこの閾
値を下回った時にメタライトデーモン104を起動す
る。 a)メタライトリストの先頭から、メタデータの状態を
調べる。
【0282】b)メタデータが書き出し可能状態であれ
ば、その状態をI/O中状態に変更し、非同期ライトを
発行する。 c)b_iodoneの関数がI/Oの成功を確認す
る。
【0283】d)b_iodoneの関数がメタライト
リストから外す。 e)メタライトリストの最後まで繰り返す。 f)スリープする。
【0284】以下、詳細説明である。 a)〜d)自発的に起動した場合と同じである。 e)メタライトリストを辿りながら、繋がる全ての書き
出し可能メタデータについて処理を繰り返す。平常処理
時には、書き出し不可のメタデータについては飛ばして
処理を行う。そのため、ログボリューム不足時には、メ
タライトリストの先頭、すなわち、ログボリュームの上
書き可能位置を制限しているメタデータが書き出せなけ
れば資源不足は解消しないが、平常処理であるため、こ
こでは特別な対処を行わない。
【0285】f)タイマを設定してスリープする。 (3.4.3)緊急処理 システム状態が以下の場合には、ここで述べる処理手順
に従いメタライトデーモン104は動作する。 ◎ログボリュームの残りが非常に少ない。 ◎メタキャッシュ130の残りが非常に少ない。
【0286】a)トランザクションの新規開始を制限す
る。 b)メタライトリストの先頭から、メタデータの状態を
調べる。 c)メタデータが書き出し可能状態であれば、その状態
をI/O中状態に変更し、非同期ライトを発行する。
【0287】d)ログ未反映状態となっているメタデー
タがあれば、ログライトデーモン105を起動する。 e)b_iodoneの関数がI/Oの成功を確認す
る。
【0288】f)b_iodoneの関数がメタライト
リストから外す。 g)繰り返す。 h)現在の資源状態を調査し、不足があれば、それが解
消するまで繰り返す。
【0289】i)トランザクションの受付を開始する。 j)スリープする。 以下、詳細説明である。
【0290】a)緊急時には、新規のトランザクション
の開始を受け付けない。具体的には、トランザクション
に利用するログバッファを与えないことによって、その
トランザクションのBEGIN宣言時にてスリープさせ
る。そのために、特定のフラグを設け、BEGIN宣言
時にそのフラグを参照しなければならない。
【0291】b)〜g)ここは基本的に平常処理の場合
と同じ処理である。すなわち、メタライトリストの先頭
から、追い出し不可状態のメタデータは飛ばして、書き
出し可能状態のメタデータを順に非同期ライトによって
書き出す。
【0292】ただし、d)だけ異なる。 d)ログボリュームヘの書き出しがデーモンによって行
われることから、たとえトランザクションが終了してい
てもログが未反映のためにメタボリュームへの反映を拒
否しているメタデータが存在することが考えられる。こ
の場合は、強制的にログライトデーモン105を起動し
て、書き出し可能状態へ移行するように操作する。既に
ログライトデーモン105が動作中であれば、そのまま
先へ進む。
【0293】h)ここで、現在の資源状態を調べる。平
常処理の動作契機となる閾値以上の資源が回復していな
ければ、再度、メタライトリスト内のメタデータ書き出
しを試みる。ここで、d)によってログ未反映状態のメ
タデータが、書き出し可能となったことによって進展す
ることを期待している。複数回、繰り返すことによっ
て、新規トランザクションの受付を制限していることか
ら、資源回復までメタデータの書き出しが可能であると
考える。
【0294】i)a)にて制限していたトランザクショ
ンの受付を再開する。 j)タイマを設定して、スリープする。 (4)獲得解放処理 メタデータの割り当て状況を管理するビットマップの状
態として、FREE-dirtyとALLOC-dirtyを区分し、FREE-di
rtyなビットマップからは獲得しないようにする。
【0295】具体的には以下の通りである。 ・マウント時にビットマップを読み込む際に、1つを獲
得用と定める。簡単のため、複数読み込むビットマップ
のうち、一番若いもの(最初に読み込むもの)を最初の
獲得用ビットマップとする。 ・獲得用ビットマップの複製を作成する。 ・獲得時には複製を検索して獲得位置を決定し、本体と
複製の両方のビットを操作する。 ・解放時には本体のみのビットを操作する。 ・複製ビットマップには解放が記録されないため、獲得
処理が進むと全てのビットが立ち、そのビットマップで
は獲得できないと判断される。その場合、現在メモリ上
にあるビットマップのうち、CLEANなもの、または
ALLOC-dirtyのビットマップを次の獲得用ビットマップ
と定義し、その複製を作成する。 ・メモリ上のビットマップが全てFREE-dirtyである場合
には、どれかを追い出し、新しいビットマップを獲得用
ビットマップとして読み込む。そして、その複製を作成
する。ここで、追い出し・読み込みのアルゴリズムは従
来通りで良い。
【0296】獲得用ビットマップとして選ばれたビット
マップは追い出しの対象とはしない。そのためメタキャ
ッシュ域不足によって他から追い出されることはない。
また、メタライトリストに繋がったことによって、メタ
ボリュームに反映された場合にも、CLEANな状態に
はなるが、複製は更新せず、そのままとする。
【0297】本実施の形態による効果は、以下の通りで
ある。以上説明したように、本発明によれば複数の二次
記憶装置に保存されたメタデータのログにボリューム情
報を含め、また、有効なログの位置を算出・保存するこ
とでリプレイするログ量を減少せしめ、さらに、ログボ
リューム全体のゼロクリアをする必要をなくすことによ
り、ログ機構の最大の利点であるところのファイルシス
テム復元時間の短縮に及ぼす影響を小さくし、オーバオ
ールコンピュータシステム可用性の増大に寄与するとこ
ろが大きい。
【0298】さらに、本発明によれば回一トランザクシ
ョン内で複数回更新されるメタデータのログを一度しか
採取せず、また、ログバッファの分割や、獲得・解放処
理の特殊なログ採取方式によって複数のトランザクショ
ンの独立性を考慮し、かつ、ログ機構導入による速度性
能の劣化を最小に留めることにおいて寄与するところが
大きい。
【0299】加えて、本発明によればトランザクション
毎に異なるログの採取量を考慮し、多くのメタデータを
更新するトランザクションについては分割し、トランザ
クションに与えられたパラメタをもログに採取し、リプ
レイ時にそのパラメタを元に、中途で終わったトランザ
クションを再度実行することによって、オペレーション
のセマンティクスを保証した復元が可能となる面におい
て寄与するところが大きい。
【0300】なお、上記の処理機能は、コンピュータに
よって実現することができる。その場合、説明した処理
内容は、コンピュータで読み取り可能な記録媒体に記録
されたプログラムに記述されており、このプログラムを
コンピュータで実行することにより、上記処理がコンピ
ュータで実現される。コンピュータで読み取り可能な記
録媒体としては、磁気記録装置や半導体メモリ等があ
る。市場へ流通させる場合には、CD−ROM(Compact
Disk Read Only Memory)やフロッピーディスク等の可
搬型記録媒体にプログラムを格納して流通させたり、ネ
ットワークを介して接続されたコンピュータの記憶装置
に格納しておき、ネットワークを通じて他のコンピュー
タに転送することもできる。コンピュータで実行する際
には、コンピュータ内のハードディスク装置等にプログ
ラムを格納しておき、メインメモリにロードして実行す
る。
【0301】
【発明の効果】以上説明したように、第1の発明では、
メタキャッシュ内のメタデータとともにメタデータがど
のメタボリュームから取り出されたのかを示すメタデー
タ管理情報をログとして採取するようにしたため、保持
されたログがどのメタボリュームのメタデータに関する
ログであるのかを管理することができる。その結果、複
数のログボリュームにメタデータが格納されていても、
ファイルシステムの不整合を修正することが可能とな
る。
【0302】また、第2の発明では、ログデータの有効
範囲を管理するようにしたため、ファイルシステムを復
元する際には、ログボリューム12内の有効なログのみ
を用いて効率よく復元処理を行うことが可能となる。
【0303】また、第3の発明では、ログデータに対し
て付与するシーケンス番号の最大値を、システムの使用
可能年数以上使い続けることができる値としたことで、
常に昇順の採番が可能となり、ログボリュームのゼロク
リアに伴う処理の遅延を避けることができる。
【0304】また、第4の発明では、メタデータが複数
回更新される場合には、最終形態のみをログとして採取
するようにしたため、ログデータが短縮されるととも
に、ログデータの短縮に伴いファイルシステム復元時間
の短縮が図れる。
【0305】また、第5の発明では、割り当て管理情報
の一部の複製を獲得操作用管理情報とし、メタデータの
獲得時には獲得操作用管理情報内から取得すべきメタデ
ータを特定するが、解放時には獲得操作用管理情報の情
報を更新しないようにしたため、メタデータの解放直後
に別のトランザクションにより獲得されることがなくな
る。その結果、システムダウン時に中途までしか終了し
ていなかった解放トランザクションが解放したはずであ
る領域は、解放される直前の状態のまま保全されること
が保証される。
【0306】また、第6の発明では、獲得、解放操作の
ログとして、その操作対象となった情報のみを記録する
ようにしたため、ログ採取量が少量ですむ。また、第7
の発明では、複数のログバッファを設け、さらにいくつ
か異なるサイズのログバッファを用意し、トランザクシ
ョン毎のログをそのトランザクションに適したサイズの
ログバッファに格納するようにしたため、複数のトラン
ザクションが並列実行される際のトランザクションの独
立性を高めることができ、また、メモリ空間を有効に活
用できる。
【0307】また、第8の発明では、1つのトランザク
ションのログがログバッファに収まらない場合に、中間
ログとして完結されたログをログボリュームに書き出す
ようにしたため、部分的であるログを、ファイル復元時
には1つのトランザクションのログと同値に扱うことが
可能となり、ファイルシステムの復元時に望ましい状態
に復元するのが容易となる。
【0308】また、第9の発明では、ログ採取に関する
システムの状態よってトランザクションの受け入れを制
限するようにしたため、複数のトランザクションが並列
実行されることによるメモリ枯渇等の障害の発生を防止
することができる。
【図面の簡単な説明】
【図1】第1の発明の原理構成図である。
【図2】第2の発明の原理構成図である。
【図3】第3の発明の原理構成図である。
【図4】第4の発明の原理構成図である。
【図5】第5の発明の原理構成図である。
【図6】第6の発明の原理構成図である。
【図7】第7の発明の原理構成図である。
【図8】第8の発明の原理構成図である。
【図9】第9の発明の原理構成図である。
【図10】本発明を適用するデータ処理装置のハードウ
ェア構成図である。
【図11】ファイルシステム上で動作するログ採取機能
の構成図である。
【図12】メタデータ管理情報を示す図である。
【図13】ログバッファの形式を示す図である。
【図14】有効範囲を説明する図である。
【図15】ログ採取処理のフローチャートである。
【図16】メタボリュームの割り当て管理状況を示す図
である。
【図17】ビットマップによるメタデータ獲得処理を示
すフローチャートである。
【図18】解放処理のフローチャートである。
【図19】トランザクションの処理の獲得と終了の状況
を示す図である。
【図20】ログバッファへのログの格納状況を示す図で
ある。
【図21】ログ採取手順を示すフローチャートである。
【図22】ファイルシステム復元処理を示すフローチャ
ートである。
【図23】新規トランザクションの受け入れ許否判定処
理を示すフローチャートである。
【符号の説明】
1a〜1c メタボリューム 2 ログボリューム 3 メタキャッシュ 4 メタデータ読み込み手段 5 メタデータ管理情報 6 トランザクション 7 ログ採取手段 8 ログバッファ 9 ログ書き込み手段
【手続補正書】
【提出日】平成12年2月22日(2000.2.2
2)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正内容】
【書類名】 明細書
【発明の名称】 データ処理装置及び記録媒体
【特許請求の範囲】
【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はファイルシステムの
修正機能を有するデータ処理装置及び記録媒体に関し、
特にログを用いてファイルシステムの不整合の修正を行
うデータ処理装置及び記録媒体に関する。
【0002】
【従来の技術】コンピュータシステムを運用している
と、何らかの理由によりシステムがダウンする場合があ
る。突然のシステムダウンが発生すると、ファイルシス
テムの不整合が生じる。そこで、システムダウン後のブ
ート時には、従来であればファイルシステム全体を走査
し、その矛盾点の検出を行う。矛盾点が発見されたら、
場合に応じた変更をファイルシステムに加えることによ
って、ファイルシステムの整合性を回復していた。とこ
ろが、ファイルシステム全体を走査するには多くの時間
が必要であり、結果としてシステムダウン後の復旧の遅
れを招いていた。
【0003】そこで近代のUNIXオペレーティングシ
ステム(OS)のような多くのコンピュータOSのファ
イルシステムでは、ファイルシステムオペレーションに
おいてファイルシステムに保存されているデータが更新
される度に、その更新情報をログ(ジャーナル)として
採取している。ファイルシステムオペレーション時に更
新情報のログ採取を行っておくことにより、システムダ
ウン後のブート時のファイルシステム整合性チェックの
フェーズでは、残されたログを順次走査し、対応する領
域へアップデートすることによって、ファイルシステム
の整合性が保証される。その結果、システムのダウン時
間が短縮される。
【0004】
【発明が解決しようとする課題】しかし、ログ機構を導
入することにより、次に挙げる問題が生じていた。 (1)第1の問題点 ファイルを管理するメタデータ(二次記憶装置に格納さ
れたファイルを管理するためのデータ)は、ファイルシ
ステムオペレーション時に二次記憶装置からメモリへ読
み込まれ、メモリ内において操作される。その後、所定
のタイミングで二次記憶装置へとその更新内容が反映さ
れる。ログ機構の導入時には、その二次記憶装置への反
映前に更新内容をログ専用の二次記憶装置へと記録する
必要がある。
【0005】しかし、大規模ファイルシステムに対応す
るために、複数の二次記憶装置がメタデータに割り当て
られ、異なる二次記憶装置に割り当てられたメタデータ
を1つのファイルシステムオペレーションが操作する場
合がある。このファイルシステムオペレーションのログ
を採取する際に、メモリ内のメタデータだけをログとし
て記録していたのでは、残されたログからメタデータ毎
に異なる二次記憶装置を検索するのに時間を消費し、ロ
グ機構導入による最大のメリットである、ファイルシス
テム復元の時間短縮に悪い影響を与える。
【0006】(2)第2の問題点 同様にファイルシステム復元の時間短縮に悪い影響を与
える要因として、有限なサイズしかないログ専用の二次
記憶装置全体をファイルシステム復元時に探索すること
が考えられる。
【0007】ログ機構の導入はファイルシステムオペレ
ーションを細分化したトランザクションの完了を常に保
証しつつ動作するため、ログ機構を導入した多くのファ
イルシステムはトランザクションにシーケンス番号を与
え、ファイルシステム復元時にはシーケンス番号をもと
に最古のトランザクションを同定する。そして、最古の
トランザクションからログリプレイと呼ばれるログを用
いたファイルシステム復元操作を開始する。
【0008】ここで、有限サイズのログ専用の二次記憶
装置内には、ファイルシステムの整合性を復元するため
に欠かせないログが確かに存在する可能性があるが、有
限なサイズを有効利用するためにログ専用の二次記憶装
置は過去のログを上書きしてサイクリックに利用しなけ
ればならない。このような処理を行うには、ある程度以
上古いログが必ず不必要となっていることが前提とな
る。従って、多くのログの内容は既に不必要となってい
る。すなわち、ログ専用の二次記憶装置全体を探索ある
いは反映するのは非効率的である。
【0009】(3)第3の問題点 最古のトランザクションを特定するためのシーケンス番
号は単調増加であることが要求され、運用途中にオーバ
ーフローによってゼロに戻されてしまうことは許されな
い。これを回避するために、ファイルシステム復元作業
終了時、またはオーバーフロー直前にログ専用の二次記
憶装置全体をゼロクリアし、再度シーケンス番号ゼロか
ら順にトランザクションを処理するのが一般的である。
しかし、ログ専用の二次記憶装置をゼロクリアするため
には多くの時間が必要となる。少なくともシステムの運
用を一時停止する必要があり、サーバ装置などによるサ
ービスの提供を停止せざるを得なくなってしまう。
【0010】以上の(1)〜(3)の課題はファイルシ
ステム復元時の問題であるが、ログ機構を導入すること
は通常の運用時にも問題を引き起こす可能性を持ってい
る。ログ機構は、メモリ上にログをスプールする手法
や、ログ専用の二次記憶装置として用いられるディスク
の特性を考慮したシーケンシャルアクセスなど、高速化
のための条件は整えられているが、ログの採取の仕方を
熟考しなければ、ログ採取に伴う性能劣化は非常に大き
いものとなりうる。
【0011】(4)第4の問題点 単一のトランザクション内で、同一データを複数回更新
することは度々あるが、その都度、その同一データに対
するログを採取したのではメモリが不足し、二次記憶装
置へのI/O量が増加する。
【0012】(5)第5の問題点 ログ機構の導入はトランザクションの順序性を保証し、
終了したトランザクションのログを順に採取することを
要求するために、あるトランザクションが操作したログ
対象データを他のトランザクションが操作することが一
般的に不可能な状況となりうる。ここで、個々のファイ
ルの内容を対象とするトランザクションについては、フ
ァイル単位に排他制御を行うことによって、複数のトラ
ンザクションが並列実行することは比較的容易である。
しかしながら、個々のファイルによらないもの、特に領
域の割り当て情報を操作する場合には、並列実行がきわ
めて難しくなる。
【0013】領域の獲得・解放処理が並列に動作する場
合を考えると、それぞれが獲得、解放のログを採取す
る。同一の管理情報(ここでは、ビットマップを考え
る)によって管理される領域の獲得・解放処理であった
場合には、同一の管理情報が、解放された状態、獲得さ
れた状態でログに記録されることになる。
【0014】ファイルシステムの復元処理を行わなけれ
ばならないようなシステムダウンが発生するタイミング
によっては、このように別トランザクションの更新情報
を含むログの採取方式では様々な問題が生じる。
【0015】Aというトランザクションが解放処理、B
というトランザクションが獲得処理を行う場合を考え
る。ここで、トランザクションAの解放処理はトランザ
クションBの獲得処理よりも先に行われ、かつ、トラン
ザクションAはトランザクションBよりも後に終わる場
合を例に挙げる。
【0016】このとき、トランザクションAが解放した
領域をトランザクションBが獲得してしまう場合が考え
られる。トランザクションBが先に終了することから、
残されたログには、まず獲得処理が記録され、次に解放
処理が記録される。
【0017】上記の場合のトランザクションBのログだ
けが記録されており、それを復元に用いた場合には、本
来行われたはずである解放処理の記録が残されていない
ことから、該当領域が二重に獲得された状態となってし
まう。トランザクションAのログまで記録されており、
復元に用いられると、トランザクションBが利用してい
る領域がトランザクションAの解放処理のログによって
解放されている状態となってしまう。いずれも本来の状
態とは異なっており、避けなければならない。しかしな
がら、これを回避するために並列実行を制限すること
は、マルチタスクを実現したOS上のファイルシステム
の速度性能の低下に与える影響が非常に大きい。
【0018】(6)第6の問題点 既に述べたようにログ機構の第一の目的としてファイル
システムを復元するために費やす時間の短縮が挙げられ
るが、そのためにトランザクションの独立性を疎かにし
たり、中途半端な状態での整合性回復によりあたかも正
常に動作しているかのように振る舞うファイルシステム
が多く見受けられる。
【0019】従来のメタデータ管理方式のように、ログ
を記録するためのメモリ空間をファイルシステム全体で
1つのキャッシュメモリを共有していたのではトランザ
クション毎の独立性を保つのが難しく、他のトランザク
ションによる更新情報が1つのトランザクションのログ
として記録されてしまう可能性が高い。特にファイルに
対する排他で制御しきれない割り当て管理情報について
は前述の通りである。
【0020】(7)第7の問題点 トランザクション毎に必要とするログのサイズが異なる
ことから、複数のログバッファとしてログを記録するた
めのメモリをトランザクション毎に割り当て、管理する
場合に、全てのメモリサイズが同一である必要はない。
例えば、ファイルの参照時刻を更新するだけのトランザ
クションが残すログのサイズは大変小さく、巨大なデー
タ書き込み要求のトランザクションは必然的にそれだけ
大きいログサイズとなる。
【0021】(8)第8の問題点 トランザクション毎に残すログサイズの違いを考慮し
て、限られたメモリ空間の有効利用を試みても、キャッ
シュメモリサイズは残されるログサイズに比較して、や
はり小さい。
【0022】(9)第9の問題点 「第8の問題点」の解決策として、1つのトランザクシ
ョンを分割し、中途の状態のログを出力することが考え
られる。しかし、一般にファイルを管理するメタデータ
は、トランザクションが中途の状態ではやはり中途の状
態であり、そのままログに記録したところで、そのログ
を用いて復元されるファイルシステムは中途の状態にし
かなり得ない。これではオペレーションのセマンティク
スを保証した復元とはなり得ない。
【0023】(10)第10の問題点 「第9の問題点」で示した中途の状態でのトランザクシ
ョンの中断はファイルシステムにとって危険な状態とい
える。ログ機構の導入は、採取したログをログボリュー
ムに反映するまでは該当メタデータもキャッシュメモリ
から追い出せないことを意味する。ログがキャッシュメ
モリに入りきらないほど巨大となっているときには、メ
タデータを管理するキャッシュメモリの利用率も高くな
っていることが考えられる。ログを出力するまでメタデ
ータをキャッシュメモリから追い出せないため、このよ
うな状態で多くのトランザクションが並列実行される
と、メモリ枯渇によるハングアップ状態に陥ることも考
えられる。
【0024】(11)第11の問題点 第10の問題点と同様の資源枯渇はログ記録用の二次記
憶装置についても言える。キャッシュメモリに比較すれ
ば巨大な二次記憶装置についても、メタデータ記録用の
二次記憶装置へのI/Oを削減するために、多くのログ
を有効なログとして残しておけば、それは利用可能な領
域の減少を引き起こす。その際に多数のトランザクショ
ンの並列実行を許すことはメタデータキャッシュ枯渇、
ログキャッシュ枯渇、ログ記録用二次記憶装置枯渇、な
どを誘発する可能性がある。
【0025】本発明はこのような点に鑑みてなされたも
のであり、ファイルシステム修復処理の効率化を図った
データ処理装置を提供することを目的とする。
【0026】
【課題を解決するための手段】本発明では上記課題を解
決するための第1の発明として、ログを用いてファイル
システムの不整合の修正を行うデータ処理装置におい
て、ファイルを管理するメタデータを記憶するための二
次記憶装置である複数のメタボリュームと、メタデータ
の更新結果であるログを記憶するための二次記憶装置で
あるログボリュームと、メタデータを記憶するために主
記憶装置内に設けられたメタキャッシュと、メタデータ
の内容が変更される際に、対象となるメタデータを前記
メタキャッシュへと読み込むメタデータ読み込み手段
と、前記メタキャッシュ内に読み込まれたメタデータの
内容を更新するトランザクションと、前記メタキャッシ
ュに読み込まれたメタデータが格納されていたメタボリ
ュームの識別情報を管理するメタデータ管理手段と、前
記メタキャッシュ内で変更されたメタデータの内容をロ
グとして採取するとともに、採取したメタデータが格納
されていたメタボリュームの識別情報を採取するログ採
取手段と、前記ログ採取手段が採取した情報を保持する
ログバッファと、前記ログバッファが保持する情報を、
適宜前記ログボリュームに格納するログ書き込み手段
と、を有することを特徴とするデータ処理装置が提供さ
れる。
【0027】このようなデータ処理装置によれば、トラ
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。その
際、読み込んだメタデータがどのメタボリュームから読
み込まれたものであるのかが、メタデータ管理手段によ
って管理される。ここで、トランザクションがメタデー
タの内容を更新すると、ログ採取手段によって更新後の
メタデータがログとして採取される。この際、メタデー
タが格納されていたメタボリュームの識別情報をも採取
する。採取した情報は、ログバッファに保持される。そ
して、ログ書き込み手段により、ログバッファ内の情報
がログボリュームに書き込まれる。
【0028】また、上記課題を解決する第2の発明とし
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータの更新結果であるログを記憶するため
の二次記憶装置であるログボリュームと、メタデータを
記憶するために主記憶装置内に設けられたメタキャッシ
ュと、メタデータの内容が変更される際に、対象となる
メタデータを前記メタキャッシュへと読み込むメタデー
タ読み込み手段と、前記メタキャッシュ内に読み込まれ
たメタデータの内容を更新するトランザクションと、前
記メタキャッシュ内で変更されたメタデータの内容をロ
グとして採取するログ採取手段と、前記ログ採取手段が
採取した情報を保持するログバッファと、前記ログボリ
ューム内の領域を定期的に循環するようにして、前記ロ
グバッファが保持する情報を前記ログボリュームに格納
するログ書き込み手段と、前記メタキャッシュ内のメタ
データをメタボリューム内に格納するメタデータ書き込
み手段と、前記メタデータ書き込み手段による書き込み
動作を監視しており、変更内容が前記メタボリュームに
反映されていないメタデータに対応する前記ログボリュ
ーム内のログを、有効なログとして指定する有効範囲監
視手段と、ファイルシステム復元要求を受け取ると、前
記ログボリュームに格納されたログの中で、前記有効範
囲監視手段により有効なログとして指定されているログ
のみを用いて、前記メタボリューム内のメタデータの不
整合を修正するファイルシステム復元手段と、を有する
ことを特徴とするデータ処理装置が提供される。
【0029】このようなデータ処理装置によれば、トラ
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する
と、ログ採取手段によって更新後のメタデータがログと
して採取される。採取した情報は、ログバッファに保持
される。そして、ログ書き込み手段により、ログバッフ
ァ内の情報がログボリュームに書き込まれる。その後、
メタデータ書き込み手段により、メタキャッシュ内のメ
タデータがメタボリューム内に格納される。その書き込
み動作は、有効範囲監視手段で監視されており、変更内
容がメタボリュームに反映されていないメタデータに対
応するログボリューム内のログが、有効なログとして指
定される。そして、ファイルシステム復元要求が出され
ると、ファイルシステム復元手段により、ログボリュー
ムに格納されたログの中で、有効範囲監視手段により有
効なログとして指定されているログのみを用いて、メタ
ボリューム内のメタデータの不整合が修正される。
【0030】また、上記課題を解決する第3の発明とし
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータの更新結果であるログを記憶するため
の二次記憶装置であるログボリュームと、メタデータを
記憶するために主記憶装置内に設けられたメタキャッシ
ュと、メタデータの内容が変更される際に、対象となる
メタデータを前記メタキャッシュへと読み込むメタデー
タ読み込み手段と、前記メタキャッシュ内に読み込まれ
たメタデータの内容を更新するトランザクションと、前
記メタキャッシュ内で変更されたメタデータの内容をロ
グとして採取するログ採取手段と、前記ログ採取手段が
採取した情報を保持するログバッファと、前記ログバッ
ファが保持する情報を前記ログボリュームに格納するロ
グ書き込み手段と、前記ログボリュームに格納されたロ
グを用いて前記メタボリューム内のメタデータの不整合
を修正するファイルシステム復元手段と、前記ファイル
システム復元手段が前記メタボリューム内のメタデータ
の不整合を修正した時に用いられたログの最後のシーケ
ンス番号を記憶する初期シーケンス番号記憶手段と、
前記ログ書き込み手段がログの書き込みを行う際に、シ
ーケンス番号を昇順で採番し、採番したシーケンス番号
を書き込むべきログに付与しており、前記ファイルシス
テム復元手段が前記メタボリューム内のメタデータの不
整合を修正した直後には、前記初期シーケンス番号記憶
手段に格納されたシーケンス番号を基準として採番する
シーケンス番号採番手段と、を有することを特徴とする
データ処理装置が提供される。
【0031】このようなデータ処理装置によれば、トラ
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する
と、ログ採取手段によって更新後のメタデータがログと
して採取される。採取した情報は、ログバッファに保持
される。そして、ログ書き込み手段により、ログバッフ
ァ内の情報がログボリュームに書き込まれる。その際、
シーケンス番号採番手段により、シーケンス番号が昇順
で採番され、書き込むべきログに付与される。ファイル
システムに不整合が発生すると、ファイルシステム復元
手段により、ログボリュームに残されたログを用いてメ
タデータの不整合が修正される。このとき、修正に用い
られた最後のログのシーケンス番号が初期シーケンス番
号記憶手段に記憶される。その後、ログ書き込み手段に
よりログバッファ内の情報がログボリュームに書き込ま
れると、シーケンス番号採番手段により、初期シーケン
ス番号記憶手段に格納されたシーケンス番号を基準とし
てシーケンス番号が採番され、書き込むべきログに付与
される。
【0032】また、上記課題を解決する第4の発明とし
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータを記憶するために主記憶装置内に設け
られたメタキャッシュと、メタデータの内容が変更され
る際に、対象となるメタデータを前記メタキャッシュへ
と読み込むメタデータ読み込み手段と、前記メタキャッ
シュ内に読み込まれたメタデータの内容を更新するトラ
ンザクションと、前記トランザクションの種別を判断
し、メタデータの更新を複数回行う可能性のあるトラン
ザクションの場合には、前記メタキャッシュ内で変更さ
れたメタデータの最終形態のみをログとして採取するロ
グ採取手段と、を有することを特徴とするデータ処理装
置が提供される。
【0033】このようなデータ処理装置によれば、トラ
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する。
すると、ログ採取手段により、トランザクションの種別
が判断され、メタデータの更新を複数回行う可能性のあ
るトランザクションの場合には、メタキャッシュ内で変
更されたメタデータの最終形態のみがログとして採取さ
れる。
【0034】また、上記課題を解決する第5の発明とし
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、メタデータに対する割り当
てを管理するための割り当て管理情報を複数の領域に分
割して保持する割り当て管理情報保持手段と、前記割り
当て管理情報保持手段内の割り当て管理情報の一部領域
の複製を生成し、獲得操作用管理情報とするとともに、
前記獲得操作用管理情報内に未獲得のメタデータがなく
なると、割り当て管理情報の別の領域の複製を前記獲得
操作用管理情報とする獲得操作用管理情報生成手段と、
メタデータの獲得及び解放要求を出力するトランザクシ
ョンと、前記トランザクションによりメタデータの獲得
要求が出された場合には、前記獲得操作用管理情報の中
の未獲得のメタデータを獲得し、獲得したメタデータを
獲得済みとするように前記獲得操作用管理情報と前記割
り当て管理情報との内容を変更するメタデータ獲得手段
と、前記トランザクションによりメタデータの解放要求
が出された場合には、指定されたメタデータが未獲得の
状態となるように、前記割り当て管理情報の内容を変更
するメタデータ解放手段と、を有することを特徴とする
データ処理装置が提供される。
【0035】このようなデータ処理装置によれば、獲得
操作用管理情報生成手段により、割り当て管理情報の一
部領域の複製が生成され、獲得操作用管理情報とされ
る。トランザクションにより獲得要求があると、メタデ
ータ獲得手段により、獲得操作用管理情報内の未獲得の
メタデータが獲得される。すると、獲得操作用管理情報
と割り当て管理情報との内容が更新される。また、トラ
ンザクションよりメタデータの解放要求があると、メタ
データ解放手段により該当するメタデータの解放処理が
行われる。この際、割り当て管理情報の内容のみが更新
される。ここで、獲得操作用管理情報内に未獲得のメタ
データがなくなると、割り当て管理情報内の別の領域の
複製が獲得操作用管理情報とされる。
【0036】また、上記課題を解決する第6の発明とし
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、メタデータに対する割り当
てを管理するための割り当て管理情報を保持する割り当
て管理情報保持手段と、メタデータの獲得及び解放要求
を出力するトランザクションと、前記トランザクション
によりメタデータの獲得要求が出された場合には、前記
割り当て管理情報保持手段の中の未獲得のメタデータを
獲得し、獲得したメタデータを獲得済みとするように前
記割り当て管理情報の内容を変更するメタデータ獲得手
段と、前記トランザクションによりメタデータの解放要
求が出された場合には、指定されたメタデータ未獲得の
状態となるように、前記割り当て管理情報の内容を変更
するメタデータ解放手段と、前記割り当て管理情報内の
前記メタデータ獲得手段及び前記メタデータ解放手段に
よって変更された部分の情報をログとして採取するログ
採取手段と、を有することを特徴とするデータ処理装置
が提供される。
【0037】このようなデータ処理装置によれば、トラ
ンザクションからメタデータの獲得要求が出されると、
メタデータ獲得手段によって未獲得のメタデータの1つ
が割り当て管理情報内から獲得され、そのメタデータが
獲得済みの状態とされる。また、トランザクションから
メタデータの解放要求が出されると、メタデータ解放手
段によって該当するメタデータが未獲得の状態に変更さ
れる。そして、ログ採取手段により、割り当て管理情報
内のメタデータ獲得手段及びメタデータ解放手段によっ
て変更された部分の情報がログとして採取される。
【0038】また、上記課題を解決する第7の発明とし
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータを記憶するために主記憶装置内に設け
られたメタキャッシュと、メタデータの内容が変更され
る際に、対象となるメタデータを前記メタキャッシュへ
と読み込むメタデータ読み込み手段と、前記メタキャッ
シュ内に読み込まれたメタデータの内容を更新する複数
のトランザクションと、 ログをトランザクション毎に
保持する、サイズの異なる複数のログバッファと、前記
メタキャッシュ内で変更されたメタデータの内容をログ
として採取し、前記トランザクション毎に分けて前記ロ
グバッファに格納するログ採取手段と、を有することを
特徴とするデータ処理装置が提供される。
【0039】このようなデータ処理装置によれば、トラ
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する。
すると、ログ採取手段により、メタキャッシュ内で変更
されたメタデータがログとして採取され、トランザクシ
ョン毎のログバッファに保持される。
【0040】また、上記課題を解決する第8の発明とし
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータの更新結果であるログを記憶するため
の二次記憶装置であるログボリュームと、メタデータを
記憶するために主記憶装置内に設けられたメタキャッシ
ュと、メタデータの内容が変更される際に、対象となる
メタデータを前記メタキャッシュへと読み込むメタデー
タ読み込み手段と、前記メタキャッシュ内に読み込まれ
たメタデータの内容を更新するトランザクションと、ロ
グをトランザクション毎に保持するログバッファと、前
記メタキャッシュ内で変更されたメタデータの内容をロ
グとして採取し、前記ログバッファに格納するログ採取
手段と、前記トランザクションが終了した場合に前記ロ
グバッファの内容を前記ログボリュームに書き込むとと
もに、前記トランザクションによるログが前記ログバッ
ファ内に格納しきれない場合には、前記ログバッファ内
のデータを完結したログに加工し、中間ログとして前記
ログボリューム内に格納するログ書き込み手段と、を有
することを特徴とするデータ処理装置が提供される。
【0041】このようなデータ処理装置によれば、トラ
ンザクションがメタデータの更新をする際には、まず、
メタデータ読み込み手段によりメタボリューム内の必要
なメタデータがメタキャッシュに読み込まれる。ここ
で、トランザクションがメタデータの内容を更新する
と、ログ採取手段によって更新後のメタデータがログと
して採取される。採取した情報は、ログバッファに保持
される。そして、ログバッファに格納しきれなくなる
か、トランザクションが終了すると、ログ書き込み手段
により、ログバッファ内の情報がログボリュームに書き
込まれる。ログバッファに格納しきれなくなった場合に
は、ログバッファの内容を完結したログに加工され、中
間ログとしてログボリュームに格納される。
【0042】また、上記課題を解決する第9の発明とし
て、ログを用いてファイルシステムの不整合の修正を行
うデータ処理装置において、ファイルを管理するメタデ
ータを記憶するための二次記憶装置であるメタボリュー
ムと、メタデータの更新結果であるログを記憶するため
の二次記憶装置であるログボリュームと、メタデータを
記憶するために主記憶装置内に設けられたメタキャッシ
ュと、メタデータの内容が変更される際に、対象となる
メタデータを前記メタキャッシュへと読み込むメタデー
タ読み込み手段と、前記メタキャッシュ内に読み込まれ
たメタデータの内容を更新する、複数同時実行可能なト
ランザクションと、前記トランザクションからの開始要
求を受け付けると、ログ採取に関するシステムの動作状
況を判断し、前記トランザクションの受け入れ許否を判
断するトランザクション受け入れ判断手段と、前記メタ
キャッシュ内で変更されたメタデータの内容をログとし
て採取するログ採取手段と、前記ログ採取手段が採取し
た情報を保持するログバッファと、前記ログバッファが
保持する情報を、適宜前記ログボリュームに格納するロ
グ書き込み手段と、を有することを特徴とするデータ処
理装置が提供される。
【0043】このようなデータ処理装置によれば、トラ
ンザクションから開始要求が出されると、トランザクシ
ョン受け入れ制限手段が受け入れの許否を判断する。そ
の後、メタデータ書き込み手段によるメタデータの書き
込みが進み、有効なログの割合が減少したら、その時点
でトランザクションの開始要求を許可する。
【0044】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。図1は、第1の発明の原理構成図
である。この第1の発明は、複数の二次記憶装置がメタ
データに割り当てられている場合におけるファイルシス
テム不整合修復時間の短縮を図るものである。
【0045】このデータ処理装置には、二次記憶装置と
してメタボリューム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に格納する。
【0046】このようなデータ処理装置よれば、トラ
ンザクション6がメタデータの更新をする際には、ま
ず、メタデータ読み込み手段4によりメタボリューム1
a〜1c内の必要なメタデータがメタキャッシュ3に読
み込まれる。その際、読み込んだメタデータがどのメタ
ボリュームから読み込まれたものであるのかが、メタデ
ータ管理手段5によって管理される。ここで、トランザ
クション6がメタデータの内容を更新すると、ログ採取
手段7によって更新後のメタデータがログとして採取さ
れる。この際、メタデータが格納されていたメタボリュ
ーム1a〜1cの識別情報をも採取する。採取した情報
は、ログバッファ8に保持される。そして、ログ書き込
み手段9により、ログバッファ8内の情報がログボリュ
ーム2に書き込まれる。
【0047】これにより、ログボリューム2に保持され
たログがどのメタボリューム1a〜1cのメタデータに
関するログであるのかを管理することができる。その結
果、複数のメタボリューム1a〜1cにメタデータが格
納されていても、ファイルシステムの不整合を修正する
ことが可能となる。
【0048】図2は、第2の発明の原理構成図である。
第2の発明は、ログの有効範囲を監視することで、ファ
イルシステム復元時の効率化を図ったものである。第2
の発明は、以下のような要素で構成される。
【0049】メタボリューム11は、ファイルを管理す
るメタデータを記憶するための二次記憶装置である。ロ
グボリューム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は、有効範囲が
記録された不揮発性の記録媒体内の情報を読みとること
で、有効なログと指定されているログを認識できる。
【0050】このようなデータ処理装置によれば、トラ
ンザクション15がメタデータの更新をする際には、ま
ず、メタデータ読み込み手段14によりメタボリューム
11内の必要なメタデータがメタキャッシュ13に読み
込まれる。ここで、トランザクション15がメタデータ
の内容を更新すると、ログ採取手段16によって更新後
のメタデータがログとして採取される。採取した情報
は、ログバッファ17に保持される。そして、ログ書き
込み手段18により、ログバッファ17内の情報がログ
ボリューム12に書き込まれる。その後、メタデータ書
き込み手段19により、メタキャッシュ13内のメタデ
ータがメタボリューム11内に格納される。その書き込
み動作は、有効範囲監視手段20で監視されており、変
更内容がメタボリューム11に反映されていないメタデ
ータに対応するログボリューム12内のログが、有効な
ログとして指定される。そして、ファイルシステム復元
要求が出されると、ファイルシステム復元手段21によ
り、ログボリューム12に格納されたログの中で、有効
範囲監視手段20により有効なログとして指定されてい
るログを用いて、メタボリューム11内のメタデータの
不整合が修正される。
【0051】これにより、ファイルシステムを復元する
際には、ログボリューム12内の有効なログのみを用い
て効率よく復元処理を行うことが可能となる。図3は、
第3の発明の原理構成図である。第3の発明は、ログに
付加するシーケンス番号のデータサイズを十分大きなも
のとし、シーケンス番号を常に昇順で使い続けることが
できる(ゼロクリアが不要となる)ようにしたものであ
る。第3の実施の形態は、以下のような要素で構成され
る。
【0052】メタボリューム31は、ファイルを管理す
るメタデータを記憶するための二次記憶装置である。ロ
グボリューム32は、メタデータの更新結果であるログ
を記憶するための二次記憶装置である。メタキャッシュ
33は、メタデータを記憶するために主記憶装置内に設
けられた記憶領域である。メタデータ読み込み手段34
は、メタデータの内容が変更される際に、対象となるメ
タデータをメタキャッシュ33へと読み込む。トランザ
クション35は、メタキャッシュ33内に読み込まれた
メタデータの内容を更新する。ログ採取手段36は、メ
タキャッシュ33内で変更されたメタデータの内容をロ
グとして採取する。ログバッファ37は、ログ採取手段
36が採取した情報を保持する。ログ書き込み手段38
は、ログバッファが保持する情報を前記ログボリューム
に格納する。ファイルシステム復元手段39は、ログボ
リューム32に格納されたログを用いてメタボリューム
31内のメタデータの不整合を修正する。初期シーケン
ス番号記憶手段30aは、ファイルシステム復元手段3
9がメタボリューム31内のメタデータの不整合を修正
した時に用いられたログの最後のシーケンス番号を記憶
する。シーケンス番号採番手段30bは、ログ書き込み
手段38がログの書き込みを行う際に、シーケンス番号
を昇順で採番し、採番したシーケンス番号を書き込むべ
きログに付与しており、ファイルシステム復元手段39
がメタボリューム31内のメタデータの不整合を修正し
た直後には、初期シーケンス番号記憶手段30aに格納
されたシーケンス番号を基準として採番する。
【0053】このようなデータ処理装置によれば、トラ
ンザクション35がメタデータの更新をする際には、ま
ず、メタデータ読み込み手段34によりメタボリューム
31内の必要なメタデータがメタキャッシュ33に読み
込まれる。ここで、トランザクション35がメタデータ
の内容を更新すると、ログ採取手段36によって更新後
のメタデータがログとして採取される。採取した情報
は、ログバッファ37に保持される。そして、ログ書き
込み手段38により、ログバッファ37内の情報がログ
ボリューム32に書き込まれる。その際、シーケンス番
号採番手段30bによりシーケンス番号が昇順で採番さ
れ、書き込むべきログに付与される。また、ファイルシ
ステム復元手段39により、ログボリューム32に格納
されたログを用いてメタボリューム31内のメタデータ
の不整合が修正されると、修正した時に用いられたログ
の最後のシーケンス番号が初期シーケンス番号記憶手段
30aに記憶される。その後、ログ書き込み手段38に
より、ログバッファ37内の情報がログボリューム32
に書き込まれると、シーケンス番号採番手段30bによ
り、初期シーケンス番号記憶手段30aに記憶されたシ
ーケンス番号を基準としてシーケンス番号が昇順で採番
され、書き込むべきログに付与される。
【0054】これにより、既にファイルシステムの復元
に用いたログと、ファイルシステム復元後に介したトラ
ンザクションのログとのシーケンス番号が重ならないこ
とを保証することができる。その結果、システムが使用
可能な期間中にログボリュームをゼロクリアする必要が
なくなり、ゼロクリアに伴う処理の遅延を避けることが
できる。
【0055】図4は、第4の発明の原理構成図である。
第4の発明は、同じメタデータに対して複数回更新処理
が行われる場合に、最終形態のメタデータのみをログと
して採取するものである。第4の発明は、以下のような
要素で構成される。
【0056】メタボリューム41は、ファイルを管理す
るメタデータを記憶するための二次記憶装置である。メ
タキャッシュ42は、メタデータを記憶するために主記
憶装置内に設けられた記憶領域である。メタデータ読み
込み手段43は、メタデータの内容が変更される際に、
対象となるメタデータをメタキャッシュ42へと読み込
む。トランザクション44は、メタキャッシュ42内に
読み込まれたメタデータの内容を更新する。ログ採取手
段45は、トランザクション44の種別を判断し、メタ
データの更新を複数回行う可能性のあるトランザクショ
ンの場合には、メタキャッシュ42内で変更されたメタ
データの最終形態のみをログとして採取する。ログバッ
ファ46は、ログ採取手段45が採取した情報を保持す
る。
【0057】このようなデータ処理装置によれば、トラ
ンザクション44がメタデータの更新をする際には、ま
ず、メタデータ読み込み手段43によりメタボリューム
41内の必要なメタデータがメタキャッシュ42に読み
込まれる。ここで、トランザクション44がメタデータ
の内容を更新する。すると、ログ採取手段45により、
トランザクション44の種別が判断され、メタデータの
更新を複数回行う可能性のあるメタデータ属性を予測す
る。予測されたメタデータ属性において、同一メタデー
タが何度も更新される可能性がある場合には、その属性
のメタデータがメタキャッシュ42内で変更された時点
ではログ採取を行わず、トランザクション44が終了し
た時点で、最終形態のメタデータをログとして採取す
る。採取した情報は、ログバッファ46に保持される。
【0058】これにより、複数回更新されたメタデータ
のログを更新処理の度に採取することがなくなり、メモ
リの効率化を図ることができるともに、ログを書き出す
ときのI/Oの量も減らすことができる。
【0059】図5は、第5の発明の原理構成図である。
第5の発明は、メタデータ割り当て管理情報の一部の複
製を生成し、複製として生成した情報内からのみメタデ
ータの獲得を可能とし、解放する際には、割り当て管理
情報においてのみ解放された旨の情報の更新を行うこと
で、解放直後に別のトランザクションに獲得されるのを
防止したものである。第5の発明は、以下のような要素
で構成される。
【0060】割り当て管理情報保持手段51は、メタデ
ータに対する割り当てを管理するための割り当て管理情
報51aを複数の領域に分割して保持する。獲得操作用
管理情報生成手段52は、割り当て管理情報保持手段5
1内の割り当て管理情報の一部領域の複製を生成し、獲
得操作用管理情報51bとする。また、獲得操作用管理
情報51b内に未獲得のメタデータがなくなると、割り
当て管理情報の別の領域の複製を獲得操作用管理情報5
1bとする。トランザクション53は、メタデータの獲
得及び解放要求を出力する。メタデータ獲得手段54
は、トランザクション53によりメタデータの獲得要求
が出された場合には、獲得操作用管理情報51bの中の
未獲得のメタデータを獲得し、獲得したメタデータを獲
得済みとするように獲得操作用管理情報51bと割り当
て管理情報51aとの内容を変更する。メタデータ解放
手段55は、トランザクション53によりメタデータの
解放要求が出された場合には、指定されたメタデータが
未獲得の状態となるように、割り当て管理情報の内容を
変更する。
【0061】このようなデータ処理装置によれば、獲得
操作用管理情報生成手段52により、割り当て管理情報
51aの一部領域の複製が生成され、獲得操作用管理情
報51bとされる。トランザクション53により獲得要
求があると、メタデータ獲得手段54により、獲得操作
用管理情報51b内の未獲得のメタデータが獲得され
る。すると、獲得操作用管理情報51bと割り当て管理
情報51aとの内容が更新される。また、トランザクシ
ョン53よりメタデータの解放要求があると、メタデー
タ解放手段55により該当するメタデータの解放処理が
行われる。この際、割り当て管理情報51aの内容のみ
が更新される。ここで、獲得操作用管理情報51b内に
未獲得のメタデータがなくなると、割り当て管理情報5
1a内の別の領域の複製が獲得操作用管理情報51bと
される。
【0062】これにより、解放された旨の情報が獲得操
作用管理情報51bに反映されないため、解放直後のメ
タデータが他のトランザクションに獲得されることがな
くなる。その結果、解放処理を行ったトランザクション
の終了前にシステムがダウンしても、少なくとも解放前
の状態のまま保全されることが保証される。
【0063】図6は、第6の発明の原理構成図である。
第6の発明は、トランザクション単位に、獲得や解放に
関する情報をログとして記録することで、必要なメモリ
容量の削減を図るとともに、平行動作するトランザクシ
ョンのログに起因して割り当て管理情報に不正な状態が
発生することを防ぐものである。第6の発明は、以下の
ような要素で構成される。
【0064】割り当て管理情報保持手段61は、メタデ
ータに対する割り当てを管理するための割り当て管理情
報を保持する。トランザクション62は、メタデータの
獲得及び解放要求を出力する。メタデータ獲得手段63
は、トランザクション62によりメタデータの獲得要求
が出された場合には、獲得操作用管理情報の中の未獲得
のメタデータを獲得し、獲得したメタデータを獲得済み
とするように割り当て管理情報61aの内容を変更す
る。メタデータ解放手段64は、トランザクション62
によりメタデータの解放要求が出された場合には、指定
されたメタデータ未獲得の状態となるように、割り当て
管理情報61aの内容を変更する。ログ採取手段65
は、割り当て管理情報内のメタデータ獲得手段63及び
メタデータ解放手段64によって変更された部分の情報
をログとして採取する。ログバッファ66は、ログ採取
手段65が採取したログを保持する。
【0065】このようなデータ処理装置によれば、トラ
ンザクション62からメタデータの獲得要求が出される
と、メタデータ獲得手段63によって未獲得のメタデー
タの1つが割り当て管理情報61a内から獲得され、そ
のメタデータが獲得済みの状態とされる。また、トラン
ザクション62からメタデータの解放要求が出される
と、メタデータ解放手段64によって該当するメタデー
タが未獲得の状態に変更される。そして、ログ採取手段
65により、割り当て管理情報61a内のメタデータ獲
得手段63及びメタデータ解放手段64によって変更さ
れた部分の情報がログとして採取され、ログバッファ6
6に保持される。
【0066】このように、獲得、解放のログを採取する
際に、トランザクションが獲得や解放を行ったという情
報のみをログとして格納することで、メモリ等の領域を
効率よく利用することができるとともに、他トランザク
ションによる獲得や解放処理の情報がログに含まれない
ことによって、割り当て管理情報が不正な状態となるこ
とを防ぐことができる。
【0067】図7は、第7の発明の原理構成図である。
第7の発明は、ログバッファを複数設けることにより、
トランザクションの独立性をいっそう高めたものであ
る。第7の発明の構成要素は以下の通りである。
【0068】メタボリューム71は、ファイルを管理す
るメタデータを記憶するための二次記憶装置である。メ
タキャッシュ72は、メタデータを記憶するために主記
憶装置内に設けられた記憶領域である。メタデータ読み
込み手段73は、メタデータの内容が変更される際に、
対象となるメタデータをメタキャッシュ72へと読み込
む。複数のトランザクション74a〜74cは、メタキ
ャッシュ72内に読み込まれたメタデータの内容を更新
する。複数のログバッファ75a〜75eは、ログをト
ランザクション毎に保持する。各ログバッファ75a〜
75eのサイズは一定ではなく、大きなサイズや小さな
サイズが存在する。ログ採取手段76は、メタキャッシ
ュ72内で変更されたメタデータの内容をログとして採
取し、前記トランザクション毎に分けて適したサイズの
ログバッファ75a〜75eに格納する。例えば、最初
にログを格納する場合には、トランザクションの内容に
よって予想される処理に適した大きさのログバッファに
格納し、格納対象となるログバッファの記憶容量が不足
してきたら、より大きな記憶容量のログバッファへログ
を移し替え、以後、より大きな記憶容量のログバッファ
をログの格納対象とする。
【0069】このようなデータ処理装置によれば、トラ
ンザクション74a〜74cがメタデータの更新をする
際には、まず、メタデータ読み込み手段73によりメタ
ボリューム71内の必要なメタデータがメタキャッシュ
72に読み込まれる。ここで、トランザクション74a
〜74cがメタデータの内容を更新する。すると、ログ
採取手段76により、メタキャッシュ72内で変更され
たメタデータがログとして採取され、適したサイズのロ
グバッファ75a〜75eに保持される。
【0070】このように、複数のログバッファに分け、
トランザクション毎に1つのログバッファを使用するよ
うにしたことで、トランザクションの独立性を保つこと
ができる。しかも、複数のサイズのログバッファを用意
し、トランザクション毎に適したサイズのログバッファ
を使用することにより、メモリを効率的に利用できる。
【0071】図8は、第8の発明の原理構成図である。
第8の発明は、あるトランザクションのログがログバッ
ファに入りきらない場合に、中間ログとしてログバッフ
ァの内容を書き出すものである。第8の発明の構成は以
下の通りである。
【0072】メタボリューム81は、ファイルを管理す
るメタデータを記憶するための二次記憶装置である。ロ
グボリューム82は、メタデータの更新結果であるログ
を記憶するための二次記憶装置である。メタキャッシュ
83は、メタデータを記憶するために主記憶装置内に設
けられた記憶領域である。メタデータ読み込み手段84
は、メタデータの内容が変更される際に、対象となるメ
タデータをメタキャッシュ83へと読み込む。トランザ
クション85は、メタキャッシュ83内に読み込まれた
メタデータの内容を更新する。ログバッファ86は、ロ
グをトランザクション毎に保持する。ログ採取手段87
は、メタキャッシュ83内で変更されたメタデータの内
容をログとして採取し、ログバッファ86に格納する。
ログ書き込み手段88は、トランザクション85が終了
した場合にログバッファ86の内容をログボリューム8
2に書き込むとともに、トランザクション85によるロ
グがログバッファ86内に格納しきれない場合には、ロ
グバッファ86内のデータを完結したログに加工し、中
間ログとしてログボリューム82内に格納する。なお、
中間ログを生成する際には、中間ログに対してトランザ
クションを実行するのに必要とされたパラメタに関する
情報を付加する。ファイルシステム復元手段89は、フ
ァイルシステム復元要求を受け取ると、ログボリューム
82に格納されたログを用いて、メタボリューム81内
のメタデータの不整合を修正する。このとき、中間ログ
を発見すると、中間ログに含まれたパラメタを用いてト
ランザクションを再実行させる。
【0073】このようなデータ処理装置によれば、トラ
ンザクション85がメタデータの更新をする際には、ま
ず、メタデータ読み込み手段84によりメタボリューム
81内の必要なメタデータがメタキャッシュ83に読み
込まれる。ここで、トランザクション85がメタデータ
の内容を更新すると、ログ採取手段87によって更新後
のメタデータがログとして採取される。採取した情報
は、ログバッファ86に保持される。そして、ログバッ
ファ86に格納しきれなくなるか、トランザクション8
5が終了すると、ログ書き込み手段88により、ログバ
ッファ86内の情報がログボリューム82に書き込まれ
る。ログバッファ86に格納しきれなくなった場合に
は、ログバッファ86の内容を完結したログに加工し、
中間ログとしてログボリューム82に格納する。そし
て、ファイルシステム復元要求が出されると、ファイル
システム復元手段89により、ログボリューム82に格
納されたログを用いて、メタボリューム81内のメタデ
ータの不整合が修正されるとともに、中間ログまで採取
した段階で停止しているトランザクションが再実行され
る。
【0074】これにより、メタデータの更新を大量に行
うトランザクションの実行中にシステムがダウンした場
合には、途中の状態まで戻すことができるとともに、ト
ランザクションが再実行されることで、トランザクショ
ンの実行後の状態へ遷移させることができる。
【0075】図9は、第9の発明の原理構成図である。
トランザクションの受け入れを一定の条件によって制限
することで、メモリ枯渇等を防止するものである。第9
の発明の構成は以下の通りである。
【0076】メタボリューム91は、ファイルを管理す
るメタデータを記憶するための二次記憶装置である。ロ
グボリューム92は、メタデータの更新結果であるログ
を記憶するための二次記憶装置である。メタキャッシュ
94は、メタデータを記憶するために主記憶装置内に設
けられた記憶領域である。メタデータ読み込み手段93
は、メタデータの内容が変更される際に、対象となるメ
タデータをメタキャッシュ94へと読み込む。互いの同
時実行可能な複数のトランザクション90b〜90d
は、メタキャッシュ94内に読み込まれたメタデータの
内容を更新する。トランザクション受け入れ制限手段9
0aは、トランザクション90b〜90dからの開始要
求を受け付けると、ログ採取に関するシステムの動作状
況に基づいて、トランザクション90b〜90dの受け
入れ許否を判断する。受け入れ判断基準としては、例え
ばログボリューム内の有効なログが占める割合を用い
る。すなわち、有効範囲監視手段99によって有効なロ
グとされたログがログボリューム中に占める割合が一定
値以上である間は、トランザクション90b〜90dの
受け入れを拒絶する。
【0077】ログ採取手段96は、メタキャッシュ94
内で変更されたメタデータの内容をログとして採取す
る。ログバッファ95は、ログ採取手段96が採取した
情報を保持する。ログ書き込み手段97は、ログバッフ
ァ95が保持する情報を、適宜ログボリューム92に格
納する。メタデータ書き込み手段98は、メタキャッシ
ュ94内のメタデータをメタボリューム91内に格納す
る。有効範囲監視手段99は、メタデータ書き込み手段
98による書き込み動作を監視しており、変更内容が前
記メタボリュームに反映されていないメタデータに対応
するログボリューム92内のログを、有効なログとして
指定する。
【0078】このようなデータ処理装置によれば、トラ
ンザクション90b〜90dから開始要求が出される
と、トランザクション受け入れ制限手段90aが受け入
れの許否を判断する。例えば、有効範囲監視手段99に
より有効であると指定されたログのログボリューム92
内に示す割合が一定以上の場合には、それ以上ログが発
生しないように、トランザクションの受け入れを拒絶す
る。その後、メタデータ書き込み手段98によるメタデ
ータの書き込みが進み、有効なログの割合が減少した
ら、その時点でトランザクションの開始要求を許可す
る。
【0079】これにより、ログボリュームの空き容量の
減少に伴うハングアップなどの障害の発生を防止するこ
とができる。次に、本発明の実施の形態を具体的に説明
する。
【0080】図10は、本発明を適用するデータ処理装
置のハードウェア構成図である。データ処理システム
は、CPU(Central Processing Unit)211を中心に
構成されている。CPU211は、バス217を介して
他の機器を制御するとともに、様々なデータ処理を行
う。バス217には、メモリ212、入力機器インタフ
ェース213、表示制御回路214、HDD(Hard Disk
Drive)インタフェース215、及びネットワークイン
タフェース216が接続されている。
【0081】メモリ212は、CPU211が実行すべ
きプログラムや、プログラムの実行に必要な各種データ
を一時的に保持する。入力機器インタフェース213
は、入力機器としてキーボード221とマウス222が
接続されており、これらの入力機器からの入力内容をC
PU211に伝える。
【0082】表示制御回路214は、表示装置223が
接続されており、CPU211から送られてきた画像デ
ータを表示装置223で表示可能な画像情報に変換し、
表示装置223の画面に表示させる。
【0083】HDDインタフェース215は、複数のH
DD231〜233が接続されており、CPU211か
ら送られてきたデータをHDD231〜233に格納す
るとともに、CPU211からの要求に応じてHDD2
31〜233内のデータを読み取り、CPU211に転
送する。
【0084】ネットワークインタフェース216は、L
AN(Local Area Network)に接続されており、LANを
介してデータ通信を行う。すなわち、CPU211から
送られたデータをLANに接続された他のコンピュータ
に転送するとともに、他のコンピュータからLANを介
して送られてきたデータをCPU211に転送する。
【0085】HDD231〜233には、各種ファイル
や、そのファイルを管理するためのメタデータ及びログ
が格納されている。このような構成のシステムにおい
て、CPU211がHDD231〜233に格納された
オペレーティングシステム用のプログラムを実行するこ
とにより、本発明のログ採取機能が実現される。
【0086】図11は、ファイルシステム上で動作する
ログ採取機能の構成図である。図のように、ファイルを
管理するためのメタボリューム111〜113も複数設
けられている。メタボリューム111〜113には、そ
れぞれメタデータが格納されている。メタデータは、フ
ァイルの格納場所等を管理するために必要な情報を有し
ている。
【0087】ログボリューム120は、ログ122を格
納するための二次記憶装置である。ログボリューム12
0には、ログ122の他にボリューム管理情報121が
格納されている。
【0088】メタキャッシュ130は、メタデータを操
作するためのメモリ上の領域である。メタキャッシュ1
30内には、操作対象となるメタデータ132とそのメ
タデータの割り当て管理情報131とが格納される。
【0089】ログキャッシュ140は、複数のログバッ
ファ141〜144を有している。ログバッファ141
〜144のサイズは均一ではなく、大きなサイズのもの
や小さなサイズのものがある。これらのログバッファ1
41〜144には、メタキャッシュ130内で更新され
たメタデータの複製がログとして格納される。
【0090】ログキャッシュ140とは別にログライト
バッファ150が設けられている。ログライトバッファ
150には、トランザクションの処理が終了した時点
で、ログバッファ141〜144内のログが転送され
る。
【0091】この例では、複数のトランザクション10
1〜103が並列動作している。このトランザクション
101〜103は、ファイルシステムオペレーションを
分割したものである。
【0092】実際にI/Oを行うのは2つのデーモンで
あり、それぞれをメタライトデーモン104、ログライ
トデーモン105と呼ぶ。ログライトデーモン105が
ログをログ専用の二次記憶装置であるログボリューム1
20に出力する。メタライトデーモン104は、ログボ
リューム120に対してログが出力されたことを確認し
た後、そのログに対応するメタデータをメタデータ専用
の二次記憶装置であるメタボリューム111〜113に
出力する。
【0093】さらに、本発明のログ採取機能では、以下
のような特徴を有している。第1の特徴は、各メタデー
タに対応するメタデータ管理情報として、メタボリュー
ムを識別する情報が付加されていることである。これ
は、大規模ファイルシステムに対応するためのものであ
る。すなわち、複数の二次記憶装置がメタボリューム1
11〜113として定義される場合に、メタキャッシュ
130上のメタデータ管理情報にそのメタデータが存在
するボリュームの情報を持たせている。
【0094】図12は、メタデータ管理情報を示す図で
ある。メタデータ管理情報には、「ボリューム番号」、
「メタデータ番号」、及び「メタデータポインタ」が登
録されている。「ボリューム番号」には、対応するメタ
データが存在するボリューム番号が登録されている。
「メタデータ番号」には、ボリューム毎におけるメタデ
ータ管理番号が登録されている。すなわち、システムが
認識するボリュームのデバイス番号とそのボリューム内
の位置から算定される数値によってメタデータが管理さ
れ、メタデータ自体がそれらの値を管理情報として保持
する。「メタデータポインタ」には、メタデータの実体
のある場所を指し示している。
【0095】このようなメタデータ管理情報を有するメ
タデータの内容が更新されると、更新後のメタデータの
内容がログとしてログバッファに記録されるとともに、
メタデータ管理情報の内容がログに記録される。
【0096】図13は、ログバッファの形式を示す図で
ある。ログバッファには、「BEGINマーク」、「ボ
リューム番号」、「メタデータ番号」、「メタデータ実
体」、及び「ENDマーク」の情報を含んでいる。
【0097】ファイルシステムを復元する際には、ログ
内に記されているボリューム番号によって、そのログに
よって復元すべきメタデータの存在するメタボリューム
が認識される。これにより、従来技術のようにファイル
システム復元時にメタデータ番号からその存在すべきボ
リュームを決定するよりも速度向上が望め、システムダ
ウン後の大規模ファイルシステムにおいてもログ機構導
入によるファイルシステム復元時間の短縮が有効に機能
する。
【0098】第2の特徴は、メタキャッシュ130内で
更新されたメタデータが、それぞれの管理構造にリンク
ポインタを持つことである。ログとしてログボリューム
120に記録されたメタデータはメタライトリストに繋
がれ、メタボリュームヘ反映が完了した時点でこのメタ
ライトリストから外される。さらに、ログとして記録さ
れているログボリューム120内の位置情報をも、メタ
ライトリスト内に持つ。このログボリューム内位置情報
をリストを辿って検索することによって、システムダウ
ン時に必要とされるログの範囲を特定することができ
る。そこで、ここから得られる有効範囲情報をログボリ
ューム120の特定位置に設けたボリューム管理情報1
21内に記録する。有効範囲情報を記録し、ファイルシ
ステム復元時にそこに含まれるログのみをリプレイする
ことにより、ログボリューム全体を検索する必要がなく
なり、ログボリューム全体を読み込む必要のある、有効
範囲情報を記録しない従来の方式よりもファイルシステ
ムの復元時間をさらに短縮することができる。
【0099】ところで、ログ機構はシーケンシャル性を
持ったディスクアクセスを行うことで、記録すべき内容
をヘッドシークすることなしにディスクヘ保存でき、デ
ィスクアクセス時間の短縮を図っている。ところが、本
手法を採用した場合、メタデータのメタボリューム反映
時、ログボリュームヘの書き出し時に、ログボリューム
の特定位置に有効範囲情報を書き出すこととなる。これ
ではシーク削減の意図が全く意味を成さない。
【0100】そのため、本実施の形態ではある程度のイ
ンターバルを空けて、有効範囲情報は書き出すように工
夫した。変更がある度に、常に書き込まれるわけではな
いため有効範囲情報として保存されている情報には若干
の誤差が含まれてしまう。ファイルシステム復元時にそ
の誤差を吸収する必要がある。
【0101】図14は、有効範囲を説明する図である。
図中において、「●」で示すのが、まだメタボリューム
に反映が終了しておらず、ファイルシステム復元に必要
なログを意味する。「○」で示すのは、メタボリューム
に反映が完了したことによって、ファイルシステム復元
時には利用しなくても良いログである。
【0102】従来のファイルシステムにおいて、ログを
用いたファイルシステム復元では、ログボリューム全体
を検索し,ログに記録されたシーケンス番号から、最古
のログを求め、たとえそれがメタボリュームに反映済み
の、利用しなくても良いログであっても利用して、ログ
ボリューム全体のログを用いていた。
【0103】本発明では、ある時点で有効範囲情報を書
き出した時の有効範囲が示されている。その後、有効範
囲を書き出さずに、メタボリュームヘの反映が進み、ま
た、別のトランザクションのログがログボリュームに書
き出されたことによって、実際の有効範囲と有効範囲情
報とはズレを生じている。この時点でシステムがダウン
し、ログを用いてファイルシステムを復元する場合に
は、多少のムダが生じるが、有効範囲情報が示す先頭位
置から、ログを利用する。利用すべきログの末端は有効
範囲情報以降の一定範囲を検索しなければならないが、
その検索は有効範囲情報を書き込むインターバルに依存
し、範囲が限られている。
【0104】第3の特徴は、ログに対してトランザクシ
ョン終了時にシーケンス番号を与え、その番号にはデー
タサイズが肥大化することを考慮に入れた上で、十分大
きいデータ型を適用することである。データ型の大きさ
は、コンピュータ自身の使用可能年数の間使い続けても
枯渇しない程度のサイズとする。例えば、システムの
表記を4桁の十進数「最大9999」で表していた場
合、西暦1万年まで使用されることは想定されていな
い。その場合、西暦9999年まで使用可能なデータ型
とすれば、ログに対するシーケンス番号がオーバーフロ
ーして逆転することがないことを保証することができ、
それにより、ログボリューム全体をゼロクリアして初期
化する必要が生じない。具体的には、データ型を64ビ
ット型とすれば、オーバーフローすることは現実にはあ
りえない(4万年ほど耐えられるものと思われる)。フ
ァイルシステム管理情報、各トランザクションのログ、
有効範囲情報にこのシーケンス番号を含め、ログボリュ
ームに記録する。このように、ログに与えるシーケンス
番号のデータ型に十分大きいものを適用することによ
り、通常の運用時にトランザクションが動作する毎にイ
ンクリメントしても、オーバーフローは現実には起こり
得ない。
【0105】さらに、スーパブロックと呼ばれるファイ
ルシステム全体の管理情報にこのシーケンス番号を含
め、正常なアンマウント処理時及びファイルシステム復
元時にスーパブロックに含まれるシーケンス番号を正し
く設定し、次回のマウント時にそこから得られる値を用
いる。これにより、シーケンス番号は必ず昇順となるこ
とが保証され、ファイルシステム復元時に新しいログを
古いものと取り違えないことが保証される。
【0106】シーケンス番号の順序性を保証することに
よって、ファイルシステム復元時にログボリュームをゼ
ロクリアしなくとも、常に正しいログを利用することが
可能となり、ファイルシステム復元時にログボリューム
全体をゼロクリアするのに比べ、大幅な時間短縮が可能
となる。
【0107】以上の理由により、ログの最大のメリット
であるファイルシステム復元の時間短縮がより一層有効
に機能することが可能となる。第4の特徴は、トランザ
クションによって更新されたメタデータが、そのメタデ
ータの属性に応じ、再度同一のトランザクションにおい
て更新される可能性のあるメタデータであった場合に
は、更新の時点ではログバッファにはコピーせず、リス
ト構造(トランスリスト)によって管理することであ
る。
【0108】そして、同一トランザクション内で複数回
更新されるメタデータとして、領域割当て管理情報をリ
スト構造で管理し、トランザクション進行中にはその中
途段階のログは採取しない。トランザクション終了時に
リスト構造を辿って、トランザクションの更新の最終状
態のみを一括してログとすることによって、ログの縮小
が図られ、それに伴いファイルシステム復元時間の短縮
が可能となる。
【0109】具体的には、メタキャッシュ130内のメ
タデータを管理する構造にトランスリストヘのリンクポ
インタを持たせることによって実現している。トランザ
クションによって更新されたメタデータは、ただ一回し
か更新されないことが分かっているメタデータである場
合には、その時点でログバッファヘコピーされるが、以
降もトランザクション進行中に更新される可能性がある
場合には、このリンクポインタを用いてリスト構造に繋
がれる。メタデータの更新可能性の有無は、トランザク
ションの種別で判断する。例えば、データ領域の空きな
どを管理するためのトランザクションでは、何度もメタ
データが更新される。
【0110】そして、トランザクションが終了する時に
このトランスリストを辿り、メタデータの最終形態をロ
グバッファヘコピーする。すると、結局はトランザクシ
ョンが同一メタデータを複数回更新しても、最終形態の
一回だけのログ採取で済まされる。
【0111】図15は、ログ採取処理のフローチャート
である。この処理は、オペレーティングシステムを実行
するCPUが行う処理である。以下、CPUがオペレー
ティングシステムを実行することにより実現する機能
を、単に「システム」ということとする。 [S1]トランザクションの開始宣言を行う。 [S2]ログ採取要求を行う。 [S3]対象メタデータの更新可能性の有無を判断す
る。更新可能性があればステップS5に進み、そうでな
ければステップS4に進む。 [S4]ログバッファへメタデータをコピーし、ステッ
プS2に進む。 [S5]対象メタデータはトランスリストに繋がれてい
るか否かを判断する。トランスリストに繋がれていれば
ステップS7に進み、そうでなければステップS6に進
む。 [S6]メタデータ毎にトランスリストに繋ぐ。 [S7]トランザクションの処理が終了するか否かを判
断する。終了するのであればステップS8に進み、そう
でなければステップS2に進む。 [S8]トランザクション終了宣言を行う。 [S9]トランスリストを辿り、繋がれている最終形態
のメタデータをそれぞれログバッファへコピーする。
【0112】このようにして、トランザクションの更新
の最終状態のみを一括してログとして保存することがで
きる。第5の特徴は、メタボリュームの割当て管理情報
は獲得用として通常の割当て管理情報の複製を新たに設
けたことである。ここで、割り当て管理情報として、ビ
ットマップを例に挙げて説明する。
【0113】図16は、メタボリュームの割り当て管理
状況を示す図である。割り当て管理情報131には、使
用されているメタデータを管理するためのビットマップ
131aが用意されている。ビットマップ131aは複
数のブロックに分けられている。そして各ブロックのビ
ットマップの各ビットが「0」か「1」かによって、対
応するメタデータが空いているか否かが示される。そし
て、ブロックに分けられたビットマップの1つの複製が
作られ、獲得用ビットマップ131bとされる。
【0114】獲得時には、通常のビットマップ操作と同
様に未割り当て状態の領域の検索が行われる。この時、
検索対象として用いるのは獲得用ビットマップ131b
である。獲得用ビットマップ131b内から未割り当て
状態の領域(ビットが立っていない)が見つかった時に
は、その獲得要求には見つかったビット番号を返す。そ
して、獲得用ビットマップ131b及び、その複製元と
なったビットマップの対応ビットを立てる。一方、獲得
用ビットマップ131b内から未割り当て状態の領域が
見つからなかった時には、別のブロックのビットマップ
の複製を生成し、新たな獲得用ビットマップ131cと
する。
【0115】図17は、ビットマップによるメタデータ
獲得処理を示すフローチャートである。この処理は、シ
ステムが行う処理である。 [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」状態となる。
【0116】このようにして、空きのビットマップを獲
得できる。解放時にも、通常のビットマップ操作と同様
に、要求された領域が対応するビットの算出がまず行わ
れるが、対応するビットを落とす操作は、対象のビット
マップに対してのみ行い、仮にその対象ビットマップの
複製が獲得用ビットマップとして存在する場合にも、そ
の獲得用ビットマップに対しては行わない。
【0117】図18は、解放処理のフローチャートであ
る。この処理は、システムが行う。 [S31]解放要求を出す。 [S32]対象ビットマップがメモリ(メタキャッシュ
130)上にあるか否かを判断する。対象ビットマップ
があればステップS34に進み、そうでなければステッ
プS33に進む。 [S33]メタボリューム111〜113上の対象ビッ
トマップをメモリ(メタキャッシュ130)上に読み込
む。 [S34]対象ビットマップの対応するビットを落と
す。 [S35]対象ビットマップに「FreeDirty」フラグを
立てる。
【0118】この一見複雑に見える作業によって、解放
した領域を即座に別の用途に利用してしまうことを回避
することが可能となり、システムダウン時に中途までし
か終了していなかった解放トランザクションが解放した
はずである領域は、解放される直前の状態のまま保全さ
れることが保証できる。
【0119】例えば、Aというトランザクションが解放
処理、Bというトランザクションが獲得処理を行う場合
を考える。ここで、トランザクションAの解放処理はト
ランザクションBの獲得処理よりも先に行われ、かつ、
トランザクションAはトランザクションBよりも後に終
わる場合を例に挙げる。
【0120】図19は、トランザクションの処理の開始
と終了の状況を示す図である。この図において、各トラ
ンザクションは「BEGIN」で始まり、「END」で
終わることを意味し、トランザクションの「○」が解放
処理を、「●」が獲得処理を意味する。
【0121】上図のように、トランザクションAの解放
処理がトランザクションBの獲得処理よりも先に行わ
れ、かつ、トランザクションBのほうがトランザクショ
ンAよりも先に終了した場合に従来のログ採取方式では
問題が生ずることは既に述べた。
【0122】本発明が提案する手法を用いれば、トラン
ザクションBが獲得する領域がトランザクションAが解
放した領域となることは基本的にはなく、領域枯渇状態
に近く、どうしてもこの領域を獲得せねばならない時に
は、一旦、該当ビットマップをメタボリュームに反映し
た後、獲得処理が行われる。これにより、ファイルシス
テム復元時に必要とされる、メタボリュームに未反映な
メタデータを対象とするログを用いた復元では、管理情
報上、二重獲得と見えるようなログは残り得ない。
【0123】また、トランザクションBのログにはトラ
ンザクションAの解放処理が記録されないため、トラン
ザクションBのログよりも後に復元に用いるトランザク
ションAのログによって、トランザクションBが獲得し
た領域を変更されることもありえない。
【0124】第6の特徴は、前述のようにログ機構の導
入にあたり、獲得・解放操作のログとして、その獲得・
解放した対象の情報(このビットを立てた・落した)の
みを記録することである。これによって、複数の獲得・
解放要求に対して、要求の発生後、トランザクションの
終了時点までをシリアライズすることなくログ管理で
き、かつログ採取量は減少し、複数トランザクション動
作による変更をメタボリュームヘ反映する回数をも減少
させることができる。
【0125】第7の特徴は、ログキャッシュ140を複
数のログバッファで管理し、この時、いくつかの異なる
サイズとすることである。ログキャッシュ140を分割
して複数のログバッファとして管理することによって、
トランザクションの独立性を確立することが容易となる
とともに、有限なメモリ空間を有効に活用することが可
能となる。
【0126】まず、トランザクションがメタデータを更
新するより以前に、自分がメタデータを更新する旨、シ
ステムに宣言する。この時、トランザクションの種別よ
り予測されるログ採取情報に応じて、最適なサイズのロ
グバッファがシステムより与えられ、トランザクション
進行に伴い蓄積されるログはここへ溜められることとな
る。上記第6の特徴で説明した手法に加え、トランザク
ション毎に異なるログバッファを用いることによって、
複数のトランザクション更新の混じらない、純粋なログ
として残すことが可能である。
【0127】第8の特徴は、上記第7の特徴で説明した
手法に加え、トランザクションの開始時に予測したログ
採取量よりも多くのログを採取しなければならなかった
場合に、与えられたログバッファから、さらに大きいロ
グバッファへ移行することである。システムの状況に応
じて、トランザクションによって残されるログのサイズ
は変動し、その差異を複雑な処理を必要とせず、かつ、
有限なメモリ空間を有効に活用して吸収することが可能
である。
【0128】第9の特徴は、ログバッファに入りきらな
い場合には、ログボリュームへ中間ログを書き出すとと
もに、中間ログを書き出すことによる矛盾の発生を防止
する機能を備えたことである。
【0129】ログボリュームに対するI/O発行を減少
させるために、ログライトバッファと呼ぶ二次キャッシ
ュ領域を設けている。終了したトランザクションのログ
は、ログバッファからこのログライトバッファヘ移さ
れ、適時にログライトデーモン105によってログボリ
ュームヘ書き出される。この適時とは、負荷が低い場合
には一定の周期で良いが、トランザクションによるメタ
データの更新量が多く、最大のログバッファでも収まら
ない場合などには強制的なI/O発行が必要とされる。
このような場合において、中途の段階でのログの出力で
は、まだ更新されていない(かもしれない)メタデータ
を含めた書き出しを行うことがファイルシステムの整合
性を保つためには必要である。
【0130】このように有限なメモリ空間を有効活用す
ることを考慮した上で、ログバッファ内に収まりきらな
いログをトランザクション途中で出力する時に、残され
るログによって復元されるファイルシステムの整合性を
正当なものとするための手法を提案している。
【0131】ファイルシステムに対する負荷がそれほど
高くない場合には、ログのログボリュームに対するI/
Oを極力少なくするために事前に与えられた周期に応じ
て定期的にデーモンによって行われる。しかし、ログバ
ッファが枯渇し、以降のトランザクション進行で溜めら
れるログが収まらないと判断された時、部分的なログと
して、この時点のログをログボリュームヘ出力する。こ
の時、まだ更新されていない情報をもログに出力する。
例えばファイルを追加ライトするトランザクションの場
合は、部分的なログを出力する時点でのファイルサイズ
や時刻情報を合わせてログに記録する。これによって、
部分的であるはずのこのログを、ファイルシステム復元
時には完結した1つのトランザクションのログと同等に
扱うことが可能となり、ファイルシステム復元時に複雑
な考慮の必要なしに、望ましい状態にファイルシステム
を復元することが可能となる。
【0132】図20は、ログバッファへのログの格納状
況を示す図である。この例では、2種類のサイズのログ
バッファ141〜146が設けられている。ログバッフ
ァ141〜145は通常のサイズであり、ログバッファ
146が大きなサイズである。
【0133】また、ログバッファ141〜146を管理
するためのログバッファ管理テーブル148,149が
設けられている。ログバッファ管理テーブル148は、
ログバッファ141〜146に対応するフラグビットを
有している。そして、使用されているログバッファに対
応するフラグビットの値が「1」に設定され、未使用の
ログバッファに対応するフラグビットの値は「0」に設
定されている。同様に、大きいサイズのログバッファ1
46に対応するログバッファ管理テーブル149もフラ
グビットを有しており、そのフラグビットの値によっ
て、ログバッファ146が使用されているか否かを管理
している。
【0134】ログキャッシュ140内の各ログバッファ
141〜145のうち、ログバッファ143とログバッ
ファ145とが現在利用中であることを意味するため
に、「●▲」などの記号を用いた。ここで、ログバッフ
ァ145には多くのログが溜まっており、既に満杯の状
態となっている。このように通常のサイズのログバッフ
ァ141〜145では容量が足りなくなった際には、そ
のログを大きいサイズのログバッファ146に移動す
る。そして、トランザクションが継続している間は、更
新されたメタデータの内容を、随時ログバッファに格納
していく。ここで、トランザクションが終了したら、そ
のトランザクションに対応するログバッファの内容をロ
グライトバッファ150へ転送する。
【0135】ログライトバッファ150には、複数のバ
ッファ151,152が設けられており、それらのバッ
ファ151,152にログが書き込まれる。ログライト
バッファ150内のログは、ログライトデーモン105
によって随時ログボリュームに書き込まれる。
【0136】図21は、ログ採取手順を示すフローチャ
ートである。これはシステムが行う処理である。 [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宣言を行い、処理を終了する。
【0137】第10の特徴は、トランザクションが完了
する前に、システムダウンが発生した場合に備え、分割
して出力するログにはトランザクションに与えられたパ
ラメタを含め、ファイルシステム復元時にそのパラメタ
を元に、再度トランザクションを実行することである。
【0138】さらに、この部分的なログにトランザクシ
ョンに与えられたパラメタを記録し、ファイルシステム
復元時にそれを用いて、通常のログだけでは中途で終わ
った状態までしか復元できないファイルを、トランザク
ションが終了した状態にまでファイルシステムに反映す
ることが可能となる。
【0139】図22は、ファイルシステム復元処理を示
すフローチャートである。これはシステムが行う処理で
ある。 [S61]システムダウン等が発生する。 [S62]ファイルシステムの異常を検知する。
【0140】以降、ファイルシステム復元処理を行う。 [S63]ログ開始マークを検出する。 [S64]ログ開始マークに対応するログ終了マークが
存在するか否かを判断する。ログ終了マークが存在すれ
ばステップS65に進み、ログ終了マークが存在しなけ
ればステップS66に進む。 [S65]開始マークから終了マークまでのログを用い
て復元処理を実行する。その後、ステップS63に進
む。 [S66]対象トランザクションが以前のログだけで完
結するか否かを判断する。完結するのであれば復元処理
を終了し、完結しないのであればステップS67に進
む。 [S67]ログに記録されたパラメタを読み込む。 [S68]トランザクションとして行いたかった処理を
理解する。 [S69]ファイルに対して直接処理を再実行する。そ
の後、復元処理を終了する。
【0141】これにより、オペレーションのセマンティ
クスを保証したファイルシステムの復元が可能となり、
従来技術では完全に元に戻す、または完全に再実行する
ことが不可能であったトランザクションを、完全に再実
行することによってファイルの整合性をも回復すること
が可能となる。
【0142】第11の特徴は、メタデータを更新するト
ランザクションが更新処理を行う前に、その旨をシステ
ムに対し宣言することである。さらに、システムは宣言
を受け入れるか否かを判断する機構を持つことである。
ここでは、以下の条件の場合には新規のトランザクショ
ンの受け入れを拒否し、拒否されたトランザクションは
再度認可が下りるまで待合わせなければならない。 ・メタキャッシュ130がフルに近い状態にある場合。 ・トランザクションの多重度が、システムで規定された
値を既に越えていた場合。 ・ログボリュームに残されたログの大部分が有効なログ
状態である場合。
【0143】これらの場合に、ファイルシステムが新規
トランザクションの受け入れを拒否し、トランザクショ
ンの多重度を制限することによって、結果としてダーテ
ィなメタデータの数を制限することが可能となり、メタ
キャッシュ130の空き領域枯渇などを要因とするハン
グアップ状態に陥ることを回避することが可能となる。
特に、分割ログとしてログ採取しなければならないトラ
ンザクションが動作中に、新規トランザクションの開始
を拒否することは、システムの状態を正常に維持する上
で効果が高い。
【0144】第12の特徴は、新規トランザクションの
受け入れ拒否の機構をログボリューム内の有効ログの割
合に応じて適用することにより、単一の、多数のメタデ
ータを更新するトランザクションのみならず複数のトラ
ンザクションが更新したメタデータによって空き領域の
減少に伴うハングアップ状態をも回避することである。
【0145】以下に、第11の特徴と第12の特徴とを
含むトランザクションの受け入れ処理について説明す
る。図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]トランザクションは、必要に応じてログ採取
を繰り返した後、自己のトランザクション処理を終了す
る。
【0146】次に、本発明を適用したシステムの具体的
な処理内容について説明する。本発明の全ての特徴を備
えたシステムにおけるログ採取手順は以下のようにな
る。ファイルシステムオペレーションを分割したトラン
ザクションはメタデータを更新するより前に、自分がこ
れからメタデータを更新する旨を宣言する(BEGI
N)。BEGIN時にトランザクションに対し、独立し
たログバッファが割当てられる。この時、既にトランザ
クションの並列動作数が非常に多かったりメタキャッシ
ュ130域の利用率が高い場合には、システムによって
BEGIN宣言が拒否される。BEGIN宣言を拒否さ
れたトランザクションはその拒否理由が解消されるま
で、待ち合わせなければならない。
【0147】更新が完了したメタデータは、BEGIN
時に割り当てられたログバッファヘコピーされる。それ
と同時にメタデータ種類に応じたリストへ繋がれる。更
新すべき全てのメタデータを更新し終わったトランザク
ションは、そこで完了を宣言する(END)。END時
には、これまで溜めたログバッファの内容をログ専用の
二次キャッシュであるログライトバッファヘ移動し、さ
らに、まだログバッファヘコピーされていなかったメタ
データをログライトッファヘコピーする。
【0148】また、END時にメタデータの種類に応じ
て繋がれていたリストから、そのトランザクションが更
新した全てのメタデータを「ログ待ちリスト」へ繋ぎ替
える。
【0149】以上で非同期要求のトランザクションは終
了することができる。トランザクションが同期要求であ
った場合には、ログを書き出すまで待ち合わせなければ
ならない。
【0150】ログの書き出しは独立したデーモン(ログ
ライトデーモン105)が行う。このデーモンの起動契
機は、同期要求トランザクションによる起動要求(wa
keup)、メタキャッシュ130の空き状態監視機構
による起動要求(wakeup)、及びタイマである。
【0151】起動したログライトデーモン105は複数
のトランザクションのログがまとめられたログライトバ
ッファを1つのI/Oとして発行する。そして、ログ待
ちリストから「書き出しリスト」ヘメタデータを移動す
る。
【0152】メタボリュームヘI/Oを発行するのは、
メタライトデーモン104の役割である。メタライトデ
ーモン104は書き出しリストに繋がれたメタデータを
順に非同期ライトによってメタボリュームに反映する。
メタライトデーモン104の起動契機は、ログバッファ
の空きが少なくなった時、ログボリュームの空きが少な
くなった時、及びタイマである。
【0153】以上、メタデータを更新するトランザク
ションの開始から、更新されたメタデータがメタボリュ
ームに反映されるまでの大まかな流れである。以降に、
ログの採取とそのディスク反映手法、そして、メタデー
タのディスク反映の処理について詳細に説明する。 (1)ログの構造 (1.1)ログボリューム ログボリュームに格納される情報は、以下のような情報
である。
【0154】ログボリュームにはスーパブロック、ボリ
ューム管理情報が先頭にある。その次にログの有効範囲
を示す構造体を記録する。構造体は以下のメンバを持
つ。 ・有効ログ先頭のログボリューム内オフセット ・有効ログ先頭のログシーケンス番号 ・有効ログ末尾のログボリューム内オフセット ・有効ログ末尾のログシーケンス番号 ただし注意しなければならないのは、ここで先頭・末尾
と言っているのは、真の値ではない可能性があることを
リプレイ時に考慮しなければならない点である。なぜな
ら、ログはボリュームをシーケンシャルアクセスするこ
とによってシーク時間の短縮を計っているが、このよう
にボリュームの一部へ毎回アクセスしたのでは、そのシ
ーケンシャル性が損なわれてしまう。そのために、ログ
の書き出し毎にはこの有効範囲の書き出しは行わず、数
回に一回、書き出している。
【0155】これにより、上記構造体に収められたオフ
セットは正確ではないためにリプレイ時に検索が必要で
はある。しかしながら、全体を検索するよりも大幅に検
索量が減るため、利点は保持できるものと考える。
【0156】上記以外は、全て、メタデータの更新履歴
によって構成される。 (1.2)ログブロックの基本構造 ログボリューム120内に残されたログ(メタデータの
更新情報)は基本的にはトランザクション単位である。
これをログブロックと呼ぶ。しかし、キャッシュ域フル
などによって、1つのトランザクションを一度にまとめ
ることができない場合は複数の分割ログに分ける。この
分割ログをサブトランザクションログと呼ぶ。
【0157】サブトランザクションログをリプレイする
ことによって、ファイルシステムの整合性が保てるよ
う、その内容は工夫されている。しかしながら、トラン
ザクションの途中までのサブトランザクションをリプレ
イしたのでは、トランザクション全体が終わっていない
ことから、ファイルシステムとしての整合性が保てて
も、ファイルの中身は異常であるという状態に陥ってし
まうことが考えられる。
【0158】この状態を回避するために、そのサブトラ
ンザクションに別れたトランザクションがどのようなオ
ペレーションであったかをログに採取する(オペレーシ
ョンログ)。ログリプレイ時には、サブトランザクショ
ンをリプレイした後、オペレーションログをリプレイヤ
が再実行することによって、トランザクション全体が終
わった状態とすることが可能である。
【0159】サブトランザクション化する可能性のある
トランザクションは全体終了時に「終わったこと」をロ
グに記録し(最終ENDマーク)、リプレイヤはその有
無を調べてオペレーションログの実行を判断する。 (1.3)ログの採取形式 メタデータの更新情報は該当するメタデータの管理構造
単位で採取する。また、メタボリュームの管理構造であ
るビットマップはその更新部分だけのログ採取とする、
スーパブロックについては特殊であり、データ空き容量
についてのみログ採取を行う。 (1.3.1)inode、Vデータ、空き管理情報 ファイルの管理情報であるiノード、Vデータと呼ぶデ
ィレクトリやシンボリックリンクデータや空き管理情報
のメタデータ本体は、それらのI/O単位(ブロック単
位)でのログ採取を行う。
【0160】これは、ファイルシステム整合性チェック
処理であるfsckによるログリプレイ時の処理を簡略
化することを意識している。変更された部分だけをログ
採取した場合、ログリプレイ時には、該当ブロックの算
定→読み込み→変更部分の更新→再度書き込み、とステ
ップが増えてしまう。しかし、ブロック全体のログ採取
によって、リプレイ時にはメタボリュームにログ情報を
上書きするだけでよい。
【0161】iノード本体やディレクトリブロックなど
のVデータは、更新中はファイルのロックで保護されて
いる。しかしながら、空き管理情報についてはファイル
のロックでは保護されない。そのため、トランザクショ
ン途中で他トランザクションによって更新され、そのト
ランザクションが追い越して先に終わってしまうと、ロ
グには古い情報が後に残されてしまい、リプレイすると
ファイルシステムに不整合が生じてしまう。
【0162】そのため、空き管理部については、ここで
は更新するトランザクションが並行動作しないことを保
証することによって実質的な排他制御を行い、他のメタ
データと同じ採取形式とした。 (1.3.2)ビットマップ メタデータの割り当て状況を管理するビットマップも空
き管理部と同様にファイルのロックで保護されていな
い。そのため、ビットマップ全体のログ採取を行うと、
そのログには複数のトランザクションによる更新が含ま
れてしまう可能性がある。特に、トランザクションの追
い越しが発生すると、新しいはずのログによって、ビッ
トマップの情報が古く書き戻されてしまうことが考えら
れる。
【0163】そこで、ビットマップのログ採取は更新部
分だけとする。更新部分とは、あるビットが0になっ
た、あるいは1になったと記録するだけである。それに
より、トランザクションが並行動作してもそれぞれのト
ランザクションが更新した内容のみがログに残されるた
め、メタデータの後退は起こり得ない。
【0164】注意すべきは、ある領域を解放(「1→
0」)した後、他トランザクションがそこを獲得(「0
→1」)した場合である。トランザクションの追い越し
が発生すると、ログリプレイによって獲得した領域を解
放してしまう。
【0165】これについては、アロケート用ビットマッ
プを1つ定め、複製を用いて操作を行うことによって回
避する。 (1.4)ログの記録構造 (1.4.1)一般ログログ 有効状態であっても、ある程度の複数スレッドが同
時に進行することを許す。これは性能要件より必須であ
る。しかし、ログボリューム内のログは前述の通り、ト
ランザクション毎に保存する。1つのトランザクション
結果をログに記録する際、ログは以下のパーツで構成す
る。 1)BEGINマーク 2)ヘッダ 3)更新内容 (2)+3)の繰り返し) 4)ENDマーク これを以下、ログブロックと呼ぶ。ログブロックはログ
ボリュームの物理ブロック境界から始まるが、その終わ
りは物理ブロック境界であるとは限らない。 1)BEGINマーク トランザクションの開始時に作成される情報であり、以
下の内容を含む。 ・マジックワード ・トランザクションタイプ ・ログシーケンス番号 ・ログブロックサイズ マジックワード:1つのトランザクションが始まったこ
とを示すマジックワードを埋め込む。
【0166】トランザクションタイプ:BEGINマー
クにトランザクションのタイプ(種類)を埋め込むこと
によって、その後ろの更新情報に含まれる内容の概要を
事前に知ることが可能。
【0167】ログシーケンス番号:ログに記録されたト
ランザクション毎にインクリメントされる数値。このカ
ウンタが最小のログブロックがそのログボリューム内で
最も古いトランザクションであることを示す。カウンタ
は64ビット型とし、オーバーフローすることは現実に
はありえない(4万年ほど耐えられるものと思われ
る)。ログリプレイ時に、ログボリュームをゼロクリア
することにより、再度0から開始することも考えられる
が、リプレイ時間の短縮を考慮し、利用したログの最後
のシーケンス番号より昇順に採番することによりゼロク
リアを回避する。
【0168】ログブロックサイズ:ログブロックのEN
Dマークまでのサイズを記録する。BEGINマークの
先頭からENDマークの先頭までのサイズである。リプ
レイ時にはBEGINマークの先頭からこのサイズだけ
移動し、ENDマークの情報を参照して、ログの有効性
を判定する。 2)ヘッダ 更新されたメタデータについて、その保管位置を特定す
るための情報であり、以下のメンバによって構成され
る。 ・メタデータタイプ ・メタボリューム番号 ・ボリュームローカルメタデータ番号 メタデータタイプ:更新情報の後方にあるメタデータ更
新内容が何のメタデータであるのかを特定するために用
いられ、リプレイヤはここから更新内容のサイズを判断
する。
【0169】メタボリューム番号:メタデータ管理で用
いているメタボリューム毎の番号を記録する。リプレイ
時には、この番号から書き戻すメタボリュームを決定す
る。 ボリュームローカルメタデータ番号:メタデータ管理で
用いている、メタボリューム毎、メタデータ毎に0から
始まる値を記録する。リプレイ時には、この番号からメ
タボリューム内のブロック位置に変換し、更新内容を書
き戻す。これはブロック位置変換を削減することによる
ログ採取の高速化が狙いである。対象がビットマップで
ある場合には、変更されたビットが該当するメタデータ
本体のメタデータ番号を記載する(ビットマップ番号で
はない)。 3)更新内容 メタデータ本体の場合には、更新内容が含まれるブロッ
ク(それぞれのメタデータの管理単位)である。例え
ば、ディレクトリブロックが更新された場合には102
4バイトのディレクトリブロック全体である。
【0170】ビットマップの場合には、全体ではなく、
ここには「0→1」または「1→0」という情報だけ記
録する。リプレイ時にはヘッダから該当するビットマッ
プを判定し、それを読み込み、ここの内容から該当ビッ
トを変更して書き戻す。 4)ENDマーク BEGINマークに対応するマジックワード、ログシー
ケンス番号、ログブロックサイズを記録する。
【0171】ENDマークがマジックワードとログ番号
だけでは、メタデータの内容によってはそれが偽りのE
NDマークとして見えてしまい、リプレイの時に処理を
誤る可能性がある。これを回避するために、ENDマー
クは固有形式(メタデータを誤認することのない形式)
としなければならない。
【0172】BEGINマークを固有形式としないの
は、BEGINマークだけ書き出された時点で、システ
ムダウンした場合を考慮し、いずれにせよENDマーク
の識別ができなければならないからである。
【0173】固有形式とするために、固有の数値を64
バイト分続ける。これにより、全てのメタデータがEN
Dマークに化けることはなくなる。これに続けて、マジ
ックワード、カウンタ(ログ番号)、ログブロックサイ
ズを記録する。以降、ブロック境界まで、上記数値を埋
める。BEGINマークに対応したENDマークを見つ
けることができないログ情報はリプレイしてはならない
(ログ書き出し途中にシステムが異常終了したことを意
味する)。 (1.4.2)巨大トランザクションのログ トランザクションが多くのメタデータを更新する場合に
は、ログバッファサイズ、ログボリュームサイズが有限
であることから、複数のサブトランザクションログに分
割する。サブトランザクションログはそれだけのリプレ
イによって、ファイルシステムの整合性は保たれる。し
かし、トランザクション全体のサブトランザクションロ
グをリプレイしなければ、ファイルの整合性が保てな
い。そのため、サブトランザクション途中でのシステム
ダウンを考慮し、オペレーションログ内部に含む。 1)BEGINマーク 2)オペレーションログ 3)ヘッダ 4)更新内容 (3)+4)の繰り返し) 5)ENDマーク (1)〜5)の繰り返し) (5’)最終ENDマーク) 1)BEGINマーク 一般ログのBEGINマークと同じ。ただし、サブトラ
ンザクションログとなりうるトランザクションは、書き
込みや削除など、データ領域を触るものや、領域管理に
関わるものに限定される。
【0174】これらのトランザクションがBEGINマ
ーク内で設定されていたら、そのログはサブトランザク
ション化している可能性があり、必すオペレーションロ
グが続いている(たとえ単一のサブトランザクションロ
グで構成されていても)。 2)オペレーションログ サブトランザクション化したトランザクション(関数)
に与えられた引数をオペレーションログとして保存す
る。巨大トランザクションを対象としたBEGINマー
クの直後には必ずオペレーションログを配置する。オペ
レーションログは、最初にトランザクションヘ渡された
情報(このファイルをこれだけのサイズトランケートす
るとか、このファイルをこれだけアペンドライトするな
ど)である。
【0175】リプレイ時には、リプレイヤがファイルシ
ステムを直接操作して、ここで残されたオペレーション
ログを実行しなければならない。オペレーションログは
以下のメンバで構成される。 ・パラメタ1 ・パラメタ2 ・・・ リプレイヤはBEGINマーク内のトランザクションタ
イプを見ることによって、オペレーションログ部分に並
ぶパラメタ群のサイズ及び内容を知ることができる。 3)ヘッダ 一般ログのヘッダと同じ。 4)更新内容 一般ログの更新内容と同じ。 5)5’)ENDマーク、最終ENDマーク 一般ログのENDマークと同じ意味合いを持ち、BEG
INマークに対応するENDマークあるいは最終END
マークが見つからない場合には、BEGINマーク以降
の更新内容をリプレイしてはならない。
【0176】巨大トランザクションがサブトランザクシ
ョンに分割されず、単一のログブロックのみの場合に
は、ENDマーク部分には最終ENDマークが書き出さ
れる。複数のサブトランザクションログに分かれている
場合には、最後のログブロックだけ、ENDマークが最
終ENDマークに化ける(最後以外のログブロックには
通常のENDマークが書かれている)。
【0177】ENDマークは一般ログのENDマークと
同一であり固有数値64バイト、マジックワード、カウ
ンタ(ログ番号)、ログブロックサイズが記録されてお
り、ブロック境界まで固有数値が埋まる。
【0178】最終ENDマークとENDマークの差は、
マジックワードのみである。最終ENDマークがトラン
ザクション全体の終了を表すことから、とても巨大なト
ランザクションが多くのサブトランザクションログに分
割されている場合には、全ての処理が完了する時にこの
最終ENDマークを出力する。すなわち、巨大トランザ
クションとして定義されるトランザクションについて、
通常のENDマークで終わるログブロックがいくつか見
つかったのに、最終ENDマークで終わるログブロック
が存在しない場合には、それは巨大トランザクションの
途中でシステムダウンが発生したことを意味し、ログリ
プレイヤがオペレーションログのリプレイを行わなけれ
ばならないことを意味する。 (2)ログの採取 (2.1)ログバッファの管理 ログをトランザクション単位にログボリューム120ヘ
出力するためには、メタデータの更新情報を一度、メモ
リ内に溜める必要がある。これをログバッファと呼ぶ。
ログバッファはマウント時にまとめて用意し、ファイル
システム利用中にメモリの追加獲得は行わない。
【0179】トランザクション毎のログ採取とし、ま
た、トランザクション動作中に他のトランザクションが
並行動作することを狙い、ファイルシステム毎にログバ
ッファを複数持つ。その数は並行動作を許すトランザク
ション数によって決められる。
【0180】並行動作数を限定することはログ機能追加
による性能劣化要因の1つとなるが、 ・ログリプレイ時の処理を単純化 ・巨大なログバッファを分割して使うことによる複雑さ
の回避 などのメリットが考えられるため、この方式とする。
【0181】各トランザクションは開始時に割り振られ
たログバッファにログを作成し、トランザクション終了
時にまとめてログライトバッファヘコピーする。ログラ
イトバッファの内容を実際にI/O出力するのはログラ
イトデーモン105と呼ぶデーモンの働きによる。
【0182】巨大トランザクションには、一般トランザ
クションが用いるログバッファよりも大きいログバッフ
ァ(以降、それぞれを一般ログバッファ、巨大ログバッ
ファと呼ぶ)を1つ用意する。巨大トランザクションも
当初は一般ログバッファの1つを用いる。巨大トランザ
クションとログバッファの関係には次の二段階がある。 1)あまり多くのメタデータを更新せず、一般ログバッ
ファで十分足りると判断できた時点で、次の巨大トラン
ザクションのBEGINを受け付ける。 2)更新するメタデータ数がある程度多く、一般ログバ
ッファでは足りないと判断できた時点で、巨大ログバッ
ファにこれまでの内容をコピー、そこで処理を継続す
る。 3)更新するメタデータ数が大変多く、巨大ログバッフ
ァでは足りない場合には、サブトランザクションとして
分割する。
【0183】2)におけるバッファ間のコピーが負担と
なりそうであるが、巨大トランザクションがそれほど多
くないと考えると、あまり頻繁に発生するものではない
ので、この方法とする。
【0184】一般ログバッファは状態(利用中・未利
用)について、ビットマップで管理される。各ログバッ
ファを管理する構造をログバッファ数の配列で確保し、
それぞれが ・ログバッファのアドレス ・これまでに採取したログサイズ を持っている。
【0185】また、ログバッファの内容は専用のログラ
イトデーモン105によってログボリューム120ヘ反
映するが、そのログライトデーモン105が複数のログ
バッファの内容を一括してI/O発行するために、トラ
ンザクション終了時にそれぞれのログバッファの内容を
ログライトバッファ150と呼ぶ専用の領域にコピーす
る。
【0186】ログライトバッファを管理する構造とし
て、 ・追加モードにあるログライトバッファはどちらか ・それぞれのログライトバッファに溜められたログサイ
ズ がある。
【0187】ログライトバッファの内容をログボリュー
ム120ヘ書き出している間は、その後のトランザクシ
ョンが終了するためにログライトバッファにログバッフ
ァをコピーしようとしても、I/O中であるためにガー
ドしなければならない。これは性能劣化に繋がるため避
けなければならない。そのため、ログライトバッファは
2本用意する。
【0188】一般トランザクションはトランザクション
開始時に、空のログバッファをビットマップより見つけ
(未利用ログバッファを0で示し、ここで1とする)、
そのビット番号がトランザクション番号となる。
【0189】巨大トランザクションが一般ログバッファ
にて処理進行中、一般ログバッファでは入りきらないと
判断されるとこれまでの内容をこの巨大ログバッファヘ
コピーし、そこで処理を継続する。この時、これまで用
いていた一般ログバッファは空き状態として、次のトラ
ンザクションによる利用を可能にする。 (2.2)巨大トランザクションの管理 空き領域管理ツリーや獲得済領域管理ツリーを操作する
トランザクションを巨大トランザクションと定義する。
巨大トランザクションは場合によっては木構造を大きく
変更しなければならないかもしれない。この時、サブト
ランザクション化する必要が生ずる。
【0190】サブトランザクション化した巨大トランザ
クションが並行動作した場合、どれもが多くのメタデー
タを更新すると、メタキャッシュ130がいずれ全てダ
ーティとなり、新たにメタデータを読み込んで更新しよ
うにも追い出すこともできずにデッドロックに陥ること
が考えられる。
【0191】そのため、巨大トランザクションについて
は並行動作ができないよう、ここではシリアライズし
た。しかし、上記の通り、多くのメタデータを更新する
可能性があると考えられるトランザクションは多い。こ
れらを全てトランザクション終了までシリアライズする
と、その性能インパクトは大きい。
【0192】巨大トランザクションも、場合によっては
それほど多くのメタデータを更新しないこともありえ
る。一般トランザクションと同等の数しかメタデータを
更新しないのであれば、扱いを一般トランザクションと
同様にすることによって、その性能インパクトを小さく
することが可能である。
【0193】そこで、巨大トランザクションが一般トラ
ンザクションと変わらない程度しかメタデータを更新し
ないと分かった時点で、この巨大トランザクションの扱
いは一般トランザクションと同じにする(デグレー
ド)。
【0194】巨大トランザクションはその開始時には一
般ログバッファの1つを一般トランザクション開始時と
同様に与えられる。しかし、1つの巨大トランザクショ
ンが動作中は次の巨大トランザクションにログバッファ
を与えない点が一般トランザクションの場合と異なる。
【0195】巨大トランザクションがある程度以上のメ
タデータを更新することが分かった時点で、これまでの
一般ログバッファの内容を巨大ログバッファヘコピー
し、そこで処理を継続する。
【0196】しかし、それほど多くのメタデータを更新
しないと判断されれば、そのまま一般ログバッファで処
理が継続され、また、次の巨大トランザクションに対
し、処理の開始(ログバッファ使用)を許可する。
【0197】こうして、巨大トランザクションを途中か
ら一般トランザクションとして扱うこと(デグレード)
を実現する。 (2.2.1)デグレード契機・サブトランザクション
化契機 巨大トランザクションは複数のサブトランザクションに
分割される場合もあれば、一般トランザクションへデグ
レードする場合もある。それぞれの判定基準は以下の通
りである。 ◎デグレード判定基準 ・一般ログバッファの残りサイズで、将来全てのメタデ
ータ更新が完了できると判断できた場合。 ◎巨大トランザクション用ログバッファへの移行契機 ・一般ログバッファの残りサイズが次のステップの最大
変更量よりも少ない場合。 ◎サブトランザクション判定基準 ・巨大ログバッファの残りサイズが次ステップの最大変
更量よりも少ない場合。 (2.3)一般トランザクションのログ採取 一般トランザクションは、以下の手順に従いログを採取
する。 1)LOG_BEGIN a)利用するログバッファを確定する。
【0198】b)ログバッファの先頭にBEGINマー
クを作成する。 2)各メタデータの更新 c)更新されたメタデータがリリースされる(ロックが
解放される)直前に、更新されたメタデータについて、
ヘッダ(更新情報)をログバッファに作成し、更新内容
をログバッファにコピーする。
【0199】d)更新されたメタデータをリストに繋
ぐ。 3)LOG_END e)ENDマークをログバッファに作成する。
【0200】f)ログバッファをログライトバッファヘ
コピーする。 g)ログライトデーモン105がログボリューム120
ヘ反映する。 h)このトランザクションで立てられた追い出し不可フ
ラグを落とす。 (2.3.1)LOG_BEGIN トランザクション開始を意味する。同一関数内にLOG
_ENDの宣言が必要。並行動作可能数だけ既にトラン
ザクションが動作していたら、それらのどれか1つが終
了するまで寝て待つ。
【0201】a)現在実行中のトランザクション数がロ
グバッファの数と等しい場合、それは既に許された並行
動作数だけトランザクションが実行中であることを意味
する。そのため、他トランザクションが終了するまで寝
る。そのような状態でなければ、ログバッファの利用状
況を管理するビットマップより未利用状態のログバッフ
ァを1つ選び出し、そのビットを立てる。さらに、並行
動作数カウンタをインクリメントする。
【0202】b)前述のBEGINマークをログバッフ
ァの先頭に作成する。 (2.3.2)各メタデータの更新 メタデータを参照した場合にはログ採取の必要はない。
更新した場合のみログを採らなければならない。
【0203】c)メタキャッシュ130に読み込んだメ
タデータについて処理が終了し、メタキャッシュ130
より解放するための関数(リリース関数)を呼び出す
際、「更新した」ことを明示された場合、ログを採取す
る。
【0204】iノードについてはログ対象トランザクシ
ョン内でのロック解放時がログ採取契機でる。具体的
には、上記で使用権を得たログバッファにヘッダを作成
し、メタデータの更新内容をコピーする。このとき、メ
タデータの種類によってその手法が若干異なる。
【0205】c−1)ビットマップの場合:ヘッダには
獲得(解放)したメタデータ番号を入れ、更新内容は
「0→1」「1→0」とビット操作だけとする。 c−2)メタデータ本体の場合:更新内容にはメタデー
タをそのままコピーする。
【0206】c−3)スーパブロックの場合:巨大トラ
ンザクションがデグレードした場合のみ、一般ログ内で
のスーパブロックのログ採取がありうる。その時刻(シ
ーケンシャル番号)とデータ空きサイズを記録する。
【0207】コピーするとともに、ログバッファのター
ミナルで管理されるログサイズに、こで作成したログ
のサイズを加える。 d)メタキャッシュ130の大きさは有限であることか
ら、トランザクションが進行するためには、必要のない
メタデータをメタキャッシュ130から追い出し、その
場所に必要なメタデータを読み込むという処理を行う追
い出し機構がある。更新されたメタデータはログを書き
出すまでは追い出されてはならない。そのために、この
メタデータをメタライトリストと呼ぶ、メタボリューム
ヘの反映を司るメタライトデーモン104が参照するリ
ストへ繋ぐ。 (2.3.3)LOG_END トランザクションの終了を示す。ここで、ENDマーク
の作成を行う。ログボリューム120への反映はログラ
イトデーモン105による作業である。
【0208】e)LOG_BEGINにて作成したBE
GINマークに対応するENDマークをログバッファの
末尾に作成する。 f)利用したログバッファの内容を追加モードにあるロ
グライトバッファにコピーする。この時にログ番号を決
定し、BEGINマーク、ENDマークに埋め込む
グバッファのターミナルに記録していたログのサイズを
ログライトバッファのサイズに加える。ログバッファの
「ターミナル」とは、そのログバッファ自身の構造に関
する情報を格納する場所を意味している。同期書き込み
要求の場合は、ログライトデーモン105(詳細後述)
が正常にログボリューム120に反映したことを待つ必
要があるが、同期書き込み要求でない場合には、ログバ
ッファを解放(ビットを落とす)して終了する。
【0209】g)後述するログライトデーモン105
が、ログライトバッファの内容をログボリュームヘ反映
する。 h)リリース時に立てた追い出し不可フラグを全て落と
す。ただし、フラグを落とすのはログライデーモンに
よってなされるため、このトランザクションはそのまま
終了する。 (2.4)巨大トランザクションのログ採取 巨大トランザクションも、一般トランザクションとほぼ
同様の処理だが、最大の違いは、トランザクションの状
況によってログバッファをサイズの大きい巨大ログバッ
ファヘ移行したり、サブトランザクションとして分割し
たログ採取を行わなければならない場合があることであ
る。 1)LOG_BEGIN a)利用するログバッファを確定する。
【0210】b)ログバッファの先頭にBEGINマー
クを作成する。 c)BEGINマーク作成と同時に、オペレーションロ
グをログバッファに作成する。 2)各メタデータの更新 メタデータがリリースされた時に「更新したこと」が明
示されたら、 d)更新メタデータが空き管理情報の場合、更新メタデ
ータがリリースされる度にBTFリストあるいはBTA
リストとよぶ空き管理メタデータのために用意するリス
トに繋ぐ。この時、既にリストに繋がれていればリスト
構造には手を加えない。
【0211】e)更新メタデータが空き管理情報以外の
場合、更新されたメタデータがリリースされる度にヘッ
ダをログバッファに作成し、更新内容をログバッファ域
にコピーする。
【0212】f)更新メタデータをリストに繋ぐ。まだ
一般ログバッファで処理している場合、 g)一般ログバッファで足りるか判定する
【0213】g−a)足りないなら巨大ログバッファヘ
これまでの内容をコピー。 g−b)足りると確定でき、かつ、デグレード条件を満
たせば、次の巨大トランザクションを受け付ける。
【0214】g−c)まだ判断ができなければそのまま
継続する。既に巨大ログバッファで処理している場合、 h)サブトランザクション化するか判定する
【0215】h−a)するなら、BTFリスト及びBT
Aリストをたどりながらそれらをログバッファにコピ
ー、ENDマークを作成し、ログライトバッファヘコピ
ーする。ログライトデーモン105を起動し、ログを出
力する。
【0216】h−b)まだしないなら、そのまま継続す
る。 3)LOG_END i)最終ENDマークをログバッファに作成する。
【0217】j)ログバッファをログライトバッファヘ
コピーする。 k)ログライトデーモン105がログボリューム120
ヘ反映する。 l)このトランザクションで立てられた追い出し不可フ
ラグを落とす。 (2.4.1)LOG_BEGIN 巨大トランザクションも最初は一般ログバッファを用い
る。
【0218】a)一般トランザクションの場合は、現在
の並行動作トランザクション数とログバッファの数との
関係によってログバッファを獲得できるかどうかが定ま
った。巨大トランザクションの場合は、現在他の巨大ト
ランザクションが動作中か否かが問題であり、一般トラ
ンザクションの並行動作数とは関係しない。巨大トラン
ザクションが動作中か否かのフラグを調査し、非動作中
であれば、そのフラグを立て、ログバッファの利用状況
を管理するビットマップより未利用状態のログバッファ
を1つ選び出し、そのビットを立てる。巨大トランザク
ションが現在動作中であれば、終了まで寝て待つ。
【0219】b)BEGINマークを作成する。ここ
で、トランザクションタイプに巨大トランザクションと
なりうるトランザクションが指定されていた場合には、
必ず後ろにはオペレーションログが付随する。対応する
ENDマークがないログはリプレイしてはならない。ま
た、サブトランザクション化しているのに、最終END
マークがないなら、オペレーションログのリプレイが必
要である。
【0220】c)巨大トランザクションをサブトランザ
クションログとして分割する場合にはオペレーションロ
グを採取する必要がある。ここで、オペレーションログ
とは、各ログ採取対象関数に与えられたパラメタが、将
来リプレイすることが可能な形に変更されたものであ
る。具体的には、メモリアドレスで与えられるパラメタ
は、メタボリューム内のオフセットに変更して記録す
る。 (2.4.2)各メタデータの更新 d)更新メタデータが空き管理情報である場合、一回の
トランザクションで同一の領域が何度も変更される場合
が考えられる。その都度、ログを採取しているとログバ
ッファやログボリュームがフルになる可能性が高まる。
これを回避するために、更新情報をリストによって管理
し、複数回更新された空き管理メタデータを1つにまと
めてログに記録する。具体的には、メタデータの状態毎
にリスト管理する専用のBTFリスト及びBTAリスト
に繋がれる。このリストに繋がれていれば、そのデータ
はダーティであることを意味する。初めて更新するデー
タであれば、ターミナルから繋がるリストに追加する。
既にリストに繋がれているのであれば、2回目以降の更
新であることを意味し、ポインタについてはそのままで
良い。リストにメタデータを追加する場合には、ログサ
イズを更新する。
【0221】e)更新メタデータが空き管理情報以外で
あれば、同一メタデータに対して何度もホールド/リリ
ースが発行されるとは考えられないので、リリースの度
(ロック解放の度)にログバッファヘコピーする(一般
トランザクションの場合と同じ)。ログサイズを更新す
る。
【0222】f)既に何度か述べたが、更新されたメタ
データがログよりも先にメタボリューム111〜113
ヘ反映されてはならない。この追い出し不可状態もリス
ト構造によって管理される。
【0223】g)この巨大トランザクションが更新する
メタデータが、以降、どれだけの数のメタデータを更新
するかを算出することによって、処理が分かれる。 g−a)現在利用している一般ログバッファの残りでは
次ステップの実行によるメタデータの更新の全てをまか
ないきれない場合があると判断した場合には、巨大ログ
バッファヘの移管を行う。
【0224】ga−1)これまでに溜まったログバッフ
ァの内容を巨大ログバッファヘコピーする。この時、B
TFリストはそのまま繋いだままとし、BTAリストは
巨大トランザクション用のターミナルヘ移動する。
【0225】ga−2)巨大ログバッファを利用して、
その巨大トランザクションは処理を継続する。 g−b)現在利用している一般ログバッファの残りだけ
で、以降のメタデータ更新を全て記録できると判断でき
るならば、この巨大トランザクションは一般トランザク
ションにデグレードする。BTFリストにメタデータが
繋がれている場合はデグレード条件を満たさないため、
ここでの処理はありえない。BTFリストはそのまま利
用を続ける。
【0226】gb−1)巨大トランザクションが動作中
か否かを示すフラグを落とす。 gb−2)一般トランザクションの並行動作数カウンタ
をインクリメント。 gb−3)次の巨大トランザクションが寝ているならば
起こして、実行を受け付ける。
【0227】gb−4)このまま一般ログバッファを利
用して処理を継続する。 g−c)まだ判断できないのであれば、このまま一般ロ
グバッファを利用して処理を継続する。
【0228】h)サブトランザクション判定基準(前
述)に基づき、このトランザクションをサブトランザク
ション化するかどうか判定する。 h−a)サブトランザクションに分割する場合は、 ha−1)更新された空き管理情報を、リストを辿りな
がらログバッファヘコピーする。
【0229】ha−2)ENDマークを作成する。 ha−3)ログライトバッファヘコピーする。 ha−4)ログライトサイズを更新する。
【0230】ha−5)ログライトデーモン105を強
制起動する。 ha−6)ここで変更した全てのメタデータの追い出し
不可フラグを落としてメタライトリストに繋ぐ。これに
より,メタライトデーモン104は任意の時ににこれら
のメタデータを書き出すことが可能となる。
【0231】ha−7)巨大ログバッファの先頭にBE
GINマークを作成する。 ha−8)オペレーションログを作成する。 h−b)サブトランザクションに分割する必要がない間
は、巨大ログバッファ内でそのまま継続する。 (2.4.3)LOG_END トランザクションの終了を示す。ここで、最終ENDマ
ークの作成を行う。実際のログボリューム120への
映はログライトデーモン105の仕事である。
【0232】i)最終ENDマークを作成する。最終E
NDマークは通常のENDマークとマジックワードが異
なるだけである。 j)利用したログバッファの内容を追加モードにあるロ
グライトバッファヘコピーする。この時にログ番号を決
定し、ログサイズをログライトサイズに加える。同期書
き込み要求の場合は、ログライトデーモン105が正常
にログボリューム120反映したことを待つ必要があ
るが、その他の場合には待たないで次の処理へ進む(す
なわち非同期書き出しである)。巨大トランザクション
動作中フラグを落とし、寝て待つ次の巨大トランザクシ
ョンを起こす。
【0233】k)ログライトデーモン105が、ログラ
イトバッファの内容をログボリュームヘ反映する。 l)更新したメタデータをログバッファヘコピーした時
に立てた追い出し不可フラグを全て落とす。ただし、フ
ラグを落とすのはログライトデーモン105によってな
されるため、このトランザクションはそのまま終了す
る。 (2.5)ログライトデーモン 並行して動作し、順次終了するトランザクションによっ
て更新されたメタデータのログは専用の書き出しデーモ
ン(ログライトデーモン105)によってログボリュー
ムヘ反映する。このデーモンはマウント時に起動され、
アンマウント時に停止する。すなわち、ファイルシステ
ム毎にスレッドを生成する。
【0234】各トランザクションが終了すると、ログバ
ッファ内にENDマークが作成され、このログバッファ
の内容はログライトバッファ150にコピーされる。こ
のログライトバッファ150は複数のログバッファの内
容を一括してログボリューム120に反映するためのも
のであり、そこにはメモリコピーの負担があるが、何度
もI/Oを発行するよりは良いと考える。
【0235】ログライトバッファ150ヘコピーされる
と、そのログバッファは利用中バッファリストから空き
バッファリストヘと繋ぎ直され、かつ、トランザクショ
ンが同期書き込み要求でなければ、動作中トランザクシ
ョン数をデクリメントする。これにより、次トランザク
ションの実行が進むようになる。
【0236】ログライトデーモン105はログライトバ
ッファの内容を、定期的、あるいは同期書き込み指定の
トランザクションがある場合などにログボリュームに反
映する。反映している間(I/O中)は2本あるログラ
イトバッファのうち、もう片方のログライトバッファに
内容をコピーしてそのトランザクションは処理を終了す
る。 (2.5.1)処理手順 ログライトデーモン105単体の処理手順はそれほど複
雑ではない。
【0237】a)現在のログライトバッファをライトモ
ードにし、もう片方を追加モードにする。 b)ログライトバッファの内容をログボリューム120
ヘ同期書き出しする。
【0238】o)場合に応じて有効範囲情報を書き出
す。 d)ログ待ちリストに繋がるメタデータを、メタライト
リストヘ繋ぎかえる。 e)規定時間の間、スリープする。
【0239】f)規定時問が経過、または他の要因で起
こされたらa)へ。 以下、詳細説明である。 a)I/O中はその対象域に対して追加更新は許されな
い。そのため、現在のログライトバッファが書き出しが
終わり、次の書き出しが始まるまでは、もう片方のログ
ライトバッファヘ終了したログバッファをコピーするよ
う設定する。I/O中のログライトバッファをライトモ
ード、ログバッファの内容をコピーする方を追加モード
と呼ぶ。切り替えはこのデーモンによって行われ、各ト
ランザクションは常に追加モードにあるログライトバッ
ファに自ログバッファの内容をコピーする。
【0240】b)ログライトバッファに新しい内容が含
まれていないのであれば、I/Oを発行する必要はな
い。そこで、まずログライトサイズを調べ、ゼロであれ
ばI/Oを発行せず、タイマを指定して再び寝る。書き
出すべきログが存在するのであれば、以下の手順に従
う。
【0241】b−a)ログボリュームの空きサイズ判
定。ログボリュームの先頭オフセット(A)、メタライ
トリスト先頭のメタデータを管理する構造の上書き可能
オフセット(B)を調べる。それとログライトオフセッ
ト(C)、及びログボリュームの最終オフセット(D)
から以下の手順となる。 ・A<B≦C<D ログライトサイズが(D−C)以下ならば、Cから書
き出す。 ログライトサイズが(D−C)より大きく、かつ、
(B−A)以下ならば、Aから書き出す。 ・A≦C<B≦D ログライトサイズが(B−C)より小さければ、Cか
ら書き出す。
【0242】これらの条件に合致せず、ログの出力がで
きない場合には、メタライトデーモン104を起動し
て、自分はスリープする。メタライトデーモン104の
動作により起動されたら、再度、空きサイズ判定から行
う。
【0243】b−b)ログボリューム120ヘ同期書き
出しする。 b−c)エラー判定。同期書き出し後、エラー判定を行
う。エラーが発見された場合の処置については省略
る。
【0244】b−d)領域判定。 書き出しが終わった後、再び、b−a)と同様な空き領
域の判定を行う。ここで、残りが少ないと判定された
時、その残りの大きさに応じてメタライトデーモン10
4を「平常起動」または「緊急起動」する。
【0245】c)ファイルシステム復元に必要なログ
は、メタライトリスト先頭の上書き可能オフセットから
たった今書き出した位置までである。そこで、それを有
効範囲情報としてディスクヘ書き出す。ここで、書き出
しはログのシーケンシャル性を考慮し、ある程度の間隔
をおいて行う。ここでは、回数に応じて、数回に一回、
書き出すこととした。
【0246】d)b)にて書き出したログに含まれるメ
タデータは全て「ログ未反映状態」、すなわち追い出し
不可状態としてリスト(ログ未反映リスト)に繋がれて
いるはずである。そこで、ログ未反映リストを辿りなが
ら、そこに繋がるメタデータをメタライトリストに追加
することにより、メタライトデーモン104が任意の時
にこれらのメタデータをメタボリュームに反映できるよ
うになる。
【0247】e)ログもシステム全体から見れば非同期
書き出しとし、トランザクションが同期書き込み要求で
なければ、ログを書き出す前にそのトランザクションは
終了することができる。さらにI/O発行回数を削減す
るために、複数のトランザクションを一括して書き出す
ために、しばらくの間スリープし、その間にログライト
バッファヘ複数トランザクションのログを溜める。
【0248】f)規定時間後には自分で起きて、処理を
繰り返す。しかし、他要因によって突然起こされて処理
を始める場合もある。「その他の要因については次の項
(2.5.2)で述べる。 (2.5.2)動作契機 ログライトデーモン105は以下の契機でログライトバ
ッファの内容をログボリュームへ書き出す。 ◎定周期 ログライトデーモン105は一定周期毎にスリープ状態
から自発的に目覚め、ログライトバッファ150の内容
をログボリューム120ヘ反映する。 ◎同期書き込み要求のトランザクション トランザクションによっては同期書き込み要求で呼ばれ
る場合がある。このトランザクションについては、ログ
の書き出しを待たなければ終了してはならない。そのた
め、LOG_END呼び出し後に、明示的にLOG_S
YNCを行う。LOG_SYNCはログライトデーモン
105が寝ている場合には起こし、ログライトバッファ
の内容をその場で書き出させる。
【0249】現在ログライトデーモン105がI/O中
であったら、ログライトデーモン105の処理が終わる
のを寝て待つ。 ◎ログライトバッファ不足 周期毎にログライトバッファをクリアしても、大きなロ
グバッファが連続して終了すると、その前にログライト
バッファがフルに近い状態になることがありえる。この
時にはログライトデーモン105が起こされ、ログライ
トバッファ150の内容をログボリューム120に書き
出してクリアする。
【0250】具体的には、あるトランザクションが自ロ
グバッファの内容をLOG_ENDによってコピーしよ
うとした時、ログライトバッファ150の残りサイズが
自ログよりも小さいと判断された時、ログライトデーモ
ン105を起こし、追加モードのログライトバッファ1
50を切り替えてもらい、その間は寝て待つ。
【0251】現在I/O中あり、かつ追加モードのロ
グライトバッファ150が足りなくなった時には、その
トランザクションは待ち合わさざるを得ない。 ◎メタキャッシュ不足 トランザクション実行中に、メタキャッシュ130域の
いずれかのメタデータを追い出さなければ必要なメタデ
ータをメタボリューム111〜113から読み込むこと
ができずに処理が進まなくなる場合が考えられる。
【0252】そのため、トランザクションが現在キャッ
シュ上のメタデータを追い出そうとする時、メタキャッ
シュ130上のメタデータが全てダーティであり、か
つ、ログ待ちリストに繋がれたメタデータが存在する場
合には、ログライトデーモン105を起動する。 ◎アンマウント時 アンマウント時には必ず書き出さなければならない。そ
のため、アンマウント処理の延長でログライトデーモン
105を起こし、書き出しを行う。この時、アンマウン
トを実行するため、該当ファイルシステムにメタデータ
を更新するようなトランザクションは動作していないこ
とが保証される。従って、現在のログライトバッファの
内容をき出せば、それで全てである。
【0253】ログライトとバッファの内容を書き出した
後、ログライトデーモン105は終了する。 (3)メタデータ管理 次に、メタデータの管理方式について説明する。メタキ
ャッシュ130内のメタデータはmetalist構造
体によって管理される。metalist構造体には以
下のメンバがある。 ・メタデータへのポインタ ・TRANS(トランザクション)リストポインタ ・メタライトリストprevインタ ・メタライトリストnextポインタ ・ログ待ちリストprevポインタ ・ログ待ちリストnextポインタ ・ログシーケンス番号 ・ログボリューム内オフセット ・トランザクション番号 ・状態フラグ ・メタデータタイプ ・buf構造体実体 (3.1)メタデータの状態遷移 metalist構造体には次の6種類の状態があり、
4種類のリストに繋がれる。それはmetalist構
造体のフラグによって示され、それぞれ夕ーミナルを別
とするリストに繋げられることによって実現する。全て
のmetalist構造体はいずれかのリストに繋がっ
ており、例外はない。 A)空き管理構造更新状態 データ空き領域を管理するメタデータがトランザクショ
ンによって更新されると、リストに繋ぎ、将来まとめて
ログバッファにコピーすることは既に述べた。トランザ
クション終了時に本リストに繋がれたメタデータが直接
ログボリュームヘ反映される。リストは並行動作数に応
じて必要である。このリストをBTFリストと呼ぶ。
【0254】この状態にあるメタデータはまだログバッ
ファヘはコピーされておらず、同一トランザクションに
よって再度更新される場合がある。既にリストに繋がれ
ているメタデータであった場合は、リスト状態は変更し
ない。当然、メタボリュームに反映してはならない。
【0255】BTFリストは単方向環状リストであり、
トランザクション途中状態と同じメンバを用いて繋がれ
ている。 B)利用域管理構造更新状態 実施例ではファイルシステムをエクステント管理してい
る。iノードから導かれる、そのファイルが利用してい
るエクステントを示す、間接エクステントブロックにつ
いても、トランザクション内で1つの間接エクステント
ブロックが何度も更新される場合が考えられる。そこ
で、空き管理構造の場合と同様に、トランザクション中
は独自のリストに繋ぎ、トランザクション終了時にまと
めてログバッファヘコピーする。リストは並行動作数に
応じて必要である。このリストをBTAリストと呼ぶ。
【0256】この状態にある間接エクステントブロック
はまだログバッファヘはコピーされておらず、同一トラ
ンザクションによって再度更新される場合がある。既に
リストに繋がれている間接エクステントブロックであっ
た場合は、リスト状態は変更しない。当然、メタボリュ
ームに反映してはならない。
【0257】BTAリストは単方向環状リストであり、
トランザクション途中状態と同じメンバを用いて繋がれ
ている。 C)トランザクション途中状態 トランザクション途中を示す。この状態のとき、該当す
るメタデータを更新したトランザクションは、ある1つ
のログバッファを専有しており、既にそこに更新後状態
がコピーされている。リストは並行動作数に応じて必要
である。このリストをTRANSリストと呼ぶ。
【0258】しかし、まだトランザクションが終了して
いないことからログがログボリューム120ヘ反映され
ておらず、本メタデータもメタボリュームヘの反映はで
きない。この状態にあるメタデータはファイルのロック
によって保護されているため、他トランザクションから
参照・更新されることはない。
【0259】TRANSリストのターミナルは配列にな
っており、その要素番号はトランザクションが用いてい
るログバッファの番号(トランザクション番号)に対応
する。
【0260】メタライトリストやログ待ちリストに繋が
れているメタデータが繋がる場合がある。TRANSリ
ストは単方向環状リストであり、BTFリストが用いる
メンバを併用する。
【0261】D)ログ待ち状態 トランザクションは既に終了しているが、ログライト
ッファの内容はログライトデーモン105によってログ
ボリューム120ヘ反映されるため、この時点ではまだ
ログボリューム120に反映されていない状態である。
(デーモンは同期ライトを行うが、トランザクションの
視点から見れば、ログ反映が非同期に行われているよう
に見える。) トランザクションが終了する際に、C)の状態にあるT
RANSリスト(巨大トランザクションの場合はBTF
リストも)をログ待ちリストに繋ぎかえる。このリスト
はトランザクションが終了する毎に後方へ伸びるリスト
であり、ログライトバッファと同数の2本存在する。
【0262】この状態にあるメタデータは既にトランザ
クションが終了しており、ログはログライトバッファに
コピーされている。トランザクションが終了しているこ
とから、他トランザクションによって参照・更新される
可能性がある。この時(他トランザクションによって状
態が変化した時)、リスト位置は変更せず、状態フラグ
だけを変更する。
【0263】メタライトリストに繋がれたメタデータ
が、他トランザクションによって再度更新されたため
に、トランザクション途中状態になり、そのトランザク
ションが終了したことによって、ログ待ち状態になった
場合には、このメタデータはメタライトリストにも繋が
れている。
【0264】ログライトデーモン105によって、ログ
の反映が進むと、それに応じたメタデータをメタライト
リストヘ追加していく。この時、既にメタライトリスト
に繋がれているメタデータは、そのままの位置でいなけ
ればならない。 E)書き出し可能状態 これは、ログバッファのログボリュームへ反映が終了
し、自由にメタデータをメタボリュームへ反映すること
ができるようになった状態である。この状態にあるメタ
データは他トランザクションによって参照・更新される
可能性がある。この時、リスト位置は変更せず、状態フ
ラグだけを変更する。
【0265】繋がるリストはメタライトリストであり、
1本だけ存在する。メタライトデーモン104はこのリ
ストを参照してメタボリュームヘの反映を行う。 F)I/O中状態 この状態にあるメタデータは現在非同期ライトによって
メタボリュームに対してI/Oを投げているが、まだ完
了していない。I/O途中であるため、他トランザクシ
ョンは操作することができない(参照することはでき
る)。メタライトリストにそのまま繋がれている。 (3−2)ログボリュームの上書き判定情報 ログボリュームはサイズが有限であるため、サイクリッ
クに利用し、過去のログを上書きしてシステムは動作す
る。ここで、過去のログを上書きするためには、そのト
ランザクションが更新したメタデータが全てメタボリュ
ームに反映されていることが必要である。上書き可能領
域を管理するために、以下の構造を設け、メタライトデ
ーモン104が変更、ログライトデーモン105が参照
する。 ◎ログシーケンス番号 各トランザクションが終了し、ログバッファの内容をロ
グライトバッファヘコピーする毎に与えられる、シーケ
ンシャル番号である。ログボリューム内のBEGINマ
ーク、ENDマークに含まれる番号と同一である。既に
ライトリストに繋がるメタデータが再度更新される場合
にも、この番号は変更されない。 ◎ロクボリューム内オフセット ログボリューム内にはトランザクション毎のログが連続
して並んでおり、上書きするためには、それぞれのトラ
ンザクションが更新した全てのメタデータがメタボリュ
ームへ反映されている必要がある。
【0266】同一のログ番号を持つmetalist構
造体は、ここにはそのログの先頭オフセットを挿入す
る。LOG_ENDによってログバッファの内容がログ
ライトバッファにコピーされる際、そのアドレスとログ
ボリュームの書き出しオフセットから導かれる。トラン
ザクション毎のログボリューム内オフセットがTRAN
Sリストを辿りながら、トランザクション毎のログボリ
ューム内オフセットをそれぞれのmetalist構造
体に設定する。
【0267】ログライトデーモン105は、ログを書き
出す際にメタライトリストの先頭に繋がるmetali
st構造体を参照し、現在のポインタにログライトバッ
ファに入っているログサイズを足した位置が、このオフ
セット値を超えないことを確認した後で書き出しを行
う。 (3.3)メタボリュームヘの反映 トランザクションによって更新されたメタデータは、ト
ランザクションが終了しログがログボリューム120に
反映されるまでは書き出されてはならない。そのため
に、メタキャッシュ130上の各メタデータはそれぞれ
の状態に応じてリストに繋がれ、唯一メタボリュームヘ
の反映が許可されているリストはメタライトリストであ
る。
【0268】時間のかかるI/O要求をトランザクショ
ン内で行うことを避けるために、メタデータのメタボリ
ュームヘの反映はトランザクションとは関係ないところ
で動作するデーモンに委ねる。このデーモンはメタライ
トリストだけを意識し、metalist構造体内の情
報から状態に応じてI/O発行するかどうかを決定し、
関連付けられたbuf構造体を用いてメタデータをメタ
ボリュームヘ反映する。
【0269】デーモンはメタライトリストに繋がれたメ
タデータを書き出した後、そのメタデータをリストから
外し、cleanであると設定する。 (3.4)メタライトデーモン メタライトデーモン104は、マウント時に起動され、
アンマウント時に停止する。すなわち、ファイルシステ
ム毎にスレッドを起動する。
【0270】ログ書き出しの終わったトランザクション
が更新したメタデータは、それを管理するmetali
st構造体が全てメタライトリストに繋がれている。メ
タライトデーモン104はメタライトリストに繋がるメ
タデータを、ログボリュームの残りが少なくなったと判
断された場合などに非同期でメタボリュームに反映す
る。反映している間は該当するメタデータは更新するこ
とができず、I/O終了を待ち合わせることになる。
【0271】メタライトデーモン104はメタライトリ
ストを意識し、繋がるメタデータをメタボリュームへ反
映する。これにより、ログボリュームの上書き可能領域
が拡大する。
【0272】しかし、メタライトリストに繋がれている
メタデータの中にも、再度トランザクションによって更
新が進み、メタボリュームヘの反映が禁じられているも
のが存在する場合がある。この時、他のメタデータを書
き出すとしても、そのメタデータについては非同期ライ
トの発行を待ちあわせなければならない。このようなメ
タデータが存在すると、以降のメタデータを全て書き出
せたとしても、上書き可能領域を拡大することができな
い。
【0273】メタライトデーモン104は他者から起動
されて処理を開始する場合と、自発的に起動する場合が
ある。以下に処理手順を述べるが、システムの状態(ロ
グボリュームの空きやメタキャッシュ130の空きな
ど)に応じて動作が若干異なる。また、ここで述べる処
理手順にはデーモン内だけではなく、ドライバから呼ば
れる関数での処理も含まれている。 (3.4.1)自発起動処理 メタライトデーモン104はタイマによって自発的に起
動して、それまでにメタライトシストに繋がれた書き出
し可能なメタデータをメタボリュームに反映する。この
時、メタライトリストの全てを書き出す訳ではなく、あ
る一定の数だけ非同期書き出しを行う。普段から少しず
つメタデータの書き出しを行っておくことによって、資
源不足による起動を避け、I/O負荷分散を図る目的が
ある。
【0274】a)自発起動時には、メタライトリストに
繋がるメタデータ数を調査する。 b)メタライトリストの先頭から、メタデータの状態を
調べる。 c)メタデータが書き出し可能状態であれば、その状態
をI/O中状態に変更し、非同期ライトを発行する。
【0275】d)b_iodoneの関数がI/Oの成
功を確認する。 e)b_iodoneの関数メタライトリストから外
す。 f)規定数だけ繰り返す g)スリープする。
【0276】以下、詳細説明である。 a)自発起動間隔として定義する間隔毎にメタライトリ
ストに繋がるメタデータ数を確認する。具体的には、メ
タライトリストのターミナルに含まれる、リンクされた
メタデータ数を調べる。このとき、それほど多くのメタ
データが繋がれていない場合には書き出しは行わない。
【0277】b)メタライトリストには基本的にはログ
の書き出しが終わった、書き出し可能状態のメタデータ
が繋がれている。しかし、トランザクションが終了して
メタライトリストに繋がれた後で他トランザクションに
よって更新されると、そのメタデータだけは書き出し不
可の状態に戻ってしまう。そのため、メタライトデーモ
ン104はメタライトリストに繋がるメタデータの状態
を確認しながら書き出し処理を行わなければならない。
【0278】c)現在ポイントするメタデータが書き出
し可能状態であれば、その状態をI/O状態に書き換
え、metalist構造体に含まれるbuf構造体を
用いてI/Oを発行する。I/O中状態のメタデータは
他トランザクションから更新されることはない。メタデ
ータのディスクライトは非同期ライトで行い、デーモン
はI/Oの結果を待たずに次の処理へ進む。
【0279】メタデータが書き出し不可状態であるな
ら、そのメタデータは諦め、リストの次に繋がるメタデ
ータに進み、状態を調べる。 d)非同期ライトによって発行されたI/Oの結果を判
定するのは、buf構造体のメンバb_iodoneに
組み込まれた関数である。この関数にはbuf構造体が
引数に与えられ、それを元にエラー判定処理を呼び出
す。ここでエラーを検出した場合には、異常系処理へ進
む(省略)。成功していた場合には、該当メタデータの
clean数をインクリメントする。
【0280】e)b_iodoneに組み込まれた関数
はメタライトリストの管理も行う。引数に渡されたbu
f構造体の上を見るとそこはmetalist構造体に
なっており、そのフグからI/O中フラグを落とし、
メタライトリストから外す。また、メタデータをダーテ
ィ状態からclean状態へ変更する。これは、メタキ
ャッシュ130で管理されるメタデータである場合に
は、それぞれの管理構造体で管理されており、この管理
構造体はmetalist構造体からポイントされる。
【0281】全ての処理が終了したら、このmetal
ist構造体をリリースする。 f)メタライトリストに繋がる書き出し可能メタデータ
を、次々とリストを辿りながら定義した数だけ処理を繰
り返す。ここで、書き出しが不可とされているメタデー
タについては、この数には含めない。また、メタライト
リストが定義数よりも少ない場合には、当然そこで終了
となる。 g)スリープする。再度、自発的に起動するか、あるい
は資源不足によって他から起動されるまで、スリープは
継続する。 (3.4.2)平常処理 システム状態が以下の場合には、ここで述べる処理手順
に従いメタライトデーモン104は動作する。 ◎ログボリュームの残りが少ない。
【0282】ログライトデーモン105が判断する。ロ
グライトバッファを書き出す際に、上書き可能域の大き
さを計算し、これが所定の閾値を下回った時にメタライ
トデーモン104を起動する。 ◎メタキャッシュの残りが少ない。
【0283】更新リリースがあった時、各メタデータの
clean数がデクリメントされるが、その数が所定の
閾値を下回った時にメタライトデーモン104を起動す
る。 a)メタライトリストの先頭から、メタデータの状態を
調べる。
【0284】b)メタデータが書き出し可能状態であれ
ば、その状態をI/O中状態に変更し、非同期ライトを
発行する。 c)b_iodoneの関数がI/Oの成功を確認す
る。
【0285】d)b_iodoneの関数メタライト
リストから外す。 e)メタライトリストの最後まで繰り返す。 f)スリープする。
【0286】以下、詳細説明である。 a)〜d)自発的に起動した場合と同じである。 e)メタライトリストを辿りながら、繋がる全ての書き
出し可能メタデータについて処理を繰り返す。平常処理
時には、書き出し不可のメタデータについては飛ばして
処理を行う。そのため、ログボリューム不足時には、メ
タライトリストの先頭、すなわち、ログボリュームの上
書き可能位置を制限しているメタデータが書き出せなけ
れば資源不足は解消しないが、平常処理であるため、こ
こでは特別な対処を行わない。
【0287】f)タイマを設定してスリープする。 (3.4.3)緊急処理 システム状態が以下の場合には、ここで述べる処理手順
に従いメタライトデーモン104は動作する。 ◎ログボリュームの残りが非常に少ない。 ◎メタキャッシュ130の残りが非常に少ない。
【0288】a)トランザクションの新規開始を制限す
る。 b)メタライトリストの先頭から、メタデータの状態を
調べる。 c)メタデータが書き出し可能状態であれば、その状態
をI/O中状態に変更し、非同期ライトを発行する。
【0289】d)ログ未反映状態となっているメタデー
タがあれば、ログライトデーモン105を起動する。 e)b_iodoneの関数がI/Oの成功を確認す
る。
【0290】f)b_iodoneの関数メタライト
リストから外す。 g)繰り返す。 h)現在の資源状態を調査し、不足があれば、それが解
消するまで繰り返す。
【0291】i)トランザクションの受付を開始する。 j)スリープする。 以下、詳細説明である。
【0292】a)緊急時には、新規のトランザクション
の開始を受け付けない。具体的には、トランザクション
に利用するログバッファを与えないことによって、その
トランザクションのBEGIN宣言時にてスリープさせ
る。そのために、特定のフラグを設け、BEGIN宣言
時にそのフラグを参照しなければならない。
【0293】b)〜g)ここは基本的に平常処理の場合
と同じ処理である。すなわち、メタライトリストの先頭
から、追い出し不可状態のメタデータは飛ばして、書き
出し可能状態のメタデータを順に非同期ライトによって
書き出す。
【0294】ただし、d)だけ異なる。 d)ログボリュームヘの書き出しがデーモンによって行
われることから、たとえトランザクションが終了してい
てもログが未反映のためにメタボリュームへの反映を拒
否しているメタデータが存在することが考えられる。こ
の場合は、強制的にログライトデーモン105を起動し
て、書き出し可能状態へ移行するように操作する。既に
ログライトデーモン105が動作中であれば、そのまま
先へ進む。
【0295】h)ここで、現在の資源状態を調べる。平
常処理の動作契機となる閾値以上の資源が回復していな
ければ、再度、メタライトリスト内のメタデータ書き出
しを試みる。ここで、d)によってログ未反映状態のメ
タデータが、書き出し可能となったことによって進展す
ることを期待している。複数回、繰り返すことによっ
て、新規トランザクションの受付を制限していることか
ら、資源回復までメタデータの書き出しが可能であると
考える。
【0296】i)a)にて制限していたトランザクショ
ンの受付を再開する。 j)タイマを設定して、スリープする。 (4)獲得解放処理 メタデータの割り当て状況を管理するビットマップの状
態として、FREE-dirtyとALLOC-dirtyを区分し、FREE-di
rtyなビットマップからは獲得しないようにする。
【0297】具体的には以下の通りである。 ・マウント時にビットマップを読み込む際に、1つを獲
得用と定める。説明を簡単にするため、複数読み込むビ
ットマップのうち、一番若いもの(最初に読み込むも
の)を最初の獲得用ビットマップとする。 ・獲得用ビットマップの複製を作成する。 ・獲得時には複製を検索して獲得位置を決定し、本体と
複製の両方のビットを操作する。 ・解放時には本体のみのビットを操作する。 ・複製ビットマップには解放が記録されないため、獲得
処理が進むと全てのビットが立ち、そのビットマップで
は獲得できないと判断される。その場合、現在メモリ上
にあるビットマップのうち、CLEANなもの、または
ALLOC-dirtyのビットマップを次の獲得用ビットマップ
と定義し、その複製を作成する。 ・メモリ上のビットマップが全てFREE-dirtyである場合
には、どれかを追い出し、新しいビットマップを獲得用
ビットマップとして読み込む。そして、その複製を作成
する。ここで、追い出し・読み込みのアルゴリズムは従
来通りで良い。
【0298】獲得用ビットマップとして選ばれたビット
マップは追い出しの対象とはしない。そのためメタキャ
ッシュ域不足によって他から追い出されることはない。
また、メタライトリストに繋がったことによって、メタ
ボリュームに反映された場合にも、CLEANな状態に
はなるが、複製は更新せず、そのままとする。
【0299】本実施の形態による効果は、以下の通りで
ある。以上説明したように、本発明によれば複数の二次
記憶装置に保存されたメタデータのログにボリューム情
報を含め、また、有効なログの位置を算出・保存するこ
とでリプレイするログ量を減少せしめ、さらに、ログボ
リューム全体のゼロクリアをする必要をなくすことによ
り、ログ機構の最大の利点であるところのファイルシス
テム復元時間の短縮に及ぼす影響を小さくし、オーバオ
ールコンピュータシステム可用性の増大に寄与するとこ
ろが大きい。
【0300】さらに、本発明によれば一回トランザクシ
ョン内で複数回更新されるメタデータのログを一度しか
採取せず、また、ログバッファの分割や、獲得・解放処
理の特殊なログ採取方式によって複数のトランザクショ
ンの独立性を考慮し、かつ、ログ機構導入による速度性
能の劣化を最小に留めることにおいて寄与するところが
大きい。
【0301】加えて、本発明によればトランザクション
毎に異なるログの採取量を考慮し、多くのメタデータを
更新するトランザクションについては分割し、トランザ
クションに与えられたパラメタをもログに採取し、リプ
レイ時にそのパラメタを元に、中途で終わったトランザ
クションを再度実行することによって、オペレーション
のセマンティクスを保証した復元が可能となる面におい
て寄与するところが大きい。
【0302】なお、上記の処理機能は、コンピュータに
よって実現することができる。その場合、説明した処理
内容は、コンピュータで読み取り可能な記録媒体に記録
されたプログラムに記述されており、このプログラムを
コンピュータで実行することにより、上記処理がコンピ
ュータで実現される。コンピュータで読み取り可能な記
録媒体としては、磁気記録装置や半導体メモリ等があ
る。市場へ流通させる場合には、CD−ROM(Compact
Disk Read Only Memory)やフロッピーディスク等の可
搬型記録媒体にプログラムを格納して流通させたり、ネ
ットワークを介して接続されたコンピュータの記憶装置
に格納しておき、ネットワークを通じて他のコンピュー
タに転送することもできる。コンピュータで実行する際
には、コンピュータ内のハードディスク装置等にプログ
ラムを格納しておき、メインメモリにロードして実行す
る。
【0303】
【発明の効果】以上説明したように、第1の発明では、
メタキャッシュ内のメタデータとともにメタデータがど
のメタボリュームから取り出されたのかを示すメタデー
タ管理情報をログとして採取するようにしたため、保持
されたログがどのメタボリュームのメタデータに関する
ログであるのかを管理することができる。その結果、複
数のログボリュームにメタデータが格納されていても、
ファイルシステムの不整合を修正することが可能とな
る。
【0304】また、第2の発明では、ログデータの有効
範囲を管理するようにしたため、ファイルシステムを復
元する際には、ログボリューム12内の有効なログのみ
を用いて効率よく復元処理を行うことが可能となる。
【0305】また、第3の発明では、ログデータに対し
て付与するシーケンス番号の最大値を、システムの使用
可能年数以上使い続けることができる値としたことで、
常に昇順の採番が可能となり、ログボリュームのゼロク
リアに伴う処理の遅延を避けることができる。
【0306】また、第4の発明では、メタデータが複数
回更新される場合には、最終形態のみをログとして採取
するようにしたため、ログデータが短縮されるととも
に、ログデータの短縮に伴いファイルシステム復元時間
の短縮が図れる。
【0307】また、第5の発明では、割り当て管理情報
の一部の複製を獲得操作用管理情報とし、メタデータの
獲得時には獲得操作用管理情報内から取得すべきメタデ
ータを特定するが、解放時には獲得操作用管理情報の情
報を更新しないようにしたため、メタデータの解放直後
に別のトランザクションにより獲得されることがなくな
る。その結果、システムダウン時に中途までしか終了し
ていなかった解放トランザクションが解放したはずであ
る領域は、解放される直前の状態のまま保全されること
が保証される。
【0308】また、第6の発明では、獲得、解放操作の
ログとして、その操作対象となった情報のみを記録する
ようにしたため、ログ採取量が少量ですむ。また、第7
の発明では、複数のログバッファを設け、さらにいくつ
か異なるサイズのログバッファを用意し、トランザクシ
ョン毎のログをそのトランザクションに適したサイズの
ログバッファに格納するようにしたため、複数のトラン
ザクションが並列実行される際のトランザクションの独
立性を高めることができ、また、メモリ空間を有効に活
用できる。
【0309】また、第8の発明では、1つのトランザク
ションのログがログバッファに収まらない場合に、中間
ログとして完結されたログをログボリュームに書き出す
ようにしたため、部分的であるログを、ファイル復元時
には1つのトランザクションのログと同値に扱うことが
可能となり、ファイルシステムの復元時に望ましい状態
に復元するのが容易となる。
【0310】また、第9の発明では、ログ採取に関する
システムの状態よってトランザクションの受け入れを制
限するようにしたため、複数のトランザクションが並列
実行されることによるメモリ枯渇等の障害の発生を防止
することができる。
【図面の簡単な説明】
【図1】第1の発明の原理構成図である。
【図2】第2の発明の原理構成図である。
【図3】第3の発明の原理構成図である。
【図4】第4の発明の原理構成図である。
【図5】第5の発明の原理構成図である。
【図6】第6の発明の原理構成図である。
【図7】第7の発明の原理構成図である。
【図8】第8の発明の原理構成図である。
【図9】第9の発明の原理構成図である。
【図10】本発明を適用するデータ処理装置のハードウ
ェア構成図である。
【図11】ファイルシステム上で動作するログ採取機能
の構成図である。
【図12】メタデータ管理情報を示す図である。
【図13】ログバッファの形式を示す図である。
【図14】有効範囲を説明する図である。
【図15】ログ採取処理のフローチャートである。
【図16】メタボリュームの割り当て管理状況を示す図
である。
【図17】ビットマップによるメタデータ獲得処理を示
すフローチャートである。
【図18】解放処理のフローチャートである。
【図19】トランザクションの処理の開始と終了の状況
を示す図である。
【図20】ログバッファへのログの格納状況を示す図で
ある。
【図21】ログ採取手順を示すフローチャートである。
【図22】ファイルシステム復元処理を示すフローチャ
ートである。
【図23】新規トランザクションの受け入れ許否判定処
理を示すフローチャートである。
【符号の説明】 1a〜1c メタボリューム 2 ログボリューム 3 メタキャッシュ 4 メタデータ読み込み手段 5 メタデータ管理情報 6 トランザクション 7 ログ採取手段 8 ログバッファ 9 ログ書き込み手段
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図1
【補正方法】変更
【補正内容】
【図1】
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図23
【補正方法】変更
【補正内容】
【図23】
フロントページの続き (72)発明者 鷲見 昌司 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 山口 悟 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 谷脇 貞善 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 浜中 征志郎 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B082 CA17 DC06 DC12 DD04 EA02 FA02 FA12 GB05 GB06

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】 ログを用いてファイルシステムの不整合
    の修正を行うデータ処理装置において、 ファイルを管理するメタデータを記憶するための二次記
    憶装置である複数のメタボリュームと、 メタデータの更新結果であるログを記憶するための二次
    記憶装置であるログボリュームと、 メタデータを記憶するために主記憶装置内に設けられた
    メタキャッシュと、 メタデータの内容が変更される際に、対象となるメタデ
    ータを前記メタキャッシュへと読み込むメタデータ読み
    込み手段と、 前記メタキャッシュ内に読み込まれたメタデータの内容
    を更新するトランザクションと、 前記メタキャッシュに読み込まれたメタデータが格納さ
    れていたメタボリュームの識別情報を管理するメタデー
    タ管理手段と、 前記メタキャッシュ内で変更されたメタデータの内容を
    ログとして採取するとともに、採取したメタデータが格
    納されていたメタボリュームの識別情報を採取するログ
    採取手段と、 前記ログ採取手段が採取した情報を保持するログバッフ
    ァと、 前記ログバッファが保持する情報を、適宜前記ログボリ
    ュームに格納するログ書き込み手段と、 を有することを特徴とするデータ処理装置。
  2. 【請求項2】 ログを用いてファイルシステムの不整合
    の修正を行うデータ処理装置において、 ファイルを管理するメタデータを記憶するための二次記
    憶装置であるメタボリュームと、 メタデータの更新結果であるログを記憶するための二次
    記憶装置であるログボリュームと、 メタデータを記憶するために主記憶装置内に設けられた
    メタキャッシュと、 メタデータの内容が変更される際に、対象となるメタデ
    ータを前記メタキャッシュへと読み込むメタデータ読み
    込み手段と、 前記メタキャッシュ内に読み込まれたメタデータの内容
    を更新するトランザクションと、 前記メタキャッシュ内で変更されたメタデータの内容を
    ログとして採取するログ採取手段と、 前記ログ採取手段が採取した情報を保持するログバッフ
    ァと、 前記ログボリューム内の領域を定期的に循環するように
    して、前記ログバッファが保持する情報を前記ログボリ
    ュームに格納するログ書き込み手段と、 前記メタキャッシュ内のメタデータをメタボリューム内
    に格納するメタデータ書き込み手段と、 前記メタデータ書き込み手段による書き込み動作を監視
    しており、変更内容が前記メタボリュームに反映されて
    いないメタデータに対応する前記ログボリューム内のロ
    グを、有効なログとして指定する有効範囲監視手段と、 ファイルシステム復元要求を受け取ると、前記ログボリ
    ュームに格納されたログの中で、前記有効範囲監視手段
    により有効なログとして指定されているログのみを用い
    て、前記メタボリューム内のメタデータの不整合を修正
    するファイルシステム復元手段と、 を有することを特徴とするデータ処理装置。
  3. 【請求項3】 ログを用いてファイルシステムの不整合
    の修正を行うデータ処理装置において、 ファイルを管理するメタデータを記憶するための二次記
    憶装置であるメタボリュームと、 メタデータの更新結果であるログを記憶するための二次
    記憶装置であるログボリュームと、 メタデータを記憶するために主記憶装置内に設けられた
    メタキャッシュと、 メタデータの内容が変更される際に、対象となるメタデ
    ータを前記メタキャッシュへと読み込むメタデータ読み
    込み手段と、 前記メタキャッシュ内に読み込まれたメタデータの内容
    を更新するトランザクションと、 前記メタキャッシュ内で変更されたメタデータの内容を
    ログとして採取するログ採取手段と、 前記ログ採取手段が採取した情報を保持するログバッフ
    ァと、 前記ログバッファが保持する情報を前記ログボリューム
    に格納するログ書き込み手段と、 前記ログボリュームに格納されたログを用いて前記メタ
    ボリューム内のメタデータの不整合を修正するファイル
    システム復元手段と、 前記ファイルシステム復元手段が前記メタボリューム内
    のメタデータの不整合を修正した時に用いられたログの
    最後のシーケンス番号を記憶する初期シーケンス番号記
    憶手段と、 前記ログ書き込み手段がログの書き込みを行う際に、シ
    ーケンス番号を昇順で採番し、採番したシーケンス番号
    を書き込むべきログに付与しており、前記ファイルシス
    テム復元手段が前記メタボリューム内のメタデータの不
    整合を修正した直後には、前記初期シーケンス番号記憶
    手段に格納されたシーケンス番号を基準として採番する
    シーケンス番号採番手段と、 を有することを特徴とするデータ処理装置。
  4. 【請求項4】 ログを用いてファイルシステムの不整合
    の修正を行うデータ処理装置において、 ファイルを管理するメタデータを記憶するための二次記
    憶装置であるメタボリュームと、 メタデータを記憶するために主記憶装置内に設けられた
    メタキャッシュと、 メタデータの内容が変更される際に、対象となるメタデ
    ータを前記メタキャッシュへと読み込むメタデータ読み
    込み手段と、 前記メタキャッシュ内に読み込まれたメタデータの内容
    を更新するトランザクションと、 前記トランザクションの種別を判断し、メタデータの更
    新を複数回行う可能性のあるトランザクションの場合に
    は、前記メタキャッシュ内で変更されたメタデータの最
    終形態のみをログとして採取するログ採取手段と、 を有することを特徴とするデータ処理装置。
  5. 【請求項5】 ログを用いてファイルシステムの不整合
    の修正を行うデータ処理装置において、 メタデータに対する割り当てを管理するための割り当て
    管理情報を複数の領域に分割して保持する割り当て管理
    情報保持手段と、 前記割り当て管理情報保持手段内の割り当て管理情報の
    一部領域の複製を生成し、獲得操作用管理情報とすると
    ともに、前記獲得操作用管理情報内に未獲得のメタデー
    タがなくなると、割り当て管理情報の別の領域の複製を
    前記獲得操作用管理情報とする獲得操作用管理情報生成
    手段と、 メタデータの獲得及び解放要求を出力するトランザクシ
    ョンと、 前記トランザクションによりメタデータの獲得要求が出
    された場合には、前記獲得操作用管理情報の中の未獲得
    のメタデータを獲得し、獲得したメタデータを獲得済み
    とするように前記獲得操作用管理情報と前記割り当て管
    理情報との内容を変更するメタデータ獲得手段と、 前記トランザクションによりメタデータの解放要求が出
    された場合には、指定されたメタデータが未獲得の状態
    となるように、前記割り当て管理情報の内容を変更する
    メタデータ解放手段と、 を有することを特徴とするデータ処理装置。
  6. 【請求項6】 ログを用いてファイルシステムの不整合
    の修正を行うデータ処理装置において、 メタデータに対する割り当てを管理するための割り当て
    管理情報を保持する割り当て管理情報保持手段と、 メタデータの獲得及び解放要求を出力するトランザクシ
    ョンと、 前記トランザクションによりメタデータの獲得要求が出
    された場合には、前記割り当て管理情報の中の未獲得の
    メタデータを獲得し、獲得したメタデータを獲得済みと
    するように前記割り当て管理情報の内容を変更するメタ
    データ獲得手段と、 前記トランザクションによりメタデータの解放要求が出
    された場合には、指定されたメタデータ未獲得の状態と
    なるように、前記割り当て管理情報の内容を変更するメ
    タデータ解放手段と、 前記割り当て管理情報内の前記メタデータ獲得手段及び
    前記メタデータ解放手段によって変更された部分の情報
    をログとして採取するログ採取手段と、 を有することを特徴とするデータ処理装置。
  7. 【請求項7】 ログを用いてファイルシステムの不整合
    の修正を行うデータ処理装置において、 ファイルを管理するメタデータを記憶するための二次記
    憶装置であるメタボリュームと、 メタデータを記憶するために主記憶装置内に設けられた
    メタキャッシュと、 メタデータの内容が変更される際に、対象となるメタデ
    ータを前記メタキャッシュへと読み込むメタデータ読み
    込み手段と、 前記メタキャッシュ内に読み込まれたメタデータの内容
    を更新する複数のトランザクションと、 ログをトランザクション毎に保持する、サイズの異なる
    複数のログバッファと、 前記メタキャッシュ内で変更されたメタデータの内容を
    ログとして採取し、前記トランザクション毎に分けて前
    記ログバッファに格納するログ採取手段と、 を有することを特徴とするデータ処理装置。
  8. 【請求項8】 前記ログ採取手段は、最初にログを格納
    する場合には、トランザクションの内容によって予想さ
    れる処理に適した大きさの前記ログバッファに格納し、
    格納対象となる前記ログバッファの記憶容量が不足して
    きたら、より大きな記憶容量のログバッファへログを移
    し替え、以後、より大きな記憶容量のログバッファをロ
    グの格納対象とすることを特徴とする請求項7記載のデ
    ータ処理装置。
  9. 【請求項9】 ログを用いてファイルシステムの不整合
    の修正を行うデータ処理装置において、 ファイルを管理するメタデータを記憶するための二次記
    憶装置であるメタボリュームと、 メタデータの更新結果であるログを記憶するための二次
    記憶装置であるログボリュームと、 メタデータを記憶するために主記憶装置内に設けられた
    メタキャッシュと、 メタデータの内容が変更される際に、対象となるメタデ
    ータを前記メタキャッシュへと読み込むメタデータ読み
    込み手段と、 前記メタキャッシュ内に読み込まれたメタデータの内容
    を更新するトランザクションと、 ログをトランザクション毎に保持するログバッファと、 前記メタキャッシュ内で変更されたメタデータの内容を
    ログとして採取し、前記ログバッファに格納するログ採
    取手段と、 前記トランザクションが終了した場合に前記ログバッフ
    ァの内容を前記ログボリュームに書き込むとともに、前
    記トランザクションによるログが前記ログバッファ内に
    格納しきれない場合には、前記ログバッファ内のデータ
    を完結したログに加工し、中間ログとして前記ログボリ
    ューム内に格納するログ書き込み手段と、 を有することを特徴とするデータ処理装置。
  10. 【請求項10】 前記ログ書き込み手段は、前記中間ロ
    グに対して、トランザクションを実行するのに必要とさ
    れたパラメタに関する情報を付加し、 ファイルシステム復元要求を受け取ると、前記ログボリ
    ュームに格納されたログを用いて、前記メタボリューム
    内のメタデータの不整合を修正するとともに、前記中間
    ログを発見すると、前記中間ログに含まれたパラメタを
    用いて、前記トランザクションを再実行させるファイル
    システム復元手段をさらに有することを特徴とする請求
    項9記載のデータ処理装置。
  11. 【請求項11】 ログを用いてファイルシステムの不整
    合の修正を行うデータ処理装置において、 ファイルを管理するメタデータを記憶するための二次記
    憶装置であるメタボリュームと、 メタデータの更新結果であるログを記憶するための二次
    記憶装置であるログボリュームと、 メタデータを記憶するために主記憶装置内に設けられた
    メタキャッシュと、 メタデータの内容が変更される際に、対象となるメタデ
    ータを前記メタキャッシュへと読み込むメタデータ読み
    込み手段と、 前記メタキャッシュ内に読み込まれたメタデータの内容
    を更新する、複数同時実行可能なトランザクションと、 前記トランザクションからの開始要求を受け付けると、
    ログ採取に関するシステムの動作状況を判断し、前記ト
    ランザクションの受け入れ許否を判断するトランザクシ
    ョン受け入れ判断手段と、 前記メタキャッシュ内で変更されたメタデータの内容を
    ログとして採取するログ採取手段と、 前記ログ採取手段が採取した情報を保持するログバッフ
    ァと、 前記ログバッファが保持する情報を、適宜前記ログボリ
    ュームに格納するログ書き込み手段と、 を有することを特徴とするデータ処理装置。
  12. 【請求項12】 前記メタキャッシュ内のメタデータ
    をメタボリューム内に格納するメタデータ書き込み手段
    と、 前記メタデータ書き込み手段による書き込み動作を監視
    しており、変更内容が前記メタボリュームに反映されて
    いないメタデータに対応する前記ログボリューム内のロ
    グを、有効なログとして指定する有効範囲監視手段とを
    さらに有し、 前記トランザクション受け入れ判断手段は、前記有効範
    囲監視手段によって有効なログとされたログがログボリ
    ューム中に占める割合が一定値以上である間は、前記ト
    ランザクションの受け入れを拒絶することを特徴とする
    請求項11記載のデータ処理装置。
  13. 【請求項13】 ログを用いてファイルシステムの不整
    合の修正を行うファイル管理プログラムを記録したコン
    ピュータ読み取り可能な記録媒体において、ファイルを
    管理するメタデータを記憶するための二次記憶装置であ
    る複数のメタボリューム、 メタデータの更新結果であるログを記憶するための二次
    記憶装置であるログボリューム、 メタデータを記憶するために主記憶装置内に設けられた
    メタキャッシュ、 メタデータの内容が変更される際に、対象となるメタデ
    ータを前記メタキャッシュへと読み込むメタデータ読み
    込み手段、 前記メタキャッシュ内に読み込まれたメタデータの内容
    を更新するトランザクション、 前記メタキャッシュに読み込まれたメタデータが格納さ
    れていたメタボリュームの識別情報を管理するメタデー
    タ管理手段、 前記メタキャッシュ内で変更されたメタデータの内容を
    ログとして採取するとともに、採取したメタデータが格
    納されていたメタボリュームの識別情報を採取するログ
    採取手段、 前記ログ採取手段が採取した情報を保持するログバッフ
    ァ、 前記ログバッファが保持する情報を、適宜前記ログボリ
    ュームに格納するログ書き込み手段、 としてコンピュータを機能させることを特徴とするファ
    イル管理プログラムを記録したコンピュータ読み取り可
    能な記録媒体。
  14. 【請求項14】 ログを用いてファイルシステムの不整
    合の修正を行うファイル管理プログラムを記録したコン
    ピュータ読み取り可能な記録媒体において、 ファイルを管理するメタデータを記憶するための二次記
    憶装置であるメタボリューム、 メタデータの更新結果であるログを記憶するための二次
    記憶装置であるログボリューム、 メタデータを記憶するために主記憶装置内に設けられた
    メタキャッシュ、 メタデータの内容が変更される際に、対象となるメタデ
    ータを前記メタキャッシュへと読み込むメタデータ読み
    込み手段、 前記メタキャッシュ内に読み込まれたメタデータの内容
    を更新するトランザクション、 前記メタキャッシュ内で変更されたメタデータの内容を
    ログとして採取するログ採取手段、 前記ログ採取手段が採取した情報を保持するログバッフ
    ァ、 前記ログボリューム内の領域を定期的に循環するように
    して、前記ログバッファが保持する情報を前記ログボリ
    ュームに格納するログ書き込み手段、 前記メタキャッシュ内のメタデータをメタボリューム内
    に格納するメタデータ書き込み手段、 前記メタデータ書き込み手段による書き込み動作を監視
    しており、変更内容が前記メタボリュームに反映されて
    いないメタデータに対応する前記ログボリューム内のロ
    グを、有効なログとして指定する有効範囲監視手段、 ファイルシステム復元要求を受け取ると、前記ログボリ
    ュームに格納されたログの中で、前記有効範囲監視手段
    により有効なログとして指定されているログのみを用い
    て、前記メタボリューム内のメタデータの不整合を修正
    するファイルシステム復元手段、 としてコンピュータを機能させることを特徴とするファ
    イル管理プログラムを記録したコンピュータ読み取り可
    能な記録媒体。
  15. 【請求項15】 ログを用いてファイルシステムの不整
    合の修正を行うファイル管理プログラムを記録したコン
    ピュータ読み取り可能な記録媒体において、 ファイルを管理するメタデータを記憶するための二次記
    憶装置であるメタボリューム、 メタデータの更新結果であるログを記憶するための二次
    記憶装置であるログボリューム、 メタデータを記憶するために主記憶装置内に設けられた
    メタキャッシュ、 メタデータの内容が変更される際に、対象となるメタデ
    ータを前記メタキャッシュへと読み込むメタデータ読み
    込み手段、 前記メタキャッシュ内に読み込まれたメタデータの内容
    を更新するトランザクション、 前記メタキャッシュ内で変更されたメタデータの内容を
    ログとして採取するログ採取手段、 前記ログ採取手段が採取した情報を保持するログバッフ
    ァ、 前記ログバッファが保持する情報を前記ログボリューム
    に格納するログ書き込み手段、 前記ログボリュームに格納されたログを用いて前記メタ
    ボリューム内のメタデータの不整合を修正するファイル
    システム復元手段、 前記ファイルシステム復元手段が前記メタボリューム内
    のメタデータの不整合を修正した時に用いられたログの
    最後のシーケンス番号を記憶する初期シーケンス番号記
    憶手段、 前記ログ書き込み手段がログの書き込みを行う際に、シ
    ステムの使用可能年数以上使い続けることができる値を
    最大値としたシーケンス番号を昇順で採番し、書き込む
    べきログに付与しており、前記ファイルシステム復元手
    段が前記メタボリューム内のメタデータの不整合を修正
    した直後には、前記初期シーケンス番号記憶手段に格納
    されたシーケンス番号から昇順で採番するシーケンス番
    号採番手段、 としてコンピュータを機能させることを特徴とするファ
    イル管理プログラムを記録したコンピュータ読み取り可
    能な記録媒体。
  16. 【請求項16】 ログを用いてファイルシステムの不整
    合の修正を行うファイル管理プログラムを記録したコン
    ピュータ読み取り可能な記録媒体において、 ファイルを管理するメタデータを記憶するための二次記
    憶装置であるメタボリューム、 メタデータを記憶するために主記憶装置内に設けられた
    メタキャッシュ、 メタデータの内容が変更される際に、対象となるメタデ
    ータを前記メタキャッシュへと読み込むメタデータ読み
    込み手段、 前記メタキャッシュ内に読み込まれたメタデータの内容
    を更新するトランザクション、 前記トランザクションの種別を判断し、メタデータの更
    新を複数回行う可能性のあるトランザクションの場合に
    は、前記メタキャッシュ内で変更されたメタデータの最
    終形態のみをログとして採取するログ採取手段、 としてコンピュータを機能させることを特徴とするファ
    イル管理プログラムを記録したコンピュータ読み取り可
    能な記録媒体。
  17. 【請求項17】 ログを用いてファイルシステムの不整
    合の修正を行うファイル管理プログラムを記録したコン
    ピュータ読み取り可能な記録媒体において、 メタデータに対する割り当てを管理するための割り当て
    管理情報を複数の領域に分割して保持する割り当て管理
    情報保持手段、 前記割り当て管理情報保持手段内の割り当て管理情報の
    一部領域の複製を生成し、獲得操作用管理情報とすると
    ともに、前記獲得操作用管理情報内に未獲得のメタデー
    タがなくなると、割り当て管理情報の別の領域の複製を
    前記獲得操作用管理情報とする獲得操作用管理情報生成
    手段、 メタデータの獲得及び解放要求を出力するトランザクシ
    ョン、 前記トランザクションによりメタデータの獲得要求が出
    された場合には、前記獲得操作用管理情報の中の未獲得
    のメタデータを獲得し、獲得したメタデータを獲得済み
    とするように前記獲得操作用管理情報と前記割り当て管
    理情報との内容を変更するメタデータ獲得手段、 前記トランザクションによりメタデータの解放要求が出
    された場合には、指定されたメタデータが未獲得の状態
    となるように、前記割り当て管理情報の内容を変更する
    メタデータ解放手段、 としてコンピュータを機能させることを特徴とするファ
    イル管理プログラムを記録したコンピュータ読み取り可
    能な記録媒体。
  18. 【請求項18】 ログを用いてファイルシステムの不整
    合の修正を行うファイル管理プログラムを記録したコン
    ピュータ読み取り可能な記録媒体において、 メタデータに対する割り当てを管理するための割り当て
    管理情報を保持する割り当て管理情報保持手段、 メタデータの獲得及び解放要求を出力するトランザクシ
    ョン、 前記トランザクションによりメタデータの獲得要求が出
    された場合には、前記割り当て管理情報の中の未獲得の
    メタデータを獲得し、獲得したメタデータを獲得済みと
    するように前記割り当て管理情報の内容を変更するメタ
    データ獲得手段、 前記トランザクションによりメタデータの解放要求が出
    された場合には、指定されたメタデータ未獲得の状態と
    なるように、前記割り当て管理情報の内容を変更するメ
    タデータ解放手段、 前記割り当て管理情報内の前記メタデータ獲得手段及び
    前記メタデータ解放手段によって変更された部分の情報
    をログとして採取するログ採取手段、 としてコンピュータを機能させることを特徴とするファ
    イル管理プログラムを記録したコンピュータ読み取り可
    能な記録媒体。
  19. 【請求項19】 ログを用いてファイルシステムの不整
    合の修正を行うファイル管理プログラムを記録したコン
    ピュータ読み取り可能な記録媒体において、 ファイルを管理するメタデータを記憶するための二次記
    憶装置であるメタボリューム、 メタデータを記憶するために主記憶装置内に設けられた
    メタキャッシュ、 メタデータの内容が変更される際に、対象となるメタデ
    ータを前記メタキャッシュへと読み込むメタデータ読み
    込み手段、 前記メタキャッシュ内に読み込まれたメタデータの内容
    を更新する複数のトランザクション、 ログをトランザクション毎に保持する、サイズの異なる
    複数のログバッファ、 前記メタキャッシュ内で変更されたメタデータの内容を
    ログとして採取し、前記トランザクション毎に分けて前
    記ログバッファに格納するログ採取手段、 としてコンピュータを機能させることを特徴とするファ
    イル管理プログラムを記録したコンピュータ読み取り可
    能な記録媒体。
  20. 【請求項20】 ログを用いてファイルシステムの不整
    合の修正を行うファイル管理プログラムを記録したコン
    ピュータ読み取り可能な記録媒体において、 ファイルを管理するメタデータを記憶するための二次記
    憶装置であるメタボリューム、 メタデータの更新結果であるログを記憶するための二次
    記憶装置であるログボリューム、 メタデータを記憶するために主記憶装置内に設けられた
    メタキャッシュ、 メタデータの内容が変更される際に、対象となるメタデ
    ータを前記メタキャッシュへと読み込むメタデータ読み
    込み手段、 前記メタキャッシュ内に読み込まれたメタデータの内容
    を更新するトランザクション、 ログをトランザクション毎に保持するログバッファ、 前記メタキャッシュ内で変更されたメタデータの内容を
    ログとして採取し、前記ログバッファに格納するログ採
    取手段、 前記トランザクションが終了した場合に前記ログバッフ
    ァの内容を前記ログボリュームに書き込むとともに、前
    記トランザクションによるログが前記ログバッファ内に
    格納しきれない場合には、前記ログバッファ内のデータ
    を完結したログに加工し、中間ログとして前記ログボリ
    ューム内に格納するログ書き込み手段、 としてコンピュータを機能させることを特徴とするファ
    イル管理プログラムを記録したコンピュータ読み取り可
    能な記録媒体。
  21. 【請求項21】 ログを用いてファイルシステムの不整
    合の修正を行うファイル管理プログラムを記録したコン
    ピュータ読み取り可能な記録媒体において、 ファイルを管理するメタデータを記憶するための二次記
    憶装置であるメタボリューム、 メタデータの更新結果であるログを記憶するための二次
    記憶装置であるログボリューム、 メタデータを記憶するために主記憶装置内に設けられた
    メタキャッシュと、 メタデータの内容が変更される際に、対象となるメタデ
    ータを前記メタキャッシュへと読み込むメタデータ読み
    込み手段、 前記メタキャッシュ内に読み込まれたメタデータの内容
    を更新する、複数同時実行可能なトランザクション、 前記トランザクションからの開始要求を受け付けると、
    ログ採取に関するシステムの動作状況を判断し、前記ト
    ランザクションの受け入れ許否を判断するトランザクシ
    ョン受け入れ判断手段、 前記メタキャッシュ内で変更されたメタデータの内容を
    ログとして採取するログ採取手段、 前記ログ採取手段が採取した情報を保持するログバッフ
    ァ、 前記ログバッファが保持する情報を、適宜前記ログボリ
    ュームに格納するログ書き込み手段、 としてコンピュータを機能させることを特徴とするファ
    イル管理プログラムを記録したコンピュータ読み取り可
    能な記録媒体。
JP08745799A 1999-03-30 1999-03-30 データ処理装置及び記録媒体 Expired - Fee Related JP3763992B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (16)

* Cited by examiner, † Cited by third party
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