Elasticsearch バージョン 8.7.1

8.7 の 破壊的変更 も参照してください。

既知の問題

  • ArrayIndexOutOfBoundsException は、トランスポートメッセージを作成する際にスローされる可能性があります。
    トランスポートメッセージを作成するために使用されるバッファへの書き込みとシークの特定のシーケンスは、アライメントバグに遭遇する可能性があり、ArrayIndexOutOfBoundsException が発生し、トランスポートメッセージの送信が妨げられます。
    この問題は 8.8.0 で修正されました。
  • シャードの再バランスがクラスタを一時的に不均衡にする可能性があります。
    8.6.0 以降、デフォルトのシャード再バランスアルゴリズムは、最終的な望ましいバランスを計算し、現在のクラスタの状態を望ましい状態と調整するためにシャードの移動を行います。ただし、シャードの移動が行われる順序は特定のノードに偏る可能性があり、調整が進行中の間、クラスタが一時的に不均衡になる原因となります。常に、ノードがディスクのウォーターマークに達すると、追加のシャードを受け入れなくなりますが、この偏りにより、ノードが通常の操作で予想以上に頻繁にディスクのウォーターマークに達する可能性があります。調整プロセスが完了すると、クラスタは再びバランスが取れます。
    この問題を回避するには、8.8.0 以降にアップグレードしてください。

  • GC JVM 設定変更による高メモリ圧力
    このバージョンの Elasticsearch は JDK 20 とバンドルされています。JDK 20 では 予防的 GC はデフォルトで無効 です。このため、特定の負荷パターンの下で大きなドキュメントを取得する際に、メモリ圧力が増加し、CircuitBreakerExceptions の数が増加する可能性があります。(問題: #99592
    この変更が Elasticsearch の使用に影響を与える場合は、JVM 引数 -XX:+UnlockDiagnosticVMOptions -XX:+G1UsePreventiveGC を追加して以前の動作を再度有効にすることを検討してください(参照: JDK 20 リリースノート)。この回避策は一時的なものであり、Elasticsearch のバージョン 8.10.2 までバンドルされている JDK 20 のみで機能することに注意することが重要です。以降のバージョンは JDK 21+ をバンドルしており、この設定は 削除されています。これらの JVM 引数を指定すると、JVM(したがって Elasticsearch ノード)が起動しなくなります。

バグ修正

  • 割り当て
    • 最大シャードサイズに基づいてバランサーのしきい値を計算 #95090
    • DiskThresholdMonitor 再ルーティング後に適用された状態を使用 #94916
    • 調整中にノード置換の決定者を弱める #95070
  • ILM+SLM
    • ILM アクションのダウンサンプリングは非時系列インデックスをスキップする必要があります #94835 (問題: #93123
  • インジェストノード
    • 非同期の強化実行が強化ポリシーロックを早期に解放するのを修正 #94702 (問題: #94690
  • ネットワーク
    • RecyclerBytesStreamOutput のオフバイワンバグを修正 #95036
  • 回復
    • IndexShard インスタンスの非同期作成 #94545
  • 検索
    • 空の PIT またはスクロールを閉じるときに 200 を返す #94708
  • スタッツ
    • _cluster/stats .nodes.fs の重複排除を修正 #94798 (問題: #24472
    • FsInfo デバイスの重複排除を修正 #94744

強化

  • 認可
    • 役割解析で FieldPermissionsCache を再利用 #94931

アップグレード

  • パッケージング
    • バンドルされた JDK を Java 20 にアップグレード #94600