JP2015520588A - Fec技法を使用したキー値に基づく記憶システムに対する低遅延アクセスのための方法及びシステム - Google Patents
Fec技法を使用したキー値に基づく記憶システムに対する低遅延アクセスのための方法及びシステム Download PDFInfo
- Publication number
- JP2015520588A JP2015520588A JP2015516007A JP2015516007A JP2015520588A JP 2015520588 A JP2015520588 A JP 2015520588A JP 2015516007 A JP2015516007 A JP 2015516007A JP 2015516007 A JP2015516007 A JP 2015516007A JP 2015520588 A JP2015520588 A JP 2015520588A
- Authority
- JP
- Japan
- Prior art keywords
- delay
- blocks
- erasure correction
- storage system
- correction coding
- 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
Links
- 238000003860 storage Methods 0.000 title claims abstract description 147
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000012937 correction Methods 0.000 claims abstract description 51
- 238000012546 transfer Methods 0.000 claims abstract description 19
- 238000009826 distribution Methods 0.000 claims abstract description 11
- 238000005259 measurement Methods 0.000 claims abstract description 9
- 238000004088 simulation Methods 0.000 claims abstract description 9
- 230000004044 response Effects 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 11
- 230000001186 cumulative effect Effects 0.000 claims description 7
- 238000005315 distribution function Methods 0.000 claims description 7
- 238000004519 manufacturing process Methods 0.000 claims 3
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 description 58
- 230000008569 process Effects 0.000 description 29
- 239000008186 active pharmaceutical agent Substances 0.000 description 21
- 238000010586 diagram Methods 0.000 description 18
- 230000000875 corresponding effect Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 230000001934 delay Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4334—Recording operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1096—Parity calculation or recalculation after configuration or reconfiguration of the system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0047—Decoding adapted to other signal detection operation
- H04L1/0048—Decoding adapted to other signal detection operation in conjunction with detection of multiuser or interfering signals, e.g. iteration between CDMA or MIMO detector and FEC decoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4408—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream encryption, e.g. re-encrypting a decrypted video stream for redistribution in a home network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
Description
[優先権]
本特許出願は、2012年6月8日に出願された「A Method and Apparatus for Low Delay Access to Key−Value Based Cloud Storage Systems Using FEC Techniques」と題する、対応する米国仮特許出願第61/657,554号に対する優先権を主張し、それを参照により組み込む。
概説
1.要求ハンドラ400が、入来するメッセージ自体から、要求されるオブジェクト(Oi)の一意のID及び遅延目標Dを抽出する。図11において、この第1の抽出動作は処理ブロック1100に対応する。
2.ストレージ階層内で要求されているオブジェクトが記憶されている場所を判定するために、要求ハンドラ400がインターフェース401を使用して、要求されているオブジェクトの一意のIDを有する位置マッパ410にマッピングサービスを発行する。オブジェクトがローカル(たとえば、キー値ストアクライアントのメモリ内キャッシュ又はローカルディスク)に記憶されている場合、要求ハンドラ400は、ローカルストレージ(図4には示さず)からデータを取り出し、オブジェクトをユーザアプリケーションに送る。これらの方法ステップは、図11の処理ブロック1110及び1155に対応する。
3.要求されているオブジェクトがローカルに記憶されていない場合、位置マッパ410は、オブジェクト(Oi)に対応する順序付けされたキー値セット(Key1,・・・,KeyN)、及び、キーによっていずれのデータストアが使用されるべきかを返す(図11のブロック1120)。この順序付けされたキー値セットは、要求されているオブジェクトのソースブロック及びパリティブロックを指し示す。たとえば、ユーザアプリケーションがビデオファイル「foo.mpeg」(図6参照)を読み出すことを望む場合、オブジェクト名を与えられたユーザアプリケーションは、開示されているクライアント(たとえば、クライアント302)の一意のIDを生成するための一意のアプリケーションIDを前に付けられ得る。図6に示す例において、「foo.mpeg」はは、最後の書き込み動作の結果として、10個の均等な部分に分割され(すなわち、K=10)、これらの10個の均等な部分は、交換可能にソースブロック又はサブブロックと称される。これらの均等な部分は、元のコンテンツにおけるそれらのバイト順序に関連して列挙され、一意のキー、たとえば、<UID,foo.mpeg.part1>、・・・、<UID,foo.mpeg.part10>を割り当てられる。本明細書における目的のために、<*,*>という表記は、コンマによって分離されている2つの部分列を連結するのに使用される。これらのサブブロックは、各々が順序を保持するように一意のキーを割り当てられるパリティブロックを生成するために、リードソロモンコーダのようなFEC符号化器430にさらに入力される。キー割り当てについて、<UID,foo.mpeg.partK+1>〜<UID,foo.mpeg.parkN>は、それぞれパリティブロック1〜(N−K)に割り当てられる。前回このオブジェクトが更新されたとき、このオブジェクトには、6つの追加のパリティブロックが書き込まれている(すなわち、K=10についてN−K=6又はN=16)。したがって、FEC符号化器430によって出力された順序に従って、一意のキー標識<UID,foo.mpeg.part11>、・・・、<UID,foo.mpeg.part16>があることになる。特定のアプリケーションのための「foo.mpeg」からこれらの一意のキーへのマッピング、及び、これらのキーのうち元のオブジェクトストライプに対応する個数に関する情報がメタデータとして持続的に記憶され、要求ハンドラ400近くにキャッシュされる。要求ハンドラ400がオブジェクト<UID,foo.mpeg>についてのマッピングサービスを発行すると、位置マッパ410は、この一意のキー標識のリスト、及び、標識ごとのバックエンドストレージIDによって応答することができる。図4において、2つのバックエンド記憶位置が、私的クラウド470及び公衆クラウド490として識別される。キーに対応するソース又はパリティブロックが、複数の記憶位置、たとえば、<UID,foo.mpeg.part16>に記憶され得、470及び490の両方において利用可能な当該ブロックの値を有することができる。その場合、両方の位置が、それらの位置の間の優先傾向なしで位置マッパ410によって返される。
4.要求ハンドラ400は、遅延目標D(一実施形態においてユーザアプリケーション301からのアプリケーション要求において指定される)、ソースブロックの数及びソースブロックサイズの情報(各オブジェクトについて持続的に記憶されているメタデータから取り出される)をクラウド性能モニタ420に渡し、クラウド性能モニタは、発行されるべき並列の線形独立要求の数に関する情報、及び、記憶クラウドの優先傾向順序を返す。一実施形態において、必要とされる並列の独立要求の数を求めるために、読み出し又は書き込み動作が行われるかにかかわらず、要求がワイヤ上に置かれた時点から完了応答が受信されるまでの動作の遅延が記録されることに留意されたい。CPMは、この遅延の情報を使用して複数の異なるオブジェクトサイズについての遅延分布を構築する。その後、CPMは、FECによって使用されるブロックサイズに近いオブジェクトの遅延分布を使用して異なるFECが利用された場合、オフライン遅延分布を計算する。これらの動作は、図11のブロック1130の決定を行うのを補助する。一実施形態において、並列要求の数はK以上であり、N以下である。したがって、{Key1,・・・,KeyN}内の任意のキーサブセットSが要求ハンドラ400によって選定され得る。一実施形態において、私的クラウド270がコピーを有し、輻輳していない場合、私的クラウド270は公衆クラウド490よりも高い優先傾向でリストされる。私的クラウド470が公衆クラウド490と比較して過剰な負荷及び遅延を見込む場合、公衆クラウド490はより高い優先傾向を有し得る。
5.要求ハンドラ400は、クラウド性能モニタ420の出力を使用して並列読み出しジョブを用意し(図11のブロック1140)、各ジョブはソース又はパリティブロックに対応する1つの一意のキーに対するものである。一実施形態において、各ジョブは、いずれのクラウド位置がそのジョブに使用されるべきかがそのジョブ記述に含まれているという意味で、自己記述的である。同じオブジェクトに対応するすべての並列読み出しジョブが、バッチとしてタスク待ち行列440に渡される。一実施形態において、バッチ内のジョブに、他のバッチに属するジョブは挟み込まれない。
6.インターフェース404は2つの目的、すなわち、(i)実際のジョブを渡すこと、及び(ii)ジョブ又はバッチ属性を渡すことをサービスする。要求ハンドラ400は、ジョブ又はバッチ属性を「取り消し」に変更することによって、個々のジョブ又は所与のバッチのすべてのジョブを取り消すことができる。ジョブが依然としてその待ち行列にある場合、タスク待ち行列440がジョブを削除する。それ以外の場合、タスク待ち行列440はジョブを処理するスレッドに停止命令を発行する。
7.ワーカスレッド(スレッド450及び460)は、一度に1つのジョブをサービスし、ワーカスレッドの現在のジョブが完了すると(ブロック1150を実行するために要求ハンドラ400に渡される)、ワーカスレッドはタスク待ち行列440からの新たなタスクを要求する。タスク待ち行列440は、要求しているワーカスレッドに先頭のジョブを渡す。ワーカスレッドは、ジョブ記述を使用して複数の異なるクラウド位置にアクセスすることができる。これらの複数の異なるクラウドにアクセスするためのAPIは異なり得、したがって、位置情報が、いずれのクラウドインスタンスが使用されるべきか、及び、いずれのAPI呼び出しが発行されなければならないかを指示する。進行中のジョブに対する停止命令が受信された場合、ワーカスレッドはその現在のジョブを取り消し、ジョブステータスを要求ハンドラ400に返すことができ、新たなジョブを要求する。
8.FECが使用される場合、要求ハンドラ400は、所与のバッチのソースブロック及びパリティブロックがいくつかのワーカスレッドによって返されたとき、それらのソースブロック及びパリティブロックをFEC復号器430に渡す。返されたブロックがソースブロックである場合、そのブロックはまた、要求ハンドラ400によって保持される。FEC復号器430は、任意の欠けているソースブロック(まだ受信されていない)を復元することが可能であるとき、復元されたソースブロックを要求ハンドラ400に渡す(図11の処理ブロック1151及び1152)。
9.一実施形態において、要求されているオブジェクトのすべてのソースブロックを受信する(図11の処理ブロック1153及び1154)と、要求ハンドラ400は、ユーザアプリケーションにオブジェクトOiを送り戻す(図11の処理ブロック1155)。別の実施形態において、要求ハンドラ400は、ユーザアプリケーションがソースブロックを順序よく読みだすことが出来るストリームチャネルを開く。そのような場合、ユーザアプリケーションは、要求ハンドラ400によってオブジェクト全体が復元される前に、バイトストリームの受信を開始することができる。
10.所与のバッチについてすべてのソースブロックが復元された後で、要求ハンドラ400は、同じバッチの残りのジョブについて取り消し要求をタスク待ち行列440に発行する(図11の処理ブロック1154)。
11.要求ハンドラ400が一意のIDを抽出し、オブジェクト全体、並びに、同じオブジェクトOiに対する現在の書き込み動作の遅延目標(Dw)及び/又は後続の読み出し動作の遅延目標(Dr)を受信する(図12の処理ブロック1200)。一実施形態において、オブジェクトはローカルにキャッシュ/記憶される。
12.要求ハンドラ400は、インターフェース402を使用してクラウド性能モニタ420に、オブジェクトサイズ並びに書き込み及び読み出し遅延目標を渡す。クラウド性能モニタ420は、遅延目標を達成するために並列に送られるべきソースの数(すなわち、K)及びパリティブロックの数(すなわち、N−K)に関する情報を返す(図12の処理ブロック1210)。
13.FECが利用されるべきである場合、要求ハンドラ400は、クラウド性能モニタ420による出力を使用してオブジェクトをK個のソースブロックに分割し、クラウド性能モニタ420に従って必要とされる数に一致するN−K個のパリティブロックを生成するようFEC符号化器430に求める(図12の処理ブロック1220、1230及び1240)。FECが使用されない場合、単一の一意のキー割り当て(たとえば、Key1)、単一の書き込みジョブを発行すること、書き込みジョブが首尾よく完了したときに成功結果を送り戻すことが、実行されるデフォルトの動作セットである(図12の処理ブロック1222、1224、1226、1290)。
14.要求ハンドラ400は、同じ書き込み動作の一部として書き込まれるべき各ソースブロック及びパリティブロックを標識するための一意のキーの順序付けされたセットS(Key1,・・・,KeyN)を生成する。一実施形態において、このメタデータは、ローカルに持続的に記憶され、また、書き込みジョブにタグ付けされる(すなわち、公衆クラウド490もメタデータを記憶することになる)。図6の例を使用して、元のオブジェクトが10個のソースブロックに分割され、FEC符号化器430が6個のパリティブロックを生成する。したがって、要求ハンドラ400は、所与のオブジェクトのソースブロック及びパリティブロックを個々に、また一意に識別するために、16個の一意のキーから成るセットを作成し順序付けされた。これらの動作は、図12の処理ブロック1250及び1260の一部として実行される。
15.要求ハンドラ400は過剰なパリティブロックをキャッシュし、各ジョブがあらたに生成された順序付けされているセットの一意のキーに関する書き込み要求であるジョブの新たなバッチを生成する。このジョブのバッチはタスク待ち行列440に渡される。以上のこれらの動作は、図12の処理ブロック1270に対応する。一実施形態において、バッチ内のジョブに、他のバッチに属するジョブは挟み込まれない。別の実施形態において、ジョブが「バックグラウンドジョブ」ステータスに格下げされる場合、ジョブは挟み込まれる。
16.一実施形態において、要求ハンドラ400は、ジョブ又はバッチ属性を「バックグラウンドジョブ」に変更することによって、個々のジョブ又は所与のバッチのすべてのジョブを格下げすることができる。このとき、要求ハンドラ400は、より優先傾向の高いジョブをこれらのバックグラウンドジョブの前に移動させることができる。バックグラウンドトラフィックに格下げされている複数の異なるバッチのジョブは、先着順に処理される。属性の変化はインターフェース404を通じて行われる。
17.一実施形態において、ワーカスレッド450及び460は、一度に1つのジョブをサービスし、ワーカスレッドの現在のジョブが完了すると、ワーカスレッドはタスク待ち行列440からの新たなタスクを要求する。タスク待ち行列440は、要求しているワーカスレッドに先頭のジョブを渡す。ワーカスレッド450及び460は、ジョブ記述を使用して複数の異なるクラウド位置にアクセスすることができる。これらの複数の異なるクラウドにアクセスするためのAPIは異なり得、したがって、位置情報が、いずれのクラウドインスタンスが使用されるべきか、及び、いずれのAPI呼び出しが発行されなければならないかを指示する。
18.要求ハンドラ400は、所与のバッチに関するワーカスレッド450及び460からの成功した書き込み応答(すなわち、ACK又は肯定応答)の数をリスンする。十分な数の成功した書き込み応答(すなわちACK)を受信した後、要求ハンドラ400は、当初書き込み要求を発行したアプリケーションに成功応答(すなわち、ACK)を送り戻す。以上のこれらの動作は、図12の処理ブロック1280及び1290に対応する。一実施形態において、要求ハンドラ400は、インターフェース404を通じてジョブ属性を変更することによって、同じバッチ内の残りのジョブをバックグラウンドステータスに格下げする。
その後、処理論理は、オブジェクトの部分に消失訂正符号化を適用する結果もたらされた消失訂正符号化データを記憶システムに送る(処理ブロック1403)。
システムの一例
Claims (25)
- キー値に基づく記憶システムに使用するための方法であって、
オブジェクトをK個(Kは整数)の部分に分割するステップと、
キー値ストアに前記オブジェクトを置く遅延目標及び後続の読み出し要求の遅延目標の一方又は両方を満足するように生成すべきパリティブロックの数を求めるサブステップを含む、前記キー値に基づく記憶システムの遅延性能に応じて前記K個の部分に適用するための消失訂正符号化を選択するステップであり、両方の遅延目標が、複数の異なる要求タイプ及びオブジェクトサイズについての測定を通じて得られる遅延分布を所与として異なる数のパリティブロックが使用されるときの遅延性能のオフライン性能シミュレーションに基づく、前記選択するステップと、
前記K個の部分に前記消失訂正符号化を適用して、N個のデータブロックを生成するステップと、
別個の転送を使用して前記N個のデータブロックを前記記憶システムに送るステップと
を含む方法。 - オブジェクトを前記記憶システムに置き、オブジェクトを前記記憶システムから取得する前記遅延性能を測定するステップと、
前記遅延性能の測定の結果に基づいて前記オフライン性能シミュレーションを生成するステップと
をさらに含む、請求項1に記載の方法。 - 適用するための消失訂正符号化を選択する前記ステップが、前記遅延性能の累積分布関数に基づく、請求項1に記載の方法。
- 前記適用するための消失訂正符号化を選択する前記ステップが、実行されるべき動作に関連付けられる前記遅延性能に基づく、請求項1に記載の方法。
- 前記適用するための消失訂正符号化を選択する前記ステップが、前記オブジェクトのサイズに基づく、請求項1に記載の方法。
- 前記消失訂正符号化が、順方向誤り訂正(FEC)コード化を含む、請求項1に記載の方法。
- 個別の接続を介して前記N個のデータブロックを前記記憶システムに送る前記ステップが、前記個別の接続の2つを介して前記N個のブロックのうち少なくとも2つを並列に送るステップを含む、請求項1に記載の方法。
- 前記K個の部分の各々に個別のキーを割り当てるステップと、
前記K個の部分に前記消失訂正符号化を適用する結果もたらされるN個のデータブロックの各々に個別のキーを割り当てるステップと、
前記K個の部分に割り当てられている前記キー及び前記N個のブロックに割り当てられている前記キーを順序付けするステップと
をさらに含み、
N個の別個の転送を使用して前記N個のデータブロックを前記記憶システムへ送る前記ステップが、前記N個の別個の転送のうちK個が首尾よく完了した後に首尾よく完了しなかった前記N個の別個の転送のいずれかを取り消すサブステップを含む、別個の接続上ですべてのN個のブロックを並列に前記キー値ストアへ送るステップを含む、請求項1に記載の方法。 - 複数の個々の要求を生成するステップであって、各要求がストレージから前記N個のデータブロックのうちの1つを要求するためのものである、前記生成するステップと、
N個のブロックの各々が受信されたとき、消失復号を適用するステップと、
N個のブロックのうちK個を受信した後に、未処理のままであるN−K個の要求を取り消すステップと、
要求者に前記オブジェクトを返すステップと
をさらに含む、請求項1に記載の方法。 - Nが利用可能なスレッドの数である、請求項1に記載の方法。
- 前記別個の転送が、並列及び直列転送の組み合わせを含む、請求項1に記載の方法。
- 前記N個の別個の転送のうちK個が首尾よく完了した後に、首尾よく完了しなかった前記N個の転送のいずれかを取り消すステップをさらに含む、請求項1に記載の方法。
- キー値に基づく記憶システムに使用するための装置であって、
前記ネットワークからオブジェクトを受信するために動作可能である、ネットワークに結合するための通信インターフェースと、
前記オブジェクトを記憶するために前記通信インターフェースに結合されているメモリと、
前記メモリ及び前記通信インターフェースに結合されているプロセッサと
を備え、前記プロセッサが、
前記オブジェクトをK個(Kは整数)の部分に分割し、
少なくとも一部にはキー値ストアに前記オブジェクトを置く遅延目標及び後続の読み出し要求の遅延目標の一方又は両方を満足するように生成すべきパリティブロックの数を求めることにより、前記キー値に基づく記憶システムの遅延性能に応じて前記K個の部分に適用するための消失訂正符号化を選択し、両方の遅延目標は、複数の異なる要求タイプ及びオブジェクトサイズについての測定を通じて得られる遅延分布を所与として異なる数のパリティブロックが使用されるときの遅延性能のオフライン性能シミュレーションに基づくものであり、
前記K個の部分に前記消失訂正符号化を適用して、N個のデータブロックを生成するように動作可能であり、
前記プロセッサは、前記通信インターフェースを用いて、別個の転送を使用して前記N個のデータブロックを前記記憶システムに送るように動作する、装置。 - 前記プロセッサが、
オブジェクトを前記記憶システムに置き、オブジェクトを前記記憶システムから取得する前記遅延性能を測定し、
前記遅延性能の測定の結果に基づいて前記オフライン性能シミュレーションを生成するようにさらに動作可能である、請求項13に記載の装置。 - プロセッサが、前記遅延性能の累積分布関数に基づいて適用するための前記消失訂正符号化を選択する、請求項13に記載の装置。
- 前記プロセッサが、実行されるべき動作に関連付けられる前記遅延性能に基づいて適用するための前記消失訂正符号化を選択する、請求項13に記載の装置。
- 前記プロセッサが、前記オブジェクトのサイズに基づいて適用するための前記消失訂正符号化を選択する、請求項13に記載の装置。
- 前記消失訂正符号化が、順方向誤り訂正(FEC)コード化を含む、請求項13に記載の装置。
- 前記通信インターフェースが、前記個別の接続の2つを介して前記N個のブロックのうち少なくとも2つを並列に送る、請求項13に記載の装置。
- 前記プロセッサが、
前記K個の部分の各々に個別のキーを割り当て、
前記K個の部分に前記消失訂正符号化を適用する結果もたらされるN個のデータブロックの各々に個別のキーを割り当て、
前記K個の部分に割り当てられている前記キー及び前記N個のブロックに割り当てられている前記キーを順序付けする
ようにさらに動作可能であり、
前記通信インターフェースが、別個の接続上でN個の別個の転送を使用して前記N個のブロックを並列に前記キー値ストアへ送り、前記N個の別個の転送のうちK個が首尾よく完了した後に首尾よく完了しなかった前記N個の別個の転送のいずれかを取り消す、請求項13に記載の装置。 - 前記プロセッサが、
複数の個々の要求を生成し、各要求がストレージから前記N個のデータブロックのうちの1つを要求するためのものであり、
N個のブロックの各々が受信されたとき、消失復号を適用し、
N個のブロックのうちK個を受信した後に、未処理のままであるN−K個の要求を取り消し、
要求者に前記オブジェクトを返す
ようにさらに動作可能である、請求項13に記載の装置。 - システムによって実行されたとき、前記システムに、
オブジェクトをK個(Kは整数)の部分に分割するステップと、
キー値ストアに前記オブジェクトを置く遅延目標及び後続の読み出し要求の遅延目標の一方又は両方を満足するように生成すべきパリティブロックの数を求めるサブステップを含む、キー値に基づく記憶システムの遅延性能に応じて前記K個の部分に適用するための消失訂正符号化を選択するステップであり、両方の遅延目標が、複数の異なる要求タイプ及びオブジェクトサイズについての測定を通じて得られる遅延分布を所与として異なる数のパリティブロックが使用されるときの遅延性能のオフライン性能シミュレーションに基づく、前記選択するステップと、
前記K個の部分に前記消失訂正符号化を適用して、N個のデータブロックを生成するステップと、
別個の転送を使用して前記N個のデータブロックを前記記憶システムに送るステップと
を含む方法を実行させる命令を記憶している1つ又は複数の非一時的なコンピュータ可読記憶媒体を有する製造品。 - オブジェクトを前記記憶システムに置き、オブジェクトを前記記憶システムから取得する前記遅延性能を測定するステップと、
前記遅延性能の測定の結果に基づいて前記オフライン性能シミュレーションを生成するステップと
をさらに含む、請求項22に記載の製造品。 - 適用するための消失訂正符号化を選択する前記ステップが、前記遅延性能の累積分布関数に基づく、請求項22に記載の製造品。
- キー値に基づく記憶システムに使用するための方法であって、
複数のオブジェクトの各々を複数の部分に分割するステップであり、前記複数のオブジェクトの各々が遅延目標に関連付けられる、前記分割するステップと、
少なくとも2つのオブジェクトに関連付けられる遅延目標の間の差に基づいて前記複数のオブジェクトのうちの少なくとも2つのオブジェクトに異なる消失訂正符号化を適用するために前記消失訂正符号化を適合させることを含む、前記複数のオブジェクトの各々の前記複数の部分に消失訂正符号化を適用するステップと、
前記複数のオブジェクトの部分に前記消失訂正符号化を適用する結果もたらされた消失訂正符号化データを前記記憶システムに送るステップと
を含む方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261657554P | 2012-06-08 | 2012-06-08 | |
US61/657,554 | 2012-06-08 | ||
PCT/US2013/030891 WO2013184201A1 (en) | 2012-06-08 | 2013-03-13 | A method and apparatus for low delay access to key-value based storage systems using fec techniques |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015520588A true JP2015520588A (ja) | 2015-07-16 |
JP6279560B2 JP6279560B2 (ja) | 2018-02-14 |
Family
ID=49712429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015516007A Active JP6279560B2 (ja) | 2012-06-08 | 2013-03-13 | Fec技法を使用したキー値に基づく記憶システムに対する低遅延アクセスのための方法、装置、及びコンピュータ読み取り可能な記憶媒体 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9426517B2 (ja) |
JP (1) | JP6279560B2 (ja) |
WO (1) | WO2013184201A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018156656A (ja) * | 2017-03-20 | 2018-10-04 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 仮想装置階層を利用した複数のメモリ装置を含む仮想装置に対する客体の格納及び読み取り方法とこれを用いたストレージ装置 |
US11275762B2 (en) | 2017-03-20 | 2022-03-15 | Samsung Electronics Co., Ltd. | System and method for hybrid data reliability for object storage devices |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9747293B2 (en) * | 2012-02-28 | 2017-08-29 | Deep Information Sciences, Inc. | Method and system for storage and retrieval of information |
WO2015049756A1 (ja) * | 2013-10-03 | 2015-04-09 | 富士通株式会社 | プログラム、符号化装置、及び符号化方法 |
TWI604320B (zh) * | 2014-08-01 | 2017-11-01 | 緯創資通股份有限公司 | 巨量資料存取方法以及使用該方法的系統 |
US10599621B1 (en) * | 2015-02-02 | 2020-03-24 | Amazon Technologies, Inc. | Distributed processing framework file system fast on-demand storage listing |
US9459959B1 (en) * | 2015-03-30 | 2016-10-04 | Amazon Technologies, Inc. | Failure-decoupled volume-level redundancy coding techniques |
US10740290B2 (en) * | 2015-04-14 | 2020-08-11 | Jetflow Technologies | Systems and methods for key-value stores |
US10298259B1 (en) | 2015-06-16 | 2019-05-21 | Amazon Technologies, Inc. | Multi-layered data redundancy coding techniques |
US10270475B1 (en) | 2015-06-16 | 2019-04-23 | Amazon Technologies, Inc. | Layered redundancy coding for encoded parity data |
US10977128B1 (en) | 2015-06-16 | 2021-04-13 | Amazon Technologies, Inc. | Adaptive data loss mitigation for redundancy coding systems |
US10270476B1 (en) | 2015-06-16 | 2019-04-23 | Amazon Technologies, Inc. | Failure mode-sensitive layered redundancy coding techniques |
US9998150B1 (en) | 2015-06-16 | 2018-06-12 | Amazon Technologies, Inc. | Layered data redundancy coding techniques for layer-local data recovery |
US9959167B1 (en) | 2015-07-01 | 2018-05-01 | Amazon Technologies, Inc. | Rebundling grid encoded data storage systems |
US10108819B1 (en) | 2015-07-01 | 2018-10-23 | Amazon Technologies, Inc. | Cross-datacenter extension of grid encoded data storage systems |
US10198311B1 (en) | 2015-07-01 | 2019-02-05 | Amazon Technologies, Inc. | Cross-datacenter validation of grid encoded data storage systems |
US10162704B1 (en) | 2015-07-01 | 2018-12-25 | Amazon Technologies, Inc. | Grid encoded data storage systems for efficient data repair |
US9998539B1 (en) | 2015-07-01 | 2018-06-12 | Amazon Technologies, Inc. | Non-parity in grid encoded data storage systems |
US10394762B1 (en) | 2015-07-01 | 2019-08-27 | Amazon Technologies, Inc. | Determining data redundancy in grid encoded data storage systems |
US10089176B1 (en) | 2015-07-01 | 2018-10-02 | Amazon Technologies, Inc. | Incremental updates of grid encoded data storage systems |
US9928141B1 (en) | 2015-09-21 | 2018-03-27 | Amazon Technologies, Inc. | Exploiting variable media size in grid encoded data storage systems |
US11386060B1 (en) | 2015-09-23 | 2022-07-12 | Amazon Technologies, Inc. | Techniques for verifiably processing data in distributed computing systems |
US9940474B1 (en) | 2015-09-29 | 2018-04-10 | Amazon Technologies, Inc. | Techniques and systems for data segregation in data storage systems |
US10394789B1 (en) | 2015-12-07 | 2019-08-27 | Amazon Technologies, Inc. | Techniques and systems for scalable request handling in data processing systems |
US10642813B1 (en) | 2015-12-14 | 2020-05-05 | Amazon Technologies, Inc. | Techniques and systems for storage and processing of operational data |
US10248793B1 (en) | 2015-12-16 | 2019-04-02 | Amazon Technologies, Inc. | Techniques and systems for durable encryption and deletion in data storage systems |
US10127105B1 (en) | 2015-12-17 | 2018-11-13 | Amazon Technologies, Inc. | Techniques for extending grids in data storage systems |
US10324790B1 (en) | 2015-12-17 | 2019-06-18 | Amazon Technologies, Inc. | Flexible data storage device mapping for data storage systems |
US10180912B1 (en) | 2015-12-17 | 2019-01-15 | Amazon Technologies, Inc. | Techniques and systems for data segregation in redundancy coded data storage systems |
US10235402B1 (en) | 2015-12-17 | 2019-03-19 | Amazon Technologies, Inc. | Techniques for combining grid-encoded data storage systems |
US10102065B1 (en) * | 2015-12-17 | 2018-10-16 | Amazon Technologies, Inc. | Localized failure mode decorrelation in redundancy encoded data storage systems |
KR102667783B1 (ko) * | 2016-03-04 | 2024-05-23 | 삼성전자주식회사 | Ecc 관련 데이터를 키-밸류 맵핑 정보에서 관리하는 오브젝트 스토리지 시스템 |
US10592336B1 (en) | 2016-03-24 | 2020-03-17 | Amazon Technologies, Inc. | Layered indexing for asynchronous retrieval of redundancy coded data |
US10061668B1 (en) | 2016-03-28 | 2018-08-28 | Amazon Technologies, Inc. | Local storage clustering for redundancy coded data storage system |
US10678664B1 (en) | 2016-03-28 | 2020-06-09 | Amazon Technologies, Inc. | Hybridized storage operation for redundancy coded data storage systems |
US10366062B1 (en) | 2016-03-28 | 2019-07-30 | Amazon Technologies, Inc. | Cycled clustering for redundancy coded data storage systems |
US11137980B1 (en) | 2016-09-27 | 2021-10-05 | Amazon Technologies, Inc. | Monotonic time-based data storage |
US10437790B1 (en) | 2016-09-28 | 2019-10-08 | Amazon Technologies, Inc. | Contextual optimization for data storage systems |
US10657097B1 (en) | 2016-09-28 | 2020-05-19 | Amazon Technologies, Inc. | Data payload aggregation for data storage systems |
US10810157B1 (en) | 2016-09-28 | 2020-10-20 | Amazon Technologies, Inc. | Command aggregation for data storage operations |
US10496327B1 (en) | 2016-09-28 | 2019-12-03 | Amazon Technologies, Inc. | Command parallelization for data storage systems |
US11281624B1 (en) | 2016-09-28 | 2022-03-22 | Amazon Technologies, Inc. | Client-based batching of data payload |
US11204895B1 (en) | 2016-09-28 | 2021-12-21 | Amazon Technologies, Inc. | Data payload clustering for data storage systems |
US10614239B2 (en) | 2016-09-30 | 2020-04-07 | Amazon Technologies, Inc. | Immutable cryptographically secured ledger-backed databases |
CN107885612B (zh) * | 2016-09-30 | 2020-02-21 | 华为技术有限公司 | 数据处理方法和系统及装置 |
US10296764B1 (en) | 2016-11-18 | 2019-05-21 | Amazon Technologies, Inc. | Verifiable cryptographically secured ledgers for human resource systems |
US11269888B1 (en) | 2016-11-28 | 2022-03-08 | Amazon Technologies, Inc. | Archival data storage for structured data |
US10783136B1 (en) * | 2017-02-28 | 2020-09-22 | Virtuozzo International Gmbh | Management of garbage data in distributed systems |
TWI750425B (zh) * | 2018-01-19 | 2021-12-21 | 南韓商三星電子股份有限公司 | 資料儲存系統和用於寫入鍵值對的物件的方法 |
US20190286515A1 (en) * | 2018-03-14 | 2019-09-19 | Softiron Limited | Dynamic and Preemptive Erasure Encoding in Software Defined Storage (SDS) Systems |
US10831774B2 (en) * | 2018-09-05 | 2020-11-10 | International Business Machines Corporation | Accumulating results from batch processing and resuming execution of a data integration flow with the accumulated results passed in |
US10673984B1 (en) * | 2018-12-05 | 2020-06-02 | Sap Se | Directly modifying failed queued requests for an offline application using the backend type system |
US10805044B2 (en) | 2019-02-25 | 2020-10-13 | At&T Intellectual Property I, L.P. | Optimizing delay-sensitive network-based communications with latency guidance |
US11575777B2 (en) | 2019-05-27 | 2023-02-07 | Massachusetts Institute Of Technology | Adaptive causal network coding with feedback |
CN113395266B (zh) * | 2020-11-06 | 2022-08-19 | 中软数智信息技术(武汉)有限公司 | 应用于物联网和直播平台的数据处理方法及云计算中心 |
CN112346666B (zh) * | 2020-11-30 | 2022-02-15 | 华中科技大学 | 基于ocssd的键值存储系统的写、块粒度压缩合并方法和系统 |
CN113259439B (zh) * | 2021-05-18 | 2022-05-06 | 中南大学 | 基于接收端驱动的键值调度方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007140829A (ja) * | 2005-11-17 | 2007-06-07 | Fujitsu Ltd | バックアップシステム、方法及びプログラム |
JP2010074604A (ja) * | 2008-09-19 | 2010-04-02 | Nec Corp | データアクセスシステム、データアクセス方法およびデータアクセス用プログラム |
US20100218037A1 (en) * | 2008-09-16 | 2010-08-26 | File System Labs Llc | Matrix-based Error Correction and Erasure Code Methods and Apparatus and Applications Thereof |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000052690A1 (fr) * | 1999-02-26 | 2000-09-08 | Hitachi, Ltd. | Enregistreur, lecteur et support d'enregistrement de signal numerique |
US8694869B2 (en) * | 2003-08-21 | 2014-04-08 | QUALCIMM Incorporated | Methods for forward error correction coding above a radio link control layer and related apparatus |
KR101059005B1 (ko) * | 2006-04-13 | 2011-08-23 | 엔엑스피 비 브이 | 반도체 장치, 그 식별자 생성 방법 및 그 식별 방법 |
US8209577B2 (en) | 2007-12-20 | 2012-06-26 | Microsoft Corporation | Optimizing XOR-based codes |
US9411682B2 (en) | 2010-01-14 | 2016-08-09 | Hewlett Packard Enterprise Development Lp | Scrubbing procedure for a data storage system |
US8103904B2 (en) | 2010-02-22 | 2012-01-24 | International Business Machines Corporation | Read-other protocol for maintaining parity coherency in a write-back distributed redundancy data storage system |
US8458513B2 (en) | 2010-07-30 | 2013-06-04 | Hewlett-Packard Development Company, L.P. | Efficient failure recovery in a distributed data storage system |
-
2013
- 2013-03-13 US US14/405,290 patent/US9426517B2/en active Active
- 2013-03-13 JP JP2015516007A patent/JP6279560B2/ja active Active
- 2013-03-13 WO PCT/US2013/030891 patent/WO2013184201A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007140829A (ja) * | 2005-11-17 | 2007-06-07 | Fujitsu Ltd | バックアップシステム、方法及びプログラム |
US20100218037A1 (en) * | 2008-09-16 | 2010-08-26 | File System Labs Llc | Matrix-based Error Correction and Erasure Code Methods and Apparatus and Applications Thereof |
JP2010074604A (ja) * | 2008-09-19 | 2010-04-02 | Nec Corp | データアクセスシステム、データアクセス方法およびデータアクセス用プログラム |
Non-Patent Citations (1)
Title |
---|
MARCO MARTALO,ET AL.: "A Practical Network Coding Approach for Peer-to-Peer Distributed Storage", NETWORK CODING(NETCOD),2010 IEEE INTERNATIONAL SYMPOSIUM ON, JPN6017049229, June 2010 (2010-06-01) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018156656A (ja) * | 2017-03-20 | 2018-10-04 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 仮想装置階層を利用した複数のメモリ装置を含む仮想装置に対する客体の格納及び読み取り方法とこれを用いたストレージ装置 |
US11275762B2 (en) | 2017-03-20 | 2022-03-15 | Samsung Electronics Co., Ltd. | System and method for hybrid data reliability for object storage devices |
US11288119B2 (en) | 2017-03-20 | 2022-03-29 | Samsung Electronics Co., Ltd. | Key value SSD |
Also Published As
Publication number | Publication date |
---|---|
WO2013184201A1 (en) | 2013-12-12 |
US20150149870A1 (en) | 2015-05-28 |
JP6279560B2 (ja) | 2018-02-14 |
US9426517B2 (en) | 2016-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6279560B2 (ja) | Fec技法を使用したキー値に基づく記憶システムに対する低遅延アクセスのための方法、装置、及びコンピュータ読み取り可能な記憶媒体 | |
US10282101B2 (en) | Primary data storage system with quality of service | |
US9880971B2 (en) | Memory appliance for accessing memory | |
US20200019516A1 (en) | Primary Data Storage System with Staged Deduplication | |
US10382380B1 (en) | Workload management service for first-in first-out queues for network-accessible queuing and messaging services | |
JP6522008B2 (ja) | 散在ストレージ・ネットワークにおける多世代記憶されたデータの読取り | |
US8812450B1 (en) | Systems and methods for instantaneous cloning | |
US10554520B2 (en) | Data path monitoring in a distributed storage network | |
US9998531B2 (en) | Computer-based, balanced provisioning and optimization of data transfer resources for products and services | |
US20150312337A1 (en) | Mirroring log data | |
US20150309874A1 (en) | A method and apparatus for code length adaptation for access to key-value based cloud storage systems | |
US9442672B2 (en) | Replicating data across controllers | |
US20190220366A1 (en) | Method, apparatus and computer program product for managing data backup | |
US20190272229A1 (en) | Efficient garbage collection in the presence of block dependencies | |
US9891992B2 (en) | Information processing apparatus, information processing method, storage system and non-transitory computer readable storage media | |
US9569391B2 (en) | Facilitating processing of out-of-order data transfers | |
US10146652B2 (en) | Resilient distributed storage system | |
CN115981559A (zh) | 分布式数据存储方法、装置、电子设备和可读介质 | |
US20160267050A1 (en) | Storage subsystem technologies | |
US9600277B2 (en) | Asynchronous cleanup after a peer-to-peer remote copy (PPRC) terminate relationship operation | |
CN113051244A (zh) | 数据访问方法和装置、数据获取方法和装置 | |
US11971902B1 (en) | Data retrieval latency management system | |
US20170052711A1 (en) | Data compression for grid-oriented storage systems | |
US20160266813A1 (en) | Storage subsystem technologies | |
US10187488B2 (en) | Methods for managing replacement in a distributed cache environment and devices thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160311 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170417 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170523 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170714 |
|
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: 20180109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180117 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6279560 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |