JP6026538B2 - 検証されたデータセットの不揮発性媒体ジャーナリング - Google Patents
検証されたデータセットの不揮発性媒体ジャーナリング Download PDFInfo
- Publication number
- JP6026538B2 JP6026538B2 JP2014529692A JP2014529692A JP6026538B2 JP 6026538 B2 JP6026538 B2 JP 6026538B2 JP 2014529692 A JP2014529692 A JP 2014529692A JP 2014529692 A JP2014529692 A JP 2014529692A JP 6026538 B2 JP6026538 B2 JP 6026538B2
- Authority
- JP
- Japan
- Prior art keywords
- data set
- journal
- storage
- stored
- volatile memory
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
コンピューティングの分野において、多くのシナリオは、一連のデータセットを有する記憶セット(storage set)の、一つまたは複数の記憶装置のセット上への記憶に関わる。たとえば、ユーザーは、一組のハードディスクドライブを横断してアーカイブを生成したいことがあり、該アーカイブ内に一つまたは複数のデータセット(たとえばバイト、語、ブロックまたはデータ、ファイルもしくはレコードのシーケンス)を記憶することがありうる。いくつかのシナリオでは、記憶装置はデータの記憶のために全体的に割り当てられていてもよい。たとえば、二テラバイトのハードディスクドライブは、二テラバイトの記憶セットを与えるよう構成されていてもよい。他のシナリオでは、記憶セットは、データへのアクセスしやすさおよび/または復元を増進する仕方で記憶装置上に冗長に記憶されてもよい。たとえば、一方のコピーが破損した場合にバックアップを提供するために、一テラバイトのデータセットが二つの一テラバイト・ハードディスクドライブ上に同一の形で記憶されてもよい。記憶セットを記憶するために、複数の記憶装置が、さまざまな仕方で協働するよう構成されていてもよい。
本稿に提示されるのは、可能性としては図1および図2の例示的なシナリオにおいて例解されているものを含む記憶シナリオにおいて生じうる問題および/または非効率のいくらかに対処するための技法である。これらの技法によれば、記憶セット102を記憶する記憶装置106の一つまたは複数上でジャーナルが生成されうる。記憶セット102に書き込まれるべきデータセット104および検証子112はまずジャーナルに書き込まれてもよい。さらに、ジャーナルは、データセット104の書き込み順のシーケンスにおいて構成されたデータセット104のシーケンスとして構成されてもよい。それにより、記憶セット102のさまざまな(シーケンシャルでない)位置においてデータセット104を書き込む要求のストリームを受領する記憶装置106はまず、ジャーナル中にシーケンシャルにデータセット104を記憶してもよい。さらに、記憶セット102中の要求された諸位置110にデータをコミットするために、バッチとして書き込まれてもよいいくつかのデータセットが選択されてもよい。たとえば、ジャーナルは、記憶セット102に書き込まれるべきデータセット104をシーケンシャルに待ち行列に入れてもよく、定期的に、待ち行列の前から、同じバッチ内で書き込みされうるデータセット104のセットを選択してもよい。
図4は、少なくとも一つの記憶装置106によって提供される記憶セット102においてデータセット104を記憶する第一の例示的な方法400として描かれている、これらの技法の第一の例示的な実施形態の図解を示している。例示的な方法400は、たとえば装置のメモリ・コンポーネント(たとえば、メモリ回路、ハードディスクドライブの円盤、半導体メモリ・コンポーネントまたは磁気もしくは光ディスク)に記憶された命令のセットであって、装置のプロセッサによって実行されたときに該装置に本稿に提示される技法を実行させるものとして実装されてもよい。例示的な方法400は、402において開始され、プロセッサ上で命令を実行する(404)ことに関わる。具体的には、前記命令は、少なくとも一つの記憶装置106上で、それぞれ検証子112と関連付けられたデータセット104を記憶するよう構成されたジャーナル302を生成する(406)よう構成されている。前記命令はまた、記憶セット102中の位置110にデータセット104を記憶する要求を受領すると、該データセット104をジャーナル302に記憶する(408)よう構成されている。前記命令はまた、記憶セット102にコミットされるべき、ジャーナル302に記憶された諸データセット104のバッチ318を選択する(410)よう構成されている。前記命令は、記憶セット102へのこのコミットを、バッチ318のそれぞれのデータセット104について(412)、検証子112を計算し(414);検証子112をジャーナル302に記憶し(416);データセット104およびデータセット104の検証子112を記憶セット102に記憶する(418)ことによって達成しうる。前記命令はまた、データセット104およびデータセット104の検証子112を記憶セット102に記憶した(418)のち、ジャーナル302から前記データセット104を除去するよう構成される。このようにして、前記命令は、本稿に提示される技法に基づく、記憶セット102へのデータセット104の記憶を達成し、よって例示的な方法400は420において終了する。
本稿で論じられる技法は、多くの側面における変形をもって考案されてもよい。いくつかの変形は、追加的な利点を提示し、および/またはこれらおよび他の技法の他の変形に関する不都合な点を軽減しうる。さらに、いくつかの変形は、組み合わせて実装されてもよく、いくつかの組み合わせは、相乗作用を通じて追加的な利点および/または軽減された不都合な点を特徴としうる。そうした変形は、さまざまな実施形態(たとえば図4の第一の例示的な方法400および図5の第二の例示的な方法500)に組み込まれてそのような実施形態に対して個別的および/または相乗的な利点を付与しうる。
これらの技法の実施形態の間で変わりうる第一の側面は、そうした技法が利用されうるシナリオに関する。第一の変形として、これらの技法は、多くの型の記憶セット102およびデータセット104を管理するために使用されうる。それには、それぞれのアドレスに記憶されている値のセットをそれぞれ含む一つまたは複数のボリューム;それぞれファイルのセットを含むファイル・システム;それぞれレコードのセットを含むデータベース;それぞれメディア・オブジェクトのセットを含むメディア・ライブラリ;それぞれアプリケーションのセットを含むアプリケーション・セット;およびそれぞれボリュームおよび/または仮想マシンのメモリのセットを含むコンピューティング環境サーバーが含まれる。さらに、記憶セット102内でのデータセット104の識別は、種々のシナリオ間では粒度において異なりうる。たとえば、ボリュームを含む記憶セット102は、これらの技法を、ビット、バイト、さまざまな長さの語、さまざまな長さのデータ・ブロックまたはセクタを含むデータセット104をジャーナリングし、記憶セット102にコミットするために利用してもよい。
実施形態の間で変わりうる第二の側面は、そうした技法の要素の変形に関わる。第一の変形としては、ジャーナル302を生成する(406)際に多くの技法が使用されうる。たとえば、ジャーナル302はアレイ、リンクされたリスト、テーブル、データベース、スタック、待ち行列、ヒープまたは二分木のような多くの型のデータ構造を含みうる。種々の実装はさまざまな利点および不都合な点を呈しうる(たとえば、パフォーマンス、更新の容易さ、スペース効率、コンピューティング経済および記憶装置106および/または記憶セット102の特性との適合性)。記憶セット102を記憶する異なる記憶装置106上で、および/または異なる型のデータセット104について、異なる型のジャーナル302が実装されてもよい。たとえば、頭部ポインタ308および尾部ポインタ306を含むアレイとして構成されたジャーナル302は、ジャーナル302の任意のレコード304への迅速なインデックス(たとえばO(1)のアクセス時間)、頭部ポインタ308および尾部ポインタ306の操作を通じたレコード304の効率的な割り当ておよび再利用ならびにジャーナル302におけるデータセット104の効率的な記憶(たとえば単に、ジャーナル302をなすレコード304のシーケンスに新たなデータセット104をアペンドすることによる)という利点を提供しうる。
これらの技法の実施形態の間で変わりうる第三の側面は、そのような技法を実装する装置610の揮発性メモリにおける、ジャーナル302の揮発性メモリ表現の生成に関わる。たとえば、記憶装置106の不揮発性媒体上で生成されたジャーナル302に加えて、これらの技法のある実施形態は、やはりジャーナル302に記憶されているデータセット104を記憶する、ジャーナル302と同期を保たれる揮発性メモリ表現を生成してもよい。ジャーナル302への揮発性メモリ表現の生成および維持は複雑さを追加し、追加的な計算資源を消費することがありうるものの、揮発性メモリ表現はこれらの技法の諸実施形態において、多くの潜在的な用途および利点を提供する。第一の例示的な利点として、揮発性メモリ表現は、ジャーナル302への書き込みバッファのはたらきをしうる。たとえば、個々のデータセット104をジャーナル302に書き込む代わりに、ある実施形態は、最初、データセット104を揮発性メモリ表現に記憶してもよく、ジャーナル302にデータセット104のブロックをコミットしてもよい。それにより、ジャーナル302への書き込み202のバッチ化によるジャーナル302へのデータセット104のシーケンシャル書き込み202の効率性利得が拡張される。第二の例示的な利点として、揮発性メモリ表現は最近書き込まれたデータセット104の読み出しキャッシュのはたらきをしうる。たとえば、比較的遅い記憶装置106上に記憶されているジャーナル302から最近書き込まれたデータセット104を読む代わりに、ある実施形態は、揮発性メモリ表現から該データセット104を提供してもよい。よって、これらの技法のある実施形態は、ジャーナル302および揮発性メモリ表現におけるその可用性に従って、要求されたデータセット104を取得しようと努力しうる。たとえば、上記実施形態は、データセット104が揮発性メモリ内のジャーナル302の揮発性メモリ表現に記憶されていることを判別すると、該揮発性メモリ表現に記憶されているデータセット104を取得し、提示し;データセット104が記憶装置106上のジャーナル302に記憶されていることを判別すると、ジャーナル302に記憶されているデータセット104を取得し、提示し;それ以外の場合には、記憶装置106上の記憶セット102に記憶されているデータセット104を取得し、提示するのでもよい。データセット104はこれらの資源の二つ以上にまたがってもよい。たとえば、要求されたデータセット104の第一の部分はジャーナル302に存在し、ジャーナル302から取得されてもよく、一方、要求されたデータセット104の第二の部分は揮発性メモリ表現に存在し、該揮発性メモリ表現から取得されてもよい(この第二の部分がアクセス可能性〔アクセシビリティ〕がより低いジャーナル302および/または記憶セット104に存在するか否かに関わりなく)。第三の例示的な利点として、バッチ318の選択のような、ジャーナル302に記憶されているデータセット104に関する決定が、揮発性メモリ表現の内容を評価することによってより効率的に実行されうる。これはしばしば、ジャーナル302の内容を評価するよりも迅速なアクセスを提供する。装置610の高速だが揮発性のメモリにおいてデータセット104にアクセスできることのこれらの利点は、不揮発性記憶装置106上のジャーナル302における記憶を通じたデータセット104の耐久性と並行して達成されうる。
これらの技法の実施形態の間で変わりうる第四の側面は、記憶セット102を記憶する記憶装置106に書き込みバッファを含めてこれを利用することに関する。多くの場合、記憶装置106は有利には、たとえばフラッシュ要求が開始されるまでデータセット104の書き込み202を揮発性メモリにおいてバッチ化して、データセット104の全部を記憶装置106上に記憶されている記憶セット102にコミットすることによって、パフォーマンスを改善するために、書き込みバッファを利用してもよい。しかしながら、記憶装置106上の書き込みバッファの動作は、本稿で提示される技法のパフォーマンスを低下させることがあり、実のところいくつかの問題を引き起こすことがある。たとえば、ジャーナル302にデータセット104を記憶する要求が揮発性書き込みバッファにおいて遅延される場合、障害210が発生すれば、該データセット104が失われることがありうる。特に、書き込みバッファはしばしば透明な仕方で実装され、(フラッシュ動作が肯定的に要求され、完了したと検証されるのでない限り)オペレーティング・システムまたは諸プロセスはデータセット104が実際にジャーナル302にコミットされたかどうかを、またさらには記憶装置104のために書き込みバッファが存在するか否かさえも判定することが難しいことがある。よって、プロセスがデータセット104をジャーナル302に書き込むことを要求するとき、たとえその書き込みがジャーナル302の不揮発性記憶ではなく揮発性書き込みバッファに記憶されるとしても、記憶装置106はすぐにそのプロセスに対して、要求が充足されたことを示すことがある。したがって、その適用は、あたかもデータセット104がコミットされたかのように、正しくない動作をすることがあり、記憶装置106がデータセット104を書き込みバッファからフラッシュする前に障害210が発生する場合、非一貫性および予期されないデータ損失が生じることがある。同様に、ジャーナル302と記憶セット102との間での書き込みバッファの動作は、データセット104が持続的に記憶されたかのように、ジャーナル302に正しくない動作をさせることがある。たとえば、ジャーナルは、まだ記憶セット102にコミットされていないデータセット104を除去し、それにより、書き込みバッファがフラッシュされるまでに障害210があった場合には、不完全で一貫しないデータセット104を生じることがある。さらに、書き込みバッファが提案しうる利点(たとえば、バッチ化された書き込み202、逐次の諸書き込み202の融合および上書きの削減)はすでに、本稿に提示される技法の他の構成要素によってすでに提供される。よって、書き込みバッファの存在および動作は追加される複雑さ、増加する費用、潜在的なパフォーマンス劣化および予期されない結果を引き起こすが、それでいて本稿に提示される技法によってすでに達成されていない利点はほとんどまたは全く提供しないことが理解されうる。
図11は、本稿に提示される技法が実装されうるコンピューティング装置1102内の例示的なコンピューティング環境の図解を示している。例示的なコンピューティング装置は、これに限られないが、パーソナル・コンピュータ、サーバー・コンピュータ、ハンドヘルドもしくはラップトップ装置、モバイル装置(携帯電話、携帯情報端末(PDA)、メディア・プレーヤーなど)、マルチプロセッサ・システム、消費者電子装置、ミニコンピュータ、メインフレーム・コンピュータおよび上記のシステムもしくは装置のいずれかを含む分散式のコンピューティング環境を含む。
主題は構造的な特徴および/または方法論的な工程に固有の言辞で記述されているが、付属の請求項において定義される主題は必ずしも上記で述べた個別的な特徴や工程に限定されるものではないことは理解しておくものとする。むしろ、上記の個別的な特徴および工程は請求項を実装する例示的な形として開示されているのである。
Claims (18)
- コンピュータのプロセッサが、少なくとも一つの不揮発性記憶装置によって提供される記憶セットにおいてデータセットを記憶する方法であって:
不揮発性記憶装置上で、それぞれ検証子と関連付けられたデータセットを記憶するよう構成されたジャーナルを生成する段階と;
前記記憶セット中のある位置にデータセットを記憶する要求を受領すると、前記データセットについての検証子を計算し;前記検証子および前記データセットを前記ジャーナルに記憶する段階と;
前記ジャーナルから、前記記憶セットにコミットされる第一のデータセットおよび第二のデータセットを含むバッチを、前記第一のデータセットおよび前記第二のデータセットを一緒に前記記憶セットを書き込むことが前記第一のデータセットおよび前記第二のデータセットを個々に前記記憶セットに書き込むより速くなるように選択する段階と;
前記バッチのそれぞれのデータセットについて前記第一のデータセット、前記第一のデータセットの前記検証子、前記第二のデータセットおよび前記第二のデータセットの前記検証子を前記記憶セットに記憶する段階と;
前記バッチの前記データセットすべてを前記記憶セットに記憶したのち、前記ジャーナルから前記バッチの前記第一のデータセットおよび前記第二のデータセットを除去する段階とを含む、
方法。 - 前記ジャーナルがデータセットのシーケンスを含み、
前記ジャーナルにデータセットを記憶することが、該データセットを前記データセットのシーケンスにアペンドすることを含む、
請求項1記載の方法。 - バッチを選択する前記段階が:
前記ジャーナルの容量に関わるジャーナル容量イベント;
前記ジャーナルに記憶されている前記データセットの継続時間に関わる継続時間イベント;
前記ジャーナル内の少なくとも一つのデータセットを前記記憶セットにコミットする要求に関わるコミット要求イベント;および
前記記憶セットの少なくとも一つの不揮発性記憶装置の作業負荷に関わる記憶装置作業負荷イベント
を含むコミット・イベント集合から選択されるコミット・イベントを検出したときに、
前記記憶セットに記憶されるべき第一のデータセットおよび第二のデータセットを前記ジャーナルから選択することを含む、
請求項1記載の方法。 - データセットの前記バッチの選択が:
前記ジャーナルに記憶されており、前記記憶セット中の第一の位置に記憶されるべき第一のデータセットを前記バッチに含めるよう選択し;
前記ジャーナルに記憶されており、前記記憶セット中の前記第一の位置に近い第二の位置に記憶されるべき第二のデータセットを前記バッチに含めるよう選択することを含む、
請求項1記載の方法。 - データセットの前記バッチの選択が、前記ジャーナルに記憶されており、前記記憶セット中のある位置に記憶されるべき第一のデータセットを、前記ジャーナルが前記第一のデータセットより新しくかつ前記記憶セット中の前記位置に記憶されるべき第二のデータセットを含んでいる場合には、前記バッチから省略することを含む、請求項1記載の方法。
- それぞれの要求がデータセットについて前記記憶セット中での位置を指定しており;
データセットについての検証子を計算することが:
前記ジャーナルに完全に記録されているデータセットについては、そのデータセットから検証子を計算し;
前記ジャーナルに完全には記録されていないデータセットについては:
前記記憶セット中での前記位置における前記データセットのもとのバージョンを読み;
前記データセットの前記もとのバージョンのもとの検証子を読み;
前記もとの検証子から前記データセットの前記もとのバージョンを除去し;
前記もとの検証子に前記データセットを含める、
ことを含む、請求項1記載の方法。 - 前記ジャーナルの揮発性メモリ表現を再構築する段階をさらに含み、該再構築が:
前記ジャーナル中に記憶されているそれぞれのデータセットについて、前記記憶セット中のそのデータセットの位置を読む段階と;
前記データセットの位置を読んだのちに、前記ジャーナル中の前記データセットを読む段階と;
前記データセットの位置を読んでいる間は、諸プロセスからの前記記憶セットにアクセスする要求をブロックする段階とを含む、
請求項1記載の方法。 - 前記コンピュータが揮発性メモリを有しており;
当該方法が:
前記揮発性メモリ中に、前記不揮発性記憶装置上に記憶されている前記ジャーナルの揮発性メモリ表現を生成し;
前記ジャーナルにデータセットを記憶するときに、前記ジャーナルの前記揮発性メモリ表現中に前記データセットを記憶する段階を含む、
請求項1記載の方法。 - 前記ジャーナルの前記揮発性メモリ表現が、前記記憶セット中で、前記データセットが記憶されるべき位置に従ってインデックス付けされる、請求項8記載の方法。
- 請求項8記載の方法であって、当該方法が、データセットを読み出す要求を受領すると:
前記データセットが前記揮発性メモリ内の前記ジャーナルの前記揮発性メモリ表現内に記憶されていることを判別すると、前記揮発性メモリ表現内に記憶されている前記データセットを提示し;
前記データセットが前記不揮発性記憶装置上の前記ジャーナルに記憶されていることを判別すると、前記ジャーナルに記憶されている前記データセットを提示し;
前記データセットが前記不揮発性記憶装置上の前記記憶セットに記憶されていることを判別すると、前記不揮発性記憶装置の前記記憶セットに記憶されている前記データセットを提示することを含む、
方法。 - 請求項8記載の方法であって、当該方法が、前記記憶セットにバッチを記憶したのち、そのバッチを前記ジャーナルの前記揮発性メモリ表現から除去する段階を含む、方法。
- 請求項11記載の方法であって、当該方法が:
前記ジャーナルにデータセットを記憶するときに、前記ジャーナルの前記揮発性メモリ表現中に前記データセットを、除去不可能とマークして記憶し;
前記記憶セットにデータセットを記憶するときに、前記ジャーナルの前記揮発性メモリ表現中に記憶されている前記データセットを、除去可能とマークする段階を含み、
データセットを前記揮発性メモリ中の前記ジャーナルの前記揮発性メモリ表現から除去することが、除去可能とマークされたデータセットのみを前記ジャーナルの前記揮発性メモリ表現から除去することを含む、
方法。 - 前記コンピュータが、前記不揮発性記憶装置上に記憶されている前記ジャーナルに関連付けられた書き込みバッファを有しており、
当該方法が:
前記書き込みバッファから前記記憶セットへのデータセットのコミットを検出する段階と;
データセットのコミットを検出すると、前記ジャーナルの前記揮発性メモリ表現において、そのデータセットにコミット済みとマークする段階とを含み、
前記ジャーナルからデータセットを除去することが、コミット済みとマークされたデータセットのみを前記ジャーナルから除去することを含む、
請求項11記載の方法。 - 請求項8記載の方法であって:
前記ジャーナルの前記揮発性メモリ表現がある容量のデータセットをもち;
前記揮発性メモリ中に前記ジャーナルの前記揮発性メモリ表現を生成することが:
前記ジャーナルの前記揮発性メモリ表現中の前記容量のデータセット;
前記ジャーナルの前記揮発性メモリ表現の前記容量を含む前記データセットの前記検証子;
前記ジャーナルに記憶されているデータセットが前記記憶セットに記憶されつつある間に前記記憶セットに記憶されるべきデータセットを記憶するよう構成されたバッファとを記憶するよう前記揮発性メモリ中の容量をリザーブしておくことを含む、
方法。 - 前記コンピュータの障害から回復したときに、
前記ジャーナルを使って、前記コンピュータの前記揮発性メモリ内に前記ジャーナルの前記揮発性メモリ表現を再構築し、
前記揮発性メモリ内に前記ジャーナルの前記揮発性メモリ表現を再構築したのち、前記記憶セットに記憶されるべき前記ジャーナルに記憶されているデータセットのバッチを選択することを再開始する段階をさらに含む、
請求項8記載の方法。 - 前記コンピュータが前記ジャーナルを記憶する前記不揮発性記憶装置に関連付けられた書き込みバッファを有しており、
当該方法は、前記ジャーナルにデータセットおよび検証子を書き込んでいる間、前記書き込みバッファをバイパスすることを含む、
請求項1記載の方法。 - 前記コンピュータが前記ジャーナルを記憶する前記不揮発性記憶装置に関連付けられた書き込みバッファを有しており、
当該方法は、前記ジャーナルを記憶している不揮発性記憶装置の書き込みバッファをフラッシュするときに、その不揮発性記憶装置にフラッシュされたデータセットを示すフラッシュ点を同定する段階を含む、
請求項1記載の方法。 - 少なくとも一つの不揮発性記憶装置が前記ジャーナルに関連付けられた書き込みバッファを有しており、
当該方法は、バッチの記憶セットを前記記憶セットに記憶したのち、前記不揮発性記憶装置の前記書き込みバッファをフラッシュする段階を含む、
請求項1記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/229,736 | 2011-09-11 | ||
US13/229,736 US9229809B2 (en) | 2011-09-11 | 2011-09-11 | Nonvolatile media journaling of verified data sets |
PCT/US2011/055818 WO2013036265A1 (en) | 2011-09-11 | 2011-10-11 | Nonvolatile media journaling of verified data sets |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2014526735A JP2014526735A (ja) | 2014-10-06 |
JP2014526735A5 JP2014526735A5 (ja) | 2014-11-13 |
JP6026538B2 true JP6026538B2 (ja) | 2016-11-16 |
Family
ID=47728149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014529692A Active JP6026538B2 (ja) | 2011-09-11 | 2011-10-11 | 検証されたデータセットの不揮発性媒体ジャーナリング |
Country Status (6)
Country | Link |
---|---|
US (1) | US9229809B2 (ja) |
EP (1) | EP2754051B1 (ja) |
JP (1) | JP6026538B2 (ja) |
KR (1) | KR101863406B1 (ja) |
CN (1) | CN102945201B (ja) |
WO (1) | WO2013036265A1 (ja) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9229809B2 (en) | 2011-09-11 | 2016-01-05 | Microsoft Technology Licensing Llc | Nonvolatile media journaling of verified data sets |
US8456972B2 (en) | 2011-09-12 | 2013-06-04 | Microsoft Corporation | Efficient access to storage devices with usage bitmaps |
US8977826B1 (en) * | 2011-12-28 | 2015-03-10 | Emc Corporation | Extent commands in replication |
US10216822B2 (en) * | 2012-11-02 | 2019-02-26 | Vod2, Inc. | Data distribution methods and systems |
GB2503600B (en) * | 2012-12-21 | 2014-05-14 | Mobile Content Man Solutions Ltd | Digital memory imaging system and method |
CN103488433B (zh) * | 2013-09-18 | 2016-05-11 | 北京思特奇信息技术股份有限公司 | 一种基于分布式文件系统的批量文件操作方法及系统 |
TWI498902B (zh) * | 2013-11-28 | 2015-09-01 | Phison Electronics Corp | 資料管理方法、記憶體儲存裝置及記憶體控制電路單元 |
US9628333B2 (en) * | 2013-12-04 | 2017-04-18 | International Business Machines Corporation | Operating a dual chipset network interface controller (‘NIC’) that includes a high performance media access control chipset and a low performance media access control chipset |
CN104021049B (zh) * | 2014-05-16 | 2017-11-03 | 华为技术有限公司 | 分布式存储系统中数据统一的方法和以太接口硬盘 |
US9720774B2 (en) * | 2015-06-29 | 2017-08-01 | Sap Se | Adaptive recovery for SCM-enabled databases |
US20170031791A1 (en) * | 2015-07-27 | 2017-02-02 | Futurewei Technologies, Inc. | Maintaining a parity-inconsistent table to identify stripes affected by a write hole effect |
JP6734536B2 (ja) * | 2016-07-29 | 2020-08-05 | 富士通株式会社 | 情報処理装置及びメモリコントローラ |
CN106599046B (zh) * | 2016-11-09 | 2020-06-30 | 北京同有飞骥科技股份有限公司 | 分布式文件系统的写入方法及装置 |
US10496319B2 (en) | 2017-02-28 | 2019-12-03 | Sap Se | Lifecycle management for data in non-volatile memory including blocking creation of a database savepoint and associating non-volatile memory block identifiers with database column fragments |
CN108664208B (zh) * | 2017-03-27 | 2022-02-15 | 珠海极海半导体有限公司 | 基于flash存储器的文件追加写操作方法及装置 |
US10936206B1 (en) * | 2017-04-05 | 2021-03-02 | Tintri By Ddn, Inc. | Handling a device in a latency state in a redundant storage system |
CN107315616B (zh) * | 2017-06-30 | 2020-08-21 | 苏州浪潮智能科技有限公司 | 一种固件的加载方法、装置及电子设备 |
KR102441997B1 (ko) * | 2017-11-01 | 2022-09-08 | 한국전자통신연구원 | 네트워크에서 메타데이터의 동기화를 제어하는 장치 및 그 방법 |
CN110018783B (zh) * | 2018-01-09 | 2022-12-20 | 阿里巴巴集团控股有限公司 | 一种数据存储方法、装置及系统 |
CN108920094B (zh) * | 2018-06-01 | 2021-06-08 | 深圳忆联信息系统有限公司 | 擦除单元raid方法、装置、计算机设备及存储介质 |
US11347653B2 (en) * | 2018-08-31 | 2022-05-31 | Nyriad, Inc. | Persistent storage device management |
KR20200035592A (ko) * | 2018-09-27 | 2020-04-06 | 삼성전자주식회사 | 스토리지 장치의 구동 방법, 이를 수행하는 스토리지 장치 및 이를 포함하는 스토리지 시스템 |
CN111208933B (zh) | 2018-11-21 | 2023-06-30 | 昆仑芯(北京)科技有限公司 | 数据访问的方法、装置、设备和存储介质 |
CN112003815A (zh) * | 2019-05-27 | 2020-11-27 | 阿里巴巴集团控股有限公司 | 通信系统、方法和装置、定位系统、计算设备和存储介质 |
US10970170B2 (en) * | 2019-08-29 | 2021-04-06 | Micron Technology, Inc. | Shared parity protection |
CN113126887A (zh) * | 2020-01-15 | 2021-07-16 | 伊姆西Ip控股有限责任公司 | 用于重建盘阵列的方法、电子设备和计算机程序产品 |
US11429308B2 (en) * | 2020-03-18 | 2022-08-30 | Vmware, Inc. | Adaptive metadata batching based on input/output rate |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2888958B2 (ja) | 1990-10-20 | 1999-05-10 | 富士通株式会社 | 部分書き換え可能な記憶媒体におけるファイル管理方式 |
JP3250861B2 (ja) | 1993-03-09 | 2002-01-28 | 株式会社日立製作所 | ディスク装置システム |
JPH08147110A (ja) | 1994-11-18 | 1996-06-07 | Sony Corp | データ記録媒体管理方法、データ記録媒体管理装置およびデータ記録媒体 |
JP2000305860A (ja) | 1999-04-23 | 2000-11-02 | Toshiba Corp | 情報記憶システム及び同システムに於ける記憶制御方法 |
JP2001051806A (ja) | 1999-08-05 | 2001-02-23 | Fujitsu Ltd | ディスクアレイ装置 |
JP2001166993A (ja) | 1999-12-13 | 2001-06-22 | Hitachi Ltd | 記憶制御装置およびキャッシュメモリの制御方法 |
US6516380B2 (en) | 2001-02-05 | 2003-02-04 | International Business Machines Corporation | System and method for a log-based non-volatile write cache in a storage controller |
JP2003196032A (ja) | 2001-12-26 | 2003-07-11 | Nec Corp | ストレージ装置のライトキャッシュ制御方法及びストレージ装置 |
JP3788961B2 (ja) * | 2002-08-30 | 2006-06-21 | 株式会社東芝 | ディスクアレイ装置及び同装置におけるレイドレベル変更方法 |
US7035974B2 (en) | 2002-11-06 | 2006-04-25 | Synology Inc. | RAID-5 disk having cache memory implemented using non-volatile RAM |
TWI278851B (en) | 2003-02-25 | 2007-04-11 | Lg Electronics Inc | Recording medium having data structure for managing at least a data area of the recording medium and recording and reproducing methods and apparatuses |
JP4026517B2 (ja) | 2003-03-12 | 2007-12-26 | ソニー株式会社 | 記録媒体、記録装置、記録方法 |
US7162401B1 (en) | 2003-03-28 | 2007-01-09 | Applied Micro Circuits Corporation | Monitoring of resources that are being modeled by simulation or emulation |
US20050188248A1 (en) * | 2003-05-09 | 2005-08-25 | O'brien John | Scalable storage architecture |
JP2005032413A (ja) | 2003-06-19 | 2005-02-03 | Nec Corp | 光ディスクの未記録領域への記録方法、光デイスクの記録装置,光ディスク及び光ディスクのデータ記録用プログラム |
GB0318384D0 (en) | 2003-08-06 | 2003-09-10 | Ibm | A storage controller and a method for recording diagnostic information |
US7010721B2 (en) | 2003-09-29 | 2006-03-07 | International Business Machines Corporation | File system journal management |
US7197599B2 (en) * | 2003-12-29 | 2007-03-27 | Intel Corporation | Method, system, and program for managing data updates |
JP4144549B2 (ja) | 2004-03-31 | 2008-09-03 | 日本電気株式会社 | データ保存システムおよび該システムの制御方法 |
US8121007B2 (en) | 2004-05-10 | 2012-02-21 | Panasonic Corporation | Pseudo-overwriting data on write-once discs |
US7873782B2 (en) | 2004-11-05 | 2011-01-18 | Data Robotics, Inc. | Filesystem-aware block storage system, apparatus, and method |
JP4435705B2 (ja) * | 2005-03-14 | 2010-03-24 | 富士通株式会社 | 記憶装置、その制御方法及びプログラム |
US7562188B2 (en) | 2005-06-17 | 2009-07-14 | Intel Corporation | RAID power safe apparatus, systems, and methods |
US7516268B2 (en) | 2005-08-01 | 2009-04-07 | Infortrend Technology, Inc. | Method for improving writing data efficiency and storage subsystem and system implementing the same |
US7774346B2 (en) | 2005-08-26 | 2010-08-10 | Oracle International Corporation | Indexes that are based on bitmap values and that use summary bitmap values |
US7533298B2 (en) | 2005-09-07 | 2009-05-12 | Lsi Corporation | Write journaling using battery backed cache |
US7457928B2 (en) | 2005-10-28 | 2008-11-25 | International Business Machines Corporation | Mirroring system memory in non-volatile random access memory (NVRAM) for fast power on/off cycling |
US7845008B2 (en) * | 2005-12-07 | 2010-11-30 | Lenovo (Singapore) Pte. Ltd. | Virus scanner for journaling file system |
US7574560B2 (en) | 2006-01-03 | 2009-08-11 | Emc Corporation | Methods, systems, and computer program products for dynamic mapping of logical units in a redundant array of inexpensive disks (RAID) environment |
JP4741371B2 (ja) | 2006-01-05 | 2011-08-03 | 株式会社日立製作所 | システム、サーバ装置及びスナップショットの形式変換方法 |
US7752402B2 (en) * | 2006-08-18 | 2010-07-06 | Isilon Systems, Inc. | Systems and methods for allowing incremental journaling |
JP2008225616A (ja) | 2007-03-09 | 2008-09-25 | Hitachi Ltd | ストレージシステム、リモートコピーシステム、及びデータ復元方法 |
KR101424782B1 (ko) | 2007-07-19 | 2014-08-04 | 삼성전자주식회사 | 솔리드 스테이트 디스크 컨트롤러 및 솔리드 스테이트디스크 컨트롤러의 데이터 처리 방법 |
US8145604B2 (en) * | 2007-10-19 | 2012-03-27 | Apple Inc. | Method and apparatus for relocating an active five system journal |
US7877626B2 (en) | 2007-12-31 | 2011-01-25 | Datadirect Networks, Inc. | Method and system for disk storage devices rebuild in a data storage system |
JP5029513B2 (ja) * | 2008-06-30 | 2012-09-19 | ソニー株式会社 | 情報処理装置、情報処理装置の制御方法、およびプログラム |
JP5156518B2 (ja) | 2008-07-23 | 2013-03-06 | 株式会社日立製作所 | 記憶制御装置及び方法 |
US20100138603A1 (en) | 2008-12-03 | 2010-06-03 | Atul Mukker | System and method for preventing data corruption after power failure |
JP2010267164A (ja) * | 2009-05-15 | 2010-11-25 | Toshiba Storage Device Corp | 記憶装置、データ転送制御装置、データ転送方法およびデータ転送プログラム |
KR101562794B1 (ko) | 2009-08-04 | 2015-10-26 | 삼성전자주식회사 | 데이터 저장 장치 |
US9229809B2 (en) | 2011-09-11 | 2016-01-05 | Microsoft Technology Licensing Llc | Nonvolatile media journaling of verified data sets |
US8456972B2 (en) | 2011-09-12 | 2013-06-04 | Microsoft Corporation | Efficient access to storage devices with usage bitmaps |
-
2011
- 2011-09-11 US US13/229,736 patent/US9229809B2/en active Active
- 2011-10-11 KR KR1020147006372A patent/KR101863406B1/ko active IP Right Grant
- 2011-10-11 JP JP2014529692A patent/JP6026538B2/ja active Active
- 2011-10-11 WO PCT/US2011/055818 patent/WO2013036265A1/en active Application Filing
- 2011-10-11 EP EP11872055.6A patent/EP2754051B1/en active Active
-
2012
- 2012-09-11 CN CN201210333854.2A patent/CN102945201B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
KR20140060521A (ko) | 2014-05-20 |
US20130067174A1 (en) | 2013-03-14 |
CN102945201B (zh) | 2016-02-17 |
KR101863406B1 (ko) | 2018-06-29 |
EP2754051A1 (en) | 2014-07-16 |
EP2754051A4 (en) | 2015-11-25 |
WO2013036265A1 (en) | 2013-03-14 |
EP2754051B1 (en) | 2020-01-01 |
CN102945201A (zh) | 2013-02-27 |
US9229809B2 (en) | 2016-01-05 |
JP2014526735A (ja) | 2014-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6026538B2 (ja) | 検証されたデータセットの不揮発性媒体ジャーナリング | |
AU2017228544B2 (en) | Nonvolatile media dirty region tracking | |
EP3724764B1 (en) | Write-ahead style logging in a persistent memory device | |
US9715521B2 (en) | Data scrubbing in cluster-based storage systems | |
US10019320B2 (en) | Systems and methods for distributed atomic storage operations | |
JP6243028B2 (ja) | アトミック記憶操作のためのシステム及び方法 | |
TWI465906B (zh) | 用以執行無原子元資料之電力故障安全快取的技術 | |
WO2017190604A1 (zh) | 数据库系统中事务恢复的方法与数据库管理系统 | |
KR101870521B1 (ko) | 스토리지 저널링을 개선하는 방법 및 시스템 | |
JP5582418B2 (ja) | トランザクションメモリ | |
US10521148B2 (en) | Data storage device backup | |
TW201337561A (zh) | 資料可得性之掛接時間重新調整 | |
US20240036976A1 (en) | Distributed raid for parity-based flash storage devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140919 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140919 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20150523 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150729 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150804 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151030 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160329 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160617 |
|
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: 20160913 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161012 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6026538 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |