JP5591406B2 - Low latency content address storage device - Google Patents
Low latency content address storage device Download PDFInfo
- Publication number
- JP5591406B2 JP5591406B2 JP2013527055A JP2013527055A JP5591406B2 JP 5591406 B2 JP5591406 B2 JP 5591406B2 JP 2013527055 A JP2013527055 A JP 2013527055A JP 2013527055 A JP2013527055 A JP 2013527055A JP 5591406 B2 JP5591406 B2 JP 5591406B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage device
- address
- content address
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
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)
Description
本発明は、データを内容アドレス記憶装置に格納することに関し、特に、データを内容アドレス記憶装置に格納することに伴うレイテンシ(待ち時間)を短くするためにアプリケーションと内容アドレス記憶装置の間にストレージ層を配置することに関する。 The present invention relates to storing data in a content address storage device, and more particularly, storage between an application and the content address storage device to reduce latency associated with storing data in the content address storage device. Relates to arranging the layers.
内容アドレス記憶(CAS)装置は、データを書き込むこと関して、伝統的な記憶装置よりも複雑である。同期書き込み動作を確認する前に、CAS装置は、ブロックの内容に基づいてハッシュキーを計算し、(現在書き込まれている内容と)同一の内容を有するブロックがCAS装置に既に書き込まれたかを(例えば、ハッシュテーブル内の値を調べることによって)判定するチェックを行い、そのブロックが固有のものであると判定すると、そのブロックを書き込む。肯定応答では、ハッシュキーと等しいか、またはハッシュキーから導きだされる内容アドレスも返される。内容アドレスは、ブロックを検索するために、読出し動作中に使用される。 Content address storage (CAS) devices are more complex than traditional storage devices for writing data. Prior to confirming the synchronous write operation, the CAS device calculates a hash key based on the contents of the block and determines whether a block with the same content (as currently written content) has already been written to the CAS device ( For example, by performing a check to determine (by examining values in the hash table) and determining that the block is unique, the block is written. In a positive response, a content address equal to or derived from the hash key is also returned. The content address is used during a read operation to retrieve the block.
同一の内容を有するブロックが以前に格納されたかどうか判定するためのチェックだけでなく、ハッシュキーの計算が、データをCAS装置に書き込むことに伴うレイテンシの重大な要因となっている。 In addition to checking to determine if a block with the same content has been previously stored, the calculation of the hash key is a significant factor in latency associated with writing data to the CAS device.
本発明の原理にしたがって、データを記憶装置に格納するシステムが提供される。本システムは、内容アドレス記憶装置と持続型キャッシュを含む。持続型キャッシュは、持続型キャッシュに格納されるデータに対応する一時的アドレスを生成する一時的アドレス生成器と、データを持続型キャッシュに格納し、また持続型キャッシュ内のデータを、一時的アドレスを用いて検索するように構成された非内容アドレス記憶装置を含む。持続型キャッシュは非内容アドレス記憶装置内にあるデータに対応する一時的アドレスを、内容アドレス記憶装置内にあるデータに対応する内容アドレスにマッピングするように構成されたアドレス変換器をさらに有する。 In accordance with the principles of the present invention, a system for storing data in a storage device is provided. The system includes a content address storage device and a persistent cache. The persistent cache includes a temporary address generator that generates a temporary address corresponding to data stored in the persistent cache, stores the data in the persistent cache, and stores the data in the persistent cache as a temporary address. A non-content address storage device configured to search using. The persistent cache further includes an address translator configured to map a temporary address corresponding to the data in the non-content address storage device to a content address corresponding to the data in the content address storage device.
本発明の原理にしたがって、データを記憶装置に格納する方法は、書き込み要求に対応するデータが非内容アドレス記憶装置に格納されるべきか、または内容アドレス記憶装置に直接、書き込まれるべきかを判定することを含む。データが非内容アドレス記憶装置に格納されるべきと判定されると、非内容アドレス記憶装置に格納されるべきデータの一時的アドレスが生成され、データが非内容アドレス記憶装置に持続的に格納されたとの肯定応答が、データが内容アドレス記憶装置に書き込まれる前に送られてもよい。さらに、非内容アドレス記憶装置内にあるデータに対応する少なくとも1つの一時的アドレスが、該データが内容アドレス記憶装置に書き込まれた後に、データの内容アドレス記憶装置内の内容アドレスとマッピングされる。 In accordance with the principles of the present invention, a method for storing data in a storage device determines whether data corresponding to a write request should be stored in a non-content address storage device or written directly to a content address storage device. Including doing. When it is determined that the data is to be stored in the non-content address storage device, a temporary address of the data to be stored in the non-content address storage device is generated and the data is persistently stored in the non-content address storage device. A positive acknowledgment may be sent before the data is written to the content address store. In addition, at least one temporary address corresponding to data in the non-content address storage device is mapped to a content address in the content address storage device of the data after the data is written to the content address storage device.
これらおよび他の特徴ならびに利点は、添付の図面と関連して読まれるべき実施形態の下記の詳細な記述から明らかになろう。 These and other features and advantages will become apparent from the following detailed description of the embodiments to be read in conjunction with the accompanying drawings.
本開示は、好適な実施形態の以下の記述において図を参照して詳細な説明をもたらす。 The present disclosure provides a detailed description with reference to the figures in the following description of preferred embodiments.
内容アドレス記憶装置へのアクセスに伴うレイテンシを減らすことができる記憶システムを、本発明の原理にしたがって説明する。本システムは、ロー・レイテンシ・ブロック記憶装置(LLBS)からなる記憶層を、内容アドレス記憶装置(CABS)と、内容参照可能なAPIにしたがってI/O動作を出しているアプリケーションの間に配置している。CABSにブロックを直接書き込むだけでなく、先ず、ブロックはLLBSに書き込まれ、肯定応答し、続いてCABSに転送されてもよい。その後のある時点で、これらブロックはLLBSから除かれてもよい。その際、内容アドレス記憶装置を使用することの利点(例えば、冗長な重複データの削除)は維持されつつ、内容アドレス記憶装置への書き込みに伴う欠点(例えば、ハイ・レイテンシ)は除かれるか、軽減される。 A storage system capable of reducing the latency associated with accessing a content address storage device will be described in accordance with the principles of the present invention. In this system, a storage layer consisting of a low latency block storage device (LLBS) is placed between a content address storage device (CABS) and an application that issues I / O operations according to an API that can refer to the content. ing. In addition to writing the block directly to the CABS, the block may first be written to the LLBS, acknowledged, and subsequently transferred to the CABS. At some point thereafter, these blocks may be removed from the LLBS. In doing so, the advantages of using a content address storage device (eg, elimination of redundant duplicate data) are maintained, while the disadvantages associated with writing to the content address storage device (eg, high latency) are eliminated, It is reduced.
LLBSには、持続型記憶装置用のソリッド・ステート・ドライブ装置またはハード・ディスク・ドライブ装置が用いられてもよい。これらの装置は、I/O動作に伴うレイテンシを減らすように最適化されている。ここに記載した原理にしたがって、アプリケーションに、該アプリケーションが、ハッシュを計算すること、またはハッシュテーブル内の値を検索することに伴う遅れを経験しないように、LLBSは、データを一時的に格納し、肯定応答を返すことができる。LLBSは、そのLLBSに書き込まれた同じデータを含むCABSへの書き込みを開始することもできる。CABSへの書き込みは、ハッシュを計算することや、ハッシュテーブル内の値を検索することに伴う遅れのためにハイ・レイテンシに遭遇する。しかしながら、LLBSがデータを速やかに格納し、肯定応答を返すことができるので、レイテンシはアプリケーション(またはアプリケーションを利用するエンドユーザー)によって受けることはない。 The LLBS may be a solid state drive device or a hard disk drive device for persistent storage. These devices are optimized to reduce the latency associated with I / O operations. In accordance with the principles described herein, LLBS stores data temporarily in an application so that the application does not experience the delays associated with computing a hash or retrieving a value in a hash table. Can return a positive response. An LLBS can also initiate a write to a CABS that contains the same data written to that LLBS. Writing to CABS encounters high latency due to the delays associated with computing the hash and retrieving values in the hash table. However, latency is not incurred by the application (or the end user using the application) because the LLBS can store the data quickly and return an acknowledgment.
ここに記載された実施形態は、完全にハードウェア、または完全にソフトウェア、またはハードウェアの要素とソフトウェアの要素の両方を含むものであってよい。好適な実施形態では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコード等を含むが、これに限定されないソフトウェアで実施される。 Embodiments described herein may be entirely hardware, or entirely software, or include both hardware and software elements. In preferred embodiments, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
実施形態は、コンピュータで使用可能な、またはコンピュータ読出し可能な媒体からアクセス可能で、コンピュータまたは命令実行システムによって使用される、あるいはコンピュータまたは命令実行システムに関連して使用されるプログラムコードを有するコンピュータプログラム製品を含んでもよい。コンピュータで使用可能な、またはコンピュータ読出し可能な媒体は、命令実行システム、装置、または機器によって、またはこれらに関連して使用される、プログラムを格納し、通信し、伝播し、搬送する装置を含んでよい。該媒体は、磁気的、光学的、電子的、電磁的、赤外線の、または半導体のシステム(または装置またはシステム)あるいは伝播媒体であってよい。該媒体は、半導体またはソリッド・ステートのメモリ、磁気テープ、取り外し可能なコンピュータディスケット、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、剛な磁気ディスク、光ディスクなどの、コンピュータ読出し可能な記憶媒体を含んでよい。 Embodiments are computer programs having program code that can be used by a computer or an instruction execution system or that can be accessed from a computer or computer-readable medium. Products may be included. A computer usable or computer readable medium includes any device that stores, communicates, propagates, or carries a program used by or in connection with an instruction execution system, apparatus, or device. It's okay. The medium can be a magnetic, optical, electronic, electromagnetic, infrared, or semiconductor system (or apparatus or system) or a propagation medium. The medium may be computer readable, such as semiconductor or solid state memory, magnetic tape, removable computer diskette, random access memory (RAM), read only memory (ROM), rigid magnetic disk, optical disk, etc. A storage medium may be included.
プログラムコードを格納および/または実行するのに適したデータ処理システムは、メモリ要素に直接、またはシステムバスを介して間接的に接続された少なくとも1つのプロセッサを含んでよい。該メモリ要素は、プログラムコードの実際の実行中に使用されるローカルメモリ、大容量記憶装置、プログラムコードが、実行中に大容量記憶装置から検索される回数を減らすために少なくともいくらかのプログラムを一時的に記憶するキャッシュメモリを含み得る。入力/出力、すなわちI/O装置およびシステム(キーボード、ディスプレイ、ポインティングシステム等を含むが、これらに限定されない)がデータ処理システムに直接または介在するI/Oコントローラを介して接続されてもよい。 A data processing system suitable for storing and / or executing program code may include at least one processor coupled directly to the memory elements or indirectly through a system bus. The memory element temporarily stores at least some program to reduce the number of times local code, mass storage, program code is retrieved from the mass storage device during execution. A cache memory may be included. Input / output or I / O devices and systems (including but not limited to keyboards, displays, pointing systems, etc.) may be connected directly or via an I / O controller intervening in the data processing system.
データ処理システムが他のデータ処理システム、またはリモートプリンタ、または記憶装置、または記憶システムに、介在するプライベート・ネットワークまたは公衆ネットワークを介して接続されるようになるのを可能にするネットワーク・アダプタがデータ処理システムに接続されてもよい。モデム、ケーブル・モデム、イーサネット(登録商標)・カードはネットワーク・アダプタの現在、入手可能な数種類に過ぎない。 A network adapter that allows a data processing system to become connected to other data processing systems, or remote printers, or storage devices, or storage systems via an intervening private or public network It may be connected to a processing system. Modems, cable modems, and Ethernet cards are only a few types of network adapters currently available.
ここで、同じ番号が同じまたは類似の要素を表す図面のうち最初に図1を参照すると、ブロック/フロー図が、データを本発明の原理にしたがって内容アドレス記憶装置に格納するシステム100を例示的に示している。図1に示されているように、アプリケーション130がデータを記憶システム110に格納する。アプリケーション130は、記憶システム110を有するコンピュータ上でローカルに実行するものであっても、または記憶システム110を有するサーバまたは他のシステムに(例えば、ネットワークを介して)接続されたクライアント・マシン上で実行するものであってもよい。
Referring now first to FIG. 1 of the drawings in which like numerals represent the same or similar elements, a block / flow diagram illustrates an
記憶システム110はロー・レイテンシ・ブロック記憶装置(LLSB)150と、内容アドレスブロック記憶装置(CABS)160とを有する。CABS160は、任意の種類の内容アドレス記憶装置を表している。一方、LLBS150は、I/O動作に伴うレイテンシを軽減するように最適化されたソリッド・ステート・ドライブ(SSD)またはハード・ディスク・ドライブ(HDD)を含んでよい。しかしながら、LLBS160はこれらの種類の記憶装置に限定されるものではなく、一般に、入力/出力(I/O)動作に関してCABS160よりも短いレイテンシを有する非内容アドレス記憶媒体を使用してもよい。
The
アプリケーション130は、データをCABS160に直接、格納しないで、最初にデータをLLBS150に格納してもよい。LLBS150へのデータの格納に成功すると、肯定応答がアプリケーション130に返される。LLBS150はロー・レイテンシに備えたものであるので、肯定応答は比較的早く、または少なくとも、CABS160が肯定応答を返すことができる時間よりも早く返される。
The
理解されるように、内容アドレス記憶装置・アプリケーション・プログラミング・インタフェース(API)は、アプリケーション130とLLBS50の間、LLBS150とCABS160の間の通信を可能にする。
As will be appreciated, the content address storage application programming interface (API) allows communication between the
図2に移ると、データを内容アドレス記憶装置に格納するシステム200のより詳細な図が説明的に描かれている。アプリケーション130はLLBS150に書き込み要求を送信する。アプリケーション130から書き込み要求を受信すると、キャッシュ・マネージャー210は、記憶装置240を用いてデータを持続的に格納するキー‐値格納部230として構成された非内容アドレス記憶装置235に書き込み要求を送ることがある。書き込み要求によるデータを非内容アドレス記憶装置235に格納するために、キャッシュ・マネージャー210は一時的アドレス(「TA」)発生器250から一時的アドレスを取得する。このアドレスは、データを後で検索するためのキーとして使用される。
Turning to FIG. 2, a more detailed view of a
キー‐値格納部230は、データを記憶装置240に格納する仕組みの制御を担っている。キー‐値格納部230は、データとその一時的アドレスの両方を記憶装置240に格納する。データは、一時的アドレスを用いて後で検索すること、または読み出すことができる。記憶装置240は、ソリッド・ステート・ドライブ(SSD)、ハード・ディスク・ドライブ(HDD)、または、I/O動作を実行することに関してCABS160よりも短いレイテンシを有する他の装置のような、短レイテンシシステムであることが好ましい。
The key-
データをLLBS150に書き込むと、キャッシュ・マネージャー210は肯定応答を、データを検索するために使用することができる一時的アドレスと共にアプリケーション130に送信する。キャッシュ・マネージャー210は、記憶装置240に既に書き込まれたデータをCABS160にも書き込む。データを格納する際には、CABS160はデータの内容に基づいてハッシュ値を計算し、重複除外動作(例えば、ハッシュテーブル内の値を検索することを含む)を行う。2つの同一のブロックがLLBS150に書き込まれ、各々に個別の一時的アドレスが割り当てられていたとしても、これらブロックの両方は、LLBS150がデータをCABS160に転送したとき、最終的に同じ内容アドレスにマッピングされる。LLBS150は、書き込み動作が成功したことを以前に確認しているので、アプリケーション130は、データをCABS160に格納することに伴う、重複除外の利点を保持しつつ、これらのハッシング動作およびハッシュテーブル検索動作に伴うレイテンシを避けることができる。
Upon writing data to
データの格納に成功した後、CABS160は、データがCABS160内のどこに格納されたかを反映した内容アドレスを、LLBS150にあるキャッシュ・マネージャー210に返す。内容アドレスはアドレス変換器220に送信され、アドレス変換器220は(データのLLBS150内の場所を反映する)一時的アドレスを(データのCABS160内の場所を反映する)内容アドレスにマッピングし、このマッピングの情報を記憶装置240に格納する。ブロックが埋め込みアドレスを有する場合には、各埋め込みアドレスに対応付けられたデータが、親ブロックがCABS160に書き込まれる前に、まずCABS160に書き込まれ、対応する内容アドレスにマッピングされなければならない。これによって、一時的アドレスがCABS160に書き込まれるのが避けられる。
After the data is successfully stored, the
アドレスのマッピングが一旦記憶装置240に持続的に書き込まれると、LLBS150は、記憶装置240内の対応するデータを削除することができる。アプリケーション130が一時的アドレスを用いて後続の読出しリクエストを発行した場合、該一時的アドレスに対応付けられた内容アドレスをアドレス変換器220によってまず検索することができ、この情報はデータをCABS160から検索するのに使用することができる。
Once the address mapping is persistently written to the
上記で説明した方法でデータブロックをLLBS150から除くことができるが、一時的アドレスの内容アドレスへのマッピングを除くことはアプリケーション130の協働を必要とすることがある。アプリケーション130の協働は、アプリケーション130がその一時的アドレスを用いてブロックを要求する状況を避けるために必要であるが、該ブロックも、一時的アドレスから内容アドレスへのマッピングもLLBS150では利用できない。この状況を避ける1つの方法は、アプリケーション130にそのアドレス全てを周期的に廃棄させることである。これが一旦なされると、LLBS150はそのマッピングの全てを削除することができる。アプリケーション130がそのアドレスの全てを廃棄し、LLBS150がそのマッピングの全てを削除した後、アプリケーション130は、有向非巡回グラフの根を表すラベル付きブロックの読出しを、ここにその全体が参照によって取り込まれる米国特許出願2010/0070698号で説明された方法で発行することによってブロックをアクセスすることができる。
Although the data block can be removed from the
データは通常、CABS160に転送される前にLLBS150に格納されるが、データがCABS160に直接、格納されるのが好ましい特定の状況が存在することがある。例えば、アプリケーション130がLLBS150に書き込み要求を発行するが、LLBS150はデータを格納するために利用できる十分なスペースを持たない場合が考えられる。LLBS150が、データをCABS160に転送することによって、スペースを空けること待つよりも、入力するデータブロックを直接、CABS160に書き込むことが有利かもしれない。これは、データをCABS160に直接、格納することが好ましいかもしれないたった1つの例示的状況であること、そしてデータをCABS160に直接、書き込むことができるであろう様々な他の状況が存在するかもしれないことに留意すべきである。
Although data is typically stored in
データがCABS160に直接、格納されることがときおりあるので、LLBS150が一時的アドレスではなく、内容アドレスをアプリケーション130に返す状況が存在することがある。これは、アプリケーション130によってユーザに意識させないで処理することができる。しかしながら、LLBS150は、一時的アドレスと内容アドレスを区別できる必要がある。これは、アドレスが内容アドレスか、または一時的アドレスであるかを示すビットをアドレス内に確保することによって達成できる。
Since data is sometimes stored directly in the
ここで、図3を参照すると、ブロック/フロー図が、データを、本発明の原理にしたがって、内容アドレス記憶システムに格納する方法を示している。ブロック310において、アプリケーション130は、データを記憶システム110に格納するために書き込み要求を発行する。記憶システム110は、図1と図2に示すように、非内容アドレス記憶装置(例えば、LLBS150)とCABS160を含んでよい。
Referring now to FIG. 3, a block / flow diagram illustrates a method for storing data in a content address storage system in accordance with the principles of the present invention. In
ブロック320において、書き込み要求を受信すると、LLBS150は、データに一時的アドレスを割り当てる。その一時的アドレスは、データを非内容アドレス記憶装置235に格納し、かつ、非内容アドレス記憶装置235内のデータを検索するために使用される。CABS160によって後で割り当てられる内容アドレスとは異なり、データを格納するための一時的アドレスを決定することは、ハッシュを計算することを伴わない。一実施形態では、一時的アドレスは、図2における一時的アドレス生成器250によって生成され、データを格納するためにキー‐値格納部230によって使用されてよい。
At
次に、ブロック330において、書き込み要求の対象であるデータが、データブロックに割り当てられた一時的アドレスと共にLLBS150に格納される。この情報が格納される仕方は種々ある。例えば、一実施形態では、非内容アドレス記憶装置はキー-値格納部として構成され、ここでは、キーは一時的アドレスであり、値は書き込み要求のデータ内容である。さらに、図2は、一時的アドレスから内容アドレスへのマッピングと、一時的アドレスによって検索可能なデータの両方を格納する単一の記憶装置240を開示しているが、他の実施形態では、一時的アドレスと内容アドレスの間のマッピングと、一時的アドレスによって検索可能なデータは別々の記憶装置に格納してもよい。
Next, at
アプリケーション130からのデータがLLBS150に格納された後、LLBS150は、データの格納に成功したことを示す肯定応答をアプリケーション130に送信する(ブロック340)。LLBS150からアプリケーション130に送信された肯定応答は、アプリケーション130が後でデータを検索することを可能にする、そのデータに対応付けられた一時的アドレスも含んでいる。上記で説明したように、LLBS150内の記憶装置240は、CABS160と比較した場合、情報を格納することに関して、比較的短いレイテンシを有している。LLBS150は、データを記憶装置240に格納して、CABS160ができると考えられるよりも早く、肯定応答をアプリケーション130に返すことができるので、アプリケーション130が遭遇するレイテンシは短くなる。
After the data from
肯定応答をアプリケーション130に送ると、その後、ブロック350において、LLBS150はデータをCABS160に書き込む。LLBS150に格納されたデータが一旦、成功裏にCABS160にコピーされると、CABS160は内容アドレスをLLBS150に返す。CABS150に書き込まれるデータブロックの内容に基づく内容アドレスは、データがCABS160内のどこに書き込まれたかを示している。
Once the acknowledgment is sent to
上記で説明したように、データを内容アドレス記憶装置(例えば、CABS160)に格納することは、ハッシュを計算すること、および、重複除外動作を実行することのような、レイテンシが長い動作を伴う。しかしながら、データをCABS160に転送する前に、そのデータを最初にLLBS150に格納することによって、アプリケーション130は、これらの、レイテンシが長い動作が行われるのを待つ必要がない。それにもかかわらず、データは最終的にCABS150に転送されるので、プリケーション130は、CABS160によって行われる、重複除外動作の利益を享受することができる。したがって、本願による記憶システム110は、データをこのようなシステムに格納することの欠点を除去しつつ(または、少なくとも軽減しつつ)、アプリケーション130が内容アドレス記憶装置の利点を得ることを可能にする。
As described above, storing data in a content address storage device (eg, CABS 160) involves high latency operations such as calculating a hash and performing a deduplication operation. However, by first storing the data in the
データがCABS160に格納され、その内容アドレスがLLBS150に戻された後、内容アドレスは、一時的アドレスを内容アドレスにマッピングし、この情報を記憶装置240に格納するように構成されたアドレス変換器220に送信される(ブロック360)。マッピング情報を格納すると、(現在、LLBS150とCABS160の両方に格納されている)データは、ブロック370において、LLBS150から削除されてもよい。アプリケーション130がデータをいくらか後の時点で読み出すことを望んだ場合、読出しリクエストは該データの一時的アドレスを含んでもよい。以前にLLBS150に格納されたデータがLLBS150から削除されたにもかかわらず、一時的アドレスは、該データのCABS160内の対応する内容アドレスを特定するためにアドレス変換器220によって使用されてもよい。該データは次に、内容アドレスを用いてCABS160から読み出されてもよい。
After the data is stored in the
ブロック380において、LLBS150上でのアドレス・マッピング(すなわち、一時的アドレスと内容アドレスの間のマッピング)は周期的に削除される。これは利点であり、その理由は、LLBS150に格納されたマッピングのサイズが非常に大きくなることがあり、その結果、削除が行われなければ、データを格納するのに使用することができる記憶装置240内にスペースをとることになるからである。しかしながら、マッピング情報をLLBS150から削除することができる前に、アプリケーション130は、アプリケーション130によって格納されているアドレス(または少なくとも一時的アドレス)を廃棄しなければならない。このことは、データ自身も、データのマッピングもLLBS150に格納されていないときに、アプリケーション130が、LLBS150にあるデータのためのリクエストを(該データの一時的アドレスを用いて)発行しないことを保証する。
At
アプリケーション130がアドレスを廃棄するように命じられる仕方は様々である。例えば、一実施形態では、LLBS150は、格納されつつあるマッピング情報の量をモニターしてもよい。マッピング情報の大きさが一旦ある閾値を越えると、LLBS150は、アプリケーション130によって格納されつつあるアドレス情報が廃棄されるべきであることをアプリケーション130に告げる「アドレス廃棄信号」をアプリケーション130に送信してもよい。アプリケーション130がアドレスを廃棄した後、そのことを示す肯定応答がLLBS150に送られてもよい。アドレスがアプリケーション130によって廃棄されたことを確認すると、LLBS150は、記憶装置240に格納されているマッピンク情報を削除することができる。アドレスがアプリケーション130によって廃棄されるべきことを示す他の方法も考えられる。
There are various ways in which the
データを内容アドレス記憶装置に格納するシステムと方法の好適な実施形態(これらは、例示であることを意図し、限定することを意図したものではない)を説明したが、種々の修正や変形が、上記の教示に鑑みて当業者によってなされうることに留意すべきである。したがって、変更が、添付の特許請求の範囲によって略述された本発明の範囲内にある、開示された特定の実施形態においてなされてもよいことが理解されるべきである。特許法によって要求された詳細さをもって、本発明の態様をこのように記載したので、特許証によって請求され、保護が望まれるものは添付の特許請求の範囲に記載されている。 Although preferred embodiments of systems and methods for storing data in a content address storage device (these are intended to be illustrative and not limiting), various modifications and variations have been described. It should be noted that, in view of the above teachings, it can be made by those skilled in the art. Accordingly, it is to be understood that changes may be made in the particular embodiments disclosed which are within the scope of the invention as outlined by the appended claims. Having thus described aspects of the present invention with the details required by patent law, what is claimed and desired protected by Letters Patent is set forth in the appended claims.
Claims (14)
前記持続型キャッシュは、
前記持続型キャッシュに格納されるデータに対応付けられた一時的アドレスを生成するように構成された一時的アドレス発生器と、
前記一時的アドレスを用いて、データを前記持続型キャッシュに格納し、かつ、前記持続型キャッシュ内のデータを検索するように構成された非内容アドレス記憶装置と、
前記非内容アドレス記憶装置内のデータに対応付けられた一時的アドレスを、前記内容アドレス記憶装置内のデータに対応付けられた内容アドレスにマッピングするように構成されたアドレス変換器と、を有し、前記持続型キャッシュは、データが前記非内容アドレス記憶装置に格納された後に、アプリケーションへ前記データに対応付けられた一時的アドレスを送信するようさらに構成されている、記憶システム。 A content address storage device and a persistent cache;
The persistent cache is
A temporary address generator configured to generate a temporary address associated with data stored in the persistent cache;
A non-content address storage device configured to store data in the persistent cache using the temporary address and to retrieve data in the persistent cache;
An address translator configured to map a temporary address associated with data in the non-content address storage device to a content address associated with data in the content address storage device; The storage system is further configured to send a temporary address associated with the data to an application after the data is stored in the non-content address storage device .
書き込み要求に対応するデータを非内容アドレス記憶装置に格納するか、または内容アドレス記憶装置に直接書き込むかを判定し、
前記データを前記非内容アドレス記憶装置に格納すると判定された場合、
前記データが前記非内容アドレス記憶装置に格納される一時的アドレスを生成し、
データが、該データが前記内容アドレス記憶装置に書き込まれる前に、前記非内容アドレス記憶装置に持続的に格納されたことを確認し、
アプリケーションへ前記データに対応付けられた一時的アドレスを送信し、
前記データが前記内容アドレス記憶装置に書き込まれた後に、前記非内容アドレス記憶装置内の前記データに対応付けられた少なくとも1つの一時的アドレスを前記内容アドレス記憶装置内の前記データの内容アドレスにマッピングする、記憶システムにデータを格納する方法。 A method for storing data in a storage system comprising:
Determine whether data corresponding to a write request is stored in a non-content address storage device or written directly to a content address storage device;
If it is determined to store the data in the non-content address storage device,
Generating a temporary address where the data is stored in the non-content address storage device;
Verify that the data was stored persistently in the non-content address storage device before the data was written to the content address storage device;
Send the application a temporary address associated with the data,
After the data is written to the content address storage device, at least one temporary address associated with the data in the non-content address storage device is mapped to the content address of the data in the content address storage device A method of storing data in a storage system.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US37952410P | 2010-09-02 | 2010-09-02 | |
US61/379,524 | 2010-09-02 | ||
US12/905,223 US8375164B2 (en) | 2010-10-15 | 2010-10-15 | Content addressable storage with reduced latency |
US12/905,223 | 2010-10-15 | ||
PCT/US2010/058681 WO2012030358A1 (en) | 2010-09-02 | 2010-12-02 | Content addressable storage with reduced latency |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013541753A JP2013541753A (en) | 2013-11-14 |
JP5591406B2 true JP5591406B2 (en) | 2014-09-17 |
Family
ID=45773184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013527055A Active JP5591406B2 (en) | 2010-09-02 | 2010-12-02 | Low latency content address storage device |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP2470997A4 (en) |
JP (1) | JP5591406B2 (en) |
WO (1) | WO2012030358A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240054073A1 (en) * | 2022-08-11 | 2024-02-15 | Arm Limited | Circuitry and Method |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1128267A1 (en) * | 2000-02-25 | 2001-08-29 | Hewlett-Packard Company, A Delaware Corporation | Disk storage system having redundant solid state data storage devices |
JP2003263276A (en) * | 2002-03-08 | 2003-09-19 | Toshiba Corp | Disk system and disk access method |
CA2498154A1 (en) * | 2002-09-16 | 2004-03-25 | Tigi Corporation | Storage system architectures and multiple caching arrangements |
US7805710B2 (en) * | 2003-07-15 | 2010-09-28 | International Business Machines Corporation | Shared code caching for program code conversion |
US7290253B1 (en) * | 2003-09-30 | 2007-10-30 | Vmware, Inc. | Prediction mechanism for subroutine returns in binary translation sub-systems of computers |
US7263576B2 (en) * | 2003-12-09 | 2007-08-28 | Emc Corporation | Methods and apparatus for facilitating access to content in a data storage system |
US7240150B1 (en) * | 2004-04-30 | 2007-07-03 | Emc Corporation | Methods and apparatus for processing access requests in a content addressable computer system |
US7260681B2 (en) * | 2005-06-02 | 2007-08-21 | Seagate Technology Llc | Stripe buffer list |
US7761649B2 (en) * | 2005-06-02 | 2010-07-20 | Seagate Technology Llc | Storage system with synchronized processing elements |
US7747663B2 (en) * | 2008-03-05 | 2010-06-29 | Nec Laboratories America, Inc. | System and method for content addressable storage |
US8321850B2 (en) * | 2008-06-06 | 2012-11-27 | Vmware, Inc. | Sharing and persisting code caches |
US8335889B2 (en) * | 2008-09-11 | 2012-12-18 | Nec Laboratories America, Inc. | Content addressable storage systems and methods employing searchable blocks |
WO2010114006A1 (en) * | 2009-03-31 | 2010-10-07 | 日本電気株式会社 | Storage system and storage access method and program |
-
2010
- 2010-12-02 WO PCT/US2010/058681 patent/WO2012030358A1/en active Application Filing
- 2010-12-02 EP EP10856821.3A patent/EP2470997A4/en not_active Withdrawn
- 2010-12-02 JP JP2013527055A patent/JP5591406B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2012030358A1 (en) | 2012-03-08 |
EP2470997A4 (en) | 2013-05-01 |
EP2470997A1 (en) | 2012-07-04 |
JP2013541753A (en) | 2013-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9785545B2 (en) | Method and apparatus for providing dual memory access to non-volatile memory | |
EP2711841A1 (en) | Data processing method, device and system based on block storage | |
US10296240B2 (en) | Cache management | |
KR102401592B1 (en) | Dedupe dram cache | |
JP4398464B2 (en) | System, method, and program for managing point-in-time copy relationships between one target volume and one source volume | |
US9971520B2 (en) | Processing read and write requests | |
US8595454B1 (en) | System and method for caching mapping information for off-host backups | |
CN108228088B (en) | Method and apparatus for managing storage system | |
US8909886B1 (en) | System and method for improving cache performance upon detecting a migration event | |
WO2018028218A1 (en) | Data writing method and apparatus | |
WO2014153931A1 (en) | File storage method and device, access client and metadata server system | |
US9619336B2 (en) | Managing production data | |
US20210224002A1 (en) | Storage control apparatus and storage medium | |
US11068299B1 (en) | Managing file system metadata using persistent cache | |
JP5591406B2 (en) | Low latency content address storage device | |
US11068406B2 (en) | Maintaining a single copy of data within a read cache | |
WO2016032955A2 (en) | Nvram enabled storage systems | |
US8375164B2 (en) | Content addressable storage with reduced latency | |
CN113254363A (en) | Non-volatile memory controller with partial logical to physical address translation table | |
US8700861B1 (en) | Managing a dynamic list of entries for cache page cleaning | |
US11537597B1 (en) | Method and system for streaming data from portable storage devices | |
US11487664B1 (en) | Performing data reduction during host data ingest | |
US8966190B1 (en) | System and method for assigning control of a logical unit number | |
US8914584B1 (en) | System and method for improving cache performance upon detection of a LUN control event | |
US8914583B1 (en) | System and method for improving cache performance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130917 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140326 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140408 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20140519 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140521 |
|
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: 20140708 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140729 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5591406 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |