JP6416591B2 - 更新されたファイルへのアクセスを提供する方法及びそれを実行させるためのプログラム命令語を含むコンピュータ読み取り可能な記録媒体に格納された実行可能なソフトウェア製品 - Google Patents

更新されたファイルへのアクセスを提供する方法及びそれを実行させるためのプログラム命令語を含むコンピュータ読み取り可能な記録媒体に格納された実行可能なソフトウェア製品 Download PDF

Info

Publication number
JP6416591B2
JP6416591B2 JP2014227881A JP2014227881A JP6416591B2 JP 6416591 B2 JP6416591 B2 JP 6416591B2 JP 2014227881 A JP2014227881 A JP 2014227881A JP 2014227881 A JP2014227881 A JP 2014227881A JP 6416591 B2 JP6416591 B2 JP 6416591B2
Authority
JP
Japan
Prior art keywords
file
lba
pba
mapping
command
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
Application number
JP2014227881A
Other languages
English (en)
Other versions
JP2015095262A (ja
JP2015095262A5 (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2015095262A publication Critical patent/JP2015095262A/ja
Publication of JP2015095262A5 publication Critical patent/JP2015095262A5/ja
Application granted granted Critical
Publication of JP6416591B2 publication Critical patent/JP6416591B2/ja
Active 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/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は更新されたファイルにアクセスする方法、及びそれを具現するコンピュータとソフトウェア製品に係り、特にそのための、論理ブロック住所のアトミックスワップ及びトリムのためのSWATコマンド及びAPI(アプリケーションプログラミングインタフェイス)に関する。
ファイル管理システムはファイルの最も新しいバーションを追跡(track)するためにデータ構造を更新する。このようなプロセスにおいて、一部のシステムは以前バーション(the older version)に上書きする代わりにファイルの新しいバーションを生成する一方、暫時、ファイルの以前バーションを維持する。結果的に、システムは新しいバーションが更新されているにも拘らず、読出し動作の間にファイルの以前バーションをアクセスできる。例えば、使用者がブログページを更新する場合、使用者がブログページを更新する間にユーザーはブログページの以前バーションを読み出しができる。この時、システムは新しいファイルにアクセスし、以前ファイルを取り替えるためにシステム情報を更新することを要求する。一般的に、システムのデータ構造に対して連続的な更新が連続的に発生し、これはストレージに対して多数回の書込みを必要とする。
本発明の目的はシステムのデータ構造に対する連続的な更新を遂行することなく、更新されたファイルにアクセスするファイル管理システムを具現するコンピュータ及びその方法を提供することにある。
例示的な実施形態は、少なくとも1つのプロセッサを含むコンピュータを備えるファイル管理システムによって遂行される、更新されたファイルに対するアクセスを提供する方法であって、
以前ファイルの修正されたコンテンツを含む更新を受信するアプリケーションに応答して、以前ファイルへのアクセスを維持する間に、修正されたコンテンツがコピーされた新しいファイルを生成し、以前ファイルの論理ブロック住所(LBA、logical block address)を以前ファイルの物理ブロック住所(PBA、physical block address)にマッピングし、新しいファイルの論理ブロック住所を新しいファイルの物理ブロック住所にマッピングし、その際、以前ファイル論理ブロック住所のマッピング先を以前ファイルの物理ブロック住所から新しいファイルの物理ブロック住所に自動にスワップする段階と、以前ファイルの論理ブロック住所から以前ファイルの物理ブロック住所へのマッピングを除去する段階と、新しいファイルの論理ブロック住所から新しいファイルの物理ブロック住所へのマッピングを制御する段階と、を含む。
本発明の例示的な実施形態の方法及びシステムによれば、システムのデータ構造の連続的な更新及びストレージへの不必要な書込み無しでファイルを更新できる。
例示的な実施形態によるファイル管理システムを示すブロック図である。 一般的なファイル管理システムにおけるファイルの更新状況を図式化した図面である。 一実施形態によるファイル管理システムによって遂行されるプロセスを示す順序図である。 一実施形態によるファイル管理システムにおける図3のプロセスによるファイルの更新状況を図式化した図面である。
添付した図面に示した実施形態及び本発明の実施形態を詳細に説明する。類似な参照番号は類似な構成要素を称する。以下で、本発明の技術的思想を説明するために図面を参照して実施形態を説明する。
本発明の長所及び特徴及びこれを達成するための方法は、以下の実施形態の詳細な説明及び添付の図面を参照することによって容易に理解されよう。しかし、本発明の技術的思想は多様な他の実施形態により具現でき、本文に開示した実施形態に限定構成されない場合もある。このような実施形態は、当業者に本発明の技術的思想を本文が完璧に伝達するために提供される。本発明の技術的思想は添付された特許請求の範囲によって定義される。図面で階層(layers)及び領域(regions)の厚さは一般に説明を容易にするために誇張されている。
本文(特に以下の特許請求の範囲)における単数用語及び類似な用語の使用は本文中において別途規定するか、或いは明確に反対の意味ではない限り、単数及び複数の全てを含むと理解される。別途規定しない限り、“含む”(comprising)、“有する”(having)、“包含する”(including)、及び、“含有する”(containing)の用語は非限定的(open−ended)な意味、即ち、全て例えば“包含する”に相当するが、必ずしもこの意味に限定されない、として理解される。
本文で使用される構成要素(component)又はモジュール(module)の用語は特定動作を遂行するソフトウェア構成要素、又は、FPGA(field programmable gate array)又はASIC(application specific integrated circuit)のようなハードウェア構成要素を意味する。しかし、これに限定されない。ソフトウェア構成要素又はモジュールは、好ましくはに住所指定可能なストレージ媒体内に位置するように構成され、1つ又はそれ以上のプロセスを遂行するように構成される。即ち、例えば、構成要素又はモジュールは、ソフトウェア構成要素、客体指向ソフトウェア構成要素(object−oriented software components)クラス構成要素(class components)及び作業構成要素(タスク構成要素)、プロセス(processes)、機能(functions)、属性(attributes)、手続(procedures)、サブルーチン(subroutines)、プログラムコードのセグメント(segments of program code)、 ドライバ(drivers)、ファームウェア(firmware)、マイクロコード(microcode)、回路(circuitry)、データ(data)、データベース(databases)、データ構造(data structures)、テーブル(tables)、アレイ(arrays)等のような構成要素を含む。複数の構成要素又はモジュールは組み合わされて新しい機能を提供する場合がある。
別途定義しない限り、本文で使用される全ての技術的科学的用語は本発明が属する技術分野における通常の技術者が共通的に理解するのと同一の意味を有する。本文で提供される例示的な用語又は全ての例示の使用は単に本発明を説明するためであって、それによって本発明の範囲を特許請求の範囲と相異した形に限定するものではない。さらに、別途定義しない限り、一般的に使用される辞典で定義された全ての用語はそれと相異する形に定義されない。
図1は例示的な実施形態によるファイル管理システム10を示すブロック図である。ファイル管理システム10は、電子文書又はファイルを格納し、追跡するコンピュータ12上に具現される。一実施形態で、コンピュータ12はデスクトップコンピュータ、ラップトップ、又はワークステーションを含む。他の実施形態で、コンピュータ12はネットワーク(図示せず)を通じてクライアントコンピュータと通信するサーバを含む。コンピュータ12はプロセッサ14、メモリ16、及び高速ストレージ18(例えば、ソリッドステートドライブSSD)のようなストレージディバイス(格納装置)を含む一般的なコンピュータ構成要素を含む。
プロセッサ14は1つ又はそれ以上のコアを有するシングルプロセッサ又はマルチプロセッサを含む。プロセッサ14はメモリ16からのプログラム命令語を実行する。ソフトウェアの例示的な形態は、アプリケーション20、オペレーションズシステム(OS、以下、運営体系という)22、ファイルシステム24、及び高速ストレージ18のための装置ドライバ用のアプリケーションプログラミングインタフェイス(device driver application programming interface(以下、APIという))26を含む。
本発明が属する技術分野において周知のようにアプリケーション20は、プロセッサ14によって実行されてコンピュータ12の稼動中に特定の作業を遂行するコンピュータソフトウェアを指す。例えば、アプリケーション20はウェブブラウザ、ワードプロセッサ、及びデータベースプログラムを含む。一般的に、アプリケーション20は複数のファイル28を生成、修正、又は更新する。運営体系22はコンピュータ12の動作を制御し、管理するシステムソフトウェアである。運営体系22はマイクロソフトウインドー、MacOSX、及びリナックス(登録商標)を含む。
ファイルシステム24は、複数のファイル28のような情報を高速ストレージ18のようなデータ格納装置にどのようにして格納し、検索し、更新するかを制御するソフトウェアである。一般的にファイルシステム24は、各ファイル28のようなデータが高速ストレージ18又は他のコンピュータ格納装置の何処に格納されるかを特定するために論理ブロック住所指定(logical block addressing)を使用する。さらに詳細には、論理ブロック住所指定は、各ファイル28を論理ブロック住所(logical block address、以下LBAという)30にマッピング(割当て)し、論理ブロック住所(LBA)を高速ストレージ18の特定の格納領域、即ち物理ブロック住所(physical block address、以下、PBAという)32にマッピングする抽象的作業(abstraction)である。
装置ドライバAPI(26)はアプリケーション20、運営体系22、及びファイルシステム24が高速ストレージ18と直接(transparently)、相互に通信できるようにする。装置ドライバAPI(26)はコマンドを高速ストレージに提供するか、及び/又はは高速ストレージからデータを受信する。
一実施形態で、高速ストレージ18は物理ブロック住所指定(physical block addressing)を使用して高速ストレージ18に格納されたデータの各物理ブロック住所を提供する。住所のこのような形態は物理ブロック住所PBAと称される。一実施形態で、高速ストレージ18はソリッドステートドライブSSDを含む。SSDはメモリのような集積回路を使用してファイル28のようなデータを半永久的に(persistenly)格納するデータ格納装置である。一実施形態で、SSDはNANDフラッシュメモリ又はRAMを使用する。
一実施形態で、高速ストレージ18は、コンピュータ12に論理セクタインタフェイスを提供しながら、高速ストレージ18を管理するファイル変換階層34(FTL、file translation layer)又はその等価物をさらに含む。FTL(34)はファイルシステム24によって支援されるLBA(30)及び高速ストレージ18によって支援されるPBA(32)の間のマッピング関係を制御する。他の実施形態においては、SSDと異なる形態の格納装置が使用される。
図2は、従来の一般的なファイル管理システム10におけるファイルの更新状況を図式化した図面である。アプリケーション20としては、使用者のブログページを示すファイル200を維持(メンテ)する場合を想定する。ユーザーがブログを更新する時、アプリケーション20は以前ファイル202をファイル200としてメモリ16に読み込み、そのコンテンツを修正する。更新を遂行する間に、システム10は修正されたファイルがコピーされた新しいファイル204を生成する。使用者がブログ更新を持続する間に他の使用者は相変わらず以前ファイル200をアクセスして閲覧できる。使用者がブログ修正を完了し、新しいファイル204を新しいページとして提出する時、アプリケーション20は以前ファイル202から新しいファイル204に切り替え、以前ファイル202を削除する。
以前ファイル及び新しいファイルが実際に格納されたストレージ18が物理ブロック住所PBA(208)を維持する一方、ファイルシステム24は以前ファイル202のための論理ブロック住所LBA(206)及び新しいファイル204のための論理ブロック住所LBA(206)を維持する。この従来例では、ファイルシステム24は、以前ファイル202を論理ブロック住所LBA4〜LBA5にマッピングし、ストレージ18は、論理ブロック住所LBA4〜LBA5を物理ブロック住所PBA0〜PBA1に各々マッピングする。同様にファイルシステム24は、新しいファイル204を論理ブロック住所LBA24〜LBA25にマッピングし、ストレージ18は、論理ブロック住所LBA24〜LBA25を物理ブロック住所PBA11〜PBA12に各々マッピングする。
従来の一般的なファイル管理システムには、以前ファイル202を置換した新しいファイル204にアクセスするために、その都度、システム情報を更新しなければならないという問題点がある。一般的に、システムのデータ構造の連続的な更新はストレージへの多量の書込みを発生する。
システム情報は各ファイル又は文書に対するメタデータを含む。例えば、メタデータはファイルが格納された日付、ファイルを格納した使用者の識別子を含む。メタデータは一般的にデータ構造に格納される。このようなデータ構造の一例は格納されたデータを維持し、ログ時間(logrithmic time)に検索、連続的なアクセス、挿入、除去(削除)が可能であるツリーデータ構造(tree data strucure)であるB−ツリーである。ファイル200の各々に対するメタデータ及び/又はLBA(206)のリストがBーツリーのiノードによって支援される。1つのファイル200当たり1つのiノードが存在する。ファイル200に対するiノードがB−ツリーのリーフレベル(leaf level)に隣接するように格納された場合、ルーツノード(root node)までの経路上の全てのノードの更新が必要になり、これによってストレージへの連続的な(cascading、将棋倒し的)更新及び書込みが発生する。
例えば、使用者が上述したようにブログを更新する場合、当該アプリケーションは少なくとも1つのディスク書込みを発生させる、ブログを含むファイル情報の更新を必要とする。使用者がさらに多い場合、ディスクの書込みがさらに多く発生する。
本願に係わる例示的な実施形態は、システムデータ構造を更新することなく、新しい更新ファイルにアクセスする向上された方法及びシステムを提供する。これによって、システムにおける過度なディスク書込み及び連続的な更新が最少化又は回避される。
例示的な実施形態は、このような問題を解決するための新しいストレージ(例えば、SSD)コマンド及びAPIを提案する。即ち、システムデータ構造の更新無しでファイルの新しいバーションがアクセスされる場合、最新システム情報を反映するための連続的な更新を排除することによってストレージ書込みを相当に減少或いは回避できる。実際に、この簡単な例に留まらず、B+ツリー、ファイル(ドキュメント)ロギングのような多数のアプリケーションはこの例示的な実施形態が適用される特徴を含む。
例示的な実施形態は、連関されたAPI及びコマンド(以下で、SWAT(SWap And Trim)コマンドと称する)を提供する。与えられた新しいLBAリスト及び以前LBAリストの対に対して、SWATコマンドはリスト内のLBAのマッピングを順にアトミックに(atomically)スワップし、使用されないLBAを整理(trim)する。
例示的に、“アトミック(atomic)”の用語はコンピュータ分野で使用される用語であって、アトミック動作(atomic operation)は他の動作によって中断(interrupt)されない動作を示す。即ち、アトミック動作が完了された以後に他の動作が遂行される。
図3は、一実施形態に従って、アプリケーション20を実行するプロセッサ14を含むファイル管理システム10によって遂行されるプロセスを示す順序図であり、図4は図3のプロセスによるファイルの更新状況を図式的に示す図面である。
図1、図3、及び図4を参照すれば、段階300で、プロセッサ14は修正されたコンテンツを含む更新を受信すると、ファイルシステム24内における以前ファイル(old file)へのアクセスを維持すると共に、修正されたコンテンツがコピーされた新しいファイル(new file)をファイルシステム24内に生成する。
即ち、更新されるべきファイル400に対応して、ファイルの以前バーション(即ち、以前ファイル402)は暫定的に維持され、ファイルの新しいバーション(即ち、新しいファイル404)は修正されたコンテンツを含むように生成される。このように、ファイル400は何れか一つのアプリケーション20又は運営体系22を通じて更新される。
ファイルシステム24は、以前ファイルLBA(406)、例えば、LBA4〜LBA5、のリストを使用して以前ファイル402の論理格納位置を示し、高速ストレージ18は以前ファイルのPBA(408)、例えば、PBA0〜PBA1、のリストを使用して以前ファイル402の高速ストレージ18内での物理格納位置を示す。同様に、新しいファイル404の論理格納位置は新しいファイルのLBA(410)、例えば、LBA24〜LBA25、のリストを使用して示され、新しいファイル404の高速ストレージ18内での物理格納位置は新しいファイルの物理ブロック住所412(例えば、PBA11〜PBA12)のリストを使用して示される。
図3を再び参照すれば、段階302でプロセッサ14は、新しいファイルへの更新要求に応答して、以前ファイルのLBA(406)のマッピングを、以前ファイルのPBA(408)から新しいファイルのPBA(412)にスワップする。即ち、図4において、矢印414により示したように以前ファイルのLBA(406)を新しいファイル404のPBA(412)に再マッピングする。より詳細には、プロセッサ14は、ファイルシステム24を介して格納装置ドライバAPI(26)から格納装置18に対するSWATコマンドを発行させると、ストレージ18は論理ブロック住所LBA(4)を物理ブロック住所PBA(11)にマッピングし、論理ブロック住所LBA(5)を物理ブロック住所PBA12にマッピングする。結果的に、このSWATコマンドを用いるAPI(26)はファイル情報更新を不要にする。
さらに、段階304でストレージ18は、以前ファイルLBA(406)の、以前ファイルPBA(408)へのマッピングを整理(trim)して、以前ファイルのPBA(408)を解除(release)する。図4に示したように以前ファイルPBA(408)、例えば、PBA0及びPBA1の解除は、参照番号416のように“X”付きで表示される。
段階306でストレージ18は、新しいファイルLBA(410)から新しいファイルPBA(412)へのマッピングを解消(clear)する。図4に示したようにSWAT動作の以後に、論理ブロック住所LBA24及び論理ブロック住所LBA25に対するマッピングが解消され、選択的に再使用に回され、新しいファイル404は参照番号418のように“X”付きで表示され、即ち、選択的に削除(delete)される。
例示的な実施形態によれば、SWATコマンド及びAPIは既存の技術に優る多様な長所を提供する。SWATコマンドはOS(22)の修正を必要とせず、若干のファームウェア修正を通じてSSD装置を含むストレージ18の全ての形態に適用できる。SWATコマンドの実行はアプリケーションからのディスク書込み回数を減少するので、SSD装置の寿命を向上できる。SWATコマンドを実行すると、使用されない空間を事前に再生(reclaim)させることによってシステムの性能を向上できる。さらに、SWATコマンドは、特にマルチバーション同時制御(multi−version concurrency control)を有するアプリケーションの顕著な性能上の利点を提供できる。
以下ではSWATコマンドについてさらに詳細に説明する。上記のようなファイルの処理がアプリケーション20を通じて委託される時、運営体系22又はファイルシステム24の中で何れか1つは、装置ドライバAPI(26)を呼び出す(call)。その以後に、装置ドライバAPI(26)は高速ストレージ18にSWATコマンドを伝送する。
一実施形態で、SWATコマンドはパラメータとして、論理ブロック住所リストLBAの対(例えば、新しいファイルの論理ブロック住所410のリスト及び以前ファイルの論理ブロック住所406のリスト)を備える。高速ストレージ18のファイル変換階層(FTL)34は、以前ファイルの論理ブロック住所406のリスト(第2LBAリスト)及び新しいファイルの論理ブロック住所410のリスト(第1LBAリスト)を受信し、前記リストにより定められた順に論理ブロック住所リストの対における論理ブロック住所のマッピングをアトミックに(atomically)スワップし、以後に、以前ファイルの物理ブロック住所408を最善の方式(例えば、SWATコマンドを実行する間にトリムオーバヘッドを最小化するための集団トリム(batched trim))に従って除去できる。一実施形態で、SWATコマンドはアトミック(atomic)である。
SWATコマンド
一実施形態で、論理ブロック住所LBAは隣接する場合と隣接しない場合がある。従って、隣接する論理ブロック住所及び隣接しない論理ブロック住所の各々のために2つのSWATコマンドが提供される。SWATコマンドの技術的思想及び実施形態は、本発明を特定の実施形態の局面で説明する以下の擬似的プログラム(pseudo_code)符号を参照するとさらによく理解できよう。本発明及びその技術的思想は、ここに特に記載しない多様な形態のプログラム、装置、方法を含む。
[非隣接LBAのためのAPI]
swat(unsigned int dst_list、 unsigned int src_list、 unsigned int lba_count、 unsigned int timeout)
このAPIルーチン「SWAT」は、dst_listのLBAのマッピングをscr_listのLBAのマッピングとアトミックに(atomically)スワップし、dst_listのLBAに対する物理ブロック住所(PBA)を整理(trim)する。上述されたコマンドが成功裡に遂行される時、dst_listのLBAはsrc_listのLBAによって指定されたPBAを指定し、dst_listによって指定されたPBAは整理され、src_listのLBAは解除(release)される。大規模なトランザクションのアトミックな(atomic)処理が要求される時、このAPIが有用である。
「パラメータ」
以下に、非隣接LBAのためのAPIルーチンにおける「SWAT」命令のパラメータとその意味を列挙する。


「dst_list」
dst_listはLBAのリストを含み、初期には(即ち、スワップ前には)以前コンテンツを指定する。しかし、dst_listはSWAT呼び出しが成功裡に遂行された後には新しいコンテンツを指定する。その際、dst_list内のLBAのコンテンツ(即ち、PBA)は除去され、LBAのマッピングはSWAT呼び出しと共に更新される。

「src_list」
src_listは新しいコンテンツのLBAのリストを含み、src_listのLBAはSWAT呼び出しが成功裡に実行された後に解除される。src_list内のLBAのコンテンツ(即ち、PBA)は維持されるが、LBA自身は選択的に再使用される。

「lba_count」
両LBAリスト内のLBAの個数。ここで、2つのリストの長さは同一でなければならず、LBAの最大個数は個々の具現例に依存して変化し、NVM_MAX_SWAT_LBA_COUNTによって定義される。

「timeout」
マイクロ秒(microsecond)単位のSWAT動作の最大時間。0である場合、無限時間を意味する。

「RETURN」
以下に、非隣接LBAのためのAPIルーチン「SWAT」からの戻り(リターン)時のモードを列挙する。
「NVM_SUCCESS」・・・SWATが成功裡に完了して戻る場合である。
「NVM_ERR_ROLLBACK」・・・このエラーは装置が幾つかの原因、例えば媒体障害、タイムアウト等の原因によってSWAT動作を遂行するのに失敗して戻る場合である。
「NVM_ERR_INVAILD_LBA」・・・このエラーはLBAが装置の範囲外にあるか、又はLBAがどのPBAにもマッピングされない、ことによってリスト上のLBAが無効とされて戻る場合である。
「NVM_ERR_INVAILD_PARAM」・・・このエラーはルーチンの一部のパラメータが無効とされて戻る場合である。例えば、dst_list又はsrc_listがNULL(空白)になり、lba_countが0、又は負数(例えば、−1)に設定されて非常に大きいか、或いはタイプの不一致があって戻る場合である。
「NVM_ERR_TIMEOUT」・・・このエラーは装置がユーザーによって定義された時間範囲内に動作を完了できずに戻る場合である。

[隣接LBAのためのAPI]
cont_swat(unsigned int dst_lba、unsigned int src_lba、unsigned int lba_count、unsigned int timeout)
cont_swatルーチンは(dst_lba,dst_lba+lba_count−1)の範囲内のLBAのマッピングを(src_lba,src_lba+lba_count−1)の範囲内のLBAのマッピングとスワップし、PBA(dst_lba,dst_lba+lba_count−1)をアトミックに(atomically)整理する。上述されたコマンドが成功裡に実行される時、(dst_lba,dst_lba+lba_count−1)に対するLBAは(src_lba,src_lba+lba_count−1)に対するLBAによって指定されるPBAを指定し、(dst_lba、dst_lba+lba_count−1)に対するPBAは整理され、(src_lba、src_lba+lba_count−1)のLBAは解除される。
「パラメータ」
以下に、隣接LBAのためのAPIルーチンにおける「SWAT」命令のパラメータとその意味を列挙する。


「dst_lba」
(dst_lba、dst_lba+lba_count−1)の範囲のLBAは、初期には(即ち、スワップ前には)以前コンテンツを指定し、cont_swatが成功裡に遂行された後には、新しいコンテンツを指定する。(dst_lba、dst_lba+lba_count−1)の範囲内のLBAのコンテンツ(即ち、PBA)は除去され、(dst_lba、dst_lba+lba_count−1)の範囲内のLBAのマッピングはSWAT呼び出しと共に更新される。

「src_lba」
src_lbaは新しいコンテンツを指定し、(dst_lba、dst_lba+lba_count−1)の範囲内のLBAはnvm_cont_swatが成功裡に遂行された後に解除される。(dst_lba、dst_lba+lba_count−1)の範囲内のLBAのコンテンツ(PBA)は維持されるが、それらのLBA自身は選択的に再使用される。

「lba_count」
両LBAリスト内のLBAの個数。ここで、2つのリストの長さは同一でなければならず、LBAの最大個数は個々の具現例に依存して変化し、NVM_MAX_SWAT_LBA_COUNTによって定義される。

「timeout」
マイクロ秒(microsecond)単位のSWAT動作の最大時間。0に設定される場合、無限時間を意味する。

「RETURN」
以下に、隣接APIルーチン「SWAT」からの戻り(リターン)時のモードを列挙する。
「NVM_SUCCESS」・・・SWATが成功裡に完了して戻る場合である。
「NVM_ERR_ROLLBACK」・・・このエラーは装置が幾つかの原因、例えば媒体障害、タイムアウト等の原因によってSWAT動作を遂行するのに失敗して戻る場合である。
「NVM_ERR_INVAILD_LBA」・・・このエラーはLBAが装置の範囲外にあるか、又はLBAがどのPBAにもマッピングされない、ことによってリスト上のLBAが無効とされて戻る場合である。
「NVM_ERR_INVAILD_PARAM」・・・このエラーはルーチンの一部のパラメータが無効とされて戻る場合である。例えば、dst_list又はsrc_listがNULL(空白)になり、lba_countが0、又は負数(例えば、−1)に設定されて非常に大きいか、或いはタイプの不一致があって戻る場合である。
「NVM_ERR_TIMEOUT」・・・このエラーは装置がユーザーによって定義された時間範囲内に動作を完了できずに戻る場合である。

SWATコマンドは、製造者専用コマンド(vendor specific command)を通じてSATA、SAS、PCIe、eMMC、UFS等のストレージプロトコルの形態で具現される。
本発明は先に説明された実施形態によって説明されたが、本発明の技術的思想範囲内で実施形態は多様に修正できる。例えば、例示的な実施形態はハードウェア、ソフトウェア、プログラム命令語を含むコンピュータ読出し可能媒体、又はそれらの組み合わせを使用して具現できる。本発明によって書かれたソフトウェアはメモリ、ハードディスク、又はCD/DVD−ROMのようなコンピュータ読出し可能媒体に格納され、プロセッサによって実行される。従って、多様な修正が添付された請求の範囲の思想と範囲から逸脱することなく当業者によって具現されよう。
10 ファイル管理システム
12 コンピュータ
14 プロセッサ
16 メモリ
18 格納装置(高速ストレージ)
20 アプリケーション
22 運営体系(OS)
24 ファイルシステム
26 装置ドライバ
28 ファイル
30 論理ブロック住所(LBA)
32 物理ブロック住所(PBA)
200、400 ファイル
202、402 以前ファイル
204、404 新しいファイル
206、406 以前ファイルの論理ブロック住所
208、408 以前ファイルの物理ブロック住所
410 新しいファイルの論理ブロック住所
412 新しいファイルの物理ブロック住所
414 再マッピングを示す「→」印
416 解除(release)を示す「X」印
418 解消(clear)を示す「X」印

Claims (11)

  1. 格納装置外部のプロセッサで実行されるアプリケーションを含むファイル管理システムでアップデートされたファイルへのアクセスを提供する方法であって、
    前記ファイル管理システムは、ファイルシステムによって維持される論理ブロック住所(LBAs;logical block addresses)前記格納装置によって維持される物理ブロック住所(PBAs;physical block addresses)の間ファイル変換階層FTL;file translation layer)によって維持されるファイル変換階層(FTL)マップを有し
    前記方法は前記格納装置によって
    前記プロセッサから第1コマンドを受信し、但前記第1コマンド第1ファイルの変形されたコンテンツ及び前記第1ファイルへのアクセスが維持される間に前記変形されたコンテンツがコピーされる第2ファイルの生成を含むアップデートを受信するアプリケーションに応答して伝送され、第1ファイルLBA前記格納装置で前記第1ファイルの格納位置を示す第1ファイルPBAにマッピングされ、第2ファイルLBA前記格納装置で前記第2ファイルの格納位置を示す第2ファイルPBAにマッピングされ、前記第1ファイルLBA前記第2ファイルLBAと異なり、前記第1ファイルPBA前記第2ファイルPBAと異なり、前記第1コマンドのパラメータ前記第1ファイルLBA及び前記第2ファイルLBA対応するLBAリストの対を含む段階と、
    前記第1ファイルLBAのマッピングを前記第1ファイルPBAから前記第2ファイルPBAにアトミックにスワップし、但マッピング前記第1ファイルLBA前記第2ファイルPBAの間の前記FTLマップで生成される段階と、
    前記第1ファイルPBAへの前記第1ファイルLBAのマッピングをトリム(trim)し、但しマッピング前記第1ファイルLBA前記第1ファイルPBAの間の前記FTLマップでトリムされる段階と、
    前記第2ファイルPBAへの前記第2ファイルLBAのマッピングをクリア(clear)し、マッピング前記第2ファイルLBA前記第2ファイルPBAの間の前記FTLマップで除去される段階と、を有することを特徴とする方法。
  2. 前記第1コマンドは、スワップ及びトリム(SWAT;swap and trim)コマンドを含み、API(application programming interface)を通じて発行されることを特徴とする請求項1に記載の方法。
  3. 前記SWATコマンドは、アプリケーション又はオペレーティングシステムによる呼び出し(call)に応答して、格納装置ドライバーAPIから前記格納装置に発行されることを特徴とする請求項2に記載の方法。
  4. 前記第1ファイルLBA及び前記第2ファイルLBAに対応するLBAリストで前記LBAマッピング前記LBAリストによって定められた順序に応じてアトミックに(atomically)スワップされ、前記第1ファイルPBA最善努力方式(best−effort manner)に従ってトリムされることを特徴とする請求項2に記載の方法。
  5. 前記SWATコマンドは、隣接LBAのための第1SWATコマンド及び非隣接LBAのための第2SWATコマンドを含むことを特徴とする請求項4に記載の方法。
  6. 少なくとも1つのアプリケーションを実行するプロセッサ及びメモリを含むコンピュータと、前記プロセッサ及び前記メモリの外部に位置する格納装置と、を備えるファイル管理システムであって、
    前記ファイル管理システムは、ファイルシステムによって維持される論理ブロック住所(LBAs;logical block addresses)と前記格納装置によって維持される物理ブロック住所(PBAs;physical block addresses)の間のファイル変換階層(FTL;file translation layer)によって維持されるファイル変換階層(FTL)マップを有し
    前記格納装置は、
    前記プロセッサから第1コマンドを受信し、但し前記第1コマンド第1ファイルの変形されたコンテンツ及び前記第1ファイルへのアクセスが維持される間に前記変形されたコンテンツがコピーされる第2ファイルの生成を含むアップデートを受信するアプリケーションに応答して伝送され、第1ファイルLBA前記格納装置で前記第1ファイルの格納位置を示す第1ファイルPBAにマッピングされ、第2ファイルLBA前記格納装置で前記第2ファイルの格納位置を示す第2ファイルPBAにマッピングされ、前記第1ファイルLBA前記第2ファイルLBAと異なり、前記第1ファイルPBA前記第2ファイルPBAと異なり、前記第1コマンドのパラメータ前記第1ファイルLBA及び前記第2ファイルLBA対応するLBAリストの対を含み、
    前記第1ファイルLBAのマッピングを前記第1ファイルPBAから前記第2ファイルPBAにアトミックにスワップし、但しマッピング前記第1ファイルLBA前記第2ファイルPBAの間の前記FTLマップで生成され、
    前記第1ファイルPBAへの前記第1ファイルLBAのマッピングをトリム(trim)し、但しマッピング前記第1ファイルLBA前記第1ファイルPBAの間の前記FTLマップで除去され、
    前記第2ファイルPBAへの前記第2ファイルLBAのマッピングをクリア(clear)し、マッピング前記第2ファイルLBA前記第2ファイルPBAの間の前記FTLマップで除去するように構成されることを特徴とするシステム。
  7. 前記第1コマンドは、スワップ及びトリム(SWAT;swap and trim)コマンドを含み、API(application programming interface)を通じて発行されることを特徴とする請求項6に記載のシステム。
  8. 前記SWATコマンドは、アプリケーション又はオペレーティングシステムによって生成された呼び出し(call)に応答して格納装置ドライバーAPIから前記格納装置に発行されることを特徴とする請求項7に記載のシステム。
  9. 前記第1ファイルLBA及び前記第2ファイルLBAに対応するLBAリストで前記LBAマッピング前記LBAリストによって定められた順序に応じてアトミックに(atomically)スワップされ、前記第1ファイルPBA最善努力方式(best−effort manner)に従ってトリムされることを特徴とする請求項7に記載のシステム。
  10. 前記SWATコマンドは、隣接LBAのための第1SWATコマンド及び非隣接LBAのための第2SWATコマンドを含むことを特徴とする請求項9に記載のシステム。
  11. 格納装置外部のプロセッサで実行されるアプリケーションを含むファイル管理システムでアップデートされたファイルへのアクセスを提供する方法をコンピュータに実行させるためのプログラム命令語を含むコンピューみ取り可能な記録媒体に格納された実行可能なソフトウェア製品であって、
    前記ファイル管理システムは、ファイルシステムによって維持される論理ブロック住所(LBAs;logical block addresses)と前記格納装置によって維持される物理ブロック住所(PBAs;physical block addresses)の間のファイル変換階層(FTL;file translation layer)によって維持されるファイル変換階層(FTL)マップを有し
    前記プログラム命令語は前記格納装置によって
    前記プロセッサから第1コマンドを受信し、但し前記第1コマンドは第1ファイルの変形されたコンテンツ及び前記第1ファイルへのアクセスが維持される間に前記変形されたコンテンツがコピーされる第2ファイルの生成を含むアップデートを受信するアプリケーションに応答して伝送され、第1ファイルLBA前記格納装置で前記第1ファイルの格納位置を示す第1ファイルPBAにマッピングされ、第2ファイルLBAは前記格納装置で前記第2ファイルの格納位置を示す第2ファイルPBAにマッピングされ、前記第1ファイルLBA前記第2ファイルLBAと異なり、前記第1ファイルPBA前記第2ファイルPBAと異なり、前記第1コマンドのパラメータ前記第1ファイルLBA及び前記第2ファイルLBA対応するLBAリストの対を含み、
    前記第1ファイルLBAのマッピングを前記第1ファイルPBAから前記第2ファイルPBAにアトミックにスワップし、但しマッピング前記第1ファイルLBA前記第2ファイルPBAの間の前記FTLマップで生成され、
    前記第1ファイルPBAへの前記第1ファイルLBAのマッピングをトリム(trim)し、但マッピング前記第1ファイルLBA前記第1ファイルPBAの間の前記FTLマップでトリムされ、
    前記第2ファイルPBAへの前記第2ファイルLBAのマッピングをクリア(clear)し、マッピング前記第2ファイルLBA前記第2ファイルPBAの間の前記FTLマップで除去するようにすることを特徴とするコンピュータ読み取り可能な記録媒体に格納された実行可能なソフトウェア製品
JP2014227881A 2013-11-08 2014-11-10 更新されたファイルへのアクセスを提供する方法及びそれを実行させるためのプログラム命令語を含むコンピュータ読み取り可能な記録媒体に格納された実行可能なソフトウェア製品 Active JP6416591B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361902092P 2013-11-08 2013-11-08
US61/902,092 2013-11-08
US14/282,358 US9678966B2 (en) 2013-11-08 2014-05-20 Swat command and API for atomic swap and trim of LBAs
US14/282,358 2014-05-20

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2018188938A Division JP6629407B2 (ja) 2013-11-08 2018-10-04 更新されたファイルにアクセスする方法及びシステム並びにソフトウェア製品

Publications (3)

Publication Number Publication Date
JP2015095262A JP2015095262A (ja) 2015-05-18
JP2015095262A5 JP2015095262A5 (ja) 2017-10-19
JP6416591B2 true JP6416591B2 (ja) 2018-10-31

Family

ID=52991043

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014227881A Active JP6416591B2 (ja) 2013-11-08 2014-11-10 更新されたファイルへのアクセスを提供する方法及びそれを実行させるためのプログラム命令語を含むコンピュータ読み取り可能な記録媒体に格納された実行可能なソフトウェア製品
JP2018188938A Active JP6629407B2 (ja) 2013-11-08 2018-10-04 更新されたファイルにアクセスする方法及びシステム並びにソフトウェア製品

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2018188938A Active JP6629407B2 (ja) 2013-11-08 2018-10-04 更新されたファイルにアクセスする方法及びシステム並びにソフトウェア製品

Country Status (5)

Country Link
US (2) US9678966B2 (ja)
JP (2) JP6416591B2 (ja)
KR (1) KR102303814B1 (ja)
CN (2) CN104636414B (ja)
DE (1) DE102014116031A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9678966B2 (en) * 2013-11-08 2017-06-13 Samsung Electronics Co., Ltd. Swat command and API for atomic swap and trim of LBAs
US10359937B2 (en) * 2013-12-20 2019-07-23 Sandisk Technologies Llc System and method of implementing a table storage support scheme
KR102316198B1 (ko) * 2015-06-12 2021-10-25 삼성전자주식회사 파일 액세스 방법, 컴퓨터, 및 컴퓨터-읽기 가능한 매체에 실행 가능한 소프트웨어 제품
KR20180019419A (ko) * 2016-08-16 2018-02-26 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 그 동작방법
CN106844619A (zh) * 2017-01-17 2017-06-13 深圳市金立通信设备有限公司 一种文件清理方法及终端
US10324628B2 (en) * 2017-04-19 2019-06-18 Veritas Technologies Llc Systems and methods for reducing data fragmentation
KR102567140B1 (ko) 2017-11-24 2023-08-16 삼성전자주식회사 데이터 관리 방법 및 이를 수행하는 저장 장치
JP7316204B2 (ja) * 2019-12-16 2023-07-27 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびファイルアクセス方法
JP7271410B2 (ja) 2019-12-16 2023-05-11 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびファイル記録方法
JP7321917B2 (ja) 2019-12-16 2023-08-07 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびファイルアクセス方法
KR20220020143A (ko) 2020-08-11 2022-02-18 삼성전자주식회사 오버라이트 처리를 수행하는 스토리지 시스템, 스토리지 시스템을 제어하는 호스트 시스템 및 스토리지 시스템의 동작 방법
US20230024420A1 (en) * 2021-07-16 2023-01-26 Samsung Electronics Co., Ltd. Methods and devices for file read latency reduction
US11868642B2 (en) * 2021-08-31 2024-01-09 Micron Technology, Inc. Managing trim commands in a memory sub-system
US11768631B2 (en) * 2021-08-31 2023-09-26 Micron Technology, Inc. Rapid reliable file system access

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6366933B1 (en) 1995-10-27 2002-04-02 At&T Corp. Method and apparatus for tracking and viewing changes on the web
JPH1031604A (ja) * 1996-07-15 1998-02-03 Meidensha Corp 共有メモリシステム並びにデータベースシステム
JP4441968B2 (ja) * 1999-02-26 2010-03-31 ソニー株式会社 記録方法、管理方法、及び記録装置
US6895490B1 (en) * 2001-04-09 2005-05-17 Matrix Semiconductor, Inc. Method for making a write-once memory device read compatible with a write-many file system
JP2004280752A (ja) * 2003-03-19 2004-10-07 Sony Corp データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム
US7821896B2 (en) * 2004-05-10 2010-10-26 Panasonic Corporation Data recording/reproduction for write-once discs
US7509474B2 (en) * 2005-06-08 2009-03-24 Micron Technology, Inc. Robust index storage for non-volatile memory
US8832047B2 (en) 2005-07-27 2014-09-09 Adobe Systems Incorporated Distributed document version control
US8515912B2 (en) 2010-07-15 2013-08-20 Palantir Technologies, Inc. Sharing and deconflicting data changes in a multimaster database system
KR101437397B1 (ko) * 2007-10-31 2014-09-05 삼성전자주식회사 비휘발성 메모리 장치의 데이터 관리 방법 및 맵핑 테이블업데이트 방법
US8266366B2 (en) * 2008-04-11 2012-09-11 SanDisk Technologies, Inc. Memory device operable in read-only and write-once, read-many (WORM) modes of operation
US8438325B2 (en) * 2008-10-09 2013-05-07 Cadence Design Systems, Inc. Method and apparatus for improving small write performance in a non-volatile memory
KR20100055565A (ko) * 2008-11-18 2010-05-27 삼성전자주식회사 메모리 장치 및 메모리 장치의 관리 방법
US9164700B2 (en) * 2009-03-05 2015-10-20 Sandisk Il Ltd System for optimizing the transfer of stored content in response to a triggering event
US8291194B2 (en) * 2009-11-16 2012-10-16 Mediatek Inc. Methods of utilizing address mapping table to manage data access of storage medium without physically accessing storage medium and related storage controllers thereof
US8572311B1 (en) * 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US8495085B2 (en) 2010-09-27 2013-07-23 International Business Machines Corporation Supporting efficient partial update of hierarchically structured documents based on record storage
KR101774496B1 (ko) * 2010-12-08 2017-09-05 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법
US9727570B2 (en) * 2011-06-03 2017-08-08 Apple Inc. Mount-time unmapping of unused logical addresses in non-volatile memory systems
KR20130044657A (ko) * 2011-10-24 2013-05-03 삼성전자주식회사 파일 시스템 및 그 제어 방법
US9323667B2 (en) * 2012-04-12 2016-04-26 Violin Memory Inc. System and method for managing trim operations in a flash memory system using mapping tables and block status tables
CN103020550B (zh) * 2012-12-03 2016-08-17 记忆科技(深圳)有限公司 一种固态硬盘及其安全访问方法、固态硬盘系统
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US9678966B2 (en) * 2013-11-08 2017-06-13 Samsung Electronics Co., Ltd. Swat command and API for atomic swap and trim of LBAs

Also Published As

Publication number Publication date
JP6629407B2 (ja) 2020-01-15
DE102014116031A1 (de) 2015-05-13
JP2019016395A (ja) 2019-01-31
US9684663B2 (en) 2017-06-20
JP2015095262A (ja) 2015-05-18
CN110807008A (zh) 2020-02-18
KR102303814B1 (ko) 2021-09-23
CN104636414A (zh) 2015-05-20
KR20150053720A (ko) 2015-05-18
US9678966B2 (en) 2017-06-13
US20150234849A1 (en) 2015-08-20
US20150134621A1 (en) 2015-05-14
CN104636414B (zh) 2019-11-05

Similar Documents

Publication Publication Date Title
JP6629407B2 (ja) 更新されたファイルにアクセスする方法及びシステム並びにソフトウェア製品
US11175850B2 (en) Selective erasure of data in a SSD
US9262334B2 (en) Seamless application access to hybrid main memory
US9342256B2 (en) Epoch based storage management for a storage device
US8924664B2 (en) Logical object deletion
EP3451197B1 (en) System and method for creating selective snapshots of a database
EP3446221B1 (en) Adapted block translation table (btt)
US8019953B2 (en) Method for providing atomicity for host write input/outputs (I/Os) in a continuous data protection (CDP)-enabled volume using intent log
US20140149693A1 (en) Packed storage commands
US20180188967A1 (en) Snapshot storage management
TWI750116B (zh) 用於邏輯頁面的基元交換與修整(swat)之swat命令及應用程式介面(api)
KR101619989B1 (ko) 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체
US11194760B1 (en) Fast object snapshot via background processing
US11221985B2 (en) Metadata space efficient snapshot operation in page storage
US12039168B2 (en) Multiple version write pending support in shared global memory
CN107562642B (zh) 检查点淘汰方法和装置
CN107636599B (zh) 当单个输入/输出请求跨越两个存储设备时响应于存储设备故障返回相干数据
KR20240111560A (ko) 파일시스템에서 파일을 업데이트하는 방법 및 시스템
KR20230103000A (ko) 메모리 시스템, 메모리 시스템의 입출력 관리 방법 및 이를 수행하기 위한 컴퓨팅 장치
TWI446194B (zh) 高效能虛擬磁碟管理系統

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170904

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180725

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181004

R150 Certificate of patent or registration of utility model

Ref document number: 6416591

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