(57)【要約】【課題】【解決手段】１つの実施形態は、プロセッサによって、中断されたガベージ・コレクション動作の前にシステム状態を記録することを含む、システムにおける時系列ログ構造のキーバリュー・ストア内のチェックポイントを使用した障害後のリカバリのための方法を提供する。プロセッサは、中断された対象スロット内のデータ・レコードを指し示すダーティ・チェックポイント・レコードのためにログ構造に廃棄エントリを書き込む。新たなチェックポイント・レコードが、ダーティ・チェックポイント・レコードのためにログ構造に挿入される。【選択図】図７
2021515304.tif 000002
【特許請求の範囲】
【請求項１】
システムにおける時系列ログ構造のキーバリュー・ストア内のチェックポイントを使用した障害後のリカバリのための方法であって、
プロセッサによって、中断されたガベージ・コレクション動作の前にシステム状態を記録することと、
前記プロセッサによって、中断された対象スロット内のデータ・レコードを指し示すダーティ・チェックポイント・レコードのためにログ構造に廃棄エントリを書き込むことと、
前記ログ構造内に前記ダーティ・チェックポイント・レコードのための新たなチェックポイント・レコードを挿入することと、
を含む、方法。
【請求項２】
前記システムが、時系列順ログ構造のキーバリュー・ストア・システムを含む、請求項１に記載の方法。
【請求項３】
前記ガベージ・コレクション動作が、ガベージ・コレクション・トランザクションを含む、請求項２に記載の方法。
【請求項４】
前記中断された対象スロットが、前記ガベージ・コレクション動作の対象スロットである、請求項３に記載の方法。
【請求項５】
ガベージ・コレクション動作中の障害後に前記システムを整合状態に復元する処理を用いてデータの時系列順を維持する間、ガベージ・コレクション処理と同時に進行するチェックポイント動作に提供することをさらに含む、請求項３または４に記載の方法。
【請求項６】
前記中断されたガベージ・コレクション動作後にリカバリ・ログを読み出すことと、
未完了ガベージ・コレクション対象スロットおよび未完了ガベージ・コレクション犠牲スロットを識別することと、
をさらに含む、請求項１ないし５のいずれか一項に記載の方法。
【請求項７】
個々のリカバリ・ログ上に前記ガベージ・コレクション・トランザクションを記録することをさらに含む、請求項３ないし６のいずれか一項に記載の方法。
【請求項８】
前記ログ構造の前記対象スロットの領域を前記対象スロット内の開始オフセットから前記対象スロットの終わりまでゼロアウトすることと、
前記個々のリカバリ・ログに前記ガベージ・コレクション・トランザクションのための中断レコードを挿入することと、
をさらに含む、請求項７に記載の方法。
【請求項９】
システムにおける時系列ログ構造のキーバリュー・ストア内のチェックポイントを使用した障害後のリカバリのためのコンピュータ・プログラム製品であって、
処理回路によって読み出し可能であり、請求項１ないし８のいずれか一項に記載の方法を実行するための前記処理回路による実行用命令を記憶する、コンピュータ可読記憶媒体を含む、コンピュータ・プログラム製品。
【請求項１０】
コンピュータ可読媒体上に記憶され、デジタル・コンピュータの内部メモリ内にロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されるときに、請求項１ないし８のいずれか一項に記載の方法を実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラム。
【請求項１１】
装置であって、
命令を記憶するメモリと、
中断されたガベージ・コレクション動作の前にシステム状態を記録し、
中断された対象スロット内のデータ・レコードを指し示すダーティ・チェックポイント・レコードのためにログ構造に廃棄エントリを書き込み、
前記ログ構造内に前記ダーティ・チェックポイント・レコードのための新たなチェックポイント・レコードを挿入する、
ための前記命令を実行するプロセッサと、
を備える、装置。
【請求項１２】
前記システムが、時系列順ログ構造のキーバリュー・ストア・システムを含み、前記ガベージ・コレクション動作が、ガベージ・コレクション・トランザクションを含み、前記中断された対象スロットが、前記ガベージ・コレクション・トランザクションの対象スロットである、請求項１１に記載の装置。
【請求項１３】
前記プロセッサが、
前記ガベージ・コレクション・トランザクション中の障害後に前記システムを整合状態に復元するための処理を用いてデータの時系列順を維持する間、ガベージ・コレクション処理と同時に進行するためのチェックポイント動作に提供することと、
前記中断されたガベージ・コレクション・トランザクション後にリカバリ・ログを読み出すことと、
未完了ガベージ・コレクション対象スロットおよび未完了ガベージ・コレクション犠牲スロットを識別することと、
を含む命令をさらに実行する、請求項１２に記載の装置。
【請求項１４】
前記プロセッサが、
個々のリカバリ・ログ上に前記ガベージ・コレクション・トランザクションを記録することを含む命令をさらに実行する、請求項１２または１３に記載の装置。
【請求項１５】
前記プロセッサが、
前記ログ構造の前記対象スロットの領域を前記対象スロット内の開始オフセットから前記対象スロットの終わりまでゼロアウトすることと、
前記個々のリカバリ・ログに前記ガベージ・コレクション・トランザクションのための中断レコードを挿入することと、
を含む命令をさらに実行する、請求項１４に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
発明は、概して、ログ構造のストレージ・システムを管理することを目的とする。特に、それは、システムにおける時系列ログ構造のキーバリュー・ストア内のチェックポイントを使用した障害後のリカバリのために提供する。
【背景技術】
【０００２】
典型的なログ構造のストレージ・システムは、レコード・データを時間的順序で「ログ」に記憶する。これらの典型的なシステムは、挿入、更新、削除、読み出しなどの基本的なプリミティブ動作を可能にする。データのそれぞれの更新は、新たなレコードが「ログ」の末尾に挿入されるという結果になる。それぞれの削除は、廃棄（tombstone）オブジェクトがログの末尾に挿入されるという結果になる。さらに、バックグラウンド・ガベージ・コレクション・プロセスは、有効データを含まない空間を再要求するデータを圧縮する。しかしながら、チェックポイントからのリカバリは、チェックポイントがガベージ・コレクションと同時に発生し得るときに、問題となる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
したがって、当技術分野において前述した問題に対処する必要がある。
【課題を解決するための手段】
【０００４】
第１の態様から見ると、本発明は、システムにおける時系列ログ構造のキーバリュー・ストア内のチェックポイントを使用した障害後のリカバリのための方法であって、プロセッサによって、中断されたガベージ・コレクション動作の前にシステム状態を記録することと、プロセッサによって、中断された対象スロット内のデータ・レコードを指し示すダーティ・チェックポイント・レコードのためにログ構造に廃棄エントリを書き込むことと、ログ構造内にダーティ・チェックポイント・レコードのための新たなチェックポイント・レコードを挿入することと、を含む、方法を提供する。
【０００５】
さらなる態様から見ると、本発明は、装置であって、命令を記憶するメモリと、中断されたガベージ・コレクション動作の前にシステム状態を記録し、中断された対象スロット内のデータ・レコードを指し示すダーティ・チェックポイント・レコードのためにログ構造に廃棄エントリを書き込み、ログ構造内にダーティ・チェックポイント・レコードのための新たなチェックポイント・レコードを挿入する、ための命令を実行するプロセッサと、を備える、装置を提供する。
【０００６】
さらなる態様から見ると、本発明は、システムにおける時系列ログ構造のキーバリュー・ストア内のチェックポイントを使用した障害後のリカバリのためのコンピュータ・プログラム製品であって、処理回路によって読み出し可能であり、発明のステップを実行する方法を実行するための処理回路による実行用命令を記憶する、コンピュータ可読記憶媒体を含む、コンピュータ・プログラム製品を提供する。
【０００７】
さらなる態様から見ると、本発明は、コンピュータ可読媒体上に記憶され、デジタル・コンピュータの内部メモリ内にロード可能なコンピュータ・プログラムであって、上記プログラムがコンピュータ上で実行されるときに、発明のステップを実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラムを提供する。
【０００８】
実施形態は、時系列順ログ構造のキーバリュー・ストアにおける障害からの高速リカバリに関する。１つの実施形態は、プロセッサによって、中断されたガベージ・コレクション動作の前にシステム状態を記録することを含む、システムにおける時系列ログ構造のキーバリュー・ストア内のチェックポイントを使用した障害後のリカバリのための方法を提供する。プロセッサは、中断された対象スロット内のデータ・レコードを指し示すダーティ・チェックポイント・レコードのためにログ構造に廃棄エントリを書き込む。新たなチェックポイント・レコードが、ダーティ・チェックポイント・レコードのためにログ構造に挿入される。
【０００９】
本発明の、これらのおよび他の特徴、態様および利点については、以下の説明、添付の特許請求の範囲および添付図面を参照して理解されることとなる。
【００１０】
本発明の実施形態が、ここで単なる例として添付図面を参照して説明される。
【図面の簡単な説明】
【００１１】
【図１】実施形態による、クラウド・コンピューティング環境を示す図である。
【図２】実施形態による、抽象モデル・レイヤのセットを示す図である。
【図３】実施形態による、ログ構造のストレージ・システムにおける遡及的スナップショットのためのネットワーク・アーキテクチャを示す図である。
【図４】実施形態による、図１のサーバまたはクライアントあるいはその両方に関連付けられ得る代表的なハードウェア環境を示す図である。
【図５】実施形態による、ログ構造のストレージ・システムにおける時系列順ログ構造のキーバリュー・ストアにおける障害からの高速リカバリのためのプロセッサを示すブロック図である。
【図６】実施形態による、ガベージ・コレクション・スロットを指し示す例としてのチェックポイント・レコードを示す。
【図７】１つの実施形態による、時系列順ログ構造のキーバリュー・ストアにおける障害からのリカバリのためのプロセスについてのブロック図である。
【発明を実施するための形態】
【００１２】
多様な実施形態の説明は、例示の目的で提示されているが、網羅的であること、または開示される実施形態に限定することを意図するものではない。多くの修正および変形が、説明される実施形態の範囲から逸脱することなく当業者には明らかであろう。本明細書で使用される専門用語は、実施形態の原理、実用的な適用、もしくは市場で見出される技術に対する技術的改善を最もよく説明するため、または本明細書に開示される実施形態を他の当業者が理解可能にするために、選択された。
【００１３】
本開示は、クラウド・コンピューティングの詳細な説明を含むが、本明細書に列挙される教示の実施は、クラウド・コンピューティング環境に限定されないと予め理解される。むしろ、本発明の実施形態は、現在既知の、または後に開発される任意の他の種類のコンピューティング環境と併せて実施されることが可能である。
【００１４】
１つまたは複数の実施形態は、時系列順ログ構造のキーバリュー・ストアにおける障害からの高速リカバリに関する。１つの実施形態は、プロセッサによって、中断されたガベージ・コレクション動作の前にシステム状態を記録することを含む、システムにおける時系列ログ構造のキーバリュー・ストア内のチェックポイントを使用した障害後のリカバリのための方法を提供する。プロセッサは、中断された対象スロット内のデータ・レコードを指し示すダーティ・チェックポイント・レコードのためにログ構造に廃棄エントリを書き込む。新たなチェックポイント・レコードが、ダーティ・チェックポイント・レコードのためにログ構造に挿入される。
【００１５】
クラウド・コンピューティングは、最小の管理労力またはサービス・プロバイダとの対話で迅速に供給され、リリースされ得る、構成可能なコンピューティング・リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械（ＶＭ）、およびサービス）の共有プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも５つの特性、少なくとも３つのサービス・モデル、および少なくとも４つの配置モデルを含み得る。
【００１６】
特性は、以下の通りである。
【００１７】
オンデマンド・セルフサービス：クラウド消費者は、サービス・プロバイダと人との対話を必要とすることなく、必要に応じてかつ自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング・ケイパビリティを一方的に供給し得る。
【００１８】
幅広いネットワーク・アクセス：ケイパビリティは、ネットワーク上で利用可能であり、異種シン・クライアントまたはシック・クライアント・プラットフォーム（例えば、携帯電話、ラップトップ、およびＰＤＡ）による使用を促進する標準的なメカニズムを通してアクセスされる。
【００１９】
リソースの共用：プロバイダのコンピューティング・リソースが、マルチテナント型モデルを使用して複数の消費者にサービスするためにプールされ、異なる物理リソースおよび仮想リソースが要求に従って動的に割り当ておよび再割り当てされる。消費者が、概して、提供されるリソースの正確な場所に対する制御または知識を有しないが、より抽象度の高いレベル（例えば、国、州、またはデータ・センタ）において場所を指定することが可能であり得るという点において、位置独立の意味がある。
【００２０】
スピーディな拡張性：ケイパビリティは、場合によっては自動的に、即座にスケール・アウトするようにスピーディかつ弾力的に供給され、即座にスケール・インするようにスピーディに解放され得る。消費者に対しては、供給に利用可能なケイパビリティが、多くの場合無制限であるように見え、いつでも任意の量で購入可能である。
【００２１】
サービスが計測可能であること：クラウド・システムは、サービスの種類（例えば、ストレージ、処理、帯域幅、アクティブな消費者アカウント）に適したある抽象度レベルにおいて計測ケイパビリティを活用することによって、リソース使用を自動的に制御し、最適化する。リソース使用量は、モニタリングされ、制御され、報告されてもよく、それによって利用サービスのプロバイダおよび消費者の両方に透明性をもたらし得る。
【００２２】
サービス・モデルは、以下の通りである。
【００２３】
サービスとしてのソフトウェア（ＳａａＳ）：消費者に提供されるケイパビリティは、クラウド・インフラ上で実行中のプロバイダのアプリケーションを使用する能力である。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース（例えば、ウェブ・ベースの電子メール）を通して、様々なクライアント・デバイスからアクセス可能である。消費者は、限定された消費者固有アプリケーションの構成設定は例外である可能性があるが、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション・ケイパビリティですら含む、基礎となるクラウド・インフラを管理または制御しない。
【００２４】
サービスとしてのプラットフォーム（ＰａａＳ）：消費者に提供されるケイパビリティは、プロバイダによってサポートされるプログラミング言語およびツールを使用して生成された、消費者が作成または取得したアプリケーションを、クラウド・インフラ上に配置する能力である。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎となるクラウド・インフラを管理または制御しないが、配置されたアプリケーション、および、可能な限りアプリケーション・ホスティング環境構成に対して制御を行う。
【００２５】
サービスとしてのインフラ（ＩａａＳ）：消費者に提供されるケイパビリティは、処理、ストレージ、ネットワーク、ならびに消費者がオペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを配置および実行することが可能な、他の基本コンピューティング・リソースを供給する能力である。消費者は、基礎となるクラウド・インフラを管理または制御しないが、オペレーティング・システム、ストレージ、配置されたアプリケーションに対して制御を行い、かつ可能な限り選択ネットワーキング・コンポーネント（例えば、ホスト・ファイアウォール）の限定的な制御を行う。
【００２６】
配置モデルは、以下の通りである。
【００２７】
プライベート・クラウド：クラウド・インフラは、組織のためだけに動作される。クラウド・インフラは、その組織または第三者によって管理されてもよく、構内または構外に存在し得る。
【００２８】
コミュニティ・クラウド：クラウド・インフラは、複数の組織によって共有され、共有の関心事（例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項）を有する特定のコミュニティをサポートする。クラウド・インフラは、組織または第三者によって管理されてもよく、構内または構外に存在し得る。
【００２９】
パブリック・クラウド：クラウド・インフラは、一般公衆または大きな業界団体に利用可能とされ、クラウド・サービスを販売する組織によって所有される。
【００３０】
ハイブリッド・クラウド：クラウド・インフラは、一意なエンティティのままであるが、データおよびアプリケーション・ポータビリティを可能にする標準化技術または独自技術（例えば、クラウド間のロード・バランシングのためのクラウド・バースティング）によって結合された、２つ以上のクラウド（プライベート、コミュニティ、またはパブリック）の混合物である。
【００３１】
クラウド・コンピューティング環境は、無国籍、低結合、モジュール性、および意味相互運用性を中心としたサービス指向型である。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラである。
【００３２】
ここで図１を参照すると、例示的なクラウド・コンピューティング環境５０が示されている。図示するように、クラウド・コンピューティング環境５０は、クラウド消費者によって使用されるローカル・コンピューティング・デバイス、例えば、携帯情報端末（ＰＤＡ）もしくは携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、または自動車コンピュータ・システム５４Ｎ、あるいはそれらの組合せが通信し得る、１つまたは複数のクラウド・コンピューティング・ノード１０を含む。ノード１０は、互いに通信し得る。それらは、上述のようなプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはそれらの組合せなどの、１つまたは複数のネットワーク内で物理的または仮想的にグループ化されてもよい（図示せず）。これによって、クラウド・コンピューティング環境５０が、インフラ、プラットフォーム、またはソフトウェア、あるいはそれらの組合せを、クラウド消費者がローカル・コンピューティング・デバイス上でリソースを維持する必要がないサービスとして提案することが可能となる。図２に示されるコンピューティング・デバイス５４Ａ〜Ｎの種類は、単なる例示であることを意図し、コンピューティング・ノード１０およびクラウド・コンピューティング環境５０は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続あるいはその両方を経て（例えば、ウェブ・ブラウザを用いて）、任意の種類のコンピュータ化デバイスと通信し得ると理解される。
【００３３】
ここで図２を参照すると、クラウド・コンピューティング環境５０（図１）によって提供される機能抽象レイヤのセットが示されている。図２に示されるコンポーネント、レイヤ、および機能は、単なる例示であることを意図し、発明の実施形態は、それらに限定されないと、予め理解されるべきである。図示するように、以下のレイヤおよび対応する機能が、提供される。
【００３４】
ハードウェアおよびソフトウェア・レイヤ６０は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム６１、ＲＩＳＣ（Reduced Instruction Set Computer）アーキテクチャ・ベース・サーバ６２、サーバ６３、ブレード・サーバ６４、ストレージ・デバイス６５、ならびにネットワークおよびネットワーキング・コンポーネント６６を含む。いくつかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア６７およびデータベース・ソフトウェア６８を含む。
【００３５】
仮想レイヤ７０は、仮想エンティティの以下の例、仮想サーバ７１、仮想ストレージ７２、仮想プライベート・ネットワークを含む仮想ネットワーク７３、仮想アプリケーションおよびオペレーティング・システム７４、ならびに仮想クライアント７５が提供され得る、抽象レイヤを提供する。
【００３６】
１つの例では、管理レイヤ８０は、後述する機能を提供し得る。リソース供給８１は、クラウド・コンピューティング環境内でタスクを実行するために利用される、コンピューティング・リソースおよび他のリソースの動的な調達を提供する。測定および価格設定８２は、リソースがクラウド・コンピューティング環境内で利用されるときにコスト追跡を提供し、これらのリソースの消費に対する課金または請求を提供する。１つの例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、データおよび他のリソースについての保護だけでなく、クラウド消費者およびタスクについての本人確認を提供する。ユーザ・ポータル８３は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理８４は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソース割り当ておよび管理を提供する。サービス水準合意（ＳＬＡ）計画および遂行８５は、ＳＬＡに従って将来の要件が予期されるクラウド・コンピューティング・リソースの事前配置および調達を提供する。
【００３７】
ワークロード・レイヤ９０は、クラウド・コンピューティング環境が利用され得る機能性の例を提供する。このレイヤから提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション９１、ソフトウェア開発およびライフサイクル管理９２、仮想クラスルーム教育配信９３、データ解析処理９４、トランザクション処理９５、ならびに時系列順ログ構造のキーバリュー・ストア処理における障害からの高速リカバリ９６を含む。上述の通り、図２に関して説明した前述の例の全ては、単なる例示であり、発明は、これらの例に限定されない。
【００３８】
本明細書で説明される１つまたは複数の実施形態の全ての機能が、典型的には、処理システム３００（図３）または自律クラウド環境４１０（図４）によって実行されてもよく、それらは、ハードウェア・プロセッサとして、かつプログラム・コードのモジュールで、有形に具現化され得ると理解される。しかしながら、これは非リアルタイム処理のための場合である必要はない。むしろ、非リアルタイム処理については、本明細書で列挙される機能性が、図２に示されるレイヤ６０、７０、８０、および９０のうちのいずれかによって実行され／実施され、または可能にされ、あるいはその両方であり得る。
【００３９】
本開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書に列挙される教示の実施は、クラウド・コンピューティング環境に限定されないと再確認する。むしろ、本発明の実施形態は、現在既知の、または後に開発される任意の種類のクラスタ化されたコンピューティング環境を用いて実施されてもよい。
【００４０】
図３は、１つの実施形態による、ネットワーク・アーキテクチャ３００を示す。図３に示されるように、第１のリモート・ネットワーク３０４および第２のリモート・ネットワーク３０６を含む複数のリモート・ネットワーク３０２が提供される。ゲートウェイ３０１は、リモート・ネットワーク３０２と近接ネットワーク３０８との間に連結され得る。このネットワーク・アーキテクチャ３００の文脈において、ネットワーク３０４、３０６は、それぞれＬＡＮ、インターネットなどのＷＡＮ、公衆交換電話網（ＰＳＴＮ）、内線電話網などを含むがこれらに限定されない任意の形態を取り得る。
【００４１】
使用中、ゲートウェイ３０１は、リモート・ネットワーク３０２から近接ネットワーク３０８への入口ポイントとしての役割をする。このように、ゲートウェイ３０１は、ゲートウェイ３０１に到達する所与のデータ・パケットを方向付けすることが可能なルータ、および所与のパケットのためにゲートウェイ３０１内外に実際の経路を供給するスイッチとして機能し得る。
【００４２】
近接ネットワーク３０８に連結される少なくとも１つのデータ・サーバ３１４がさらに含まれ、データ・サーバ３１４は、ゲートウェイ３０１を介してリモート・ネットワーク３０２からアクセス可能である。データ・サーバ３１４は、任意の種類のコンピューティング・デバイス／グループウェアを含み得ることに留意すべきである。各データ・サーバ３１４に連結されるのは、複数のユーザ・デバイス３１６である。そのようなユーザ・デバイス３１６は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、手持ち式コンピュータ、プリンタ、または任意の他の種類のロジック包含デバイス、あるいはそれらの組合せを含み得る。ユーザ・デバイス３１１もまた、いくつかの実施形態ではネットワークのうちのいずれかに直接連結され得ることに留意すべきである。
【００４３】
例えば、ファクシミリ機械、プリンタ、スキャナ、ハード・ディスク・ドライブ、ネットワーク化記憶ユニットもしくはシステムまたはローカル記憶ユニットもしくはシステムあるいはその両方などの、周辺装置３２０または一連の周辺装置３２０が、ネットワーク３０４、３０６、３０８のうちの１つまたは複数に連結され得る。データベースまたは追加コンポーネントあるいはその両方が、ネットワーク３０４、３０６、３０８に連結される任意の種類のネットワーク要素とともに利用されてもよく、または任意の種類のネットワーク要素に統合されてもよいことに留意すべきである。本説明の文脈において、ネットワーク要素は、ネットワークの任意のコンポーネントを指してもよい。
【００４４】
いくつかの手法によれば、本明細書に説明される方法およびシステムは、ＩＢＭ（Ｒ）ｚ／ＯＳ（Ｒ）環境をエミュレートするＵＮＩＸ（Ｒ）システム、ＭＩＣＲＯＳＯＦＴ（Ｒ）ＷＩＮＤＯＷＳ（Ｒ）環境を仮想的にホストするＵＮＩＸ（Ｒ）システム、ＩＢＭ（Ｒ）ｚ／ＯＳ（Ｒ）環境をエミュレートするＭＩＣＲＯＳＯＦＴ（Ｒ）ＷＩＮＤＯＷＳ（Ｒ）システムなどの、仮想システムまたは１つもしくは複数の他のシステムをエミュレートするシステムあるいはその両方を、用いてまたはその上あるいはその両方で実施されてもよい。この仮想化またはエミュレーションあるいはその両方は、いくつかの実施形態ではＶＭＷＡＲＥソフトウェアの使用を通して実施され得る。
【００４５】
図４は、１つの実施形態による、図３のユーザ・デバイス４１６またはサーバ３１４あるいはその両方に関連付けられた代表的なハードウェア・システム４００の環境を示す。１つの例では、ハードウェア構成は、マイクロプロセッサなどの中央処理装置４１０、およびシステム・バス４１２を介して相互接続された、いくつかの他のユニットを有するワークステーションを含む。図４に示されるワークステーションは、ランダム・アクセス・メモリ（ＲＡＭ）４１４と、読み出し専用メモリ（ＲＯＭ）４１６と、ディスク・ストレージ・ユニット４２０などの周辺デバイスをバス４１２に接続するためのＩ／Ｏアダプタ４１８と、キーボード４２４、マウス４２６、スピーカ４２８、マイクロフォン４３２、またはタッチ・スクリーン、デジタル・カメラ（図示せず）などの他のユーザ・インターフェース・デバイス、あるいはそれらの組合せをバス４１２に接続するためのユーザ・インターフェース・アダプタ４２２と、ワークステーションを通信ネットワーク４３５（例えば、データ処理ネットワーク）に接続するための通信アダプタ４３４と、バス４１２をディスプレイ・デバイス４３８に接続するためのディスプレイ・アダプタ４３６と、を含み得る。
【００４６】
１つの例では、ＭＩＣＲＯＳＯＦＴ（Ｒ）ＷＩＮＤＯＷＳ（Ｒ）オペレーティング・システム（ＯＳ）、ＭＡＣ  ＯＳ、ＵＮＩＸ（Ｒ）ＯＳなどのオペレーティング・システムがその上に常駐し得る。１つの実施形態では、システム４００は、ＰＯＳＩＸ（Ｒ）ベースのファイル・システムを採用する。他の例は、記載されるもの以外のプラットフォームおよびオペレーティング・システム上でも実施され得ると理解されるものとする。そのような他の例は、オブジェクト指向プログラミング方法論とともに、ＪＡＶＡ（Ｒ）、ＸＭＬ、Ｃ、もしくはＣ＋＋言語、またはそれらの組合せ、あるいは他のプログラミング言語を用いて書かれたオペレーティング・システムを含み得る。複雑なアプリケーションを開発するためにますます使用されるようになっているオブジェクト指向プログラミング（ＯＯＰ）も使用され得る。ＭｉｃｒｏｓｏｆｔおよびＷｉｎｄｏｗｓ（Ｒ）は、米国、他の国、またはその両方におけるＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの商標である。ＩＢＭおよびｚ／ＯＳは、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎの商標であり、世界中の多くの管轄区域において登録されている。ＵＮＩＸ（Ｒ）は、米国および他の国々におけるＯｐｅｎ  Ｇｒｏｕｐの登録商標である。Ｊａｖａ（Ｒ）およびＪａｖａ（Ｒ）に基づく商標およびロゴは全て、Ｏｒａｃｌｅまたはその関連会社あるいはその両方の商標または登録商標である。
【００４７】
図５は、実施形態による、ログ構造のストレージ・システム内の時系列順ログ構造のキーバリュー・ストアにおける障害からの高速リカバリのための処理ノード５００を示すブロック図である。ガベージ・コレクション（ＧＣ）という用語は、ログ内の古くなったエントリによって占められている「ディスク空間」を再要求することをいう。例えば、レコードが挿入されるとき、エントリは、ログの末尾に追加される。同一レコードが削除されるとき、廃棄エントリが、ログの末尾に追加される。廃棄エントリとは、挿入によって生成されるディスク上のデータの元の位置をいう。元の挿入されたレコードによって占められたディスク空間に対して、ガベージ・コレクションが行われ得る（システムがより古いバージョンを維持していない限り）。古くなったデータは、削除または更新されたレコードの結果であり得る。更新は、ログ内に維持されているデータのより古いバージョンがもはや必要でないため、古くなったデータをもたらす。ログ構造のストアにおいては、あらゆる挿入、更新、または削除動作が、レコードがログの末尾に挿入されるという結果をもたらすことに留意されたい。
【００４８】
１つの実施形態では、処理ノード５００は、１つまたは複数のプロセッサ５１０、チェックポイント・インターフェース５３０、およびメモリ５２０を含む。１つの実施形態では、各プロセッサ５１０は、ログ構造のストレージ・システム内の時系列順ログ構造のキーバリュー・ストアにおいて障害からの高速リカバリのための処理を実行する。ログ構造のストレージ・システムは、キーが与えられるレコードに迅速にアクセスするための完全なメモリ内インデックスであり、インデックス・エントリは、＜キー，ログ・アドレス＞によって表される。ログ構造のストレージ・システムでは、障害後、またはシャットダウン後の再始動中にインデックスを迅速に再構築する必要がある。単純なオプションは、始まりからのログの再生を含み得る。しかしながら、このオプションは、時間がかかり、リソース集中型である。１つの実施形態において、チェックポイント・インターフェース５３０は、インデックスのチェックポイントを含む処理のために提供される。チェックポイントからのリカバリのために、チェックポイント・インターフェース５３０は、チェックポイントがガベージ・コレクションと同時に発生し得る場合の処理を実行し得る。その結果、チェックポイント動作は、「ガベージ・コレクション対象スロット」上のキーの位置を記録し得る。ＧＣ動作の「ロールバック」は、ＧＣ対象スロット上のコンテンツを空にする。読み出しは失敗し、それによってデータ損失がもたらされる。無効な位置への後続のリカバリ・ポイントが、データ損失をもたらす。
【００４９】
１つの実施形態において、チェックポイント・インターフェース５３０による別の手法は、チェックポイント動作を却下することを含み得る。チェックポイントが利用可能である場合、ＧＣと同時に進行しない。この手法は、チェックポイント動作を完了するためにより長い経過時間をもたらし、したがって、より長いリカバリ時間をもたらす。この手法もまた、障害後により長い再始動時間をもたらすことによって、利用可能性に否定的な影響を与える。
【００５０】
１つの実施形態では、ＧＣは、チェックポイント・インターフェース５３０によってトランザクションとして実行される。トランザクション処理は、情報処理を個々の、トランザクションという非可分操作に分割する。各トランザクションは、完結したユニットとして成功または失敗しなければならず、部分的にのみ完結することは決してない。１つの実施形態では、チェックポイント・インターフェース５３０は、障害の場合にＧＣトランザクションのロールバックを実行する。ＧＣトランザクション・レコードは、＜対象スロット（ＴＳ），犠牲スロット（ＶＳ），対象スロット内の開始オフセット（ＢＯ）＞を含む。１つの実施形態では、ＧＣ対象領域は、ＧＣ対象スロット上の＜ＢＯ，スロットの終わり＞の領域である。ＧＣトランザクション・レコードは、ＧＣトランザクション上で始まり、終了する。
【００５１】
１つの実施形態では、チェックポイント・インターフェース５３０は、ＧＣロールバックを以下のように実行する。チェックポイント・インターフェース５３０は、未完了のＧＣ対象スロットおよび犠牲スロットを識別するために、リカバリ・ログを読み出す。チェックポイント・インターフェース５３０は、１）スロットがＧＣ対象スロットであり、かつオフセット≧ＢＯである場合、スロットの終わりまでスキップし、次のスロットへ続き、２）チェックポイント・レコードＡがＧＣ対象領域を指し示す場合、ａ）Ａによって指し示されるＧＣ対象領域内のレコード（レコードＢと呼ばれる）を読み出し、ｂ）キーおよびチェックポイント・レコードＡのコンテンツを記録するチェックポイント・レコードＡのために廃棄レコードを挿入し（これはレコードＢを含むＧＣ対象スロット領域の後の使用を可能にするためである）、ｃ）対応するＧＣ犠牲スロット・レコード（レコードＣと呼ばれる）を指し示すＢのバックポインタを使用して新たなチェックポイント・レコードを挿入するように、チェックポイントからのインデックス再構築を開始する。
【００５２】
次に、チェックポイント・インターフェース５３０は、インデックス再構築を終了し、オフセットＢＯからスロットの終わりまで対象スロットＴＳをゼロアウトし、「ガベージ・コレクション・トランザクションのための中断レコード」をリカバリ・ログに挿入する。リカバリの終わりにおいて、システム状態は、ＧＣ処理の前のシステムの状態と一致する。
【００５３】
図６は、実施形態による、ＧＣスロットを指し示すチェックポイント・レコードの例６００を示す。例６００のインデックス６１０は、左列のキーおよび右列のスロットマッピングを含む。１つの例では、Ｋ１は、スロット１  ６２０およびオフセット２を指し、Ｋ２は、スロット１  ６２０およびオフセット３を指す、などである。例６００において、示されるスロットは、スロット１  ６２０、スロット５１  ６３０、スロット３  ６４０、およびスロット４  ６５０を含む。犠牲スロットＶＳは、スロット３  ６４０として示され、対象スロットＴＳは、スロット５１  ６３０として示される。この例６００において、インデックス６１０は、ゼロアウトされた位置を指し示す誤ったエントリ６１１を含む。バックポインタ（前のアドレスを指し示す）・チェーン６６０は、スロット４  ６５０（ｋ８）からスロット５１  ６３０およびオフセット６（ｋ８）へのポインタを示す。チェックポイント・レコード６７０は、ＧＣ対象スロットを指し示すチェックポイント・レコードを指す。
【００５４】
図７は、１つの実施形態による、時系列順ログ構造のキーバリュー・ストアにおける障害からのリカバリのためのプロセス７００についてのブロック図を示す。１つの実施形態において、プロセス７００内のブロック７１０は、プロセッサによって（例えば、図５のプロセッサ５１０によって）、中断されたＧＣ動作の前にシステム状態を記録することを含む。ブロック７２０において、プロセス７００は、プロセッサによって、中断された対象スロット内のデータ・レコードを指し示すダーティ・チェックポイント・レコードのためにログ構造に廃棄エントリを書き込むことを実行する。ブロック７３０において、プロセス７００は、ログ構造内にダーティ・チェックポイント・レコードのための新たなチェックポイント・レコードを挿入する。
【００５５】
１つの実施形態では、プロセス７００において、システムは、時系列順ログ構造のキーバリュー・ストア・システムであってもよい。１つの実施形態では、プロセス７００について、ＧＣ動作はＧＣトランザクションである。プロセス７００について、中断された対象スロットは、ＧＣ動作の対象スロットであってもよい。
【００５６】
１つの実施形態では、プロセス７００は、ＧＣ動作中の障害（例えば、失敗したトランザクション）後にシステムを整合状態に復元するための処理を用いてデータの時系列順を維持する間、ＧＣ処理と同時に進行するためのチェックポイント動作に提供することをさらに含み得る。
【００５７】
１つの実施形態では、プロセス７００は、中断されたＧＣ動作後にリカバリ・ログを読み出すことと、未完了ＧＣ対象スロットおよび未完了ＧＣ犠牲スロットを識別することと、をさらに含み得る。
【００５８】
１つの実施形態では、プロセス７００は、別々のリカバリ・ログ上にＧＣトランザクションを記録することをさらに含み得る。１つの実施形態では、プロセス７００は、追加的に、ログ構造の対象スロットの領域を対象スロット内の開始オフセットから対象スロットの終わりまでゼロアウトすることと、個々のリカバリ・ログにＧＣトランザクションのための中断レコードを挿入することと、を含み得る。
【００５９】
当業者によって理解されるように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化されてもよい。したがって、本発明の態様は、完全なハードウェア実施形態、完全なソフトウェア実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、または本明細書で「回路」、「モジュール」、もしくは「システム」と全て概して呼ばれ得るソフトウェアおよびハードウェア態様を組み合わせる実施形態の形態を取ってもよい。さらに、本発明の態様は、その上で具現化されるコンピュータ可読プログラム・コードを有する、１つまたは複数のコンピュータ可読媒体において具現化されるコンピュータ・プログラム製品の形態を取ってもよい。
【００６０】
１つまたは複数のコンピュータ可読媒体の任意の組合せが、利用されてもよい。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってもよい。コンピュータ可読記憶媒体は、例えば、電子、磁気、光学、電磁気、赤外線、または半導体のシステム、装置、もしくはデバイス、または前述したものの任意の適当な組合せであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例（非網羅的なリスト）は、以下の、１つまたは複数の配線を有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭもしくはフラッシュメモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光記憶デバイス、磁気記憶デバイス、または前述したものの任意の適当な組合せを含む。本文書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、装置、もしくはデバイスによって、または関連して使用するプログラムを含み、または記憶し得る任意の有形媒体であってもよい。
【００６１】
コンピュータ可読信号媒体は、例えば、ベースバンドにおいて、または搬送波の一部として、そこに具現化されたコンピュータ可読プログラム・コードを有する伝搬データ信号を含んでもよい。そのような伝搬信号は、電磁気、光学、またはそれらの任意の適当な組合せを含むが、これらに限定されない多様な形態のいずれかを取ってもよい。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、装置、もしくはデバイスによって、または関連して使用するプログラムを通信、伝搬、または移送することが可能な、任意のコンピュータ可読媒体であってもよい。
【００６２】
コンピュータ可読媒体上に具現化されるプログラム・コードは、無線、有線配線、光ファイバ・ケーブル、ＲＦなどを含むがこれらに限定されない任意の適当な媒体、または前述したものの任意の適当な組合せを用いて送信されてもよい。
【００６３】
本発明の態様のための動作を実行するコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、および、「Ｃ」プログラミング言語または類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで書かれてもよい。プログラム・コードは、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、スタンドアロン・ソフトウェア・パッケージとして、ユーザのコンピュータ上で部分的におよびリモート・コンピュータで部分的に、またはリモート・コンピュータもしくはサーバ上で完全に、実行してもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを通して、ユーザのコンピュータに接続されてもよい。あるいは、接続は、（例えば、インターネット・サービス・プロバイダを使用してインターネットを通して）外部コンピュータに対して行われてもよい。
【００６４】
本発明の態様は、発明の実施形態による、方法、装置（システム）およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、以下で説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ・プログラム命令によって実施され得ると理解されるものとする。コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定される機能／動作を実施する手段を生成するように、これらのコンピュータ・プログラム命令は、汎用コンピュータ、専用コンピュータ、または機械を製造するために他のプログラマブル・データ処理装置のプロセッサに提供されてもよい。
【００６５】
コンピュータ可読媒体に記憶される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定される機能／動作を実施する命令を含む製品を製造するように、これらのコンピュータ・プログラム命令は、また、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスが特定の方法で機能するように指示することが可能な、コンピュータ可読媒体に記憶されてもよい。
【００６６】
コンピュータまたは他のプログラマブル装置上で実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定される機能／動作を実施するためのプロセスを提供するように、コンピュータ・プログラム命令は、また、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行されるべき一連の動作ステップに、コンピュータ実施プロセスを生成させるように、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされてもよい。
【００６７】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の考えられる実施のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実施するための１つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表し得る。いくつかの代替的な実施において、ブロック内に記載された機能は、図面中に記載された順序以外で発生してもよい。例えば、連続して示される２つのブロックが、実際には、実質的に同時に実行されてもよく、または、ブロックが、関係する機能性次第で逆の順序で実行されることがあってもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せが、指定された機能もしくは動作を実行し、または専用ハードウェアおよびコンピュータ命令の組合せを実行する専用ハードウェア・ベース・システムによって実施され得ることにも留意されたい。
【００６８】
特許請求の範囲における単数形の要素への参照は、明示的にそのように述べられない限り、「１つかつただ１つ」ではなく「１つまたは複数」を意味することを意図する。当業者に現在知られている、または後で知られることとなる上述の例示的実施形態の要素の全ての構造的および機能的等価物が、本特許請求の範囲によって包含されることを意図する。要素が「ｍｅａｎｓ  ｆｏｒ」または「ｓｔｅｐ  ｆｏｒ」という語句を用いて明示的に列挙されない限り、本明細書におけるいかなる特許請求の要素も、米国特許法第１１２条第６パラグラフの規定により解釈されるべきでない。
【００６９】
本明細書で使用される専門用語は、特定の実施形態のみを説明する目的のためであり、発明を限定することを意図するものではない。本明細書で使用される、単数形「ａ」、「ａｎ」、および「ｔｈｅ」は、文脈が特段明示していない限り、複数形も同様に含むことを意図するものである。「ｃｏｍｐｒｉｓｅｓ（備える）」または「ｃｏｍｐｒｉｓｉｎｇ（備えている）」という用語、あるいはその両方は、本明細書で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、またはコンポーネント、あるいはそれらの組合せの存在を示しているが、１つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、またはそれらの集合、あるいはそれらの組合せの存在または追加を排除するものではないと、さらに理解されるものとする。
【００７０】
下記の特許請求の範囲における全てのミーンズ・プラス・ファンクションまたはステップ・プラス・ファンクション要素の対応する構造、物質、動作、および均等物は、他の請求された要素と組み合わせて機能を実行するための任意の構造、物質、または動作を具体的に請求されるものとして含むことを意図する。本発明の説明は、例示および説明の目的で提示されているが、網羅的であるように、または開示された形態に発明を限定されることを意図するものではない。多くの修正および変形が、発明の範囲から逸脱することなく当業者には明らかである。実施形態は、発明の原理および実際の適用を最もよく説明するため、ならびに、考えられる特定の用途に適した多様な修正を伴う多様な実施形態についての発明を他の当業者が理解可能にするために、選択され説明された。
【図１】
2021515304.tif 000003
【図２】
2021515304.tif 000004
【図３】
2021515304.tif 000005
【図４】
2021515304.tif 000006
【図５】
2021515304.tif 000007
【図６】
2021515304.tif 000008
【図７】
2021515304.tif 000009
【手続補正書】
【提出日】令和3年4月13日(2021.4.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサを含むシステムにおける時系列ログ構造のキーバリュー・ストア内のチェックポイントを使用した障害後のリカバリのための方法であって、
前記プロセッサによって、中断されたガベージ・コレクション動作の前にシステム状態を記録することと、
前記プロセッサによって、中断された対象スロット内のデータ・レコードを指し示すダーティ・チェックポイント・レコードのためにログ構造に廃棄エントリを書き込むことと、
前記ログ構造内に前記ダーティ・チェックポイント・レコードのための新たなチェックポイント・レコードを挿入することと、
を含む、方法。
【請求項２】
前記システムが、時系列順ログ構造のキーバリュー・ストア・システムを含む、請求項１に記載の方法。
【請求項３】
前記ガベージ・コレクション動作が、ガベージ・コレクション・トランザクションを含む、請求項１または２に記載の方法。
【請求項４】
前記中断された対象スロットが、前記ガベージ・コレクション動作の対象スロットである、請求項１ないし３のいずれか一項に記載の方法。
【請求項５】
ガベージ・コレクション動作中の障害後に前記システムを整合状態に復元する処理を用いてデータの時系列順を維持する間、ガベージ・コレクション処理と並行して進行するチェックポイント動作に提供することをさらに含む、請求項３または４に記載の方法。
【請求項６】
前記中断されたガベージ・コレクション動作後にリカバリ・ログを読み出すことと、
未完了ガベージ・コレクション対象スロットおよび未完了ガベージ・コレクション犠牲スロットを識別することと、
をさらに含む、請求項１ないし５のいずれか一項に記載の方法。
【請求項７】
個々のリカバリ・ログ上に前記ガベージ・コレクション・トランザクションを記録することをさらに含む、請求項１ないし６のいずれか一項に記載の方法。
【請求項８】
前記ログ構造の前記対象スロットの領域を前記対象スロット内の開始オフセットから前記対象スロットの終わりまでゼロアウトすることと、
前記個々のリカバリ・ログに前記ガベージ・コレクション・トランザクションのための中断レコードを挿入することと、
をさらに含む、請求項１ないし７のいずれか一項に記載の方法。
【請求項９】
システムにおける時系列ログ構造のキーバリュー・ストア内のチェックポイントを使用した障害後のリカバリのためのコンピュータ・プログラムであって、
実行されることにより、前記システムに請求項１ないし８のいずれか一項に記載の方法を実行させる、コンピュータ・プログラム。
【請求項１０】
デジタル・コンピュータの内部メモリ内にロード可能なコンピュータ・プログラムであって、前記コンピュータ・プログラムが前記デジタル・コンピュータ上で実行されるときに、請求項１ないし８のいずれか一項に記載の方法を前記デジタル・コンピュータに実行させる、コンピュータ・プログラム。
【請求項１１】
装置であって、
命令を記憶するメモリと、
中断されたガベージ・コレクション動作の前にシステム状態を記録し、
中断された対象スロット内のデータ・レコードを指し示すダーティ・チェックポイント・レコードのためにログ構造に廃棄エントリを書き込み、
前記ログ構造内に前記ダーティ・チェックポイント・レコードのための新たなチェックポイント・レコードを挿入する、
ための前記命令を実行するプロセッサと、
を備える、装置。
【請求項１２】
前記システムが、時系列順ログ構造のキーバリュー・ストア・システムを含み、前記ガベージ・コレクション動作が、ガベージ・コレクション・トランザクションを含み、前記中断された対象スロットが、前記ガベージ・コレクション・トランザクションの対象スロットである、請求項１１に記載の装置。
【請求項１３】
前記プロセッサが、
前記ガベージ・コレクション・トランザクション中の障害後に前記システムを整合状態に復元するための処理を用いてデータの時系列順を維持する間、ガベージ・コレクション処理と同時に進行するためのチェックポイント動作に提供することと、
前記中断されたガベージ・コレクション・トランザクション後にリカバリ・ログを読み出すことと、
未完了ガベージ・コレクション対象スロットおよび未完了ガベージ・コレクション犠牲スロットを識別することと、
を含む命令をさらに実行する、請求項１２に記載の装置。
【請求項１４】
前記プロセッサが、
個々のリカバリ・ログ上に前記ガベージ・コレクション・トランザクションを記録することを含む命令をさらに実行する、請求項１２または１３に記載の装置。
【請求項１５】
前記プロセッサが、
前記ログ構造の前記対象スロットの領域を前記対象スロット内の開始オフセットから前記対象スロットの終わりまでゼロアウトすることと、
前記個々のリカバリ・ログに前記ガベージ・コレクション・トランザクションのための中断レコードを挿入することと、
を含む命令をさらに実行する、請求項１４に記載の装置。
【国際調査報告】
2021515304.tif 000010
2021515304.tif 000011