AutoTikvはTiKVデータベースの自動チューニングするためのツールです。:そのデザインは、紙2017のSIGMODに触発されたチューニング大規模機械学習による自動データベース管理システム自動チューニングのためのデータベース・パラメーターのための機械学習モデルを使用して、。
設計目標
以下の実質的に全調整プロセス:
再起動後tikv AutoTiKVのサポートは、(あなたも再起動しないように選択することができます)パラメータを変更します。パラメータを調整する必要があるとメトリックはcontroller.py年で見られるように宣言することができます。
次は、ステートメントつまみモデルです。
"ライト・バッファ・サイズ" :#ノブの名前 { "changebyyml":真、#はtikv-ansible / confに/変更トゥルー示しtikv.yml調整 、その後、#1 changebyyml == falseの場合は、なし: "set_funcを"修正パラメータ指定された関数名(関数の中でも、一般的にtikv-使用して、controller.pyを定義するコマンドラインを調整するCTLを) :「MINVAL」64、#IF!タイプ= 列挙型、最小可能な値を示し 、「MAXVALを」: 1024、#IFタイプの=!列挙型は、可能な最大値示し 、 "EnumValを":[]、#IFタイプの== 列挙型、すべての有効値一覧表示 "int型"、#1: "タイプ" int型 / 列挙型 / リアル 64#1: "デフォルト"のデフォルト値を 、}
次の文は、メトリックモデルです。
「write_latency」: { 「read_func」:read_write_latency、#ステートメントインデックス機能(機能もでcontroller.pyで定義されている)を参照するには 、「lessisbetter」:の小さい値以内1、#モデルの種類を、この(1メトリックがベターである:はい) 「のCalc 「:」INS " 、#INSは、このパラメータの値は、ベンチマークを表示するには、後の結果である表します。INCパラメータが増分であることを示し、その結果として、減算前のベンチマーク値の後に必要とします。 }、
10(具体的には、サイズを調整することができる)、ランダムベンチマークにノブを生成し、それがベンチマークの先頭にMLモデルパラメータの後に推奨されます。
MLモデル
AutoTikvとOtterTuneはまた、新しいノブを推奨するガウス過程回帰として使用します。その推定値F:X-> Y(例えば、パラメータX、待ち時間Yの推定値)、問題ができるだけ小さくX、ようにF(X)の値の権利を見つけることになります。F以上と(Yは、スループット、すべての負のYへの直接アクセスなど、大きな良い場合)私たちは、YのXを最小限にするために、右勾配降下を見つけるのですか。下図のように:
だけでなく、学習サンプル中; NO、アルゴリズムの相対的な複雑さの問題を解決し、計算量を減少させるために他のアルゴリズムと比較するために属する1とガウスプロセスモデルパラメータモデルに比べ等ニューラルネットワーク:利点の一つは、ガウス回帰です。 NNは、いくつかのケースよりも良好に機能します。これは、所与のXでYに対応する値を推定することができるだけでなく2、Xは、推定値M(X)と標準偏差S(X)を意味することができます。
時間の新しい推奨値を検索し、探査(探査)を考慮して使用します(搾取):ガウス回帰性質もあります。
- その探査は、新しいデータポイントが未知の領域にいくつかのポイントです探ります。
- つまりエリア既知のデータポイントの十分な数でモデルを学習トレーニングマシンを使用して、これらのデータを使用することが推定され、その後、良い点を見つけます
提案されたプロセスでは、新たな分野を開拓する必要があるが、また知られている領域にデータの使用を推奨して、探査と利用のバランスをとる、すなわち必要がそうでない局所最適に陥る可能性があり、グローバルな最適点を見つけることができません。たとえば、このゾーンで最高の場所を見つけることができるものの面積は、データの推薦を使用することが知られているが、未知の領域が検出されない、より良いポイントを有することができます。そして、今度は模索してきたことは、検索プロセスは非常に非効率的であることができます。2間のこのバランスの核となるアイデアはこれです:長い時間のために、我々はこれらのデータを使用することをお勧めする場合、十分なデータ、およびデータの欠如は、我々はほとんど未知の領域を探索するために、地域で最も少ないポイントを探索するとき、私たちに最大量の情報を与えます。
ガウス過程回帰の上記特性を利用して:それは平均M(X)と標準偏差S(X)を推定し、データXを取り巻く多くて、それはS(X)の標準偏差を推定した場合であろう大きすぎる(このXデータが直感的多くは、不確実性が大きくないであろうことは理解されている場合、他のデータ点と大きな差が)、標準偏差が大きすぎるに反映しました。データが十分である場合に不確実性が低下するので、逆に、標準偏差が小さくなります。
探査と利用のバランスをとるためにバインドされた信頼区間上限自信の使用を推奨するには。我々は可能な限り大きなX Y値を見つける必要があると仮定しよう。K> 0は、調整可能な係数であり、次いでU(X)= M(X)+のk * S(X)。私達はちょうどできるだけ大きくすることができますX U(X)を見つける必要があります。
- 場合U(X)が大きい、それはM(X)が大きく、それもよいS(X)大きくてもよいです。
- S(X)が大きい場合には、Xの周りにこれ以上のデータは、新しいポイント未知の地域を探索する必要がありません。
- M(X)が大きい場合、すなわち、推定された平均値Yは、既知のデータポイントを使用して良好な効果を見つける必要が大きいです。式の係数kは、探査との使用、より大きなkの割合に影響を与え、より多くの新しい分野を探求することを奨励。
コードの実装では、我々は、ランダムに生成40個の候補ノブを起動し、そのU(X)を算出し、この推薦の結果ことを最大値としてU(X)を見つけるために、ガウシアン回帰モデルを用いて予測値。
参考:https://mp.weixin.qq.com/s/y8VIieK0LO37SjRRyPhtrw
実験結果
AutoTiKVは現在、次のチューニングパラメータをサポートしています。
概要
1