JP3763992B2 - データ処理装置及び記録媒体 - Google Patents
データ処理装置及び記録媒体 Download PDFInfo
- Publication number
- JP3763992B2 JP3763992B2 JP08745799A JP8745799A JP3763992B2 JP 3763992 B2 JP3763992 B2 JP 3763992B2 JP 08745799 A JP08745799 A JP 08745799A JP 8745799 A JP8745799 A JP 8745799A JP 3763992 B2 JP3763992 B2 JP 3763992B2
- Authority
- JP
- Japan
- Prior art keywords
- log
- metadata
- transaction
- storing
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Description
【発明の属する技術分野】
本発明はファイルシステムの修正機能を有するデータ処理装置及び記録媒体に関し、特にログを用いてファイルシステムの不整合の修正を行うデータ処理装置及び記録媒体に関する。
【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,1b,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は、ファイルシステム復元手段39がメタボリューム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は、割り当て管理情報保持手段51内の割り当て管理情報の一部領域の複製を生成し、獲得操作用管理情報51bとする。また、獲得操作用管理情報51b内に未獲得のメタデータがなくなると、割り当て管理情報の別の領域の複製を獲得操作用管理情報51bとする。トランザクション53は、メタデータの獲得及び解放要求を出力する。メタデータ獲得手段54は、トランザクション53によりメタデータの獲得要求が出された場合には、獲得操作用管理情報51bの中の未獲得のメタデータを獲得し、獲得したメタデータを獲得済みとするように獲得操作用管理情報51bと割り当て管理情報51aとの内容を変更する。メタデータ解放手段55は、トランザクション53によりメタデータの解放要求が出された場合には、指定されたメタデータが未獲得の状態となるように、割り当て管理情報の内容を変更する。
【0061】
このようなデータ処理装置によれば、獲得操作用管理情報生成手段52により、割り当て管理情報51aの一部領域の複製が生成され、獲得操作用管理情報51bとされる。トランザクション53により獲得要求があると、メタデータ獲得手段54により、獲得操作用管理情報51b内の未獲得のメタデータが獲得される。すると、獲得操作用管理情報51bと割り当て管理情報51aとの内容が更新される。また、トランザクション53よりメタデータの解放要求があると、メタデータ解放手段55により該当するメタデータの解放処理が行われる。この際、割り当て管理情報51aの内容のみが更新される。ここで、獲得操作用管理情報51b内に未獲得のメタデータがなくなると、割り当て管理情報51a内の別の領域の複製が獲得操作用管理情報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によって変更された部分の情報がログとして採取され、ログバッファ66に保持される。
【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の内容をログボリューム82に書き込むとともに、トランザクション85によるログがログバッファ86内に格納しきれない場合には、ログバッファ86内のデータを完結したログに加工し、中間ログとしてログボリューム82内に格納する。なお、中間ログを生成する際には、中間ログに対してトランザクションを実行するのに必要とされたパラメタに関する情報を付加する。ファイルシステム復元手段89は、ファイルシステム復元要求を受け取ると、ログボリューム82に格納されたログを用いて、メタボリューム81内のメタデータの不整合を修正する。このとき、中間ログを発見すると、中間ログに含まれたパラメタを用いてトランザクションを再実行させる。
【0073】
このようなデータ処理装置によれば、トランザクション85がメタデータの更新をする際には、まず、メタデータ読み込み手段84によりメタボリューム81内の必要なメタデータがメタキャッシュ83に読み込まれる。ここで、トランザクション85がメタデータの内容を更新すると、ログ採取手段87によって更新後のメタデータがログとして採取される。採取した情報は、ログバッファ86に保持される。そして、ログバッファ86に格納しきれなくなるか、トランザクション85が終了すると、ログ書き込み手段88により、ログバッファ86内の情報がログボリューム82に書き込まれる。ログバッファ86に格納しきれなくなった場合には、ログバッファ86の内容を完結したログに加工し、中間ログとしてログボリューム82に格納する。そして、ファイルシステム復元要求が出されると、ファイルシステム復元手段89により、ログボリューム82に格納されたログを用いて、メタボリューム81内のメタデータの不整合が修正されるとともに、中間ログまで採取した段階で停止しているトランザクションが再実行される。
【0074】
これにより、メタデータの更新を大量に行うトランザクションの実行中にシステムがダウンした場合には、途中の状態まで戻すことができるとともに、トランザクションが再実行されることで、トランザクションの実行後の状態へ遷移させることができる。
【0075】
図9は、第9の発明の原理構成図である。トランザクションの受け入れを一定の条件によって制限することで、メモリ枯渇等を防止するものである。第9の発明の構成は以下の通りである。
【0076】
メタボリューム91は、ファイルを管理するメタデータを記憶するための二次記憶装置である。ログボリューム92は、メタデータの更新結果であるログを記憶するための二次記憶装置である。メタキャッシュ94は、メタデータを記憶するために主記憶装置内に設けられた記憶領域である。メタデータ読み込み手段93は、メタデータの内容が変更される際に、対象となるメタデータをメタキャッシュ94へと読み込む。互いの同時実行可能な複数のトランザクション90b〜90dは、メタキャッシュ94内に読み込まれたメタデータの内容を更新する。トランザクション受け入れ制限手段90aは、トランザクション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が接続されており、これらの入力機器からの入力内容をCPU211に伝える。
【0082】
表示制御回路214は、表示装置223が接続されており、CPU211から送られてきた画像データを表示装置223で表示可能な画像情報に変換し、表示装置223の画面に表示させる。
【0083】
HDDインタフェース215は、複数のHDD231〜233が接続されており、CPU211から送られてきたデータをHDD231〜233に格納するとともに、CPU211からの要求に応じてHDD231〜233内のデータを読み取り、CPU211に転送する。
【0084】
ネットワークインタフェース216は、LAN(Local Area Network)に接続されており、LANを介してデータ通信を行う。すなわち、CPU211から送られたデータをLANに接続された他のコンピュータに転送するとともに、他のコンピュータからLANを介して送られてきたデータをCPU211に転送する。
【0085】
HDD231〜233には、各種ファイルや、そのファイルを管理するためのメタデータ及びログが格納されている。
このような構成のシステムにおいて、CPU211がHDD231〜233に格納されたオペレーティングシステム用のプログラムを実行することにより、本発明のログ採取機能が実現される。
【0086】
図11は、ファイルシステム上で動作するログ採取機能の構成図である。図のように、ファイルを管理するためのメタボリューム111〜113も複数設けられている。メタボリューム111〜113には、それぞれメタデータが格納されている。メタデータは、ファイルの格納場所等を管理するために必要な情報を有している。
【0087】
ログボリューム120は、ログ122を格納するための二次記憶装置である。ログボリューム120には、ログ122の他にボリューム管理情報121が格納されている。
【0088】
メタキャッシュ130は、メタデータを操作するためのメモリ上の領域である。メタキャッシュ130内には、操作対象となるメタデータ132とそのメタデータの割り当て管理情報131とが格納される。
【0089】
ログキャッシュ140は、複数のログバッファ141〜144を有している。ログバッファ141〜144のサイズは均一ではなく、大きなサイズのものや小さなサイズのものがある。これらのログバッファ141〜144には、メタキャッシュ130内で更新されたメタデータの複製がログとして格納される。
【0090】
ログキャッシュ140とは別にログライトバッファ150が設けられている。ログライトバッファ150には、トランザクションの処理が終了した時点で、ログバッファ141〜144内のログが転送される。
【0091】
この例では、複数のトランザクション101〜103が並列動作している。このトランザクション101〜103は、ファイルシステムオペレーションを分割したものである。
【0092】
実際にI/Oを行うのは2つのデーモンであり、それぞれをメタライトデーモン104、ログライトデーモン105と呼ぶ。ログライトデーモン105がログをログ専用の二次記憶装置であるログボリューム120に出力する。メタライトデーモン104は、ログボリューム120に対してログが出力されたことを確認した後、そのログに対応するメタデータをメタデータ専用の二次記憶装置であるメタボリューム111〜113に出力する。
【0093】
さらに、本発明のログ採取機能では、以下のような特徴を有している。
第1の特徴は、各メタデータに対応するメタデータ管理情報として、メタボリュームを識別する情報が付加されていることである。これは、大規模ファイルシステムに対応するためのものである。すなわち、複数の二次記憶装置がメタボリューム111〜113として定義される場合に、メタキャッシュ130上のメタデータ管理情報にそのメタデータが存在するボリュームの情報を持たせている。
【0094】
図12は、メタデータ管理情報を示す図である。メタデータ管理情報には、「ボリューム番号」、「メタデータ番号」、及び「メタデータポインタ」が登録されている。「ボリューム番号」には、対応するメタデータが存在するボリューム番号が登録されている。「メタデータ番号」には、ボリューム毎におけるメタデータ管理番号が登録されている。すなわち、システムが認識するボリュームのデバイス番号とそのボリューム内の位置から算定される数値によってメタデータが管理され、メタデータ自体がそれらの値を管理情報として保持する。「メタデータポインタ」には、メタデータの実体のある場所を指し示している。
【0095】
このようなメタデータ管理情報を有するメタデータの内容が更新されると、更新後のメタデータの内容がログとしてログバッファに記録されるとともに、メタデータ管理情報の内容がログに記録される。
【0096】
図13は、ログバッファの形式を示す図である。ログバッファには、「BEGINマーク」、「ボリューム番号」、「メタデータ番号」、「メタデータ実体」、及び「ENDマーク」の情報を含んでいる。
【0097】
ファイルシステムを復元する際には、ログ内に記されているボリューム番号によって、そのログによって復元すべきメタデータの存在するメタボリュームが認識される。これにより、従来技術のようにファイルシステム復元時にメタデータ番号からその存在すべきボリュームを決定するよりも速度向上が望め、システムダウン後の大規模ファイルシステムにおいてもログ機構導入によるファイルシステム復元時間の短縮が有効に機能する。
【0098】
第2の特徴は、メタキャッシュ130内で更新されたメタデータが、それぞれの管理構造にリンクポインタを持つことである。ログとしてログボリューム120に記録されたメタデータはメタライトリストに繋がれ、メタボリュームヘ反映が完了した時点でこのメタライトリストから外される。さらに、ログとして記録されているログボリューム120内の位置情報をも、メタライトリスト内に持つ。このログボリューム内位置情報をリストを辿って検索することによって、システムダウン時に必要とされるログの範囲を特定することができる。そこで、ここから得られる有効範囲情報をログボリューム120の特定位置に設けたボリューム管理情報121内に記録する。有効範囲情報を記録し、ファイルシステム復元時にそこに含まれるログのみをリプレイすることにより、ログボリューム全体を検索する必要がなくなり、ログボリューム全体を読み込む必要のある、有効範囲情報を記録しない従来の方式よりもファイルシステムの復元時間をさらに短縮することができる。
【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」フラグが立てられたビットマップが存在するか否かを判断する。存在すればステップS19に進み、存在しなければ、獲得不可能と判断し処理を終了する。
[S19]「FreeDirty」フラグが立てられたビットマップをメタボリュームに反映し、「clean」状態にする。ここで「clean」状態とは、獲得、解放の処理が全く行われていない状態を示す。その後、ステップS13に進む。
[S20]獲得用ビットマップのビットを立てる。
[S21]複製元ビットマップの同一ビットを立てる。
[S22]複製元ビットマップに「AllocDirty」フラグを立てる。ここで、「AllocDirty」フラグとは、対象ビットマップから一回以上の獲得処理によって更新がなされた場合に、そのビットマップの管理構造体内のフラグに立てる値である。「AllocDirty」フラグや「FreeDirty」フラグが立ったビットマップはログ採取対象である。メタボリュームに反映された時にこれらのフラグは落とされ、「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」に設定されている。同様に、大きいサイズのログバッファ146に対応するログバッファ管理テーブル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]現在のログバッファより大きいログバッファが存在するか否かを判断する。存在すればステップS46に進み、そうでなければステップ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条件が解消されたら、ステップS75に進む。
[S82]トランザクションは、システムからの「OK」の回答を受け取ったら、多重度インクリメント処理を行う。
[S83]トランザクションは、「BEGIN」処理を終了する。
[S84]トランザクションは、処理に応じて、メタデータをキャッシュに読み込み、その度に空き量をデクリメントする。分割ログ化するなら他トランザクションの開始を拒否するようにシステムに依頼する。
[S85]トランザクションは、「END宣言」を行う。
[S86]トランザクションは、多重度をデクリメントする。
[S87]トランザクションは、必要に応じてログ採取を繰り返した後、自己のトランザクション処理を終了する。
【0146】
次に、本発明を適用したシステムの具体的な処理内容について説明する。本発明の全ての特徴を備えたシステムにおけるログ採取手順は以下のようになる。
ファイルシステムオペレーションを分割したトランザクションはメタデータを更新するより前に、自分がこれからメタデータを更新する旨を宣言する(BEGIN)。BEGIN時にトランザクションに対し、独立したログバッファが割当てられる。この時、既にトランザクションの並列動作数が非常に多かったりメタキャッシュ130域の利用率が高い場合には、システムによってBEGIN宣言が拒否される。BEGIN宣言を拒否されたトランザクションはその拒否理由が解消されるまで、待ち合わせなければならない。
【0147】
更新が完了したメタデータは、BEGIN時に割り当てられたログバッファヘコピーされる。それと同時にメタデータ種類に応じたリストへ繋がれる。
更新すべき全てのメタデータを更新し終わったトランザクションは、そこで完了を宣言する(END)。END時には、これまで溜めたログバッファの内容をログ専用の二次キャッシュであるログライトバッファヘ移動し、さらに、まだログバッファヘコピーされていなかったメタデータをログライトバッファヘコピーする。
【0148】
また、END時にメタデータの種類に応じて繋がれていたリストから、そのトランザクションが更新した全てのメタデータを「ログ待ちリスト」へ繋ぎ替える。
【0149】
以上で非同期要求のトランザクションは終了することができる。トランザクションが同期要求であった場合には、ログを書き出すまで待ち合わせなければならない。
【0150】
ログの書き出しは独立したデーモン(ログライトデーモン105)が行う。このデーモンの起動契機は、同期要求トランザクションによる起動要求(wakeup)、メタキャッシュ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】
ログブロックサイズ:ログブロックのENDマークまでのサイズを記録する。BEGINマークの先頭からENDマークの先頭までのサイズである。リプレイ時にはBEGINマークの先頭からこのサイズだけ移動し、ENDマークの情報を参照して、ログの有効性を判定する。
2)ヘッダ
更新されたメタデータについて、その保管位置を特定するための情報であり、以下のメンバによって構成される。
・メタデータタイプ
・メタボリューム番号
・ボリュームローカルメタデータ番号
メタデータタイプ:
更新情報の後方にあるメタデータ更新内容が何のメタデータであるのかを特定するために用いられ、リプレイヤはここから更新内容のサイズを判断する。
【0169】
メタボリューム番号:メタデータ管理で用いているメタボリューム毎の番号を記録する。リプレイ時には、この番号から書き戻すメタボリュームを決定する。ボリュームローカルメタデータ番号:メタデータ管理で用いている、メタボリューム毎、メタデータ毎に0から始まる値を記録する。リプレイ時には、この番号からメタボリューム内のブロック位置に変換し、更新内容を書き戻す。これはブロック位置変換を削減することによるログ採取の高速化が狙いである。対象がビットマップである場合には、変更されたビットが該当するメタデータ本体のメタデータ番号を記載する(ビットマップ番号ではない)。
3)更新内容
メタデータ本体の場合には、更新内容が含まれるブロック(それぞれのメタデータの管理単位)である。例えば、ディレクトリブロックが更新された場合には1024バイトのディレクトリブロック全体である。
【0170】
ビットマップの場合には、全体ではなく、ここには「0→1」または「1→0」という情報だけ記録する。リプレイ時にはヘッダから該当するビットマップを判定し、それを読み込み、ここの内容から該当ビットを変更して書き戻す。
4)ENDマーク
BEGINマークに対応するマジックワード、ログシーケンス番号、ログブロックサイズを記録する。
【0171】
ENDマークがマジックワードとログ番号だけでは、メタデータの内容によってはそれが偽りのENDマークとして見えてしまい、リプレイの時に処理を誤る可能性がある。これを回避するために、ENDマークは固有形式(メタデータを誤認することのない形式)としなければならない。
【0172】
BEGINマークを固有形式としないのは、BEGINマークだけ書き出された時点で、システムダウンした場合を考慮し、いずれにせよENDマークの識別ができなければならないからである。
【0173】
固有形式とするために、固有の数値を64バイト分続ける。これにより、全てのメタデータがENDマークに化けることはなくなる。
これに続けて、マジックワード、カウンタ(ログ番号)、ログブロックサイズを記録する。以降、ブロック境界まで、上記数値を埋める。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マークと同じ意味合いを持ち、BEGINマークに対応する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にて作成したBEGINマークに対応する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リスト及びBTAリストをたどりながらそれらをログバッファにコピー、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)これまでに溜まったログバッファの内容を巨大ログバッファヘコピーする。この時、BTFリストはそのまま繋いだままとし、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)巨大ログバッファの先頭にBEGINマークを作成する。
ha−8)オペレーションログを作成する。
h−b)サブトランザクションに分割する必要がない間は、巨大ログバッファ内でそのまま継続する。
(2.4.3)LOG_END
トランザクションの終了を示す。ここで、最終ENDマークの作成を行う。実際のログボリューム120への反映はログライトデーモン105の仕事である。
【0232】
i)最終ENDマークを作成する。最終ENDマークは通常の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
▲1▼ログライトサイズが(D−C)以下ならば、Cから書き出す。
▲2▼ログライトサイズが(D−C)より大きく、かつ、(B−A)以下ならば、Aから書き出す。
・A≦C<B≦D
▲3▼ログライトサイズが(B−C)より小さければ、Cから書き出す。
【0242】
これらの条件に合致せず、ログの出力ができない場合には、メタライトデーモン104を起動して、自分はスリープする。メタライトデーモン104の動作により起動されたら、再度、空きサイズ判定から行う。
【0243】
b−b)ログボリューム120ヘ同期書き出しする。
b−c)エラー判定。同期書き出し後、エラー判定を行う。エラーが発見された場合の処置については省略する。
【0244】
b−d)領域判定。
書き出しが終わった後、再び、b−a)と同様な空き領域の判定を行う。ここで、残りが少ないと判定された時、その残りの大きさに応じてメタライトデーモン104を「平常起動」または「緊急起動」する。
【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_SYNCを行う。LOG_SYNCはログライトデーモン105が寝ている場合には起こし、ログライトバッファの内容をその場で書き出させる。
【0249】
現在ログライトデーモン105がI/O中であったら、ログライトデーモン105の処理が終わるのを寝て待つ。
◎ログライトバッファ不足
周期毎にログライトバッファをクリアしても、大きなログバッファが連続して終了すると、その前にログライトバッファがフルに近い状態になることがありえる。この時にはログライトデーモン105が起こされ、ログライトバッファ150の内容をログボリューム120に書き出してクリアする。
【0250】
具体的には、あるトランザクションが自ログバッファの内容をLOG_ENDによってコピーしようとした時、ログライトバッファ150の残りサイズが自ログよりも小さいと判断された時、ログライトデーモン105を起こし、追加モードのログライトバッファ150を切り替えてもらい、その間は寝て待つ。
【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)の状態にあるTRANSリスト(巨大トランザクションの場合は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によってログバッファの内容がログライトバッファにコピーされる際、そのアドレスとログボリュームの書き出しオフセットから導かれる。トランザクション毎のログボリューム内オフセットがTRANSリストを辿りながら、トランザクション毎のログボリューム内オフセットをそれぞれのmetalist構造体に設定する。
【0267】
ログライトデーモン105は、ログを書き出す際にメタライトリストの先頭に繋がるmetalist構造体を参照し、現在のポインタにログライトバッファに入っているログサイズを足した位置が、このオフセット値を超えないことを確認した後で書き出しを行う。
(3.3)メタボリュームヘの反映
トランザクションによって更新されたメタデータは、トランザクションが終了しログがログボリューム120に反映されるまでは書き出されてはならない。そのために、メタキャッシュ130上の各メタデータはそれぞれの状態に応じてリストに繋がれ、唯一メタボリュームヘの反映が許可されているリストはメタライトリストである。
【0268】
時間のかかるI/O要求をトランザクション内で行うことを避けるために、メタデータのメタボリュームヘの反映はトランザクションとは関係ないところで動作するデーモンに委ねる。このデーモンはメタライトリストだけを意識し、metalist構造体内の情報から状態に応じてI/O発行するかどうかを決定し、関連付けられたbuf構造体を用いてメタデータをメタボリュームヘ反映する。
【0269】
デーモンはメタライトリストに繋がれたメタデータを書き出した後、そのメタデータをリストから外し、cleanであると設定する。
(3.4)メタライトデーモン
メタライトデーモン104は、マウント時に起動され、アンマウント時に停止する。すなわち、ファイルシステム毎にスレッドを起動する。
【0270】
ログ書き出しの終わったトランザクションが更新したメタデータは、それを管理するmetalist構造体が全てメタライトリストに繋がれている。メタライトデーモン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に組み込まれた関数はメタライトリストの管理も行う。引数に渡されたbuf構造体の上を見るとそこはmetalist構造体になっており、そのフラグからI/O中フラグを落とし、メタライトリストから外す。また、メタデータをダーティ状態からclean状態へ変更する。これは、メタキャッシュ130で管理されるメタデータである場合には、それぞれの管理構造体で管理されており、この管理構造体はmetalist構造体からポイントされる。
【0281】
全ての処理が終了したら、このmetalist構造体をリリースする。
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-dirtyなビットマップからは獲得しないようにする。
【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 ログ書き込み手段
Claims (21)
- ログを用いてファイルシステムの不整合の修正を行うデータ処理装置において、
ファイルを管理するメタデータを記憶するための二次記憶装置である複数のメタボリュームと、
メタデータの更新結果であるログを記憶するための二次記憶装置であるログボリュームと、
メタデータを記憶するために主記憶装置内に設けられたメタキャッシュと、
メタデータの内容が変更される際に、対象となるメタデータを前記メタキャッシュへと読み込むメタデータ読み込み手段と、
前記メタキャッシュ内に読み込まれたメタデータの内容を更新するトランザクションと、
前記メタキャッシュに読み込まれたメタデータが格納されていたメタボリュームの識別情報を管理するメタデータ管理手段と、
前記メタキャッシュ内で変更されたメタデータの内容をログとして採取するとともに、採取したメタデータが格納されていたメタボリュームの識別情報を採取するログ採取手段と、
前記ログ採取手段が採取した情報を保持するログバッファと、
前記ログバッファが保持する情報を、適宜前記ログボリュームに格納するログ書き込み手段と、
を有することを特徴とするデータ処理装置。 - ログを用いてファイルシステムの不整合の修正を行うデータ処理装置において、
ファイルを管理するメタデータを記憶するための二次記憶装置であるメタボリュームと、
メタデータの更新結果であるログを記憶するための二次記憶装置であるログボリュームと、
メタデータを記憶するために主記憶装置内に設けられたメタキャッシュと、
メタデータの内容が変更される際に、対象となるメタデータを前記メタキャッシュへと読み込むメタデータ読み込み手段と、
前記メタキャッシュ内に読み込まれたメタデータの内容を更新するトランザクションと、
前記メタキャッシュ内で変更されたメタデータの内容をログとして採取するログ採取手段と、
前記ログ採取手段が採取した情報を保持するログバッファと、
前記ログボリューム内の領域を定期的に循環するようにして、前記ログバッファが保持する情報を前記ログボリュームに格納するログ書き込み手段と、
前記メタキャッシュ内のメタデータをメタボリューム内に格納するメタデータ書き込み手段と、
前記メタデータ書き込み手段による書き込み動作を監視しており、変更内容が前記メタボリュームに反映されていないメタデータに対応する前記ログボリューム内のログを、有効なログとして指定する有効範囲監視手段と、
ファイルシステム復元要求を受け取ると、前記ログボリュームに格納されたログの中で、前記有効範囲監視手段により有効なログとして指定されているログのみを用いて、前記メタボリューム内のメタデータの不整合を修正するファイルシステム復元手段と、
を有することを特徴とするデータ処理装置。 - ログを用いてファイルシステムの不整合の修正を行うデータ処理装置において、
ファイルを管理するメタデータを記憶するための二次記憶装置であるメタボリュームと、
メタデータの更新結果であるログを記憶するための二次記憶装置であるログボリュームと、
メタデータを記憶するために主記憶装置内に設けられたメタキャッシュと、
メタデータの内容が変更される際に、対象となるメタデータを前記メタキャッシュへと読み込むメタデータ読み込み手段と、
前記メタキャッシュ内に読み込まれたメタデータの内容を更新するトランザクションと、
前記メタキャッシュ内で変更されたメタデータの内容をログとして採取するログ採取手段と、
前記ログ採取手段が採取した情報を保持するログバッファと、
前記ログバッファが保持する情報を前記ログボリュームに格納するログ書き込み手段と、
前記ログボリュームに格納されたログを用いて前記メタボリューム内のメタデータの不整合を修正するファイルシステム復元手段と、
前記ファイルシステム復元手段が前記メタボリューム内のメタデータの不整合を修正した時に用いられたログの最後のシーケンス番号を記憶する初期シーケンス番号記憶手段と、
前記ログ書き込み手段がログの書き込みを行う際に、シーケンス番号を昇順で採番し、採番したシーケンス番号を書き込むべきログに付与しており、前記ファイルシステム復元手段が前記メタボリューム内のメタデータの不整合を修正した直後には、前記初期シーケンス番号記憶手段に格納されたシーケンス番号を基準として採番するシーケンス番号採番手段と、
を有することを特徴とするデータ処理装置。 - ログを用いてファイルシステムの不整合の修正を行うデータ処理装置において、
ファイルを管理するメタデータを記憶するための二次記憶装置であるメタボリュームと、
メタデータを記憶するために主記憶装置内に設けられたメタキャッシュと、
メタデータの内容が変更される際に、対象となるメタデータを前記メタキャッシュへと読み込むメタデータ読み込み手段と、
前記メタキャッシュ内に読み込まれたメタデータの内容を更新するトランザクションと、
前記トランザクションの種別を判断し、メタデータの更新を複数回行う可能性のあるトランザクションの場合には、前記メタキャッシュ内で変更されたメタデータの最終形態のみをログとして採取するログ採取手段と、
を有することを特徴とするデータ処理装置。 - ログを用いてファイルシステムの不整合の修正を行うデータ処理装置において、
メタデータに対する割り当てを管理するための割り当て管理情報を複数の領域に分割して保持する割り当て管理情報保持手段と、
前記割り当て管理情報保持手段内の割り当て管理情報の一部領域の複製を生成し、獲得操作用管理情報とするとともに、前記獲得操作用管理情報内に未獲得のメタデータがなくなると、割り当て管理情報の別の領域の複製を前記獲得操作用管理情報とする獲得操作用管理情報生成手段と、
メタデータの獲得及び解放要求を出力するトランザクションと、
前記トランザクションによりメタデータの獲得要求が出された場合には、前記獲得操作用管理情報の中の未獲得のメタデータを獲得し、獲得したメタデータを獲得済みとするように前記獲得操作用管理情報と前記割り当て管理情報との内容を変更するメタデータ獲得手段と、
前記トランザクションによりメタデータの解放要求が出された場合には、指定されたメタデータが未獲得の状態となるように、前記割り当て管理情報の内容を変更するメタデータ解放手段と、
を有することを特徴とするデータ処理装置。 - ログを用いてファイルシステムの不整合の修正を行うデータ処理装置において、
メタデータに対する割り当てを管理するための割り当て管理情報を保持する割り当て管理情報保持手段と、
メタデータの獲得及び解放要求を出力するトランザクションと、
前記トランザクションによりメタデータの獲得要求が出された場合には、前記割り当て管理情報の中の未獲得のメタデータを獲得し、獲得したメタデータを獲得済みとするように前記割り当て管理情報の内容を変更するメタデータ獲得手段と、
前記トランザクションによりメタデータの解放要求が出された場合には、指定されたメタデータ未獲得の状態となるように、前記割り当て管理情報の内容を変更するメタデータ解放手段と、
前記割り当て管理情報内の前記メタデータ獲得手段及び前記メタデータ解放手段によって変更された部分の情報をログとして採取するログ採取手段と、
を有することを特徴とするデータ処理装置。 - ログを用いてファイルシステムの不整合の修正を行うデータ処理装置において、
ファイルを管理するメタデータを記憶するための二次記憶装置であるメタボリュームと、
メタデータを記憶するために主記憶装置内に設けられたメタキャッシュと、
メタデータの内容が変更される際に、対象となるメタデータを前記メタキャッシュへと読み込むメタデータ読み込み手段と、
前記メタキャッシュ内に読み込まれたメタデータの内容を更新する複数のトランザクションと、
ログをトランザクション毎に保持する、サイズの異なる複数のログバッファと、
前記メタキャッシュ内で変更されたメタデータの内容をログとして採取し、前記トランザクション毎に分けて前記ログバッファに格納するログ採取手段と、
を有することを特徴とするデータ処理装置。 - 前記ログ採取手段は、最初にログを格納する場合には、トランザクションの内容によって予想される処理に適した大きさの前記ログバッファに格納し、格納対象となる前記ログバッファの記憶容量が不足してきたら、より大きな記憶容量のログバッファへログを移し替え、以後、より大きな記憶容量のログバッファをログの格納対象とすることを特徴とする請求項7記載のデータ処理装置。
- ログを用いてファイルシステムの不整合の修正を行うデータ処理装置において、
ファイルを管理するメタデータを記憶するための二次記憶装置であるメタボリュームと、
メタデータの更新結果であるログを記憶するための二次記憶装置であるログボリュームと、
メタデータを記憶するために主記憶装置内に設けられたメタキャッシュと、
メタデータの内容が変更される際に、対象となるメタデータを前記メタキャッシュへと読み込むメタデータ読み込み手段と、
前記メタキャッシュ内に読み込まれたメタデータの内容を更新するトランザクションと、
ログをトランザクション毎に保持するログバッファと、
前記メタキャッシュ内で変更されたメタデータの内容をログとして採取し、前記ログバッファに格納するログ採取手段と、
前記トランザクションが終了した場合に前記ログバッファの内容を前記ログボリュームに書き込むとともに、前記トランザクションによるログが前記ログバッファ内に格納しきれない場合には、前記ログバッファ内のデータを完結したログに加工し、中間ログとして前記ログボリューム内に格納するログ書き込み手段と、
を有することを特徴とするデータ処理装置。 - 前記ログ書き込み手段は、前記中間ログに対して、トランザクションを実行するのに必要とされたパラメタに関する情報を付加し、
ファイルシステム復元要求を受け取ると、前記ログボリュームに格納されたログを用いて、前記メタボリューム内のメタデータの不整合を修正するとともに、前記中間ログを発見すると、前記中間ログに含まれたパラメタを用いて、前記トランザクションを再実行させるファイルシステム復元手段をさらに有することを特徴とする請求項9記載のデータ処理装置。 - ログを用いてファイルシステムの不整合の修正を行うデータ処理装置において、
ファイルを管理するメタデータを記憶するための二次記憶装置であるメタボリュームと、
メタデータの更新結果であるログを記憶するための二次記憶装置であるログボリュームと、
メタデータを記憶するために主記憶装置内に設けられたメタキャッシュと、
メタデータの内容が変更される際に、対象となるメタデータを前記メタキャッシュへと読み込むメタデータ読み込み手段と、
前記メタキャッシュ内に読み込まれたメタデータの内容を更新する、複数同時実行可能なトランザクションと、
前記トランザクションからの開始要求を受け付けると、ログ採取に関するシステムの動作状況を判断し、前記トランザクションの受け入れ許否を判断するトランザクション受け入れ判断手段と、
前記メタキャッシュ内で変更されたメタデータの内容をログとして採取するログ採取手段と、
前記ログ採取手段が採取した情報を保持するログバッファと、
前記ログバッファが保持する情報を、適宜前記ログボリュームに格納するログ書き込み手段と、
を有することを特徴とするデータ処理装置。 - 前記メタキャッシュ内のメタデータをメタボリューム内に格納するメタデータ書き込み手段と、
前記メタデータ書き込み手段による書き込み動作を監視しており、変更内容が前記メタボリュームに反映されていないメタデータに対応する前記ログボリューム内のログを、有効なログとして指定する有効範囲監視手段とをさらに有し、
前記トランザクション受け入れ判断手段は、前記有効範囲監視手段によって有効なログとされたログがログボリューム中に占める割合が一定値以上である間は、前記トランザクションの受け入れを拒絶することを特徴とする請求項11記載のデータ処理装置。 - ログを用いてファイルシステムの不整合の修正を行うファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体において、ファイルを管理するメタデータを記憶するための二次記憶装置である複数のメタボリューム、
メタデータの更新結果であるログを記憶するための二次記憶装置であるログボリューム、
メタデータを記憶するために主記憶装置内に設けられたメタキャッシュ、
メタデータの内容が変更される際に、対象となるメタデータを前記メタキャッシュへと読み込むメタデータ読み込み手段、
前記メタキャッシュ内に読み込まれたメタデータの内容を更新するトランザクション、
前記メタキャッシュに読み込まれたメタデータが格納されていたメタボリュームの識別情報を管理するメタデータ管理手段、
前記メタキャッシュ内で変更されたメタデータの内容をログとして採取するとともに、採取したメタデータが格納されていたメタボリュームの識別情報を採取するログ採取手段、
前記ログ採取手段が採取した情報を保持するログバッファ、
前記ログバッファが保持する情報を、適宜前記ログボリュームに格納するログ書き込み手段、
としてコンピュータを機能させることを特徴とするファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体。 - ログを用いてファイルシステムの不整合の修正を行うファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
ファイルを管理するメタデータを記憶するための二次記憶装置であるメタボリューム、
メタデータの更新結果であるログを記憶するための二次記憶装置であるログボリューム、
メタデータを記憶するために主記憶装置内に設けられたメタキャッシュ、
メタデータの内容が変更される際に、対象となるメタデータを前記メタキャッシュへと読み込むメタデータ読み込み手段、
前記メタキャッシュ内に読み込まれたメタデータの内容を更新するトランザクション、
前記メタキャッシュ内で変更されたメタデータの内容をログとして採取するログ採取手段、
前記ログ採取手段が採取した情報を保持するログバッファ、
前記ログボリューム内の領域を定期的に循環するようにして、前記ログバッファが保持する情報を前記ログボリュームに格納するログ書き込み手段、
前記メタキャッシュ内のメタデータをメタボリューム内に格納するメタデータ書き込み手段、
前記メタデータ書き込み手段による書き込み動作を監視しており、変更内容が前記メタボリュームに反映されていないメタデータに対応する前記ログボリューム内のログを、有効なログとして指定する有効範囲監視手段、
ファイルシステム復元要求を受け取ると、前記ログボリュームに格納されたログの中で、前記有効範囲監視手段により有効なログとして指定されているログのみを用いて、前記メタボリューム内のメタデータの不整合を修正するファイルシステム復元手段、
としてコンピュータを機能させることを特徴とするファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体。 - ログを用いてファイルシステムの不整合の修正を行うファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
ファイルを管理するメタデータを記憶するための二次記憶装置であるメタボリューム、
メタデータの更新結果であるログを記憶するための二次記憶装置であるログボリューム、
メタデータを記憶するために主記憶装置内に設けられたメタキャッシュ、
メタデータの内容が変更される際に、対象となるメタデータを前記メタキャッシュへと読み込むメタデータ読み込み手段、
前記メタキャッシュ内に読み込まれたメタデータの内容を更新するトランザクション、
前記メタキャッシュ内で変更されたメタデータの内容をログとして採取するログ採取手段、
前記ログ採取手段が採取した情報を保持するログバッファ、
前記ログバッファが保持する情報を前記ログボリュームに格納するログ書き込み手段、
前記ログボリュームに格納されたログを用いて前記メタボリューム内のメタデータの不整合を修正するファイルシステム復元手段、
前記ファイルシステム復元手段が前記メタボリューム内のメタデータの不整合を修正した時に用いられたログの最後のシーケンス番号を記憶する初期シーケンス番号記憶手段、
前記ログ書き込み手段がログの書き込みを行う際に、システムの使用可能年数以上使い続けることができる値を最大値としたシーケンス番号を昇順で採番し、書き込むべきログに付与しており、前記ファイルシステム復元手段が前記メタボリューム内のメタデータの不整合を修正した直後には、前記初期シーケンス番号記憶手段に格納されたシーケンス番号から昇順で採番するシーケンス番号採番手段、
としてコンピュータを機能させることを特徴とするファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体。 - ログを用いてファイルシステムの不整合の修正を行うファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
ファイルを管理するメタデータを記憶するための二次記憶装置であるメタボリューム、
メタデータを記憶するために主記憶装置内に設けられたメタキャッシュ、
メタデータの内容が変更される際に、対象となるメタデータを前記メタキャッシュへと読み込むメタデータ読み込み手段、
前記メタキャッシュ内に読み込まれたメタデータの内容を更新するトランザクション、
前記トランザクションの種別を判断し、メタデータの更新を複数回行う可能性のあるトランザクションの場合には、前記メタキャッシュ内で変更されたメタデータの最終形態のみをログとして採取するログ採取手段、
としてコンピュータを機能させることを特徴とするファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体。 - ログを用いてファイルシステムの不整合の修正を行うファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
メタデータに対する割り当てを管理するための割り当て管理情報を複数の領域に分割して保持する割り当て管理情報保持手段、
前記割り当て管理情報保持手段内の割り当て管理情報の一部領域の複製を生成し、獲得操作用管理情報とするとともに、前記獲得操作用管理情報内に未獲得のメタデータがなくなると、割り当て管理情報の別の領域の複製を前記獲得操作用管理情報とする獲得操作用管理情報生成手段、
メタデータの獲得及び解放要求を出力するトランザクション、
前記トランザクションによりメタデータの獲得要求が出された場合には、前記獲得操作用管理情報の中の未獲得のメタデータを獲得し、獲得したメタデータを獲得済みとするように前記獲得操作用管理情報と前記割り当て管理情報との内容を変更するメタデータ獲得手段、
前記トランザクションによりメタデータの解放要求が出された場合には、指定されたメタデータが未獲得の状態となるように、前記割り当て管理情報の内容を変更するメタデータ解放手段、
としてコンピュータを機能させることを特徴とするファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体。 - ログを用いてファイルシステムの不整合の修正を行うファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体において、メタデータに対する割り当てを管理するための割り当て管理情報を保持する割り当て管理情報保持手段、
メタデータの獲得及び解放要求を出力するトランザクション、
前記トランザクションによりメタデータの獲得要求が出された場合には、前記割り当て管理情報の中の未獲得のメタデータを獲得し、獲得したメタデータを獲得済みとするように前記割り当て管理情報の内容を変更するメタデータ獲得手段、
前記トランザクションによりメタデータの解放要求が出された場合には、指定されたメタデータ未獲得の状態となるように、前記割り当て管理情報の内容を変更するメタデータ解放手段、
前記割り当て管理情報内の前記メタデータ獲得手段及び前記メタデータ解放手段によって変更された部分の情報をログとして採取するログ採取手段、
としてコンピュータを機能させることを特徴とするファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体。 - ログを用いてファイルシステムの不整合の修正を行うファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
ファイルを管理するメタデータを記憶するための二次記憶装置であるメタボリューム、
メタデータを記憶するために主記憶装置内に設けられたメタキャッシュ、
メタデータの内容が変更される際に、対象となるメタデータを前記メタキャッシュへと読み込むメタデータ読み込み手段、
前記メタキャッシュ内に読み込まれたメタデータの内容を更新する複数のトランザクション、
ログをトランザクション毎に保持する、サイズの異なる複数のログバッファ、
前記メタキャッシュ内で変更されたメタデータの内容をログとして採取し、前記トランザクション毎に分けて前記ログバッファに格納するログ採取手段、
としてコンピュータを機能させることを特徴とするファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体。 - ログを用いてファイルシステムの不整合の修正を行うファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
ファイルを管理するメタデータを記憶するための二次記憶装置であるメタボリューム、
メタデータの更新結果であるログを記憶するための二次記憶装置であるログボリューム、
メタデータを記憶するために主記憶装置内に設けられたメタキャッシュ、
メタデータの内容が変更される際に、対象となるメタデータを前記メタキャッシュへと読み込むメタデータ読み込み手段、
前記メタキャッシュ内に読み込まれたメタデータの内容を更新するトランザクション、
ログをトランザクション毎に保持するログバッファ、
前記メタキャッシュ内で変更されたメタデータの内容をログとして採取し、前記ログバッファに格納するログ採取手段、
前記トランザクションが終了した場合に前記ログバッファの内容を前記ログボリュームに書き込むとともに、前記トランザクションによるログが前記ログバッファ内に格納しきれない場合には、前記ログバッファ内のデータを完結したログに加工し、中間ログとして前記ログボリューム内に格納するログ書き込み手段、
としてコンピュータを機能させることを特徴とするファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体。 - ログを用いてファイルシステムの不整合の修正を行うファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
ファイルを管理するメタデータを記憶するための二次記憶装置であるメタボリューム、
メタデータの更新結果であるログを記憶するための二次記憶装置であるログボリューム、
メタデータを記憶するために主記憶装置内に設けられたメタキャッシュと、
メタデータの内容が変更される際に、対象となるメタデータを前記メタキャッシュへと読み込むメタデータ読み込み手段、
前記メタキャッシュ内に読み込まれたメタデータの内容を更新する、複数同時実行可能なトランザクション、
前記トランザクションからの開始要求を受け付けると、ログ採取に関するシステムの動作状況を判断し、前記トランザクションの受け入れ許否を判断するトランザクション受け入れ判断手段、
前記メタキャッシュ内で変更されたメタデータの内容をログとして採取するログ採取手段、
前記ログ採取手段が採取した情報を保持するログバッファ、
前記ログバッファが保持する情報を、適宜前記ログボリュームに格納するログ書き込み手段、
としてコンピュータを機能させることを特徴とするファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
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 JP2000284995A (ja) | 2000-10-13 |
JP3763992B2 true 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) |
Families Citing this family (459)
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 |
US9361243B2 (en) | 1998-07-31 | 2016-06-07 | Kom Networks Inc. | Method and system for providing restricted access to a storage medium |
US8234477B2 (en) | 1998-07-31 | 2012-07-31 | 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 |
US7035880B1 (en) | 1999-07-14 | 2006-04-25 | Commvault Systems, Inc. | Modular backup and retrieval system used in conjunction with a storage area network |
CN100435569C (zh) * | 1999-07-14 | 2008-11-19 | 松下电器产业株式会社 | 信息提供装置、信息提供方法以及信息通信系统 |
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 |
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 |
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 |
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 |
US6636879B1 (en) * | 2000-08-18 | 2003-10-21 | Network Appliance, Inc. | Space allocation in a write anywhere file system |
US7072916B1 (en) * | 2000-08-18 | 2006-07-04 | Network Appliance, Inc. | Instant snapshot |
CN1292370C (zh) * | 2000-10-09 | 2006-12-27 | 最佳收益有限公司 | 从源系统复制信息到目标系统的方法 |
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 |
WO2002084482A1 (en) * | 2001-04-12 | 2002-10-24 | W. Quinn, Inc. | 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 |
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 |
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 |
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 |
US8010558B2 (en) | 2001-06-05 | 2011-08-30 | Silicon Graphics International | Relocation of metadata server with outstanding DMAPI requests |
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 |
GB2378781B (en) * | 2001-08-16 | 2005-06-01 | Sun Microsystems Inc | Message brokering |
GB2378782B (en) * | 2001-08-16 | 2005-04-13 | 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 |
WO2003055119A2 (en) * | 2001-12-06 | 2003-07-03 | New York University | Logic arrangement, data structure, system and method for multilinear representation of multimodal data ensembles for synthesis, recognition and compression |
US7047358B2 (en) * | 2001-12-26 | 2006-05-16 | Boon Storage Technologies, Inc. | High-performance log-structured RAID |
US20030131253A1 (en) * | 2001-12-28 | 2003-07-10 | Martin Marcia Reid | Data management appliance |
US7036043B2 (en) * | 2001-12-28 | 2006-04-25 | Storage Technology Corporation | Data management with virtual recovery mapping and backward moves |
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 |
EP1507246B1 (en) * | 2002-05-17 | 2018-07-18 | Clarion Co., Ltd. | 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 |
EP1369804B1 (en) | 2002-06-03 | 2007-11-14 | Thomson Licensing | Method for controlling the propagation of metadata items |
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 |
JP4393762B2 (ja) * | 2002-12-19 | 2010-01-06 | 株式会社日立製作所 | データベース処理方法及び装置並びにその処理プログラム |
JP4290975B2 (ja) * | 2002-12-19 | 2009-07-08 | 株式会社日立製作所 | データベース処理方法及び装置並びにその処理プログラム及びディザスタリカバリ方法及びシステム |
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 | 株式会社日立製作所 | 情報処理方法及びその実施システム並びにその処理プログラム並びにディザスタリカバリ方法およびシステム並びにその処理を実施する記憶装置およびその制御処理方法 |
AU2004227949B9 (en) | 2003-04-03 | 2010-07-22 | 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 |
US7010721B2 (en) * | 2003-09-29 | 2006-03-07 | International Business Machines Corporation | File system journal management |
US8595185B2 (en) * | 2003-09-29 | 2013-11-26 | International Business Machines Corporation | Storage disaster recovery using a predicted superset of unhardened primary data |
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 |
JP2005115857A (ja) | 2003-10-10 | 2005-04-28 | Sony Corp | ファイル記憶装置 |
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 |
US7721062B1 (en) | 2003-11-10 | 2010-05-18 | Netapp, Inc. | Method for detecting leaked buffer writes across file system consistency points |
US7401093B1 (en) * | 2003-11-10 | 2008-07-15 | Network Appliance, Inc. | System and method for managing file data during consistency points |
US7613748B2 (en) * | 2003-11-13 | 2009-11-03 | Commvault Systems, Inc. | Stored data reverification management system and method |
WO2005050489A1 (en) * | 2003-11-13 | 2005-06-02 | Commvault Systems, Inc. | System and method for stored data archive verification |
WO2005050381A2 (en) | 2003-11-13 | 2005-06-02 | Commvault Systems, Inc. | Systems and methods for performing storage operations using network attached storage |
US7529782B2 (en) | 2003-11-13 | 2009-05-05 | 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 |
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 |
US7624109B2 (en) * | 2004-02-27 | 2009-11-24 | Texas Memory Systems, 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 |
JP4561168B2 (ja) * | 2004-04-28 | 2010-10-13 | 株式会社日立製作所 | データ処理システムおよび方法並びにその処理プログラム |
US8266406B2 (en) | 2004-04-30 | 2012-09-11 | Commvault Systems, Inc. | System and method for allocation of organizational resources |
US7343356B2 (en) | 2004-04-30 | 2008-03-11 | Commvault Systems, Inc. | Systems and methods for storage modeling and costing |
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 |
WO2006041260A1 (en) * | 2004-10-13 | 2006-04-20 | Electronics And Telecommunications Research Institute | Extended multimedia file structure and multimedia file producting method and multimedia file executing method |
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 |
US7499954B2 (en) * | 2004-11-01 | 2009-03-03 | International Business Machines Corporation | Consistent reintegration of a failed primary instance |
US7403945B2 (en) * | 2004-11-01 | 2008-07-22 | Sybase, Inc. | Distributed database system providing data and space management methodology |
US7765369B1 (en) | 2004-11-05 | 2010-07-27 | Commvault Systems, Inc. | Method and system for selectively deleting stored data |
US8566326B2 (en) * | 2004-11-05 | 2013-10-22 | Oracle International Corporation | High-performance log-based processing |
US7490207B2 (en) * | 2004-11-08 | 2009-02-10 | Commvault Systems, Inc. | System and method for performing auxillary storage operations |
US20060136508A1 (en) * | 2004-12-16 | 2006-06-22 | Sam Idicula | Techniques for providing locks for file operations in a database management system |
JP4681868B2 (ja) * | 2004-12-16 | 2011-05-11 | キヤノン株式会社 | 情報処理装置及びその制御方法、コンピュータプログラム及び記憶媒体 |
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 |
US7627574B2 (en) * | 2004-12-16 | 2009-12-01 | Oracle International Corporation | Infrastructure for performing file operations by a database server |
US7716260B2 (en) * | 2004-12-16 | 2010-05-11 | Oracle International Corporation | Techniques for transaction semantics for a database server performing file operations |
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 |
US7809675B2 (en) * | 2005-06-29 | 2010-10-05 | Oracle International Corporation | Sharing state information among a plurality of file operation servers |
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 |
US8959125B2 (en) | 2005-07-01 | 2015-02-17 | 226008 Ontario Inc. | File system having inverted hierarchical structure |
US7873683B2 (en) * | 2005-07-01 | 2011-01-18 | Qnx Software Systems Gmbh & Co. Kg | File system having transaction record coalescing |
US7970803B2 (en) * | 2005-07-01 | 2011-06-28 | Qnx Software Systems Gmbh & Co. Kg | Optimized startup verification of file system integrity |
US7809777B2 (en) * | 2005-07-01 | 2010-10-05 | Qnx Software Systems Gmbh & Co. Kg | File system having deferred verification of data 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 | 株式会社日立製作所 | 記憶容量を効率的に使用する計算機システム |
US7937393B2 (en) | 2005-11-28 | 2011-05-03 | Commvault Systems, Inc. | Systems and methods for classifying and transferring information in a storage network |
US20070185926A1 (en) * | 2005-11-28 | 2007-08-09 | Anand Prahlad | 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 |
US7661028B2 (en) * | 2005-12-19 | 2010-02-09 | Commvault Systems, Inc. | Rolling cache configuration for a data replication system |
US8930496B2 (en) | 2005-12-19 | 2015-01-06 | Commvault Systems, Inc. | Systems and methods of unified reconstruction in storage systems |
US8572330B2 (en) | 2005-12-19 | 2013-10-29 | Commvault Systems, Inc. | Systems and methods for granular resource management in a storage network |
US7620710B2 (en) | 2005-12-19 | 2009-11-17 | Commvault Systems, Inc. | System and method for performing multi-path storage operations |
US7617253B2 (en) * | 2005-12-19 | 2009-11-10 | Commvault Systems, Inc. | Destination 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 |
US7606844B2 (en) | 2005-12-19 | 2009-10-20 | Commvault Systems, Inc. | System and method for performing replication copy storage operations |
US7636743B2 (en) | 2005-12-19 | 2009-12-22 | Commvault Systems, Inc. | Pathname translation in a data replication system |
US8655850B2 (en) | 2005-12-19 | 2014-02-18 | Commvault Systems, Inc. | Systems and methods for resynchronizing information |
US20200257596A1 (en) | 2005-12-19 | 2020-08-13 | Commvault Systems, Inc. | Systems and methods of unified reconstruction in storage systems |
US7651593B2 (en) | 2005-12-19 | 2010-01-26 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US20110010518A1 (en) | 2005-12-19 | 2011-01-13 | Srinivas Kavuri | Systems and Methods for Migrating Components in a Hierarchical Storage Network |
US7543125B2 (en) * | 2005-12-19 | 2009-06-02 | Commvault Systems, Inc. | System and method for performing time-flexible calendric storage operations |
US7962709B2 (en) * | 2005-12-19 | 2011-06-14 | Commvault Systems, Inc. | Network redirector systems and methods for performing data replication |
US7693864B1 (en) * | 2006-01-03 | 2010-04-06 | Netapp, Inc. | System and method for quickly determining changed metadata using persistent consistency point image differencing |
KR100781515B1 (ko) * | 2006-01-10 | 2007-12-03 | 삼성전자주식회사 | 트랜잭션 처리를 위한 로그 정보 관리 시스템 및 방법 |
JP4699516B2 (ja) * | 2006-03-28 | 2011-06-15 | 富士通株式会社 | 名前空間複製プログラム、名前空間複製装置、名前空間複製方法 |
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 |
US7797329B2 (en) * | 2006-06-09 | 2010-09-14 | Oracle America Inc. | Method and system for enabling a synchronization-free and parallel commit phase |
US7478210B2 (en) * | 2006-06-09 | 2009-01-13 | Intel Corporation | Memory reclamation with optimistic concurrency |
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 |
JP2008040699A (ja) * | 2006-08-04 | 2008-02-21 | Fujitsu Ltd | Hsm制御プログラム、hsm制御装置、hsm制御方法 |
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 |
US8566503B2 (en) * | 2006-08-25 | 2013-10-22 | Qnx Software Systems Limited | Multimedia filesystem having unified representation of content on diverse multimedia devices |
US20080059510A1 (en) * | 2006-08-31 | 2008-03-06 | Daniel Cardamore | Multimedia system framework having layer consolidating access to multiple media 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 |
KR101354152B1 (ko) * | 2006-12-18 | 2014-01-27 | 삼성전자주식회사 | 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치 |
US8677091B2 (en) * | 2006-12-18 | 2014-03-18 | Commvault Systems, Inc. | Writing data and storage system specific metadata to network attached storage device |
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 |
US8301673B2 (en) * | 2006-12-29 | 2012-10-30 | Netapp, Inc. | System and method for performing distributed consistency verification of a clustered file system |
US8918427B1 (en) | 2006-12-29 | 2014-12-23 | Symantec Operating Corporation | Virtualization of file input/output operations |
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 |
US7827350B1 (en) | 2007-04-27 | 2010-11-02 | Netapp, Inc. | Method and system for promoting a snapshot in a distributed file system |
US7882304B2 (en) * | 2007-04-27 | 2011-02-01 | Netapp, Inc. | System and method for efficient updates of sequential block storage |
US8219749B2 (en) * | 2007-04-27 | 2012-07-10 | Netapp, Inc. | System and method for efficient updates of sequential block storage |
US8819080B2 (en) * | 2007-06-13 | 2014-08-26 | The Boeing Company | System and method for collection, retrieval, and distribution of data |
US20090013213A1 (en) * | 2007-07-03 | 2009-01-08 | Adaptec, Inc. | Systems and methods for intelligent disk rebuild and logical grouping of san storage zones |
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 |
US8442983B2 (en) | 2009-12-31 | 2013-05-14 | 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 |
US8489656B2 (en) | 2010-05-28 | 2013-07-16 | 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 |
WO2012032727A1 (en) * | 2010-09-09 | 2012-03-15 | Nec Corporation | Storage system |
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 |
US8954664B1 (en) * | 2010-10-01 | 2015-02-10 | Western Digital Technologies, Inc. | Writing metadata files on a disk |
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 |
US10754813B1 (en) * | 2011-06-30 | 2020-08-25 | Amazon Technologies, Inc. | Methods and apparatus for block storage I/O operations in a storage gateway |
US8706834B2 (en) | 2011-06-30 | 2014-04-22 | Amazon Technologies, Inc. | Methods and apparatus for remotely updating executing processes |
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 |
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 |
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 | 杭州丰城信息技术有限公司 | 一种内存数据库重做日志文件的恢复方法 |
US9298715B2 (en) | 2012-03-07 | 2016-03-29 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9471578B2 (en) | 2012-03-07 | 2016-10-18 | 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 |
KR101997572B1 (ko) * | 2012-06-01 | 2019-07-09 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법 |
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 |
US10013166B2 (en) | 2012-12-20 | 2018-07-03 | Amazon Technologies, Inc. | Virtual tape library system |
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 |
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 |
US9430491B2 (en) | 2013-01-11 | 2016-08-30 | Commvault Systems, Inc. | Request-based data synchronization management |
US9886346B2 (en) | 2013-01-11 | 2018-02-06 | Commvault Systems, Inc. | Single snapshot for multiple agents |
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 |
US9229864B1 (en) * | 2013-03-15 | 2016-01-05 | Emc Corporation | Managing metadata synchronization for reducing host system latency in a storage system |
US9501501B2 (en) | 2013-03-15 | 2016-11-22 | Amazon Technologies, Inc. | Log record management |
US9514007B2 (en) | 2013-03-15 | 2016-12-06 | Amazon Technologies, Inc. | Database system with database engine and separate distributed storage service |
US10180951B2 (en) * | 2013-03-15 | 2019-01-15 | Amazon Technologies, Inc. | Place snapshots |
US11030055B2 (en) | 2013-03-15 | 2021-06-08 | Amazon Technologies, Inc. | Fast crash recovery for distributed database systems |
US9672237B2 (en) | 2013-03-15 | 2017-06-06 | Amazon Technologies, Inc. | System-wide checkpoint avoidance for distributed database systems |
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 |
US20150081644A1 (en) * | 2013-07-16 | 2015-03-19 | 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 |
US9460008B1 (en) | 2013-09-20 | 2016-10-04 | Amazon Technologies, Inc. | Efficient garbage collection for a log-structured data store |
US10216949B1 (en) | 2013-09-20 | 2019-02-26 | Amazon Technologies, Inc. | Dynamic quorum membership changes |
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 |
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 |
US9753812B2 (en) | 2014-01-24 | 2017-09-05 | Commvault Systems, Inc. | Generating mapping information for single snapshot for multiple applications |
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 |
CN107111627B (zh) * | 2014-11-10 | 2021-04-09 | 慧与发展有限责任合伙企业 | 在线文件系统检查 |
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 |
US9965360B2 (en) | 2014-11-25 | 2018-05-08 | Sap Se | RowID-based data synchronization for asynchronous table replication |
CN105740303B (zh) | 2014-12-12 | 2019-09-06 | 国际商业机器公司 | 改进的对象存储的方法及装置 |
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 |
US9665585B2 (en) | 2015-01-23 | 2017-05-30 | International Business Machines Corporation | Preserving high value entries in an event log |
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 |
WO2017090071A1 (en) * | 2015-11-27 | 2017-06-01 | 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 |
US10284673B2 (en) | 2016-04-01 | 2019-05-07 | Arista Networks, Inc. | Interface for a client of a network device |
US10783147B2 (en) | 2016-04-01 | 2020-09-22 | Arista Networks, Inc. | Query result flow control in a network switch |
US10261949B2 (en) | 2016-04-01 | 2019-04-16 | Arista Networks, Inc. | Packed row representation for efficient network serialization with direct column indexing in a network switch |
US10860568B2 (en) | 2016-04-01 | 2020-12-08 | Arista Networks, Inc. | External data source linking to queries in memory |
US10642844B2 (en) | 2016-04-01 | 2020-05-05 | Arista Networks, Inc. | Non-materialized tables with standing queries |
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 |
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 |
US10666569B1 (en) | 2016-09-23 | 2020-05-26 | Amazon Technologies, Inc. | Journal service with named clients |
US10805238B1 (en) | 2016-09-23 | 2020-10-13 | Amazon Technologies, Inc. | Management of alternative resources |
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 |
US10747630B2 (en) | 2016-09-30 | 2020-08-18 | Commvault Systems, Inc. | Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including operations by a master monitor node |
US10540516B2 (en) | 2016-10-13 | 2020-01-21 | Commvault Systems, Inc. | Data protection within an unsecured storage environment |
US10389810B2 (en) | 2016-11-02 | 2019-08-20 | Commvault Systems, Inc. | Multi-threaded scanning of distributed file systems |
US10922189B2 (en) * | 2016-11-02 | 2021-02-16 | Commvault Systems, Inc. | Historical network data-based scanning thread generation |
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 |
US10642886B2 (en) | 2018-02-14 | 2020-05-05 | Commvault Systems, Inc. | Targeted search of backup data using facial recognition |
US10732885B2 (en) | 2018-02-14 | 2020-08-04 | Commvault Systems, Inc. | Block-level live browsing and private writable snapshots using an ISCSI server |
US11048590B1 (en) | 2018-03-15 | 2021-06-29 | Pure Storage, Inc. | Data consistency during recovery in a cloud-based storage system |
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 |
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 |
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 |
CN110719233B (zh) * | 2019-10-11 | 2023-10-31 | 北京百度网讯科技有限公司 | 用于发送信息的方法及装置 |
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 |
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 |
CN113448772B (zh) * | 2020-11-23 | 2023-08-11 | 北京新氧科技有限公司 | 一种精细化数据回滚方法及装置 |
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 |
US11928352B2 (en) | 2021-05-05 | 2024-03-12 | Netapp, Inc. | Maintaining the benefit of parallel splitting of ops between primary and secondary storage clusters in synchronous replication while adding support for op logging and early engagement of op logging |
US20230032678A1 (en) * | 2021-07-29 | 2023-02-02 | Micro Focus Llc | Abnormality detection in log entry collection |
US11593223B1 (en) | 2021-09-02 | 2023-02-28 | Commvault Systems, Inc. | Using resource pool administrative entities in a data storage management system to provide shared infrastructure to tenants |
US11892982B2 (en) | 2021-10-20 | 2024-02-06 | Netapp, Inc. | Facilitating immediate performance of volume resynchronization with the use of passive cache entries |
US11809285B2 (en) | 2022-02-09 | 2023-11-07 | Commvault Systems, Inc. | Protecting a management database of a data storage management system to meet a recovery point objective (RPO) |
US11726916B1 (en) * | 2022-04-27 | 2023-08-15 | EMC IP Holding Company, LLC | Method, computer program product, and computing system for defining a normal IO write mode and handling requests to enter a testing IO write mode |
US11907562B2 (en) | 2022-07-11 | 2024-02-20 | Netapp, Inc. | Methods and storage nodes to decrease delay in resuming input output (I/O) operations after a non-disruptive event for a storage object of a distributed storage system by utilizing asynchronous inflight replay of the I/O operations |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06124223A (ja) * | 1991-03-28 | 1994-05-06 | Texas Instr Inc <Ti> | ディスクファイルシステムのログ装置および方法 |
US5715447A (en) * | 1991-08-06 | 1998-02-03 | Fujitsu Limited | Method of and an apparatus for shortening a lock period of a shared buffer |
US5530855A (en) * | 1992-10-13 | 1996-06-25 | International Business Machines Corporation | Replicating a database by the sequential application of hierarchically sorted log records |
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 |
US5870757A (en) | 1995-09-11 | 1999-02-09 | Sun Microsystems, Inc. | Single transaction technique for a journaling file system of a computer operating system |
EP0972247B1 (en) * | 1996-08-02 | 2004-03-17 | Hewlett-Packard Company | Method and apparatus for allowing distributed control of shared resources |
US5832516A (en) * | 1997-01-21 | 1998-11-03 | Oracle Corporation | Caching data in recoverable objects |
US5897661A (en) * | 1997-02-25 | 1999-04-27 | International Business Machines Corporation | Logical volume manager and method having enhanced update capability with dynamic allocation of storage and minimal storage of metadata information |
US6119208A (en) * | 1997-04-18 | 2000-09-12 | Storage Technology Corporation | MVS device backup system for a data processor using a data storage subsystem snapshot copy capability |
US5897641A (en) * | 1997-05-13 | 1999-04-27 | International Business Machines Corporation | Application of log records to data compressed with different encoding scheme |
US6144999A (en) * | 1998-05-29 | 2000-11-07 | Sun Microsystems, Incorporated | Method and apparatus for file system disaster recovery |
US6185663B1 (en) * | 1998-06-15 | 2001-02-06 | Compaq Computer Corporation | Computer method and apparatus for file system block allocation with multiple redo |
US6341341B1 (en) * | 1999-12-16 | 2002-01-22 | Adaptec, Inc. | System and method for disk control with snapshot feature including read-write snapshot half |
-
1999
- 1999-03-30 JP JP08745799A patent/JP3763992B2/ja not_active Expired - Fee Related
-
2000
- 2000-02-09 US US09/501,568 patent/US6732124B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000284995A (ja) | 2000-10-13 |
US6732124B1 (en) | 2004-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3763992B2 (ja) | データ処理装置及び記録媒体 | |
US7266669B2 (en) | File system with file management function and file management method | |
JP2679779B2 (ja) | トランザクション処理方法及び装置 | |
Chan et al. | The implementation of an integrated concurrency control and recovery scheme | |
US7107294B2 (en) | Method and apparatus for interrupting updates to a database to provide read-only access | |
JP3593366B2 (ja) | デ−タベ−ス管理方法 | |
US6493837B1 (en) | Using log buffers to trace an event in a computer system | |
KR950006173B1 (ko) | 온라인 데이터베이스시스템의 동적화일확장방법 및 시스템 | |
Braginsky et al. | Drop the anchor: lightweight memory management for non-blocking data structures | |
JPH07175700A (ja) | データベース管理方式 | |
JPH0827750B2 (ja) | 複数コンピュータ・データ共用システムにおける共用記憶の障害からのデータベースの回復方法 | |
JP4916892B2 (ja) | トランザクション処理のためのログ情報管理システムおよび方法 | |
Ren et al. | Low-overhead asynchronous checkpointing in main-memory database systems | |
JPH0683687A (ja) | データ処理システム及びその方法 | |
JPH0560617B2 (ja) | ||
JP2010061522A (ja) | 共有データへの排他的アクセスを許すためのコンピュータ・システム、並びにその方法及びコンピュータ読み取り可能な記録媒体 | |
JPH05210555A (ja) | ゼロ時間データ・バックアップ・コピーの方法及び装置 | |
EP0295424A2 (en) | Method for managing subpage concurrency control and partial transaction rollback in a transaction-oriented system of the write-ahead logging type | |
JP4286857B2 (ja) | ノード間共用ファイル制御方法 | |
JPS62245348A (ja) | データベース更新方法 | |
JP2001229063A (ja) | データ管理システム | |
JP3866448B2 (ja) | ノード間共用ファイル制御方式 | |
KR100365891B1 (ko) | 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를하지 않는 백업/회복 장치 및 그 방법 | |
JP4139642B2 (ja) | データベース管理方法およびシステム | |
Shu et al. | Shadowing-based crash recovery schemes for real-time database systems |
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 |