JP2019139759A - ソリッドステートドライブ(ssd)及び分散データストレージシステム並びにその方法 - Google Patents

ソリッドステートドライブ(ssd)及び分散データストレージシステム並びにその方法 Download PDF

Info

Publication number
JP2019139759A
JP2019139759A JP2019006124A JP2019006124A JP2019139759A JP 2019139759 A JP2019139759 A JP 2019139759A JP 2019006124 A JP2019006124 A JP 2019006124A JP 2019006124 A JP2019006124 A JP 2019006124A JP 2019139759 A JP2019139759 A JP 2019139759A
Authority
JP
Japan
Prior art keywords
data
ssd
file
block
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019006124A
Other languages
English (en)
Other versions
JP7437117B2 (ja
Inventor
シー. ビッソン ティモシー
C Bisson Timothy
シー. ビッソン ティモシー
シャイェステ アナヒタ
Shayesteh Anahita
シャイェステ アナヒタ
昌 皓 崔
Changho Choi
昌 皓 崔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2019139759A publication Critical patent/JP2019139759A/ja
Application granted granted Critical
Publication of JP7437117B2 publication Critical patent/JP7437117B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-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)

Abstract

【課題】データ及びメタデータを効率的に格納するためのキー値ストレージを活用するソリッドステートドライブ及び分散データストレージシステム並びにその方法を提供する。【解決手段】本発明によるソリッドステートドライブ(SSD)は、複数のデータブロックと、前記複数のデータブロックにアクセスするための複数のフラッシュチャンネル(flash channel)及び複数のウェイ(way)と、前記複数のデータブロックのブロックサイズを設定する、ソリッドステートドライブ(SSD)コントローラーと、を有し、データファイルが、一つ以上のキー値のペアを含むソリッドステートドライブ(SSD)に格納され、少なくとも一つのキー値のペアは、キーとしてブロック識別子及び値としてブロックデータを有し、前記データファイルのサイズは、前記ブロックサイズ又は前記ブロックサイズの倍数と同一である。【選択図】 図1B

Description

本発明は、キー値(key value)ストレージデバイスに関し、特に、分散ファイルシステムにおけるデータ及びメタデータを効率的に格納するためのキー値ストレージを活用するソリッドステートドライブ及び分散データストレージシステム並びにその方法に関する。
既存のデータストレージノード(data storage node)において、データコンテンツについてのブロック識別子(ID)のようなキー値マッピング(mapping)は、一般的にデータストレージノードの存在するファイルシステムを用いて格納される。
これは、基本ストレージデバイスが、基本的にデータストレージノードによって要求されるキー値インターフェースを支援しないためである。
結果的に、キー値インターフェースを提供するためにソフトウェアの追加レイヤー(layer)(一般的に、ファイルシステム)が要求される。
ファイルシステムの追加は、メモリー及びプロセッサオーバーヘッド(overhead)を発生させるという問題がある。
また、データストレージノードと実際のデータストレージデバイスとの間に存在するファイルシステムは、データストレージデバイスがオーバープロビジョニング(overprovisioning)及び高いライト増幅(write amplification)のような、追加非効率をもたらし、制限されたリソース(resource)デバイス環境においてガベージコレクション(garbage collection)のような作業を遂行するために、より多くの中央処理装置(CPU)のサイクルを要求する。
米国特許出願公開第2014/0230342号明細書 国際公開第2017/167171号
WANG,Ke;"Scalable Resource Management System Software for Extreme−Scale Distributed Systems",Illinois Institute of Technology,Department of Computer Science,Chigago,Illinois,July 2015,280 pages ZENG,Jiaan;"Resource Sharing for Multi−Tenant NOSQL Data Store in Cloud";School of Informatics and Computing,Indiana University,December 2015;167 pages
そこで、本発明は上記従来のデータストレージノードにおける問題点に鑑みてなされたものであって、本発明の目的は、データ及びメタデータを効率的に格納するためのキー値ストレージを活用するソリッドステートドライブ及び分散データストレージシステム並びにその方法を提供することにある。
上記目的を達成するためになされた本発明によるソリッドステートドライブ(SSD)は、複数のデータブロックと、前記複数のデータブロックにアクセスするための複数のフラッシュチャンネル(flash channel)及び複数のウェイ(way)と、前記複数のデータブロックのブロックサイズを設定する、ソリッドステートドライブ(SSD)コントローラーと、を有し、データファイルが、一つ以上のキー値のペアを含むソリッドステートドライブ(SSD)に格納され、少なくとも一つのキー値のペアは、キーとしてブロック識別子及び値としてブロックデータを有し、前記データファイルのサイズは、前記ブロックサイズ又は前記ブロックサイズの倍数と同一であることを特徴とする。
上記目的を達成するためになされた本発明による分散データストレージシステムは、クライアントと、第1キー値(key−value:KV)ソリッドステートドライブ(SSD)を含むネームノードと、第2キー値(KV)SSDを含むデータノードと、を有し、前記第2キー値(KV)SSDは、複数のデータブロックと、前記複数のデータブロックにアクセスするための複数のフラッシュチャンネルと、複数ウェイ及び前記複数のデータブロックのブロックサイズを設定するSSDコントローラーと、を含み、前記クライアントは、データファイルを格納するためのファイル識別子を含む生成ファイル要請を前記ネームノードに送信し、前記データファイルと関連した複数のデータブロック中に、一つ以上のデータブロックを割り当てるために、割り当てコマンドを前記ネームノードに送信し、前記ネームノードは、前記一つ以上のデータブロックのブロック識別子、及び前記一つ以上のデータブロックを格納するために割り当てられた前記データノードのデータノード識別子を前記クライアントに返信し、前記クライアントは、前記一つ以上のデータブロックを格納するために、前記データノードにブロック格納コマンドを送信し、前記第2キー値(KV)SSDは、キー(key)値のペアとして前記一つ以上のデータブロックを格納し、少なくとも一つのキー値のペアは、キーとして前記ブロック識別子及び値としてブロックデータを有し、前記データファイルのサイズは、前記ブロックサイズ又は前記ブロックサイズの倍数と同一であることを特徴とする。
上記目的を達成するためになされた本発明による分散データストレージシステムの方法は、データファイルを格納するためのファイル識別子を含む、生成ファイル要請をクライアントからネームノードに送信するステップと、前記ネームノードの第1キー値(KV)ソリッドステートドライブ(SSD)に、キー値のペアとして、キーとして前記キー値に格納され前記キーと関連した値は空いている(empty)前記ファイル識別子を格納するステップと、前記データファイルと関連した一つ以上のデータブロックを割り当てるために、前記クライアントから前記ネームノードに割り当てコマンドを送信するステップと、前記ネームノードにおいて、前記一つ以上のデータブロック内の少なくとも一つに対するブロック識別子を割り当て、前記一つ以上のデータブロックを格納するためのデータノードを割り当てるステップと、前記ネームノードから前記クライアントに、前記ブロック識別子及び前記データノードのデータノード識別子を返信するステップと、前記クライアントから前記データノードに、前記ブロック識別子及びコンテンツを含むライトブロック要請を送信するステップと、前記データノードの第2キー値(KV)SSDに、キー値のペアとして、前記一つ以上のデータブロックを格納するステップと、を有し、前記データノードの前記第2キー値(KV)SSDは、ブロックサイズを有する一つ以上のデータブロックを含み、少なくとも一つのキー値のペアは、キーとしてブロック識別子及び値としてブロックデータを有し、前記データファイルのサイズは、前記ブロックサイズ又は前記ブロックサイズの倍数と同一であることを特徴とする。
本発明に係るソリッドステートドライブ及び分散データストレージシステム並びにその方法によれば、キー値のペアとして直接データを格納して、キー値ファイルシステムの必要性をなくすことができる。
これにより、本発明によるデータストレージシステムはより速やかで、単純であり、拡張可能なデータストレージソリューションを提供しながら、エネルギー及びリソースを少なく消費できるという効果がある。
また、本発明による分散ファイルシステムは、データ及びメタデータについての内部ライト(write)及び増幅ファクター(factor)を最小化できる。
さらに、本発明によるデータストレージシステムは、ハッシュテーブル値に関連されたCPUオーバーヘッドを減少させることができる。
従来の分散データストレージシステムの概略構成を示すブロック図である。 本発明の一実施形態によるキー値ストレージデバイスを含む分散データストレージシステムの例示的な構成を示すブロック図である。 従来の例示的なSSDのシステム構成を示す図である。 本発明の一実施形態によるキー値SSDの例示的なシステム構成を示す図である。 本発明の一実施形態による、チャンネルレベルの並列性を達成する例示的なSSDチャンネル及びダイ(die)アーキテクチャを説明するための図である。 本発明の一実施形態による、ウェイレベルの並列性を達成する例示的なSSDチャンネル及びダイアーキテクチャを説明するための図である。 本発明の一実施形態による、ダイ/チップレベルの並列性を達成する例示的なSSDチャンネル及びダイアーキテクチャを説明するための図である。 例示的なSSDの例示的なマッピング方式を示す図である。 本発明の一実施形態による、(KV)SSDの例示的なマッピング方式を示す。 本発明の一実施形態による分散ファイルシステムの(KV)SSDにおいてファイルを生成して格納する例示的なプロセスを説明するための図である。 本発明の一実施形態による、分散ファイルシステムの(KV)SSDに格納されたファイルをリード(read)する、例示的なプロセスを説明するための図である。 本発明の一実施形態による、分散ファイルシステムの(KV)SSDにあるファイルを削除する例示的なプロセスを説明するための図である。
次に、本発明に係るソリッドステートドライブ及び分散データストレージシステム並びにその方法を実施するための形態の具体例を図面を参照しながら説明する。
本明細書で開示する特徴及び開示のそれぞれは、分散ファイルシステムにおいて、データ及びメタデータを効率的に格納するためのキー値ストレージを活用するシステム及び方法を提供するために、独立的に又は他の特徴及び開示とともに活用することができる。
このような追加特徴及び開示を活用する代表的な例示は、独立的にそして結合して、添付した図面を参照してより詳細に説明される。
このような詳細な説明は、ただ本明細書に開示した例示を実行するための細部的な内容を当業者に開示するためのものであり、請求の範囲を制限するものではない。
従って、詳細な説明に開示した特徴の組み合わせは、広い意味で開示を実行するために必要でない可能性があり、ただ本明細書に開示した代表的な例示を特別に説明するために、代わりに開示するものである。
以下においては、ただ説明のための目的で、本発明の完全な理解を提供するための特定の命名法が記述される。
しかしながら、当業者に本発明の開示を実行するために、このような特定の細部事項が必要なものではないのは自明であろう。
本明細書において、詳細な説明のいくつかの部分は、アルゴリズム及びコンピュータメモリーのデータビットに対する動作の象徴的表現に関して示す。
このようなアルゴリズムの説明と表現は、他の分野の通常の技術者に研究の要旨を効果的に伝達するために、データプロセシング分野における通常の技術者により使用される。
ここでアルゴリズムは、一般的に所望の結果を導くステップの一貫性のある順序として理解される。
ステップは、物理量の物理的操作を必要とする。
一般的に、必ずしも必要なものではないが、このような物理量は格納され、伝達され、結合され、比較されるなどの操作を行うことができる、電気信号又は磁気信号(magnetic signals)の形態を有する。
これは、時々、このような信号をビット、値、要素、シンボル(symbol)、文字、用語、数字などとして称するための一般的な用法という理由で便利である。
しかしながら、このような用語と類似した用語は、適切な物理量と関連され、ただこのような物理量に適用される便利なラベル(label)であるのに留意しなければならない。
以下の内容と明白に異なる内容が具体的に記述されなければ、明細書の全般にわたって「プロセシング(processing)」、「コンピューティング(computing)」、「計算すること(calculating)」、「判別すること(determining)」、「表示すること(displaying)」などのような用語を活用する部分は、コンピュータシステム又は類似の電子コンピューティングデバイスのプロセスと動作を示すものと理解される。
コンピュータシステム又は類似の電子コンピューティングデバイスは、コンピュータシステムのレジスター(register)とメモリーにおいて物理(電気)量として示されるデータをコンピュータシステムメモリー、レジスター又は他の情報記憶、伝送又はディスプレイデバイスで類似に物理量として示される他のデータに操作したり変形したりする。
なお、本発明の追加的な有用な実施形態を提供するために、代表的な例示の多様な特徴と従属される請求の範囲は、具体的で明示的に列挙されない方法で結合することができる。
なお、請求された発明の思想を制限しようとする目的だけでなく、最初開示の目的のために全ての値の範囲又は個体グループの表示は、可能な全ての中間値又は中間個体を示す。
なお、図面に示した構成の面積と模様は、本発明をどのように具現するかを理解するために役立てるようにデザインされ得るが、例示として示した面積と模様(形状)に限定されるのではない。
本発明は、ハドゥープ分散ファイルシステム(Hadoop Distributed File System:HDFS)のような分散ファイルシステムにより発生する、非効率性を解決するシステム及び方法を説明する。
本発明のシステム及び方法は、データストレージデバイスにデータを直接格納することにより、ブロック識別子としてファイルネーム及び値としてファイルのデータコンテンツ(又は、データの部分)を利用するキー値ファイルシステムの必要性をなくす。
キー値のペアで直接データを格納できる、このようなデータストレージデバイスは、本明細書においてキー値(key−value:KV)ソリッドステートドライブ(solid−state drive:SSD)(以下、(KV)SSDと記す)と称す。
(KV)SSDは、キーとしてブロック識別子及び値としてデータを有し、キー値ストレージを支援する。
本発明のシステム及び方法は、キー/値のペアとして一つ以上の(KV)SSDに直接データを格納できる(KV)SSDを含む、効率的で単純化されたキー値データストレージシステムを提供できる。
結果的に、本発明のキー値データストレージシステムは、もっと速やかで、単純であり、拡張可能なデータストレージソリューションを提供しながらも、エネルギー及びリソースを少なく消費できる。
本発明の一実施形態によれば、(KV)SSDは、データストレージノードとともに、キー値のペアでデータを格納するファイルシステムを具現できる。
直接キー値データを格納できる一つ以上の(KV)SSDを用いることにより、本発明のキー値データストレージシステムは、データストレージノードのファイルシステムをなくすことができる。
データストレージノードは、内部データ構造及びデータストレージノードにより指定されたワークロード(workload)を収容するための(KV)SSDのリソースを最適化するために、(KV)SSDの動作についての情報を伝えられる。
なお、インメモリー(in−memory)マッピングテーブルは、データストレージノードと(KV)SSDとの間にキー値インターフェースを用いて、永久データを提供する(KV)SSDにオフロード(offload)することができる。
本発明の一実施形態によると、本発明のキー値データストレージシステムは、HDFSのような現存するファイルシステムを支援できる。
特に、大規模なデータブロックのために最適化されたファイルシステムは、本発明のキー値データストレージシステムにより利益を受けられる。
例えば、(KV)SSDのメタデータ(又はハッシュ(hash)テーブル)は、例えば、10〜100MBの大規模なブロックサイズに分割される。
HDFSのような分散ファイルシステムは、キーに対する値が変更されないために、移動される必要のない固定データブロックを有するので、(KV)SSDに格納されたデータ及びメタデータに対する内部ライト増幅ファクター(write amplification factor:WAF)を最小化できる。
なお、本発明のキー値データストレージシステムは、ハッシュテーブル値をアップデートすることに関連したCPUオーバーヘッドを減少させることができる。
本発明のキー値データストレージシステムは、性能及びリソース活用度を向上させながら単純化されたフラッシュ変換レイヤー(flash translation layer:FTL)を有する。
(KV)SSDがHDFSのような固定分散ストレージシステムとともに利用される場合、メタデータオーバーヘッドは減少させることができる。
これは、このような分散ファイルシステムにおいて、キーのコンテンツが変わらない可能性があるためである。
従って、キー/値のペアを格納する(KV)SSDは、(KV)SSDのフラッシュメディアにおいて値を古いものとして表示し、キーを新たな値として示す必要がない。
即ち、(KV)SSDは、重複記入を支援する必要がない。
なお、HDFSのような分散ファイルシステムにおいてブロックは固定されたサイズである。
従って、(KV)SSDは、動的にサイズの値を処理する必要はなく、値の位置の管理は単純に作られる。
例えば、全てのブロックが固定されたサイズの場合、(KV)SSDは、直接インデックシング(indexing)に基づいたデータ構造を利用できる。
分散ファイルシステムにおいてこのような単純化として、キー/値のタプル(tuple)のFTL管理を単純化することができる。
分散ファイルシステムは、一つのデータストレージノードのメモリーでメタデータを維持でき、これによりメモリーの拡張性を制限できる。
本発明のキー値データストレージシステムは、他の分散ファイルシステムにより要求されることができるメタデータを管理するのにメモリー制限をなくすことができる。
本発明のキー値データストレージシステムは、時間遅延を指向しない、高い処理量を達成できる。
HDFSがメモリー容量を超過できるデータセットとともに、非常に大きなブロックサイズを有するので、ページキャッシュ(page−cache)は、データ格納及び管理性能を大きく向上させることができない。
従って、(KV)SSDがページキャッシュ支援の欠陥があるとしても、(KV)SSDは、KV支援データノードの性能を悪化させない。
HDFSの中央集中式キャッシュ管理機能は、特定のブロックをオフヒープ(off−heap)キャッシュするために、データノードを明示的に区別するメカニズムを提供する。
このような機能は、どのブロックをキャッシュするか否かを決定するための方策決定をする必要なく、メモリーに基づいたキッシュの長所を持続的に維持させることにより、KV支援データノードで具現され得る。
本発明のキー値データストレージシステムは、リード及びライト動作において、高い並列性を可能にする。
それぞれのデータブロックの遅延時間がそれほど重要ではなく、HDFSは、多数のデータブロックをリード(読み出し)/ライト(書き込み)することにより、高い水準の並列性を提供するので、コマンド(例えば、リードコマンド、ライトコマンド)をストライプ(stripe)し、(KV)SSDの多様なチャンネルに伝送する必要がない。
それぞれのデータブロックは、内在された並列性を活用して処理量を提供するために、(KV)SSDの一つのチャンネル又は一つのチップ/ダイ(chip/die)に直接ライトし、リードすることができる。
これは、(KV)SSDのFTL及びルックアップ(look−up)プロセスの複雑性を単純化させることができる。
並列性は、(KV)SSDの消去ブロックのコンテクスト(context)により複数のチャンネル又はチップ/ダイに適用され得る。
つまり、これはSSDブロック/ページのサイズを分散ファイルシステム(例えば、HDFS)のブロックサイズでマッピングすることにより、SSDオーバープロビジョニング(overprovisioning)を最小化又は除去できる。
結果的に、本発明のキー値データストレージシステムは、(KV)SSDに提供された、固定されたブロックサイズに合わせられたデバイス消去ブロックで処理量を増加させることができる。
合わせられた消去ブロック及びデータサイズは、フラッシュチャンネル間の同期化をそれほど必要としないためである。
メタデータノードのメモリーは、(KV)SSDにメタデータマップ(map)をオフロードすることにより、これ以上、分散ストレージシステムにおけるボトルネック現状が発生しない。
図1Aは、従来の分散データストレージシステムの概略構成を示すブロック図である。
クライアント(client)アプリケーション(application)101は、分散データストレージシステム100Aのデータノード121に格納するためのファイル105を有する。
ファイル105は、二つのデータブロック(即ち、Ω及びΣ)を含む。
データノード121にファイル105を記入した後、クライアントアプリケーション101は、ネーム(name)ノード(又はメタデータノード)111のブロックマップ115にファイル105と関連されたメタデータを格納する。
HDFSのコンテクストにおいて、ネームノード111は、マスター(master)として称され、データノード121は、スレーブ(slave)として称される。
マスターは、HDFSディレクトリー(directory)構造に全体HDFSのファイルのメタデータを格納できる。
以下に説明するいくつかの例示がHDFSを示しても、多くの量のデータについて最適化された他のファイルシステムが、本発明の範囲を逸脱せずに使用できる。
ネームノード111は、ブロック識別子とファイル105に含まれるブロックを格納したデータノード121を含み、かつファイル105のマッピング情報を含むブロックマップ115を維持する。
本発明の例示において、ブロック(Ω及びΣ)は、ブロック識別子(「11」及び「99」)をそれぞれ有する。
クライアントアプリケーション101が、ファイル105(又はデータブロック(Ω及びΣ))にアクセスしようとする場合、クライアント101は、ファイル105と関連したブロックを識別するためにネームノード111と通信し、ブロックマップ115に格納された結合情報に基づいてファイル105(又はデータブロック)をアクセスためにデータノード121(DN1)と通信する。
データノード121は、ディレクトリーにファイルとして、それぞれのブロックを格納するディレクトリー構造を有するローカルファイルシステム(例えば、リナックス(Linux)(登録商標)のex4ファイルシステム)を含む。
ファイルネームは、ファイル105のそれぞれのブロックに対応する固有ブロック識別子(「11」及び「99」)であり得るし、ファイルのコンテンツはブロックデータである。
ブロックがファイルとして格納される必要があるので、データノード121はソフトウェアの追加レイヤー(例えば、ローカルex4ファイルシステム)、追加メモリー(例えば、リナックスのデントリー(dentry)キャッシュ)、及びブロックのファイルシステムに対するキー値及びメタデータの管理を含む、ファイルシステムオーバーヘッドを変換するCPUプロセッシング(例えば、POSIX(Portable Operating System Interface)及びファイルシステムの特定のコマンドプロセシング)を必要とする。
SSD140のコントロールロジックは、ブロックマップ115の一貫性を維持するための追加プロセスを実行する必要がある。
HDFSブロックサイズは、内部SSDページ/ブロックマッピングと一致しない可能性がある。
これは、SSDの内部WAF及びオーバープロビジョンされた領域を増加させることができ、より頻繁なガベージコレクション及び総保有コスト(total cost of ownership:TCO)の増加を惹起させる。
図1Bは、本発明の一実施形態によるキー値ストレージデバイスを含む分散データストレージシステムの例示的な構成を示すブロック図である。
クライアントアプリケーション101は、分散データストレージシステム100Bのデータノード221にファイル105を格納する。
例えば、分散データストレージシステム100Bは、HDFSである。
キー値SSD150を含むデータノード221は、データブロック(Ω及びΣ)を直接格納できる。
従来のSSD140を含むデータノード121と異なって、ファイル105のデータブロックがキー値のペアとして(KV)SSD150に直接格納されるので、データノード221は、ex4のようなローカルファイルシステムを要求しない。
(KV)SSD150は、データノード221が、データブロックをキー値のペアとして直接格納するようにするクライアントアプリケーション101と通信するためのインターフェースを提供する。
従って、データノード221は、ローカルファイルシステムレイヤーを要求せずに、図1Aの従来のデータノード121のメモリー及びCPUオーバーヘッドを発生させない可能性がある。
本発明の一実施形態によると、分散データストレージシステム100Bは、クライアントアプリケーション101とデータノード221とが、それらの間で情報を交換できるようにする。
このようなプロセスは、レジストレーション(registration)プロセス、又は設定(configuration)プロセスと称される。
レジストレーションプロセス中に、データノード221は、データブロックをキー値のペアで格納できる、一つ以上の(KV)SSDを含むのをクライアントアプリケーション101に知らせる。
レジストレーションプロセスが完了した以後、クライアントアプリケーション101は、データノード221に含まれた(KV)SSD150についての(KV)SSD特定のI/Oデバイスコマンド(例えば、/dev/(KV)SSD1、ここで(KV)SSD1はデータノード221のIDである)を提供できるのがわかる。
これは、クライアントアプリケーション101とデータノード221との間のI/O経路を単純化させる。
ファイルに対するデータブロックを生成し、記入するローカルファイルシステムに依存する代わりに、データノード221は、それぞれのデータブロックをキー値のペアで格納する「put」コマンドを提供する。
(KV)SSD150に格納されたキー値のペアをリードするのも同様である。
データノード221は、データブロックを検索するためにファイルシステムインターフェースを調べる代わりに、(KV)SSD150に「get」コマンドを直接提供して、キーと関連したデータブロックを検索する。
削除プロセスは、類似したプロセスに従うことができる。
レジストレーションプロセス中、(KV)SSD150は、分散データストレージシステム100Bの動作に関する情報を提供され得る。
(KV)SSD150のフラッシュ変換レイヤー(FTL)は、分散データストレージシステム100Bの動作に基づいて分散データストレージシステム100Bに対し、特別に最適化することができる。
(KV)SSD150のSSDコントローラは、ライト及びリードの動作速度を高めるために、他のメモリーチップ(例えば、NANDチップ)を介してストライプ(stripe)にデータをライトし、リードできる。
分散データストレージシステム100B(例えば、HDFS)は、並列的に多くのI/O要請を伝送でき、処理量が高いと、長い遅延時間を耐えることができる。
このような並列性は、SSDコントローラーに複雑性を追加して遅延時間を減少させることができる。
本発明の一実施形態によると、(KV)SSD150のFTLは、分散データストレージシステム100Bの情報に基づいて、一つのチャンネルに対する大規模なブロックをリードしてライトするのに最適化することができる。
このような場合、(KV)SSD150のFTLは、複数のチャンネルの複数のチップを介してデータのストライピング(striping)ができないが、高い処理量を達成するために並列的にリード及びライト動作を同時に実行できる。
HDFSのような分散ファイルシステムは、格納されたデータを頻繁にリードするデータ中心的及びデータ集約的なアプリケーションに対して最適化することができる。
このような場合、データリード動作は、データライト動作に比してずっと頻繁に発生する。
このようないくつかの分散ファイルシステムは、ライトワンスセマンティック(write−once semantic)を提供し、大規模なブロックサイズを使用する。
それに反して、(KV)SSD150は、動的ブロックサイズ及びデータブロックに対する頻繁なアップデートを支援できる。
本発明の他の実施形態によると、(KV)SSD150は、図1aのSSD140のように、内部ファイルシステムを使用するのに、必要となるガベージコレクションを発生させないように最適化することができる。
ガベージコレクションは、古いページを含むブロックから有効なページを移動させてブロックが削除され、リライト(rewrite)されるようにするプロセスである。
これは、ライト増幅、I/O不確実性(indeterminism)、及びドライブのウェアレベリング(wear leveling)に寄与できる高価なプロセスである。
最適化されると、(KV)SSD150のFTLは、ライト及び消去動作に対する同じ粒度(granularity)を利用できる。
ブロックが削除された場合、ブロックは、直ぐに消去されたと表示することができ、これにより、ガベージコレクションの必要性がなくなる。
(KV)SSD150の最適化されたFTLは、ガベージコレクションをなくし、FTLを単純化させながら性能と耐久性を向上させることができる。
本発明の一実施形態によると、(KV)SSD150は、動的ページ及びブロックサイズを支援する。
例えば、(KV)SSD150は、HDFS設定に基づいて格納されたブロックのブロックサイズを調節できる。
例えば、設定中に、分散データストレージシステム100Bは、(KV)SSD150に単に固定されたサイズのライト動作が提供されることを(KV)SSD150に知らせることができ、(KV)SSD150は、ブロックサイズをそれに応じて設定する。
又は、(KV)SSD10は、消去ブロックサイズ(又は、可能な消去ブロックサイズ)を露出して、分散データストレージシステム100Bが、それに応じてブロックサイズを設定するように要求できる。
いずれの場合でも、(KV)SSD150及び分散データストレージシステム100Bのブロックサイズは、互いに関連、設定される。
本発明の一実施形態によると、分散データストレージシステム100Bは、ブロックアップデートを許容するか、又は許容しないように(KV)SSD150を設定できる。
例えば、分散データストレージシステム100Bは、追加パラメーター(本明細書においては、アップデートフラッグ(update flag)と称される)を(KV)SSD150に伝達できる。
アップデートフラッグを用いて、(KV)SSD150のSSDコントローラーは、クライアントアプリケーション101から受信したブロックアップデート要請と関連したガベージコレクションを扱う追加フラッシュブロック及びスレッド(thread)を提供するように自ら設定できる。
ブロックアップデートを許容しないことにより(例えば、アップデートフラッグ=「フォルス」(false))、分散データストレージシステム100Bは、別のフラッシュチャンネル又はダイを介する並列性の結果として処理量の巨大な増加を達成できる。
新たなキーを有して、それぞれの新たなライトが用いられる場合、(KV)SSD150は、ライト中のブロックがオーバーライト(overwrite)されるか否かを確認するために、チャンネル又はダイの間に同期化を遂行する必要がない。
このような場合、データノード221は、ブロックアップデートフラッグを「フォルス」で設定できる。
図2Aは、従来の例示的なSSDのシステム構成を示す図である。
図1A及び図2Aを参照すると、分散データストレージシステム100Aは、ローカルファイルシステム(例えば、リナックスのext4)を「/mnt/fs」で設置してSSD140を設定する。
SSD140に格納されたファイルは、SSD140の設置されたファイルシステムによりアクセスされることができる。
図2Bは、本発明の一実施形態による、キー値SSDの例示的なシステム構成を示す図である。
図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)に設定するようにさらに構成することができる。
消去ブロックサイズ及び分散データストレージシステム100Bのデータサイズが、同一であるか、又は一致するように設定することにより、(KV)SSD150がチャンネル間のI/O動作が可能でないように設定された場合、分散データストレージシステム100Bは、(KV)SSD150の全てのチャンネル又はダイについてロックレス(lock−less)I/O動作の達成を実行する。
例えば、(KV)SSD150は、全ての可能なチャンネルのうち、I/Oがルーティング(routing)されるべきチャンネルを判別するために、簡単なハッシュ関数(例えば、アドレスモッド(address mod)10)を用いる。
この場合、与えられたアドレスに対する全てのI/O動作は、同じフラッシュチャンネルに一貫してルーティングされるはずである。
チャンネルが直列処理装置(serial processing unit)により実行される場合、そのチャンネルにルーティングされる全てのI/O動作は、任意のチャンネル間のロックを要求せずに整列される。
結果的に、分散データストレージシステム100Bは、同期化無しにI/Oスレッドの全般にわたって完璧な並列性を達成できる。
本発明の(KV)SSDは、(KV)SSDが消去ブロックをガベージコレクションユニットとして扱う方式により並列性を達成できる。
図3は、本発明の一実施形態による、チャンネルレベル(channel−level)の並列性(parallelism)を達成する例示的なSSDチャンネル及びダイアーキテクチャを説明するための図である。
(KV)SSDは、I/O性能を向上させるために、チャンネルレベルの並列性を活用できる。
本発明の例示において、(KV)SSDは、Nチャンネル及びMウェイを有し、ここにおいてN及びMは1以上の整数である。
分散ファイルシステム(例えば、HDFS)のデータサイズは、(KV)SSDのブロックサイズ又はブロックサイズの倍数と同一に設定される。
(KV)SSDのブロックサイズは、チップ(又はダイ)の消去ユニットのサイズと(KV)SSD内部のウェイの個数の積により決定される。
(即ち、ブロックサイズ=消去ユニットのサイズ×ウェイの個数)
データは、同じチャンネルのチップにわたってストライプされ得る。
例えば、(KV)SSDは、6MBの消去ユニットサイズ及び8ウェイを有し、分散ファイルシステムのデータサイズは、(KV)SSDのデータグループに適合するように48MBに設定される。
48MBデータの削除が、同じチャンネルで8個の完全な消去ブロックの再設定を惹起することにより、ガベージコレクションは、チャンネルレベルの並列性で発生しない。
しかし、チャンネルレベルの並列性は、複数のチャンネルが提供できる潜在的な並列性を活用しない。
図4は、本発明の一実施形態による、ウェイレベル(way−level)の並列性を達成する例示的なSSDチャンネル及びダイアーキテクチャを説明するための図である。
(KV)SSDは、I/O性能を向上させるためにウェイレベルの並列性を活用できる。
この場合、分散ファイルシステム(例えば、HDFS)のデータサイズは、(KV)SSDのブロックサイズ又はブロックサイズの倍数と同一に設定される。
(KV)SSDのブロックサイズは、消去ユニットのサイズとチャンネルの個数の積により決定される。
(即ち、ブロックサイズ=消去ユニットのサイズ×チャンネルの個数)
ガベージコレクションユニット及びデータサイズは、ブロックサイズの積である。
データは、同じウェイのチップにわたってストライプされ得る。
データストライピングは、チャンネル並列性の完全な使用を可能なようにする全てのチャンネルで発生し得る。
図5は、本発明の一実施形態による、ダイ/チップレベルの並列性を達成する例示的なSSDチャンネル及びダイアーキテクチャを説明するための図である。
本発明の例示において、SSDチャンネルの個数はNであり、ダイの個数はNより大きいMである。
ダイ/チップレベルの並列性は、(KV)SSDのチャンネル及びチップで最も高い並列性を提供する。
この場合、ブロックサイズは、消去ユニットと同一であり、ガベージコレクションは、消去ユニットから発生する。
データサイズは、消去ユニットの倍数に一致する。
ダイ/チップレベルの並列性は、仮想ノードを有する一貫されたハッシング(hashing)と類似する。
この場合、それぞれの仮想ノードは、消去ブロックユニットに対応し、物理的ノードはチャンネルに対応する。
HDFSのような分散ファイルシステムは、データの位置を管理するためにメタデータを維持する。
例えば、それぞれのファイルは、ファイルを包含する全てのブロックのリストを維持する。
複製された分散ストレージシステムは、与えられたブロック(又は、ファイル)を格納する全てのノードの位置を羅列する別のマップを維持する。
いくつかの分散データストレージシステムにおいて、このようなマッピングテーブルは、分散データストレージシステムの拡張性を制限する単一のノードのメモリーに存在する。
例えば、このようなマッピングテーブルを格納するメタデータノードが、追加のマッピングデータを格納する十分なメモリーを有しない場合、ブロック又はファイルは追加されない可能性がある。
ファイルシステムは、このようなマッピングを格納するデータストレージデバイスの最上位で利用することができるが、追加のオーバーヘッドを発生させる。
本発明の(KV)SSDは、ローカルファイルシステムを要求せずに、ブロックリストに対するファイルのマッピング及びノードリストに対するブロックのマッピングを持続的に維持して、キー値のペアでデータを直接格納できる。
結果的に、メタデータを格納するノードは、メモリー容量により制限されずに、追加のファイルシステムを有するオーバーヘッドを発生させない。
このようなマッピング情報は、(KV)SSDに直接格納されるので、ファイルによりインデックシングされるように、単一のマッピングテーブルに格納することができる。
これは、(KV)SSDの単一ルックアップ(lookup)が全てのデータブロックを検索できるようにする。
単一マッピングテーブルは、メタデータをさらに拡張性が有り(ただ一つのマッピングテーブルにより)、もっと効率的に(一つのルックアップにより)作る。
(KV)SSDに格納されたファイルをリードするプロセスは、一般的なハッシュマップ又は類似したデータ構造を使用するプロセスと類似する。
データ構造は、(KV)SSDに直接連結されるライブラリ(library)であり得る。
例えば、クライアントアプリケーションは、ファイルIDを用いてファイルをリードするためにファイルの検索動作を実行する。
メタデータノードは、ブロブ(blob)の形態でファイルのブロックリストを返信し、メタデータノードは、ブロックリストが元々記入された型式でマッピングされる。
ブロックリストは、ブロックリストにおいてそれぞれのブロックが格納されたノードリストを含む。
メタデータノードは、ブロックについてのリードを実行するために、ブロックのリストと関連したノードをクライアントアプリケーションに伝達(送信)する。
このような方式において、それぞれのルックアップがクライアントアプリケーションにリストを伝達(送信)するために、メタデータノードは、相変わらずメモリーにマッピングテーブルを格納する必要がある。
しかしながら、メタデータノードは、メモリーに全てのマッピング情報を維持する必要がない。
例えば、最近、リードしたファイルのキャッシュは、拡張性及び効率性の間にトレードオフ(trade−off)を提供できる。
図6Aは、例えば、図1A及び図2AのSSD140のようなSSD140の例示的なマッピング方式を示す図である。
エディットログ(edit log)は、ファイル及びマッピングテーブルで実行された全てのメタデータ動作のログを示す。
このようなエディットログは、ディスク(disk)に保存される。
これはファイル及びブロックマッピングテーブルがメモリーのみにあるので、必要である。
ネームノードが衝突すると、ストレージからエディットログをリードすることにより、メモリーにファイル及びブロックマッピングテーブルを再構成する。
図6Bは、本発明の一実施形態による、例えば、図1B及び図2Bのような(KV)SSD150の例示的なマッピング方式を示す。
SSD140は、ファイルマッピングテーブル及びブロックマッピングテーブルをメモリーに格納する。
このようなマッピング情報を利用して、クライアントアプリケーションは、ファイルと関連されたデータブロックを検索できる。
一方、(KV)SSD150は、ブロックリストとノードリストの単一マッピングを含むファイルマッピングテーブルを格納する。
図7、図8及び図9は、HDFSのような分散ファイルシステムにおいてファイルを生成して記入し、ファイルをリードし、ファイルを削除する例示的なI/Oプロセスを説明するダイヤグラム(diagram)である。
それぞれのダイヤグラムの説明において、従来のプロセスについての差異点及び利点を説明する。
図7は、本発明の一実施形態による、分散ファイルシステムの(KV)SSDにファイルを生成して格納する例示的なプロセスを説明するための図である。
分散ファイルシステムは、クライアント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を格納する。
(KV)SSD730は、ネームノード720に完了(done)メッセージ763を伝送することにより応答し、以後、ネームノード720は、完了(done)メッセージ764でクライアント710に対して応答する。
ネームノード720がクライアント710に応答した後、クライアント710は、ファイルに対するブロックを割り当てるためにコマンド765((allocateBlock(fileID))を割り当てる。
これに応答して、ネームノード720は、ブロックID(blockID)及びブロックを格納するためのデータノード(例えば、データノード740)を割り当て、クライアント710に応答766を伝送する。
ネームノード720は、ブロックIDとして単純に増加するIDを割り当てる。
クライアント710は、ブロックIDを用いてデータノード740にブロックのデータコンテンツを含むブロックライト要請767(writeBlock(blockID, content))を伝送する。
ブロックライト要請767に応答して、データノード740は、(KV)SSD750に伝達された因数、ブロックID(blockID)及びコンテンツ(conten)を含むキー値格納コマンド768(kv.store(blockID, content))を提供する。
一般的なSSDを含む従来のデータノードにおいて、データノードについてのライト動作は、ファイルシステムにライトを要求し、SSDのデータストレージ個体にライトを要求できる。
ブロックを格納した後、(KV)SSD750は、完了(done)メッセージ678でデータノード740に応答し、データノード740は、完了(done)メッセージ770でクライアント710に応答する。
クライアント710は、ブロックID及びデータノードタプルを関連したコミット(commit)をするために、ネームノード720にコミットライトコマンド771(commit(Write(fileID, blockID)))を伝送する。
ネームノード720は、アペンド(append)コマンド772(kv.append(fileID, blockID+dataNode))を(KV)SSD730に伝送する。
アペンドプロセスにおいて、アペンドコマンド772は、(KV)SSD730についての単一の直接動作であり、従来の分散ストレージシステムでのように二つの別のマップ(即ち、ファイルブロックマップ及びブロックデータノードマップ)についてのメモリー動作ではない。
図8は、本発明の一実施形態による、分散ファイルシステムの(KV)SSDに格納されたファイルをリードする例示的なプロセスを説明するための図である。
データノード740に格納されたファイルをリードするために、クライアント710は、ファイルID(fileID)を含むリードファイル要請861(openFile(fileID))をネームノード720に伝送(送信)する。
ファイルIDを用いて、ネームノード720は、(KV)SSD730に検索コマンド(kv.retrieve(fileID))を伝送(送信)し、(KV)SSD730は、ブロックをファイルIDと関連したデータノードにマッピングするマッピング情報863を返還(返信)する。
ネームノード720は、クライアント710にマッピング情報864を伝達(返信)する。
ブロックデータノードマッピング情報に包含されたブロックIDを用いて、クライアント710は、データノード740にブロックリードコマンド865(readBlock(blockID))を伝送する。
データノード740は、ブロックコンテンツを検索するために、(KV)SSD750にブロック検索コマンド866(kv.retrieve(blockID))を伝送する。
(KV)SSD750は、データノード740に要請されたブロックのコンテンツ867を伝送(返信)し、データノード740は、クライアント710に検索されたブロックコンテンツ868を伝達(返信)する。
従来のリード動作との根本的な差異点は、ブロックリストに対するファイル及びデータノードリストに対するブロックについてのインメモリーハッシュテーブル(in−memory hash table)を検索せずに、ネームノード720がブロックデータノードマップを検索するために、単一の直接(KV)SSDリード動作を提供することである。
なお、データノード740は、任意のストレージソフトウェアミドルウェア(ファイルシステムのような)をバイパスして、(KV)SSDに直接データを検索するための要請を伝送する。
図9は、本発明の一実施形態のよる、分散ファイルシステムの(KV)SSDにおいてファイルを削除する例示的なプロセスを説明するための図である。
クライアント710は、ファイルIDを包含するファイル削除コマンド961(deleteFile(fileID))をネームノード720に伝送する。
ネームノード720は、ファイルのマッピング情報を検索するために、(KV)SSD730にキー値検索コマンド962(kv.retrieve(fileID))を伝送し、(KV)SSD730は、ファイルIDと関連されたデータにブロックをマッピングするマッピング情報963を返還(返信)する。
ネームノード720は、関連したブロックに対する後続非同期削除プロセスのために、ブロックIDマッピングを一時的にキャッシュできる。
ネームノード720は、(KV)SSD730にキー値削除コマンド964(kv.delete(fileID))を伝送し、(KV)SSD730は、ファイルID及び関連されたマッピングを削除した後、ネームノード720に完了(done)メッセージ965を伝送(返信)する。
ファイルIDと関連されたマッピング情報を検索する場合、ネームノード720は、削除されるファイルに対するブロックデータノードタプルを(KV)SSD730から検索する。
このようなプロセスは、複数のインメモリーハッシュテーブルをルックアップすることと関連する従来の分散ストレージシステムと異なる。
代わりに、ネームノード720は、ブロックデータノードマップを含む(KV)SSD730からファイルに基づいたキーを削除する(964)。
ネームノード720は、クライアント710に制御権を返還し(969)、ネームノード720は、(KV)SSD750から対応するブロックを削除するために、非同期的にデータノード740にブロック削除コマンド966を伝送する。
図9に示したファイル削除プロセスは、分散ファイルシステムのブロックサイズが、(KV)SSD750の消去ブロックサイズと同一であるか、又は消去ブロックサイズで割ることができる仮定に基づく。
これは、インメモリー動作から(KV)SSDに基づく動作に移動するオーバーヘッドを最小化させることができる。
本発明の一実施形態によると、ソリッドステートドライブ(SSD)は、複数のデータブロックと、複数のデータブロックにアクセスするための複数のフラッシュチャンネル及び複数のウェイと、及び複数のデータブロックのブロックサイズを設定をSSDコントローラーと、を含む。データファイルは、一つ以上のキー値のペアを含むSSDに格納され、それぞれのキー値のペアは、キーとしてブロック識別子及び値としてブロックデータを有する。データファイルのサイズは、ブロックサイズ又はブロックサイズの倍数と同一である。
SSDは、ハドゥープ分散ファイルシステム(HDFS)を包含する分散ファイルシステムで利用され得る。
SSDコントローラーは、ブロックアップデートフラッグに基づいて、ブロックアップデートを許容するか、又は許容しないようにさらに設定できる。
SSDコントローラーは、アライメントフラッグに基づいてデータファイルを複数のデータブロックに合わせてアライメントするようにさらに設定できる。
ブロックサイズは、SSDの消去ユニットとフラッシュチャンネルの数の積に基づいて決定され得る。
ブロックサイズは、SSDの消去ユニットとウェイの数の積に基づいて決定され得る。
ブロックサイズは、SSDの消去ユニットと同一で有り得る。
SSDは、ファイルに関連した複数のデータブロック中に、一つ以上のデータブロックに対するファイルの第1マッピング、及びSSDを含むデータノードに対する一つ以上のデータブロック中に、少なくとも一つの第2マッピングを含む、ファイルマッピングテーブルを格納できる。
本発明の他の実施形態によると、分散データストレージシステムは、クライアントと、第1キー値(KV)ソリッドステートドライブ(SSD)を含むネームノートと、第2(KV)SSDを包含するデータノードと、を含み、第2(KV)SSDは、複数のデータブロックと、複数のデータブロックにアクセスするための複数のフラッシュチャンネル、複数のウェイ及び複数のデータブロックのブロックサイズを設定するSSDコントローラーと、を含む。クライアントは、データファイルを格納するためのファイル識別子を含む生成ファイル要請をネームノードに伝送し、データファイルと関連した複数のデータブロック中に、一つ以上のデータブロックを割り当てるために、割り当てコマンドをネームノードに伝送する。ネームノードは、一つ以上のデータブロックのブロック識別子及び一つ以上のデータブロックを格納するために割り当てられたデータノードのデータノード識別子をクライアントに返還(返信)する。クライアントは、一つ以上のデータブロックを格納するために、データノードにブロック格納コマンドを伝送する。第2(KV)SSDは、キー(key)−値(value)のペアで一つ以上のデータブロックを格納し、少なくとも一つのキー値のペアは、キーとしてブロック識別子及び値としてブロックデータを有する。データファイルのサイズは、ブロックサイズ又はブロックサイズの倍数と同一である。
分散データストレージシステムは、ハドゥープ分散ファイルシステム(HDFS)を適用できる。
第2(KV)SSDは、ファイルと関連した一つ以上のデータブロックに対するデータファイルの第1マッピング及びデータノードに対する一つ以上のデータブロック中に、少なくとも一つの第2マッピングを含むファイルマッピングテーブルを格納できる。
本発明の他の実施形態によると、分散データストレージシステムの方法は、データファイルを格納するためのファイル識別子を含む、生成ファイル要請をクライアントからネームノードに伝送(送信)するステップと、ネームノードの第1キー値(KV)ソリッドステートドライブ(SSD)にキー値のペアでファイル識別子を格納するステップと、ファイル識別子は、キーとしてキー値に格納され、キーと関連した値は空けられ、データファイルと関連した一つ以上のデータブロックを割り当てるために、クライアントからネームノードに割り当てコマンドを伝送するステップと、ネームノードにおいて、一つ以上のデータブロック中に、少なくとも一つに対するブロック識別子を割り当て、一つ以上のデータブロックを格納するためのデータノードを割り当てるステップと、ネームノードからクライアントにブロック識別子及びデータノードのデータノード識別子を返還(返信)するステップと、クライアントからデータノードにブロック識別子及びコンテンツを含むライトブロック要請を伝送するステップと、データノードの第2(KV)SSDにキー値のペアで一つ以上のデータブロックを格納するステップと、を含む。データノードの第2(KV)SSDは、ブロックサイズを有する一つ以上のデータブロックを包含する。少なくとも一つのキー値のペアは、キーとしてブロック識別子及び値としてブロックデータを有する。データファイルのサイズは、ブロックサイズ又はブロックサイズの倍数と同一である。
クライアント、ネームノード及びデータノードは、ハドゥープ分散ファイルシステム(HDFS)のノードであり得る。
分散データストレージシステムの方法は、ブロックアップデートを許容するか、又は許容しないようにブロックアップデータフラッグ(flag)を設定するステップと、をさらに含み得る。
分散データストレージシステムの方法は、データファイルをデータノードの第2(KV)SSDの複数のデータブロックに合わせてアライメントするように、アライメントフラッグを設定するステップと、をさらに含み得る。
分散データストレージシステムの方法は、ファイル識別子及びブロック識別子を含むライトコミットコマンドをクライアントからネームノードに伝送するステップと、ネームノードにファイル識別子と、ブロック識別子及びデータノードを追加するように単一の直接動作を追加するステップと、をさらに含み得る。
分散データストレージシステムの方法は、データファイルをリードするために、クライアントからネームノードにリードファイル要請を伝送するステップと、データファイルと関連した一つ以上のデータブロック中に、少なくとも一つに対するブロック識別子及びデータノード識別子をクライアントに返還(返信)するステップと、データノードの第2(KV)SSDに格納された一つ以上のデータブロックを検索するために、クライアントからデータノードにブロックリードコマンドを伝送するステップと、及びブロック識別子により識別されたブロックデータをデータノードからクライアントに返還(返信)するステップと、をさらに含み得る。
分散データストレージシステムの方法は、クライアントからネームノードにファイル識別子を含むファイル削除コマンドを伝送するステップと、データファイルと関連した一つ以上のデータブロック中に、少なくとも一つに対するブロック識別子及びデータノード識別子をクライアントに返還(返信)するステップと、ネームノードからネームノードの第1(KV)SSDにデータファイルのファイル識別子を含むキー値の削除コマンドを伝送するステップと、ネームノードからデータノードに一つ以上のデータブロックのリストを含む、ブロック削除コマンドを伝送するステップと、データノードの第2(KV)SSDに格納された一つ以上のデータブロックを削除するステップと、をさらに含み得る。
第2(KV)SSDは、ファイルと関連した一つ以上のデータブロックに対するファイルの第1マッピング及びデータノードに対する一つ以上のデータブロック中に、少なくとも一つの第2マッピングを含む、ファイルマッピングテーブルを格納できる。
本明細書において、ハイパースケールデータセンター(Hyperscale Data Center)環境におけるイーサネット(登録商標)ストレージの自動発見を提供するためのストレージシステム、及びその動作方法を具現する様々な実施形態を示すために、上記実施形態を説明した。
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
本発明は、データを効率的に格納するためのキー値ストレージを用いた分散ファイルシステム及びその方法を用いるストレージデバイスやストレージシステムに好適に使用される。
100A、100B 分散データストレージシステム
101 クライアントアプリケーション
105 ファイル
115 ブロックマップ
111、720 ネームノード
121、221、740 データノード
140 従来のSSD
150、730、750 (KV)SSD
710 クライアント

Claims (19)

  1. 複数のデータブロックと、
    前記複数のデータブロックにアクセスするための複数のフラッシュチャンネル(flash channel)及び複数のウェイ(way)と、
    前記複数のデータブロックのブロックサイズを設定する、ソリッドステートドライブ(SSD)コントローラーと、を有し、
    データファイルが、一つ以上のキー値のペアを含むソリッドステートドライブ(SSD)に格納され、少なくとも一つのキー値のペアは、キーとしてブロック識別子及び値としてブロックデータを有し、
    前記データファイルのサイズは、前記ブロックサイズ又は前記ブロックサイズの倍数と同一であることを特徴とするソリッドステートドライブ(SSD)。
  2. 前記SSDは、ハドゥープ分散ファイルシステム(Hadoop Distributed File System:HDFS)を含む分散ファイルシステムにおいて用いられることを特徴とする請求項1に記載のソリッドステートドライブ(SSD)。
  3. 前記SSDコントローラーは、ブロックアップデートフラッグ(block update flag)に基づいて、ブロックアップデートを許容するか、又は許容しないようにさらに設定することを特徴とする請求項1に記載のソリッドステートドライブ(SSD)。
  4. 前記SSDコントローラーは、アライメントフラッグ(alignment flag)に基づいて、前記データファイルを前記複数のデータブロックに合わせてアライメントするようにさらに設定することを特徴とする請求項1に記載のソリッドステートドライブ(SSD)。
  5. 前記ブロックサイズは、前記SSDの消去ユニットとフラッシュチャンネルの数との積に基づいて決定されることを特徴とする請求項1に記載のソリッドステートドライブ(SSD)。
  6. 前記ブロックサイズは、前記SSDの消去ユニットとウェイの数との積に基づいて決定されることを特徴とする請求項1に記載のソリッドステートドライブ(SSD)。
  7. 前記ブロックサイズは、前記SSDの消去ユニットと同一であることを特徴とする請求項1に記載のソリッドステートドライブ(SSD)。
  8. 前記SSDは、前記データファイルに関連した前記複数のデータブロック内の一つ以上のデータブロックに対する前記データファイルの第1マッピング、及び前記SSDを含むデータノードに対する前記一つ以上のデータブロック内の少なくとも一つの第2マッピングを含むファイルマッピングテーブルを格納することを特徴とする請求項1に記載のソリッドステートドライブ(SSD)。
  9. クライアントと、
    第1キー値(key−value:KV)ソリッドステートドライブ(SSD)を含むネームノードと、
    第2キー値(KV)SSDを含むデータノードと、を有し、
    前記第2キー値(KV)SSDは、複数のデータブロックと、前記複数のデータブロックにアクセスするための複数のフラッシュチャンネルと、複数ウェイ及び前記複数のデータブロックのブロックサイズを設定するSSDコントローラーと、を含み、
    前記クライアントは、データファイルを格納するためのファイル識別子を含む生成ファイル要請を前記ネームノードに送信し、前記データファイルと関連した複数のデータブロック中に、一つ以上のデータブロックを割り当てるために、割り当てコマンドを前記ネームノードに送信し、
    前記ネームノードは、前記一つ以上のデータブロックのブロック識別子、及び前記一つ以上のデータブロックを格納するために割り当てられた前記データノードのデータノード識別子を前記クライアントに返信し、
    前記クライアントは、前記一つ以上のデータブロックを格納するために、前記データノードにブロック格納コマンドを送信し、
    前記第2キー値(KV)SSDは、キー(key)値のペアとして前記一つ以上のデータブロックを格納し、少なくとも一つのキー値のペアは、キーとして前記ブロック識別子及び値としてブロックデータを有し、
    前記データファイルのサイズは、前記ブロックサイズ又は前記ブロックサイズの倍数と同一であることを特徴とする分散データストレージシステム。
  10. 前記分散データストレージシステムは、ハドゥープ分散ファイルシステム(HDFS)を適用することを特徴とする請求項9に記載の分散データストレージシステム。
  11. 前記第2キー値(KV)SSDは、前記データファイルと関連した一つ以上のデータブロックに対する前記データファイルの第1マッピング、及びデータノードに対する前記一つ以上のデータブロック内の少なくとも一つの第2マッピングを含むファイルマッピングテーブルを格納することを特徴とする請求項9に記載の分散データストレージシステム。
  12. 分散データストレージシステムの方法であって、
    データファイルを格納するためのファイル識別子を含む、生成ファイル要請をクライアントからネームノードに送信するステップと、
    前記ネームノードの第1キー値(KV)ソリッドステートドライブ(SSD)に、キー値のペアとして、キーとして前記キー値に格納され前記キーと関連した値は空いている(empty)前記ファイル識別子を格納するステップと、
    前記データファイルと関連した複数のデータブロック中の一つ以上のデータブロックを割り当てるために、前記クライアントから前記ネームノードに割り当てコマンドを送信するステップと、
    前記ネームノードにおいて、前記一つ以上のデータブロック内の少なくとも一つに対するブロック識別子を割り当て、前記一つ以上のデータブロックを格納するためのデータノードを割り当てるステップと、
    前記ネームノードから前記クライアントに、前記ブロック識別子及び前記データノードのデータノード識別子を返信するステップと、
    前記クライアントから前記データノードに、前記ブロック識別子及びコンテンツを含むライトブロック要請を送信するステップと、
    前記データノードの第2キー値(KV)SSDに、キー値のペアとして、前記一つ以上のデータブロックを格納するステップと、を有し、
    前記データノードの前記第2キー値(KV)SSDは、ブロックサイズを有する一つ以上のデータブロックを含み、
    少なくとも一つのキー値のペアは、キーとしてブロック識別子及び値としてブロックデータを有し、
    前記データファイルのサイズは、前記ブロックサイズ又は前記ブロックサイズの倍数と同一であることを特徴とする分散データストレージシステムの方法。
  13. 前記クライアントと、前記ネームノード及び前記データノードは、ハドゥープ分散ファイルシステム(HDFS)のノードであることを特徴とする請求項12に記載の分散データストレージシステムの方法。
  14. ブロックアップデートを許容するか、又は許容しないようにブロックアップデートフラッグを設定するステップと、をさらに有することを特徴とする請求項12に記載の分散データストレージシステムの方法。
  15. 前記データファイルを、前記データノードの前記第2キー値(KV)SSDの前記複数のデータブロックに合わせてアライメント(alignment)するようにフラッグを設定するステップをさらに有することを特徴とする請求項12に記載の分散データストレージシステムの方法。
  16. 前記ファイル識別子及び前記ブロック識別子を含む、ライトコミットコマンド(write commit command)を前記クライアントから前記ネームノードに送信するステップと、
    前記ネームノードに、前記ファイル識別子と、前記ブロック識別子及び前記データノードを追加するように単一の直接動作を追加するステップと、をさらに有することを特徴とする請求項12に記載の分散データストレージシステムの方法。
  17. 前記データファイルをリードするために、前記クライアントから前記ネームノードにリードファイルの要請を送信するステップと、
    前記データファイルと関連した前記一つ以上のデータブロック中に、少なくとも一つに対する前記ブロック識別子及び前記データノード識別子を前記クライアントに返信するステップと、
    前記データノードの前記第2キー値(KV)SSDに格納された前記一つ以上のデータブロックを検索するために、前記クライアントから前記データノードにブロックリードコマンドを送信するステップと、
    前記ブロック識別子により識別された前記ブロックデータを、前記データノードから前記クライアントに返信するステップと、をさらに有することを特徴とする請求項16に記載の分散データストレージシステムの方法。
  18. 前記クライアントから前記ネームノードに、前記ファイル識別子を包含するファイル削除コマンドを送信するステップと、
    前記データファイルと関連した前記一つ以上のデータブロック中に、少なくとも一つに対する前記ブロック識別子及び前記データノード識別子を前記クライアントに返信するステップと、
    前記ネームノードから前記ネームノードの前記第1キー値(KV)SSDに、前記データファイルの前記ファイル識別子を含むキー値削除コマンドを送信するステップと、
    前記ネームノードから前記データノードに、前記一つ以上のデータブロックのリストを含むブロック削除コマンドを伝送するステップと、
    前記データノードの前記第2キー値(KV)SSDに格納された前記一つ以上のデータブロックを削除するステップと、をさらに有することを特徴とする請求項17に記載の分散データストレージシステムの方法。
  19. 前記第2キー値(KV)SSDは、前記ファイルと関連した一つ以上のデータブロックに対する前記ファイルの第1マッピング、及び前記データノードに対する前記一つ以上のデータブロック中に少なくとも一つの第2マッピングを含む、ファイルマッピングテーブルを格納することを特徴とする請求項12に記載の分散データストレージシステムの方法。
JP2019006124A 2018-02-06 2019-01-17 ソリッドステートドライブ(ssd)及び分散データストレージシステム並びにその方法 Active JP7437117B2 (ja)

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 2018-03-23
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

Publications (2)

Publication Number Publication Date
JP2019139759A true JP2019139759A (ja) 2019-08-22
JP7437117B2 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 (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI737189B (zh) * 2019-02-23 2021-08-21 國立清華大學 易於從固態儲存裝置之故障中還原的方法、電腦系統,及固態儲存裝置
CN112394874A (zh) 2019-08-13 2021-02-23 华为技术有限公司 一种键值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
CN113220237A (zh) * 2021-05-17 2021-08-06 北京青云科技股份有限公司 一种分布式存储方法、装置、设备及存储介质
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
TWI819943B (zh) * 2022-12-30 2023-10-21 康和綜合證券股份有限公司 資料索引值產生裝置、資料索引值產生方法及其電腦程式產品

Citations (3)

* Cited by examiner, † Cited by third party
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 (10)

* Cited by examiner, † Cited by third party
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 华为技术有限公司 键值存储系统中构建文件系统的方法、装置及电子设备
CA2901294C (en) 2013-02-21 2020-06-30 CFM Global LLC Building support with concealed electronic component for a structure
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
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
EUI-YOUNG CHUNG ET AL.: "A High-Performance Solid-State Disk with Double-Data-Rate NAND Flash Memory", ARXIV.ORG, JPN6023006895, 8 February 2015 (2015-02-08), ISSN: 0004994777 *
小川 宏高: "高速フラッシュメモリ向けMapReduceフレームワークの実現に向けて", 情報処理学会研究報告 平成21年度▲3▼ [CD−ROM] ハイパフォーマンスコンピューティング(H, vol. Vol.2009-HPC-121, No.42, JPN6023006899, 15 October 2009 (2009-10-15), JP, ISSN: 0004994776 *

Also Published As

Publication number Publication date
CN110119425A (zh) 2019-08-13
TW201935243A (zh) 2019-09-01
JP7437117B2 (ja) 2024-02-22
KR20190095089A (ko) 2019-08-14
US20190243906A1 (en) 2019-08-08
US11392544B2 (en) 2022-07-19
TWI778157B (zh) 2022-09-21

Similar Documents

Publication Publication Date Title
JP7437117B2 (ja) ソリッドステートドライブ(ssd)及び分散データストレージシステム並びにその方法
US10891055B2 (en) Methods, systems and devices relating to data storage interfaces for managing data address spaces in data storage devices
KR102444832B1 (ko) 분산된 가상 명칭 공간 관리를 사용한 온-디맨드 스토리지 프로비져닝
US11379142B2 (en) Snapshot-enabled storage system implementing algorithm for efficient reclamation of snapshot storage space
TWI661301B (zh) 記憶體系統及控制非揮發性記憶體之控制方法
JP6982468B2 (ja) メモリシステムおよび制御方法
TWI791140B (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
US11287994B2 (en) Native key-value storage enabled distributed storage system
US20160179581A1 (en) Content-aware task assignment in distributed computing systems using de-duplicating cache
US20220261377A1 (en) Scalable multi-tier storage structures and techniques for accessing entries therein
US20150067283A1 (en) Image Deduplication of Guest Virtual Machines
CN114860163B (zh) 一种存储系统、内存管理方法和管理节点
US10169124B2 (en) Unified object interface for memory and storage system
WO2019001020A1 (zh) 基于分布式系统的存储空间整理方法、装置及系统
US10503693B1 (en) Method and system for parallel file operation in distributed data storage system with mixed types of storage media
JP2019057151A (ja) メモリシステムおよび制御方法
KR100622130B1 (ko) 객체 기반 스토리지 시스템에서 고속의 데이터 입출력을위한 객체 저장소 관리 시스템 및 방법
KR101341412B1 (ko) 비대칭 분산 파일 시스템에서의 메타데이터 관리 장치 및 방법
JP7013546B2 (ja) メモリシステム
CN111274259A (zh) 一种分布式存储系统中存储节点的数据更新方法
JP7204020B2 (ja) 制御方法
KR20230130579A (ko) 이종 스토리지 시스템을 위한 시스템 및 방법
JP2023021450A (ja) メモリシステム
JP2022019787A (ja) メモリシステムおよび制御方法

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