JP6734768B2 - 二重書込みを遂行するストレージ装置を含むシステム、装置、及びその方法 - Google Patents
二重書込みを遂行するストレージ装置を含むシステム、装置、及びその方法 Download PDFInfo
- Publication number
- JP6734768B2 JP6734768B2 JP2016240058A JP2016240058A JP6734768B2 JP 6734768 B2 JP6734768 B2 JP 6734768B2 JP 2016240058 A JP2016240058 A JP 2016240058A JP 2016240058 A JP2016240058 A JP 2016240058A JP 6734768 B2 JP6734768 B2 JP 6734768B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- write request
- storage device
- journal
- request
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
-
- 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/0611—Improving I/O performance in relation to response time
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Description
その重要な理由の1つは、SSDがフリー(free)フラッシュメモリブロックのみに書き込むことができ、再使用するためには、ガーベッジコレクション(garbage collection)を遂行して無効とされたフラッシュメモリブロックを回復する、という点である。従来のOS(オペレーティングシステム)及びアプリケーションがホット(hot)データとコールド(cold)データとを区別しないので、相異なる寿命(lifespan)を有するデータが通常、混合されている場合、フラッシュメモリを管理し、リクレイム(reclaim、再利用)するためのガーベッジコレクションの遂行をさらに難しくする。これはSSDの性能及び寿命の全てに影響を及ぼす。
これに、ストレージ装置の動作効率が増加する。
また、プロセッサ110はストレージ装置130及びネットワークコネクタ215に連結される。例えば、ネットワークコネクタ215はイーサネット(登録商標)(ethernet)コネクタである。また、他に色々の構成要素がある中で、プロセッサ110はバス220に連結される。バス220はユーザインタフェイス225と連結され、I/O(Input/Output)エンジン230を利用して管理されるI/Oインタフェイスポートに連結される。
ただ1つのソフトウェア要素(アプリケーション125、図3参照)がストレージ装置130と通信する本発明の一実施形態において、該ソフトウェア要素はジャーナリングを遂行する任意のソフトウェア要素である場合、図3において、アプリケーション125は適用性(applicability)を喪失すること無く、図1のデータストレージシステム120により置換できる。(以下の図7及び図8においては、図1のデータストレージシステム120及びアプリケーション125の両方がストレージ装置130とジャーナリングを遂行する本発明の別の実施形態が説明される。
ジャーナル情報305が直ちにストレージ装置130に書き込まれることを保障するために、ジャーナル書込み要請310は直接I/Oコマンドを使用して伝送される。又は別の選択肢として、同じくジャーナル情報305が直ちにストレージ装置130に書き込まれることを保障するために、ジャーナル書込み要請310は直ちに(一杯に書き込まれない場合にも)フラッシュ(flush)されるバッファに伝送される。
このようにして、アプリケーション125は無効化要請340をストレージ装置130に伝送して、ジャーナル情報305がストレージ装置130から削除されるように要請する。ジャーナル情報305がデータ325とは異なるブロック又はスーパーブロックに書き込まれたので、無効化要請340はストレージ装置130内に有効か無効かにより断片化された(validity−fragmented)ブロック又はスーパーブロックを誘発しない。
このような不一致はガーベッジコレクションがストレージ装置130の動作に否定的な影響を及ぼす理由を説明する。即ち、仮にガーベッジコレクションの対象であるブロックの単数又は複数のページ内に有効なデータがある場合、該ブロックがガーベッジコレクション動作の対象になる前にこのような有効データは他のブロックにコピーされなければならない。例えば、ページ445がフリー(free)である場合、仮にページ425が有効データを含む場合、ブロック405がガーベッジコレクション動作の対象になる前に該データは、例えば別のブロック410内のページ445にコピーされなければならない。
但し、スーパーブロックの概念がストレージ装置130内のガーベッジコレクションの具現上に影響を及ぼすが、理論的な観点からは、スーパーブロックはガーベッジコレクション目的のためのブロックサイズの再調整に過ぎない。複数のブロックに関する全ての論議はスーパーブロックにも同様に適用されることは容易に理解されよう。
上述した記述はこのような状況を単純化して記述したものである。但し、ジャーナル書込みは同一の時間に全て消去される必要がないので、一般的にジャーナル書込みはそれらが書き込まれた以後に、特にデータ書込みの寿命と比較して相対的に短い時間内に削除される。それ故、ブロックA(545)内の全てのデータは最後のジャーナル書込みがブロックA(545)に書き込まれた後の短時間内に無効化される筈である。その際、何らのデータも他のブロックにコピーされる必要がなく、全ページを含む該ブロックがガーベッジコレクションの対象になる。
しかし、図3と対照的に、アプリケーション125はデータ325及び第2ストリーム識別子330と共にデータ書込み要請320をストレージ装置130ではないデータストレージシステム120に伝送する。そうすると、データストレージシステム120はストレージ装置130に対するデータ325の書込み動作の監督を担当する。
しかし、他の実施形態では、データストレージシステム120は第2ジャーナル情報610、ジャーナル情報305の全てを削除するために第2無効化要請630を使用する。
また、他の実施形態で、アプリケーション125にアプリケーション125自身が無効化要請340を伝送できることを知らせるために、データストレージシステム120はデータ書き込み完了信号335をアプリケーション125に伝送する。
しかし、他の実施形態で、ストレージ装置130はデータ325のソースを知り、アプリケーション125及び/又はデータストレージシステム120に対する無効化要請340、第2無効化要請630の全て又は一部を伝送する必要を事前に防止して、データ書込み要請320、第2データ書き込み要請620の全て又は一部が完遂されれば、自動的にジャーナル情報305、第2ジャーナル情報610の全て又は一部を削除する。
斯くして、多重個のデータストレージシステム120の各々に対する第2ジャーナル情報610及びデータ325が、相異なるブロック又はスーパーブロックに存在するのみならず、相異なるデータストレージシステム120からの相異なる第2ジャーナル情報610は相異なるブロック又はスーパーブロック内に格納され、且つ、相異なるデータストレージシステム120からの相異なるデータ325は相異なるブロック又はスーパーブロック内に格納される。
一部の実施形態では、S715段階で、図1のアプリケーション125は図3のデータ書込み要請320をバッファリングされたI/Oコマンドとして図3のストレージ装置130に伝送する。続いて、S720段階で、図1のアプリケーション125は図1のストレージ装置130からデータ書き込み完了信号335を受信する。データ書き込み完了信号335は図3のデータ書込み要請320が完遂されたことを示す。最後に、S725段階で、図3のジャーナル情報305を削除するために、図1のアプリケーション125は図3の無効化要請340を図1のストレージ装置130に伝送する。
ここで、使用される‘マシン’という用語は幅広く、単体マシン、仮想マシン、又は、通信可能に結合された、マシン、仮想マシン、又は協同動作する装置からなるシステムを含む。例示的なマシンはパーソナル(Personal)コンピュータ、ワークステーション、サーバ、ポータブル(Portable)コンピュータ、ポケット用(Handheld)装置、携帯電話、タブレット等を含む。また、例示的なシステムは自動車、列車、タクシなどの、個人用又は公共用交通装置を含む。
プロセッサ及びメモリを含むコンピュータと、
ストレージ装置と、
プロセッサ上で実行され、ジャーナル書込み要請及びデータ書込み要請の両方を前記ストレージ装置に伝送するように動作するアプリケーションと、
前記ストレージ装置上に位置し、前記ストレージ装置が第1ストリームと関連された第1ブロックにジャーナル情報を書き込み、第2ストリームと関連された第2ブロックにデータを書き込むように指示するコントローラと、を含み、
前記ジャーナル書込み要請は前記ジャーナル情報を含み、前記第1ストリームと関連され、
前記データ書込み要請は前記データを含み、前記第2ストリームと関連される。
前記データストレージシステムは第2データ書込み要請を前記ストレージ装置に伝送するように動作し、
前記第2データ書込み要請は前記データを含み、前記第2ストリームと関連される。
前記第2ジャーナル書込み要請は第2ジャーナル情報を含み、第3ストリームと連関される。
ジャーナル書込み及びデータ書込み両方を実行するアプリケーションから書き込まれるデータを識別する段階と、
前記アプリケーションから無効データにガーベッジコレクションを遂行するストレージ装置にジャーナル書込み要請を伝送する段階と、
前記アプリケーションから前記ストレージ装置にデータ書込み要請を伝送する段階と、を含み、
前記ジャーナル書込み要請は第1ストリームに割当され、前記データ書込み要請は第2ストリームに割当される。
前記アプリケーションから前記ストレージ装置に前記ジャーナル書込み要請を伝送する段階は前記アプリケーションからSSD(Solid State Drive)に前記ジャーナル書込み要請を伝送する段階を含み、
前記アプリケーションから前記ストレージ装置に前記データ書込み要請を伝送する段階は前記アプリケーションから前記SSDに前記データ書込み要請を伝送する段階を含む。
前記アプリケーションから前記ストレージ装置に前記ジャーナル書込み要請を伝送する段階は直接(direct)入出力コマンドを利用して前記アプリケーションから前記ストレージ装置に前記ジャーナル書込み要請を伝送する段階を含み、
前記アプリケーションから前記ストレージ装置に前記データ書込み要請を伝送する段階はバッファリングされた(buffered)書込みコマンドを利用して前記アプリケーションから前記ストレージ装置に前記データ書込み要請を伝送する段階を含む。
前記アプリケーションからデータストレージシステムに前記データ書込み要請を伝送する段階と、
前記データストレージシステムから前記ストレージ装置に第2データ書込み要請を伝送する段階と、を含む。
前記非一時的な命令はマシンによって実行される時、
ジャーナル書込み及びデータ書込み両方を実行するアプリケーションから書き込まれるデータを識別する段階と、
前記アプリケーションから無効データにガーベッジコレクションを遂行するストレージ装置にジャーナル書込み要請を伝送する段階と、
前記アプリケーションから前記ストレージ装置にデータ書込み要請を伝送する段階と、を遂行し、
前記ジャーナル書込み要請は第1ストリームに割当され、前記データ書込み要請は第2ストリームに割当される。
前記アプリケーションから前記ストレージ装置に前記ジャーナル書込み要請を伝送する段階は前記アプリケーションからSSD(Solid State Drive)に前記ジャーナル書込み要請を伝送する段階を含み、
前記アプリケーションから前記ストレージ装置に前記データ書込み要請を伝送する段階は前記アプリケーションから前記SSDに前記データ書込み要請を伝送する段階を含む。
前記アプリケーションから前記ストレージ装置に前記ジャーナル書込み要請を伝送する段階は直接(direct)入出力コマンドを利用して前記アプリケーションから前記ストレージ装置に前記ジャーナル書込み要請を伝送する段階を含み、
前記アプリケーションから前記ストレージ装置に前記データ書込み要請を伝送する段階はバッファリングされた(buffered)書込みコマンドを利用して前記アプリケーションから前記ストレージ装置に前記データ書込み要請を伝送する段階を含む。
前記非一時的な命令はマシンによって実行される時、
前記データ書込み要請が前記ストレージ装置に書き込まれた以後に前記ジャーナル情報を削除するために無効化要請を前記ストレージ装置に伝送する段階をさらに遂行する。
前記アプリケーションからデータストレージシステムに前記データ書込み要請を伝送する段階と、
前記データストレージシステムから前記ストレージ装置に第2データ書込み要請を伝送する段階と、を含む。
前記非一時的な命令はマシンによって実行される時、
前記第2データ書込み要請が前記ストレージ装置に書き込まれた以後に前記第2ジャーナル書込み要請によって書き込まれた前記データを削除するために無効化要請を前記ストレージ装置に伝送する段階をさらに実行する。
110 プロセッサ
115 メモリ
120 データストレージシステム
125 アプリケーション
130 ストレージ装置
135 コントローラ
205 メモリコントローラ
210 クロック
215 ネットワークコネクタ
220 バス
225 ユーザインタフェイス
230 I/Oエンジン
305 ジャーナル情報
310 ジャーナル書込み要請
315 第1ストリーム識別子、第1ストリーム
320 データ書き込み要請
325 データ
330 第2ストリーム識別子、第2ストリーム
335 データ書き込み完了信号
340 無効化要請
405、410、415、420 ブロックA、B、C、D
425〜440、445〜460 ページ
505、535 ブロックA、A
510、515、520 ジャーナル書き込みを含むページ、ジャーナル書き込み
525、530、540 データ書き込みを含むページ、データ書き込み
545、550 ブロックA、C
605 第2ジャーナル書込み要請
610 第2ジャーナル情報
615 第3ストリーム識別子、第3ストリーム
620 第2データ書き込み要請
625 第2データ書き込み完了信号
630 第2無効化要請
Claims (21)
- ストレージ(格納)装置(device)を含むシステムであって、
プロセッサ及びメモリを含むコンピュータと、
前記ストレージ装置と、
前記プロセッサ上で実行され、ジャーナル(journal)書込み要請を前記ストレージ装置に伝送し、データ書込み要請をデータストレージシステムに伝送するように動作するアプリケーションと、
第2ジャーナル書込み要請を前記ストレージ装置に伝送し、第2データ書込み要請を前記ストレージ装置に伝送するように動作する前記データストレージシステムと、
前記ストレージ装置上に位置し、前記ストレージ装置が第1ストリーム(stream)に割り当てられた第1ブロック(block)にジャーナル情報を書き込み、第2ストリームに割り当てられた第2ブロックにデータを書き込み、第3ストリームに割り当てられた第3ブロックに第2ジャーナル情報を書き込むように指示するコントローラと、を含み、
前記ジャーナル書込み要請は、前記ジャーナル情報を含み、前記第1ストリームに割り当てられ、
前記データ書込み要請は、前記データを含み、前記第2ストリームに割り当てられ、
前記アプリケーションは、前記データ書込み要請を前記プロセッサ上で実行される前記データストレージシステムに伝送するように動作し、
前記第2ジャーナル書込み要請は、前記第2ジャーナル情報を含み、第3ストリームに割り当てられ、
前記第2データ書込み要請は、前記データを含み、前記第2ストリームに割り当てられ、
前記第1ストリーム、第2ストリーム、第3ストリームは、データ特性によって定義されることを特徴とするシステム。 - 前記コントローラは、前記データ書込み要請が完遂された以後に前記ジャーナル情報を削除するために無効化(invalidate)要請を受信するように動作する、ことを特徴とする請求項1に記載のシステム。
- 前記アプリケーションは、前記無効化要請を伝送するように動作する、ことを特徴とする請求項2に記載のシステム。
- 前記アプリケーションは、前記データ書込み要請が完遂されたという信号を前記アプリケーションが受信したことに応答して、前記無効化要請を伝送するように動作する、ことを特徴とする請求項3に記載のシステム。
- 前記データストレージシステムは、第2無効化要請を伝送するようにさらに動作する、ことを特徴とする請求項1に記載のシステム。
- 前記データストレージシステムは、前記第2データ書込み要請が完了した後、前記ジャーナル情報を削除するために前記第2無効化要請を伝送するようにさらに動作する、ことを特徴とする請求項5に記載のシステム。
- 前記ジャーナル書込み要請は、直接入出力(I/O)要請として伝送され、
前記データ書込み要請は、バッファリングされた入出力(I/O)要請として伝送され、
前記ジャーナル書込み要請は、前記データ書込み要請の前記データを前記ストレージ装置に確実に書き込むために用いられることを特徴とする請求項1に記載のシステム。 - 前記第2データ書込み要請に含まれるデータは、前記データ書込み要請に含まれるデータであることを特徴とする請求項1に記載のシステム。
- 前記ジャーナル書込み要請は、前記データ書込み要請の前記データを前記ストレージ装置に確実に書き込むために用いられることを特徴とする請求項1に記載のシステム。
- 前記第2ジャーナル情報は、前記ジャーナル情報と同一であることを特徴とする請求項1に記載のシステム。
- 前記ジャーナル書込み要請は、前記アプリケーションによって前記第1ストリームに割り当てられ、
前記データ書込み要請は、前記アプリケーションによって前記第2ストリームに割り当てられることを特徴とする請求項1に記載のシステム。 - 前記第1ブロック及び前記第2ブロックは、単一の媒体(media)タイプであることを特徴とする請求項1に記載のシステム。
- データストレージシステムが、ジャーナル書込み及びデータ書込みの両方を遂行するアプリケーションから書き込まれるデータを識別する段階と、
前記データストレージシステムが、前記アプリケーションから無効データに対するガーベッジコレクション(garbage_collection)を遂行するストレージ装置に、ジャーナル書込み要請を伝送する段階と、
前記データストレージシステムが、前記アプリケーションから前記ストレージ装置にデータ書込み要請を伝送する段階と、
前記データストレージシステムが、前記アプリケーションから前記データストレージシステムに前記データ書込み要請を伝送する段階と、
前記データストレージシステムが、前記データストレージシステムから前記ストレージ装置に第2ジャーナル書込み要請を伝送する段階と、
前記データストレージシステムが、前記データストレージシステムから前記ストレージ装置に第2データ書込み要請を伝送する段階と、を有し、
前記ジャーナル書込み要請は、第1ストリームに割り当てられ、直接入出力(I/O)要請として伝送され、
前記アプリケーションから前記ストレージ装置に伝送されたか、前記アプリケーションから前記データストレージシステムに伝送された前記データ書込み要請は、前記アプリケーションから書き込まれる前記データを含み、第2ストリームに割り当てられ、バッファリングされた入出力(I/O)要請として伝送され、
前記第2ジャーナル書込み要請は、第3ストリームに割り当てられ、
前記第2データ書込み要請は、前記アプリケーションから書き込まれる前記データを含み、前記第2ストリームに割り当てられ、
前記ジャーナル書込み要請及び前記第2ジャーナル書込み要請は、前記アプリケーションから前記ストレージ装置に伝送されたか、前記アプリケーションから前記データストレージシステムに伝送された前記データ書込み要請の前記アプリケーションから書き込まれる前記データを前記ストレージ装置に確実に書き込むために用いられることを特徴とする二重書込み方法。 - 前記データストレージシステムが、前記データ書込み要請が前記ストレージ装置に書き込まれた以後に、ジャーナル情報を削除するために無効化要請を前記ストレージ装置に伝送する段階をさらに含む、ことを特徴とする請求項13に記載の二重書込み方法。
- 前記無効化要請を前記ストレージ装置に伝送する段階は、前記無効化要請を前記アプリケーションが前記ストレージ装置に伝送する段階を含む、ことを特徴とする請求項14に記載の二重書込み方法。
- 前記無効化要請を前記アプリケーションが前記ストレージ装置に伝送する段階は、前記ストレージ装置上の前記データ書込み要請が完遂されたという信号を前記アプリケーションで受信する段階を含む、ことを特徴とする請求項15に記載の二重書込み方法。
- 前記第2データ書込み要請が前記ストレージ装置に書き込まれた以後に、前記データストレージシステムが、前記第2ジャーナル書込み要請によって書き込まれた前記データを削除するために無効化要請を前記ストレージ装置に伝送する段階をさらに含む、ことを特徴とする請求項13に記載の二重書込み方法。
- 非一時的な(Non−Transitory)命令を格納した有形(tangible)のストレージ媒体(tangible storage medium)を含む装置(article)において、
前記非一時的な命令がマシンによって実行される時、
ジャーナル書込み及びデータ書込みの両方を遂行するアプリケーションから書き込まれるデータを識別する段階と、
無効データに対するガーベッジコレクションを遂行するストレージ装置に、前記アプリケーションからジャーナル書込み要請を伝送する段階と、
前記アプリケーションからデータストレージシステムにデータ書込み要請を伝送する段階と、
前記データストレージシステムから前記ストレージ装置に、第2ジャーナル書込み要請を伝送する段階と、
前記データストレージシステムから前記ストレージ装置に、第2データ書込み要請を伝送する段階と、を遂行し、
前記ジャーナル書込み要請は、第1ストリームに割り当てられ、直接入出力(I/O)要請として伝送され、
前記データ書込み要請は、第2ストリームに割り当てられ、バッファリングされた入出力(I/O)要請として伝送され、
前記第2ジャーナル書込み要請は、第3ストリームに割り当てられ、
前記第2データ書込み要請は、前記データを含み、前記第2ストリームに割り当てられ、
前記ジャーナル書込み要請及び前記第2ジャーナル書込み要請は、前記データ書込み要請の前記データを前記ストレージ装置に確実に書き込むために用いられることを特徴とする装置。 - 前記非一時的な命令を格納した有形のストレージ媒体を含む装置において、前記非一時的な命令がマシンによって実行される時、
前記データ書込み要請が前記ストレージ装置に書き込まれた以後に、ジャーナル情報を削除するために無効化要請を前記ストレージ装置に伝送する段階をさらに遂行する、ことを特徴とする請求項18に記載の装置。 - 前記無効化要請を前記ストレージ装置に伝送する段階は、前記無効化要請を前記アプリケーションから前記ストレージ装置に伝送する段階を含む、ことを特徴とする請求項19に記載の装置。
- 前記非一時的な命令を格納した有形のストレージ媒体を含む装置において、前記非一時的な命令がマシンによって実行される時、
前記第2データ書込み要請が前記ストレージ装置に書き込まれた以後に、前記第2ジャーナル書込み要請によって書き込まれた前記データを削除するために無効化要請を前記ストレージ装置に伝送する段階をさらに実行する、ことを特徴とする請求項18に記載の装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562273323P | 2015-12-30 | 2015-12-30 | |
US62/273,323 | 2015-12-30 | ||
US15/089,237 US9959046B2 (en) | 2015-12-30 | 2016-04-01 | Multi-streaming mechanism to optimize journal based data storage systems on SSD |
US15/089,237 | 2016-04-01 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2017120626A JP2017120626A (ja) | 2017-07-06 |
JP2017120626A5 JP2017120626A5 (ja) | 2020-01-30 |
JP6734768B2 true JP6734768B2 (ja) | 2020-08-05 |
Family
ID=59226308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016240058A Active JP6734768B2 (ja) | 2015-12-30 | 2016-12-12 | 二重書込みを遂行するストレージ装置を含むシステム、装置、及びその方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9959046B2 (ja) |
JP (1) | JP6734768B2 (ja) |
KR (1) | KR102412978B1 (ja) |
CN (1) | CN106933747B (ja) |
TW (1) | TWI702500B (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107422992A (zh) * | 2017-07-31 | 2017-12-01 | 郑州云海信息技术有限公司 | 一种SSD运行时Journal保存方法及系统 |
US11386002B2 (en) * | 2018-10-04 | 2022-07-12 | ScaleFlux, Inc. | Enhancing solid-state storage device speed performance through stream-aware garbage collection |
CN109491616B (zh) | 2018-11-14 | 2022-05-24 | 三星(中国)半导体有限公司 | 数据的存储方法和设备 |
KR20200145151A (ko) | 2019-06-20 | 2020-12-30 | 삼성전자주식회사 | 맵핑 정보를 축약하는 플래시 변환 계층 구조를 이용하여 메모리 리소스를 관리하는 데이터 저장 장치 |
KR102698959B1 (ko) * | 2020-01-29 | 2024-08-27 | 삼성전자주식회사 | 키-값 스토리지 장치들에 대한 입출력 성능을 향상을 위한 키 값 객체 입출력들 그룹화 |
KR20210156190A (ko) | 2020-06-17 | 2021-12-24 | 삼성전자주식회사 | 스토리지 장치 지원 실시간 가상 머신 마이그레이션 |
KR20220086934A (ko) | 2020-12-17 | 2022-06-24 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 시스템의 저널링 제어 장치 및 방법 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128630A (en) * | 1997-12-18 | 2000-10-03 | International Business Machines Corporation | Journal space release for log-structured storage systems |
CA2511304C (en) | 2002-12-24 | 2011-09-20 | Lg Electronics, Inc. | Dual journaling store method and storage medium thereof |
US7363420B2 (en) * | 2003-12-15 | 2008-04-22 | Nortel Networks Limited | Method and file structures for managing data on a flash disk |
US7197599B2 (en) * | 2003-12-29 | 2007-03-27 | Intel Corporation | Method, system, and program for managing data updates |
JP2008165624A (ja) * | 2006-12-28 | 2008-07-17 | Hitachi Ltd | 計算機システム及び第1記憶装置 |
US20090119352A1 (en) | 2007-11-05 | 2009-05-07 | Steven Joseph Branda | Method for Optimizing Generational Garbage Collection Through Object Life Heuristics |
WO2009079478A1 (en) * | 2007-12-14 | 2009-06-25 | Virident Systems, Inc. | Distributing metadata across multiple different disruption regions within an asymmetric memory system |
JP2011515727A (ja) * | 2008-02-12 | 2011-05-19 | ネットアップ,インコーポレイテッド | ハイブリッド媒体ストレージシステムアーキテクチャ |
US8949684B1 (en) * | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US8725951B2 (en) | 2010-04-12 | 2014-05-13 | Sandisk Enterprise Ip Llc | Efficient flash memory-based object store |
JP2012084127A (ja) | 2010-09-15 | 2012-04-26 | Toshiba Corp | 半導体装置 |
US8738882B2 (en) | 2011-06-03 | 2014-05-27 | Apple Inc. | Pre-organization of data |
US9389805B2 (en) * | 2011-08-09 | 2016-07-12 | Seagate Technology Llc | I/O device and computing host interoperation |
US10203881B2 (en) | 2011-12-19 | 2019-02-12 | Apple Inc. | Optimized execution of interleaved write operations in solid state drives |
KR20140069659A (ko) * | 2012-11-29 | 2014-06-10 | 성균관대학교산학협력단 | 플래시 메모리용 파일 시스템 |
US9075731B2 (en) * | 2013-01-23 | 2015-07-07 | Vmware, Inc. | Using transaction entries to achieve crash consistency when performing write-behind caching using a flash storage-based cache |
JP6005566B2 (ja) * | 2013-03-18 | 2016-10-12 | 株式会社東芝 | 情報処理システム、制御プログラムおよび情報処理装置 |
KR101567134B1 (ko) | 2013-03-29 | 2015-11-09 | 이화여자대학교 산학협력단 | 비휘발성 메모리에 기반하여 저널링 기능을 통합한 버퍼 캐시 장치, 저널링 파일 시스템 및 저널링 방법 |
WO2015126518A2 (en) | 2014-02-20 | 2015-08-27 | Rambus Inc. | High performance persistent memory |
JP2016170583A (ja) | 2015-03-12 | 2016-09-23 | 株式会社東芝 | メモリシステムおよび情報処理システム |
US20160283124A1 (en) | 2015-03-25 | 2016-09-29 | Kabushiki Kaisha Toshiba | Multi-streamed solid state drive |
US9696935B2 (en) | 2015-04-24 | 2017-07-04 | Kabushiki Kaisha Toshiba | Storage device that secures a block for a stream or namespace and system having the storage device |
US20170139825A1 (en) * | 2015-11-17 | 2017-05-18 | HGST Netherlands B.V. | Method of improving garbage collection efficiency of flash-oriented file systems using a journaling approach |
-
2016
- 2016-04-01 US US15/089,237 patent/US9959046B2/en active Active
- 2016-08-02 KR KR1020160098623A patent/KR102412978B1/ko active IP Right Grant
- 2016-08-12 TW TW105125727A patent/TWI702500B/zh active
- 2016-09-29 CN CN201610867445.9A patent/CN106933747B/zh active Active
- 2016-12-12 JP JP2016240058A patent/JP6734768B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
KR20170080419A (ko) | 2017-07-10 |
CN106933747B (zh) | 2019-08-20 |
KR102412978B1 (ko) | 2022-06-24 |
CN106933747A (zh) | 2017-07-07 |
JP2017120626A (ja) | 2017-07-06 |
US9959046B2 (en) | 2018-05-01 |
TW201723857A (zh) | 2017-07-01 |
TWI702500B (zh) | 2020-08-21 |
US20170192687A1 (en) | 2017-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6734768B2 (ja) | 二重書込みを遂行するストレージ装置を含むシステム、装置、及びその方法 | |
CN109376123B (zh) | 管理文件的方法、分布式存储系统和管理节点 | |
KR102002830B1 (ko) | 세그먼트 클리닝 장치 및 방법 | |
KR101993704B1 (ko) | 플래시 메모리를 기반으로 하는 저장 장치 및 플래시 메모리를 제어하는 메모리 컨트롤러의 쓰기 메모리 블록 할당 방법 | |
US20110264884A1 (en) | Data storage device and method of operating the same | |
CN110908927A (zh) | 数据储存装置及其删除命名空间的方法 | |
WO2017113213A1 (zh) | 访问请求处理方法、装置及计算机系统 | |
JP5443998B2 (ja) | 不揮発性記憶装置、ホスト装置、不揮発性記憶システム、データ記録方法、およびプログラム | |
KR102541897B1 (ko) | 메모리 시스템 | |
KR20200116704A (ko) | 메모리 시스템 및 그것의 동작방법 | |
KR20160105624A (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
US11269771B2 (en) | Storage device for improving journal replay, operating method thereof, and electronic device including the storage device | |
US11392309B2 (en) | Memory system for performing migration operation and operating method thereof | |
KR20210157537A (ko) | 메모리 시스템 및 그의 동작 방법 | |
US11422930B2 (en) | Controller, memory system and data processing system | |
KR20180032728A (ko) | 저장 장치, 저장 장치를 포함하는 사용자 장치, 및 사용자 장치의 동작 방법 | |
JP2003228513A (ja) | メモリ制御方法および装置 | |
KR20200122685A (ko) | 메모리 시스템 내에서 서로 다른 종류의 데이터를 처리하기 위한 장치 및 방법 | |
TWI792534B (zh) | 以局部清理操作來進行垃圾回收的方法與相關控制器和儲存系統 | |
CN110312986B (zh) | 用于在固态设备上存储数据的流的机会性使用 | |
US20140280396A1 (en) | Operating method for user system including host and memory system | |
KR20200014175A (ko) | 소요시간을 예측하여 가비지 컬렉션을 수행하는 방법 및 장치 | |
WO2018041258A1 (zh) | 去分配命令处理的方法与存储设备 | |
US20220012180A1 (en) | Memory system for meta data management and operating method of memory system | |
WO2020039927A1 (ja) | 不揮発性記憶装置、ホスト装置、及びデータ記憶システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191211 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191211 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20191211 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20200212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200218 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200518 |
|
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: 20200623 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200710 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6734768 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |