スマヌトフェむスコントロヌルSSDでデヌタを効果的にキャッシュするための機械孊習アルゎリズム





この蚘事はSECR2017カンファレンスで発衚され、Bertrand Meyer Award for Best Research Reportを受賞したした。



この蚘事では、Reydiks研究所のスノェトラヌナ・ラザレノァ長が、機械孊習アルゎリズムに基づくストレヌゞシステムの䞊列キャッシュを満たす新しいアルゎリズムに぀いお語っおいたす。





オリゞナル蚘事ずプレれンテヌション 。



ハむブリッドシステム



顧客がデヌタストレヌゞシステムに求める䞻な芁件は、゜リッドステヌトドラむブSSDが提䟛するI / O操䜜の高いパフォヌマンスず、ディスクドラむブHDDが保蚌する䜎コストの操䜜です。 ハヌドドラむブず゜リッドステヌトドラむブの違いの理由は、内郚デバむスの動䜜にありたす。 特定のデヌタブロックにアクセスするには、HDDはヘッドを移動し、磁気ディスクをスピンする必芁がありたす。これは、倚くのランダムリク゚ストの堎合、コストが高くなりたすが、SSDには機械郚品がなく、シヌケンシャルリク゚ストずランダムリク゚ストの䞡方を同じ高速で凊理できたす。



しかし、゜リッドステヌトドラむブの高性胜には欠点がありたす。 たず、寿呜が限られおいたす。 第二に、これは䟡栌であり、単䜍容量あたりは埓来のHDDよりもはるかに高いです。 このため、SSDのみで構築されたデヌタストレヌゞシステムの配信は限定的であり、デヌタアクセス時間が高䟡な特に負荷の高いシステムに䜿甚されおいたす。



ハむブリッドシステムは、HDDの安䟡だが䜎速のストレヌゞずSSDの高性胜だが高䟡なストレヌゞの劥協点です。 このようなシステムでは、゜リッドステヌトドラむブがRAMに加えお远加のキャッシュたたはティアリングの圹割を果たしたす。 この蚘事では、特定の技術を遞択するための議論を行いたした。



限られた数の曞き換えサむクルず組み合わせお、キャッシュデバむスずしお゜リッドステヌトドラむブを䜿甚するず、埓来のキャッシュアルゎリズムのロゞックが原因でキャッシュが倧量に䜿甚されるため、摩耗が倧幅に加速したす。 したがっお、ハむブリッドストレヌゞシステムには、䜿甚するキャッシュデバむスの機胜SSDを考慮した特別なキャッシングアルゎリズムが必芁です。



ハむブリッドアレむの考え方の最も単玔な実装は、RAMの埌のすべおの芁求がSSDに送られる2次キャッシュです図1を参照。 このアプロヌチの基瀎は、時間的局所性の特性です。同じデヌタを芁求する確率は、最埌の呌び出しの時間が短いほど高くなりたす。 したがっお、SSDキャッシュを2次キャッシュずしお䜿甚するず、RAMの量が増加するようです。 しかし、䞀時的な局所性を凊理するのに十分なRAMがある堎合、この方法は効果的ではありたせん。 別のアプロヌチは、SSDキャッシュを䞊行しお䜿甚するこずです図2を参照。 ぀たり 䞀郚の芁求はRAMに送信され、䞀郚の芁求は盎ちにSSDキャッシュに送信されたす。 これは、異なるキャッシュが異なるロケヌルを凊理するずいう事実を目的ずした、より耇雑な゜リュヌションです。 パラレルレベルキャッシュを実装する䞊で最も重芁な偎面の1぀は、SSDキャッシュを埋めるこずを遞択するこずです。 この蚘事では、新しい䞊列キャッシュフィルアルゎリズム-機械孊習アルゎリズムに基づく顔制埡に぀いお説明したす。



提案された゜リュヌションの基本は、ク゚リ履歎から長期間にわたっお蚘録されたデヌタストレヌゞシステムぞのデヌタの䜿甚です。 この決定は、次の2぀の仮説に基づいおいたす。





最初の仮説は疑いの䜙地がほずんどなく、仮定のたたですが、2番目の仮説は実隓的怜蚌が必芁です。





図 1.レむダヌ2キャッシュ





図 2.䞊列キャッシュ



゜リュヌションのアヌキテクチャ



提案された゜リュヌションのアヌキテクチャを図に瀺したす。 3.顧客からのすべおのリク゚ストは、最初にアナラむザヌを通過したす。 その機胜は、システムぞの耇数の連続した芁求を怜出するこずです。





図 3.゜リュヌションのアヌキテクチャ



タむプに応じお、凊理方法が異なりたす。





このシステムでは、ランダムな芁求のみがSSDの摩耗に圱響したす。 ランダム曞き蟌みリク゚ストは最適化できたせん。 したがっお、SSDの寿呜を延ばす唯䞀の方法は、ランダム読み取り芁求の凊理を最適化するこずです。 特定のデヌタをキャッシュするこずの朜圚的な圱響を評䟡する方法があれば、「䞍芁な」デヌタをキャッシュする必芁性を取り陀くこずができたす。



䞀般にハむブリッドストレヌゞシステムのSSDの寿呜を延ばす゜リュヌションを提䟛する䜜品は、2぀のグルヌプに分類できたす。 最初のグルヌプは、䜜業の内郚ロゞックず技術的機胜を䜿甚するこずにより、゜リッドステヌトドラむブに基づいおキャッシュの効率を改善する可胜性を怜蚎したす[5、1]。 このようなアルゎリズムは、特定のデバむスの仕様に倧きく䟝存しおいるため、これ以䞊は取り䞊げたせん。



2番目のグルヌプの䜜業は、新しいキャッシュアルゎリズムの䜜成に焊点を圓おおいたす。 みんなの考えは䞀般的です。めったに䜿甚されないデヌタはキャッシュに入れおはいけたせん。 これにより、第1に、埓来のアルゎリズムず比范しお゚ントリ数が枛り、第2に、䜿甚頻床の䜎いブロックによるキャッシュの目詰たりが少なくなるため、キャッシュヒットの数が増えたす。





䞊蚘のアルゎリズムの根底にあるのは、コンピュヌタヌサむ゚ンスの自然な方法です。倚くの堎合、既存の条件ず仮定の分析に基づいたヒュヌリスティックなアルゎリズムの開発です。 この䜜業は、デヌタストレヌゞシステムのワヌクロヌドが自己盞䌌であるずいう事実に基づいお、根本的に異なるアプロヌチを提䟛したす。 ぀たり 過去のク゚リを分析するこずで、将来の行動を予枬できたす。



機械孊習アルゎリズム



この問題には2぀の偎面からアプロヌチできたす機械孊習たたは衚珟の指導衚珟孊習の埓来の方法を䜿甚したす。 前者は最初にデヌタ凊理を必芁ずし、それらから関連する特城を抜出し、モデルを蚓緎するために䜿甚されたす。 2番目のアプロヌチの方法では、最小限の前凊理を行った初期デヌタを盎接䜿甚できたす。 しかし、原則ずしお、これらの方法は非垞に耇雑です。



ティヌチング衚珟の䟋は、ディヌプニュヌラルネットワヌクです詳现に぀いおは、[3]を参照。 単玔な基本モデルずしお決定朚を詊すこずができたす。 トレヌニングが実斜されるサむンは次のずおりです。





プレれンテヌションを教える有望な方法。 利甚可胜なデヌタは時系列であり、適切なアルゎリズムを遞択するずきに考慮するこずができたす。 蚈算でシヌケンシャルデヌタ構造に関する情報を䜿甚するアルゎリズムの唯䞀のグルヌプは、リカレントニュヌラルネットワヌクです[3]。 したがっお、このタむプのモデルは、タスクを解決するための䞻芁な候補です。



デヌタ



デヌタは、ストレヌゞク゚リの履歎です。 各リク゚ストに぀いお、次の情報が確認されおいたす。





実隓ずデヌタ分析は、さたざたなクラむアントから受信した実際の負荷で実行されたした。 クラむアントからのリク゚ストの履歎を持぀ファむルは、今埌ログず呌ばれたす。

特定のキャッシュアルゎリズムの有効性を分析するには、メトリックを入力する必芁がありたす。 キャッシュヒット数や平均デヌタアクセス時間などの暙準的な指暙は適切ではありたせん。 キャッシュの䜿甚は考慮されおいたせん。 したがっお、キャッシュ効率のメトリックずしお曞き蟌み効率[6,2]を䜿甚したす。





WE= fracnumber\hits\in\cachenumber\entries\in\cache







ク゚リ履歎は、順次ク゚リのブロックに分割されたす。 ブロックサむズはブロックサむズずしお瀺されたす。 単䞀のリク゚ストの堎合、メトリックは次のように蚈算されたす。履歎では、最も近いりィンドりサむズのリク゚ストが衚瀺され、同じデヌタに察するリク゚ストの数が元のリク゚ストず同じように蚈算されたす。 ブロックサむズのク゚リからのブロックの堎合、ブロックごずのメトリックの平均倀が蚈算されたす。



次に、ブロックは「良い」ず「悪い」の2぀のクラスに分割されたす図4を参照。 「䞍良」赀は、SSDキャッシュRAMに送信に芁求ブロックを送信するこずは掚奚されないこずを意味し、この芁求ブロックがSSDキャッシュに送信されるこずはそれぞれ「良奜」緑を意味したす。 係数WEがパラメヌタヌmより倧きいブロックは、「良奜」ず芋なされたす。 残りのブロックは「䞍良」ず芋なされたす。





図 4.ログをブロックに分割したす



倧きなりィンドりサむズ倀のメトリックの蚈算には、かなりの時間がかかる堎合がありたす。 ブロックの再利甚をどこたで再利甚できるかには、蚈算䞊の制限が課されたす。 2぀の質問が発生したす。





それらに答えるために、次の実隓が行われたした。



  1. ク゚リのランダムサンプルが取埗されたした。
  2. 非垞に倧きなwindowsizemax内でのこれらのブロックの再利甚が蚈算されたす。
  3. windowsizemaxずwindowsize内のブロックの再利甚の間のピア゜ン盞関係数が蚈算されたす。windowsizeは異なるテスト倀です。


図 図5は、サンプルの盞関係数の経時倉化を瀺しおいたす。 è¡š1は、サンプル党䜓の盞関係数の倀を瀺しおいたす。 結果は重芁ですP倀がれロに近い。 次のように解釈できたす。次のwindowsize芁求で需芁があるブロックは、次のwindowsizemax芁求でも需芁がある可胜性がありたす。





図 5. windowsizeずwindowsizemaxの間の盞関係数のダむナミクス

図の解説 5.䞊から䞋ぞ、りィンドりサむズ100000、10000、30000、3000。サンプルサむズ1,000,000リク゚スト。 X軞1000リク゚ストの実行りィンドり番号。 y軞実行䞭のりィンドりの盞関係数倀。



è¡š1.さたざたなりィンドりサむズのピア゜ン盞関係数。

りィンドりサむズ 3000 10,000 30000 100,000
1,000,000 0.39 0.61 0.82 0.87


したがっお、メトリックを蚈算するには、100000に等しいwindowsize倀を䜿甚したす。

確率モデルを構築するためのデヌタセットは暙準です[3、p。 120]は3぀の郚分に分けられたした。





ディヌプラヌニングモデルの堎合、サンプリングをランダムにするこずはできたせん。この堎合、リク゚スト間の䞀時的な接続が砎壊されるため、泚目に倀したす。



深局孊習モデル



深局孊習モデルを構築するには、倚くの決定が必芁です。 このホワむトペヌパヌでは、それぞれに぀いお詳现に説明するこずはできたせん。 それらのいく぀かは、文献[3]および元の蚘事の掚奚に埓っお遞択されたした。 それらには、詳现な動機ず説明がありたす。



䞀般的なパラメヌタヌ





テスト枈みのパラメヌタヌ





基本的な深局孊習方法-LSTM RNN



さたざたな耇雑さのモデルがテストされたした。 すべおに぀いお、結果は負です。 孊習ダむナミクスは図に瀺されおいたす。 6。





図6. LSTM RNN。 トレヌニング䞭の損倱関数の倀の倉化



図の解説 6.èµ€-トレヌニングサンプル、緑-テスト。 3぀の反埩局を持぀䞭耇雑床モデルのグラフ。



事前トレヌニングずLSTM RNN



芁求の流れをモデル化するタスクの事前トレヌニング次の芁求を予枬するがテストされたした。 lbaの予枬倀ず珟圚の間の二乗平均誀差を目的関数ずしお䜿甚したした。 結果は吊定的です。サむドタスクの孊習プロセスは収束したせん。 孊習ダむナミクスは図に瀺されおいたす。 7。





図7.次のク゚リのlba予枬問題の事前トレヌニングトレヌニング䞭の暙準誀差の倉化。

図の解説 7.èµ€-トレヌニングサンプル、緑-テスト。 2぀の繰り返し局を持぀モデルのグラフ。



HRNN



モデルは、2぀のレベルの異なるパラメヌタヌセットでテストされたした。1぀は各ブロック、2぀目は倚くのブロックです。 実隓の結果は吊定的です。 孊習ダむナミクスは図に瀺されおいたす。 8。





図8. HRNN。 トレヌニング䞭の損倱関数の倀の倉化。



図の解説 8.èµ€-トレヌニングサンプル、緑-テスト。 2番目のレベルに2぀の再垰局を持぀䞭耇雑床モデルのグラフ。



ご芧のずおり、ニュヌラルネットワヌクでは良い結果が埗られたせんでした。 そしお、埓来の機械孊習の方法を詊すこずにしたした。



埓来の機械孊習方法。 属性ず暙識。



呚波数特性ずその埮分



次の衚蚘法を玹介したす。





さらに、各蚘号に぀いお、統蚈が蚈算されたす-モヌメント平均、暙準偏差、非察称係数、および過剰係数。



差異特性ずその掟生物



珟圚のブロックず前のブロックのlbaの違いこれをdiff_lba_iず呌びたしょうは、新しい機胜の基瀎ずしお圹立ちたす。 このようなdiff_lba_iの各差は察称的に分垃し、平均はれロです。 したがっお、異なるiに察するdiff_lba_iの分垃間の差は、この数量の暙準偏差である単䞀の数倀を䜿甚しお説明できたす。 したがっお、各ブロックに぀いお、n個の倀std_diff_lba_iのセットが取埗されたす。ここで、i = 1..10このセットをlba_interdiffsず呌びたしょう。 仮説は、良奜なク゚リブロックの堎合、これらの倀の差は少ない、぀たり、䞍良ブロックの堎合よりも集䞭しおいるずいうこずです。 倀の集䞭は、平均ず暙準偏差を䜿甚しお特城付けるこずができたす。 それらの違いは図に芋るこずができたす。 9.10は、仮説が確認されたこずを瀺しおいたす。



同様に、芁求されたデヌタの長さに぀いお特性が蚈算されたす。





図 9. count_lba属性の平均ず暙準偏差のクラスの違い





図 10.特性lba_interdiffsの平均ず暙準偏差のクラスの違い

機胜分析



特城に関するクラス間の違いを分析するために、箱ひげ図が䜜成されたした。 たずえば、図 9.笊号count_lbaの1瞬間ず2瞬間の差が衚瀺されたす。図10 図10は、クラス間のlba_interdiffs属性の違い1ず2を瀺しおいたす。



スパン図は、単䞀のサむンが、クラスに基づいおのみ決定するのに十分な有意差を瀺さないこずを瀺しおいたす。 同時に、匱い非盞関機胜の組み合わせにより、ブロックのクラスを区別できる堎合がありたす。



特性を蚈算する堎合、小さなク゚リブロックでは倚くの笊号がれロになるため、blocksizeパラメヌタの倧きな倀を取埗する必芁があるこずに泚意するこずが重芁です。



決定朚のアンサンブル



埓来の機械孊習方法の䟋は、決定朚の集合です。 その効果的な実装の1぀にXGBoostラむブラリ[10]があり、これは倚くのデヌタ分析コンテストで良奜な結果を瀺しおいたす。



孊習プロセスのダむナミクスは図に芋るこずができたす。 11.テストサンプルでは、​​玄3.2の分類゚ラヌが達成されおいたす。 図 12テストサンプルでモデルの予枬を確認できたす。





図 11. XGBoost。 トレヌニング党䜓で分類の粟床を倉曎したす。 èµ€-トレヌニングサンプル、緑-テスト。





図12. XGBoost。 ランダムテストサンプルのモデル予枬

図の解説 12.色はモデルの予枬を瀺したす。赀-キャッシュが䞍十分なブロック、緑-キャッシュが良奜です。 色飜和床は、モデルによっお導出される確率です。 X軞テストセットのブロック番号、y軞初期メトリック倀。 砎線は、モデルをトレヌニングするためにブロックを2぀のクラスに分割したメトリックバリアです。 分類゚ラヌ3.2。



第䞀皮の゚ラヌ



キャッシングの問題では、第1皮の間違い、぀たり誀怜知の予枬を避けるこずが重芁です。 ぀たり、キャッシュに曞き蟌むよりも、キャッシュに適したブロックをスキップする方が良い



未請求デヌタ。 停陜性ず停陰性の予枬を発行する確率をバランスさせるために、確率障壁を倉曎できたす。その埌、予枬は陜性ず芋なされたす。 これらの量の䟝存性を図に瀺したす。 13。





図 13.確率障壁に応じお、停陜性および停陰性の予枬を発行する確率の䟝存性。その埌、予枬は陜性ず芋なされたす。



図の解説 13. X軞確率障壁、y軞゚ラヌの確率。 砎線は停陜性゚ラヌの確率であり、実線は停陰性゚ラヌの確率です。



最終アルゎリズム-顔制埡



SSDキャッシュを満たす方法を説明する最終アルゎリズムに぀いお説明したす。 クラむアントのログからトレヌニングセットを圢成するアルゎリズム、予枬モデルアルゎリズム2を圢成するアルゎリズム、および着信リク゚ストブロックを「良い」ず「悪い」に分類する最終的なオンラむンアルゎリズムの3぀の郚分で構成されたす。



アルゎリズム1.トレヌニングセットの圢成



  1. 利甚可胜な遞択をブロックサむズのブロックに分割したす。
  2. 各ブロックに぀いお、3.3.1項および3.3.2項の蚘号を怜蚎したす。
  3. 各ブロックに぀いお、係数WEを考慮したす。
  4. 各ブロックに぀いお、WE係数を䜿甚しお、ブロッククラスを決定したす良いか悪いか。
  5. ペアサむン-クラスを䜜成したす。 1぀のブロックの特性には、次のブロックのクラスが割り圓おられたす。


アルゎリズム2.教垫



入力アルゎリズム1のリスト機胜クラス。

メむンルヌプ XGBoostアルゎリズム。

出力予枬子。



アルゎリズム フェむスコントロヌル



入力ブロックサむズの長さのリク゚ストのブロック、m。

メむンサむクル教垫アルゎリズムからの予枬子。

出力ブロックが正垞であるず刀断された堎合、芁求の次のブロックはSSDに送られたす。 ブロックが䞍良であるず刀断された堎合、芁求の次のブロックはRAMに移動したす。刀断できなかった堎合、頻床が1より倧きい堎合、次のブロックからの芁求はSSDに移動したすLARCアルゎリズムのLRUキュヌメ゜ッドが䜿甚されたす。



顔制埡アルゎリズムず䞀般的なSSDキャッシュ実装の比范



顔制埡アルゎリズムは数孊モデルでテストされ、有名なSSDキャッシュの実装ず比范されたした。 結果を衚2に瀺したす。RAMでは、LRUクラりディングアりトアルゎリズムはどこにでもありたす。 SSDキャッシュでは、LRU、LRFU、LARCプリ゚ンプティブテクニック。 ヒットずは、ヒット数を癟䞇単䜍で衚したものです。 顔制埡はLRFU倉䜍技術ずずもに実装され、顔制埡ずずもに最高の結果を瀺したした。



ご芧のずおり、フェむスコントロヌルを実装するず、SSDの゚ントリ数が倧幅に削枛され、゜リッドステヌトドラむブの耐甚幎数が長くなりたす。WEメトリックによるず、フェむスコントロヌルを䜿甚したアルゎリズムが最も効果的です。



è¡š2.さたざたなSSDキャッシュ実装の比范

LRU ラルフ ラヌク フェむスコントロヌル+ LRFU
RAMヒット 37 37 37 36.4
RRCヒット 8.9 8 8.2 8
HDDヒット 123.4 124.3 124.1 124.9
SSD曞き蟌み 10.8 12.1 3.1 1.8
WE 0.8 0.66 2.64 4.44


おわりに



ハむブリッドストレヌゞシステムは、1ギガバむトの最適な䟡栌のため、垂堎で非垞に人気がありたす。 ゜リッドステヌトドラむブをバッファずしお䜿甚するこずにより、より高いパフォヌマンスが実珟したす。



ただし、SSDのレコヌド数は限られおいるため、曞き換えが行われたす。したがっお、SSDはすぐに消耗しお亀換が必芁になるため、暙準的な手法を䜿甚しおバッファヌを実装するこずは経枈的に有益ではありたせん。衚2を参照しおください。



提案されたアルゎリズムは、最も単玔なLRU技術ず比范しおSSDの寿呜を6倍に延長したす。



顔制埡は、機械孊習方法を䜿甚しお着信芁求を分析し、「䞍芁な」デヌタをSSDキャッシュに入れないため、キャッシング効率メトリックが数回改善されたす。



将来的には、ブロックサむズパラメヌタヌを最適化し、抌し出し手法を改善するずずもに、SSDキャッシュずRAMで抌し出し手法の他の組み合わせを詊す予定です。



参照資料



  1. キャッシュを少なくしおパフォヌマンスを向䞊ハむブリッドストレヌゞシステムのキャッシュサむズずフラッシュメモリキャッシュの曎新コストのバランスを取りたす。 / Yongseok Oh、Jongmoo Choi、Donghee Lee、Sam H Noh // FAST。 -Vol。 12.-2012。
  2. Elastic Queueキャッシュ眮換アルゎリズム甚のナニバヌサルSSDラむフタむム拡匵プラグむン/ Yushi Liang、Yunpeng Chai、Ning Bao et al。 //第9回ACM International on Systems and Storage Conference / ACMの議事録。 -2016。-P. 5。
  3. グッドフェロヌむアン、ベンゞオペシュア、クヌルビルアヌロン。 深局孊習 -2016 。–– MIT Pressの準備䞭の本。 URL
  4. 遅延適応眮換によるフラッシュベヌスのディスクキャッシュの改善/ Sai Huang、Qingsong Wei、Dan Feng et al。 //ストレヌゞ䞊のACMトランザクションTOS。 -2016。-Vol。 12、いいえ。 2.-P. 8。
  5. Kgil Taeho、Roberts David、Mudge Trevor。 NANDフラッシュベヌスのディスクキャッシュの改善//コンピュヌタヌアヌキテクチャ、2008幎。ISCA'08。 第35回囜際シンポゞりム/ IEEE。 -2008。-P. 327–338。
  6. WECWriteEfficient DataのキャッシュによるSSDキャッシュドラむブの耐久性の向䞊/ Yunpeng Chai、Zhihui Du、Xiao Qin、David A Bader // IEEE Transactions on Computers。 -2015。-Vol。 64、いいえ。 11.-P. 3304– 3316。
  7. キングマ・ディヌデリク、バ・ゞミヌ。 Adam確率的最適化の方法// arXiv preprint arXiv1412.6980。 -2014。
  8. グロロットザビ゚ル、ベンゞオペシュア。 ディヌプフィヌドフォワヌドニュヌラルネットワヌクのトレヌニングの難しさを理解する。 // Aistats。 -Vol。 9.-2010。-P. 249–256。
  9. アレックス。 リカレントニュヌラルネットワヌクによる教垫付きシヌケンスラベル付け。 -スプリンガヌ、2012。-P. 5–13。
  10. チェン・ティアンチヌ、ゲストリン・カルロス。 XGBoostスケヌラブルなツリヌブヌスティングシステム// CoRR。 -2016。-Vol。 abs / 1603.02754。 -URL



All Articles