JP2019016395A - 更新されたファイルにアクセスする方法及びシステム並びにソフトウェア製品 - Google Patents

更新されたファイルにアクセスする方法及びシステム並びにソフトウェア製品 Download PDF

Info

Publication number
JP2019016395A
JP2019016395A JP2018188938A JP2018188938A JP2019016395A JP 2019016395 A JP2019016395 A JP 2019016395A JP 2018188938 A JP2018188938 A JP 2018188938A JP 2018188938 A JP2018188938 A JP 2018188938A JP 2019016395 A JP2019016395 A JP 2019016395A
Authority
JP
Japan
Prior art keywords
list
lba
file
pba
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.)
Granted
Application number
JP2018188938A
Other languages
English (en)
Other versions
JP6629407B2 (ja
Inventor
亮 ソク 奇
Yang Seok Ki
亮 ソク 奇
尚 源 李
Sang Won Lee
尚 源 李
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 JP2019016395A publication Critical patent/JP2019016395A/ja
Application granted granted Critical
Publication of JP6629407B2 publication Critical patent/JP6629407B2/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

Abstract

【課題】少なくとも1つのプロセッサを含むコンピュータによって遂行される更新されたファイルにアクセスする方法及びシステムを提供する。【解決手段】前のファイルの修正されたコンテンツを含む更新を受信するアプリケーションに応答して前のファイルへのアクセスが維持される間に修正されたコンテンツがコピーされた新たなファイルが生成され、前のファイルの論理ブロック住所(以下LBAという)は前のファイルの物理ブロック住所(以下PBAという)にマッピングされ、新たなファイルのLBAは新たなファイルのPBAにマッピングされる。上記方法は、前のファイルLBAのマッピングを前のファイルのPBAから新たなファイルのPBAに自動的にスワップし、前のファイルのLBA及び前のファイルのPBAのマッピングを除去し、新たなファイルのLBA及び新たなファイルのPBAのマッピングを制御する。【選択図】図3

Description

本発明は、更新されたファイルにアクセスする方法及びシステム並びにソフトウェア製品に関し、より詳細には、論理ブロック住所のアトミックスワップ及びトリムのためのSWATコマンド及びAPI(アプリケーションプログラミングインタフェイス)を用いた方法及びシステム並びにソフトウェア製品に関する。
ファイル管理システムはファイルの最も新しいバーションを追跡(track)するためにデータ構造を更新する。このようなプロセスにおいて、一部のシステムは前のバーション(the older version)に上書きする代わりにファイルの新たなバーションを生成する一方、暫時、ファイルの前のバーションを維持する。結果的に、システムは新たなバーションが更新されているにも拘らず、読出し動作の間にファイルの前のバーションにアクセスする。例えば、使用者がブログページを更新する場合、使用者がブログページを更新する間にユーザーはブログページの前のバーションを読み出しする。この時、システムは新たなファイルにアクセスし、前のファイルを取り替えるためにシステム情報を更新することを要求する。一般的に、システムのデータ構造に対して連続的な更新が連続的に発生し、これはストレージに対して多数回の書込みを必要とする。
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、システムのデータ構造に対する連続的な更新を遂行することなく、更新されたファイルにアクセスするファイル管理方法及びシステム並びにソフトウェア製品を提供することにある。
上記目的を達成するためになされた本発明の方法は、格納装置の外部のプロセッサで実行されるアプリケーションを含むファイル管理システムで、アップデートされたバーションへのアクセスを提供する方法であって、前記ファイル管理システムは、ファイルシステムによって維持される論理ブロック住所(LBAs;logical block addresses)と前記格納装置によって維持される物理ブロック住所(PBAs;physical block addresses)との間のファイル変換階層(FTL;file translation layer)によって維持されるファイル変換階層(FTL)マップを有し、前記方法は、前記格納装置によって、前記プロセッサから第1コマンドを受信し、但し前記第1コマンドは第1ファイルの変形されたコンテンツ及び前記第1ファイルへのアクセスが維持される間に、前記変形されたコンテンツがコピーされる第2ファイルの生成を含むアップデートを受信するアプリケーションに応答して伝送され、前記第1コマンドのパラメータは前記第1ファイルに対応する第1リストのLBA及び前記第2ファイルに対応する第2リストのLBAを含み、前記第1リストのLBAは前記格納装置で前記第1ファイルの格納位置を示す第1リストのPBAにマッピングされ、前記第2リストのLBAは前記格納装置で前記第2ファイルの格納位置を示す第2リストのPBAにマッピングされ、前記第1リストのLBAは前記第2リストのLABと異なり、前記第1リストのPBAは前記第2リストのPABと異なる段階と、前記第1リストのLBAが前記第2リストのPBAにマッピングされるように前記第1リストのLBAをアトミックに(atomically)リマッピングし、前記第1リストのLBAの各LBAに対して、前記第1リストのLBAの中の1つのLBAと前記第2リストのPBAの対応するPBAとの間のマッピングが前記FTLマップで生成される段階と、前記第1リストのPBAへの前記第1リストのLBAのマッピングを除去し、前記第1リストのLBAの全てのLBAに対して、前記第1リストのLBAの中の1つのLBAと前記第1リストのPBAの対応するPBAとの間のマッピングが前記FTLマップで除去される段階と、前記第2リストのPBAへの前記第2リストのLBAのマッピングをマッピング解除(unmapping)し、前記第2リストのLBAの全てのLBAに対して、前記第2リストのLBAの中の1つのLBAと前記第2リストのPBAの対応するPBAとの間のマッピングが前記FTLマップで除去される段階と、を有する。
本発明の方法及びシステムによれば、システムのデータ構造の連続的な更新及びストレージへの不必要な書込み無しにファイルを更新することができる。
例示的な実施形態によるファイル管理システムを示すブロック図である。 一般的なファイル管理システムにおけるファイルの更新状況を図式化した図である。 一実施形態によるファイル管理システムによって遂行されるプロセスを示す順序図である。 一実施形態によるファイル管理システムにおける図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コマンドのパラメータは前記第1ファイルに対応する第1リストのLBA及び前記第2ファイルに対応する第2リストのLBAを含み、前記第1リストのLBAは前記格納装置で前記第1ファイルの格納位置を示す第1リストのPBAにマッピングされ、前記第2リストのLBAは前記格納装置で前記第2ファイルの格納位置を示す第2リストのPBAにマッピングされ、前記第1リストのLBAは前記第2リストのLABと異なり、前記第1リストのPBAは前記第2リストのPABと異なる段階と、
    前記第1リストのLBAが前記第2リストのPBAにマッピングされるように前記第1リストのLBAをアトミックに(atomically)リマッピングし、前記第1リストのLBAの各LBAに対して、前記第1リストのLBAの中の1つのLBAと前記第2リストのPBAの対応するPBAとの間のマッピングが前記FTLマップで生成される段階と、
    前記第1リストのPBAへの前記第1リストのLBAのマッピングを除去し、前記第1リストのLBAの全てのLBAに対して、前記第1リストのLBAの中の1つのLBAと前記第1リストのPBAの対応するPBAとの間のマッピングが前記FTLマップで除去される段階と、
    前記第2リストのPBAへの前記第2リストのLBAのマッピングをマッピング解除(unmapping)し、前記第2リストのLBAの全てのLBAに対して、前記第2リストのLBAの中の1つのLBAと前記第2リストのPBAの対応するPBAとの間のマッピングが前記FTLマップで除去される段階と、を有することを特徴とする方法。
  2. 前記第1コマンドは、スワップ及びトリム(SWAT;swap and trim)コマンドを含み、API(application programming interface)を通じて発行されることを特徴とする請求項1に記載の方法。
  3. 前記SWATコマンドは、アプリケーション又はオペレーティングシステムによる呼び出し(call)に応答して格納装置ドライバAPIから前記格納装置に発行されることを特徴とする請求項2に記載の方法。
  4. 前記第1リストのLBA及び前記第2リストのLBA内のLBAは、前記第1リストのLBA及び前記第2リストの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コマンドのパラメータは前記第1ファイルに対応する第1リストのLBA及び前記第2ファイルに対応する第2リストのLBAを含み、前記第1リストのLBAは前記格納装置で前記第1ファイルの格納位置を示す第1リストのPBAにマッピングされ、前記第2リストのLBAは前記格納装置で前記第2ファイルの格納位置を示す第2リストのPBAにマッピングされ、前記第1リストのLBAは前記第2リストのLABと異なり、前記第1リストのPBAは前記第2リストのPABと異なり、
    前記第1リストのLBAが前記第2リストのPBAにマッピングされるように前記第1リストのLBAをアトミックに(atomically)リマッピングし、前記第1リストのLBAの各LBAに対して、前記第1リストのLBAの中の1つのLBAと前記第2リストのPBAの対応するPBAとの間のマッピングが前記FTLマップで生成され、
    前記第1リストのPBAへの前記第1リストのLBAのマッピングを除去し、前記第1リストのLBAの全てのLBAに対して、前記第1リストのLBAの中の1つのLBAと前記第1リストのPBAの対応するPBAとの間のマッピングが前記FTLマップで除去され、
    前記第2リストのPBAへの前記第2リストのLBAのマッピングをマッピング解除(unmapping)し、前記第2リストのLBAの全てのLBAに対して、前記第2リストのLBAの中の1つのLBAと前記第2リストのPBAの対応するPBAとの間のマッピングが前記FTLマップで除去されることを特徴とするシステム。
  7. 前記第1コマンドは、スワップ及びトリム(SWAT;swap and trim)コマンドを含み、API(application programming interface)を通じて発行されることを特徴とする請求項6に記載のシステム。
  8. 前記SWATコマンドは、アプリケーション又はオペレーティングシステムによる呼び出し(call)に応答して格納装置ドライバAPIから前記格納装置に発行されることを特徴とする請求項7に記載のシステム。
  9. 前記第1リストのLBA及び前記第2リストのLBA内のLBAは、前記第1リストのLBA及び前記第2リストの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コマンドのパラメータは前記第1ファイルに対応する第1リストのLBA及び前記第2ファイルに対応する第2リストのLBAを含み、前記第1リストのLBAは前記格納装置で前記第1ファイルの格納位置を示す第1リストのPBAにマッピングされ、前記第2リストのLBAは前記格納装置で前記第2ファイルの格納位置を示す第2リストのPBAにマッピングされ、前記第1リストのLBAは前記第2リストのLABと異なり、前記第1リストのPBAは前記第2リストのPABと異なり、
    前記第1リストのLBAが前記第2リストのPBAにマッピングされるように前記第1リストのLBAをアトミックに(atomically)リマッピングし、前記第1リストのLBAの各LBAに対して、前記第1リストのLBAの中の1つのLBAと前記第2リストのPBAの対応するPBAとの間のマッピングが前記FTLマップで生成され、
    前記第1リストのPBAへの前記第1リストのLBAのマッピングを除去し、前記第1リストのLBAの全てのLBAに対して、前記第1リストのLBAの中の1つのLBAと前記第1リストのPBAの対応するPBAとの間のマッピングが前記FTLマップで除去され、
    前記第2リストのPBAへの前記第2リストのLBAのマッピングをマッピング解除(unmapping)し、前記第2リストのLBAの全てのLBAに対して、前記第2リストのLBAの中の1つのLBAと前記第2リストのPBAの対応するPBAとの間のマッピングが前記FTLマップで除去されるようにすることを特徴とするコンピュータ読み取り可能な記録媒体に格納された実行可能なソフトウェア製品。

JP2018188938A 2013-11-08 2018-10-04 更新されたファイルにアクセスする方法及びシステム並びにソフトウェア製品 Active JP6629407B2 (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 Parent Applications (1)

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

Publications (2)

Publication Number Publication Date
JP2019016395A true JP2019016395A (ja) 2019-01-31
JP6629407B2 JP6629407B2 (ja) 2020-01-15

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 Before (1)

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

Country Status (5)

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

Families Citing this family (11)

* 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 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびファイルアクセス方法
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
US11768631B2 (en) * 2021-08-31 2023-09-26 Micron Technology, Inc. Rapid reliable file system access

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000311104A (ja) * 1999-02-26 2000-11-07 Sony Corp 記録方法、管理方法、及び記録装置
JP2004280752A (ja) * 2003-03-19 2004-10-07 Sony Corp データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム

Family Cites Families (22)

* 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 共有メモリシステム並びにデータベースシステム
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
MXPA06012974A (es) * 2004-05-10 2007-04-23 Matsushita Electric Ind Co Ltd Grabacion/reproduccion de datos para discos de una sola escritura.
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
US8677203B1 (en) * 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for 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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000311104A (ja) * 1999-02-26 2000-11-07 Sony Corp 記録方法、管理方法、及び記録装置
JP2004280752A (ja) * 2003-03-19 2004-10-07 Sony Corp データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6629407B2 (ja) 更新されたファイルにアクセスする方法及びシステム並びにソフトウェア製品
US9342256B2 (en) Epoch based storage management for a storage device
US11175850B2 (en) Selective erasure of data in a SSD
US9996542B2 (en) Cache management in a computerized system
US8924664B2 (en) Logical object deletion
US9239841B2 (en) Hash-based snapshots
US20180150249A1 (en) System and method for copy on write on an ssd
EP3451197B1 (en) System and method for creating selective snapshots of a database
WO2016083938A1 (en) Snapshots and thin-provisioning in distributed storage over shared storage devices
US10089320B2 (en) Method and apparatus for maintaining data consistency in an in-place-update file system with data deduplication
CN107564558B (zh) 实现分散原子i/o写入
US20140310447A1 (en) Half block management for flash storage devices
EP3446221B1 (en) Adapted block translation table (btt)
US8880820B2 (en) Techniques for using sparse files during snapshots
US20180188967A1 (en) Snapshot storage management
TWI750116B (zh) 用於邏輯頁面的基元交換與修整(swat)之swat命令及應用程式介面(api)
US11194760B1 (en) Fast object snapshot via background processing
US11221985B2 (en) Metadata space efficient snapshot operation in page storage
US20240126437A1 (en) Multiple Version Write Pending Support in Shared Global Memory
CN107562642B (zh) 检查点淘汰方法和装置
KR20230103000A (ko) 메모리 시스템, 메모리 시스템의 입출력 관리 방법 및 이를 수행하기 위한 컴퓨팅 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191023

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191204

R150 Certificate of patent or registration of utility model

Ref document number: 6629407

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