JP6788386B2 - File access provision methods, computers, and software products - Google Patents

File access provision methods, computers, and software products Download PDF

Info

Publication number
JP6788386B2
JP6788386B2 JP2016114951A JP2016114951A JP6788386B2 JP 6788386 B2 JP6788386 B2 JP 6788386B2 JP 2016114951 A JP2016114951 A JP 2016114951A JP 2016114951 A JP2016114951 A JP 2016114951A JP 6788386 B2 JP6788386 B2 JP 6788386B2
Authority
JP
Japan
Prior art keywords
list
lpns
lpn
file
ppn
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
JP2016114951A
Other languages
Japanese (ja)
Other versions
JP2017004524A (en
JP2017004524A5 (en
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
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/en
Publication of JP2017004524A5 publication Critical patent/JP2017004524A5/ja
Application granted granted Critical
Publication of JP6788386B2 publication Critical patent/JP6788386B2/en
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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)

Description

本発明はファイル管理システムに関し、更に詳細には、更新されたファイルへのアクセスを提供する方法、それに係るコンピュータ、及びコンピュータ読出し可能である媒体に格納された実行可能なソフトウェア製品に関する。 The present invention relates to a file management system, and more particularly to a method of providing access to an updated file, a computer thereof, and an executable software product stored on a computer-readable medium.

ファイル管理システムはファイルの最新に更新されたバージョンを追跡するためにデータ構造をアップデート(update、以下、「更新」という)する。このプロセスにおいて、一部のシステムは、古いバージョン(the older version)に上書きする代わりにファイルの他のバージョンを生成し、暫らくの間、ファイルの古いバージョンを維持する。結果的にシステムは、新しいバージョンにファイルが更新されている最中であっても、ファイルの古いバージョンを読出しアクセスできる。例えば、使用者がブログページを更新する場合、使用者がブログページを更新している最中に他のユーザはブログページの古いバージョンを読出しできる。システムは、新しいファイルにアクセスし、古いファイルを新しいファイルにより置換するためにシステム情報を更新する必要がある。通常、この更新は、システムのデータ構造に対して一連のカスケード型の更新を引き起こし、これはストレージに多くの書込みを必要とする。 The file management system updates the data structure (update, hereinafter referred to as "update") to keep track of the latest updated version of the file. In this process, some systems generate other versions of the file instead of overwriting the old version and keep the old version of the file for some time. As a result, the system can read and access the old version of the file, even while the file is being updated to the new version. For example, if a user updates a blog page, other users can read an older version of the blog page while the user is updating the blog page. The system needs to access the new file and update the system information to replace the old file with the new file. This update typically causes a series of cascaded updates to the system's data structures, which requires a lot of writes to storage.

従って、上記の問題を解決さるためになされた本発明の目的は、システムのデータ構造に対して一連のカスケード型の更新を引き起こすことなく、更新されたファイルへの読出しアクセスを提供できる改良された方法及びシステムを提供できることにある。 Therefore, an object of the present invention made to solve the above problems has been improved to be able to provide read access to updated files without causing a series of cascaded updates to the data structures of the system. It is to be able to provide methods and systems.

本発明の目的は向上された寿命、向上された信頼性、及び向上された性能を有するファイルアクセス方法、コンピュータ、及びコンピュータ読出し可能である媒体に実行可能なソフトウェア製品が提供することにある。 An object of the present invention is to provide a file access method, a computer, and a computer-readable medium that is executable software products with improved lifespan, improved reliability, and improved performance.

本発明の一実施形態は、論理的ページナンバ(LPN、logical page number)の第1リスト及び更新のための論理的ページナンバ(LPN)の第2リストを受信することに応答して、少なくとも1つのプロセッサによって遂行される、更新されたファイルに対するアクセスを提供する方法に係る。
少なくとも1つのプロセッサに連結されたストレージデバイスを含む文書管理システムで更新されたファイルへのアクセスを提供する方法であって、フラッシュ変換階層(FTL:flash translation layer)マップは、ファイルシステムによって維持される論理的ページナンバー(LPN:logical page number)と前記ストレージデバイスによって維持される物理的ページナンバー(PPN:physical page number)との間のFTLによって維持され、前記方法は、第1ファイルへのアクセスが維持される間、前記第1ファイルの変更されたコンテンツ及び前記変更されたコンテンツがコピーされる第2ファイルの生成を含む更新(アップデート)を受信するアプリケーションに応答して送信される第1コマンドを、前記プロセッサから前記ストレージデバイスによって受信する段階であって、前記第1コマンドのパラメータは、前記第1ファイルに対応するLPNの第1リスト及び前記第2ファイルに対応するLPNの第2リストを含み、前記LPNの第1リストは、前記ストレージデバイスにおける前記第1ファイルの格納位置を示すPPNの第1リストにマッピングされ、前記LPNの第2リストは、前記ストレージデバイスにおける前記第2ファイルの格納位置を示すPPNの第2リストにマッピングされる前記受信する段階と、前記LPNの第1リストが前記PPNの第2リストに順にマッピングされるように前記LPNの第1リストをアトミックに(atomically)再マッピングする段階であって、前記LPNの第1リストの各LPNに対し、前記LPNの第1リストのLPNと前記PPNの第2リストの対応するPPNとの間の前記FTLマップにマッピングが生成される前記再マッピングする段階と、前記再マッピングする段階とは非同期的に(asynchronously)、前記PPNの第1リストへの前記LPNの第1リストのマッピングを除去(trimming)する段階であって、前記LPNの第1リストのすべてのLPNに対し、前記LPNの第1リストのLPNと前記PPNの第1リストの対応するPPNとの間の前記FTLマップでマッピングが解除(remove)される前記除去する段階と、前記PPNの第2リストへの前記LPNの第2リストのマッピングをアンマッピング(unmapping)する段階であって、前記LPNの第2リストのすべてのLPNに対し、前記LPNの第2リストのLPNと前記PPNの第2リストの対応するPPNとの間のマッピングが、前記FTLマップで解除される前記アンマッピングする段階と、を含み、ガベージコレクションによってページが回収(reclaim)されるまで、非同期的に除去(trim)される前記ページにアクセスする同時的プロセス(concurrent processes)を可能にする弱いマッピングを提供する段階と、前記ガベージコレクション、書き込みコマンド、又はトリムコマンドにより、前記弱いマッピングを解除(removing)する段階と、をさらに含むことを特徴とする
One embodiment of the present invention responds to receiving a first list of logical page numbers (LPNs) and a second list of logical page numbers (LPNs) for updating, at least one. It relates to a method of providing access to updated files performed by one processor.
A method of providing access to updated files in a document management system that includes a storage device attached to at least one processor, where a flash translation layer (FTL) map is maintained by the file system. Maintained by the FTL between the logical page number (LPN) and the physical page number maintained by the storage device (PPN: physical page number), the method provides access to the first file. While maintained, the first command sent in response to an application receiving an update that includes the modified content of the first file and the generation of a second file to which the modified content is copied. , The stage of receiving from the processor by the storage device, the parameters of the first command include a first list of LPNs corresponding to the first file and a second list of LPNs corresponding to the second file. , The first list of the LPN is mapped to the first list of PPNs indicating the storage position of the first file in the storage device, and the second list of the LPN is the storage position of the second file in the storage device. The receiving step, which is mapped to the second list of PPNs indicating, and the first list of LPNs are atomically re-mapped so that the first list of LPNs is sequentially mapped to the second list of PPNs. At the mapping stage, for each LPN in the first list of the LPN, a mapping is generated in the FTL map between the LPN in the first list of the LPN and the corresponding PPN in the second list of the PPN. The remapping step and the remapping step are asynchronously (asynchronously), and are steps of removing (trimming) the mapping of the first list of the LPN to the first list of the PPN. For all LPNs in the first list of LPNs, the removal is removed in the FTL map between the LPNs in the first list of the LPNs and the corresponding PPNs in the first list of the PPNs. Unmapping the steps and the mapping of the second list of LPNs to the second list of PPNs. ), The mapping between the LPN in the second list of the LPN and the corresponding PPN in the second list of the PPN for all LPNs in the second list of the LPN is in the FTL map. Allows concurrent processes to access the page that is asynchronously trimmed, including the unmapping step that is unmapped, until the page is collected by garbage collection. It is characterized by further including a step of providing a weak mapping to be performed, and a step of removing the weak mapping by the garbage collection, write command, or trim command .

本発明によれば、
LPNの第1リストはPPNの第1リストにマッピングされ、LPNの第2リストはPPNの第2リストにマッピングされた後、LPNの第1リストをアトミックに再マッピングしてLPNの第1リストをPPNの第2リストにマッピングし、LPNの第1リストからPPNの第1リストへのマッピングを非同期的に除去するので、システムのデータ構造に対して一連のカスケード型の更新を引き起こすことなく、更新されたファイルへの読出しアクセスを提供できる。
よって、向上された寿命、向上された信頼性、及び向上された性能を有するファイルアクセス方法、コンピュータ、及びコンピュータ読出し可能である媒体に実行可能なソフトウェア製品が提供できる。
According to the present invention
The first list of LPNs is mapped to the first list of PPNs, the second list of LPNs is mapped to the second list of PPNs, and then the first list of LPNs is asynchronously remapped to the first list of LPNs. It maps to the second list of PPNs and asynchronously removes the mapping from the first list of LPNs to the first list of PPNs, so updates without causing a series of cascaded updates to the system data structures. Can provide read access to the file.
Thus, it is possible to provide a file access method, a computer, and a computer-readable medium that are executable software products with improved lifespan, improved reliability, and improved performance.

本発明の実施形態によるファイル管理システムを示すブロック図である。It is a block diagram which shows the file management system by embodiment of this invention. ファイルを更新するための、従来一般的なファイル管理システムを示す図面である。It is a drawing which shows the conventional general file management system for updating a file. 本発明の実施形態によって更新の間にファイルに対するアクセスを提供するためのファイル管理システムによって遂行される手続を示す順序図である。It is a sequence diagram showing the procedure performed by the file management system for providing access to a file during an update according to an embodiment of the present invention. 図3の手続を図式的に示す図面である。It is a drawing which shows the procedure of FIG. 3 schematicly. フォワードマッピングテーブルFMT、物理的ページナンバのリスト、及びリバースマッピングテーブルRMTの多様な状態を示す図面である。It is a drawing which shows the various states of a forward mapping table FMT, a list of physical page numbers, and a reverse mapping table RMT. フォワードマッピングテーブルFMT、物理的ページナンバのリスト、及びリバースマッピングテーブルRMTの多様な状態を示す図面である。It is a drawing which shows the various states of a forward mapping table FMT, a list of physical page numbers, and a reverse mapping table RMT. フォワードマッピングテーブルFMT、物理的ページナンバのリスト、及びリバースマッピングテーブルRMTの多様な状態を示す図面である。It is a drawing which shows the various states of a forward mapping table FMT, a list of physical page numbers, and a reverse mapping table RMT. フォワードマッピングテーブルFMT、物理的ページナンバのリスト、及びリバースマッピングテーブルRMTの多様な状態を示す図面である。It is a drawing which shows the various states of a forward mapping table FMT, a list of physical page numbers, and a reverse mapping table RMT. フォワードマッピングテーブルFMT、物理的ページナンバのリスト、及びリバースマッピングテーブルRMTの多様な状態を示す図面である。It is a drawing which shows the various states of a forward mapping table FMT, a list of physical page numbers, and a reverse mapping table RMT. フォワードマッピングテーブルFMT、物理的ページナンバのリスト、及びリバースマッピングテーブルRMTの多様な状態を示す図面である。It is a drawing which shows the various states of a forward mapping table FMT, a list of physical page numbers, and a reverse mapping table RMT. フォワードマッピングテーブルFMT、物理的ページナンバのリスト、及びリバースマッピングテーブルRMTの多様な状態を示す図面である。It is a drawing which shows the various states of a forward mapping table FMT, a list of physical page numbers, and a reverse mapping table RMT. フォワードマッピングテーブルFMT、物理的ページナンバのリスト、及びリバースマッピングテーブルRMTの多様な状態を示す図面である。It is a drawing which shows the various states of a forward mapping table FMT, a list of physical page numbers, and a reverse mapping table RMT. 使用されないページに対する例示的なSWATコマンドを示す。Here is an exemplary SWAT command for unused pages. マッピングがない基本論理的ページナンバに対する例示的なSWATコマンドを示す。An exemplary SWAT command is shown for a basic logical page number with no mapping. 反復的なSWATコマンドの例を示す。An example of an iterative SWAT command is shown.

添付された図面に図解した本発明の実施例を詳細に説明する。類似な構成要素は類似な参照番号を称する。以下に、本発明の技術的な思想を説明するために図面を参照して実施形態を説明する。 Examples of the present invention illustrated in the accompanying drawings will be described in detail. Similar components refer to similar reference numbers. Hereinafter, embodiments will be described with reference to the drawings in order to explain the technical idea of the present invention.

本発明の長所、及び特徴、及びこれを達成するための方法は以下の実施形態の詳細な説明及び添付された図面を参照することで、容易に理解できよう。しかし、本発明の技術的な思想は多様な他の形態に具現でき、本明細書に開示された実施形態に限定されない。本実施形態は、むしろ、本発明の開示が完璧になされ、当業者に本発明の技術的な思想が完全に伝達されるように提供される。本発明の技術的な思想は添付された特許請求範囲によって定義される。 The advantages and features of the present invention, and methods for achieving this, can be easily understood by referring to the detailed description of the following embodiments and the accompanying drawings. However, the technical ideas of the present invention can be embodied in a variety of other embodiments and are not limited to the embodiments disclosed herein. Rather, the present embodiment is provided so that the disclosure of the present invention is perfected and the technical ideas of the present invention are fully communicated to those skilled in the art. The technical idea of the present invention is defined by the appended claims.

図面で階層(layers)及び領域(regions)の厚さは明確性のために誇張される場合がある。 Layers and regions thickness in drawings may be exaggerated for clarity.

本文(特に以下の特許請求範囲)における単数用語及び類似な用語の使用は、本文中において異なって言及されるか、或いは明確に文脈と矛盾しない限り、単数及び複数を全て含むと理解される。異なって言及されない限り、“含む”(comprising、having、including、及びcontaining)の用語は開放形の意味として理解される。 The use of singular and similar terms in the text (particularly in the claims below) is understood to include all singular and plural unless referred to differently in the text or explicitly inconsistent with the context. Unless otherwise mentioned, the term "comprising, having, incorporating, and contouring" is understood as an open meaning.

本文で使用される構成要素(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)等のような要素を含むことができる。要素又はモジュールのために提供される機能は幾つかの要素又はモジュールに組合わされる。
The term "component" or "module" used in the text refers to hardware such as FPGA (field program software gate array) or ASIC (application specific integrated circuit) that performs a specific operation. It means a wear element or a software element. However, it is not limited to this.
Elements or modules are configured to be advantageously located within addressable storage media and can be configured to run on one or more processors. That is, for example, an element or module is a software element, an object-oriented software component, a class component, and a task component, a process, a function, and the like. Attributes, procedures, subroutines, program code segments (segments of program code), drivers (drivers), firmware (fireware), microcode (microcode), circuits (data, data). ), A database (databases), a data structure (data structures), a table (tables), an array (arrays), and the like. The functionality provided for an element or module is combined with several elements or modules.

異なって定義されない限り、本文で使用される全ての技術的、科学的用語は本発明が属する技術分野において通常の技術者によって共通的に理解される同一な意味を有する。本文で提供される例示的な用語又は全ての例示の使用は単なる本発明を説明するために使用され、本発明の特許請求の範囲が異なって限定されない。更に、特に異なって定義されない限り、一般的に使用される辞書で定義された全ての用語は異なって定義されない。
Unless defined differently, all technical and scientific terms used in this text have the same meaning commonly understood by ordinary engineers in the technical field to which the present invention belongs. The exemplary terms or all the use of the examples provided in the text are used solely to illustrate the invention, and the claims of the invention are not different and limited. Moreover, all terms defined in commonly used dictionaries are not defined differently unless they are defined differently.

図1は本発明の実施形態によるファイル管理システムを示すブロック図である。ファイル管理システム10は電子文書又はファイルを追跡し、格納するコンピュータ12を含む。一実施形態で、コンピュータ12はデスクトップコンピュータ、ラップトップ、又はワークステーションを含む。他の実施形態で、コンピュータ12はネットワーク(未図示)を通じてクライアントコンピュータと通信するサーバを含む。コンピュータ12は高速ストレージ18(例えば、ソリッドステートドライブ(SSD))のようなストレージディバイス、プロセッサ14、及びメモリ16を含む一般的なコンピュータを構成する要素を含む。 FIG. 1 is a block diagram showing a file management system according to an embodiment of the present invention. The file management system 10 includes a computer 12 that tracks and stores electronic documents or files. In one embodiment, the computer 12 includes a desktop computer, laptop, or workstation. In another embodiment, the computer 12 includes a server that communicates with a client computer over a network (not shown). The computer 12 includes elements that make up a typical computer, including a storage device such as a high speed storage 18 (eg, a solid state drive (SSD)), a processor 14, and a memory 16.

プロセッサ14は1つ又はそれ以上のコアを有するシングルプロセッサ又はマルチプロセッサを含む。プロセッサ14はメモリ16からのプログラム命令語を実行する。ソフトウェアの例示的な形態はアプリケーション20、運営システム(OS)22、ファイルシステム24、及び高速ストレージ18のためにデバイスドライバ・アプリケーションプログラミングインタフェイス26(device driver API(application programming interface))を含む。 Processor 14 includes a single processor or multiprocessor having one or more cores. The processor 14 executes a program instruction word from the memory 16. An exemplary form of software includes a device driver application programming interface 26 (application programming interface) for application 20, operating system (OS) 22, file system 24, and high-speed storage 18.

本発明が属する技術分野で広く公知されているように、アプリケーション20はプロセッサ14によって実行されて、コンピュータ12の運転中にコンピュータ12に作業を遂行させるコンピュータソフトウェアを代表する。例えば、アプリケーション20はWebブラウザ、ワードプロセッサ、及びデータベースプログラムを含む。一般的に、アプリケーション20はファイル28を生成し、変更、又は更新する。運営システム22はコンピュータ12の動作を制御し、管理するシステムソフトウェアである。運営システム22はマイクロソフトウインドゥズ(Windows)、Mac OS X、及びLinux(登録商標)を含む。 As is widely known in the art to which the present invention belongs, application 20 represents computer software that is executed by processor 14 to cause computer 12 to perform work while the computer 12 is in operation. For example, application 20 includes a web browser, a word processor, and a database program. Generally, application 20 generates, modifies, or updates file 28. The operating system 22 is system software that controls and manages the operation of the computer 12. The operating system 22 includes Microsoft Windows, Mac OS X, and Linux®.

ファイルシステム24はファイル28のような情報を高速ストレージ18のようなデータ格納装置にどのようにして格納し、検索し、更新するかを制御するソフトウェアである。一部のアプリケーション/ファイル形態は、ファイル28にページのようなデータが高速ストレージ18又は他のコンピュータストレージの装置の何処に格納されるかを特定するために論理的ページナンバリング(logical page numbering)を使用する。
更に詳細には、論理的ページナンバリング(logical page numbering)とは、論理的ページナンバ(LPN)30を高速ストレージ18上の特定格納位置にマッピングしてファイル28内のページに割当てる概念である。
The file system 24 is software that controls how information such as the file 28 is stored, retrieved, and updated in a data storage device such as the high-speed storage 18. Some application / file formats provide logical page numbering to identify where page-like data is stored in file 28 in high-speed storage 18 or other computer storage devices. use.
More specifically, logical page numbering is a concept in which a logical page number (LPN) 30 is mapped to a specific storage position on a high-speed storage 18 and assigned to a page in a file 28.

デバイスドライバ・アプリケーションプログラミングインタフェイスAPI(application programming interface)26は、ここでは、アプリケーション20、運営システム22、及びファイルシステム24が高速ストレージ18と通信できるようにする。デバイスドライバAPI(26)は高速ストレージ18からデータを受信するか、或いは格納するためのコマンドを提供する。 The device driver application programming interface API (application programming interface) 26, here, allows the application 20, the operating system 22, and the file system 24 to communicate with the high-speed storage 18. The device driver API (26) provides a command for receiving or storing data from the high speed storage 18.

一実施形態で、高速ストレージ18は高速ストレージ18に格納されたページのアドレスを提供するために物理的ページナンバリング(physical page numbering)を使用する。アドレスのこのような形態は特定の格納位置にマッピングできる物理的ページナンバ(PPN)32と称される。一実施形態で、高速ストレージ18はSSD(solid−state drive、又は、solid−state disk)を含む。SSDはメモリとして集積回路を使用してデータを持続的に格納するファイル28などのデータ格納装置である。一実施形態で、SSDはNANDフラッシュメモリ又はランダムアクセスメモリRAMを使用する。 In one embodiment, the high speed storage 18 uses physical page numbering to provide the address of the page stored in the high speed storage 18. Such a form of address is referred to as a physical page number (PPN) 32 that can be mapped to a particular storage location. In one embodiment, the high speed storage 18 includes an SSD (solid-state drive, or solid-state disk). The SSD is a data storage device such as a file 28 that continuously stores data by using an integrated circuit as a memory. In one embodiment, the SSD uses NAND flash memory or random access memory RAM.

一実施形態で、高速ストレージ18はコンピュータ12に論理セクタインタフェイスを提供しながら、高速ストレージ18を管理するファイル変換階層FTL(file translation layer)34、又は同等の構成を更に含む。このように、FTL(34)はファイルシステム24によって維持される論理的ページナンバ(LPN)30及び高速ストレージ18によって維持される物理的ページナンバ(PPN)32のマッピング関係を制御する。他の実施形態で、例示的な実施形態はSSDと他の形態のストレージ装置を使用する。 In one embodiment, the high-speed storage 18 further includes a file conversion layer FTL (file translation layer) 34, or an equivalent configuration, that manages the high-speed storage 18 while providing a logical sector interface to the computer 12. In this way, the FTL (34) controls the mapping relationship between the logical page number (LPN) 30 maintained by the file system 24 and the physical page number (PPN) 32 maintained by the high speed storage 18. In other embodiments, exemplary embodiments use SSDs and other forms of storage devices.

図2は、ファイルを更新するための、従来一般的なファイル管理システムを示す図面である。図示された実施形態はアプリケーションが使用者のマルチページブログ(multipage blog)を示すファイル200を維持する場合を想定する。使用者がブログを更新するたびに、アプリケーションはファイル200をメモリに読出し、これによってコンテンツを変更する。更新が遂行される間に、システムは変更されたファイルがコピーされた新しいファイル204を生成する。このように使用者がブログを更新している間に、他の使用者は相変わらず古いファイル202(old file)にアクセスし、読出しができる。使用者がブログ作成を終了し、ページを提出する時点で、アプリケーションは新しいファイル204にスイッチし、古いファイル202を削除する。 FIG. 2 is a drawing showing a conventional general file management system for updating a file. The illustrated embodiment assumes that the application maintains a file 200 indicating a user's multi-page blog. Each time the user updates the blog, the application reads the file 200 into memory, thereby modifying the content. While the update is being performed, the system will generate a new file 204 with the modified files copied. While the user is updating the blog in this way, other users can still access and read the old file 202 (old file). When the user finishes blogging and submits the page, the application switches to the new file 204 and deletes the old file 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の各々にマッピングされる。 The storage system in which the files are actually stored maintains a physical page number (PPN) 208, while the file system maintains a logical page number (LPN) 206 for pages in the old file 202 and the new file 204. In such an embodiment, the storage device maps the fourth and fifth logical page numbers LPN4 and LPN5 to each of the 0th and 1st physical page numbers PPN0 and PPN1, while the file system is the old file 202. Page is mapped to the 4th and 5th logical page numbers LPN4 and LPN5. Similarly, the pages of the new file 204 are mapped to the 24th and 25th logical page numbers LPN24 and LPN25, and the 24th and 25th logical page numbers LPN24 and LPN25 are the 11th and 12th physical page numbers. It is mapped to each of PPN11 and PPN12.

このような従来のシステムの問題点は、古いファイル202を置換する新しいファイル204にアクセスするために、システムがある時点でシステム情報に関する更新を必要とすることである。通常、この更新は、システムのデータ構造に対して一連のカスケード型の更新を引き起こし、ストレージへの多くの書込みを発生させる。 The problem with such traditional systems is that at some point the system needs to be updated with system information in order to access the new file 204, which replaces the old file 202. This update typically causes a series of cascaded updates to the system's data structures, causing many writes to storage.

システム情報は各ファイル/文書に対するメタデータを含む。例えば、メタデータは文書が格納された日付、ファイルを格納した使用者の識別子を含む。メタデータは一般的にデータ構造に格納される。このようなデータ構造の一実施形態はB−ツリーであって、格納されたデータを分類(sort)して維持し、データ件数に対して対数的にしか増加しない時間内に検索、縦続的アクセス、挿入、及び削除を可能にするツリーデータ構造である。
各ファイル200のためにメタデータ又は論理的ページナンバ206のリストはB−ツリーのリーフノード(leaf node)によって維持される。一般的に、ファイル200当たりに1つのリーフノードが存在する。ファイル200の名前がB−ツリーのリーフレベル付近に格納された場合、そのノードからルートノードまでの経路上の全てのノードはノードの変化を反映するように更新する必要がある。従って、カスケード型の更新及びストレージへの書込みが発生する。
System information includes metadata for each file / document. For example, the metadata includes the date the document was stored and the identifier of the user who stored the file. Metadata is generally stored in data structures. One embodiment of such a data structure is a B-tree, which sorts and maintains stored data, searches within a time that increases only logarithmically with respect to the number of data items, and sequential access. A tree data structure that allows you to insert, insert, and delete.
A list of metadata or logical page numbers 206 for each file 200 is maintained by the leaf node of the B-tree. Generally, there is one leaf node per 200 files. If the name of the file 200 is stored near the leaf level of the B-tree, all nodes on the route from that node to the root node need to be updated to reflect the changes in the nodes. Therefore, cascade-type updates and writes to the storage occur.

例えば、上述されたように使用者がブログを更新する毎に、アプリケーションは該ブログを含むファイル情報の更新を必要とし、少なくとも1つのディスク書込みを誘発する。更に多くのユーザが存在する場合、更に多くのディスク書込みが誘発される。 For example, as described above, each time the user updates a blog, the application needs to update the file information containing the blog, inducing at least one disk write. If there are more users, more disk writes will be triggered.

例示的な実施形態は、システムデータ構造を更新することなく、新しい更新ファイルに対するアクセスを提供するための改良された方法及びシステムを指向し、これによりシステムにおける、カスケード型の更新及び過度なディスク書込みが除去されるか、或いは最小化される。 An exemplary embodiment directs an improved method and system for providing access to new update files without updating the system data structure, thereby cascading updates and excessive disk writes in the system. Is removed or minimized.

例示的な実施形態はこのような問題点を解決するために、新しいストレージ(例えば、SSD)コマンド及びアプリケーションプログラミングインタフェイス(API、Application Programming Interface)を提供する。即ち、ファイルの新しいバージョンに、システムデータ構造を更新することなくアクセスできる場合、最新のデータシステム情報を反映するためのストレージ書込みを、カスケード型の更新が除去されているので、顕著に削減、又は回避できる。
この単純化された実施形態はこれだけに留まらず、B−ツリー、文書ロギング、シャドーページング、ダブルバッファ書込み、及びその他の、多数のアプリケーションは、この例示的な実施形態に適用可能な特徴を有する。
An exemplary embodiment provides a new storage (eg, SSD) command and application programming interface (API, Application Programming Interface) to solve these problems. That is, if a new version of the file can be accessed without updating the system data structure, the storage writes to reflect the latest data system information can be significantly reduced or significantly reduced because the cascaded updates have been removed. It can be avoided.
This simplified embodiment is not limited to this, and B-trees, document logging, shadow paging, double buffer writing, and many other applications have features applicable to this exemplary embodiment.

本発明の例示的な実施形態は、ここでSWAT(SWap And Trim)コマンドと称するコマンド及び関連されたAPIを提案する。論理的ページナンバ(LPN)リストのペアが与えられた場合、SWATコマンドはアトミックに(atomically)リストの論理的ページナンバ(LPN)のマッピングを順にスワップ又は再マッピングし、使用されない論理的ページナンバ(unused LPN)は除去(trim)する。
更に、ガーベッジ・コレクションによって再クレームされる前まで、非同期的に除去(trim)されるべきページにアクセスする同時的プロセスを可能にする弱いマッピングコンセプト(weak mapping concept)が提供される。
An exemplary embodiment of the invention proposes a command and associated APIs here referred to as SWAT (SWap And Trim) commands. Given a pair of logical page numbers (LPN) lists, the SWAT command swaps or remaps the logical page number (LPN) mappings of the atomicly list in sequence, resulting in unused logical page numbers (LPN). Unused LPN) is removed (trim).
In addition, a weak mapping concept is provided that allows a concurrent process to access pages that should be trimmed asynchronously before being reclaimed by garbage collection.

図3は本発明の一実施形態によって、更新の間にファイルに対するアクセスを提供するための、ファイル管理システム10によって遂行されるプロセスを示す順序図である。図4は該プロセスを図式化した図面である。 FIG. 3 is a sequence diagram showing a process performed by the file management system 10 to provide access to a file during an update according to an embodiment of the invention. FIG. 4 is a schematic diagram of the process.

図1、図3、及び図4を参照すれば、ブロック300に示すステップにおいて、SWAT動作に先立つプロセスを示し、古いファイルの基本ページの変更(modifying base page(s))を含む更新を受信することに応答してプロセスが開始され、古いファイル(old file)へのアクセスが維持されている間に、目標ページの変更されたコンテンツがコピーされた新しいファイル(new file)を生成する。 With reference to FIGS. 1, 3 and 4, in the step shown in block 300, the process prior to the SWAT operation is shown and an update including a modification of the base page of the old file (modifying base page (s)) is received. In response, the process is started to generate a new file (new file) to which the modified content of the target page is copied while access to the old file (old file) is maintained.

即ち、図4に示すように、更新されつつあるファイル400に対応してファイルの古いバージョン(即ち、古いファイル(old file)402)へのアクセスが一時的に維持される一方で、変更された目標ページを含むファイルの新しいバージョン(即ち、新しいファイル(new file)404)が生成される。ファイル400はアプリケーション20の1つ又は運営システム22を通じて更新される。 That is, as shown in FIG. 4, access to an older version of the file (ie, the old file 402) was temporarily maintained in response to the updating file 400, while being modified. A new version of the file containing the target page (ie, a new file 404) is generated. The file 400 is updated through one of the applications 20 or the operating system 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からなる)を使用して表現される。
Immediately before SWAT operation, the file system 24 is old using a basic list of logical page numbers (LPNs) of old files (also called the first list of LPNs) 406 (eg, consisting of LPN4, LPN5). Represents the logical storage location of the page for file 402, while the fast storage 18 is a basic list of physical page numbers (PPNs) for old files (also referred to as the first list of PPNs) 408 (eg, from PPN0, PPN1). Use) to indicate the physical storage location of the page for the old file 402.
Similarly, the logical storage location of a page for a new file 404 uses the target list (also referred to as the second list of LPNs) 410 (eg, consisting of LPN24, LPN25) of the new file's logical page number (LPN). The physical storage location of the target page for the new file 404 in the high-speed storage 18 is the target list (also referred to as the second list of PPN) of the physical page number (PPN) of the new file 412 (eg, PPN11, Represented using (consisting of 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はファイル情報を更新する必要を無くする。
With reference to FIGS. 3 and 4 again, in the step shown in block 302, the first half process of SWAT operation is shown and the logical page number (LPN) of the old file corresponds to the delegated update to the new file 404. The mapping destination of the basic list 406 of) is from the basic list 408 of the physical page number (PPN) of the old file to the target list 412 of the physical page number (PPN) of the new file, as shown by the arrow 414 in FIG. Is swapped or remapped atomically (ie, for each page in the base list).
As shown in FIG. 4, the physical mapping destination of the basic list 406 (ie, LPN4, LPN5) of the logical page number (LPN) of the old file is the target of the physical page number (PPN) of the new file 404. It is remapped to Listing 412 (ie, PPN11, PPN12). More specifically, when the SWAT command is executed, LPN4 is mapped to PPN11 and LPN5 is mapped to PPN12. As a result, the SWAT API eliminates the need to update the file information.

更に、ブロック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”表示のように解放される。
Further, in the step shown in block 304, the second half of the SWAT operation is shown, mapping the old file's logical page number (LPN) base list 406 to the old file's physical page number (PPN) base list 408. Is asynchronously removed (trim) to release the page corresponding to the physical page number (PPN) in the basic list 408 of the physical page number (PPN) of the old file.
Specifically, as illustrated in FIG. 4, thus, from the basic list 406 of the logical page number (LPN) of the old file to the basic list 408 (PPN0, PPN1) of the physical page number (PPN) of the old file. After removing the mapping to), pages with physical page numbers (PPN0, PPN1) belonging to the basic list 408 of the physical page number (PPN) of the old file are "X" with reference number "416". Released as shown.

SWATコマンドが実行される時、新しいファイル404(実際には、これは最早、「新しいファイル」ではない)は古いファイルの物理的ページナンバ(PPN)の基本リスト408に属する物理的なページにマッピングされる。新しい物理的なページがガーベッジ・コレクションによって再活用される時までは、新しいファイル404は揮発性の読出し専用になり、使用者が新しい物理的ページ(即ち、古いファイル402の物理的ページのコンテンツを保持している)を読出すのを可能にする。 When the SWAT command is executed, the new file 404 (actually, this is no longer a "new file") maps to a physical page that belongs to the basic list 408 of the physical page number (PPN) of the old file. Will be done. Until the new physical page is reused by garbage collection, the new file 404 will be volatile read-only and the user will be able to view the contents of the new physical page (ie, the physical page content of the old file 402). Allows you to read (holding).

以下の説明及び図面はSWAT動作がSSDに適用される時、マッピングテーブルがどのようにして更新されるかを示す。本実施形態はフォワードマッピングテーブル(FMT、Forward Mapping Table)及びリバースマッピングテーブル(RMT、Reverse Mapping Table)の2つのマッピングテーブルを使用する。マッピング形態はS(強、Strong)又はW(弱、Weak)として表示される。フォワードマッピングテーブル及びリバースマッピングテーブルのアレイ表現は単に説明の便宜のためである。即ちこのような説明は、ターゲット性能乃至利用可能な資源等に基づき、アレイ、リスト、ツリー、ハッシュ・マップ等の異なるデータ構造によっても具現できる。 The following description and drawings show how the mapping table is updated when SWAT operation is applied to SSD. In this embodiment, two mapping tables, a forward mapping table (FMT, Forward Mapping Table) and a reverse mapping table (RMT, Reverse Mapping Table), are used. The mapping form is displayed as S (strong, Strong) or W (weak, Week). The array representations of the forward mapping table and the reverse mapping table are for convenience of explanation only. That is, such an explanation can also be realized by different data structures such as arrays, lists, trees, hash maps, etc., based on target performance, available resources, and the like.

SWATコマンドは、フォワードマッピングテーブルFMT及びリバースマッピングテーブルRMTの全ての論理的ページナンバ(LPN)の2つのリストのマッピングをアトミック方式にスワップし、目標に対するマッピングを弱(WEAK)にする。弱いマッピングは少なくともガーベッジ・コレクションが発生する時、除去(解除)される。例示的な実施形態が以下の図面で説明される。 The SWAT command swaps the mapping between the two lists of all logical page numbers (LPNs) in the forward mapping table FMT and the reverse mapping table RMT into an atomic method, making the mapping to the target weak (WEAK). Weak mappings are removed (unlocked) at least when garbage collection occurs. An exemplary embodiment is described in the drawings below.

図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)。弱いマッピングは直ちに除去されるか、或いはガーベッジ・コレクション時間中に除去される。
5 to 12 are drawings showing various states of the reverse mapping table RMT, the list of physical page numbers (PPN), and the forward mapping table FMT. As shown in FIG. 5, the FMT (500) has a logical page number LPN row in which the logical page number LPNs are aligned, a physical page number PPN row in which the physical page number PPNs are aligned, and the same column. Includes a row indicating the mapping type that contains the value corresponding to the strong (S) or weak (W) mapping between the logical page number LPN and the physical page number PPN. The embodiment of FIG. 5 assumes that the FMT (500) includes an entry indicating that LPN_A and PPN_X have a strong mapping. The present embodiment assumes a case where a SWAT command is issued to LPN_A and LPN_B, and then a SWAT command to LPN_B and LPN_C is issued.
Execution of the first SWAT command updates the forward mapping information from LPN_A to PPN_Y and updates the forward mapping information from LPN_B to PPN_X in FMT (500). Further, the execution of the first SWAT command updates the reverse mapping information from PPN_X to LPN_B and LPN_A in RMP (502). The resulting mapping between LPN_B and PPN_X is "strong" as indicated by the thick frame for LPN_B in RMT (502), and the resulting mapping between LPN_A and PPN_X is RMT. It is "weak" as indicated by the narrow frame for LPN_A in (502). Weak mappings are removed immediately or during garbage collection time.

以下の場合の中で1つは弱いマッピングを除去する。1)ガーベッジ・コレクション、2)書込みコマンド、3)トリムコマンド、又は、4)他のSWATコマンド。 One of the following cases removes the weak mapping. 1) Garbage collection, 2) Write command, 3) Trim command, or 4) Other SWAT command.

弱いマッピングを有する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のために新しいリバースマッピングを追加するように更新される。 Writing to an LPN with a weak mapping creates a strong mapping for a new PPN and removes the weak mapping. For example, as shown in FIG. 6, writing to LPN_A through the write command WRITE_A allocates a new PPN_Y and updates the forward mapping destination of LPN_A in FMT (500) to PPN_Y. In parallel with this, RMT (502) is updated to remove the weak mapping for LPN_A from the reverse map list of PPN_X and add a new reverse mapping for LPN_A to the reverse map list of PPN_Y.

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のリストから直ちに、又はガーベッジ・コレクション時間中に除去される。 Writing to an LPN with a strong mapping to a PPN will generate a strong mapping to the new PPN and remove all weak mappings to the old PPN. For example, as shown in FIG. 7, writing to LPN_B through the write command WRITE_B allocates a new PPN_Y and updates the forward mapping destination of LPN_B in FMT (500) to PPN_Y. This disables the weak mapping of LPN_A (make_stale), and this mapping is removed immediately or during garbage collection time. In parallel with this, RMT (502) has been updated to remove the entry for LPN_B from the reverse map list of PPN_X, adding a new entry for LPN_B to the reverse map list of PPN_Y and for LPN_A. Entry is removed from the list of PPN_X immediately or during garbage collection time.

弱いマッピングを有するLPNに対するTRIMは弱いマッピングを直ちに除去する。例えば、図8に示したように、TRIMコマンド、TRIM_Aを通じてLPN_Aに対するTRIMはPPN_XへのLPN_Aからのフォワードマッピングを除去する。これと並行して、RMT(502)はPPN_XのリバースマップリストからLPN_Aのためのエントリを除去するように更新される。 TRIM for LPNs with weak mappings immediately removes the weak mappings. For example, as shown in FIG. 8, TRIM for LPN_A removes the forward mapping from LPN_A to PPN_X through the TRIM command, TRIM_A. In parallel with this, RMT (502) is updated to remove the entry for LPN_A from the reverse map list of PPN_X.

PPNへの強いマッピングを有するLPNに対するTRIMはPPNへの全てのマッピングを除去する。例えば、図9に示したように、LPN_BへのTRIMはLPN_Bのフォワードマッピングを除去する。これはLPN_Aの弱いマッピングを無用化し、このようなマッピングは直ちに、又はガーベッジ・コレクション時間中に除去される。これと並行して、RMT(502)は、PPN_XのリバースマップリストからLPN_Bのためのエントリを除去するように更新され、LPN_AのためのエントリはPPN_Xのリバースマップリストから直ちに、又はガーベッジ・コレクション時間中に除去される。 TRIM for LPN with strong mapping to PPN removes all mapping to PPN. For example, as shown in FIG. 9, TRIM to LPN_B removes the forward mapping of LPN_B. This nullifies the weak mapping of LPN_A, and such mapping is removed immediately or during garbage collection time. In parallel, RMT (502) has been updated to remove the entry for LPN_B from the reverse map list of PPN_X, and the entry for LPN_A is immediately from the reverse map list of PPN_X or the garbage collection time. Removed inside.

弱いマッピングも有する物理的ページナンバ(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の全ての弱いマッピングは直ちに、又はガーベッジ・コレクション時間中に除去される。 SWAT for LPN as a base LPN (base LPN), which has a strong mapping to the physical page number (PPN) which also has a weak mapping, removes all weak mappings to the PPN. For example, as shown in FIG. 10, a SWAT with LPN_B as the base LPN and LPN_C as the target LPN weakens the forward mapping entry of LPN_C to PPN_X. Since PPN_X simply has a weak mapping, the weak mapping is eventually removed immediately or during the garbage collection time. Along with this, an entry for LPN_C is added to the reverse map list of PPN_X in RMT (502). All weak mappings of PPN_X contained in RMT (502) are removed immediately or during garbage collection time.

他の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のリバースマップリストに追加するように更新される。 A SWAT for an LPN having a weak mapping to a PPN with a strong mapping to another LPN as the base LPN removes the weak mapping of the LPN. Such weak mappings are considered as strong mappings because the weak mappings are not obsolete (not_stale). For example, as shown in FIG. 11, SWAT with LPN_A as the basic LPN and LPN_C as the target LPN removes the weak mapping of LPN_A from the FMT (500) and produces a strong mapping to PPN_Z. This weakens the mapping of LPN_C to PPN_X, and as a result, PPN_X has all strong and weak mappings. Along with this, RMT (502) is updated to add a weak mapping entry to the reverse map list of PPN_X for LPN_C and a strong mapping entry to the reverse map list of PPN_Z for LPN_A.

他の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のリバースマップリストに追加されるように更新される。 A SWAT relating to an LPN having a weak mapping to a PPN having a weak mapping to another LPN as a base LPN removes the weak mapping of the LPN. Such weak mappings are considered no-mapping because the weak mappings are stall. For example, as shown in FIG. 12, SWAT with LPN_A as the base LPN and LPN_B as the target LPN removes the weak mapping of LPN_A from FMT (500) and produces a strong mapping from LPN_A to PPN_Z. This allows all of LPN_A and LPN_B to share PPN_Z, and as a result, PPN_Z has all strong and weak mappings. Along with this, RMT (502) is updated so that strong mapping entries for LPN_A and weak mapping entries for LPN_B are added to the reverse map list of PPN_Z.

ガーベッジ・コレクション又はトリムコマンドが弱いマッピングを除去する場合、LPNは無効化(invalid)され、該論理的ページナンバ(LPN)のページに対する読出しは、例えば「0xFF」のような、予め決められた値を返還する。弱いマッピングを有する論理的ページに対する書込み動作は新しい物理的ページを割当て、強いPPNマッピングを生成する。ある論理的ページが現在使用されない場合、(即ち、物理的ページマッピングがない場合)目標ページはその現在のマッピングを維持するが、該マッピングは弱いマッピングになる。SWATコマンドは、強いマッピング、弱いマッピング、又は、マッピングがない、の3種の何れかを有する論理的ページに係わって動作する。基本LPNはこの3つの場合の中の何れかであるが、目標LPNは強いマッピングを有する。基本LPNが弱いマッピングを有する場合、マッピングを有しないと看做される。物理的ページは最大N個の弱いマッピング(デフォルトに、Nは1)を有する。以下で、更に詳細に説明される。 If the garbage collection or trim command removes a weak mapping, the LPN is disabled and the read to the page with that logical page number (LPN) is a predetermined value, for example "0xFF". To return. A write operation on a logical page with a weak mapping allocates a new physical page and produces a strong PPN mapping. If a logical page is not currently used (ie, there is no physical page mapping), the target page retains its current mapping, but the mapping becomes a weak mapping. The SWAT command works with logical pages that have one of three types: strong mapping, weak mapping, or no mapping. The basic LPN is one of these three cases, but the target LPN has a strong mapping. If the base LPN has a weak mapping, it is considered to have no mapping. The physical page has up to N weak mappings (by default, N is 1). It will be described in more detail below.

例えば、図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に破線矢印で示される)。 For example, in FIG. 4, the SWAT command operates on two LPN lists, namely a basic list of LPNs (eg, consisting of LPN4, LPN5) and a target list of LPNs (eg, consisting of LPN25, LPN25). In this embodiment, each list contains two pages. In such an embodiment, LPN4 and LPN5 are included in the basic list and have a strong mapping to each of PPN0 and PPN1 by nature (originally). LPN24 and LPN25 are included in the target list and originally have a strong mapping to each of PPN11 and PPN12. Executing a SWAT command on such two lists will generate one strong mapping between LPN4 and PPN11 and another strong mapping between LPN5 and PPN12 (shown by solid arrow 414 in FIG. 4). In addition, it produces one weak mapping between LPN24 and PPN0 and another weak mapping between LPN25 and PPN1 (indicated by dashed arrows in FIG. 4).

物理的ページが他のどのLPNへの強いマッピングも含まない場合、該物理的ページはガーベッジ・コレクションの対象となる資格がある。SWATコマンド動作が完了すると、目標リスト内のLPNに対する弱いマッピングが生成される。結果的に、ガーベッジ・コレクションは、例えば図4に示したLPN24及びLPN25に対する弱いマッピングを除去してPPN0及びPPN1に対応する物理的ページの全てを回収(reclaim)する。論理的ページ(例えば、LPN24及びLPN25に対応する)はガーベッジ・コレクションが発生される前に読み出され得る。論理的ページが書込まれた場合、弱いマッピングは除去され、新しい物理的なページへの強いマッピングが生成される。マッピングの変更はアトミックに遂行される。 If the physical page does not contain a strong mapping to any other LPN, then the physical page is eligible for garbage collection. Upon completion of the SWAT command operation, a weak mapping to the LPN in the target list is generated. As a result, garbage collection reclaims all of the physical pages corresponding to PPN0 and PPN1, eg, removing the weak mapping to LPN24 and LPN25 shown in FIG. Logical pages (eg, corresponding to LPN24 and LPN25) can be read before garbage collection occurs. When a logical page is written, the weak mapping is removed and a strong mapping to the new physical page is generated. Mapping changes are carried out atomically.

図13は使用されないページに対するSWATコマンドの例を示す。図13で、基本リスト中のLPN4及びLPN5は使用されない(unuesed又はempty)論理的ページであり、目標リスト中のLPN24及びLPN25はPPN11及びPPN12への強いマッピングを有する。上述された実施形態のように、このような2つのリストに対するSWATコマンドを完了すると、LPN4とLPN11との間の1つの強いマッピング、及びLPN5とPPN12との間の他の強いマッピングを生成する。LPN4及びLPN5が使用されないので、LPN24及びLPN25は各々の元のマッピングを維持するが、マッピング強度は強から弱に変わり、これはSWAT動作の結果であることを示す。 FIG. 13 shows an example of a SWAT command for unused pages. In FIG. 13, LPN4 and LPN5 in the basic list are unused or empty logical pages, and LPN24 and LPN25 in the goal list have strong mappings to PPN11 and PPN12. Completing the SWAT command for such two lists, as in the embodiment described above, produces one strong mapping between LPN4 and LPN11 and another strong mapping between LPN5 and PPN12. Since LPN4 and LPN5 are not used, LPN24 and LPN25 maintain their original mappings, but the mapping intensity changes from strong to weak, indicating that this is the result of SWAT operation.

マッピングがない基本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)に追加されるように更新される。 SWAT for LPN as a basic LPN without mapping creates a new valid weak mapping for that LPN. For example, as shown in FIG. 14, SWAT for LPN_A as the basic LPN and LPN_B as the target LPN produces a new weak mapping of LPN_A to PPN_X in FMT (500). This allows LPN_A and LPN_B to share PPN_X, and as a result, PPN_X has all of the strong and weak mappings. Along with this, the RMT (502) is updated so that a strong mapping entry for LPN_B and a weak mapping entry for LPN_A are added to the reverse map list RMT (502) of PPN_X.

或る物理的ページが強いLPNマッピングを有しない場合、該物理的ページはガーベッジ・コレクションの対象になる資格がある。従って例えば図13において、強いマッピングがPPN11及びPPN12に対して存在するので、共有された物理的なページPPN11及びPPN12はガーベッジ・コレクションで生き残る。結果的に、強いLPN4及びLPN5マッピングが除去されるか、或いはガーベッジ・コレクションがページを再活用しない限り、LPN24及びLPN25はPPN11及びPPN12にアクセスするため各々、使用可能になる。 If a physical page does not have a strong LPN mapping, then the physical page is eligible for garbage collection. Thus, for example, in FIG. 13, strong mappings are present for PPN11 and PPN12 so that the shared physical pages PPN11 and PPN12 survive in garbage collection. As a result, LPN24 and LPN25 are available to access PPN11 and PPN12, respectively, unless strong LPN4 and LPN5 mappings are removed or garbage collection reuses the page.

ガーベッジ・コレクションが共有された物理的ページPPN_X(又はPPN11及びPPN12)を再配置した場合、これによって強いマッピング及び弱いマッピングの全ては移動しなければならない。 If the garbage collection relocates the shared physical page PPN_X (or PPN11 and PPN12), then all strong and weak mappings must be moved.

図15は反複されるSWATコマンドの例を示す。反復されたSWAT動作が図示したように発生する場合、物理的ページ(例えば、PPN11)は、複数の相異なる弱いLPNマッピング(例えば、LPN4及びLPN24)を有する。デフォールトには、物理的ページは1つの強いマッピング(例えば、LPN4及びPPN11の間のマッピング)及び1つの選択的な弱いマッピングを有する。しかし、1つの物理的なページがサポート可能なLPNの個数の最大値は、予め決められたパラメータによって定義され、具現化依存(implementation−dependent)である(実際の具現化に使える資源により限定される)。 FIG. 15 shows an example of a SWAT command that is duplicated. When repeated SWAT operations occur as illustrated, the physical page (eg, PPN11) has a plurality of different and weak LPN mappings (eg, LPN4 and LPN24). By default, the physical page has one strong mapping (eg, a mapping between LPN4 and PPN11) and one selective weak mapping. However, the maximum number of LPNs that a physical page can support is defined by predetermined parameters and is implementation-dependent (limited by the resources available for actual implementation). ).

例示的な実施形態によれば、本発明に係るSWATコマンド及びAPIは、現存する従来技術に対して多様な長所を提供する。SWATコマンドはOSに対して何らの変更も要求せず、一部のファームウェアを僅かに変更するだけでSSD装置の全ての形態に適用可能である。SWATコマンドはアプリケーションからのディスク書込みの回数を減少させることでSSDの耐久性を顕著に向上させる。SWATコマンドは使用されない格納空間を予め積極的に回収することで、システムの性能を向上させる。更に、SWATコマンドはアプリケーション、特に、多重バージョンの同時制御に係るアプリケーションの性能上の顕著な便益を提供する。 According to exemplary embodiments, SWAT commands and APIs according to the present invention offer a variety of advantages over existing prior art. The SWAT command does not require any changes to the OS and can be applied to all forms of SSD devices with only minor changes to some firmware. The SWAT command significantly improves the durability of the SSD by reducing the number of disk writes from the application. The SWAT command improves the performance of the system by proactively reclaiming unused storage space in advance. In addition, SWAT commands provide significant performance benefits for applications, especially those for simultaneous control of multiple versions.

以下では、SWATコマンドの或る実施形態が更に詳細に説明される。ファイル(の更新)がアプリケーション20を通じて委託される時、運営システム22又はファイルシステム24の中の何れか1つは装置ドライバAPI(26)を呼出す。装置ドライバAPI(26)は高速ストレージ18に対してSWATコマンドを発行する。 In the following, certain embodiments of the SWAT command will be described in more detail. When the file (update) is entrusted through the application 20, any one of the operating system 22 or the file system 24 calls the device driver API (26). The device driver API (26) issues a SWAT command to the high-speed storage 18.

一実施形態で、コマンドは新しいファイルLPN410の目標リスト及び古いファイルLPN406の基本リストからなるLPNリストのペアを定義する。高速ストレージ18のフラッシュ変換階層34(FTL、Flash Translation Layer)は古いファイルLPN406の基本リスト及び新しいファイルLPN410の目標リストを受信し、予め決められた順序に従ってLPNのペアのLPNのマッピングをアトミックに再マッピングする。上述されたように、SWATコマンドはアトミックした動作を遂行する。 In one embodiment, the command defines a pair of LPN lists consisting of a target list for the new file LPN410 and a base list for the old file LPN406. The flash conversion layer 34 (FTL, Flash Transition Layer) of the high-speed storage 18 receives the basic list of the old file LPN406 and the target list of the new file LPN410, and atomically remaps the LPNs of the LPN pairs in a predetermined order. Map. As mentioned above, SWAT commands perform atomic actions.

SWATコマンドは、SATA、SAS、PCIe、eMMC、UFSなどの任意の型のストレージプロトコルにおいて、ベンダー固有コマンド(vendor specific command)により具現される。SWATコマンドの思想及び実施例は、特定の実施例に関して本発明を説明する下記のAPI擬似コード(pseudo−code)を参照すると更に良く理解されるであろう。
この擬似コードは、特定のコーディング言語を表現することも、まして、このコーディング言語をコンパイルすることも意図しておらず、単純に、システムの動作をより形式的な用語により表現することを意図している
これらは明確性のためにのみ提供され、本発明はこれに限定されない。本発明及び本発明の技術的な思想は方法、装置、本文に特定に記載されないコードの多様な形態のアプリケーションを含む。
SWAT commands are embodied by vendor-specific commands in any type of storage protocol such as SATA, SAS, PCIe, eMMC, UFS. The ideas and examples of SWAT commands will be better understood with reference to the following API pseudo-codes that illustrate the invention with respect to specific examples.
This pseudocode is not intended to represent a particular coding language, much less to compile this coding language, but simply to represent the behavior of the system in more formal terms. These are provided for clarity only and the present invention is not limited thereto. The present invention and the technical ideas of the present invention include applications of various forms of methods, devices, and codes not specifically described in the text.

Figure 0006788386
Figure 0006788386
Figure 0006788386
Figure 0006788386
Figure 0006788386
Figure 0006788386
Figure 0006788386
Figure 0006788386
Figure 0006788386
Figure 0006788386

本発明は、上述の実施形態によって説明されたが、本発明の技術的思想範囲内で実施形態は変形されよう。例えば、例示的な実施形態はハードウェア、ソフトウェア、プログラム命令語を含むコンピュータ読出し可能な媒体、又はそれらの組合わせを使用して具現される。本発明に従って書かれたソフトウェアはメモリ、ハードディスク、又はCD/DVD−ROMなどのコンピュータ読出し可能な媒体に格納され、プロセッサによって実行される。従って、多様な変形が添付された特許請求範囲の思想と範囲内で当業者によって具現されよう。 Although the present invention has been described by the above embodiments, the embodiments may be modified within the scope of the technical idea of the present invention. For example, exemplary embodiments are embodied using hardware, software, computer-readable media containing program instructions, or a combination thereof. Software written in accordance with the present invention is stored in memory, a hard disk, or a computer-readable medium such as a CD / DVD-ROM and executed by a processor. Therefore, it will be embodied by those skilled in the art within the ideas and scope of the claims with various modifications attached.

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)
10 System, File Management System 12 Computer 14 Processor 16 Memory 18 High Speed Storage, Solid State Drive (SSD)
20 Applications 22 Operating system (OS)
24 file system 26 device driver API
28, 200, 400 files 30, 206 logical page number (LPN)
32, 208 Physical page number (PPN)
34 Flash conversion hierarchy 202, 402 Old file 204, 404 New file 300 blocks (steps showing the process prior to SWAT operation)
302 blocks (steps showing the first half process of SWAT operation)
304 blocks (steps showing the second half process of SWAT operation)
406 Basic list of logical page numbers (LPN) for old files, logical page number (LPN) for old files
408 Basic list of old file physical page numbers (PPN), old file physical page number (LPN)
410 New file logical page number (LPN) goal list, new file logical page number (LPN)
412 New file physical page number (PPN) goal list, new file physical page number (LPN)
414 Arrow, solid arrow 416 “X” mark 500 Forward mapping table (FMT)
502 Reverse Mapping Table (RMT)

Claims (10)

少なくとも1つのプロセッサに連結されたストレージデバイスを含む文書管理システムで更新されたファイルへのアクセスを提供する方法であって、
フラッシュ変換階層(FTL:flash translation layer)マップは、ファイルシステムによって維持される論理的ページナンバー(LPN:logical page number)と前記ストレージデバイスによって維持される物理的ページナンバー(PPN:physical page number)との間のFTLによって維持され、
前記方法は、
第1ファイルへのアクセスが維持される間、前記第1ファイルの変更されたコンテンツ及び前記変更されたコンテンツがコピーされる第2ファイルの生成を含む更新(アップデート)を受信するアプリケーションに応答して送信される第1コマンドを、前記プロセッサから前記ストレージデバイスによって受信する段階であって、前記第1コマンドのパラメータは、前記第1ファイルに対応するLPNの第1リスト及び前記第2ファイルに対応するLPNの第2リストを含み、前記LPNの第1リストは、前記ストレージデバイスにおける前記第1ファイルの格納位置を示すPPNの第1リストにマッピングされ、前記LPNの第2リストは、前記ストレージデバイスにおける前記第2ファイルの格納位置を示すPPNの第2リストにマッピングされる前記受信する段階と、
前記LPNの第1リストが前記PPNの第2リストに順にマッピングされるように前記LPNの第1リストをアトミックに(atomically)再マッピングする段階であって、前記LPNの第1リストの各LPNに対し、前記LPNの第1リストのLPNと前記PPNの第2リストの対応するPPNとの間の前記FTLマップにマッピングが生成される前記再マッピングする段階と、
前記再マッピングする段階とは非同期的に(asynchronously)、前記PPNの第1リストへの前記LPNの第1リストのマッピングを除去(trimming)する段階であって、前記LPNの第1リストのすべてのLPNに対し、前記LPNの第1リストのLPNと前記PPNの第1リストの対応するPPNとの間の前記FTLマップでマッピングが解除(remove)される前記除去する段階と、
前記PPNの第2リストへの前記LPNの第2リストのマッピングをアンマッピング(unmapping)する段階であって、前記LPNの第2リストのすべてのLPNに対し、前記LPNの第2リストのLPNと前記PPNの第2リストの対応するPPNとの間のマッピングが、前記FTLマップで解除される前記アンマッピングする段階と、を含み、
ガベージコレクションによってページが回収(reclaim)されるまで、非同期的に除去(trim)される前記ページにアクセスする同時的プロセス(concurrent processes)を可能にする弱いマッピングを提供する段階と、
前記ガベージコレクション、書き込みコマンド、又はトリムコマンドにより、前記弱いマッピングを解除(removing)する段階と、をさらに含むことを特徴とする方法。
A method of providing access to updated files in a document management system that includes a storage device attached to at least one processor.
A flash translation layer (FTL) map includes a logical page number (LPN) maintained by the file system and a physical page number (PPN) maintained by the storage device. Maintained by FTL during
The method is
In response to an application receiving an update, including the generation of a modified content of the first file and a second file to which the modified content is copied, while access to the first file is maintained. At the stage of receiving the transmitted first command from the processor by the storage device, the parameters of the first command correspond to the first list of LPNs corresponding to the first file and the second file. A second list of LPNs is included, the first list of LPNs is mapped to the first list of PPNs indicating the storage location of the first file in the storage device, and the second list of LPNs is in the storage device. The receiving stage, which is mapped to the second list of PPNs indicating the storage location of the second file, and
At the stage of atomically remapping the first list of LPNs so that the first list of LPNs is sequentially mapped to the second list of PPNs, to each LPN in the first list of LPNs. On the other hand, the remapping step in which a mapping is generated in the FTL map between the LPN in the first list of the LPN and the corresponding PPN in the second list of the PPN.
The remapping step is asynchronously (asynchronously), the step of trimming the mapping of the first list of the LPN to the first list of the PPN, and all of the first list of the LPN. With respect to the LPN, the removal step in which the FTL map between the LPN in the first list of the LPN and the corresponding PPN in the first list of the PPN is removed.
At the stage of unmapping the mapping of the second list of LPNs to the second list of PPNs, for all LPNs in the second list of LPNs, the LPNs in the second list of LPNs mapping between the second list of corresponding PPN of the PPN is seen containing a the steps of the unmapping is released by the FTL map,
A step that provides a weak mapping that allows concurrent processes to access the page, which is asynchronously trimmed until the page is collected by garbage collection.
A method comprising further including a step of removing the weak mapping by the garbage collection, write command, or trim command .
前記第1コマンドは、SWAT(swap and trim)コマンドを含み、API(application programming interface)に発行されることを特徴とする請求項1に記載の方法。 The method according to claim 1, wherein the first command includes a SWAT (swap and trim) command and is issued to an API (application programming interface). 前記SWATコマンドは、アプリケーション又はオペレーティングシステムによる呼び出しに応答して、ストレージデバイスドライバAPIから前記ストレージデバイスに発行されることを特徴とする請求項2に記載の方法。 The method of claim 2, wherein the SWAT command is issued from the storage device driver API to the storage device in response to a call by the application or operating system. 前記LPNの第1リスト及び前記LPNの第2リストに含まれるLPNは、前記LPNの第1リスト及び前記LPNの第2リストによって決められた順序に沿ってアトミックに再マッピングされることを特徴とする請求項2に記載の方法。 The LPNs included in the first list of LPNs and the second list of LPNs are atomically remapped in the order determined by the first list of LPNs and the second list of LPNs. The method according to claim 2. システムであって、
フラッシュ変換階層(FTL:flash translation layer)マップは、ファイルシステムによって維持される論理的ページナンバー(LPN:logikal page number)とストレージデバイスによって維持される物理的ページナンバー(PPN:physical page number)との間のFTLによって維持され、
前記システムは、
プロセッサ及びメモリを含むコンピュータと、
前記プロセッサと前記メモリの外部に位置する前記ストレージデバイスと、を備え、
前記ストレージデバイスは、
第1ファイルへのアクセスが維持される間、前記第1ファイルの変更されたコンテンツ及び前記変更されたコンテンツがコピーされる第2ファイルの生成を含む更新(アップデート)を受信するアプリケーションに応答して送信される第1コマンドを、前記プロセッサから受信するように構成され、
前記第1コマンドのパラメータは、前記第1ファイルに対応するLPNの第1リスト及び前記第2ファイルに対応するLPNの第2リストを含み、
前記LPNの第1リストは、前記ストレージデバイスにおける前記第1ファイルの格納位置を示すPPNの第1リストにマッピングされ、前記LPNの第2リストは、前記ストレージデバイスにおける前記第2ファイルの格納位置を示すPPNの第2リストにマッピングされ、
前記ストレージデバイスは、
前記LPNの第1リストが前記PPNの第2リストに順にマッピングされるように前記LPNの第1リストをアトミックに(atomically)再マッピングするように構成され、
前記LPNの第1リストのLPNと前記PPNの第2リストの対応するPPNとの間の前記FTLマップに、前記LPNの第1リストの各LPNに対するマッピングが生成され、
前記ストレージデバイスは、
前記再マッピングの実行とは非同期的に(asynchronously)、前記PPNの第1リストへの前記LPNの第1リストのマッピングを除去(trimming)するように構成され、
前記LPNの第1リストのLPNと前記PPNの第1リストの対応するPPNとの間の前記FTLマップで、前記LPNの第1リストのすべてのLPNに対するマッピングが解除(remove)され、
前記ストレージデバイスは、
前記第2リストのPPNへの前記LPNの第2リストの前記マッピングをアンマッピング(unmapping)するように構成され、
前記LPNの第2リストのLPNと前記PPNの第2リストの対応するPPNとの間の前記FTLマップで、前記LPNの第2リストのすべてのLPNに対するマッピングが解除され、
ガベージコレクションによってページが回収(reclaim)されるまで、前記非同期的に除去(trim)される前記ページにアクセスする同時的プロセス(concurrent processes)を可能にする弱いマッピングが提供され、
前記弱いマッピングは、前記ガベージコレクション、書き込みコマンド、又はトリムコマンドによって解除(remove)されることを特徴とするシステム。
It's a system
A flash translation layer (FTL) map is a combination of a logical page number (LPN) maintained by a file system and a physical page number (PPN) maintained by a storage device. Maintained by FTL between
The system
A computer that includes a processor and memory,
The processor and the storage device located outside the memory are provided.
The storage device is
In response to an application receiving an update, including the generation of modified content in the first file and a second file in which the modified content is copied, while access to the first file is maintained. The first command to be transmitted is configured to be received from the processor.
The parameters of the first command include a first list of LPNs corresponding to the first file and a second list of LPNs corresponding to the second file.
The first list of LPNs is mapped to the first list of PPNs indicating the storage location of the first file in the storage device, and the second list of LPNs refers to the storage location of the second file in the storage device. Mapped to the second list of PPNs shown
The storage device is
The first list of LPNs is configured to atomically remap the first list of LPNs so that the first list of LPNs is sequentially mapped to the second list of PPNs.
A mapping for each LPN in the first list of the LPN is generated in the FTL map between the LPN in the first list of the LPN and the corresponding PPN in the second list of the PPN.
The storage device is
It is configured to remove (trimming) the mapping of the first list of LPNs to the first list of PPNs asynchronously with the execution of the remapping .
In the FTL map between the LPNs in the first list of the LPNs and the corresponding PPNs in the first list of the PPNs, the mapping of the LPNs to all LPNs in the first list is removed.
The storage device is
It is configured to unmapping the mapping of the second list of the LPN to the PPN of the second list.
In the FTL map between the LPNs in the second list of the LPNs and the corresponding PPNs in the second list of the PPNs, the mapping of the LPNs to all LPNs in the second list is unmapped .
Weak mappings are provided that allow concurrent processes to access the page, which is asynchronously removed, until the page is collected by garbage collection.
A system characterized in that the weak mapping is removed by the garbage collection, write command, or trim command .
前記第1コマンドは、SWAT(swap and trim)コマンドを含み、API(application programming interface)を介して発行されることを特徴とする請求項5に記載のシステム。 The system according to claim 5 , wherein the first command includes a SWAT (swap and trim) command and is issued via an API (application programming interface). 前記LPNの第1リスト及び前記LPNの第2リストに含まれるLPNは、前記LPNの第1リスト及び前記LPNの第2リストによって決められた順序に沿ってアトミックに再マッピングされることを特徴とする請求項6に記載のシステム。 The LPNs included in the first list of LPNs and the second list of LPNs are atomically remapped in the order determined by the first list of LPNs and the second list of LPNs. The system according to claim 6 . 前記SWATコマンドは、アプリケーション又はオペレーティングシステムによる呼び出しに応答して、ストレージデバイスドライバAPIから前記ストレージデバイスに発行されることを特徴とする請求項6に記載のシステム。 The system of claim 6 , wherein the SWAT command is issued from the storage device driver API to the storage device in response to a call by the application or operating system. 少なくとも1つのプロセッサに連結されたストレージデバイスを含む文書管理システムで更新されたファイルへのアクセスを提供するプログラムが記載されたコンピュータ読み取り可能な非一時的記録媒体であって
フラッシュ変換階層(FTL:flash translation layer)マップは、ファイルシステムによって維持される論理的ページナンバー(LPN:logikal page number)と前記ストレージデバイスによって維持される物理的ページナンバー(PPN:physical page number)との間のFTLによって維持され、
前記プログラムは
第1ファイルへのアクセスが維持される間、前記第1ファイルの変更されたコンテンツ及び前記変更されたコンテンツがコピーされる第2ファイルの生成を含む更新(アップデート)を受信するアプリケーションに応答して送信される第1コマンドを、前記プロセッサから前記ストレージデバイスによって受信する段階であって、前記第1コマンドのパラメータは、前記第1ファイルに対応するLPNの第1リスト及び前記第2ファイルに対応するLPNの第2リストを含み、前記LPNの第1リストは、前記ストレージデバイスにおける前記第1ファイルの格納位置を示すPPNの第1リストにマッピングされ、前記LPNの第2リストは、前記ストレージデバイスにおける前記第2ファイルの格納位置を示すPPNの第2リストにマッピングされる前記受信する段階と、
前記LPNの第1リストが前記PPNの第2リストに順にマッピングされるように前記LPNの第1リストをアトミックに(atomically)再マッピングする段階であって、前記LPNの第1リストの各LPNに対し、前記LPNの第1リストのLPNと前記PPNの第2リストの対応するPPNとの間の前記FTLマップにマッピングが生成される前記再マッピングする段階と、
前記再マッピングする段階とは非同期的に(asynchronously)、前記PPNの第1リストへの前記LPNの第1リストのマッピングを除去(trimming)する段階であって、前記LPNの第1リストのすべてのLPNに対し、前記LPNの第1リストのLPNと前記PPNの第1リストの対応するPPNとの間の前記FTLマップでマッピングが解除(remove)される前記除去する段階と、
前記PPNの第2リストへの前記LPNの第2リストのマッピングをアンマッピング(unmapping)する段階であって、前記LPNの第2リストのすべてのLPNに対し、前記LPNの第2リストのLPNと前記PPNの第2リストの対応するPPNとの間のマッピングが、前記FTLマップで解除される前記アンマッピングする段階と、をコンピュータに実行させ、
前記プログラムは、ガベージコレクションによってページが回収(reclaim)されるまで、前記非同期的に除去(trim)される前記ページにアクセスする同時的プロセス(concurrent processes)を可能にする弱いマッピングを提供する段階と、
前記ガベージコレクション、書き込みコマンド、又はトリムコマンドにより、前記弱いマッピングを解除(removing)する段階と、をさらにコンピュータに実行させることを特徴とするコンピュータ読み取り可能な非一時的記録媒体
And at least one non-transitory recording medium having the program computer-readable been described which provide access to files that are updated by the document management system including a storage device coupled to the processor,
A flash translation layer (FTL) map includes a logical page number (LPN) maintained by a file system and a physical page number (PPN) maintained by the storage device. Maintained by FTL during
The program
In response to an application receiving an update, including the generation of a modified content of the first file and a second file to which the modified content is copied, while access to the first file is maintained. At the stage of receiving the transmitted first command from the processor by the storage device, the parameters of the first command correspond to the first list of LPNs corresponding to the first file and the second file. A second list of LPNs is included, the first list of LPNs is mapped to the first list of PPNs indicating the storage location of the first file in the storage device, and the second list of LPNs is in the storage device. The receiving stage, which is mapped to the second list of PPNs indicating the storage location of the second file, and
At the stage of atomically remapping the first list of LPNs so that the first list of LPNs is sequentially mapped to the second list of PPNs, to each LPN in the first list of LPNs. On the other hand, the remapping step in which a mapping is generated in the FTL map between the LPN in the first list of the LPN and the corresponding PPN in the second list of the PPN.
The remapping step is asynchronously (asynchronously), the step of trimming the mapping of the first list of the LPN to the first list of the PPN, and all of the first list of the LPN. With respect to the LPN, the removal step in which the FTL map between the LPN in the first list of the LPN and the corresponding PPN in the first list of the PPN is removed.
At the stage of unmapping the mapping of the second list of LPNs to the second list of PPNs, for all LPNs in the second list of LPNs, the LPNs in the second list of LPNs The computer is made to perform the unmapping step in which the mapping of the PPN with the corresponding PPN in the second list is released in the FTL map .
The program provides a weak mapping that allows concurrent processes to access the page that is asynchronously removed (trimed) until the page is collected by garbage collection. ,
A computer-readable non-temporary recording medium, characterized in that a computer is further subjected to the step of removing the weak mapping by the garbage collection, write command, or trim command .
少なくとも一つのプロセッサ含む外部コンピュータに連結されたストレージデバイスによって遂行される、更新されたファイルへのアクセスを提供する方法であって、
フラッシュ変換階層(FTL:flash translation layer)マップは、ファイルシステムによって維持される論理的ページナンバー(LPN:logical page number)と前記ストレージデバイスによって維持される物理的ページナンバー(PPN:physical page number)との間のFTLによって維持され、
前記方法は、
第1ファイルへのアクセスが維持される間、前記第1ファイルの変更されたコンテンツ及び前記変更されたコンテンツがコピーされる第2ファイルの生成を含む更新(アップデート)を受信するアプリケーションに応答して送信される第1コマンドを、前記プロセッサから前記ストレージデバイスによって受信する段階であって、前記第1コマンドのパラメータは、前記第1ファイルに対応するLPNの第1リスト及び前記第2ファイルに対応するLPNの第2リストを含み、前記LPNの第1リストは、前記ストレージデバイスにおける前記第1ファイルの格納位置を示すPPNの第1リストにマッピングされ、前記LPNの第2リストは、前記ストレージデバイスにおける前記第2ファイルの格納位置を示すPPNの第2リストにマッピングされる前記受信する段階と、
前記LPNの第1リストが前記PPNの第2リストに順にマッピングされるように前記LPNの第1リストをアトミックに(atomically)再マッピングする段階であって、前記LPNの第1リストの各LPNに対し、前記LPNの第1リストのLPNと前記PPNの第2リストの対応するPPNとの間の前記FTLマップにマッピングが生成される前記再マッピングする段階と、
前記再マッピングする段階とは非同期的に(asynchronously)、前記PPNの第1リストへの前記LPNの第1リストのマッピングを除去(trimming)する段階であって、前記LPNの第1リストのすべてのLPNに対し、前記LPNの第1リストのLPNと前記PPNの第1リストの対応するPPNとの間の前記FTLマップでマッピングが解除(remove)される前記除去する段階と、
前記PPNの第2リストへの前記LPNの第2リストのマッピングをアンマッピング(unmapping)する段階であって、前記LPNの第2リストのすべてのLPNに対し、前記LPNの第2リストのLPNと前記PPNの第2リストの対応するPPNとの間のマッピングが、前記FTLマップで解除される前記アンマッピングする段階と、を含み、
ガベージコレクションによってページが回収(reclaim)されるまで、前記非同期的に除去(trim)される前記ページにアクセスする同時的プロセス(concurrent processes)を可能にする弱いマッピングを提供する段階と、
前記ガベージコレクション、書き込みコマンド、又はトリムコマンドにより、前記弱いマッピングを解除(removing)する段階と、をさらに含むことを特徴とする方法。
A method of providing access to updated files performed by a storage device attached to an external computer, including at least one processor.
A flash translation layer (FTL) map includes a logical page number (LPN) maintained by the file system and a physical page number (PPN) maintained by the storage device. Maintained by FTL during
The method is
In response to an application receiving an update, including the generation of a modified content of the first file and a second file to which the modified content is copied, while access to the first file is maintained. At the stage of receiving the transmitted first command from the processor by the storage device, the parameters of the first command correspond to the first list of LPNs corresponding to the first file and the second file. A second list of LPNs is included, the first list of LPNs is mapped to the first list of PPNs indicating the storage location of the first file in the storage device, and the second list of LPNs is in the storage device. The receiving stage, which is mapped to the second list of PPNs indicating the storage location of the second file, and
At the stage of atomically remapping the first list of LPNs so that the first list of LPNs is sequentially mapped to the second list of PPNs, to each LPN in the first list of LPNs. On the other hand, the remapping step in which a mapping is generated in the FTL map between the LPN in the first list of the LPN and the corresponding PPN in the second list of the PPN.
The remapping step is asynchronously (asynchronously), the step of trimming the mapping of the first list of the LPN to the first list of the PPN, and all of the first list of the LPN. With respect to the LPN, the removal step in which the FTL map between the LPN in the first list of the LPN and the corresponding PPN in the first list of the PPN is removed.
At the stage of unmapping the mapping of the second list of LPNs to the second list of PPNs, for all LPNs in the second list of LPNs, the LPNs in the second list of LPNs mapping between the second list of corresponding PPN of the PPN is seen containing a the steps of the unmapping is released by the FTL map,
A step that provides a weak mapping that allows a concurrent process to access the page that is asynchronously removed until the page is collected by garbage collection.
A method comprising further including a step of removing the weak mapping by the garbage collection, write command, or trim command .
JP2016114951A 2015-06-12 2016-06-09 File access provision methods, computers, and software products Active JP6788386B2 (en)

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 JP2017004524A (en) 2017-01-05
JP2017004524A5 JP2017004524A5 (en) 2019-07-11
JP6788386B2 true JP6788386B2 (en) 2020-11-25

Family

ID=57735029

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016114951A Active JP6788386B2 (en) 2015-06-12 2016-06-09 File access provision methods, computers, and software products

Country Status (3)

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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220009523A (en) 2020-07-15 2022-01-25 삼성전자주식회사 Storage controller, and operation mehtod of storage controller
CN113642839B (en) * 2021-07-05 2023-10-24 华录科技文化(大连)有限公司 Workflow self-adaptive renewable resource recycling system based on flow reconstruction

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004280752A (en) * 2003-03-19 2004-10-07 Sony Corp Date storage device, management information updating method for data storage device, and computer program
JP4242245B2 (en) * 2003-10-06 2009-03-25 株式会社ワークビット Flash ROM control device
KR101437397B1 (en) * 2007-10-31 2014-09-05 삼성전자주식회사 Data management method and mapping table update method in nonvolatile memory device
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
JP5581256B2 (en) * 2011-03-28 2014-08-27 株式会社東芝 Memory system, controller, and control method of memory system
US8868869B2 (en) * 2011-08-08 2014-10-21 International Business Machines Corporation Enhanced copy-on-write operation for solid state drives
US9122581B2 (en) * 2012-06-12 2015-09-01 International Business Machines Corporation Data versioning in solid state memory
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
TWI750116B (en) 2021-12-21
TW201710930A (en) 2017-03-16
JP2017004524A (en) 2017-01-05
KR102316198B1 (en) 2021-10-25
KR20160146506A (en) 2016-12-21

Similar Documents

Publication Publication Date Title
JP6629407B2 (en) Method and system for accessing updated files and software products
US10649910B2 (en) Persistent memory for key-value storage
US11301379B2 (en) Access request processing method and apparatus, and computer device
US11782632B2 (en) Selective erasure of data in a SSD
US9501421B1 (en) Memory sharing and page deduplication using indirect lines
US11048676B2 (en) Trees and graphs in flash memory
US10552377B2 (en) Data discard method for journaling file system and memory management apparatus thereof
US9684658B2 (en) SWAT command and API for atomic swap and trim of logical pages
CN109690522B (en) Data updating method and device based on B+ tree index and storage device
JP6788386B2 (en) File access provision methods, computers, and software products
KR101456104B1 (en) Method, system for dual buffering file management with non-volatile memory and mass storage device using the same
US20200272424A1 (en) Methods and apparatuses for cacheline conscious extendible hashing
KR20200102337A (en) Methods and apparatuses for cacheline conscious extendible hashing
CN116126243A (en) Storage medium information elimination method, system and tool
WO2020201672A1 (en) An apparatus, method and computer program for managing memory page updates within non-volatile memory
JP2015158797A (en) Storage device and data management method
JP2016177407A (en) Data management device, data management method and data management program

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