2016-09-30 16 views
1

私はElasticSearchクラスタ内のパフォーマンスの問題を調査するよう依頼されており、そして次のような構成に遭遇している:2つのfielddataエントリがあるElasticSearchがYamlでダブルエントリを解析する方法は?

indices: 
    breaker: 
    fielddata: 
     limit: 50% 
    fielddata: 
     cache: 
     expire: 15m 
     size: 40% 
    memory: 
     index_buffer_size: 50% 

こと。

上記のシナリオでは、fielddata.limit,およびfielddata.cache.sizeの設定は、次のようなシナリオと比べてどうなりますか?例えば

indices: 
    breaker: 
    fielddata: 
     limit: 50% 
     cache: 
     expire: 15m 
     size: 40% 
    memory: 
     index_buffer_size: 50% 

fielddata.limitフィールドがfielddataレベルの2番目の宣言があるという事実によって失われるだろうか? YAML仕様で

答えて

0

Relevant section:各キーが一意であるという制限を有する値ノード対:

マッピングノードの内容は、キーの順不同の集合です。

したがって、あなたが投稿しYAMLは、単に違法であり、対応のローダはエラーで停止しなければなりません - ノードの平等が非自明であるので、しかし、それはElasticSearch(SnakeYAML)で使用されるYAML実装で実装されていません、重複したキーに関してもopen issueがあります。

ElasticSearchは重複キーを許可しているようですが、YAML仕様に準拠していません。これは悪いことであり、私はそれのための問題を開くためにアドバイスをします。さらに重要なのは、ElasticSearchの動作を、使用されているYAMLの実装から推測することができないことです。これは、重複キーのためhistoryを持っており、開発者の1からstatementがあります:

また、elasticsearchの次のメジャーバージョンは、厳密な設定の解析を持っており、この問題が発生した場合の起動時にエラーが返されます。

合計:ElasticSearchが重複キーのエラーを投げないことは、既知の欠点であり、次のメジャーリリースで修正される予定です。したがって、現在の動作は予期しないものであり、使用すべきではありません。リンクされたバグによると、の値が最後に重複キーの値とそれ以前の値が破棄されます。子マッピングのマージは行われません。

関連する問題