JP2017004524A - ファイルアクセス提供方法、コンピュータ、及びソフトウェア製品 - Google Patents

ファイルアクセス提供方法、コンピュータ、及びソフトウェア製品 Download PDF

Info

Publication number
JP2017004524A
JP2017004524A JP2016114951A JP2016114951A JP2017004524A JP 2017004524 A JP2017004524 A JP 2017004524A JP 2016114951 A JP2016114951 A JP 2016114951A JP 2016114951 A JP2016114951 A JP 2016114951A JP 2017004524 A JP2017004524 A JP 2017004524A
Authority
JP
Japan
Prior art keywords
list
lpns
lpn
mapping
file
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
JP2016114951A
Other languages
English (en)
Other versions
JP6788386B2 (ja
JP2017004524A5 (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
Priority claimed from US14/954,885 external-priority patent/US9684658B2/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2017004524A publication Critical patent/JP2017004524A/ja
Publication of JP2017004524A5 publication Critical patent/JP2017004524A5/ja
Application granted granted Critical
Publication of JP6788386B2 publication Critical patent/JP6788386B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)

Abstract

【課題】システムのデータ構造に対して一連のカスケード型の更新を引き起こすことなく、更新されたファイルへの読出しアクセスを提供できる改良された方法を提供する。【解決手段】論理的ページナンバ(LPN)の第1リスト及び更新のためにLPNの第2リストを受信することに応答して、少なくとも1つのプロセッサによって遂行される、更新されたファイルに対するアクセスを提供する。LPNの第1リストは物理的なページナンバ(PPN)の第1リストにマッピングされ、LPNの第2リストはPPNの第2リストにマッピングされる段階、LPNの第1リストをアトミックに再マッピングしてLPNの第1リストをPPNの第2リストにマッピングする段階、及びLPNの第1リストからPPNの第1リストへのマッピングを非同期的に除去する段階を含む。【選択図】図3

Description

本発明はファイル管理システムに関し、更に詳細には、更新されたファイルへのアクセスを提供する方法、それに係るコンピュータ、及びコンピュータ読出し可能である媒体に格納された実行可能なソフトウェア製品に関する。
ファイル管理システムはファイルの最新に更新されたバージョンを追跡するためにデータ構造をアップデート(update、以下、「更新」という)する。このプロセスにおいて、一部のシステムは、古いバージョン(the older version)に上書きする代わりにファイルの他のバージョンを生成し、暫らくの間、ファイルの古いバージョンを維持する。結果的にシステムは、新しいバージョンにファイルが更新されている最中であっても、ファイルの古いバージョンを読出しアクセスできる。例えば、使用者がブログページを更新する場合、使用者がブログページを更新している最中に他のユーザはブログページの古いバージョンを読出しできる。システムは、新しいファイルにアクセスし、古いファイルを新しいファイルにより置換するためにシステム情報を更新する必要がある。通常、この更新は、システムのデータ構造に対して一連のカスケード型の更新を引き起こし、これはストレージに多くの書込みを必要とする。
従って、上記の問題を解決さるためになされた本発明の目的は、システムのデータ構造に対して一連のカスケード型の更新を引き起こすことなく、更新されたファイルへの読出しアクセスを提供できる改良された方法及びシステムを提供できることにある。
本発明の目的は向上された寿命、向上された信頼性、及び向上された性能を有するファイルアクセス方法、コンピュータ、及びコンピュータ読出し可能である媒体に実行可能なソフトウェア製品が提供することにある。
本発明の一実施形態は、論理的ページナンバ(LPN、logical page number)の第1リスト及び更新のための論理的ページナンバ(LPN)の第2リストを受信することに応答して、少なくとも1つのプロセッサによって遂行される、更新されたファイルに対するアクセスを提供する方法に係る。
前記論理的ページナンバ(LPN)の第1リストは物理的ページナンバ(PPN、physical page number)の第1リストにマッピングされ、前記論理的ページナンバ(LPN)の第2リストは物理的ページナンバ(PPN)の第2リストにマッピングされる段階、前記論理的ページナンバ(LPN)の第1リストをアトミックに再マッピングして前記論理的ページナンバ(LPN)の第1リストを前記物理的ページナンバ(PPN)の第2リストにマッピングする段階、及び、前記論理的ページナンバ(LPN)の第1リストから前記物理的なページナンバ(PPN)の第1リストへのマッピングを非同期的に除去する段階を含む。
本発明によれば、
LPNの第1リストはPPNの第1リストにマッピングされ、LPNの第2リストはPPNの第2リストにマッピングされた後、LPNの第1リストをアトミックに再マッピングしてLPNの第1リストをPPNの第2リストにマッピングし、LPNの第1リストからPPNの第1リストへのマッピングを非同期的に除去するので、システムのデータ構造に対して一連のカスケード型の更新を引き起こすことなく、更新されたファイルへの読出しアクセスを提供できる。
よって、向上された寿命、向上された信頼性、及び向上された性能を有するファイルアクセス方法、コンピュータ、及びコンピュータ読出し可能である媒体に実行可能なソフトウェア製品が提供できる。
本発明の実施形態によるファイル管理システムを示すブロック図である。 ファイルを更新するための、従来一般的なファイル管理システムを示す図面である。 本発明の実施形態によって更新の間にファイルに対するアクセスを提供するためのファイル管理システムによって遂行される手続を示す順序図である。 図3の手続を図式的に示す図面である。 フォワードマッピングテーブルFMT、物理的ページナンバのリスト、及びリバースマッピングテーブルRMTの多様な状態を示す図面である。 フォワードマッピングテーブルFMT、物理的ページナンバのリスト、及びリバースマッピングテーブルRMTの多様な状態を示す図面である。 フォワードマッピングテーブルFMT、物理的ページナンバのリスト、及びリバースマッピングテーブルRMTの多様な状態を示す図面である。 フォワードマッピングテーブルFMT、物理的ページナンバのリスト、及びリバースマッピングテーブルRMTの多様な状態を示す図面である。 フォワードマッピングテーブルFMT、物理的ページナンバのリスト、及びリバースマッピングテーブルRMTの多様な状態を示す図面である。 フォワードマッピングテーブルFMT、物理的ページナンバのリスト、及びリバースマッピングテーブルRMTの多様な状態を示す図面である。 フォワードマッピングテーブルFMT、物理的ページナンバのリスト、及びリバースマッピングテーブルRMTの多様な状態を示す図面である。 フォワードマッピングテーブルFMT、物理的ページナンバのリスト、及びリバースマッピングテーブルRMTの多様な状態を示す図面である。 使用されないページに対する例示的なSWATコマンドを示す。 マッピングがない基本論理的ページナンバに対する例示的なSWATコマンドを示す。 反復的なSWATコマンドの例を示す。
添付された図面に図解した本発明の実施例を詳細に説明する。類似な構成要素は類似な参照番号を称する。以下に、本発明の技術的な思想を説明するために図面を参照して実施形態を説明する。
本発明の長所、及び特徴、及びこれを達成するための方法は以下の実施形態の詳細な説明及び添付された図面を参照することで、容易に理解できよう。しかし、本発明の技術的な思想は多様な他の形態に具現でき、本明細書に開示された実施形態に限定されない。本実施形態は、むしろ、本発明の開示が完璧になされ、当業者に本発明の技術的な思想が完全に伝達されるように提供される。本発明の技術的な思想は添付された特許請求範囲によって定義される。
図面で階層(layers)及び領域(regions)の厚さは明確性のために誇張される場合がある。
本文(特に以下の特許請求範囲)における単数用語及び類似な用語の使用は、本文中において異なって言及されるか、或いは明確に文脈と矛盾しない限り、単数及び複数を全て含むと理解される。異なって言及されない限り、“含む”(comprising、having、including、及びcontaining)の用語は開放形の意味として理解される。
本文で使用される構成要素(component、以下、「要素」という)又はモジュール(module)の用語は、特定動作を遂行するFPGA(field programmable gate array)又はASIC(application specific integrated circuit)のようなハードウェア要素、又はソフトウェア要素を意味する。しかし、これに限定されない。
要素又はモジュールは有利にアドレス指定可能なストレージ媒体内に位置するように構成され、1つ又はそれ以上のプロセッサ上で遂行するように構成できる。即ち、例えば、要素又はモジュールは、ソフトウェア要素、客体指向のソフトウェア要素(object−oriented software components)、クラス要素(class components)、及び作業要素(task components)、プロセス(processes)、機能(functions)、属性(attributes)、手続(procedures)、サブルーチン(subroutines)、プログラムコードのセグメント(segments of program code)、ドライバ(drivers)、ファームウェア(firmware)、マイクロコード(microcode)、回路(circuitry)、データ(data)、データベース(databases)、データ構造(data structures)、テーブル(tables)、アレイ(arrays)等のような要素を含むことができる。要素又はモジュールのために提供される機能は幾つかの要素又はモジュールに組合わされる。
異なって定義されない限り、本文で使用される全ての技術的、科学的用語は本発明が属する技術分野において通常の技術者によって共通的に理解される同一な意味を有する。本文で提供される例示的な用語又は全ての例示の使用は単なる本発明を説明するために使用され、本発明の特許請求の範囲が異なって限定されない。更に、特に異なって定義されない限り、一般的に使用される辞書で定義された全ての用語は異なって定義されない。
図1は本発明の実施形態によるファイル管理システムを示すブロック図である。ファイル管理システム10は電子文書又はファイルを追跡し、格納するコンピュータ12を含む。一実施形態で、コンピュータ12はデスクトップコンピュータ、ラップトップ、又はワークステーションを含む。他の実施形態で、コンピュータ12はネットワーク(未図示)を通じてクライアントコンピュータと通信するサーバを含む。コンピュータ12は高速ストレージ18(例えば、ソリッドステートドライブ(SSD))のようなストレージディバイス、プロセッサ14、及びメモリ16を含む一般的なコンピュータを構成する要素を含む。
プロセッサ14は1つ又はそれ以上のコアを有するシングルプロセッサ又はマルチプロセッサを含む。プロセッサ14はメモリ16からのプログラム命令語を実行する。ソフトウェアの例示的な形態はアプリケーション20、運営システム(OS)22、ファイルシステム24、及び高速ストレージ18のためにデバイスドライバ・アプリケーションプログラミングインタフェイス26(device driver API(application programming interface))を含む。
本発明が属する技術分野で広く公知されているように、アプリケーション20はプロセッサ14によって実行されて、コンピュータ12の運転中にコンピュータ12に作業を遂行させるコンピュータソフトウェアを代表する。例えば、アプリケーション20はWebブラウザ、ワードプロセッサ、及びデータベースプログラムを含む。一般的に、アプリケーション20はファイル28を生成し、変更、又は更新する。運営システム22はコンピュータ12の動作を制御し、管理するシステムソフトウェアである。運営システム22はマイクロソフトウインドゥズ(Windows)、Mac OS X、及びLinux(登録商標)を含む。
ファイルシステム24はファイル28のような情報を高速ストレージ18のようなデータ格納装置にどのようにして格納し、検索し、更新するかを制御するソフトウェアである。一部のアプリケーション/ファイル形態は、ファイル28にページのようなデータが高速ストレージ18又は他のコンピュータストレージの装置の何処に格納されるかを特定するために論理的ページナンバリング(logical page numbering)を使用する。
更に詳細には、論理的ページナンバリング(logical page numbering)とは、論理的ページナンバ(LPN)30を高速ストレージ18上の特定格納位置にマッピングしてファイル28内のページに割当てる概念である。
デバイスドライバ・アプリケーションプログラミングインタフェイスAPI(application programming interface)26は、ここでは、アプリケーション20、運営システム22、及びファイルシステム24が高速ストレージ18と通信できるようにする。デバイスドライバAPI(26)は高速ストレージ18からデータを受信するか、或いは格納するためのコマンドを提供する。
一実施形態で、高速ストレージ18は高速ストレージ18に格納されたページのアドレスを提供するために物理的ページナンバリング(physical page numbering)を使用する。アドレスのこのような形態は特定の格納位置にマッピングできる物理的ページナンバ(PPN)32と称される。一実施形態で、高速ストレージ18はSSD(solid−state drive、又は、solid−state disk)を含む。SSDはメモリとして集積回路を使用してデータを持続的に格納するファイル28などのデータ格納装置である。一実施形態で、SSDはNANDフラッシュメモリ又はランダムアクセスメモリRAMを使用する。
一実施形態で、高速ストレージ18はコンピュータ12に論理セクタインタフェイスを提供しながら、高速ストレージ18を管理するファイル変換階層FTL(file translation layer)34、又は同等の構成を更に含む。このように、FTL(34)はファイルシステム24によって維持される論理的ページナンバ(LPN)30及び高速ストレージ18によって維持される物理的ページナンバ(PPN)32のマッピング関係を制御する。他の実施形態で、例示的な実施形態はSSDと他の形態のストレージ装置を使用する。
図2は、ファイルを更新するための、従来一般的なファイル管理システムを示す図面である。図示された実施形態はアプリケーションが使用者のマルチページブログ(multipage blog)を示すファイル200を維持する場合を想定する。使用者がブログを更新するたびに、アプリケーションはファイル200をメモリに読出し、これによってコンテンツを変更する。更新が遂行される間に、システムは変更されたファイルがコピーされた新しいファイル204を生成する。このように使用者がブログを更新している間に、他の使用者は相変わらず古いファイル202(old file)にアクセスし、読出しができる。使用者がブログ作成を終了し、ページを提出する時点で、アプリケーションは新しいファイル204にスイッチし、古いファイル202を削除する。
ファイルが実際に格納されたストレージシステムが物理的ページナンバ(PPN)208を維持する一方、ファイルシステムは古いファイル202及び新しいファイル204のページのために論理的ページナンバ(LPN)206を維持する。このような実施形態で、ストレージ装置が第4、第5の論理的ページナンバLPN4、LPN5を第0、第1の物理的ページナンバPPN0、PPN1の各々にマッピングする一方、ファイルシステムは古いファイル202のページを第4、第5の論理的ページナンバLPN4、LPN5にマッピングする。同様に、新しいファイル204のページは第24、第25の論理的ページナンバLPN24、LPN25にマッピングされ、第24、第25の論理的ページナンバLPN24、LPN25は第11、第12の物理的ページナンバPPN11、PPN12の各々にマッピングされる。
このような従来のシステムの問題点は、古いファイル202を置換する新しいファイル204にアクセスするために、システムがある時点でシステム情報に関する更新を必要とすることである。通常、この更新は、システムのデータ構造に対して一連のカスケード型の更新を引き起こし、ストレージへの多くの書込みを発生させる。
システム情報は各ファイル/文書に対するメタデータを含む。例えば、メタデータは文書が格納された日付、ファイルを格納した使用者の識別子を含む。メタデータは一般的にデータ構造に格納される。このようなデータ構造の一実施形態はB−ツリーであって、格納されたデータを分類(sort)して維持し、データ件数に対して対数的にしか増加しない時間内に検索、縦続的アクセス、挿入、及び削除を可能にするツリーデータ構造である。
各ファイル200のためにメタデータ又は論理的ページナンバ206のリストはB−ツリーのリーフノード(leaf node)によって維持される。一般的に、ファイル200当たりに1つのリーフノードが存在する。ファイル200の名前がB−ツリーのリーフレベル付近に格納された場合、そのノードからルートノードまでの経路上の全てのノードはノードの変化を反映するように更新する必要がある。従って、カスケード型の更新及びストレージへの書込みが発生する。
例えば、上述されたように使用者がブログを更新する毎に、アプリケーションは該ブログを含むファイル情報の更新を必要とし、少なくとも1つのディスク書込みを誘発する。更に多くのユーザが存在する場合、更に多くのディスク書込みが誘発される。
例示的な実施形態は、システムデータ構造を更新することなく、新しい更新ファイルに対するアクセスを提供するための改良された方法及びシステムを指向し、これによりシステムにおける、カスケード型の更新及び過度なディスク書込みが除去されるか、或いは最小化される。
例示的な実施形態はこのような問題点を解決するために、新しいストレージ(例えば、SSD)コマンド及びアプリケーションプログラミングインタフェイス(API、Application Programming Interface)を提供する。即ち、ファイルの新しいバージョンに、システムデータ構造を更新することなくアクセスできる場合、最新のデータシステム情報を反映するためのストレージ書込みを、カスケード型の更新が除去されているので、顕著に削減、又は回避できる。
この単純化された実施形態はこれだけに留まらず、B−ツリー、文書ロギング、シャドーページング、ダブルバッファ書込み、及びその他の、多数のアプリケーションは、この例示的な実施形態に適用可能な特徴を有する。
本発明の例示的な実施形態は、ここでSWAT(SWap And Trim)コマンドと称するコマンド及び関連されたAPIを提案する。論理的ページナンバ(LPN)リストのペアが与えられた場合、SWATコマンドはアトミックに(atomically)リストの論理的ページナンバ(LPN)のマッピングを順にスワップ又は再マッピングし、使用されない論理的ページナンバ(unused LPN)は除去(trim)する。
更に、ガーベッジ・コレクションによって再クレームされる前まで、非同期的に除去(trim)されるべきページにアクセスする同時的プロセスを可能にする弱いマッピングコンセプト(weak mapping concept)が提供される。
図3は本発明の一実施形態によって、更新の間にファイルに対するアクセスを提供するための、ファイル管理システム10によって遂行されるプロセスを示す順序図である。図4は該プロセスを図式化した図面である。
図1、図3、及び図4を参照すれば、ブロック300に示すステップにおいて、SWAT動作に先立つプロセスを示し、古いファイルの基本ページの変更(modifying base page(s))を含む更新を受信することに応答してプロセスが開始され、古いファイル(old file)へのアクセスが維持されている間に、目標ページの変更されたコンテンツがコピーされた新しいファイル(new file)を生成する。
即ち、図4に示すように、更新されつつあるファイル400に対応してファイルの古いバージョン(即ち、古いファイル(old file)402)へのアクセスが一時的に維持される一方で、変更された目標ページを含むファイルの新しいバージョン(即ち、新しいファイル(new file)404)が生成される。ファイル400はアプリケーション20の1つ又は運営システム22を通じて更新される。
SWAT動作の直前の段階では、ファイルシステム24は、古いファイルの論理的ページナンバ(LPN)の基本リスト(LPNの第1リストとも言う)406(例えば、LPN4、LPN5からなる)を使用して古いファイル402に対するページの論理的な格納位置を表現し、他方、高速ストレージ18は古いファイルの物理的ページナンバ(PPN)の基本リスト(PPNの第1リストとも言う)408(例えば、PPN0、PPN1からなる)を使用して古いファイル402に対するページの物理的な格納位置を示す。
同様に、新しいファイル404に対するページの論理的な格納位置は新しいファイルの論理的ページナンバ(LPN)の目標リスト(LPNの第2リストとも言う)410(例えば、LPN24、LPN25からなる)を使用して表現され、高速ストレージ18における新しいファイル404に対する目標ページの物理的な格納位置は新しいファイルの物理的なページナンバ(PPN)の目標リスト(PPNの第2リストとも言う)412(例えば、PPN11、PPN12からなる)を使用して表現される。
図3及び図4を再び参照すれば、ブロック302に示すステップにおいて、SWAT動作の前半プロセスが示され、委託された新しいファイル404への更新に対応して、古いファイルの論理的ページナンバ(LPN)の基本リスト406のマッピング先は、古いファイルの物理的ページナンバ(PPN)の基本リスト408から新しいファイルの物理的ページナンバ(PPN)の目標リスト412に、図4において矢印414により示したように、アトミックに(即ち、基本リスト中のページごとに)スワップ又は再マッピングされる。
図4に示したように、古いファイルの論理的ページナンバ(LPN)の基本リスト406(即ち、LPN4、LPN5)の物理的なマッピング先は、新しいファイル404の物理的ページナンバ(PPN)の目標リスト412(即ち、PPN11、PPN12)に再マッピングされる。更に詳細に、SWATコマンドが実行される時、LPN4はPPN11にマッピングされ、LPN5はPPN12にマッピングされる。結果的に、SWAT APIはファイル情報を更新する必要を無くする。
更に、ブロック304に示すステップにおいて、SWAT動作の後半プロセスが示され、古いファイルの論理的ページナンバ(LPN)の基本リスト406から古いファイルの物理的ページナンバ(PPN)の基本リスト408へのマッピングは、非同期的に(asynchronously)除去(trim)され、古いファイルの物理的ページナンバ(PPN)の基本リスト408内の物理的ページナンバ(PPN)に対応するページを解放(releasing)する。
具体的には、図4に例示したように、このように、古いファイルの論理的ページナンバ(LPN)の基本リスト406から古いファイルの物理的ページナンバ(PPN)の基本リスト408(PPN0、PPN1)へのマッピングを除去した後に、古いファイルの物理的ページナンバ(PPN)の基本リスト408に属する物理的ページナンバ(PPN0、PPN1)を有するページは、参照番号“416”を付した“X”表示のように解放される。
SWATコマンドが実行される時、新しいファイル404(実際には、これは最早、「新しいファイル」ではない)は古いファイルの物理的ページナンバ(PPN)の基本リスト408に属する物理的なページにマッピングされる。新しい物理的なページがガーベッジ・コレクションによって再活用される時までは、新しいファイル404は揮発性の読出し専用になり、使用者が新しい物理的ページ(即ち、古いファイル402の物理的ページのコンテンツを保持している)を読出すのを可能にする。
以下の説明及び図面はSWAT動作がSSDに適用される時、マッピングテーブルがどのようにして更新されるかを示す。本実施形態はフォワードマッピングテーブル(FMT、Forward Mapping Table)及びリバースマッピングテーブル(RMT、Reverse Mapping Table)の2つのマッピングテーブルを使用する。マッピング形態はS(強、Strong)又はW(弱、Weak)として表示される。フォワードマッピングテーブル及びリバースマッピングテーブルのアレイ表現は単に説明の便宜のためである。即ちこのような説明は、ターゲット性能乃至利用可能な資源等に基づき、アレイ、リスト、ツリー、ハッシュ・マップ等の異なるデータ構造によっても具現できる。
SWATコマンドは、フォワードマッピングテーブルFMT及びリバースマッピングテーブルRMTの全ての論理的ページナンバ(LPN)の2つのリストのマッピングをアトミック方式にスワップし、目標に対するマッピングを弱(WEAK)にする。弱いマッピングは少なくともガーベッジ・コレクションが発生する時、除去(解除)される。例示的な実施形態が以下の図面で説明される。
図5乃至図12はリバースマッピングテーブルRMT、物理的ページナンバ(PPN)のリスト、及びフォワードマッピングテーブルFMTの多様な状態を示す図面である。図5に示したように、FMT(500)は、論理的ページナンバLPNが整列された論理的ページナンバLPN行、物理的ページナンバPPNが整列された物理的ページナンバPPN行、及び同一列の論理的ページナンバLPNと物理的ページナンバPPNとの間の強(S)又は弱(W)マッピングに対応する値を含むマッピング型を示す行を含む。図5の実施形態は、FMT(500)がLPN_A及びPPN_Xが強いマッピングを有することを示すエントリを含む場合を想定する。本実施形態はSWATコマンドがLPN_A及びLPN_Bに対して発行され、その次にLPN_B及びLPN_Cに対するSWATコマンドが発行される場合を想定する。
第1SWATコマンドの実行は、FMT(500)において、LPN_AからPPN_Yへのフォワードマッピング情報を更新し、LPN_BからPPN_Xへのフォワードマッピング情報を更新する。更に該第1SWATコマンドの実行は、RMP(502)において、PPN_XからLPN_B及びLPN_Aへのリバースマッピング情報を更新する。LPN_B及びPPN_Xの間の結果的なマッピングは、RMT(502)におけるLPN_Bのための太枠によって表示されるように「強」く(strong)、LPN_A及びPPN_Xの間の結果的なマッピングは、RMT(502)におけるLPN_Aのための細枠によって表示されるように「弱」い(weak)。弱いマッピングは直ちに除去されるか、或いはガーベッジ・コレクション時間中に除去される。
以下の場合の中で1つは弱いマッピングを除去する。1)ガーベッジ・コレクション、2)書込みコマンド、3)トリムコマンド、又は、4)他のSWATコマンド。
弱いマッピングを有するLPNに対する書込みは新しいPPNに対する強いマッピングを生成し、弱いマッピングを除去する。例えば、図6に示すように、書込みコマンドWRITE_Aを通じてLPN_Aへの書込みは新しいPPN_Yを割当て、FMT(500)におけるLPN_Aのフォワードマッピング先をPPN_Yに更新する。これと並行して、RMT(502)は、PPN_XのリバースマップリストからLPN_Aのための弱いマッピングを除去し、PPN_YのリバースマップリストにLPN_Aのために新しいリバースマッピングを追加するように更新される。
PPNとの強いマッピングを有するLPNへの書込みは、新しいPPNへの強いマッピングを生成し、古いPPNに対する全ての弱いマッピングを除去する。例えば、図7に示すように、書込みコマンドWRITE_Bを通じてLPN_Bへの書込みは新しいPPN_Yを割当て、FMT(500)におけるLPN_Bのフォワードマッピング先をPPN_Yに更新する。これはLPN_Aの弱いマッピングを無用化(make_stale)し、このマッピングは直ちに又はガーベッジ・コレクション時間中に除去される。これと並行して、RMT(502)は、PPN_XのリバースマップリストからLPN_Bのためのエントリを除去するように更新され、PPN_YのリバースマップリストにLPN_Bのための新しいエントリを追加し、LPN_AのためのエントリはPPN_Xのリストから直ちに、又はガーベッジ・コレクション時間中に除去される。
弱いマッピングを有するLPNに対するTRIMは弱いマッピングを直ちに除去する。例えば、図8に示したように、TRIMコマンド、TRIM_Aを通じてLPN_Aに対するTRIMはPPN_XへのLPN_Aからのフォワードマッピングを除去する。これと並行して、RMT(502)はPPN_XのリバースマップリストからLPN_Aのためのエントリを除去するように更新される。
PPNへの強いマッピングを有するLPNに対するTRIMはPPNへの全てのマッピングを除去する。例えば、図9に示したように、LPN_BへのTRIMはLPN_Bのフォワードマッピングを除去する。これはLPN_Aの弱いマッピングを無用化し、このようなマッピングは直ちに、又はガーベッジ・コレクション時間中に除去される。これと並行して、RMT(502)は、PPN_XのリバースマップリストからLPN_Bのためのエントリを除去するように更新され、LPN_AのためのエントリはPPN_Xのリバースマップリストから直ちに、又はガーベッジ・コレクション時間中に除去される。
弱いマッピングも有する物理的ページナンバ(PPN)への強いマッピングを有する、基本LPN(base LPN)としてのLPNに係るSWATはPPNに対する全ての弱いマッピングを除去する。例えば、図10に示すように、基本LPNとしてのLPN_B、及び目標LPNとしてのLPN_Cを有するSWATは、PPN_XへのLPN_Cのフォワードマッピングエントリを弱くする。PPN_Xが単に弱いマッピングを有するので、弱いマッピングは結果的に直ちに、又はガーベッジ・コレクション時間中に除去される。これと共に、LPN_CのためのエントリがRMT(502)におけるPPN_Xのリバースマップリストに追加される。RMT(502)に含まれたPPN_Xの全ての弱いマッピングは直ちに、又はガーベッジ・コレクション時間中に除去される。
他のLPNへの強いマッピングを有するPPNへの弱いマッピングを基本LPNとして有するLPNに係るSWATは該LPNの弱いマッピングを除去する。該弱いマッピングは無用になっていない(not_stale)ので、このような弱いマッピングは強いマッピングのように看做される。例えば、図11に示したように、基本LPNとしてのLPN_A及び目標LPNとしてのLPN_Cを有するSWATはFMT(500)からLPN_Aの弱いマッピングを除去し、PPN_Zへの強いマッピングを生成する。これはPPN_XへのLPN_Cのマッピングを弱くし、結果的に、PPN_Xは強いマッピング及び弱いマッピングを全て有する。これと共に、RMT(502)はLPN_Cのために弱いマッピングエントリをPPN_Xのリバースマップリストに追加し、LPN_Aのために強いマッピングエントリをPPN_Zのリバースマップリストに追加するように更新される。
他のLPNへの弱いマッピングを有するPPNへの弱いマッピングを基本LPNとして有するLPNに係るSWATは該LPNの弱いマッピングを除去する。該弱いマッピングは無用になっている(stale)ので、このような弱いマッピングはマッピングではない(no−mapping)と看做される。例えば、図12に示したように、基本LPNとしてLPN_A及び目標LPNとしてLPN_Bを有するSWATは、FMT(500)からLPN_Aの弱いマッピングを除去し、LPN_AからPPN_Zへの強いマッピングを生成する。これはLPN_A及びLPN_Bの全てがPPN_Zを共有するようにし、結果的に、PPN_Zは強いマッピング及び弱いマッピングを全て有する。これと共に、RMT(502)はLPN_Aのために強いマッピングエントリ及びLPN_Bのために弱いマッピングエントリがPPN_Zのリバースマップリストに追加されるように更新される。
ガーベッジ・コレクション又はトリムコマンドが弱いマッピングを除去する場合、LPNは無効化(invalid)され、該論理的ページナンバ(LPN)のページに対する読出しは、例えば「0xFF」のような、予め決められた値を返還する。弱いマッピングを有する論理的ページに対する書込み動作は新しい物理的ページを割当て、強いPPNマッピングを生成する。ある論理的ページが現在使用されない場合、(即ち、物理的ページマッピングがない場合)目標ページはその現在のマッピングを維持するが、該マッピングは弱いマッピングになる。SWATコマンドは、強いマッピング、弱いマッピング、又は、マッピングがない、の3種の何れかを有する論理的ページに係わって動作する。基本LPNはこの3つの場合の中の何れかであるが、目標LPNは強いマッピングを有する。基本LPNが弱いマッピングを有する場合、マッピングを有しないと看做される。物理的ページは最大N個の弱いマッピング(デフォルトに、Nは1)を有する。以下で、更に詳細に説明される。
例えば、図4で、SWATコマンドは2つのLPNリスト、即ち、LPNの基本リスト(例えば、LPN4、LPN5からなる)、及びLPNの目標リスト(例えば、LPN25、LPN25からなる)に対して動作する。本実施形態で、各リストは二つのページを含む。このような実施形態で、LPN4及びLPN5は基本リストに含まれ、本来(originally)、PPN0及びPPN1の各々への強いマッピングを有する。LPN24及びLPN25は目標リストに含まれ、本来PPN11及びPPN12の各々への強いマッピングを有する。このような2つのリストに対するSWATコマンドを実行すると、LPN4とPPN11との間の1つの強いマッピング、及び、LPN5とPPN12との間の他の強いマッピングを生成し(図4に実線矢印414で示される)、更に、LPN24とPPN0との間の1つの弱いマッピング、及び、LPN25とPPN1との間の他の弱いマッピングを生成する(図4に破線矢印で示される)。
物理的ページが他のどのLPNへの強いマッピングも含まない場合、該物理的ページはガーベッジ・コレクションの対象となる資格がある。SWATコマンド動作が完了すると、目標リスト内のLPNに対する弱いマッピングが生成される。結果的に、ガーベッジ・コレクションは、例えば図4に示したLPN24及びLPN25に対する弱いマッピングを除去してPPN0及びPPN1に対応する物理的ページの全てを回収(reclaim)する。論理的ページ(例えば、LPN24及びLPN25に対応する)はガーベッジ・コレクションが発生される前に読み出され得る。論理的ページが書込まれた場合、弱いマッピングは除去され、新しい物理的なページへの強いマッピングが生成される。マッピングの変更はアトミックに遂行される。
図13は使用されないページに対するSWATコマンドの例を示す。図13で、基本リスト中のLPN4及びLPN5は使用されない(unuesed又はempty)論理的ページであり、目標リスト中のLPN24及びLPN25はPPN11及びPPN12への強いマッピングを有する。上述された実施形態のように、このような2つのリストに対するSWATコマンドを完了すると、LPN4とLPN11との間の1つの強いマッピング、及びLPN5とPPN12との間の他の強いマッピングを生成する。LPN4及びLPN5が使用されないので、LPN24及びLPN25は各々の元のマッピングを維持するが、マッピング強度は強から弱に変わり、これはSWAT動作の結果であることを示す。
マッピングがない基本LPNとしてのLPNに対するSWATは該LPNに対する新しい有効な弱いマッピングを生成する。例えば、図14に示したように、基本LPNとしてのLPN_A及び目標LPNとしてLPN_Bに対するSWATはPPN_XへのLPN_Aの新しい弱いマッピングをFMT(500)において生成する。これはLPN_A及びLPN_BがPPN_Xを共有するようにし、結果的に、PPN_Xは強いマッピング及び弱いマッピングの全てを有する。これと共に、RMT(502)はLPN_Bに対する強いマッピングエントリ及びLPN_Aに対する弱いマッピングエントリがPPN_XのリバースマップリストRMT(502)に追加されるように更新される。
或る物理的ページが強いLPNマッピングを有しない場合、該物理的ページはガーベッジ・コレクションの対象になる資格がある。従って例えば図13において、強いマッピングがPPN11及びPPN12に対して存在するので、共有された物理的なページPPN11及びPPN12はガーベッジ・コレクションで生き残る。結果的に、強いLPN4及びLPN5マッピングが除去されるか、或いはガーベッジ・コレクションがページを再活用しない限り、LPN24及びLPN25はPPN11及びPPN12にアクセスするため各々、使用可能になる。
ガーベッジ・コレクションが共有された物理的ページPPN_X(又はPPN11及びPPN12)を再配置した場合、これによって強いマッピング及び弱いマッピングの全ては移動しなければならない。
図15は反複されるSWATコマンドの例を示す。反復されたSWAT動作が図示したように発生する場合、物理的ページ(例えば、PPN11)は、複数の相異なる弱いLPNマッピング(例えば、LPN4及びLPN24)を有する。デフォールトには、物理的ページは1つの強いマッピング(例えば、LPN4及びPPN11の間のマッピング)及び1つの選択的な弱いマッピングを有する。しかし、1つの物理的なページがサポート可能なLPNの個数の最大値は、予め決められたパラメータによって定義され、具現化依存(implementation−dependent)である(実際の具現化に使える資源により限定される)。
例示的な実施形態によれば、本発明に係るSWATコマンド及びAPIは、現存する従来技術に対して多様な長所を提供する。SWATコマンドはOSに対して何らの変更も要求せず、一部のファームウェアを僅かに変更するだけでSSD装置の全ての形態に適用可能である。SWATコマンドはアプリケーションからのディスク書込みの回数を減少させることでSSDの耐久性を顕著に向上させる。SWATコマンドは使用されない格納空間を予め積極的に回収することで、システムの性能を向上させる。更に、SWATコマンドはアプリケーション、特に、多重バージョンの同時制御に係るアプリケーションの性能上の顕著な便益を提供する。
以下では、SWATコマンドの或る実施形態が更に詳細に説明される。ファイル(の更新)がアプリケーション20を通じて委託される時、運営システム22又はファイルシステム24の中の何れか1つは装置ドライバAPI(26)を呼出す。装置ドライバAPI(26)は高速ストレージ18に対してSWATコマンドを発行する。
一実施形態で、コマンドは新しいファイルLPN410の目標リスト及び古いファイルLPN406の基本リストからなるLPNリストのペアを定義する。高速ストレージ18のフラッシュ変換階層34(FTL、Flash Translation Layer)は古いファイルLPN406の基本リスト及び新しいファイルLPN410の目標リストを受信し、予め決められた順序に従ってLPNのペアのLPNのマッピングをアトミックに再マッピングする。上述されたように、SWATコマンドはアトミックした動作を遂行する。
SWATコマンドは、SATA、SAS、PCIe、eMMC、UFSなどの任意の型のストレージプロトコルにおいて、ベンダー固有コマンド(vendor specific command)により具現される。SWATコマンドの思想及び実施例は、特定の実施例に関して本発明を説明する下記のAPI擬似コード(pseudo−code)を参照すると更に良く理解されるであろう。
この擬似コードは、特定のコーディング言語を表現することも、まして、このコーディング言語をコンパイルすることも意図しておらず、単純に、システムの動作をより形式的な用語により表現することを意図している
これらは明確性のためにのみ提供され、本発明はこれに限定されない。本発明及び本発明の技術的な思想は方法、装置、本文に特定に記載されないコードの多様な形態のアプリケーションを含む。
Figure 2017004524
Figure 2017004524
Figure 2017004524
Figure 2017004524
Figure 2017004524
本発明は、上述の実施形態によって説明されたが、本発明の技術的思想範囲内で実施形態は変形されよう。例えば、例示的な実施形態はハードウェア、ソフトウェア、プログラム命令語を含むコンピュータ読出し可能な媒体、又はそれらの組合わせを使用して具現される。本発明に従って書かれたソフトウェアはメモリ、ハードディスク、又はCD/DVD−ROMなどのコンピュータ読出し可能な媒体に格納され、プロセッサによって実行される。従って、多様な変形が添付された特許請求範囲の思想と範囲内で当業者によって具現されよう。
10 システム、ファイル管理システム
12 コンピュータ
14 プロセッサ
16 メモリ
18 高速ストレージ、ソリッドステートドライブ(SSD)
20 アプリケーション
22 運営システム(OS)
24 ファイルシステム
26 デバイスドライバAPI
28、200、400 ファイル
30、206 論理的ページナンバ(LPN)
32、208 物理的ページナンバ(PPN)
34 フラッシュ変換階層
202、402 古いファイル
204、404 新しいファイル
300 ブロック(SWAT動作に先立つプロセスを示すステップ)
302 ブロック(SWAT動作の前半プロセスを示すステップ)
304 ブロック(SWAT動作の後半プロセスを示すステップ)
406 古いファイルの論理的ページナンバ(LPN)の基本リスト、古いファイルの論理的ページナンバ(LPN)
408 古いファイルの物理的ページナンバ(PPN)の基本リスト、古いファイルの物理的ページナンバ(LPN)
410 新しいファイルの論理的ページナンバ(LPN)の目標リスト、新しいファイルの論理的ページナンバ(LPN)
412 新しいファイルの物理的ページナンバ(PPN)の目標リスト、新しいファイルの物理的ページナンバ(LPN)
414 矢印、実線矢印
416 “X”印
500 フォワードマッピングテーブル(FMT)
502 リバースマッピングテーブル(RMT)

Claims (18)

  1. 更新されたファイルへのアクセスを提供する方法であって、
    前記アクセスは、論理的ページナンバ(LPN、logical page number)の第1リスト及び更新のための論理的ページナンバ(LPN)の第2リストを受信することに応答して少なくとも1つのプロセッサによって遂行され、
    前記LPNの第1リストは、物理的ページナンバ(PPN、physical page number)の第1リストにマッピングされ、前記LPNの第2リストは、物理的ページナンバ(PPN)の第2リストにマッピングされる段階と、
    前記LPNの第1リストをアトミックに(atomically)再マッピングして前記LPNの第1リストを前記PPNの第2リストにマッピングする段階と、
    前記LPNの第1リストから前記PPNの第1リストへのマッピングを非同期的に(asynchronously)除去(trimming)する段階と、を含むことを特徴とする方法。
  2. 前記方法は、SWAT(スワップ及びトリム、swap and trim)コマンド及びAPI(application programming inerface)を通じて適用されることを特徴とする請求項1に記載の方法。
  3. 前記SWATコマンドのパラメータは、古いファイル(old file)に対応する前記LPNの第1リスト及び新しいファイル(new file)に対応する前記LPNの第2リストを含み、
    前記SWATコマンドは、前記LPNの第1及び第2リストに含まれる論理的ページナンバ(LPN)を順にアトミックにスワップ及び再マッピングし、使用されない論理的ページナンバ(LPN)を非同期的に除去することを特徴とする請求項2に記載の方法。
  4. 前記SWATコマンドは、アプリケーション又は運営システム(OS)による呼出しに応答してストレージ装置ドライバAPIからストレージ装置に発行されることを特徴とする請求項2に記載の方法。
  5. 前記SWATコマンドは、古いファイルの前記LPNの第1リスト及び新しいファイルの前記LPNの第2リストをパラメータとして含むことを特徴とする請求項2に記載の方法。
  6. 前記LPNの第1及び第2リストに含まれる論理的ページナンバ(LPN)は、前記LPNの第1及び第2リストによって決められた順に従ってアトミックに再マッピングされることを特徴とする請求項5に記載の方法。
  7. 前記、非同期的に除去されるべき論理的ページナンバ(LPN)に対応するページが、ガーベッジ・コレクションによって回収される時まで、前記ページにアクセスできる弱いマッピングを提供する段階を更に含むことを特徴とする請求項6に記載の方法。
  8. 前記弱いマッピングは、ガーベッジ・コレクション、書込みコマンド、又はトリムコマンドによって除去される段階を更に含むことを特徴とする請求項7に記載の方法。
  9. メモリと、
    ストレージ装置と、
    前記メモリ及び前記ストレージ装置と連結され、論理的ページナンバ(LPN、logical page number)の第1リスト及び更新のための論理的ページナンバ(LPN)の第2リストを受信するプロセッサと、を含み、
    前記LPNの第1リストは、物理的ページナンバ(PPN、physical page number)の第1リストにマッピングされ、前記LPNの第2リストは、物理的ページナンバ(PPN)の第2リストにマッピングされ、
    前記プロセッサは、前記LPNの第1リスト及び更新のための前記LPNの第2リストを受信することに応答して、前記LPNの第1リストが前記PPNの第2リストにマッピングされるように前記LPNの第1リストをアトミックに再マッピングし、
    前記PPNの第1リスト及び前記LPNの第1リストの間のマッピングを非同期的に除去し、前記LPNの第2リストと前記PPNの第1リストのマッピングをアンマップ(マッピング解除)することを特徴とするコンピュータ。
  10. 前記再マッピングは、SWAT(スワップ及びトリム)コマンド及びAPI(application programming interface)を通じて適用されることを特徴とする請求項9に記載のコンピュータ。
  11. 前記SWATコマンドのパラメータは、古いファイルに対応する前記LPNの第1リスト及び新しいファイルに対応する前記LPNの第2リストを含み、
    前記SWATコマンドは、前記LPNの第1及び第2リストに含まれる論理的ページナンバ(LPN)を順にアトミックにスワップ及び再マッピングし、使用されない論理的ページナンバ(LPN)を非同期的に除去することを特徴とする請求項10に記載のコンピュータ。
  12. 前記SWATコマンドは、運営システム(OS)又はアプリケーションによる呼出しに応答してストレージ装置ドライバAPIからストレージ装置に発行されることを特徴とする請求項9に記載のコンピュータ。
  13. 前記SWATコマンドは、古いファイルの前記LPNの第1リスト及び新しいファイルの前記LPNの第2リストをパラメータとして含むことを特徴とする請求項12に記載のコンピュータ。
  14. 前記LPNの第1及び第2リストに含まれる論理的ページナンバ(LPN)は、前記LPNの第1及び第2リストによって決められた順序に従ってアトミックに再マッピングされることを特徴とする請求項13に記載のコンピュータ。
  15. 前記、非同期的に除去されるべき論理的ページナンバ(LPN)に対応するページが、ガーベッジ・コレクションによって回収される時まで、前記プロセッサが前記ページにアクセスできるように弱いマッピングが提供されることを特徴とする請求項9に記載のコンピュータ。
  16. 前記弱いマッピングは、ガーベッジ・コレクション、書込みコマンド、又はトリムコマンドによって除去されることを特徴とする請求項15に記載のコンピュータ。
  17. コンピュータ読出し可能である媒体に格納された実行可能なソフトウェア製品であって、
    論理的ページナンバ(LPN、logical page number)の第1リスト及び更新のための論理的ページナンバ(LPN)の第2リストを受信することに応答して更新されたファイルに対するアクセスを提供するための命令語を含み、
    前記LPNの第1リストは、物理的ページナンバ(PPN、physical page number)の第1リストとマッピングされ、
    前記LPNの第2リストは、物理的ページナンバ(PPN)の第2リストとマッピングされ、
    前記プログラムは、
    前記LPNの第1リストをアトミックに(atomically)再マッピングして、前記LPNの第1リストを前記PPNの第2リストにマッピングする命令語と、
    前記LPNの第1リスト及び前記PPNの第1リストのマッピングを非同期的に(asynchronously)除去(trimming)するための命令語と、を含むことを特徴とするソフトウェア製品。
  18. 少なくとも1つのプロセッサを含むコンピュータによって遂行される、更新されたファイルに対するアクセスを提供する方法において、
    古いファイルのために論理的ページナンバ(LPN、logical page number)の第1リスト及び更新されたファイルのための論理的ページナンバ(LPN)の第2リストを受信する段階と、
    ここで、前記LPNの第1リストは、物理的ページナンバ(PPN、physical page number)の第1リストとマッピングされ、
    前記LPNの第2リストは、物理的ページナンバ(PPN)の第2リストとマッピングされ、
    前記LPNの第1リストをアトミックに(atomically)再マッピングして前記LPNの第1リストを前記更新されたファイルのための前記PPNの第2リストにマッピングする段階と、
    前記古いファイルのための前記PPNの第1リストのマッピングを除去する段階と、を含むことを特徴とする方法。
JP2016114951A 2015-06-12 2016-06-09 ファイルアクセス提供方法、コンピュータ、及びソフトウェア製品 Active JP6788386B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562175073P 2015-06-12 2015-06-12
US62/175,073 2015-06-12
US14/954,885 US9684658B2 (en) 2013-11-08 2015-11-30 SWAT command and API for atomic swap and trim of logical pages
US14/954,885 2015-11-30

Publications (3)

Publication Number Publication Date
JP2017004524A true JP2017004524A (ja) 2017-01-05
JP2017004524A5 JP2017004524A5 (ja) 2019-07-11
JP6788386B2 JP6788386B2 (ja) 2020-11-25

Family

ID=57735029

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016114951A Active JP6788386B2 (ja) 2015-06-12 2016-06-09 ファイルアクセス提供方法、コンピュータ、及びソフトウェア製品

Country Status (3)

Country Link
JP (1) JP6788386B2 (ja)
KR (1) KR102316198B1 (ja)
TW (1) TWI750116B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113642839A (zh) * 2021-07-05 2021-11-12 华录科技文化(大连)有限公司 一种基于流程重构的工作流自适应再生资源回收系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220009523A (ko) 2020-07-15 2022-01-25 삼성전자주식회사 스토리지 컨트롤러, 및 스토리지 컨트롤러의 동작 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004280752A (ja) * 2003-03-19 2004-10-07 Sony Corp データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム
JP2005115561A (ja) * 2003-10-06 2005-04-28 Media Logic:Kk フラッシュrom制御装置
JP2012203864A (ja) * 2011-03-28 2012-10-22 Toshiba Corp メモリシステム、コントローラ、およびメモリシステムの制御方法
US20130238869A1 (en) * 2011-08-08 2013-09-12 International Business Machines Corporation Enhanced copy-on-write operation for solid state drives
US20130332654A1 (en) * 2012-06-12 2013-12-12 International Business Machines Corporation Data versioning in solid state memory
JP2015095262A (ja) * 2013-11-08 2015-05-18 三星電子株式会社Samsung Electronics Co.,Ltd. 更新されたファイルにアクセスする方法、及びそれを具現するコンピュータとソフトウェア製品

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101437397B1 (ko) * 2007-10-31 2014-09-05 삼성전자주식회사 비휘발성 메모리 장치의 데이터 관리 방법 및 맵핑 테이블업데이트 방법
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
US8364931B2 (en) * 2009-06-29 2013-01-29 Mediatek Inc. Memory system and mapping methods using a random write page mapping table
US11232022B2 (en) * 2010-10-29 2022-01-25 Samsung Electronics Co., Ltd. Memory system, data storage device, user device and data management method thereof having a data management information matching determination

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004280752A (ja) * 2003-03-19 2004-10-07 Sony Corp データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム
JP2005115561A (ja) * 2003-10-06 2005-04-28 Media Logic:Kk フラッシュrom制御装置
JP2012203864A (ja) * 2011-03-28 2012-10-22 Toshiba Corp メモリシステム、コントローラ、およびメモリシステムの制御方法
US20130238869A1 (en) * 2011-08-08 2013-09-12 International Business Machines Corporation Enhanced copy-on-write operation for solid state drives
US20130332654A1 (en) * 2012-06-12 2013-12-12 International Business Machines Corporation Data versioning in solid state memory
JP2015095262A (ja) * 2013-11-08 2015-05-18 三星電子株式会社Samsung Electronics Co.,Ltd. 更新されたファイルにアクセスする方法、及びそれを具現するコンピュータとソフトウェア製品

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113642839A (zh) * 2021-07-05 2021-11-12 华录科技文化(大连)有限公司 一种基于流程重构的工作流自适应再生资源回收系统
CN113642839B (zh) * 2021-07-05 2023-10-24 华录科技文化(大连)有限公司 一种基于流程重构的工作流自适应再生资源回收系统

Also Published As

Publication number Publication date
KR20160146506A (ko) 2016-12-21
TWI750116B (zh) 2021-12-21
KR102316198B1 (ko) 2021-10-25
TW201710930A (zh) 2017-03-16
JP6788386B2 (ja) 2020-11-25

Similar Documents

Publication Publication Date Title
JP6629407B2 (ja) 更新されたファイルにアクセスする方法及びシステム並びにソフトウェア製品
US10649910B2 (en) Persistent memory for key-value storage
US9239841B2 (en) Hash-based snapshots
US9501421B1 (en) Memory sharing and page deduplication using indirect lines
US11782632B2 (en) Selective erasure of data in a SSD
US20120158674A1 (en) Indexing for deduplication
US11048676B2 (en) Trees and graphs in flash memory
US9684658B2 (en) SWAT command and API for atomic swap and trim of logical pages
CN109690522B (zh) 一种基于b+树索引的数据更新方法、装置及存储装置
CN107704466B (zh) 数据储存系统
JP6788386B2 (ja) ファイルアクセス提供方法、コンピュータ、及びソフトウェア製品
KR101379161B1 (ko) 저장장치에서 블룸필터를 적용한 역매핑 방법 및 시스템
US11748259B2 (en) System and method to conserve device lifetime for snapshot generation
JP2013109404A (ja) 情報処理装置
WO2022224451A1 (ja) 管理装置、データベースシステム、管理方法およびプログラム
US20220164135A1 (en) Apparatus, method and computer program for managing memory page updates within non-volatile memory

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190605

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200929

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201030

R150 Certificate of patent or registration of utility model

Ref document number: 6788386

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250