JP7437117B2 - ソリッドステートドライブ(ssd)及び分散データストレージシステム並びにその方法 - Google Patents
ソリッドステートドライブ(ssd)及び分散データストレージシステム並びにその方法 Download PDFInfo
- Publication number
- JP7437117B2 JP7437117B2 JP2019006124A JP2019006124A JP7437117B2 JP 7437117 B2 JP7437117 B2 JP 7437117B2 JP 2019006124 A JP2019006124 A JP 2019006124A JP 2019006124 A JP2019006124 A JP 2019006124A JP 7437117 B2 JP7437117 B2 JP 7437117B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- file
- node
- block
- ssd
- 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
- 238000013500 data storage Methods 0.000 title claims description 85
- 238000000034 method Methods 0.000 title claims description 61
- 239000007787 solid Substances 0.000 title claims description 11
- 238000013507 mapping Methods 0.000 claims description 53
- 238000012217 deletion Methods 0.000 claims description 11
- 230000037430 deletion Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 23
- 238000013403 standard screening design Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000003321 amplification Effects 0.000 description 4
- 238000003199 nucleic acid amplification method Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 101100045541 Homo sapiens TBCD gene Proteins 0.000 description 2
- 101150093640 SSD1 gene Proteins 0.000 description 2
- 101100111629 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR2 gene Proteins 0.000 description 2
- 102100030290 Tubulin-specific chaperone D Human genes 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 235000011835 quiches Nutrition 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Emergency Protection Circuit Devices (AREA)
Description
これは、基本ストレージデバイスが、基本的にデータストレージノードによって要求されるキー値インターフェースを支援しないためである。
結果的に、キー値インターフェースを提供するためにソフトウェアの追加レイヤー(layer)(一般的に、ファイルシステム)が要求される。
ファイルシステムの追加は、メモリー及びプロセッサオーバーヘッド(overhead)を発生させるという問題がある。
これにより、本発明によるデータストレージシステムはより速やかで、単純であり、拡張可能なデータストレージソリューションを提供しながら、エネルギー及びリソースを少なく消費できるという効果がある。
さらに、本発明によるデータストレージシステムは、ハッシュテーブル値に関連されたCPUオーバーヘッドを減少させることができる。
このような追加特徴及び開示を活用する代表的な例示は、独立的にそして結合して、添付した図面を参照してより詳細に説明される。
このような詳細な説明は、ただ本明細書に開示した例示を実行するための細部的な内容を当業者に開示するためのものであり、請求の範囲を制限するものではない。
従って、詳細な説明に開示した特徴の組み合わせは、広い意味で開示を実行するために必要でない可能性があり、ただ本明細書に開示した代表的な例示を特別に説明するために、代わりに開示するものである。
しかしながら、当業者に本発明の開示を実行するために、このような特定の細部事項が必要なものではないのは自明であろう。
このようなアルゴリズムの説明と表現は、他の分野の通常の技術者に研究の要旨を効果的に伝達するために、データプロセシング分野における通常の技術者により使用される。
ここでアルゴリズムは、一般的に所望の結果を導くステップの一貫性のある順序として理解される。
ステップは、物理量の物理的操作を必要とする。
一般的に、必ずしも必要なものではないが、このような物理量は格納され、伝達され、結合され、比較されるなどの操作を行うことができる、電気信号又は磁気信号(magnetic signals)の形態を有する。
これは、時々、このような信号をビット、値、要素、シンボル(symbol)、文字、用語、数字などとして称するための一般的な用法という理由で便利である。
以下の内容と明白に異なる内容が具体的に記述されなければ、明細書の全般にわたって「プロセシング(processing)」、「コンピューティング(computing)」、「計算すること(calculating)」、「判別すること(determining)」、「表示すること(displaying)」などのような用語を活用する部分は、コンピュータシステム又は類似の電子コンピューティングデバイスのプロセスと動作を示すものと理解される。
コンピュータシステム又は類似の電子コンピューティングデバイスは、コンピュータシステムのレジスター(register)とメモリーにおいて物理(電気)量として示されるデータをコンピュータシステムメモリー、レジスター又は他の情報記憶、伝送又はディスプレイデバイスで類似に物理量として示される他のデータに操作したり変形したりする。
なお、請求された発明の思想を制限しようとする目的だけでなく、最初開示の目的のために全ての値の範囲又は個体グループの表示は、可能な全ての中間値又は中間個体を示す。
なお、図面に示した構成の面積と模様は、本発明をどのように具現するかを理解するために役立てるようにデザインされ得るが、例示として示した面積と模様(形状)に限定されるのではない。
本発明のシステム及び方法は、データストレージデバイスにデータを直接格納することにより、ブロック識別子としてファイルネーム及び値としてファイルのデータコンテンツ(又は、データの部分)を利用するキー値ファイルシステムの必要性をなくす。
(KV)SSDは、キーとしてブロック識別子及び値としてデータを有し、キー値ストレージを支援する。
本発明のシステム及び方法は、キー/値のペアとして一つ以上の(KV)SSDに直接データを格納できる(KV)SSDを含む、効率的で単純化されたキー値データストレージシステムを提供できる。
結果的に、本発明のキー値データストレージシステムは、もっと速やかで、単純であり、拡張可能なデータストレージソリューションを提供しながらも、エネルギー及びリソースを少なく消費できる。
直接キー値データを格納できる一つ以上の(KV)SSDを用いることにより、本発明のキー値データストレージシステムは、データストレージノードのファイルシステムをなくすことができる。
データストレージノードは、内部データ構造及びデータストレージノードにより指定されたワークロード(workload)を収容するための(KV)SSDのリソースを最適化するために、(KV)SSDの動作についての情報を伝えられる。
なお、インメモリー(in-memory)マッピングテーブルは、データストレージノードと(KV)SSDとの間にキー値インターフェースを用いて、永久データを提供する(KV)SSDにオフロード(offload)することができる。
特に、大規模なデータブロックのために最適化されたファイルシステムは、本発明のキー値データストレージシステムにより利益を受けられる。
例えば、(KV)SSDのメタデータ(又はハッシュ(hash)テーブル)は、例えば、10~100MBの大規模なブロックサイズに分割される。
なお、本発明のキー値データストレージシステムは、ハッシュテーブル値をアップデートすることに関連したCPUオーバーヘッドを減少させることができる。
(KV)SSDがHDFSのような固定分散ストレージシステムとともに利用される場合、メタデータオーバーヘッドは減少させることができる。
これは、このような分散ファイルシステムにおいて、キーのコンテンツが変わらない可能性があるためである。
従って、キー/値のペアを格納する(KV)SSDは、(KV)SSDのフラッシュメディアにおいて値を古いものとして表示し、キーを新たな値として示す必要がない。
即ち、(KV)SSDは、重複記入を支援する必要がない。
従って、(KV)SSDは、動的にサイズの値を処理する必要はなく、値の位置の管理は単純に作られる。
例えば、全てのブロックが固定されたサイズの場合、(KV)SSDは、直接インデックシング(indexing)に基づいたデータ構造を利用できる。
分散ファイルシステムにおいてこのような単純化として、キー/値のタプル(tuple)のFTL管理を単純化することができる。
本発明のキー値データストレージシステムは、他の分散ファイルシステムにより要求されることができるメタデータを管理するのにメモリー制限をなくすことができる。
本発明のキー値データストレージシステムは、時間遅延を指向しない、高い処理量を達成できる。
HDFSがメモリー容量を超過できるデータセットとともに、非常に大きなブロックサイズを有するので、ページキャッシュ(page-cache)は、データ格納及び管理性能を大きく向上させることができない。
従って、(KV)SSDがページキャッシュ支援の欠陥があるとしても、(KV)SSDは、KV支援データノードの性能を悪化させない。
このような機能は、どのブロックをキャッシュするか否かを決定するための方策決定をする必要なく、メモリーに基づいたキッシュの長所を持続的に維持させることにより、KV支援データノードで具現され得る。
それぞれのデータブロックの遅延時間がそれほど重要ではなく、HDFSは、多数のデータブロックをリード(読み出し)/ライト(書き込み)することにより、高い水準の並列性を提供するので、コマンド(例えば、リードコマンド、ライトコマンド)をストライプ(stripe)し、(KV)SSDの多様なチャンネルに伝送する必要がない。
それぞれのデータブロックは、内在された並列性を活用して処理量を提供するために、(KV)SSDの一つのチャンネル又は一つのチップ/ダイ(chip/die)に直接ライトし、リードすることができる。
これは、(KV)SSDのFTL及びルックアップ(look-up)プロセスの複雑性を単純化させることができる。
並列性は、(KV)SSDの消去ブロックのコンテクスト(context)により複数のチャンネル又はチップ/ダイに適用され得る。
結果的に、本発明のキー値データストレージシステムは、(KV)SSDに提供された、固定されたブロックサイズに合わせられたデバイス消去ブロックで処理量を増加させることができる。
合わせられた消去ブロック及びデータサイズは、フラッシュチャンネル間の同期化をそれほど必要としないためである。
メタデータノードのメモリーは、(KV)SSDにメタデータマップ(map)をオフロードすることにより、これ以上、分散ストレージシステムにおけるボトルネック現状が発生しない。
クライアント(client)アプリケーション(application)101は、分散データストレージシステム100Aのデータノード121に格納するためのファイル105を有する。
ファイル105は、二つのデータブロック(即ち、Ω及びΣ)を含む。
データノード121にファイル105を記入した後、クライアントアプリケーション101は、ネーム(name)ノード(又はメタデータノード)111のブロックマップ115にファイル105と関連されたメタデータを格納する。
HDFSのコンテクストにおいて、ネームノード111は、マスター(master)として称され、データノード121は、スレーブ(slave)として称される。
マスターは、HDFSディレクトリー(directory)構造に全体HDFSのファイルのメタデータを格納できる。
以下に説明するいくつかの例示がHDFSを示しても、多くの量のデータについて最適化された他のファイルシステムが、本発明の範囲を逸脱せずに使用できる。
本発明の例示において、ブロック(Ω及びΣ)は、ブロック識別子(「11」及び「99」)をそれぞれ有する。
クライアントアプリケーション101が、ファイル105(又はデータブロック(Ω及びΣ))にアクセスしようとする場合、クライアント101は、ファイル105と関連したブロックを識別するためにネームノード111と通信し、ブロックマップ115に格納された結合情報に基づいてファイル105(又はデータブロック)をアクセスためにデータノード121(DN1)と通信する。
ファイルネームは、ファイル105のそれぞれのブロックに対応する固有ブロック識別子(「11」及び「99」)であり得るし、ファイルのコンテンツはブロックデータである。
ブロックがファイルとして格納される必要があるので、データノード121はソフトウェアの追加レイヤー(例えば、ローカルex4ファイルシステム)、追加メモリー(例えば、リナックスのデントリー(dentry)キャッシュ)、及びブロックのファイルシステムに対するキー値及びメタデータの管理を含む、ファイルシステムオーバーヘッドを変換するCPUプロセッシング(例えば、POSIX(Portable Operating System Interface)及びファイルシステムの特定のコマンドプロセシング)を必要とする。
HDFSブロックサイズは、内部SSDページ/ブロックマッピングと一致しない可能性がある。
これは、SSDの内部WAF及びオーバープロビジョンされた領域を増加させることができ、より頻繁なガベージコレクション及び総保有コスト(total cost of ownership:TCO)の増加を惹起させる。
クライアントアプリケーション101は、分散データストレージシステム100Bのデータノード221にファイル105を格納する。
例えば、分散データストレージシステム100Bは、HDFSである。
キー値SSD150を含むデータノード221は、データブロック(Ω及びΣ)を直接格納できる。
従来のSSD140を含むデータノード121と異なって、ファイル105のデータブロックがキー値のペアとして(KV)SSD150に直接格納されるので、データノード221は、ex4のようなローカルファイルシステムを要求しない。
従って、データノード221は、ローカルファイルシステムレイヤーを要求せずに、図1Aの従来のデータノード121のメモリー及びCPUオーバーヘッドを発生させない可能性がある。
このようなプロセスは、レジストレーション(registration)プロセス、又は設定(configuration)プロセスと称される。
レジストレーションプロセス中に、データノード221は、データブロックをキー値のペアで格納できる、一つ以上の(KV)SSDを含むのをクライアントアプリケーション101に知らせる。
レジストレーションプロセスが完了した以後、クライアントアプリケーション101は、データノード221に含まれた(KV)SSD150についての(KV)SSD特定のI/Oデバイスコマンド(例えば、/dev/(KV)SSD1、ここで(KV)SSD1はデータノード221のIDである)を提供できるのがわかる。
ファイルに対するデータブロックを生成し、記入するローカルファイルシステムに依存する代わりに、データノード221は、それぞれのデータブロックをキー値のペアで格納する「put」コマンドを提供する。
(KV)SSD150に格納されたキー値のペアをリードするのも同様である。
データノード221は、データブロックを検索するためにファイルシステムインターフェースを調べる代わりに、(KV)SSD150に「get」コマンドを直接提供して、キーと関連したデータブロックを検索する。
削除プロセスは、類似したプロセスに従うことができる。
レジストレーションプロセス中、(KV)SSD150は、分散データストレージシステム100Bの動作に関する情報を提供され得る。
(KV)SSD150のフラッシュ変換レイヤー(FTL)は、分散データストレージシステム100Bの動作に基づいて分散データストレージシステム100Bに対し、特別に最適化することができる。
分散データストレージシステム100B(例えば、HDFS)は、並列的に多くのI/O要請を伝送でき、処理量が高いと、長い遅延時間を耐えることができる。
このような並列性は、SSDコントローラーに複雑性を追加して遅延時間を減少させることができる。
本発明の一実施形態によると、(KV)SSD150のFTLは、分散データストレージシステム100Bの情報に基づいて、一つのチャンネルに対する大規模なブロックをリードしてライトするのに最適化することができる。
このような場合、(KV)SSD150のFTLは、複数のチャンネルの複数のチップを介してデータのストライピング(striping)ができないが、高い処理量を達成するために並列的にリード及びライト動作を同時に実行できる。
このような場合、データリード動作は、データライト動作に比してずっと頻繁に発生する。
このようないくつかの分散ファイルシステムは、ライトワンスセマンティック(write-once semantic)を提供し、大規模なブロックサイズを使用する。
それに反して、(KV)SSD150は、動的ブロックサイズ及びデータブロックに対する頻繁なアップデートを支援できる。
ガベージコレクションは、古いページを含むブロックから有効なページを移動させてブロックが削除され、リライト(rewrite)されるようにするプロセスである。
これは、ライト増幅、I/O不確実性(indeterminism)、及びドライブのウェアレベリング(wear leveling)に寄与できる高価なプロセスである。
最適化されると、(KV)SSD150のFTLは、ライト及び消去動作に対する同じ粒度(granularity)を利用できる。
ブロックが削除された場合、ブロックは、直ぐに消去されたと表示することができ、これにより、ガベージコレクションの必要性がなくなる。
(KV)SSD150の最適化されたFTLは、ガベージコレクションをなくし、FTLを単純化させながら性能と耐久性を向上させることができる。
例えば、(KV)SSD150は、HDFS設定に基づいて格納されたブロックのブロックサイズを調節できる。
例えば、設定中に、分散データストレージシステム100Bは、(KV)SSD150に単に固定されたサイズのライト動作が提供されることを(KV)SSD150に知らせることができ、(KV)SSD150は、ブロックサイズをそれに応じて設定する。
又は、(KV)SSD10は、消去ブロックサイズ(又は、可能な消去ブロックサイズ)を露出して、分散データストレージシステム100Bが、それに応じてブロックサイズを設定するように要求できる。
いずれの場合でも、(KV)SSD150及び分散データストレージシステム100Bのブロックサイズは、互いに関連、設定される。
例えば、分散データストレージシステム100Bは、追加パラメーター(本明細書においては、アップデートフラッグ(update flag)と称される)を(KV)SSD150に伝達できる。
アップデートフラッグを用いて、(KV)SSD150のSSDコントローラーは、クライアントアプリケーション101から受信したブロックアップデート要請と関連したガベージコレクションを扱う追加フラッシュブロック及びスレッド(thread)を提供するように自ら設定できる。
新たなキーを有して、それぞれの新たなライトが用いられる場合、(KV)SSD150は、ライト中のブロックがオーバーライト(overwrite)されるか否かを確認するために、チャンネル又はダイの間に同期化を遂行する必要がない。
このような場合、データノード221は、ブロックアップデートフラッグを「フォルス」で設定できる。
図1A及び図2Aを参照すると、分散データストレージシステム100Aは、ローカルファイルシステム(例えば、リナックスのext4)を「/mnt/fs」で設置してSSD140を設定する。
SSD140に格納されたファイルは、SSD140の設置されたファイルシステムによりアクセスされることができる。
図1B及び図2Bを参照すると、分散データストレージシステム100Bは、レジストレーションプロセス中に受信された(KV)SSD150の情報に基づいて(KV)SSD150を設定する。
例えば、分散データストレージシステム100Bは、(KV)SSD150のストレージタイプ(type)をキー値SSD((KV)SSD)に設定し、(KV)SSD150のI/O経路を「dev/(KV)SSD」に設定できる。(KV)SSD150は、ブロックアップデートフラッグをフォルス(false)に、ブロックサイズを64MBに、アライメント(alignment)フラッグを「トゥルー」(true)に設定するようにさらに構成することができる。
例えば、(KV)SSD150は、全ての可能なチャンネルのうち、I/Oがルーティング(routing)されるべきチャンネルを判別するために、簡単なハッシュ関数(例えば、アドレスモッド(address mod)10)を用いる。
チャンネルが直列処理装置(serial processing unit)により実行される場合、そのチャンネルにルーティングされる全てのI/O動作は、任意のチャンネル間のロックを要求せずに整列される。
結果的に、分散データストレージシステム100Bは、同期化無しにI/Oスレッドの全般にわたって完璧な並列性を達成できる。
図3は、本発明の一実施形態による、チャンネルレベル(channel-level)の並列性(parallelism)を達成する例示的なSSDチャンネル及びダイアーキテクチャを説明するための図である。
(KV)SSDは、I/O性能を向上させるために、チャンネルレベルの並列性を活用できる。
本発明の例示において、(KV)SSDは、Nチャンネル及びMウェイを有し、ここにおいてN及びMは1以上の整数である。
(KV)SSDのブロックサイズは、チップ(又はダイ)の消去ユニットのサイズと(KV)SSD内部のウェイの個数の積により決定される。
(即ち、ブロックサイズ=消去ユニットのサイズ×ウェイの個数)
データは、同じチャンネルのチップにわたってストライプされ得る。
例えば、(KV)SSDは、6MBの消去ユニットサイズ及び8ウェイを有し、分散ファイルシステムのデータサイズは、(KV)SSDのデータグループに適合するように48MBに設定される。
48MBデータの削除が、同じチャンネルで8個の完全な消去ブロックの再設定を惹起することにより、ガベージコレクションは、チャンネルレベルの並列性で発生しない。
しかし、チャンネルレベルの並列性は、複数のチャンネルが提供できる潜在的な並列性を活用しない。
(KV)SSDは、I/O性能を向上させるためにウェイレベルの並列性を活用できる。
この場合、分散ファイルシステム(例えば、HDFS)のデータサイズは、(KV)SSDのブロックサイズ又はブロックサイズの倍数と同一に設定される。
(KV)SSDのブロックサイズは、消去ユニットのサイズとチャンネルの個数の積により決定される。
(即ち、ブロックサイズ=消去ユニットのサイズ×チャンネルの個数)
ガベージコレクションユニット及びデータサイズは、ブロックサイズの積である。
データは、同じウェイのチップにわたってストライプされ得る。
データストライピングは、チャンネル並列性の完全な使用を可能なようにする全てのチャンネルで発生し得る。
本発明の例示において、SSDチャンネルの個数はNであり、ダイの個数はNより大きいMである。
ダイ/チップレベルの並列性は、(KV)SSDのチャンネル及びチップで最も高い並列性を提供する。
この場合、ブロックサイズは、消去ユニットと同一であり、ガベージコレクションは、消去ユニットから発生する。
データサイズは、消去ユニットの倍数に一致する。
ダイ/チップレベルの並列性は、仮想ノードを有する一貫されたハッシング(hashing)と類似する。
この場合、それぞれの仮想ノードは、消去ブロックユニットに対応し、物理的ノードはチャンネルに対応する。
例えば、それぞれのファイルは、ファイルを包含する全てのブロックのリストを維持する。
複製された分散ストレージシステムは、与えられたブロック(又は、ファイル)を格納する全てのノードの位置を羅列する別のマップを維持する。
いくつかの分散データストレージシステムにおいて、このようなマッピングテーブルは、分散データストレージシステムの拡張性を制限する単一のノードのメモリーに存在する。
例えば、このようなマッピングテーブルを格納するメタデータノードが、追加のマッピングデータを格納する十分なメモリーを有しない場合、ブロック又はファイルは追加されない可能性がある。
ファイルシステムは、このようなマッピングを格納するデータストレージデバイスの最上位で利用することができるが、追加のオーバーヘッドを発生させる。
結果的に、メタデータを格納するノードは、メモリー容量により制限されずに、追加のファイルシステムを有するオーバーヘッドを発生させない。
このようなマッピング情報は、(KV)SSDに直接格納されるので、ファイルによりインデックシングされるように、単一のマッピングテーブルに格納することができる。
これは、(KV)SSDの単一ルックアップ(lookup)が全てのデータブロックを検索できるようにする。
単一マッピングテーブルは、メタデータをさらに拡張性が有り(ただ一つのマッピングテーブルにより)、もっと効率的に(一つのルックアップにより)作る。
データ構造は、(KV)SSDに直接連結されるライブラリ(library)であり得る。
例えば、クライアントアプリケーションは、ファイルIDを用いてファイルをリードするためにファイルの検索動作を実行する。
メタデータノードは、ブロブ(blob)の形態でファイルのブロックリストを返信し、メタデータノードは、ブロックリストが元々記入された型式でマッピングされる。
メタデータノードは、ブロックについてのリードを実行するために、ブロックのリストと関連したノードをクライアントアプリケーションに伝達(送信)する。
このような方式において、それぞれのルックアップがクライアントアプリケーションにリストを伝達(送信)するために、メタデータノードは、相変わらずメモリーにマッピングテーブルを格納する必要がある。
しかしながら、メタデータノードは、メモリーに全てのマッピング情報を維持する必要がない。
例えば、最近、リードしたファイルのキャッシュは、拡張性及び効率性の間にトレードオフ(trade-off)を提供できる。
エディットログ(edit log)は、ファイル及びマッピングテーブルで実行された全てのメタデータ動作のログを示す。
このようなエディットログは、ディスク(disk)に保存される。
これはファイル及びブロックマッピングテーブルがメモリーのみにあるので、必要である。
ネームノードが衝突すると、ストレージからエディットログをリードすることにより、メモリーにファイル及びブロックマッピングテーブルを再構成する。
SSD140は、ファイルマッピングテーブル及びブロックマッピングテーブルをメモリーに格納する。
このようなマッピング情報を利用して、クライアントアプリケーションは、ファイルと関連されたデータブロックを検索できる。
一方、(KV)SSD150は、ブロックリストとノードリストの単一マッピングを含むファイルマッピングテーブルを格納する。
それぞれのダイヤグラムの説明において、従来のプロセスについての差異点及び利点を説明する。
分散ファイルシステムは、クライアント710、(KV)SSD(kv1)730を含むネームノード(又は、メタデータノード)720、及び(KV)SSD(kv2)750を含むデータノード740を含む。
新たなファイルを生成するために、クライアント710は、ネームノード720にファイルID(fileID)を含んだ要請761(createFile(fileID))を伝送(送信)する。
ネームノード720は、内部的にファイルIDを登録し、キー値格納コマンド762(kv.store(fleID,””))を伝送して、キー値のペア中に、値のないキーとして(KV)SSD730にファイルIDを格納する。
ネームノード720がクライアント710に応答した後、クライアント710は、ファイルに対するブロックを割り当てるためにコマンド765((allocateBlock(fileID))を割り当てる。
これに応答して、ネームノード720は、ブロックID(blockID)及びブロックを格納するためのデータノード(例えば、データノード740)を割り当て、クライアント710に応答766を伝送する。
ネームノード720は、ブロックIDとして単純に増加するIDを割り当てる。
ブロックライト要請767に応答して、データノード740は、(KV)SSD750に伝達された因数、ブロックID(blockID)及びコンテンツ(conten)を含むキー値格納コマンド768(kv.store(blockID, content))を提供する。
一般的なSSDを含む従来のデータノードにおいて、データノードについてのライト動作は、ファイルシステムにライトを要求し、SSDのデータストレージ個体にライトを要求できる。
クライアント710は、ブロックID及びデータノードタプルを関連したコミット(commit)をするために、ネームノード720にコミットライトコマンド771(commit(Write(fileID, blockID)))を伝送する。
ネームノード720は、アペンド(append)コマンド772(kv.append(fileID, blockID+dataNode))を(KV)SSD730に伝送する。
アペンドプロセスにおいて、アペンドコマンド772は、(KV)SSD730についての単一の直接動作であり、従来の分散ストレージシステムでのように二つの別のマップ(即ち、ファイルブロックマップ及びブロックデータノードマップ)についてのメモリー動作ではない。
データノード740に格納されたファイルをリードするために、クライアント710は、ファイルID(fileID)を含むリードファイル要請861(openFile(fileID))をネームノード720に伝送(送信)する。
ファイルIDを用いて、ネームノード720は、(KV)SSD730に検索コマンド(kv.retrieve(fileID))を伝送(送信)し、(KV)SSD730は、ブロックをファイルIDと関連したデータノードにマッピングするマッピング情報863を返還(返信)する。
ブロックデータノードマッピング情報に包含されたブロックIDを用いて、クライアント710は、データノード740にブロックリードコマンド865(readBlock(blockID))を伝送する。
データノード740は、ブロックコンテンツを検索するために、(KV)SSD750にブロック検索コマンド866(kv.retrieve(blockID))を伝送する。
(KV)SSD750は、データノード740に要請されたブロックのコンテンツ867を伝送(返信)し、データノード740は、クライアント710に検索されたブロックコンテンツ868を伝達(返信)する。
なお、データノード740は、任意のストレージソフトウェアミドルウェア(ファイルシステムのような)をバイパスして、(KV)SSDに直接データを検索するための要請を伝送する。
クライアント710は、ファイルIDを包含するファイル削除コマンド961(deleteFile(fileID))をネームノード720に伝送する。
ネームノード720は、ファイルのマッピング情報を検索するために、(KV)SSD730にキー値検索コマンド962(kv.retrieve(fileID))を伝送し、(KV)SSD730は、ファイルIDと関連されたデータにブロックをマッピングするマッピング情報963を返還(返信)する。
ネームノード720は、関連したブロックに対する後続非同期削除プロセスのために、ブロックIDマッピングを一時的にキャッシュできる。
ファイルIDと関連されたマッピング情報を検索する場合、ネームノード720は、削除されるファイルに対するブロックデータノードタプルを(KV)SSD730から検索する。
このようなプロセスは、複数のインメモリーハッシュテーブルをルックアップすることと関連する従来の分散ストレージシステムと異なる。
代わりに、ネームノード720は、ブロックデータノードマップを含む(KV)SSD730からファイルに基づいたキーを削除する(964)。
図9に示したファイル削除プロセスは、分散ファイルシステムのブロックサイズが、(KV)SSD750の消去ブロックサイズと同一であるか、又は消去ブロックサイズで割ることができる仮定に基づく。
これは、インメモリー動作から(KV)SSDに基づく動作に移動するオーバーヘッドを最小化させることができる。
SSDコントローラーは、ブロックアップデートフラッグに基づいて、ブロックアップデートを許容するか、又は許容しないようにさらに設定できる。
SSDコントローラーは、アライメントフラッグに基づいてデータファイルを複数のデータブロックに合わせてアライメントするようにさらに設定できる。
ブロックサイズは、SSDの消去ユニットとウェイの数の積に基づいて決定され得る。
ブロックサイズは、SSDの消去ユニットと同一で有り得る。
SSDは、ファイルに関連した複数のデータブロック中に、一つ以上のデータブロックに対するファイルの第1マッピング、及びSSDを含むデータノードに対する一つ以上のデータブロック中に、少なくとも一つの第2マッピングを含む、ファイルマッピングテーブルを格納できる。
第2(KV)SSDは、ファイルと関連した一つ以上のデータブロックに対するデータファイルの第1マッピング及びデータノードに対する一つ以上のデータブロック中に、少なくとも一つの第2マッピングを含むファイルマッピングテーブルを格納できる。
分散データストレージシステムの方法は、ブロックアップデートを許容するか、又は許容しないようにブロックアップデータフラッグ(flag)を設定するステップと、をさらに含み得る。
分散データストレージシステムの方法は、データファイルをデータノードの第2(KV)SSDの複数のデータブロックに合わせてアライメントするように、アライメントフラッグを設定するステップと、をさらに含み得る。
分散データストレージシステムの方法は、ファイル識別子及びブロック識別子を含むライトコミットコマンドをクライアントからネームノードに伝送するステップと、ネームノードにファイル識別子と、ブロック識別子及びデータノードを追加するように単一の直接動作を追加するステップと、をさらに含み得る。
分散データストレージシステムの方法は、クライアントからネームノードにファイル識別子を含むファイル削除コマンドを伝送するステップと、データファイルと関連した一つ以上のデータブロック中に、少なくとも一つに対するブロック識別子及びデータノード識別子をクライアントに返還(返信)するステップと、ネームノードからネームノードの第1(KV)SSDにデータファイルのファイル識別子を含むキー値の削除コマンドを伝送するステップと、ネームノードからデータノードに一つ以上のデータブロックのリストを含む、ブロック削除コマンドを伝送するステップと、データノードの第2(KV)SSDに格納された一つ以上のデータブロックを削除するステップと、をさらに含み得る。
第2(KV)SSDは、ファイルと関連した一つ以上のデータブロックに対するファイルの第1マッピング及びデータノードに対する一つ以上のデータブロック中に、少なくとも一つの第2マッピングを含む、ファイルマッピングテーブルを格納できる。
101 クライアントアプリケーション
105 ファイル
115 ブロックマップ
111、720 ネームノード
121、221、740 データノード
140 従来のSSD
150、730、750 (KV)SSD
710 クライアント
Claims (10)
- クライアントアプリケーション(client application)と、
第1キー値(key-value:KV)ソリッドステートドライブ(SSD)を含むネームノードと、
第2キー値(KV)SSDを含むデータノードと、を有し、
前記第2キー値(KV)SSDは、複数のデータブロックと、前記複数のデータブロックにアクセスするための複数のフラッシュチャンネル及び複数のウェイと、前記複数のデータブロックのブロックサイズを設定するSSDコントローラーと、を含み、
前記クライアントアプリケーションは、データファイルを格納するためのファイル識別子を含む生成ファイル要請を前記ネームノードに送信し、前記データファイルと関連した複数のデータブロック中に、一つ以上のデータブロックを割り当てるために、割り当てコマンドを前記ネームノードに送信し、
前記ネームノードは、前記一つ以上のデータブロックのブロック識別子、及び前記一つ以上のデータブロックを格納するために割り当てられた前記データノードのデータノード識別子を前記クライアントアプリケーションに返信し、
前記クライアントアプリケーションは、前記一つ以上のデータブロックを格納するために、前記データノードにブロック格納コマンドを送信し、
前記第2キー値(KV)SSDは、キー(key)値のペアとして前記一つ以上のデータブロックを格納し、少なくとも一つのキー値のペアは、キーとして前記ブロック識別子及び値としてブロックデータを有し、
前記データファイルのサイズは、前記ブロックサイズ又は前記ブロックサイズの倍数と同一であり、
前記クライアントアプリケーションは、前記ファイル識別子及び前記ブロック識別子を含む、ライトコミットコマンド(write commit command)を前記ネームノードに送信し、前記ネームノードに、前記ファイル識別子と、前記ブロック識別子及び前記データノードを追加するように単一の直接動作を追加することを特徴とする分散データストレージシステム。 - 前記分散データストレージシステムは、ハドゥープ分散ファイルシステム(HDFS)を適用することを特徴とする請求項1に記載の分散データストレージシステム。
- 前記第2キー値(KV)SSDは、前記データファイルと関連した一つ以上のデータブロックに対する前記データファイルの第1マッピング、及びデータノードに対する前記一つ以上のデータブロック内の少なくとも一つの第2マッピングを含むファイルマッピングテーブルを格納することを特徴とする請求項1に記載の分散データストレージシステム。
- 分散データストレージシステムの方法であって、
クライアントアプリケーションにより、データファイルを格納するためのファイル識別子を含む、生成ファイル要請を前記クライアントアプリケーションからネームノードに送信するステップと、
前記クライアントアプリケーションにより、前記ネームノードの第1キー値(KV)ソリッドステートドライブ(SSD)に、キー値のペアとして、キーとして前記キー値に格納され前記キーと関連した値は空いている(empty)前記ファイル識別子を格納するステップと、
前記クライアントアプリケーションにより、前記データファイルと関連した複数のデータブロック中の一つ以上のデータブロックを割り当てるために、前記クライアントアプリケーションから前記ネームノードに割り当てコマンドを送信するステップと、
前記ネームノードにおいて、前記一つ以上のデータブロック内の少なくとも一つに対するブロック識別子を割り当て、前記一つ以上のデータブロックを格納するためのデータノードを割り当てるステップと、
前記ネームノードから前記クライアントアプリケーションに、前記ブロック識別子及び前記データノードのデータノード識別子を返信するステップと、
前記クライアントアプリケーションから前記データノードに、前記ブロック識別子及びコンテンツを含むライトブロック要請を送信するステップと、
前記クライアントアプリケーションにより、前記データノードの第2キー値(KV)SSDに、キー値のペアとして、前記一つ以上のデータブロックを格納するステップと、を有し、
前記データノードの前記第2キー値(KV)SSDは、ブロックサイズを有する一つ以上のデータブロックを含み、
少なくとも一つのキー値のペアは、キーとしてブロック識別子及び値としてブロックデータを有し、
前記データファイルのサイズは、前記ブロックサイズ又は前記ブロックサイズの倍数と同一であり、
前記ファイル識別子及び前記ブロック識別子を含む、ライトコミットコマンド(write commit command)を前記クライアントアプリケーションから前記ネームノードに送信するステップと、
前記クライアントアプリケーションにより、前記ネームノードに、前記ファイル識別子と、前記ブロック識別子及び前記データノードを追加するように単一の直接動作を追加するステップと、をさらに有することを特徴とする分散データストレージシステムの方法。 - 前記クライアントアプリケーションと、前記ネームノード及び前記データノードは、ハドゥープ分散ファイルシステム(HDFS)のノードであることを特徴とする請求項4に記載の分散データストレージシステムの方法。
- 前記クライアントアプリケーションにより、ブロックアップデートを許容するか、又は許容しないようにブロックアップデートフラッグを設定するステップと、をさらに有することを特徴とする請求項4に記載の分散データストレージシステムの方法。
- 前記クライアントアプリケーションにより、前記データファイルを、前記データノードの前記第2キー値(KV)SSDの前記複数のデータブロックに合わせてアライメント(alignment)するようにフラッグを設定するステップをさらに有することを特徴とする請求項4に記載の分散データストレージシステムの方法。
- 前記データファイルをリードするために、前記クライアントアプリケーションから前記ネームノードにリードファイルの要請を送信するステップと、
前記データファイルと関連した前記一つ以上のデータブロック中に、少なくとも一つに対する前記ブロック識別子及び前記データノード識別子を前記ネームノードから前記クライアントアプリケーションに返信するステップと、
前記データノードの前記第2キー値(KV)SSDに格納された前記一つ以上のデータブロックを検索するために、前記クライアントアプリケーションから前記データノードにブロックリードコマンドを送信するステップと、
前記ブロック識別子により識別された前記ブロックデータを、前記データノードから前記クライアントアプリケーションに返信するステップと、をさらに有することを特徴とする請求項4に記載の分散データストレージシステムの方法。 - 前記クライアントアプリケーションから前記ネームノードに、前記ファイル識別子を包含するファイル削除コマンドを送信するステップと、
前記データファイルと関連した前記一つ以上のデータブロック中に、少なくとも一つに対する前記ブロック識別子及び前記データノード識別子を前記クライアントアプリケーションに返信するステップと、
前記ネームノードから前記ネームノードの前記第1キー値(KV)SSDに、前記データファイルの前記ファイル識別子を含むキー値削除コマンドを送信するステップと、
前記ネームノードから前記データノードに、前記一つ以上のデータブロックのリストを含むブロック削除コマンドを伝送するステップと、
前記データノードの前記第2キー値(KV)SSDに格納された前記一つ以上のデータブロックを削除するステップと、をさらに有することを特徴とする請求項8に記載の分散データストレージシステムの方法。 - 前記第2キー値(KV)SSDは、前記データファイルと関連した一つ以上のデータブロックに対する前記データファイルの第1マッピング、及び前記データノードに対する前記一つ以上のデータブロック中に少なくとも一つの第2マッピングを含む、ファイルマッピングテーブルを格納することを特徴とする請求項4に記載の分散データストレージシステムの方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862626839P | 2018-02-06 | 2018-02-06 | |
US62/626,839 | 2018-02-06 | ||
US15/934,747 US11392544B2 (en) | 2018-02-06 | 2018-03-23 | System and method for leveraging key-value storage to efficiently store data and metadata in a distributed file system |
US15/934,747 | 2018-03-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019139759A JP2019139759A (ja) | 2019-08-22 |
JP7437117B2 true JP7437117B2 (ja) | 2024-02-22 |
Family
ID=67476066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019006124A Active JP7437117B2 (ja) | 2018-02-06 | 2019-01-17 | ソリッドステートドライブ(ssd)及び分散データストレージシステム並びにその方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11392544B2 (ja) |
JP (1) | JP7437117B2 (ja) |
KR (1) | KR20190095089A (ja) |
CN (1) | CN110119425A (ja) |
TW (1) | TWI778157B (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI737189B (zh) * | 2019-02-23 | 2021-08-21 | 國立清華大學 | 易於從固態儲存裝置之故障中還原的方法、電腦系統,及固態儲存裝置 |
CN112394874B (zh) | 2019-08-13 | 2024-08-20 | 华为技术有限公司 | 一种键值kv的存储方法、装置及存储设备 |
US11287994B2 (en) * | 2019-12-13 | 2022-03-29 | Samsung Electronics Co., Ltd. | Native key-value storage enabled distributed storage system |
US11636059B2 (en) * | 2020-03-31 | 2023-04-25 | Samsung Electronics Co., Ltd. | Scaling performance in a storage server with storage devices |
US20220011948A1 (en) * | 2020-07-08 | 2022-01-13 | Samsung Electronics Co., Ltd. | Key sorting between key-value solid state drives and hosts |
US11704057B2 (en) * | 2020-07-20 | 2023-07-18 | Micron Technology, Inc. | Memory sub-systems including memory devices of various latencies and capacities |
CN116490847A (zh) * | 2020-11-05 | 2023-07-25 | 阿里巴巴集团控股有限公司 | 支持分布式文件系统中的垃圾收集的虚拟数据复制 |
KR102486980B1 (ko) * | 2021-01-08 | 2023-01-11 | 주식회사 앤다스 | 블록 데이터 스토리지 시스템, 블록 데이터 스토리지 방법 및 기록 매체에 저장된 프로그램 |
US11614870B2 (en) * | 2021-05-07 | 2023-03-28 | Micron Technology, Inc. | Zoned memory device recovery after a key-value store failure |
CN113220237B (zh) * | 2021-05-17 | 2024-08-20 | 北京青云科技股份有限公司 | 一种分布式存储方法、装置、设备及存储介质 |
KR20230017040A (ko) | 2021-07-27 | 2023-02-03 | 단국대학교 산학협력단 | 존 스토리지에서의 키-값 스토어 파일 저장 장치 및 방법 |
KR102545480B1 (ko) | 2021-07-29 | 2023-06-20 | 단국대학교 산학협력단 | 존 스토리지에서의 키-값 스토어 파일 저장 장치 및 방법 |
US20230054002A1 (en) * | 2021-08-18 | 2023-02-23 | Samsung Electronics Co., Ltd. | Lifecycle-aware persistent storage |
CN113672584A (zh) * | 2021-08-30 | 2021-11-19 | 济南浪潮数据技术有限公司 | 分布式文件系统的hdfs协议数据映射传输方法和装置 |
US20230289084A1 (en) * | 2022-03-11 | 2023-09-14 | Samsung Electronics Co., Ltd. | Systems and methods for checking data alignment between applications, file systems, and computational storage devices |
TWI819943B (zh) * | 2022-12-30 | 2023-10-21 | 康和綜合證券股份有限公司 | 資料索引值產生裝置、資料索引值產生方法及其電腦程式產品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013506190A (ja) | 2009-09-29 | 2013-02-21 | マイクロン テクノロジー, インク. | ストライプベースのメモリ動作 |
US20150120695A1 (en) | 2013-10-31 | 2015-04-30 | Tata Consultancy Services Limited | Indexing of file in a hadoop cluster |
JP2017531857A (ja) | 2014-10-03 | 2017-10-26 | エイジェンシー・フォー・サイエンス,テクノロジー・アンド・リサーチ | 分散型能動ハイブリッドストレージシステム |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10089017B2 (en) * | 2011-07-20 | 2018-10-02 | Futurewei Technologies, Inc. | Method and apparatus for SSD storage access |
CN102722449B (zh) * | 2012-05-24 | 2015-01-21 | 中国科学院计算技术研究所 | 基于SSD的Key-Value型本地存储方法及系统 |
CN103902632B (zh) | 2012-12-31 | 2018-01-02 | 华为技术有限公司 | 键值存储系统中构建文件系统的方法、装置及电子设备 |
JP6505024B2 (ja) | 2013-02-21 | 2019-04-24 | シーエフエム グローバル エルエルシー | 構造物のための隠蔽された電子部品を備えた建築物支持材 |
US20150378886A1 (en) * | 2013-04-08 | 2015-12-31 | Avalanche Technology, Inc. | Software-defined ssd and system using the same |
US9405783B2 (en) * | 2013-10-02 | 2016-08-02 | Netapp, Inc. | Extent hashing technique for distributed storage architecture |
US9569141B2 (en) * | 2014-03-28 | 2017-02-14 | Intel Corporation | Hash map support in a storage device |
US20150370670A1 (en) * | 2014-06-18 | 2015-12-24 | NXGN Data, Inc. | Method of channel content rebuild via raid in ultra high capacity ssd |
US9438426B2 (en) | 2014-10-03 | 2016-09-06 | Seagate Technology Llc | Key-value data storage device with hybrid architecture |
CN105933376B (zh) | 2016-03-31 | 2019-09-03 | 华为技术有限公司 | 一种数据操作方法,服务器及存储系统 |
CN106708427B (zh) * | 2016-11-17 | 2019-05-10 | 华中科技大学 | 一种适用于键值对数据的存储方法 |
US10649969B2 (en) * | 2017-06-13 | 2020-05-12 | Western Digital Technologies, Inc. | Memory efficient persistent key-value store for non-volatile memories |
-
2018
- 2018-03-23 US US15/934,747 patent/US11392544B2/en active Active
- 2018-10-25 TW TW107137684A patent/TWI778157B/zh active
- 2018-12-05 KR KR1020180155572A patent/KR20190095089A/ko not_active Application Discontinuation
-
2019
- 2019-01-17 JP JP2019006124A patent/JP7437117B2/ja active Active
- 2019-01-25 CN CN201910075226.0A patent/CN110119425A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013506190A (ja) | 2009-09-29 | 2013-02-21 | マイクロン テクノロジー, インク. | ストライプベースのメモリ動作 |
US20150120695A1 (en) | 2013-10-31 | 2015-04-30 | Tata Consultancy Services Limited | Indexing of file in a hadoop cluster |
JP2017531857A (ja) | 2014-10-03 | 2017-10-26 | エイジェンシー・フォー・サイエンス,テクノロジー・アンド・リサーチ | 分散型能動ハイブリッドストレージシステム |
Non-Patent Citations (2)
Title |
---|
Eui-Young Chung et al.,A High-Performance Solid-State Disk with Double-Data-Rate NAND Flash Memory,arXiv.org,2015年02月08日,https://arxiv.org/abs/1502.02239v1 |
小川 宏高,高速フラッシュメモリ向けMapReduceフレームワークの実現に向けて,情報処理学会研究報告 平成21年度▲3▼ [CD-ROM] ハイパフォーマンスコンピューティング(HPC) No.121,日本,社団法人情報処理学会,2009年10月15日,Vol.2009-HPC-121, No.42 |
Also Published As
Publication number | Publication date |
---|---|
KR20190095089A (ko) | 2019-08-14 |
US11392544B2 (en) | 2022-07-19 |
TWI778157B (zh) | 2022-09-21 |
JP2019139759A (ja) | 2019-08-22 |
US20190243906A1 (en) | 2019-08-08 |
CN110119425A (zh) | 2019-08-13 |
TW201935243A (zh) | 2019-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7437117B2 (ja) | ソリッドステートドライブ(ssd)及び分散データストレージシステム並びにその方法 | |
US20210191615A1 (en) | Methods, systems and devices relating to data storage interfaces for managing data address spaces in data storage devices | |
KR102444832B1 (ko) | 분산된 가상 명칭 공간 관리를 사용한 온-디맨드 스토리지 프로비져닝 | |
TWI661301B (zh) | 記憶體系統及控制非揮發性記憶體之控制方法 | |
TWI674502B (zh) | 記憶體系統及控制方法 | |
US7676628B1 (en) | Methods, systems, and computer program products for providing access to shared storage by computing grids and clusters with large numbers of nodes | |
CN114860163B (zh) | 一种存储系统、内存管理方法和管理节点 | |
TWI684098B (zh) | 記憶體系統及控制非揮發性記憶體之控制方法 | |
US20150067283A1 (en) | Image Deduplication of Guest Virtual Machines | |
TW202331530A (zh) | 記憶體系統 | |
JP2019008729A (ja) | メモリシステムおよび制御方法 | |
US10169124B2 (en) | Unified object interface for memory and storage system | |
US10503693B1 (en) | Method and system for parallel file operation in distributed data storage system with mixed types of storage media | |
KR20210075845A (ko) | 네이티브 키-밸류 분산 스토리지 시스템 | |
KR100622130B1 (ko) | 객체 기반 스토리지 시스템에서 고속의 데이터 입출력을위한 객체 저장소 관리 시스템 및 방법 | |
JP7013546B2 (ja) | メモリシステム | |
US8918621B1 (en) | Block address isolation for file systems | |
JP7204020B2 (ja) | 制御方法 | |
US20210334247A1 (en) | Group based qos policies for volumes | |
US11928336B2 (en) | Systems and methods for heterogeneous storage systems | |
Shu | File Systems | |
JP2023021450A (ja) | メモリシステム | |
Aung et al. | Intelligent Data Management in Object-based Storage Device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211210 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230124 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230221 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230516 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20230822 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231221 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20240105 |
|
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: 20240123 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240209 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7437117 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |