JPWO2016117022A1 - ログの管理方法及び計算機システム - Google Patents

ログの管理方法及び計算機システム Download PDF

Info

Publication number
JPWO2016117022A1
JPWO2016117022A1 JP2016570238A JP2016570238A JPWO2016117022A1 JP WO2016117022 A1 JPWO2016117022 A1 JP WO2016117022A1 JP 2016570238 A JP2016570238 A JP 2016570238A JP 2016570238 A JP2016570238 A JP 2016570238A JP WO2016117022 A1 JPWO2016117022 A1 JP WO2016117022A1
Authority
JP
Japan
Prior art keywords
log
management method
computer system
area
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016570238A
Other languages
English (en)
Other versions
JP6445049B2 (ja
Inventor
敦 友田
敦 友田
有哉 礒田
有哉 礒田
一智 牛嶋
一智 牛嶋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2016117022A1 publication Critical patent/JPWO2016117022A1/ja
Application granted granted Critical
Publication of JP6445049B2 publication Critical patent/JP6445049B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

プロセッサとメモリとストレージ装置とを有する計算機システムで、前記プロセッサが所定の処理を実行し、前記ストレージ装置に前記処理の内容を含むログを格納するログの管理方法であって、前記プロセッサが、前記所定の処理の内容を含むログを生成する第1のステップと、前記プロセッサが、前記ログを前記ストレージ装置のログファイルに書き込む第2のステップと、前記プロセッサが、前記ログを格納するログ領域の終端を決定して前記ストレージ装置のログファイルに書き込む第3のステップと、を含む。

Description

本発明は、リレーショナルデータベースのマネージメントシステムにおけるトランザクション処理の永続化を目的としたログ出力の同時実行性能の向上に関する。
デバイスの発達によりサーバに搭載されるCPUに集積されるコア数や、メモリ容量が増大している。これによりリレーショナルデータベースのテーブルやインデックスといった主要なデータをメモリ上に配置するインメモリデータベースが普及してきている。
インメモリデータベースにおいても、システムの障害時にデータベースの状態を復元するためには、ハードディスクやフラッシュメモリなどから構成されるストレージ装置に変更履歴をログとして出力しておく必要がある。
従来のハードディスクドライブ等をログを記録する永続デバイスとして想定した計算機システムにおいては、一回のI/O出力に対するレスポンスがトランザクション処理を行うサーバの処理時間に対して非常に大きかった。このため、トランザクションごとにログのI/O出力を行うのではなく、メモリ上に確保されたログバッファ領域にログを格納した後、ログマネージャスレッドが、ログバッファ領域のログをまとめて永続デバイスに時系列的かつシーケンシャルに出力していた。なお、永続デバイスは、永続的にデータを保持する不揮発性記憶装置である。
複数のトランザクションで1つのログファイルを共有することを効率的に行う方法として、ログファイルを固定サイズのスロットに切り分け、複数のスレッド間でこれらのスロットをログマネージャで順に予約し、ログを書き込んでいく方法が特許文献1に開示されている。
米国特許出願公開第2014/0208083号明細書
昨今、半導体製造技術の進歩によって1つのサーバに搭載可能なコア数が増加し、複数のスレッドで並列的にトランザクションを処理するため、前述のログマネージャを介して行っていたログ出力完了の待ち合わせ処理がボトルネックになってきていた。
一方、複数のスレッド間でのI/O処理に伴うリソースの競合に関しては、NVM(None Volatile Memory) Expressと呼ばれる規格において、スレッドごとにI/Oキュー等を独立しておき、I/O処理がスレッドごとに独立して実行させる技術が確立されている。
これにより、各スレッドは他のスレッドと競合することなくI/O出力を行えるようになった。しかしながら、スレッドごとに割り当てられたI/Oキューなどのリソースを活用すると、以下の問題が生じる。
第一はログを格納する記憶装置であるログデバイスの歯抜けの発生である。トランザクション処理を行う各スレッドが、それぞれ予約したログデバイスの領域に対して独立して割り当てられたI/Oキューを利用してI/O出力を行うと、スレッドが独立して発行したI/O処理の完了順序は必ずしも保証されない。
したがって、ある時点においてサーバに障害が発生すると、ログデバイス上に本来は連続して配置されているはずのログのうち、I/O処理が完了したスレッドのログだけが永続化され、I/O処理が完了しなかったスレッドが書き込むはずであった領域は書き込みされる前の状態(空白)のまま残ってしまう。以下では書き込みが行われなかったブランク領域のことを歯抜け領域(toothless area)と呼ぶ。
第二は、障害回復時の処理時間の増大である。従来例に示したログマネージャがまとめてログをI/O出力していたときには、ログマネージャが複数のトランザクションのログを連続したアドレスに記録されるように整形してから一度のI/O出力で書き込みを行っていた。このため、上記の歯抜け領域は発生せず、1つのログの後ろの領域にログが記録されていない領域が最初に出現して以降の領域は、ログが書かれていない領域だった。
しかしながら、各スレッドが独立してログを書き出す場合では、上述のように歯抜け領域が発生する場合がある。したがって、ログをもとにデータベースを障害前の状態に復旧する障害回復処理において、ログデバイスを走査する際に、一旦ログが書かれていない領域(歯抜け領域)が出現した場合でも、走査をつづけた先に別のログが記録されている可能性がある。そこで、歯抜け領域が出現しても、ログデバイス全体を走査する必要があり、回復時間を大幅に増大させてしまう、という問題があった。
そこで本発明は、上記問題点に鑑みてなされたもので、複数のログをストレージ装置へ書き込む計算機システムで、リカバリ時にログの読み込みを高速化することを目的とする。
本発明は、プロセッサとメモリとストレージ装置とを有する計算機システムで、前記プロセッサが所定の処理を実行し、前記ストレージ装置に前記処理の内容を含むログを格納するログの管理方法であって、前記プロセッサが、前記所定の処理の内容を含むログを生成する第1のステップと、前記プロセッサが、前記ログを前記ストレージ装置のログファイルに書き込む第2のステップと、前記プロセッサが、前記ログを格納するログ領域の終端を決定して前記ストレージ装置のログファイルに書き込む第3のステップと、を含む。
本発明によれば、ログ領域の終端がログファイルに記載されているので、障害回復等のリカバリ時にストレージ装置を走査する領域の範囲が特定され、ストレージ装置の走査時間が短縮され、結果として計算機システムの障害回復時間を短縮することができる。
本発明の第1の実施例を示し、計算機システムの一例を示すブロック図である。 本発明の第1の実施例を示し、データベースサーバの一例を示す機能ブロック図である。 本発明の第1の実施例を示し、ログ管理部の構成の一例を示すブロック図である。 本発明の第1の実施例を示し、トランザクション処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、ログ出力処理のフローチャートである。 本発明の第1の実施例を示し、ログのデータ構造の一例を示す図である。 本発明の第1の実施例を示し、リカバリ処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、可変長のログでブランク領域の次のログを探索する例を示す図である。 本発明の第2の実施例を示し、固定長のログの構造の一例を示す図である。
以下、本発明の一実施形態について添付図面を用いて説明する。
以下、図面を参照して、一実施例を説明する。
なお、以下の説明では、同種の要素の参照符号には同一の親番号を含んでいる。同種の要素を区別して説明する場合には、個々の要素を識別する参照符号(例えば、アルファベット)を使用し(例えばスレッド110A、110B、…)、同種の要素を区別しないで説明する場合には、要素の参照符号のうちの親番号のみ使用することがある(例えばスレッド110)。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、予め定められた処理を、適宜に記憶資源(例えばメインメモリ416)及び/又は通信インターフェイスデバイス等を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサ或いはプロセッサを有する装置(例えばデータベースサーバ)が行う処理としてもよい。また、プロセッサは、処理の一部又は全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースから各コントローラにインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は記憶メディアであってもよい。
図1は、本発明の計算機システムの構成の一例を示すブロック図である。データベースサーバ401に外部ストレージ装置402が、例えば通信ネットワーク403を介して接続されている。
データベースサーバ401は、計算機であって、例えば、パーソナルコンピュータや、ワークステーション又はメインフレームであってよく、もしくは、これらの計算機において仮想化プログラムによって構成された仮想的な計算機であってよい。
データベースサーバ401は、I/Oアダプタ413と、メインメモリ416と、記憶デバイス415及びそれらに接続されたプロセッサ414を有する。プロセッサ414は、例えば、マルチコアのマイクロプロセッサ又は、マイクロプロセッサと専用ハードウェア回路を含んだモジュールで構成してもよい。プロセッサ414は、メインメモリ416にロードされたコンピュータプログラムを実行する。プロセッサ414により実行されるコンピュータプログラムは、例えば、オペレーティングシステム(OS)117及びデータベース管理システム(Data Base Management System:以下DBMS)412である。
メインメモリ416は、例えば、揮発性のDRAM(Dynamic Random Access Memory)等であり、プロセッサ414によって実行されるプログラムと、プログラムが使用するデータを一時的に記憶する。なお、メインメモリ416には、不揮発性の半導体メモリを採用してもよい。
記憶デバイス415は、不揮発性の記憶媒体を含み、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)である。記憶デバイス415は、プログラム及びプログラムが使用するデータを格納してよい。I/Oアダプタ413は、通信ネットワーク403とデータベースサーバ401を接続する。
外部ストレージ装置402は、複数の記憶デバイスを含む記憶デバイス群443を有する装置であり、例えば、ディスクアレイ装置である。なお、外部ストレージ装置402は、複数の記憶デバイスに代えて、単一の記憶デバイスであってもよい。
外部ストレージ装置402は、複数のログを格納したログファイル301を記憶する。外部ストレージ装置402は、データベースサーバ401からログのI/O要求を受け付ける。外部ストレージ装置402は、当該I/O要求に従いデータ(例えばログ)の読み書きを行い、読み書きの結果をデータベースサーバ401に応答する。なお、記憶デバイス群443が有する記憶デバイスは、不揮発性の記憶媒体を有するデバイスであって、例えば、HDD又はSSDである。記憶デバイス群443は、RAID(Redundant Array of Independent Disks)グループで構成してもよく、所定のRAIDレベルでデータを記憶してもよい。記憶デバイス群443の記憶空間に基づく論理的な記憶デバイス(例えば、論理ユニット、論理ボリューム、ファイルシステムボリューム)が、データベースサーバ401に提供され、当該論理的な記憶デバイス上にログファイル301が格納されてもよい。なお、本実施例において、ログファイル301は、ログを格納するログ格納領域の一例である。
外部ストレージ装置402は、記憶デバイス群443に加えて、I/Oアダプタ441及びこれらに接続されたストレージコントローラ442を有する。I/Oアダプタ441は、外部ストレージ装置402を通信ネットワーク403に接続し、通信ネットワーク403を介して、データベースサーバ401と接続される。通信ネットワーク403を介した通信プロトコルとしては、例えば、ファイバチャネル(FC)や、SCSI(Small Computer System Interface)、又は、TCP/IP(Transmission Control Protocol/Internet Protocol)が採用されてよい。例えば、ファイバチャネルもしくはSCSIが採用される場合、I/Oアダプタ441(及び413)は、ホストバスアダプタと呼ばれることがある。
ストレージコントローラ442は、例えば、メモリ及びプロセッサを含み、データベースサーバ401からのI/O要求に応じて、ログファイル301を格納した記憶デバイス群443との間でデータの読出し、もしくは、書込みを行う。
図2は、実施例に係るデータベースサーバ401の機能ブロック図である。
本実施例1のDBMS412は、例えば、インメモリデータベースである。DBMS412は、テーブル112と、インデックス113とを、メインメモリ416上に配置する。
さらにDBMS412はロック機構116を含んでよい。ロック機構116は2以上のスレッド110A〜110Cが競合することを避けるためである。ロック機構116は、テーブル112やインデックス113をロックするモジュールである。ロック機構116は、ロックの取得済か否かを表す情報を含むことができる。例えば、ロック機構116は、ロック取得済なら値「1」でよくロック未取得なら値「0」でよい。
DBMS412は、ログバッファ114とログ管理部115を有する。ログバッファ114は、テーブル112やインデックス113への更新履歴を含んだログを一時的に格納する。ログ管理部115は、ログファイル301およびログファイル301へのログの書き出しを管理する。なお、ログ管理部115は、ログファイル301とバックアップデータを読み込んで、ログをバックアップデータに適用してテーブル112を復元するリカバリ処理部125を含むことができる。
DBMS412は、クエリ発行元からクエリを受信し、受信したクエリの実行において、1又は複数のトランザクションを実行する。具体的には、DBMS412は、クエリ受付部421、クエリ実行プラン生成部422及びクエリ実行部424を有する。
クエリ受付部421は、クエリ発行元が発行するクエリを受け付ける。クエリは、例えば、構造化問合せ言語(SQL、Structured Query Language)によって記述される。1つのクエリで複数のトランザクションが記述されていてもよいし、複数のクエリで複数のトランザクションが記述されてもよい。
また、クエリ発行元は、DBMS412の内部のコンピュータプログラムであってよいし、DBMS412外部のコンピュータプログラムであってよい。例えば、外部のコンピュータプログラムは、データベースサーバ401内で実行されるコンピュータプログラム(例えばアプリケーションプログラム)であってもよいし、データベースサーバ401に接続されたクライアント計算機等の装置で実行されるコンピュータプログラム(例えば、アプリケーションプログラム)であってもよい。
クエリ実行プラン生成部422は、クエリ受付部421が受け付けたクエリから、当該クエリを実行するために必要な1以上のデータベースオペレーションを含むクエリ実行プランを生成する。
クエリ実行プランは、例えば、1以上のデータベースオペレーションと、データベースオペレーションの実行順序の関係を含む情報であり、クエリ実行プラン情報423として格納される。クエリ実行プラン情報423は、データベースオペレーションをノード、データベースオペレーションの実行順序の関係をエッジとする木構造で表されることがある。
クエリ実行部424は、クエリ実行プラン生成部422が生成したクエリ実行プランに従って、クエリ受付部421が受け付けたクエリを実行し、クエリの実行結果をクエリ発行元に応答する。
この際、クエリ実行部424は、データベースオペレーションの実行に必要なデータの読出し要求(参照要求)を発行し、当該読出し要求に従いテーブル112からデータを読み出す。クエリ実行部424は、読み出したデータを使用して、クエリに応じたデータベースオペレーションを実行してデータを算出し、読出し元レコードのデータを算出後のデータに更新する書込み要求を発行する。
クエリ実行部424は、データベースオペレーションを、1以上のスレッド110A〜110Cを実行することにより行う。なお、DBMS412において、複数のスレッド110A〜110Cが並行して実行される。このため、プロセッサ414は、複数のコアを有する。複数のコアは、1又は複数のCPUに存在する。スレッド110は、タスクと呼ばれてもよい。スレッド110の実装としては、例えば、OS117が実現するプロセスやカーネルスレッド等のほか、ライブラリ等が実現するユーザスレッドを用いてよい。1つのスレッド110により、1以上のデータベースオペレーションに対応した1つのトランザクションが実行されてよい。以下、クエリ実行部424がスレッド110を実行することにより行われる処理の主語を、スレッド110、とすることがある。
クエリ実行部424(スレッド110)は、トランザクションの実行と、トランザクションの実行結果(または処理内容)を含むログを生成する。そして、クエリ実行部424の各スレッド110は、外部ストレージ装置402内のログファイル301にログを書き込むために、外部ストレージ装置402に対するI/O要求をOS117に発行する。OS117は、当該I/O要求を受け付け、外部ストレージ装置402へI/O要求を発行する。
I/Oアダプタ413には、複数のI/Oキュー201(201A〜201C)が設定される。トランザクションの処理において、スレッド110が、ログの書込みのためのI/O要求を外部ストレージ装置402へ発行するが、I/Oキュー201には、当該I/O要求が格納される。具体的には、I/O要求は、OS117によりI/Oキュー201に格納される。
外部ストレージ装置402が、ログファイル301を記憶する。ログファイル301に、I/O要求の書込み対象のログが記録される。
本実施例1では、クエリ実行部のスレッド110と、I/Oキュー201が、1:1対応している。つまり、スレッド110A〜110C毎に、1つのI/Oキュー201A〜201Cが設定される。具体的には、スレッド110AにI/Oキュー201Aが関連付けられている。例えば、スレッド110Aが、テーブル112のレコードを更新したことを表すログのI/O要求を、ログファイル301に対して発行するようになっている。発行されたI/O要求は、ログバッファ114を経由して、OS117に送られる。OS117が、ログファイル301に対するI/O要求を受けて、当該I/O要求を、スレッド110Aに対応するI/Oキュー201Aに格納する。I/Oキュー201Aに格納されたI/O要求は、OS117によりI/Oキュー201から外部ストレージ装置402に送られる。外部ストレージ装置402は、当該I/O要求の書込み対象データであるログを、ログファイル301に書き込む。
図2に示すDBMS412の構成は一例に過ぎない。例えば、或る構成要素は複数の構成要素に分割されていてもよく、複数の構成要素が1つの構成要素に統合されていてもよい。
図3は、ログ管理部115の構成の一例を示すブロック図である。ログ管理部115は、ロック機構121と、ログファイルアドレス122と、ログ領域終端アドレス123と、ログ領域追加フラグ124と、リカバリ処理部125とを有する。
ロック機構121も、図2に示したロック機構116と同様に、ログ管理部115のロックの取得済か否かを表すデータでよい。例えば、ロック機構121は、ロック取得済なら値「1」でよくロック未取得なら値「0」でよい。ログファイルアドレス122、ログ領域終端アドレス123、ログ領域追加フラグについて書き込みまたは読み出しを行うときには、ロック機構121のロックを取得していなければならない。
ログファイルアドレス122は、ログファイル301におけるログの書込み先アドレスである。ログファイルアドレス122が表すアドレス(値)は、ログファイル301にログを書き出す度に出力するログのサイズ分だけ加算される。なお、ログファイルアドレス122や後述のログ領域終端アドレス123は、外部ストレージ装置402上でのログの格納領域の終端を示す値であり、例えばLBA(Logical Block Address)等を採用することができる。
ログ領域終端アドレス123はログファイルアドレス122の上限値であり、当該上限値を超えた場所にログを書くことはできない。また、リカバリ処理においては、ログ領域終端アドレス123にリカバリ処理におけるログファイルの走査範囲の上限がセットされる。リカバリ処理において、ログ領域終端アドレス123を超えて走査を行わない。
ログ領域追加フラグ124は、トランザクションを処理するスレッドが、ログ出力する領域で領域の追加処理を実行中の場合には、本フラグがセットされる。例えば、本フラグは追加中なら「1」、そうでない場合には「0」でよい。
リカバリ処理部125は、ログファイル301のログを適用してテーブル112を復旧するリカバリ処理を実行する。リカバリ処理部125は、図示しない管理装置などから所定の指令を受け付けたときに処理を開始する。
図4は、トランザクション処理のフローチャートである。なお、以下の説明では、1つのトランザクションを例に取り説明する。スレッド110Aが、トランザクションAを開始すると、トランザクションAに対応した指示(クエリ中の指示)に基づいて、参照及び更新セットの生成を行う(S301)。
参照及び更新セットは、レコードの参照(テーブル112の読出し要求)とレコードの更新(テーブル112、インデックス113の書込み要求)とのセットである。参照及び更新セットは、テーブル112と、インデックス113を更新するための要求セットであるが、ステップS301の時点では、テーブル112、インデックス113の変更は行われず、トランザクションAに対応したローカルメモリ領域(メインメモリ461上に確保された領域(図示せず))に参照及び更新セットが保持される。
次に、スレッド110Aが、コミット判定を行う(S302)。コミット判定は、例えば、トランザクションAが参照及び更新セットに基づいて、テーブル112、インデックス113に対して行う変更が他のトランザクションとの整合性を保てているか否かをデータベースのアイソレーションレベル(またはトランザクション分離レベル)に応じて行われる。
コミット判定がNG(処理失敗など)の場合(S303:No)、スレッド110Aは、アボート処理を行い(S307)、アボート完了通知を出力して、トランザクションを終了する。
コミット判定がOK(処理完了など)の場合(S303:Yes)、スレッド110Aは、ログ出力処理を実行する(S304)。ログ出力処理は、後述するように、所定の処理(トランザクション)が完了する度に処理の内容を含むログをログファイル301へ書き込む処理である。
次に、スレッド110Aは、参照及び更新セットに基づいてテーブル112、インデックス113をそれぞれ更新し(S305)、コミット完了通知を出して(S306)、トランザクションを終了する。
上記処理により、スレッド110Aは、トランザクション処理が完了すればコミット完了通知を出力し、トランザクション処理が失敗すればアボート完了通知を出力する。
図5は、ログ出力処理(図4のS304)の一例を示すフローチャートである。まず、トランザクションを実行しているスレッド110Aは、ログ管理部115のロック機構121を取得する(S501)。
次に、スレッド110Aは、ログ領域終端アドレス123とログファイルアドレス122の差が一定値以下であり、さらにログ領域追加フラグ124がセットされていないことを判定する(S502)。ここで、一定値は、ログ領域終端アドレス123の更新に要する時間内にログ領域を使い切らない十分な容量であり、予め設定されてDBMS102で保持しているものとする。
ステップS502の判定結果がYesの場合、スレッド110Aは、ログ領域を拡張する準備を行う。つまり、スレッド110Aは、ログ領域追加フラグ124をセットし(S503)、ログバッファ114に生成した当該トランザクションのログに、ログ領域拡張ログ(またはログ領域拡張情報)を追加する(S504)。
一方、ステップS502の判定結果がNoの場合には、スレッド110Aは、ログファイルアドレス122を取得し、ログバッファ114に生成したログ(すなわち、書き込み予定のログ)のサイズをログファイルアドレスに加算し(S505)、ログ管理部115のロック機構121を解放する(S506)。
スレッド110Aは、ログバッファ114に用意したログの書き込み要求(ログ管理部115から取得したログファイルアドレス122を指定した書込み要求)を発行する(S507)。スレッド110Aは、外部ストレージ装置402からI/Oアダプタ413を介して書込み完了通知を受信した場合に書込み処理を完了する(S508)。
上記の処理により、スレッド110Aによってログファイル301には新たなログが書き込まれ、ログファイル301のログファイルアドレス122が更新される。
書き込みが完了すると、スレッド110Aは、当該トランザクションのログにログ領域拡張ログを追加したか否かを判定する(S509)。このログ領域拡張ログは、ステップS504で追加される情報である。
ステップS509の判定結果が、Yesの場合、スレッド110Aは、ログ領域の拡張を行う。まず、スレッド110Aは、ログ管理部115からロック機構121を取得する(S510)。
次に、スレッド110Aは、上記ステップS504でログファイル301に記載したログ領域拡張情報に対応する値を加算してログ領域終端アドレス123にセットする(S511)。すなわち、スレッド110Aは、ログ領域の終端アドレスに予め設定したサイズを加算してログ領域を拡張する。
そして、スレッド110Aは、ログファイル301のログ領域終端アドレス123を更新する。さらに、スレッド110Aは、ログ領域追加フラグ124をクリアする(S513)。上記ステップS509〜S513の処理により、ログファイル301のログ領域が拡張される。
一方、ステップS509において、判定結果がNoの場合には、スレッド110Aは、そのままログ出力処理を終了する。
上記処理により、スレッド110Aは、ログをログファイル301へ書き込む際に、ログ領域が不足する恐れがある場合にはログ領域を拡張することができる。
図6は、ログのデータ構造の一例を示す図である。1つのトランザクションに対して、少なくとも1つのログ30が生成される。
ログファイル301に格納されるログ30は、ログヘッダ識別子33とログサイズ34から構成されるログヘッダ31と、データベースへの変更履歴およびログ領域拡張ログを格納したログ本体32とから構成される。なお、ログサイズ34は、ログ30が可変長の場合にログ30のサイズを示す値である。
ログヘッダ識別子33は、ログヘッダ31の先頭に格納されており、値を所定の方法で検証することにより、当該アドレスからログ30が正常に開始していることが判定できるものである。例えばもっとも容易な実装方法として、ログヘッダ31の開始アドレスの値(またはアドレスのハッシュ値)が格納されている場合、当該アドレスから有効なログヘッダ31が開始していると判定することができる。なお、偶然に記録されていたビット列が、このような判定で正常と誤判定されることがないように、例えば判定に使用するビット長を長く、アドレスとハッシュ値を併記するなどしてもよい。
リカバリ処理部125は、ログヘッダ31からログヘッダ識別子33を読み込んで、検証することにより当該ログ30が有効であるか否かを判定することができる。
なお、ログファイル301は、図示のログ30を複数格納するファイルである。ログファイル301には、上記ログ30に加えてログファイルアドレス122とログ領域終端アドレス123が格納される。また、ログファイルアドレス122とログ領域終端アドレス123は、ログファイル301内の所定の領域(例えば、先頭)に格納される。
図7は、リカバリ処理のフローチャートである。リカバリ処理では、DBMS102が外部ストレージ装置402へバックアップしたある時点のデータベース(テーブル112)と、バックアップを生成した時点からの差分を逐次的に記録したログ30とから最新のデータベース(テーブル112)を復元する。
本実施例1では、DBMS102が所定のタイミングとなる度に外部ストレージ装置402へデータベースのバックアップを行う。また、DBMS102は、テーブル112の更新、追加、削除を行う度にログ30を生成してログファイル301へ書き込む。そして、DBMS102は、所定の指令を受け付けるとリカバリ処理部125でリカバリ処理を開始する。なお、所定のタイミングは、所定時間の経過や、テーブル112が更新されたときなどである。
リカバリ処理部125は、まず、外部ストレージ装置402へバックアップされたデータベース(テーブル112)をメインメモリ416上にロードする(S701)。次に、リカバリ処理部125は、ログファイル301に記録されたログ領域終端アドレス123を、ログ管理部115の該当領域にセットする(S702)。また、リカバリ処理部125は、ログファイルアドレス122にログファイル301の先頭アドレスなど、リカバリを開始するアドレスを設定する。なお、リカバリを開始するアドレスは、データベースサーバ401の管理者などが設定しても良く、バックアップデータの生成時刻に対応するログ30のアドレスなどを指定することができる。
次に、リカバリ処理部125は、ログファイル301のログファイルアドレス122がログ領域終端アドレス123以下であるか否かを判定する(S703)。
ステップS703の判定結果がNOの場合、リカバリ処理部125は、適用すべきログ30はすべてデータベースに適用されているため、リカバリ処理を終了する。
一方、ステップS703の判定結果がYESの場合、リカバリ処理部125は、ログファイルアドレス122が指し示すアドレスから、ログヘッダ31を読み出し(S705)、ログヘッダ識別子33が正常であるか否かを判定する(S706)。
ログヘッダ識別子33の正常化否かの判定は、上述のようにログヘッダ31の開始アドレスと、ログヘッダ識別子33の値が一致した場合などで、リカバリ処理部125は、ログヘッダ31が正常に記録されていると判定することができる。なお、本実施例1では、ログヘッダ31が正常であれば、ログ本体32も正常に記録されていると判定する。
一方、ステップS706の判定結果が正常でない(NO)場合、リカバリ処理部125は、ログファイルアドレス122に予め設定した値を加算して、ステップS703に戻って上記処理を繰り返す。
ここで、ログファイルアドレス122に加算する予め設定した値とは、例えば、ログ30のサイズを指している。例えばログサイズが常に32バイトの倍数の固定長である場合には、ログファイルアドレス122に32バイト加算する。これは、正常なログを失った場合に、次の有効なログ30を探索するため、次のログ30の開始アドレスの可能性があるアドレスを順に走査するためである。
一方、ログ30のサイズが可変長の場合、ログファイルアドレス122に加算する所定数は、ログヘッダ識別子33のサイズとすることができる。ログヘッダ識別子33は固定長で指定され、例えば、4バイトで記述される。この場合、図8で示すように、ログヘッダ識別子33のサイズをログファイルアドレス122に順次加算することで、リカバリ処理部125は、ブランク領域が存在する場合でも、次に出現するログヘッダ識別子33(ログヘッダ31)を探索することができる。なお、図8は、ログ本体32が可変長の場合に、ブランク領域の次のログヘッダ31を探索する例を示す図である。
ステップS706の判定結果が正常(YES)である場合、リカバリ処理部125は、ログヘッダ31に格納されたログサイズ34を読み出し(S707)、ログファイルアドレス122に、当該ログサイズ34を加算する(S708)。さらに、リカバリ処理部125は、当該加算されたログファイルアドレス122までのログ本体32を読み込んで、ログ本体32の内容をバックアップデータに適用してデータベース(テーブル112)を復旧する(S709)。その後、リカバリ処理部125は、ログファイルアドレス122を次のログ30に設定してからステップS703に戻ってログ領域終端アドレス123まで上記処理を繰り返す。
以上の処理により、ログファイル301中のログ30に歯抜け領域(ブランク領域)が存在する場合でも、ログヘッダ31単位で探索することで、次のログ30を取得することができる。
本実施例1によれば、データベースサーバ401で稼働するDBMS102のスレッド110A〜110Cが、それぞれのI/Oキュー201A〜201Cへログを並列的に格納する。その後、I/Oアダプタ413からネットワーク403を介して外部ストレージ装置402のログファイル301へログを書き込む。スレッド110A〜110Cは、ログファイル301で自身のログ30を書き込む領域のアドレスよりも小さいアドレスの領域(直前のログ30)へのログ書き出しが完了しなくても、自身のログ領域へログ30を書き出すことができる。
これにより、前記従来例に示したログマネージャスレッドによるトランザクション間のログ書き出し処理の待ち合わせ処理時間が削減される。したがって、トランザクションあたりのプロセッサ処理時間が削減され、計算機システム全体の処理性能が向上する。
そして、DBMS102のスレッド110は、ログ30を格納する外部ストレージ装置402のログファイル301に、障害回復時(リカバリ時)にログファイル301を走査する領域の範囲(ログ領域終端アドレス123)を記録する。
これにより、リカバリ処理の際には、ログファイル301の走査時間を短縮し、障害回復時間を短縮することができる。各スレッド110は、ログ領域終端アドレス123とログファイルアドレス122の差が所定値以下になると、新たなログ領域を確保するためにログ領域終端アドレス123を所定量だけ増大させる。すなわち、ログ30の追加に応じて、徐々にログ領域を拡張することで、リカバリ処理の際の走査範囲を抑制することができるのである。
したがって、ログファイル301の領域は、ログ30の追加に応じて徐々に増大するので、リカバリ処理の際に探索するブランク領域の範囲を低減でき、障害回復までの時間を短縮することができる。
また、ログ30が可変長の場合には、各ログ30に固定長のログヘッダ識別子33を設定する。データベースサーバ401の障害によって、1以上のスレッド110でログ30の書き込みが完了しないブランク領域が発生しても、リカバリ処理の際には、ログヘッダ識別子33サイズ単位で、ログファイルアドレス122を加算することで、リカバリ処理部125は次の有効なログヘッダ識別子33を検出することが可能となる。
なお、上記実施例1ではデータベースサーバ401のI/Oアダプタ413にスレッド110毎のI/Oキュー201を設けた例を示したが、これに限定されるものではなく、外部ストレージ装置402にI/Oキュー201A〜201Cを設けても良い。この場合、例えば、I/Oアダプタ441にI/Oキュー201A〜201Cを設けることができる。
また、上記実施例1では、各スレッド110は、所定の条件を満たすとログ領域終端アドレス123を変更して、ログ領域を拡張する例を示したが、これに限定されるものではない。例えば、スレッド110がログ30を書き込む度に、書き込んだログ30のサイズをログ領域終端アドレス123に加算し、ログファイル301を更新しても良い。
すなわち、スレッド110が、ログ領域へログを書き込む度にログ領域の終端を決定してログ出力を行っても良いし、ログ領域を拡張する際にログ領域の終端を決定してログ出力を行っても良い。
図9は、第2の実施例を示し、固定長のログ30の構造の一例を示す図である。本実施例2では、前記実施例1のログ30のサイズを固定長としたもので、その他の構成は前記実施例1と同様である。
固定長のログ30は、前記実施例1と同様のログヘッダ識別子33と、ログ本体32から構成される。
リカバリ処理の際、リカバリ処理部125は、ひとつのログ30の読み込みとログ適用が完了すると、ログファイルアドレス122に所定値を加算して、次のログ30の開始アドレスを算出する。リカバリ処理部125は、次のログ領域のログヘッダ識別子33を読み込んで、有効か否かを判定する。
ログヘッダ識別子33が有効でない場合、リカバリ処理部125は、ログファイルアドレス122に所定値を加算して、次のログ30の開始アドレスを算出して上記処理をログ領域終端アドレス123まで返す。
ログ30のサイズを固定長とすることで、リカバリ処理の際に有効なログ30を探索する処理は可変長の場合に比して高速になる。可変長の場合は、図8で示したように、ブランク領域内でログヘッダ識別子33を探索する必要がある。これに対して、固定長の場合では、図9で示すように図中ログ4の次のログ領域がブランク領域なので、リカバリ処理部125は、現在のログファイルアドレス122に所定値を加算することで、次のログ6の開始アドレスからログヘッダ識別子33を読み込むことができる。
以上のように、本実施例2では、ログ30のサイズを固定長とすることで、リカバリ処理の際にはブランク領域であってもログ領域単位で処理を行うことが可能となって、障害回復までの時間を短縮することが可能となるのである。
<まとめ>
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。

Claims (15)

  1. プロセッサとメモリとストレージ装置とを有する計算機システムで、前記プロセッサが所定の処理を実行し、前記ストレージ装置に前記処理の内容を含むログを格納するログの管理方法であって、
    前記プロセッサが、前記所定の処理の内容を含むログを生成する第1のステップと、
    前記プロセッサが、前記ログを前記ストレージ装置のログファイルに書き込む第2のステップと、
    前記プロセッサが、前記ログを格納するログ領域の終端を決定して前記ストレージ装置のログファイルに書き込む第3のステップと、
    を含むことを特徴とするログの管理方法。
  2. 請求項1に記載のログの管理方法であって、
    前記プロセッサが、前記所定の処理の対象となるデータのバックアップデータを生成して、前記ストレージ装置に格納する第4のステップと、
    前記プロセッサが、前記バックアップデータと前記ログファイルを読み込んで、前記ログを前記バックアップデータに適用してリカバリを実行する第5のステップと、
    をさらに含み、
    前記第5のステップは、
    前記ログファイルに書き込まれたログ領域の終端までリカバリを行うことを特徴とするログの管理方法。
  3. 請求項1に記載のログの管理方法であって、
    前記第2のステップは、
    当該ログが正常であるか否かを示す識別子を当該ログに設定するステップをさらに含むことを特徴とするログの管理方法。
  4. 請求項3に記載のログの管理方法であって、
    前記第2のステップは、
    当該ログのサイズを示す情報を当該ログに設定するステップをさらに含むことを特徴とするログの管理方法。
  5. 請求項2に記載のログの管理方法であって、
    前記第2のステップは、
    当該ログが正常であるか否かを示す識別子を当該ログに設定するステップと、
    当該ログのサイズを示す情報を当該ログに設定するステップと、をさらに含み、
    前記第5のステップは、
    前記識別子を読み込んで当該識別子が正常であるか否かを判定するステップと、
    前記識別子が不正である場合には、前記サイズを読み込んで次のログを探索するステップと、を含むことを特徴とするログの管理方法。
  6. 請求項1に記載のログの管理方法であって、
    前記第2のステップは、
    前記ログの出力先のアドレスをログファイルアドレスに設定し、
    前記第3のステップは、
    前記ログ領域の終端のアドレスと前記ログファイルアドレスの差が所定値以下のときに、前記ログ領域の終端のアドレスに予め設定したサイズを加算することを特徴とするログの管理方法。
  7. 請求項1に記載のログの管理方法であって、
    前記第1のステップは、
    前記ログを可変長で生成することを特徴とするログの管理方法。
  8. 請求項1に記載のログの管理方法であって、
    前記第1のステップは、
    前記ログを固定長で生成することを特徴とするログの管理方法。
  9. 請求項1に記載のログの管理方法であって、
    前記第1のステップは、
    前記所定の処理としてデータベースのトランザクションの処理内容を含むログを生成し、
    前記第2のステップは、
    当該プロセッサが実行する複数のスレッドのそれぞれに予め割り当てられたI/Oキューへ前記スレッドが前記ログを書き込み、当該I/Oキューから前記ログファイルに前記ログが書き込まれることを特徴とするログの管理方法。
  10. プロセッサとメモリとストレージ装置とを有する計算機システムであって、
    前記計算機システムは、
    所定の処理を実行して前記処理の内容を含むログを生成し、前記ストレージ装置に前記ログを格納する実行部と、
    前記ログを格納するログ領域の終端を決定して前記ストレージ装置のログファイルに書き込むログ管理部と、
    を有することを特徴とする計算機システム。
  11. 請求項10に記載の計算機システムであって、
    前記実行部は、
    前記所定の処理の対象となるデータのバックアップデータを生成して、前記ストレージ装置に格納し、
    前記ログ管理部は、
    前記バックアップデータと前記ログファイルを読み込んで、前記ログを前記バックアップデータに適用するリカバリを、前記ログファイルに書き込まれたログ領域の終端まで行うことを特徴とする計算機システム。
  12. 請求項10に記載の計算機システムであって、
    前記実行部は、
    当該ログが正常であるか否かを示す識別子を当該ログに設定することを特徴とする計算機システム。
  13. 請求項12に記載の計算機システムであって、
    前記実行部は、
    当該ログのサイズを示す情報を当該ログに設定することを特徴とする計算機システム。
  14. 請求項11に記載の計算機システムであって、
    前記実行部は、
    当該ログが正常であるか否かを示す識別子と、当該ログのサイズを示す情報を当該ログに設定し、
    前記ログ管理部は、
    前記識別子を読み込んで当該識別子が正常であるか否かを判定し、前記識別子が不正である場合には、前記サイズを読み込んで次のログを探索することを特徴とする計算機システム。
  15. 請求項10に記載の計算機システムであって、
    前記実行部は、
    前記ログの出力先のアドレスをログファイルアドレスに設定し、
    前記ログ管理部は、
    前記ログ領域の終端のアドレスと前記ログファイルアドレスの差が所定値以下のときに、前記ログ領域の終端のアドレスに予め設定したサイズを加算することを特徴とする計算機システム。
JP2016570238A 2015-01-20 2015-01-20 ログの管理方法及び計算機システム Expired - Fee Related JP6445049B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/051343 WO2016117022A1 (ja) 2015-01-20 2015-01-20 ログの管理方法及び計算機システム

Publications (2)

Publication Number Publication Date
JPWO2016117022A1 true JPWO2016117022A1 (ja) 2017-04-27
JP6445049B2 JP6445049B2 (ja) 2018-12-26

Family

ID=56416588

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016570238A Expired - Fee Related JP6445049B2 (ja) 2015-01-20 2015-01-20 ログの管理方法及び計算機システム

Country Status (3)

Country Link
US (1) US10025675B2 (ja)
JP (1) JP6445049B2 (ja)
WO (1) WO2016117022A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9979785B2 (en) * 2015-09-29 2018-05-22 Veritas Technologies Llc Systems and methods for restoring data from opaque data backup streams
CN110832473B (zh) * 2017-06-21 2023-01-13 华为技术有限公司 日志结构管理系统及方法
JP7135403B2 (ja) * 2018-04-23 2022-09-13 株式会社リコー ダンプ処理装置及び画像形成装置
CN109241015B (zh) * 2018-07-24 2021-07-16 北京百度网讯科技有限公司 用于在分布式存储系统中写入数据的方法
JP7119794B2 (ja) * 2018-09-05 2022-08-17 トヨタ自動車株式会社 ログデータの生成方法、プログラム、及びデータ構造
JP7279439B2 (ja) * 2019-03-20 2023-05-23 株式会社リコー ネットワーク機器、ログ記録方法、およびプログラム
US11237924B2 (en) * 2019-12-11 2022-02-01 Commvault Systems, Inc. Dynamic resizing and re-distribution of destination data storage resources for bare metal restore operations in a data storage management system
JP7358287B2 (ja) * 2020-03-30 2023-10-10 キオクシア株式会社 半導体記憶装置及びその制御方法
CN114489480A (zh) * 2021-12-23 2022-05-13 深圳市世强元件网络有限公司 高并发存储数据的方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07248949A (ja) * 1994-03-10 1995-09-26 Hitachi Ltd 入出力実行方法
JPH10247157A (ja) * 1997-03-06 1998-09-14 Nippon Telegr & Teleph Corp <Ntt> トランザクション処理システムおよびそのリカバリ方法
JP2006268531A (ja) * 2005-03-24 2006-10-05 Hitachi Ltd データ処理システム及びデータベースの管理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966706A (en) * 1997-02-19 1999-10-12 At&T Corp Local logging in a distributed database management computer system
US6173292B1 (en) * 1998-03-04 2001-01-09 International Business Machines Corporation Data recovery in a transactional database using write-ahead logging and file caching
JP4766240B2 (ja) * 2005-11-08 2011-09-07 日本電気株式会社 ファイル管理方法、装置、およびプログラム
KR101977575B1 (ko) * 2012-09-28 2019-05-13 삼성전자 주식회사 디렉토리 엔트리 조회 장치, 그 방법 및 디렉토리 엔트리 조회 프로그램이 기록된 기록 매체
US9274798B2 (en) * 2013-01-18 2016-03-01 Morgan Stanley Multi-threaded logging

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07248949A (ja) * 1994-03-10 1995-09-26 Hitachi Ltd 入出力実行方法
JPH10247157A (ja) * 1997-03-06 1998-09-14 Nippon Telegr & Teleph Corp <Ntt> トランザクション処理システムおよびそのリカバリ方法
JP2006268531A (ja) * 2005-03-24 2006-10-05 Hitachi Ltd データ処理システム及びデータベースの管理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ジム グレイ, トランザクション処理 [下], vol. 第1版, JPN6018003839, 29 October 2001 (2001-10-29), JP, pages pp. 593(3)-616(26) *

Also Published As

Publication number Publication date
US20170206147A1 (en) 2017-07-20
JP6445049B2 (ja) 2018-12-26
WO2016117022A1 (ja) 2016-07-28
US10025675B2 (en) 2018-07-17

Similar Documents

Publication Publication Date Title
JP6445049B2 (ja) ログの管理方法及び計算機システム
US10977124B2 (en) Distributed storage system, data storage method, and software program
US9280578B1 (en) Combining transactions in a metadata transaction log
US9697219B1 (en) Managing log transactions in storage systems
US9665304B2 (en) Storage system with fast snapshot tree search
US7293145B1 (en) System and method for data transfer using a recoverable data pipe
JP6211196B2 (ja) 自律的メモリ検索のための方法及びシステム
CN109086388B (zh) 区块链数据存储方法、装置、设备及介质
US9996421B2 (en) Data storage method, data storage apparatus, and storage device
JP6152431B2 (ja) データベース管理システム及び方法
WO2018076633A1 (zh) 一种远程数据复制方法、存储设备及存储系统
CN109726264B (zh) 用于索引信息更新的方法、装置、设备和介质
US10452644B2 (en) Computer system, method for verifying data, and computer
US10452496B2 (en) System and method for managing storage transaction requests
US11068181B2 (en) Generating and storing monotonically-increasing generation identifiers
US11442663B2 (en) Managing configuration data
US11210024B2 (en) Optimizing read-modify-write operations to a storage device by writing a copy of the write data to a shadow block
US10712941B2 (en) Leveraging temporal locality to link files together and bypass accessing a central inode list
US10656867B2 (en) Computer system, data management method, and data management program
CN112559457A (zh) 数据访问方法及装置
US12093568B1 (en) Segregated filesystem metadata operations using buffered atomic write interface
US11256583B2 (en) Efficient handling of RAID-F component repair failures
US10719401B2 (en) Increasing data recoverability during central inode list loss
WO2016120988A1 (ja) データベースシステム及びデータベース管理方法
WO2018107460A1 (zh) 对象复制方法、装置及对象存储设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180928

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: 20181106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181128

R150 Certificate of patent or registration of utility model

Ref document number: 6445049

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees