JP2008541225A - データベースとファイルシステムとの間でのリンクレベル整合性の維持 - Google Patents

データベースとファイルシステムとの間でのリンクレベル整合性の維持 Download PDF

Info

Publication number
JP2008541225A
JP2008541225A JP2008509997A JP2008509997A JP2008541225A JP 2008541225 A JP2008541225 A JP 2008541225A JP 2008509997 A JP2008509997 A JP 2008509997A JP 2008509997 A JP2008509997 A JP 2008509997A JP 2008541225 A JP2008541225 A JP 2008541225A
Authority
JP
Japan
Prior art keywords
file system
log
file
database
sequence number
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
JP2008509997A
Other languages
English (en)
Other versions
JP2008541225A5 (ja
JP5259388B2 (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2008541225A publication Critical patent/JP2008541225A/ja
Publication of JP2008541225A5 publication Critical patent/JP2008541225A5/ja
Application granted granted Critical
Publication of JP5259388B2 publication Critical patent/JP5259388B2/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
    • 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/2308Concurrency control
    • 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/18File system types
    • G06F16/1865Transactional file systems
    • 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
    • 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/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/48Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Library & Information Science (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

データベースとファイルシステムとの間でトランザクションのリンクレベル整合性を維持するための、方法およびコンピュータ読み取り可能媒体。ファイルシステムの変更がデータベースログの記録にロギングされ、当該ファイルシステム変更に対応するファイルがファイルシステムフォルダ内に作成される。リカバリプロセスの再始動時に、データベースログに基づいて分析オペレーションおよび条件付きやり直しオペレーションが実行され、ファイルシステムフォルダ内のファイルに基づいて条件付きやり直しオペレーションおよび取り消しオペレーションが実行される。その後、データベースログに基づいて取り消しオペレーションが実行される。

Description

本発明は、一般に、データベース管理の分野に関する。より具体的に言えば、本発明は、データベースと対応するファイルシステムとの間でのリンクレベル整合性の維持に関する。
近年、写真、ビデオ、およびムービーなどの、大規模な非構造化データタイプの使用が著しく増加してきており、それに伴って、これらの大規模なデータストリームを効率良く格納する必要がある。従来、データは、ファイルシステムなどの構造体またはデータベースに格納されてきた。
ファイルシステムとは、ハードディスクなどの記憶媒体上でファイルがフォルダ内に格納される、データの階層構造のことである。一部のオペレーションシステムは、ファイルシステムを維持し、ファイルシステム内のファイルへのアクセスを制御する。ファイルシステムは、大量の非構造化データをファイルの内外へストリーミングするには優れている。現在知られているファイルシステムに伴う問題の1つが、ファイルを手動でグループ(フォルダおよびサブフォルダ)化しなければならないことであり、ユーザが特定のファイルを格納した場所を忘れてしまった場合、ファイルを再度見つけ出すことは困難であろう。この問題は、ますます大規模化されるハードディスクの開発に見られるディスク技術の躍進などの、技術の促進によって悪化する。単一のディスク上に莫大な量のデータが格納できることによって、ファイルシステム内でのファイルの追跡を極端に困難なタスクにしてしまう可能性がある。
幅広く使用されている他のデータ編成方法が、データベースである。データベースシステムは、データを、テーブルの各行がエンティティに関する関連データ要素のグループと、行の主題であるエンティティに関する有用な情報部片を表す列とを有する、1つまたは複数のテーブルとして格納する。たとえば、人材データベースの各行が従業員を表し、人材データベースの各列が、従業員の名前、従業員の社会保障番号、および従業員の賃金率などのデータ要素を表す、人材情報のデータベースを維持することができる。
データベースは、データのファイルシステム編成を介していくつかの有用な利点を提供する。データベース管理システムは、構造化データの小規模な部片の格納、発見、および取り出しに優れている。さらに典型的には、データベースに格納されたデータの指定部分を検索し、これにアクセスする、高度にフレキシブルな手段がある。しかしながら、データベースは、BLOB(Binary Large Object:バイナリラージオブジェクト)と呼ばれる、非構造化データの大規模な部片の格納およびアクセスに、特に適切には対処していない。
具体的に言えば、データベースがBLOB列を含む場合、典型的には、BLOBはディスク全体にわたって分散された小規模な部片にばらばらにされる。データベース列内のエントリは、BLOBそれ自体を含むのではなく、BLOBの第1の部片を指すポインタを含む。この状況は、BLOBの異なる部片を発見し、再アセンブルしなければならないため、BLOB内のデータを取り出す際の非効率性につながる。典型的には、これらの非効率性の影響を減らすために、BLOBの第1の部片を指すポインタは、BLOBそれ自体を即時に取り出す代わりに、戻される(return)ことになる。
たとえば、従業員情報のデータベースが、従業員写真に関するBLOB列を含むと想定する。ユーザが特定の従業員の写真を要求し、その写真へのポインタを戻されるとする。このポインタは物理位置、たとえば、写真の第1の部片が格納されている、ディスクのセクタの実際のディスクアドレスを表す16バイトの16進値を表す。この状況では、いくつかの問題が生じる可能性がある。ディスクアドレスがユーザにとってわかりにくいことに加えて、オペレーティングシステムがディスク上のデータを再編成した場合、この写真はもはやその場所に存在しない可能性があり、このケースでは「not found(見つかりません)」というメッセージがユーザに戻されることになる。
近年、BLOBを格納する別の方法が開発されてきており、この方法ではBLOBが連続ファイルまたは「FILESTREAM」としてファイルシステムに格納される。関係テーブル内の列にタグを付ける際に使用可能な、FILESTREAMデータストレージ属性が提供される。FILESTREAM属性は、その列に関するデータが、オペレーティングシステム(OS)のファイルシステム内にファイルとして格納されることになることを示す。データベース管理システムは、ファイルシステム内のファイルの作成および削除を管理する。ファイルシステム内のファイルとセル(行と列との交差部分)との間には、1:1の基準(reference)がある。FILESTREAM列内のデータは、SQLまたはMICROSOFT(登録商標)のT−SQLなどのプログラミング言語を使用する他の列内のデータと同じ方法で操作することができる。
米国特許出願公開第2004/148308号明細書 米国特許出願公開第2004/148272号明細書
したがって、FILESTREAM列は、大規模な非構造化データに関するデータベースで使用される。FILESTREAMデータストレージ属性の使用によって、引き続きデータベースへのアクセスを可能としながら、大規模な非構造化データを連続するファイルとしてファイルシステムに格納することができる。こうしたデータベース管理システムは、データのインテグリティを保証するため、およびデータベースの破損を避けるために、FILESTREAM属性を有するデータベースの行とその対応するFILESTREAMデータとの間の、リンクの整合性(すなわち「リンクレベル整合性」)を維持する必要がある。たとえば、ディスクに変更がコミットされる時点より以前に、電力障害またはシステムクラッシュなどの障害が発生した場合(すなわちフラッシュ)、結果としていくつかの問題が生じる可能性がある。たとえば、データベースが、ファイルシステム内に存在するファイルまたはディレクトリの存在を反映しないか、あるいはデータベースが、ファイルシステム内に存在しないファイルまたはディレクトリの存在を反映する可能性がある。このようにして、データベースとファイルとの間のリンクが破損すると、データベースユーザは、データベースが、データベース列内のFILESTREAMセルによって表される現在のデータの状態を正確に反映するものであることが保証されないため、データベースのインテグリティが損なわれる。
通常、リンクレベル整合性の維持は、整合性のチェックおよび修復、ならびにロギング(Logging)およびリカバリという、2つの異なる手法によって達成されてきた。整合性のチェックおよび修復では、クローリング(巡回:crawling)タスクが非整合性をチェックするためにデータベースおよびファイルシステムを検索し、潜在的にはこれらを修復する。こうした手法は時間がかかり、目標が定まらず、システムリソースを過度に消費する。
従来のロギング方法およびリカバリ方法は、データベースログ内でロギングを使用するか、またはトランザクテッドファイルシステム(Transacted File System)を利用して調整することができる。前者の方法では、ファイルシステムオペレーションが、データベースのデータ更新と共にデータベースログ内でロギングされる。こうした手法では、データベース管理システムがデータベースをリカバリした場合、ロギング済みのファイルシステムオペレーションに関して、ならびに、ファイルシステムデータを同じデータベースリカバリフレームワーク内のデータベースデータと整合させるために、やり直し(REDO)および取り消し(UNDO)オペレーションをトリガすることができる。こうした手法の欠点は、データベース管理システムが通常はファイルシステムと緊密に統合されていないため、ファイルシステムのディスクに対するデータフラッシュの知識(ナレッジ)がないことである。データフラッシュを調整する機能がないため、データベース管理システムは、クラッシュリカバリ時にトランザクションのリンクレベル整合性を維持するために役立つ、適切な先書きロギング(Write-Ahead-Logging)を達成するために、ファイルシステムオペレーションごとに、ログにログ記録(log record)をフラッシュさせなければならない。このようにログにフラッシュさせることで、結果として、1つのファイルシステムオペレーションにつき1つのディスクI/Oオペレーションが発生し、これは通常、許容できない量の性能オーバヘッドである。
後者の方法は、トランザクテッドファイルシステムを利用した調整を含み、ここではファイルシステム自体がトランザクションであり、リカバリが可能である。データベース管理システムは、優れたトランザクションマネージャ(「TM」)によって調整される分散トランザクションに関与する。クラッシュリカバリ時に、優れたTMは、疑わしいトランザクションを解決し、データベースとファイルシステムリソースマネージャとの間の整合性を確実にする。この手法の短所は、トランザクテッドファイルシステムが市販のオペレーティングシステムでは使用できないことである。したがって、多くのOSプラットフォーム上の多くのデータベース管理システムには、この手法は使用不可能である。加えて、この方法には、実装する際に複雑さおよび性能コストが加えられるという短所がある。
したがって、前述の短所に対処しながら、データベース列とファイルシステム内のそれらの対応するFILESTREAMデータとの間のリンクレベル整合性を維持するメカニズムが求められている。
前述の短所および欠点に鑑み、本明細書では、データベースとファイルシステムとの間でトランザクションのリンクレベル整合性を維持するための方法およびコンピュータ読み取り可能媒体が開示される。一方法では、ファイルシステムの変更がデータベースログの記録にロギングされ、このファイルシステムの変更に対応するファイルが、ファイルシステムフォルダ内に作成される。リカバリプロセス再始動時に、データベースログに基づいて分析オペレーションおよび条件付きやり直しオペレーションが実行され、ファイルシステムフォルダ内のファイルに基づいて条件付きやり直しオペレーションおよび取り消しオペレーションが実行される。その後、データベースログに基づいて取り消しオペレーションが実行される。
本発明の主題について、法的要件を満たすための特定性と共に説明する。しかしながら、この説明それ自体は、本件特許の範囲を限定することを意図するものではない。むしろ本発明者等は、特許請求の範囲に記載された主題が、他の現在または将来の技術と共に、本明細書に記載されたものと同様の様々なステップまたは要素を含むように、他の方法でも具体化可能であることを企図してきた。さらに本明細書では、「ステップ」という用語は、採用される方法の様々な態様を示唆するために使用可能であるが、この用語は、個々のステップの順序が明示的に記載されていない限り、および記載されている場合を除き、本明細書に開示された様々なステップ中、またはステップ間の、任意の特定の順序を示唆するものと解釈すべきではない。
コンピューティング環境の例
図1は、本発明が実施可能な好適なコンピューティングシステム環境100の一例を示す。コンピューティングシステム環境100は、好適なコンピューティング環境の単なる一例であり、本発明の用途または機能性の範囲に関して、いかなる制限も示唆することは意図していない。さらに、コンピューティング環境100は、オペレーティング環境100の例に示された構成要素のうちのいずれか1つまたはそれらの組み合わせに関する、任意の依存性または要件を有するものと解釈されるべきでもない。
本発明は、多数の他の汎用または特定用途向けコンピューティングシステムの環境または構成において、動作可能である。本発明で使用するのに好適な、良く知られたコンピューティングシステム、環境、および/または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、前述のシステムまたはデバイスのいずれかを含む分散コンピューティング環境、その他が含まれるが、これらに限定されるものではない。
本発明については、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な背景事情(context)の中で説明することが可能である。一般に、プログラムモジュールは、特定のタスクを実行するか、または特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。典型的には、プログラムモジュールの機能は、様々な実施形態で望ましいように組み合わせまたは分散することができる。本発明は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境でも実施可能である。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含むローカルとリモートの両方のコンピュータ記憶媒体に配置することができる。
図1を参照すると、本発明を実施するためのシステムの例には、コンピュータ110の形の汎用コンピューティングデバイスが含まれる。コンピュータ110の構成要素は、処理ユニット120、システムメモリ130、および、システムメモリを含む様々なシステム構成要素を処理ユニット120に結合するシステムバス121を含むことができるが、それらに限定されるものではない。システムバス121は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャのうちのいずれかを使用するローカルバスを含む、いくつかのタイプのバス構造のうちのいずれかとすることができる。例を挙げると、こうしたアーキテクチャは、業界標準アーキテクチャ(ISA:Industry Standard Architecture)バス、マイクロ・チャネル・アーキテクチャ(MCA:Micro Channel Architecture)バス、拡張ISA(EISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびメザニンバスとしても知られるPCI(Peripheral Component Interconnect)バスを含むが、これらに限定されるものではない。
コンピュータ110は、通常、様々なコンピュータ読み取り可能媒体を含む。コンピュータ読み取り可能媒体は、コンピュータ110がアクセス可能であり、揮発性および不揮発性媒体、取り外し可能および取り外し不能媒体の、両方を含む、任意の使用可能媒体とすることができる。例を挙げると、コンピュータ読み取り可能媒体は、コンピュータ記憶媒体および通信媒体を含むことができるが、これらに限定されるものではない。コンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための、任意の方法または技術で実施される、揮発性および不揮発性媒体、取り外し可能および取り外し不能媒体の、両方を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気記憶デバイス、あるいは、所望の情報を格納するために使用可能であり、コンピュータ110がアクセス可能な、任意の他の媒体を含むが、これらに限定されるものではない。通信媒体は、通常、搬送波または他の移送メカニズムなどの変調データ信号内で、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、または他のデータを具体化し、任意の情報配信媒体を含む。「変調データ信号」という用語は、信号内の情報を符号化するような方法で設定または変更されたその特徴のうちの1つまたは複数を有する信号を意味する。例を挙げると、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響、RF、赤外線、および他の無線媒体などの無線媒体を含むが、これらに限定されるものではない。前述のいずれかの組み合わせも、コンピュータ読み取り可能媒体の範囲に含まれるものとする。
システムメモリ130は、読み取り専用メモリ(ROM)131およびランダムアクセスメモリ(RAM)132などの、揮発性および/または不揮発性メモリの形のコンピュータ記憶媒体を含む。始動時などに、コンピュータ110内の要素間で情報を転送するのに役立つ基本ルーチンを含む、基本入力/出力システム133(BIOS)は、通常ROM 131に格納される。RAM 132は、通常、処理ユニット120によって、即時アクセス可能および/または現在動作中の、データおよび/またはプログラムモジュールを含む。例を挙げると、図1は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示す。
コンピュータ110は、他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ記憶媒体も含むことができる。単なる例を挙げると、図1は、取り外し不能の不揮発性磁気媒体に対して読み取りまたは書き込みをするハードディスクドライブ141と、取り外し可能の不揮発性磁気ディスク152に対して読み取りまたは書き込みをする磁気ディスクドライブ151と、CD−ROMまたは他の光媒体などの取り外し可能の不揮発性光ディスク156に対して読み取りまたは書き込みをする光ディスクドライブ155とを示す。オペレーティング環境例において使用可能な他の取り外し可能/取り外し不能、揮発性/不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROM、などを含むが、これらに限定されるものではない。ハードディスクドライブ141は、通常、インターフェース140などの取り外し不能メモリインターフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は、通常、インターフェース150などの取り外し可能メモリインターフェースによって、システムバス121に接続される。
前述の、および図1に示された、ドライブおよびそれらの関連付けられたコンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、およびコンピュータ110に関する他のデータのストレージを提供する。たとえば図1では、ハードディスクドライブ141はオペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を格納するものとして示される。これらの構成要素は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じであるか、またはこれらとは異なる可能性があることに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147には、少なくとも異なるコピーであることを示すために、ここでは異なる番号が与えられる。ユーザは、キーボード162、および、一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス161などの入力デバイスを介して、コマンドおよび情報をコンピュータ110に入力することができる。他の入力デバイス(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送用パラボラアンテナ、スキャナなどが含まれる場合がある。これらおよび他の入力デバイスは、しばしば、システムバスに結合されたユーザ入力インターフェース160を介して処理ユニット120に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などの、他のインターフェースおよびバス構造によって接続することも可能である。モニタ191または他のタイプのディスプレイデバイスも、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続される。コンピュータは、モニタに加えて、出力周辺インターフェース195を介して接続可能な、スピーカ197およびプリンタ196などの他の周辺出力デバイスも含むことができる。
コンピュータ110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク化環境において動作可能である。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の共通ネットワークノードとすることが可能であり、図1ではメモリ記憶デバイス181のみが示されているが、通常は、コンピュータ110に関して前述した要素の多くまたはすべてを含む。図1に示された論理接続は、ローカルエリアネットワーク(LAN)171およびワイドエリアネットワーク(WAN)173を含むが、他のネットワークも含むことができる。こうしたネットワーキング環境は、オフィス、企業規模コンピュータネットワーク、イントラネット、およびインターネットでよく見られる。
LANネットワーキング環境において使用される場合、コンピュータ110は、ネットワークインターフェースまたはアダプタ170を介してLAN 171に接続される。WANネットワーキング環境において使用される場合、コンピュータ110は、通常、インターネットなどのWAN 173を介した通信を確立するためのモデム172または他の手段を含む。内蔵型または外付けとすることが可能なモデム172は、ユーザ入力インターフェース160または他の適切なメカニズムを介してシステムバス121に接続することができる。ネットワーク化環境では、コンピュータ110に関して示されたプログラムモジュールまたはその一部を、リモートメモリ記憶デバイスに格納することができる。例を挙げると、図1は、メモリデバイス181上に常駐するものとしてリモートアプリケーションプログラム185を示すが、これに限定されるものではない。図示されたネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段が使用可能であることを理解されよう。
分散コンピューティングフレームワークまたはアーキテクチャの例
パーソナルコンピューティングおよびインターネットの集中に鑑みて、様々な分散コンピューティングフレームワークがこれまでに開発され、さらに現在開発中である。個人およびビジネスユーザには同様に、コンピューティング活動をますますウェブブラウザまたはネットワーク指向にする、アプリケーションおよびコンピューティングデバイス用のシームレスに相互運用可能なウェブ実行可能インターフェースが提供される。
たとえば、MICROSOFT(登録商標)の.NETプラットフォームは、サーバ、ウェブベースのデータストレージなどのビルディングブロックサービス、およびダウンロード可能なデバイスソフトウェアを含む。概して言えば、.NETプラットフォームは、(1)コンピューティングデバイスの全範囲を協働させるため、ならびにそれらにおいてユーザ情報を自動的に更新および同期化させるための機能、(2)HTMLではなくXMLをより多く使用することによって実行可能な、ウェブサイトに関する対話機能の増加、(3)たとえば電子メールなどの様々なアプリケーションまたはOffice .NETなどのソフトウェアの管理のための、中央の起点からユーザへの製品およびサービスのカスタマイズされたアクセスおよびデリバリーを特徴とするオンラインサービス、(4)情報へのアクセスの効率および容易さを向上させることになる、集中データストレージ、ならびにユーザおよびデバイス間での情報の同期化、(5)電子メール、ファックス、および電話などの様々な通信媒体を統合するための機能、(6)それによって生産性が向上し、プログラミングエラーの数を減少させる、開発者にとっての再使用可能モジュールを作成するための機能、ならびに、(7)多くの他のクロスプラットフォーム統合機能、を提供する。
本明細書では、諸実施形態の例について、コンピューティングデバイス上に常駐するソフトウェアに関連して説明するが、本発明の1つまたは複数の部分は、サービスがすべての.NETの言語およびサービスによって実行され、これらにおいてサポートされ、またはこれらを介してアクセスされるように、オペレーティングシステム、API、またはコプロセッサと要求オブジェクトとの間のミドルウェアソフトウェアを介して、さらに他の分散コンピューティングフレームワークにおいても同様に、実施することもできる。
データベース環境
以下の考察では、当業者が、データベースに関連したFILESTREAMデータストレージ属性の実施に精通していると想定される。こうした状況は、参照によりそれら全体が本明細書に組み込まれた米国特許出願(特許文献1および特許文献2)で論じられている。したがって本明細書では、わかりやすくするために、こうした状況の詳細は省略される。
しかしながら、追加の背景情報を提供して、以下の諸実施形態の考察を本明細書に入れるため、図2は、本発明の諸態様が実施可能なデータベース構成の例を示す。次に図2を参照すると、(1)関連情報の位置を特定し、操作するために、データベース210に対するクエリの開始元であるクライアントマシン280、(2)データベース210をホストするデータベースサーバ200、および(3)所与のデータベース210に関連付けられたFILESTREAM値(またはファイル)を格納することが可能なファイルシステムボリューム225を管理し、データベース210に対する帯域外更新をサポートする、FILESTREAMサーバ240の、3つの異なる役割を果たすための3つのマシンが実施可能である。FILESTREAMファイルが、データベース列に格納されているBLOBに対応可能であることを理解されよう。各データベースは、1つまたは複数のFILESTREAMグループ215を有することが可能であり、各FILESTREAMグループ215は1つまたは複数のボリューム225を含むことが可能である。このボリュームは、FILESTREAMサーバ240上に常駐可能である。データベースインストールの例では、何千ものクライアントマシン、何十ものFILESTREAMサーバ、および1つのデータベースサーバが存在可能である。FILESTREAMデータが格納されたボリュームがデータベースと一緒に置かれた場合、特殊な構成が生じる。
FILESTREAM値を含むすべてのファイルシステムボリューム225に関連付けられた識別子(たとえばGUID)が、クライアントマシン280がFILESTREAMサーバ240とのネットワーク接続を確立することを可能にするロケータサービスに登録されることによって、登録メカニズムを提供することが可能である。さらに、データベースサーバ200は、それらによってホストされるデータベース210の識別子(たとえばGUID)を登録する。こうしたロケータサービスの可能な実施の1つが、ボリュームGUIDおよびデータベースGUIDをIPアドレスにマッピングすることができる、DNS(Domain Name System)サービスである。
SQLデータベースサーバ200とFILESTREAMサーバ240との間で、SQLメタデータおよびFILESTREAM値データのコヒーレンス(coherency)を維持するために、FILESTREAMサーバ240およびクライアントリダイレクタを、プロトコル上に構築することができる。クライアント側では、プロトコル拡張によって、クライアントマシン280が、データベースサーバ200からFILESTREAMサーバ240へとリダイレクトされた要求を処理できるようになる。データベースサーバ200から様々なFILESTREAMサーバ240へのアクティビティの最適なオフロードを容易にするために、プロトコル拡張は、たとえば、制約、トリガ、または列の追加、およびトリガ、制約、または列の削除など、様々なテーブルのメタデータにおける変更に関する通知を交換する機能を含むことができる。FILESTREAMアクセスモジュール、またはSQLスタックの一部として実施される同様のものは、FILESTREAMサーバ240上でキャッシュされたメタデータの伝搬/無効化を開始するため、および、それらがデータベースサーバ200上でのメタデータ変更と同期されることを保証するために必要なコールアウトを含むことができる。
図2に示された3つのマシン構成をより少ないマシンに縮小できる、いくつかのケースがある。たとえば1つのシナリオでは、FILESTREAMデータを含むファイルシステムボリュームを、データベース(たとえばSQL)サーバと同じマシン上でホストすることができる。他のシナリオ例では、SQLサーバをホストしているマシンから、テーブルにアクセスすることができる。基礎となるアーキテクチャの見地からすると、これは、ネットワークをまたがったリソースへのアクセス、またはローカルリソースへのアクセスの、いずれかになる可能性がある。
実施形態の例
ある実施形態は、ファイルシステム内のデータベース列(たとえば構造化データ)と、対応するFILESTREAMデータ(たとえば非構造化データ)との間での、トランザクションのリンクレベル整合性を維持するためのメカニズムを提供する。本明細書で使用される場合、トランザクションのリンクレベル整合性とは、たとえばSQLデータベースなどのデータベースが、ファイル名およびディレクトリ名、ロケーションなどに関して、ファイルおよびディレクトリの正確な状況を有する状態に対応する。たとえば、データベースが、ファイルまたはディレクトリが所与の名前と共に存在すると考える場合、ファイルまたはディレクトリはその所与の名前と共にファイルシステム内に存在しなければならない。同様に、データベースが、ファイルまたはディレクトリが存在しないと考える場合、ファイルまたはディレクトリはファイルシステム内に存在してはならない。ある実施形態において、トランザクション的に整合性を維持することのできるファイルおよび/またはディレクトリのオペレーションのタイプには、たとえば、作成、削除、および/または名前変更が含まれる。前述のように、トランザクションのリンクレベル整合性が損失すると、こうした状態の結果として生じるデータの非整合性により、エラー、データ破損、またはシステムクラッシュさえも生じる可能性がある。システムクラッシュが発生した場合、リンクレベル整合性が失われる可能性がある。したがって、クラッシュまたは他のシステム障害後に、データベースオペレーションが再開されることになる場合、リンクレベル整合性を再確立する機能が非常に重要である。
トランザクションのリンクレベル整合性の維持を実行可能にするために、ある実施形態では、ファイルシステムオペレーションが実行される前に、情報の取り消しおよびやり直しの両方をログに記録することができる。こうした実施形態では、ファイルシステムにおける論理オペレーションがべき等(idempotent)でないため、ログシーケンス番号(「LSN」)の更新時にリカバリやり直しオペレーションを条件付けることができる。さらにある実施形態では、リカバリ時にデータベーストランザクションがロールバックされる必要がある場合、ファイルシステム効果のロールバックを容易にするために、ファイルシステムメタデータがディスクに保存される前に、ログ記録をフラッシュさせるように動作することができる。最終的に、ログを切り捨てられるように、ある時点において、ファイルシステム効果をディスクにフラッシュすることができるはずであり、それによって記憶スペースが節約される。
したがって、ある実施形態では、データベースログおよびファイルシステムディレクトリの両方において、ファイルシステムオペレーション(たとえば、ファイルまたはディレクトリ上で実行されるオペレーション)をロギングするためのメカニズムを提供する。ある実施形態のメカニズムは、たとえばNTFSなどの、一般的なファイルシステムに存在する「順序付け特性(ordering property)」を活用することによって、前述のロギング技法を効率的に(たとえば、データベースログへの強制的なフラッシュを必要とせずに)使用する、先書きロギング(Write-Ahead-Logging)を達成することができる。「順序付け特性」とは、ファイルシステムがあるファイルまたはディレクトリに対して変更Aを実行した後、あるファイルまたはディレクトリに変更Bを実行した場合、クラッシュ再始動時に、ファイルシステムが変更Aなしに変更Bを有することは決してないことを示す。言い換えれば、システムがクラッシュした時点(「クラッシュポイント」)では、クラッシュの理由にかかわらず、ファイルシステムそれ自体が破損しない限り、変更なし、変更Aのみ、または変更AおよびBの両方、のいずれかが結果として発生するが、変更Aなしの変更Bは発生しない。加えて、ある実施形態では、外部コーディネータまたはトランザクテッドファイルシステムの必要なしに、データベースリカバリフレームワークの既存の構成要素を使用することができる。結果として、その比較的単純かつ効率的なオペレーションにより、ある実施形態を幅広く展開することができる。
前述のデータベース環境では、FILESTREAMデータファイルを、所与のデータベースに関する特定のディレクトリに編成することができる。ある実施形態では、あらゆるFILESTREAMファイルが、行(ファイル名によって表すことができる)、列、テーブル、および、ファイルの発生が可能なデータベースを符号化するパス名を有することができる。たとえば、ファイルストリームグループのルートに対するFILESTREAMファイルのパス名の例は、\FILESTREAM-data-container\table\column\rowguidとすることができる。ディレクトリ構造は、たとえば列の削除または追加、テーブルの名前変更などの、テーブル構造を変更するオペレーション中に変更することができる。各状況において、任意のこうしたテーブル構造オペレーション中に、テーブル内の行を操作するオペレーションを除外するための、適切なロックを取得することができる。言い換えれば、データベース管理システムは、ファイルシステム階層内の同じ上位チェーンに沿った、ファイルシステムオブジェクト(ファイルおよびディレクトリ)上で実行される同時ファイルシステムオペレーションを、直列化(serialize)することができる。
ある実施形態は、トランザクションのリンクレベル整合性を維持するために、こうしたディレクトリ規則の知識(ナレッジ)を活用することが理解されよう。加えて、ある実施形態は、ファイルシステムログベースのリカバリおよび分離用アルゴリズム活用セマンティクス(ARIES:Algorithms for Recovery and Isolation Exploiting Semantics)リカバリメソッドと、データベース管理システムのARIESリカバリメソッドとを組み合わせる。こうした様式では、各システムのリカバリは互いに独立しており、ある実施形態によって組み合わせられた場合であっても、リカバリは、データベースデータおよびファイルシステムデータをトランザクションのリンクレベル整合性状態にする。ARIESリカバリシステムは、当業者に知られているはずであるため、わかりやすくするために、これに関する実施の詳細は本明細書に含まない。
データベース管理システムのARIESリカバリとファイルシステムのARIESリカバリとのこうした組み合わせは、ある実施形態が、たとえばファイルシステム内でのロギング目的でファイル名を使用することによって実行可能とすることができる。こうした実施形態では、特定オペレーションのLSNをファイルの名前に符号化することができる。ファイルの同じ名前は、ファイルシステムの変更を経験するファイルシステムオブジェクト(ファイルまたはディレクトリ)の名前でも符号化されることになる。ファイルIDは、データベース復元時にファイルシステムによって再割り当てされる可能性があり、ロギングについては十分に安定していないため、こうしたファイル名ベースのロギング(すなわち、LSNとファイルシステムオブジェクト名との連結)により、ファイルIDベースのロギングに関連付けられた問題が回避されることを理解されよう。
したがって、ある実施形態は、BLOBを格納するためにFILESTREAMデータ属性を使用するデータベースと共に実施することができる。こうしたデータベースでは、ファイルシステムオペレーション(たとえばBLOBの作成、名前変更、または削除)がデータベースログとファイルシステムログの両方にロギングされる。オペレーションをファイルシステムログにロギングする場合、オペレーションはゼロバイトファイル(こうしたゼロバイトファイルは、本明細書では「ファイルシステムログエントリ」と呼ばれる)として記録することができる。各データベースログ記録にLSNを割り当てることができる。ファイルシステムログエントリの場合、対応するデータベースログ記録のLSNを使用して、ファイル名に符号化することができる。ファイル名は、ロギングされるオペレーションについて記載した他の符号化情報を含むこともできる。こうした符号化は、以下で論じるように、いかなる追加のプロセスもなしに、LSNおよび他のオペレーション記述子(descriptor)情報を単にファイル名の中に配置することができるか、あるいは、LSNおよび任意の他の情報を、たとえばアルゴリズムを使用した暗号化などの任意のタイプのフォーマットで格納することができることを理解されよう。
オペレーションでは、ある実施形態は、ファイルシステムオペレーションが実行される予定の場合、オペレーションは第1にデータベースログをロギングし、次にファイルシステムログをロギングし、ついで、ファイルシステムオペレーションが実行される。実際のファイルシステムオペレーションに先立って、ログエントリが入力されるとすると、オペレーションそれ自体が発生し、ロールバックされる必要がある場合は必ず、オペレーションのファイルシステムログエントリが存在することになるため、リカバリ方法で任意のオペレーションをどのようにやり直すかを決定できるはずである。
ファイルシステムフォルダを使用して、先書きロギングを達成するためにファイルシステムオペレーションをロギングすることができる。たとえば、フォルダXの下にファイルAが作成される前に、LOG\X〜A.LSN.Xact-ID.Createと呼ばれるファイルが、LOGと呼ばれるファイルシステムフォルダに作成される。このファイル名は、実行中のアクションを表すために、その内部に符号化された十分な情報を有する(LSN、Xact-ID、A、およびCreateは、それぞれ、LSN、トランザクションID、ファイル名、および作成オペレーションを表す記述子である)。ある実施形態では、作成オペレーションの実行に先立って、このファイル名が格納される。したがって、前述の順序付け特性は、Aが存在する場合、LOG\X〜A.LSN.Xact-ID.Createログエントリも存在しなければならないことを示す。オペレーションがロールバックされることになる場合、実施形態はこの知識(ナレッジ)を使用することができる。ある実施形態では、NTFSの場合のように、前述の「順序付け特性」が同じボリューム内でのみ適用可能である場合、ファイルシステムログフォルダをファイルシステムデータと同じボリューム上に一緒に置く必要があることに留意されたい。
ディレクトリおよび/またはファイルのいずれかの削除の場合、ある実施形態は、ロールバックの場合にそのアイテムが復元可能なように、削除されることになるアイテムの名前変更を提供する。理解されるように、削除されることになるアイテムが名前変更の代わりに実際に削除された場合、アイテムを復元する元になるデータがなくなるため、削除オペレーションのロールバックは不可能となる。ある実施形態は、このために、たとえばDELETEDと命名されたファイルシステムフォルダを使用することができる。
ここまでファイルロギングオペレーションの例について論じてきたが、次にクラッシュリカバリに関する実施形態について論じる。システムクラッシュの場合、クラッシュポイントで、ログエントリおよび/またはファイルシステムオペレーションのうちの1つまたは複数が実行不可能であることを理解されよう。データベースが再始動されることになる場合、クラッシュの結果として、ログは様々な構成である可能性がある。図3A〜Cは、クラッシュなどのシステム障害の結果として生じる可能性のある、3つのログシナリオの例を示す。
図3Aは、内部にログエントリが記録された、データベースログ302およびファイルシステムログ304を示す。クラッシュポイント310は、システムクラッシュ、エラー、その他により、システムがオペレーションを停止した時点を表す。図3Aでは、ログ302および304がタイムラインとして表され、ログ302および304の左側がより以前の時間であり、右側がより最近の時間であることがわかる。オペレーションAおよびBは、適切なLSNを有するログエントリを表す。したがって図3Aでは、データベースログ302に変更AおよびBが記録され、ファイルシステムログ304は変更Aのみを有する、シナリオが見られる。ファイルシステムログ304に記録されたようなオペレーションAは、前述のファイル名とすることができる。図4に関して以下で論じるように、ある実施形態は、データベースログ302の方がファイルシステムログ304よりも多くの情報を取り込んでいるため、全面的にデータベースログ302に基づいて、ARIESリカバリを実行することができる。
図3Bは、データベースログ302およびファイルシステムログ304の両方が、クラッシュポイント310に先立って、変更AおよびBをフラッシュしたシナリオを表す。こうしたシナリオでは、ある実施形態は、ファイルシステムログ304が取り込んだ情報と少なくとも同じ量をデータベースログが取り込んでいるため、全面的にデータベースログ302に基づいて、ARIESリカバリを実行することもできる。
図3Cは、一般にデータベースログに関するいくつかの実際の問題を考慮の対象とするシナリオを表す。前述のように、ある実施形態は、ファイルシステムログ304に先立ってデータベースログ302を更新できるものと定めているが、ファイルシステムログエントリがファイルシステムログ304にコミットされるのに先立って、ログ記録をデータベースログ302にコミットするのに十分な頻度で、データベースログ記録をフラッシュすることができない。ログのフラッシュには、コストのかかるシステムI/Oオペレーションが必要であることを理解されよう。したがって、データベースが、そのログ記録/エントリを、より速い処理速度に対するトレードオフとして、より低い頻度でフラッシュするように構成される場合、いくつかの状況が生じる可能性がある。したがって、図3Cは、変更Bがデータベースログ302およびファイルシステムログ304の両方にロギングされたが、ファイルシステムログ304でのみコミットされたため、システムクラッシュ後、変更Bはファイルシステムログ304にのみ残存することを表す。したがって、たとえログ記録が最初にデータベースログ302に対して作成された場合であっても、クラッシュの再始動時に、変更Bはファイルシステムログ304内にのみロギングされている。図4に関して以下で論じるように、こうしたシナリオでは、ある実施形態は、ファイルシステムログ304をデータベースログ302への論理拡張として扱うことが可能であり、データベースログ302によって取り込まれなかったファイルシステムオペレーションに関する追加の情報が、データベースログ302のクラッシュポイントと一致する状態に、ファイルシステムをロールバックするために使用される。
次に図4を参照すると、システムクラッシュなどの後に、データベースをリカバリする方法例400を表す、流れ図が提供される。方法例400は、ARIESアルゴリズムを組み込むことを理解されよう。加えて方法例400は、前述のように、図3A〜Cに関連してデータベースおよびファイルシステムログを再検討できることを理解されたい。
したがって、図3A〜Cに関連して上記で論じたように、最新のLSNを有するログ記録を含む、チェックポイント以降などに累積されたすべてのログ記録を見つけるために、ステップ401で、データベースログ302などのデータベースログが分析される。ある実施形態では、ステップ401は、ロールバック時に、ロールバックする必要のあるトランザクションが識別されるように、実施形態がアクティブなトランザクションを収集する、典型的なARIES分析段階と同じように実行できることを理解されたい。
ステップ403で、ログ記録に格納された情報に従って、条件付きでファイルシステムの変更を再適用することによって、図3A〜Cに関連して上記で論じたようなデータベースログ302などのデータベースログを、ロールフォワード(roll forward)することができる。あらゆるログ記録について、2つのLSN間、すなわち、ログ記録それ自体のLSN(例示の目的で、たとえば「LSN1」)と、やり直し情報に対応するファイルまたはディレクトリ名について、または任意の上位ディレクトリについて、ファイルシステムログフォルダにロギングされてきた最大のLSN(例示の目的で、たとえば「LSN2」)との間の比較で、やり直しオペレーションに条件付けすることができる。LSN1の方がLSN2よりも大きい場合、これは、前述の「順序付け特性」に基づいて、ファイルシステム変更に関するファイルシステムログエントリが、ディスクにコミットされていないことを示す。加えてこれは、前述のように、実際のファイルシステム変更は常にファイルシステムログエントリの作成後に実行されるため、実際のファイルシステム変更がディスクにコミットされていないことも示す。この場合、データベースログ記録に記述されたファイルシステム変更のやり直しが実行される。
LSN1の方がLSN2よりも小さい場合、実際のファイルシステム変更がディスクにコミットされている。これは、前述のように、FILESTREAMデータを保持するデータベース内で、同じファイル/ディレクトリ名およびその上位に対して実行された変更が直列化されるからである。言い換えれば、LSN1に対応するファイルシステム変更が最初に完了するまで、LSN2を備えたファイルシステムログエントリは作成されない。「順序付け特性」は、LSN2を備えたファイルシステムログエントリがディスクにコミットされている場合、LSN1に対応するファイルシステム変更も同様にディスクにコミットされていなければならないことを保証する。したがって、この場合、やり直しがスキップされる。
LSN1がLSN2に等しい場合、実際のファイルシステム変更は、ディスクにコミットされているかまたはされていない可能性がある。この場合、ある実施形態は、ファイルシステムの実際の状態に基づいて、変更を再適用する必要があるかどうかを判別することができる。たとえば、ログ記録/エントリに「ファイルAの作成(Create File A)」と記述されている場合、ファイルシステムをチェックして、ファイル「A」がすでに存在するかどうかを調べる。ファイル「A」が存在する場合、変更を再適用する必要はない。ファイル「A」が存在しない場合、ファイル「A」が再作成されることになる。ある実施形態では、ステップ403は、典型的なARIESやり直しフェーズと同じように実行できることを理解されたい。
ステップ405で、データベースおよびファイルシステムログの状態に応じて、必要なリカバリのタイプが決定される。加えて、ステップ405に関連して、リカバリの準備ステップを実行することができる。たとえば、ログは、ステップ403および図3A〜Cに関連して前述した状況のいずれかとすることができる。ある実施形態では、対応するデータベースログの終端LSNを超えたファイルシステムログフォルダ内の各ファイルをスキャンし、そのファイル名をメモリ内に記録することができる。その後、ロールフォワードおよびロールバックの両方のために、LSNに従って、順次または逆などのスキャン順序を可能にするために、ファイル名をたとえばLSN順に格納することができる。ある実施形態が、データベースログの終わりによって反映される状態にファイルシステムをリカバリする必要があるため、データベースログの終端LSNを超えるLSNを有するログエントリのロールバックが必要な可能性がある。ある実施形態は、ステップ405で、データベースログの終端LSNよりも大きいLSNを備えるログエントリがファイルシステムログ内にないことがわかった場合、以下で論じるステップ407および409をスキップすることができる。こうした状況は、図3A〜Bに関連して上記で説明している。
ステップ407で、ロールフォワードプロセスは、LSNに基づく昇順で、ステップ405によって、メモリ内に記録されたあらゆるファイルシステムログエントリに基づいて、やり直しオペレーションを条件付きで実行する。実際の条件付きやり直しアルゴリズムは、一実施形態で、ステップ403に関連して上記で説明したものと同一とすることができる。ステップ409で、LSNに基づく降順で、ステップ405によって、メモリ内に記録されたファイルシステムログエントリに基づいて、ロールバックプロセスを実行することができる。当業者であれば知っているはずであるように、ファイルシステムのログフォルダにおける取り消しオペレーションの実行により、補正ログ記録(「CLR:Compensation Log Record)」)を生成することができる。こうしたCLRは、データベースログ内ではなく、ファイルシステムログフォルダ内での適用が必要な可能性がある。ファイルシステム内でロールバックプロセスが完了すると、データベースログの終端LSNより大きいLSNを備えたファイルシステムログエントリを削除できるように、すべてのファイルシステム効果をフラッシュすることができる。
後続の任意のデータベースログロールバックが開始されると、ロールバックプロセスは、データベースログとファイルシステムログの両方で、CLRのロギングを開始できるため、こうしたオペレーションが重要である可能性があることを理解されよう。結果として、ファイルシステムログが、データベースログの終端LSNを超えて消去されなかった場合、データベースログのロールバックCLRロギングアクティビティによってLSNの衝突が生じる可能性がある。ファイルシステムをフラッシュするために、ある実施形態は、ステップ409の終わりまでに影響を与えたすべてのファイルを追跡し、それらのファイルを1つずつフラッシュすることができる。ある実施形態は、単に新しい一時ファイルを作成し、この一時ファイルをフラッシュし、続いてこれを削除するために、ファイルシステムの「順序付け特性」を活用することもできる。この新しいファイルの作成およびフラッシュにより、すべての以前のファイルシステム変更(たとえば、作成、削除、名前変更)も同様にフラッシュされるか、またはそうでなければ「順序付け特性」を保持できない。ステップ409が完了すると、ファイルシステムは、データベースログの終わりによって反映される状態にロールバックされる。
ある実施形態では、取り消しオペレーションが特別なディスクスペースを占有しない。たとえば、ファイル作成の取り消しは、ディスクリソースを解放するだけである。ファイル削除の取り消しは、ディスクスペースの使用率を上げることなく、単に、既存のファイルを名前変更するだけの場合がある。こうした特徴は、ディスクスペースがほぼ完全に消費された状況において重要である可能性があることを理解されよう。
ステップ411で、ロールバックは、データベースログの終わりから、最も古いアクティブLSNまで実行することができる。ある実施形態で、ステップ411は、典型的なARIES取り消し段階と同じように実行できることを理解されたい。ステップ411が完了すると、データベースおよびファイルシステムが相互に一致する状態に戻されている。
したがってステップ413で、任意の新しいファイルシステムオペレーションを受け入れるのに先立ち、チェックポイントオペレーションを実行することができる。このような場合、クラッシュなどのシステムエラーが将来発生しても、前述のステップ401〜411で実行されたリカバリプロセスを、同じオペレーションに対して繰り返す必要はない。
図4の方法400は、ARIES方法論を、ある実施形態のデータベースおよびファイルシステムリカバリ方法に組み込むことによって実施されることを理解されよう。しかしながら、ある実施形態は、ARIESとは異なる動作をする要素を組み込むことができることも理解されたい。たとえば、次に図5を見ると、CLRを有するファイルシステムログをロールバックする方法例500が示される。方法500は、図4に関連して上記で論じた方法400に関連して実施することができる。典型的なARIESリカバリでは、CLRは取り消されない。以下の考察でわかるように、ある実施形態は、こうした取り消しオペレーションをCLRに対して実行することができる。
したがって、ステップ501で、ログ記録が非CLRログ記録であるかどうかが判別される。非CLRログ記録である場合、さらにステップ505で、CLRによって補正されたログ記録であるかどうかが判別される。補正されていない場合、ステップ509で、取り消しオペレーションが実行される。補正されている場合、ステップ507で、取り消しオペレーションはスキップされる。ステップ501での判別の結果、ログ記録が非CLRログ記録でない(すなわち、ログ記録がCLR記録である)場合、ステップ503で、ログ記録が、(LSNなどによって決定された)データベースログの終わりより前のログ記録を補正するCLRであるかどうかが判別される。そうしたCLRである場合、ステップ509で、その記録に関する取り消しオペレーションが実行される。そうしたCLRでない場合、ログ記録は、データベースログの終わりより後のログ記録を補正するCLRである。こうした場合、ステップ507で、取り消しオペレーションがスキップされる。理解されるように、CLRの取り消しによって、他のCLRがロギングされる可能性がある(以前のCLRの取り消しを示す)。しかしながら、ある実施形態は、特定ファイルシステムオペレーションに対するリカバリオペレーションが、結果としてファイルシステムログ内に最大2つのCLRを生成できることから、ファイルシステムログスペースの予約によって、たとえば、2つの別々のCLRを表す2つのファイルを作成するために十分なスペースが予約されることが保証されるはずである。
CLRの取り扱いについて前述した手順は、各ロールバックプロセスが互いに独立するように、ファイルシステムログのロールバックおよびデータベースログのロールバックにまたがって、いかなる持続状態も格納しないことを理解されたい。他の諸実施形態は、CLRに関するUNDOオペレーションをスキップするためにARIESアルゴリズムに固執しながら、データベースログ内のどのログ記録が、ファイルシステムログ内のCLRによって補正されたかに関するような状態を、一貫して記憶しておくことができる。
ある実施形態は、データベースログ内でのロギングが重複することなく、ファイルシステムログフォルダのみに従って、前述のロギングおよびリカバリを実施するように選択できることも理解されよう。しかしながら、ある実施形態は、データベースロギング機能の実施が典型的にはファイルシステムフォルダベースのログの実施よりもかなり優れていることを企図している。したがって、ある実施形態は、データベースログに基づいてリカバリオペレーションを実行し、ファイルシステムログを、データベースログによって取り込まれたのではないそれらのオペレーションに対する拡張としてのみ使用する。結果として、ファイルシステムログのみを使用するのに比べて、全体的なリカバリパフォーマンスが向上する。
以上、本発明について、様々な図面の諸実施形態に関連して説明してきたが、他の同様の実施形態が使用可能であるか、または、本発明から逸脱することなく、本発明の同じ機能を実行するために、記載された実施形態への修正および追加が実行可能であることを理解されよう。したがって本発明は、いかなる単一の実施形態にも限定されるものではなく、添付の特許請求の範囲に従った幅および範囲内にあるものと理解されたい。
本発明の諸態様が実施可能なコンピューティング環境の例を示す図である。 本発明の諸態様が実施可能なデータベース構成の例を示す図である。 本発明の諸態様が実施可能なログの例を示す図である。 本発明の諸態様が実施可能なログの例を示す図である。 本発明の諸態様が実施可能なログの例を示す図である。 本発明の諸実施形態に従った方法の例を示す流れ図である。 本発明の諸実施形態に従った方法の例を示す流れ図である。

Claims (20)

  1. データベースとファイルシステムとの間でのトランザクションのリンクレベル整合性を維持する方法であって、
    ファイルシステムの変更をデータベースログの記録にロギングするステップと、
    前記ファイルシステムの変更に対応するファイルをファイルシステムログフォルダ内に作成するステップと、
    リカバリ再始動時に、
    前記データベースログに基づいて、分析オペレーションおよび条件付きやり直しオペレーションを実行するステップと、
    前記ファイルシステムログに基づいて、条件付きやり直しオペレーションおよび取り消しオペレーションを実行するステップと、
    前記データベースログに基づいて、取り消しオペレーションを実行するステップと
    を含むことを特徴とする方法。
  2. 前記ファイルに関連付けられたファイル名を作成するステップをさらに含むことを特徴とする請求項1に記載の方法。
  3. 前記ファイル名が、前記ファイルシステムの変更に対応する、ファイルシステムオブジェクト名、ログシーケンス番号、トランザクション識別子、およびオペレーション記述子を含むことを特徴とする請求項2に記載の方法。
  4. 前記データベースログ記録のログシーケンス番号を前記ファイル名に記録するステップをさらに含み、
    前記ログシーケンス番号は前記ファイルシステムの変更に対応することを特徴とする請求項2に記載の方法。
  5. 前記ロギングするステップおよび前記作成するステップは、前記ファイルシステム変更の実行に先立って実行されることを特徴とする請求項1に記載の方法。
  6. 前記ロギングするステップは、前記作成するステップに先立って実行されることを特徴とする請求項5に記載の方法。
  7. 前記データベースログおよび前記ファイルシステムログフォルダは、それぞれ複数の記録およびファイルを含み、
    前記ファイルシステム変更に関連付けられたログシーケンス番号を、前記複数の記録のうちの1つに記録するステップと、
    前記複数の記録のうちの1つを選択するステップと
    をさらに含み、
    条件付きやり直しオペレーションを実行する前記ステップが、前記ファイルシステム変更に関連付けられた最大のログシーケンス番号と、前記選択された記録に関連付けられたログシーケンス番号とを比較するステップをさらに含むことを特徴とする請求項1に記載の方法。
  8. 前記選択された記録に関連付けられた前記ログシーケンス番号が、前記ファイルシステム変更に関連付けられた最大のログシーケンス番号よりも大きいかまたは等しい場合、前記条件付きやり直しオペレーションは、前記ファイル上で実行されることを特徴とする請求項7に記載の方法。
  9. 前記ファイルシステム変更は、前記ファイルシステムに格納されたバイナリラージオブジェクトデータに対して実行されることを特徴とする請求項1に記載の方法。
  10. 前記ファイルシステム変更は、前記ファイルシステムのファイルまたはディレクトリに対して実行されることを特徴とする請求項1に記載の方法。
  11. 分析オペレーション、条件付きやり直しオペレーション、および取り消しオペレーションを前記データベースログ上で実行するステップは、リカバリおよび分離用アルゴリズム活用セマンティクス(ARIES)に従って実行されることを特徴とする請求項1に記載の方法。
  12. 条件付きやり直しオペレーションおよび取り消しオペレーションを前記ファイル上で実行するステップは、ARIESに従って実行されることを特徴とする請求項1に記載の方法。
  13. 前記ファイルは第1のファイルであり、
    第2のファイルを作成およびフラッシュすることによって、ファイルシステムフラッシュオペレーションを実行するステップをさらに含むことを特徴とする請求項1に記載の方法。
  14. データベースとファイルシステムとの間でのトランザクションのリンクレベル整合性を維持する方法であって、
    ファイルシステムの変更を、複数の記録を有するデータベースログの記録にロギングするステップと、
    第1のログシーケンス番号を前記記録に割り当てるステップと、
    ファイル名を有し、前記ファイルシステムの変更に対応するファイルを、複数のログシーケンス番号を有するファイルシステムログフォルダ内に作成するステップと、
    前記第1のログシーケンス番号を前記ファイル名内に符号化するステップと、
    リカバリ再始動時に、
    前記データベースログに基づいて、分析オペレーションおよび条件付きやり直しオペレーションを実行するステップと、
    前記複数の記録のうちの1つを選択するステップと、
    前記選択された記録に関連付けられたログシーケンス番号と、前記ファイルシステム変更に関連付けられた最大のログシーケンス番号とを比較するステップと、
    前記選択された記録に関連付けられたログシーケンス番号が、前記ファイルシステム変更に関連付けられた最大のログシーケンス番号よりも大きいかまたは等しい場合、ログ記録をやり直すステップと、
    前記ファイルシステムログフォルダに基づいて、取り消しオペレーションを実行するステップと、
    前記データベースログに基づいて、取り消しオペレーションを実行するステップと
    を含むことを特徴とする方法。
  15. 前記ファイル名が、前記ファイルシステムの変更に対応する、ファイルシステムオブジェクト名、トランザクション識別子、およびオペレーション記述子をさらに含むことを特徴とする請求項14に記載の方法。
  16. 前記ロギングするステップおよび前記作成するステップは、前記ファイルシステム変更の実行に先立って実行され、
    前記ロギングするステップは、前記作成するステップに先立って実行されることを特徴とする請求項14に記載の方法。
  17. 前記ファイルシステム変更は、前記ファイルシステムに格納されたバイナリラージオブジェクトデータに対して実行されることを特徴とする請求項14に記載の方法。
  18. 分析オペレーション、条件付きやり直しオペレーション、および取り消しオペレーションを前記データベースログに基づいて実行し、条件付きやり直しオペレーションおよび取り消しオペレーションを前記ファイルシステムログに基づいて実行するステップは、リカバリおよび分離用アルゴリズム活用セマンティクス(ARIES)に従って実行されることを特徴とする請求項14に記載の方法。
  19. 前記ファイルは第1のファイルであり、
    第2のファイルを作成およびフラッシュすることによって、ファイルシステムフラッシュオペレーションを実行するステップをさらに含むことを特徴とする請求項14に記載の方法。
  20. データベースとファイルシステムとの間でのトランザクションのリンクレベル整合性を維持する方法を実行するコンピュータ実行可能命令を有するコンピュータ読み取り可能媒体であって、
    ファイルシステムの変更をデータベースログの記録にロギングするステップと、
    前記ファイルシステムの変更に対応するファイルをファイルシステムログフォルダ内に作成するステップと、
    リカバリ再始動時に、
    前記データベースログに基づいて、分析オペレーションおよび条件付きやり直しオペレーションを実行するステップと、
    前記ファイルシステムログフォルダに基づいて、条件付きやり直しオペレーションおよび取り消しオペレーションを実行するステップと、
    前記データベースログに基づいて、取り消しオペレーションを実行するステップと
    を含むことを特徴とするコンピュータ読み取り可能媒体。
JP2008509997A 2005-05-06 2006-03-09 データベースとファイルシステムとの間でのリンクレベル整合性の維持 Expired - Fee Related JP5259388B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/123,563 2005-05-06
US11/123,563 US8145686B2 (en) 2005-05-06 2005-05-06 Maintenance of link level consistency between database and file system
PCT/US2006/008278 WO2006121500A2 (en) 2005-05-06 2006-03-09 Maintenance of link level consistency between database and file system

Publications (3)

Publication Number Publication Date
JP2008541225A true JP2008541225A (ja) 2008-11-20
JP2008541225A5 JP2008541225A5 (ja) 2009-04-23
JP5259388B2 JP5259388B2 (ja) 2013-08-07

Family

ID=37395231

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008509997A Expired - Fee Related JP5259388B2 (ja) 2005-05-06 2006-03-09 データベースとファイルシステムとの間でのリンクレベル整合性の維持

Country Status (6)

Country Link
US (1) US8145686B2 (ja)
EP (1) EP1877906B1 (ja)
JP (1) JP5259388B2 (ja)
KR (1) KR101255392B1 (ja)
CN (1) CN101460930B (ja)
WO (1) WO2006121500A2 (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011215690A (ja) * 2010-03-31 2011-10-27 Nec Corp データ処理装置、データ処理方法、及びプログラム
JP2014520300A (ja) * 2011-05-06 2014-08-21 オラクル・インターナショナル・コーポレイション 複合イベント処理(cep)における新たな挿入ストリーム(istream)操作のためのサポート
US9361308B2 (en) 2012-09-28 2016-06-07 Oracle International Corporation State initialization algorithm for continuous queries over archived relations
US9390135B2 (en) 2013-02-19 2016-07-12 Oracle International Corporation Executing continuous event processing (CEP) queries in parallel
US9418113B2 (en) 2013-05-30 2016-08-16 Oracle International Corporation Value based windows on relations in continuous data streams
US9535761B2 (en) 2011-05-13 2017-01-03 Oracle International Corporation Tracking large numbers of moving objects in an event processing system
US9563663B2 (en) 2012-09-28 2017-02-07 Oracle International Corporation Fast path evaluation of Boolean predicates
US9886486B2 (en) 2014-09-24 2018-02-06 Oracle International Corporation Enriching events with dynamically typed big data for event processing
US9934279B2 (en) 2013-12-05 2018-04-03 Oracle International Corporation Pattern matching across multiple input data streams
US9972103B2 (en) 2015-07-24 2018-05-15 Oracle International Corporation Visually exploring and analyzing event streams
US10120907B2 (en) 2014-09-24 2018-11-06 Oracle International Corporation Scaling event processing using distributed flows and map-reduce operations
US10298444B2 (en) 2013-01-15 2019-05-21 Oracle International Corporation Variable duration windows on continuous data streams
US10956422B2 (en) 2012-12-05 2021-03-23 Oracle International Corporation Integrating event processing with map-reduce

Families Citing this family (131)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6856993B1 (en) * 2000-03-30 2005-02-15 Microsoft Corporation Transactional file system
US7421443B2 (en) * 2003-01-29 2008-09-02 Microsoft Corporation Filestream data storage attribute
US7873683B2 (en) 2005-07-01 2011-01-18 Qnx Software Systems Gmbh & Co. Kg File system having transaction record coalescing
US8959125B2 (en) 2005-07-01 2015-02-17 226008 Ontario Inc. File system having inverted hierarchical structure
US7970803B2 (en) 2005-07-01 2011-06-28 Qnx Software Systems Gmbh & Co. Kg Optimized startup verification of file system integrity
US7809777B2 (en) * 2005-07-01 2010-10-05 Qnx Software Systems Gmbh & Co. Kg File system having deferred verification of data integrity
US7716189B1 (en) * 2005-09-23 2010-05-11 Symantec Operating Corporation Method for preserving relationships/dependencies between data in a file system
US7490096B2 (en) * 2005-11-04 2009-02-10 Sun Microsystems, Inc. Automatic intent log testing
US7809778B2 (en) * 2006-03-08 2010-10-05 Omneon Video Networks Idempotent journal mechanism for file system
US8589362B1 (en) * 2006-07-06 2013-11-19 Oracle America, Inc. Cluster metadata recovery
US7908276B2 (en) 2006-08-25 2011-03-15 Qnx Software Systems Gmbh & Co. Kg Filesystem having a filename cache
US8358802B2 (en) * 2006-09-25 2013-01-22 General Electric Company Method of transmitting medical data
US8548942B2 (en) 2006-10-04 2013-10-01 Salesforce.Com, Inc. Methods and systems for recursive saving of hierarchical objects to a database
US8682863B2 (en) * 2006-10-04 2014-03-25 Salesforce.Com, Inc. Methods and systems for bulk row save logic in an object relational mapping layer and application framework
US8161010B2 (en) * 2006-10-04 2012-04-17 Salesforce.Com, Inc. Methods and systems for providing fault recovery to side effects occurring during data processing
US8688749B1 (en) 2011-03-31 2014-04-01 Palantir Technologies, Inc. Cross-ontology multi-master replication
US8930331B2 (en) * 2007-02-21 2015-01-06 Palantir Technologies Providing unique views of data based on changes or rules
US8554719B2 (en) 2007-10-18 2013-10-08 Palantir Technologies, Inc. Resolving database entity information
US8135746B2 (en) * 2008-07-30 2012-03-13 International Business Machines Corporation Management of symbolic links
JP4399020B1 (ja) * 2008-08-26 2010-01-13 株式会社東芝 情報処理装置およびメモリ管理方法
US9348499B2 (en) 2008-09-15 2016-05-24 Palantir Technologies, Inc. Sharing objects that rely on local resources with outside servers
US9110801B2 (en) 2009-02-10 2015-08-18 International Business Machines Corporation Resource integrity during partial backout of application updates
US9020905B2 (en) * 2009-10-31 2015-04-28 International Business Machines Corporation Synchronizing database and non-database resources without a commit coordinator
US8930321B2 (en) 2010-06-30 2015-01-06 Microsoft Corporation Logical recovery with unbundled transaction services
US8364642B1 (en) 2010-07-07 2013-01-29 Palantir Technologies, Inc. Managing disconnected investigations
US8401998B2 (en) 2010-09-02 2013-03-19 Microsoft Corporation Mirroring file data
US9092482B2 (en) 2013-03-14 2015-07-28 Palantir Technologies, Inc. Fair scheduling for mixed-query loads
US8799240B2 (en) 2011-06-23 2014-08-05 Palantir Technologies, Inc. System and method for investigating large amounts of data
US9547693B1 (en) 2011-06-23 2017-01-17 Palantir Technologies Inc. Periodic database search manager for multiple data sources
US9280532B2 (en) 2011-08-02 2016-03-08 Palantir Technologies, Inc. System and method for accessing rich objects via spreadsheets
US8732574B2 (en) 2011-08-25 2014-05-20 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US8504542B2 (en) 2011-09-02 2013-08-06 Palantir Technologies, Inc. Multi-row transactions
CN102339305B (zh) * 2011-09-07 2014-10-08 北京人大金仓信息技术股份有限公司 基于偏序关系日志的数据库集群故障恢复方法
US8782004B2 (en) 2012-01-23 2014-07-15 Palantir Technologies, Inc. Cross-ACL multi-master replication
CN102708166B (zh) * 2012-04-26 2014-07-02 北京星网锐捷网络技术有限公司 数据复制方法、数据恢复方法及装置
US9003162B2 (en) 2012-06-20 2015-04-07 Microsoft Technology Licensing, Llc Structuring storage based on latch-free B-trees
US9514174B2 (en) 2012-06-30 2016-12-06 Microsoft Technology Licensing, Llc Classification of data in main memory database systems
KR102050723B1 (ko) 2012-09-28 2019-12-02 삼성전자 주식회사 컴퓨팅 시스템 및 그 데이터 관리 방법
US8934737B1 (en) 2012-10-10 2015-01-13 General Electric Company System and method to de-identify an acquired file
US9348677B2 (en) 2012-10-22 2016-05-24 Palantir Technologies Inc. System and method for batch evaluation programs
US10140664B2 (en) 2013-03-14 2018-11-27 Palantir Technologies Inc. Resolving similar entities from a transaction database
US8909656B2 (en) 2013-03-15 2014-12-09 Palantir Technologies Inc. Filter chains with associated multipath views for exploring large data sets
US8855999B1 (en) 2013-03-15 2014-10-07 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US9230280B1 (en) 2013-03-15 2016-01-05 Palantir Technologies Inc. Clustering data based on indications of financial malfeasance
US8930897B2 (en) 2013-03-15 2015-01-06 Palantir Technologies Inc. Data integration tool
US9563519B2 (en) 2013-03-15 2017-02-07 Sap Se Reversing changes executed by change management
US8924388B2 (en) 2013-03-15 2014-12-30 Palantir Technologies Inc. Computer-implemented systems and methods for comparing and associating objects
US10275778B1 (en) 2013-03-15 2019-04-30 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation based on automatic malfeasance clustering of related data in various data structures
US8903717B2 (en) 2013-03-15 2014-12-02 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US8868486B2 (en) 2013-03-15 2014-10-21 Palantir Technologies Inc. Time-sensitive cube
WO2014169331A1 (en) 2013-04-19 2014-10-23 National Ict Australia Limited Checking undoability of an api-controlled computing system
US8886601B1 (en) 2013-06-20 2014-11-11 Palantir Technologies, Inc. System and method for incrementally replicating investigative analysis data
US9519591B2 (en) 2013-06-22 2016-12-13 Microsoft Technology Licensing, Llc Latch-free, log-structured storage for multiple access methods
US8601326B1 (en) 2013-07-05 2013-12-03 Palantir Technologies, Inc. Data quality monitors
US8938686B1 (en) 2013-10-03 2015-01-20 Palantir Technologies Inc. Systems and methods for analyzing performance of an entity
US9116975B2 (en) 2013-10-18 2015-08-25 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores
US9105000B1 (en) 2013-12-10 2015-08-11 Palantir Technologies Inc. Aggregating data from a plurality of data sources
US10579647B1 (en) 2013-12-16 2020-03-03 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US9043696B1 (en) 2014-01-03 2015-05-26 Palantir Technologies Inc. Systems and methods for visual definition of data associations
WO2015112148A2 (en) 2014-01-23 2015-07-30 Hewlett-Packard Development Company, L.P. Atomically committing write requests
US20150242282A1 (en) * 2014-02-24 2015-08-27 Red Hat, Inc. Mechanism to update software packages
US8935201B1 (en) 2014-03-18 2015-01-13 Palantir Technologies Inc. Determining and extracting changed data from a data source
US9836580B2 (en) 2014-03-21 2017-12-05 Palantir Technologies Inc. Provider portal
WO2015187187A1 (en) * 2014-06-02 2015-12-10 Hewlett-Packard Development Company, L.P. Journal events in a file system and a database
US9712645B2 (en) 2014-06-26 2017-07-18 Oracle International Corporation Embedded event processing
US9535974B1 (en) 2014-06-30 2017-01-03 Palantir Technologies Inc. Systems and methods for identifying key phrase clusters within documents
US9619557B2 (en) 2014-06-30 2017-04-11 Palantir Technologies, Inc. Systems and methods for key phrase characterization of documents
US9514211B2 (en) 2014-07-20 2016-12-06 Microsoft Technology Licensing, Llc High throughput data modifications using blind update operations
US9419992B2 (en) 2014-08-13 2016-08-16 Palantir Technologies Inc. Unwanted tunneling alert system
US9454281B2 (en) 2014-09-03 2016-09-27 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US9483546B2 (en) 2014-12-15 2016-11-01 Palantir Technologies Inc. System and method for associating related records to common entities across multiple lists
US10552994B2 (en) 2014-12-22 2020-02-04 Palantir Technologies Inc. Systems and interactive user interfaces for dynamic retrieval, analysis, and triage of data items
US10362133B1 (en) 2014-12-22 2019-07-23 Palantir Technologies Inc. Communication data processing architecture
US9348920B1 (en) 2014-12-22 2016-05-24 Palantir Technologies Inc. Concept indexing among database of documents using machine learning techniques
US10452651B1 (en) 2014-12-23 2019-10-22 Palantir Technologies Inc. Searching charts
US9817563B1 (en) 2014-12-29 2017-11-14 Palantir Technologies Inc. System and method of generating data points from one or more data stores of data items for chart creation and manipulation
US11302426B1 (en) 2015-01-02 2022-04-12 Palantir Technologies Inc. Unified data interface and system
US10496611B1 (en) * 2015-03-20 2019-12-03 EMC IP Holding Company LLC Method and system for file name based command execution in a storage system
CN106155832B (zh) * 2015-03-30 2019-03-22 Tcl集团股份有限公司 一种数据恢复的方法、装置及Android设备
US10103953B1 (en) 2015-05-12 2018-10-16 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US9672257B2 (en) 2015-06-05 2017-06-06 Palantir Technologies Inc. Time-series data storage and processing database system
US9384203B1 (en) 2015-06-09 2016-07-05 Palantir Technologies Inc. Systems and methods for indexing and aggregating data records
US10628834B1 (en) 2015-06-16 2020-04-21 Palantir Technologies Inc. Fraud lead detection system for efficiently processing database-stored data and automatically generating natural language explanatory information of system results for display in interactive user interfaces
US9407652B1 (en) 2015-06-26 2016-08-02 Palantir Technologies Inc. Network anomaly detection
US9418337B1 (en) 2015-07-21 2016-08-16 Palantir Technologies Inc. Systems and models for data analytics
US9392008B1 (en) 2015-07-23 2016-07-12 Palantir Technologies Inc. Systems and methods for identifying information related to payment card breaches
US10127289B2 (en) 2015-08-19 2018-11-13 Palantir Technologies Inc. Systems and methods for automatic clustering and canonical designation of related data in various data structures
US9537880B1 (en) 2015-08-19 2017-01-03 Palantir Technologies Inc. Anomalous network monitoring, user behavior detection and database system
US10402385B1 (en) 2015-08-27 2019-09-03 Palantir Technologies Inc. Database live reindex
US9984428B2 (en) 2015-09-04 2018-05-29 Palantir Technologies Inc. Systems and methods for structuring data from unstructured electronic data files
US9454564B1 (en) 2015-09-09 2016-09-27 Palantir Technologies Inc. Data integrity checks
KR20170033618A (ko) 2015-09-17 2017-03-27 에스케이이노베이션 주식회사 배터리 시스템
CN105306556A (zh) * 2015-09-30 2016-02-03 深圳市先河系统技术有限公司 一种文件管理方法、服务器及网络附属存储设备
US10044745B1 (en) 2015-10-12 2018-08-07 Palantir Technologies, Inc. Systems for computer network security risk assessment including user compromise analysis associated with a network of devices
US9760556B1 (en) 2015-12-11 2017-09-12 Palantir Technologies Inc. Systems and methods for annotating and linking electronic documents
US9514414B1 (en) 2015-12-11 2016-12-06 Palantir Technologies Inc. Systems and methods for identifying and categorizing electronic documents through machine learning
US9542446B1 (en) 2015-12-17 2017-01-10 Palantir Technologies, Inc. Automatic generation of composite datasets based on hierarchical fields
US10769113B2 (en) 2016-03-25 2020-09-08 Microsoft Technology Licensing, Llc Attribute-based dependency identification for operation ordering
US9928266B2 (en) 2016-06-03 2018-03-27 Workiva Inc. Method and computing device for minimizing accesses to data storage in conjunction with maintaining a B-tree
US9753935B1 (en) 2016-08-02 2017-09-05 Palantir Technologies Inc. Time-series data storage and processing database system
US11106692B1 (en) 2016-08-04 2021-08-31 Palantir Technologies Inc. Data record resolution and correlation system
US10133588B1 (en) 2016-10-20 2018-11-20 Palantir Technologies Inc. Transforming instructions for collaborative updates
CN106355991B (zh) * 2016-10-31 2020-12-18 成都乐创自动化技术股份有限公司 一种示教方法及装置
US10318630B1 (en) 2016-11-21 2019-06-11 Palantir Technologies Inc. Analysis of large bodies of textual data
US10884875B2 (en) 2016-12-15 2021-01-05 Palantir Technologies Inc. Incremental backup of computer data files
US10223099B2 (en) 2016-12-21 2019-03-05 Palantir Technologies Inc. Systems and methods for peer-to-peer build sharing
CN108363641B (zh) * 2017-01-26 2022-01-14 华为技术有限公司 一种主备机数据传递方法、控制节点以及数据库系统
US10552389B2 (en) * 2017-04-28 2020-02-04 Oath Inc. Object and sequence number management
US11074277B1 (en) 2017-05-01 2021-07-27 Palantir Technologies Inc. Secure resolution of canonical entities
US10896097B1 (en) 2017-05-25 2021-01-19 Palantir Technologies Inc. Approaches for backup and restoration of integrated databases
GB201708818D0 (en) 2017-06-02 2017-07-19 Palantir Technologies Inc Systems and methods for retrieving and processing data
US11334552B2 (en) 2017-07-31 2022-05-17 Palantir Technologies Inc. Lightweight redundancy tool for performing transactions
US10417224B2 (en) 2017-08-14 2019-09-17 Palantir Technologies Inc. Time series database processing system
US10216695B1 (en) 2017-09-21 2019-02-26 Palantir Technologies Inc. Database system for time series data storage, processing, and analysis
US11281726B2 (en) 2017-12-01 2022-03-22 Palantir Technologies Inc. System and methods for faster processor comparisons of visual graph features
US10235533B1 (en) 2017-12-01 2019-03-19 Palantir Technologies Inc. Multi-user access controls in electronic simultaneously editable document editor
US10614069B2 (en) 2017-12-01 2020-04-07 Palantir Technologies Inc. Workflow driven database partitioning
US11016986B2 (en) 2017-12-04 2021-05-25 Palantir Technologies Inc. Query-based time-series data display and processing system
US11061874B1 (en) 2017-12-14 2021-07-13 Palantir Technologies Inc. Systems and methods for resolving entity data across various data structures
US10838987B1 (en) 2017-12-20 2020-11-17 Palantir Technologies Inc. Adaptive and transparent entity screening
US10866963B2 (en) 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
GB201807534D0 (en) 2018-05-09 2018-06-20 Palantir Technologies Inc Systems and methods for indexing and searching
US11061542B1 (en) 2018-06-01 2021-07-13 Palantir Technologies Inc. Systems and methods for determining and displaying optimal associations of data items
US10795909B1 (en) 2018-06-14 2020-10-06 Palantir Technologies Inc. Minimized and collapsed resource dependency path
US20200133782A1 (en) 2018-10-26 2020-04-30 Dropbox, Inc. Restoring a directory to a state prior to a past synchronization event
US11449490B1 (en) * 2018-11-23 2022-09-20 Amazon Technologies, Inc. Idempotent transaction requests
CN112256656B (zh) * 2019-07-22 2023-04-18 金篆信科有限责任公司 事务回滚方法及装置、数据库、系统、计算机存储介质
CN110851293B (zh) * 2019-10-15 2023-06-27 中国直升机设计研究所 一种信息系统联动处理的系统及方法
CN112307117B (zh) * 2020-09-30 2023-12-12 武汉达梦数据库股份有限公司 一种基于日志解析的同步方法和同步系统
CN112256485B (zh) * 2020-10-30 2023-08-04 网易(杭州)网络有限公司 数据备份方法、装置、介质和计算设备
CN115129739B (zh) * 2022-08-31 2022-11-25 杭州沃趣科技股份有限公司 一种数据文件断点续传方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05143424A (ja) * 1991-11-15 1993-06-11 Toshiba Corp ドキユメント・データベース管理方式
US6088694A (en) * 1998-03-31 2000-07-11 International Business Machines Corporation Continuous availability and efficient backup for externally referenced objects
US6397351B1 (en) * 1998-09-28 2002-05-28 International Business Machines Corporation Method and apparatus for rapid data restoration including on-demand output of sorted logged changes
US6453325B1 (en) * 1995-05-24 2002-09-17 International Business Machines Corporation Method and means for backup and restoration of a database system linked to a system for filing data
US20040148308A1 (en) * 2003-01-29 2004-07-29 Rajan Rajeev B. Filestream data storage attribute
JP2004252686A (ja) * 2003-02-20 2004-09-09 Hitachi Ltd 情報処理システム
JP2005100373A (ja) * 2003-09-16 2005-04-14 Hitachi Ltd 複数世代の回復スナップショットのバックアップと修復のマッピング装置

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1341310C (en) 1988-07-15 2001-10-23 Robert Filepp Interactive computer network and method of operation
US5900870A (en) 1989-06-30 1999-05-04 Massachusetts Institute Of Technology Object-oriented computer user interface
US5297279A (en) 1990-05-30 1994-03-22 Texas Instruments Incorporated System and method for database management supporting object-oriented programming
US5335343A (en) * 1992-07-06 1994-08-02 Digital Equipment Corporation Distributed transaction processing using two-phase commit protocol with presumed-commit without log force
US6708196B1 (en) 1994-04-15 2004-03-16 Microsoft Corporation Method and system for caching presentation data
US5574902A (en) * 1994-05-02 1996-11-12 International Business Machines Corporation Efficient destaging of updated local cache pages for a transaction in a multisystem and multiprocess database management system with a high-speed shared electronic store
US6078925A (en) 1995-05-01 2000-06-20 International Business Machines Corporation Computer program product for database relational extenders
US5864862A (en) 1996-09-30 1999-01-26 Telefonaktiebolaget Lm Ericsson (Publ) System and method for creating reusable components in an object-oriented programming environment
US5721918A (en) * 1996-02-06 1998-02-24 Telefonaktiebolaget Lm Ericsson Method and system for fast recovery of a primary store database using selective recovery by data type
US6785690B1 (en) 1996-03-18 2004-08-31 Hewlett-Packard Development Company, L.P. Method and system for storage, retrieval, and query of objects in a schemeless database
JP3747525B2 (ja) 1996-08-28 2006-02-22 株式会社日立製作所 並列データベースシステム検索方法
US6112024A (en) 1996-10-02 2000-08-29 Sybase, Inc. Development system providing methods for managing different versions of objects with a meta model
US5966706A (en) * 1997-02-19 1999-10-12 At&T Corp Local logging in a distributed database management computer system
US6070174A (en) 1997-09-30 2000-05-30 Infraworks Corporation Method and apparatus for real-time secure file deletion
US6108004A (en) 1997-10-21 2000-08-22 International Business Machines Corporation GUI guide for data mining
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
US6263342B1 (en) 1998-04-01 2001-07-17 International Business Machines Corp. Federated searching of heterogeneous datastores using a federated datastore object
US6223344B1 (en) 1998-06-11 2001-04-24 Internationl Business Machines Corporation Apparatus and method for versioning persistent objects
US6519597B1 (en) 1998-10-08 2003-02-11 International Business Machines Corporation Method and apparatus for indexing structured documents with rich data types
US6338056B1 (en) 1998-12-14 2002-01-08 International Business Machines Corporation Relational database extender that supports user-defined index types and user-defined search
US6505211B1 (en) 1999-01-26 2003-01-07 International Business Machines Corporation Method for providing for persistence of java classes where the persistence semantics may be orthogonal to the class definition
JP3763992B2 (ja) * 1999-03-30 2006-04-05 富士通株式会社 データ処理装置及び記録媒体
US6199195B1 (en) 1999-07-08 2001-03-06 Science Application International Corporation Automatically generated objects within extensible object frameworks and links to enterprise resources
US6549916B1 (en) 1999-08-05 2003-04-15 Oracle Corporation Event notification system tied to a file system
US7290056B1 (en) * 1999-09-09 2007-10-30 Oracle International Corporation Monitoring latency of a network to manage termination of distributed transactions
US7206805B1 (en) * 1999-09-09 2007-04-17 Oracle International Corporation Asynchronous transcription object management system
US6370541B1 (en) 1999-09-21 2002-04-09 International Business Machines Corporation Design and implementation of a client/server framework for federated multi-search and update across heterogeneous datastores
KR100327122B1 (ko) * 1999-12-24 2002-03-13 오길록 재삽입 연산을 수행하는 고차원 색인구조를 위한 회복방법
US6556983B1 (en) 2000-01-12 2003-04-29 Microsoft Corporation Methods and apparatus for finding semantic information, such as usage logs, similar to a query using a pattern lattice data space
US6571259B1 (en) * 2000-09-26 2003-05-27 Emc Corporation Preallocation of file system cache blocks in a data storage system
US6671687B1 (en) 2000-09-29 2003-12-30 Ncr Corporation Method and apparatus for protecting data retrieved from a database
US6999956B2 (en) 2000-11-16 2006-02-14 Ward Mullins Dynamic object-driven database manipulation and mapping system
US20020103819A1 (en) * 2000-12-12 2002-08-01 Fresher Information Corporation Technique for stabilizing data in a non-log based information storage and retrieval system
US6877111B2 (en) 2001-03-26 2005-04-05 Sun Microsystems, Inc. Method and apparatus for managing replicated and migration capable session state for a Java platform
US20020143798A1 (en) * 2001-04-02 2002-10-03 Akamai Technologies, Inc. Highly available distributed storage system for internet content with storage site redirection
US6697818B2 (en) 2001-06-14 2004-02-24 International Business Machines Corporation Methods and apparatus for constructing and implementing a universal extension module for processing objects in a database
US20030041097A1 (en) * 2001-07-11 2003-02-27 Alexander Tormasov Distributed transactional network storage system
US6772178B2 (en) 2001-07-27 2004-08-03 Sun Microsystems, Inc. Method and apparatus for managing remote data replication in a distributed computer system
KR20030056540A (ko) * 2001-12-28 2003-07-04 한국전자통신연구원 데이터베이스 관리 시스템에서 시스템 고장에 대비한 파일삭제 및 회복 방법
US7277905B2 (en) * 2004-03-31 2007-10-02 Microsoft Corporation System and method for a consistency check of a database backup
US7143120B2 (en) * 2004-05-03 2006-11-28 Microsoft Corporation Systems and methods for automated maintenance and repair of database and file systems
US7587429B2 (en) * 2004-05-24 2009-09-08 Solid Information Technology Oy Method for checkpointing a main-memory database
US7360111B2 (en) * 2004-06-29 2008-04-15 Microsoft Corporation Lossless recovery for computer systems with remotely dependent data recovery
US7472129B2 (en) * 2004-06-29 2008-12-30 Microsoft Corporation Lossless recovery for computer systems with map assisted state transfer

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05143424A (ja) * 1991-11-15 1993-06-11 Toshiba Corp ドキユメント・データベース管理方式
US6453325B1 (en) * 1995-05-24 2002-09-17 International Business Machines Corporation Method and means for backup and restoration of a database system linked to a system for filing data
US6088694A (en) * 1998-03-31 2000-07-11 International Business Machines Corporation Continuous availability and efficient backup for externally referenced objects
US6397351B1 (en) * 1998-09-28 2002-05-28 International Business Machines Corporation Method and apparatus for rapid data restoration including on-demand output of sorted logged changes
US20040148308A1 (en) * 2003-01-29 2004-07-29 Rajan Rajeev B. Filestream data storage attribute
JP2004252686A (ja) * 2003-02-20 2004-09-09 Hitachi Ltd 情報処理システム
JP2005100373A (ja) * 2003-09-16 2005-04-14 Hitachi Ltd 複数世代の回復スナップショットのバックアップと修復のマッピング装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN5005012589; BHATTACHARYA et al.: 'Coordinating Backup/Recovery and Data Consistency Between Database and File Systems' PROCS. OF THE 2002 ACM SIGMOD INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA , 200206, P500-511 *

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011215690A (ja) * 2010-03-31 2011-10-27 Nec Corp データ処理装置、データ処理方法、及びプログラム
JP2014520300A (ja) * 2011-05-06 2014-08-21 オラクル・インターナショナル・コーポレイション 複合イベント処理(cep)における新たな挿入ストリーム(istream)操作のためのサポート
US9756104B2 (en) 2011-05-06 2017-09-05 Oracle International Corporation Support for a new insert stream (ISTREAM) operation in complex event processing (CEP)
US9535761B2 (en) 2011-05-13 2017-01-03 Oracle International Corporation Tracking large numbers of moving objects in an event processing system
US9804892B2 (en) 2011-05-13 2017-10-31 Oracle International Corporation Tracking large numbers of moving objects in an event processing system
US10042890B2 (en) 2012-09-28 2018-08-07 Oracle International Corporation Parameterized continuous query templates
US9990402B2 (en) 2012-09-28 2018-06-05 Oracle International Corporation Managing continuous queries in the presence of subqueries
US9703836B2 (en) 2012-09-28 2017-07-11 Oracle International Corporation Tactical query to continuous query conversion
US9715529B2 (en) 2012-09-28 2017-07-25 Oracle International Corporation Hybrid execution of continuous and scheduled queries
US11288277B2 (en) 2012-09-28 2022-03-29 Oracle International Corporation Operator sharing for continuous queries over archived relations
US9805095B2 (en) 2012-09-28 2017-10-31 Oracle International Corporation State initialization for continuous queries over archived views
US11093505B2 (en) 2012-09-28 2021-08-17 Oracle International Corporation Real-time business event analysis and monitoring
US9852186B2 (en) 2012-09-28 2017-12-26 Oracle International Corporation Managing risk with continuous queries
US10891293B2 (en) 2012-09-28 2021-01-12 Oracle International Corporation Parameterized continuous query templates
US10102250B2 (en) 2012-09-28 2018-10-16 Oracle International Corporation Managing continuous queries with archived relations
US9946756B2 (en) 2012-09-28 2018-04-17 Oracle International Corporation Mechanism to chain continuous queries
US9953059B2 (en) 2012-09-28 2018-04-24 Oracle International Corporation Generation of archiver queries for continuous queries over archived relations
US9361308B2 (en) 2012-09-28 2016-06-07 Oracle International Corporation State initialization algorithm for continuous queries over archived relations
US9563663B2 (en) 2012-09-28 2017-02-07 Oracle International Corporation Fast path evaluation of Boolean predicates
US9990401B2 (en) 2012-09-28 2018-06-05 Oracle International Corporation Processing events for continuous queries on archived relations
US10025825B2 (en) 2012-09-28 2018-07-17 Oracle International Corporation Configurable data windows for archived relations
US10956422B2 (en) 2012-12-05 2021-03-23 Oracle International Corporation Integrating event processing with map-reduce
US10298444B2 (en) 2013-01-15 2019-05-21 Oracle International Corporation Variable duration windows on continuous data streams
US10083210B2 (en) 2013-02-19 2018-09-25 Oracle International Corporation Executing continuous event processing (CEP) queries in parallel
US9390135B2 (en) 2013-02-19 2016-07-12 Oracle International Corporation Executing continuous event processing (CEP) queries in parallel
US9418113B2 (en) 2013-05-30 2016-08-16 Oracle International Corporation Value based windows on relations in continuous data streams
US9934279B2 (en) 2013-12-05 2018-04-03 Oracle International Corporation Pattern matching across multiple input data streams
US10120907B2 (en) 2014-09-24 2018-11-06 Oracle International Corporation Scaling event processing using distributed flows and map-reduce operations
US9886486B2 (en) 2014-09-24 2018-02-06 Oracle International Corporation Enriching events with dynamically typed big data for event processing
US9972103B2 (en) 2015-07-24 2018-05-15 Oracle International Corporation Visually exploring and analyzing event streams

Also Published As

Publication number Publication date
US8145686B2 (en) 2012-03-27
KR101255392B1 (ko) 2013-04-17
JP5259388B2 (ja) 2013-08-07
WO2006121500A3 (en) 2007-12-06
EP1877906A2 (en) 2008-01-16
CN101460930B (zh) 2012-02-15
EP1877906A4 (en) 2010-09-08
EP1877906B1 (en) 2018-09-26
WO2006121500A2 (en) 2006-11-16
CN101460930A (zh) 2009-06-17
US20060253502A1 (en) 2006-11-09
KR20080005501A (ko) 2008-01-14

Similar Documents

Publication Publication Date Title
JP5259388B2 (ja) データベースとファイルシステムとの間でのリンクレベル整合性の維持
US11178246B2 (en) Managing cloud-based storage using a time-series database
KR101014089B1 (ko) 데이터베이스 백업의 일관성 검사를 위한 시스템 및 방법
JP4762972B2 (ja) データベース内の回復ユニット(recoveryunit)のためのシステムおよび方法
JP5657550B2 (ja) 分散ストレージシステムにおけるデータのアトミックな複合変形
EP2646923B1 (en) File system backup using change journal
JP4960963B2 (ja) データベースミラーからのオンラインページリストア
US6173292B1 (en) Data recovery in a transactional database using write-ahead logging and file caching
US6873995B2 (en) Method, system, and program product for transaction management in a distributed content management application
US8170997B2 (en) Unbundled storage transaction services
US20050071336A1 (en) Systems and methods for logging and recovering updates to data structures
US20060047720A1 (en) Database backup, refresh and cloning system and method
US11567837B2 (en) Journaling data received in a cloud-based distributed computing environment
US20070094312A1 (en) Method for managing real-time data history of a file system
US7958167B2 (en) Integration of unstructed data into a database
US20100293143A1 (en) Initialization of database for synchronization
US6496840B1 (en) Method, system and program products for atomically and persistently swapping resource groups
Edara et al. Vortex: A Stream-oriented Storage Engine For Big Data Analytics
US7747634B2 (en) Rich data tunneling
Sun et al. An advanced design of data mining algorithms

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090305

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120829

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130424

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160502

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5259388

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees