StarRocks version 4.0
警告
ダウングレードに関する注意事項
-
StarRocks を v4.0 にアップグレードした後、v3.5.0 および v3.5.1 にダウングレードしないでください。そうするとメタデータの非互換性が発生し、FE がクラッシュする可能性があります。これらの問題を回避するには、クラスタを v3.5.2 以降にダウングレードする必要があります。
-
v4.0.2 から v4.0.1、v4.0.0、および v3.5.2~v3.5.10 へのクラスタのダウングレード前に、次のステートメントを実行してくだ さい:
SET GLOBAL enable_rewrite_simple_agg_to_meta_scan=false;クラスタをv4.0.2以降にアップグレードした後、次のステートメントを実行してください:
SET GLOBAL enable_rewrite_simple_agg_to_meta_scan=true;
4.0.6
リリ ース日:2026 年 2 月 14 日
改善点
- Iceberg テーブル作成時に、括弧付きのパーティション変換(例:
PARTITION BY (bucket(k1, 3)))をサポートしました。#68945 - Iceberg テーブルにおいて、パーティション列を列リストの末尾に配置する必要があるという制限を削除し、任意の位置に定義できるようになりました。#68340
- Iceberg テーブルの sink に対してホストレベルのソート機能を導入しました。システム変数
connector_sink_sort_scope(デフォルト:FILE)で制御し、データレイアウトを最適化して読み取り性能を向上させます。#68121 - Iceberg のパーティション変換関数(例:
bucket、truncate)において、引数の数が誤っている場合のエラーメッセージを改善しました。#68349 - テーブルプロパティ処理をリファクタリングし、Iceberg テーブルにおける異なるファイル形式(ORC/Parquet)および圧縮コーデックのサポートを強化しました。#68588
- より きめ細かな制御を可能にするため、テーブルレベルのクエリタイムアウト設定
table_query_timeoutを追加しました(優先順位:Session > Table > Cluster)。#67547 ADMIN SHOW AUTOMATED CLUSTER SNAPSHOTステートメントにより、自動スナップショットの状態およびスケジュールを確認できるようになりました。#68455SHOW CREATE VIEWで、コメントを含む元のユーザー定義 SQL を表示できるようになりました。#68040information_schema.loadsにおいて、Merge Commit を有効にした Stream Load タスクを表示し、可観測性を向上させました。#67879- FE のメモリ使用量を推定するユーティリティ API
/api/memory_usageを追加しました。#68287 - パーティションリサイクル時の
CatalogRecycleBinにおける不要なログ出力を削減しました。#68533 - ベーステーブルで Swap/Drop/Replace Partition 操作が実行された際、関連する非同期マテリアライズドビューを自動的にリフレッシュするようにしました。#68430
count distinct系の集約関数でVARBINARY型をサポートしました。#68442- 式統計情報を強化し、セマンティクス的に安全な式(例:
cast(k as bigint) + 10)に対してヒストグラムの MCV を伝播することで、データスキュー検出を改善しました。#68292
バグ修正
以下の問題を修正しました:
- Skew Join V2 のランタイムフィルタで発生する可能性のあるクラッシュ。#67611
- 低カーディナリティ書き換えにより発生する Join 述語の型不一致(例:INT = VARCHAR)。#68568
- クエリキューの割り当て時間および待機タイムアウトロジックに関する問題。#65802
- スキーマ変更後の Flat JSON 拡張列における
unique_idの競合。#68279 OlapTableSink.complete()におけるパーティションの同時 アクセス問題。#68853- 手動でダウンロードしたクラスタスナップショットを復元する際のメタデータ追跡不整合。#68368
- リポジトリパスが
/で終わる場合に、バックアップパスに二重スラッシュが含まれる問題。#68764 SHOW CREATE CATALOGの出力において、OBS の AK/SK 認証情報がマスクされていなかった問題。#65462
4.0.5
リリース日:2026年2月3日
改善点
- Paimon のバージョンを 1.3.1 に更新しました。#67098
- DP 統計情報推定における欠落していた最適化を復元し、冗長な計算を削減しました。#67852
- DP Join 並べ替えにおけるプルーニングを改善し、高コストな候補プランを早期にスキップできるようにしま した。#67828
- JoinReorderDP のパーティション列挙を最適化し、オブジェクト割り当てを削減するとともに、アトム数の上限(≤ 62)を追加しました。#67643
- DP Join 並べ替えのプルーニングを最適化し、BitSet にチェックを追加してストリーム処理のオーバーヘッドを削減しました。#67644
- DP 統計情報推定時に述語列の統計情報収集をスキップし、CPU オーバーヘッドを削減しました。#67663
- 相関 Join の行数推定を最適化し、
Statisticsオブジェクトの再生成を回避しました。#67773 Statistics.getUsedColumnsにおけるメモリ割り当てを削減しました。#67786- 行数のみを更新する場合に、
Statisticsマップの不要なコピーを回避しました。#67777 - クエリに集約が存在しない場合、集約プッシュダウン処理をスキップしてオーバーヘッドを削減しました。#67603
- ウィンドウ関数における COUNT DISTINCT を改善し、複数 DISTINCT 集約の融合に対応するとともに、CTE 生成を最適化しました。#67453
- Trino 方言で
map_agg関数をサポートしました。#66673 - 物理プランニング時に LakeTablet のロケーション情報をバッチ取得できるようにし、共有データクラスタでの RPC 呼び出しを削減しました。#67325
- shared-nothing クラスタにおいて Publish Version トランザクション用のスレッドプールを追加し、並行性を向上させました。#67797
- LocalMetastore のロック粒度を最適化し、データベースレベルのロックをテーブルレベルのロックに置き換えました。#67658
- MergeCommitTask のライフサイクル管理をリファクタリングし、タスクキャンセルをサポートしました。#67425
- 自動クラスタスナップショットに対して実行間隔の設定をサポートしました。#67525
- MemTrackerManager において、未使用の
mem_poolエントリを自動的にクリーンアップするようにしました。#67347 - ウェアハウスのアイドルチェック時に
information_schemaクエリを無視するようにしました。#67958 - データ分布に応じて、Iceberg テーブルの書き込み時にグローバルシャッフルを動的に有効化できるようにしました。#67442
- Connector Sink モジュール向けに Profile メトリクスを追加しました。#67761
- Profile におけるロードスピルメトリクスの収集および表示を改善し、ローカル I/O とリモート I/O を区別しました。#67527
- Async-Profiler のログレベルを Error に変更し、警告ログの繰り返し出力を防止しました。#67297
- BE シャットダウン時に Starlet へ通知し、StarMgr に SHUTDOWN ステータスを報告するようにしました。#67461
バグ修正
以下の問題を修正しました:
- ハイフン(
-)を含む正当なシンプルパスがサポートされていませんでした。#67988 - JSON 型を含むグループキーに対して集約プッシュダウンが行われた場合に実行時エラーが発生する問題。#68142
- JSON パス書き換えルールにより、パーティション述語で参照されているパーティション列が誤ってプルーニングされる問題。#67986
- 統計情報を用いたシンプル集約の書き換え時に型不一致が発生する問題。#67829
- パーティション Join におけるヒープバッファオーバーフローの潜在的な問題。#67435
- 重い式をプッシュダウンする際に
slot_idsが重複して生成される問題。#67477 - 前提条件チェック不足により、ExecutionDAG の Fragment 接続でゼロ除算が発生する問題。#67918
- 単一 BE 環境での Fragment 並列準備に起因する潜在的な問題。#67798
- RawValuesSourceOperator に
set_finishedメソッドが存在せず、オペレーターが正しく終了しない問題。#67609 - 列アグリゲータで DECIMAL256 型(精度 > 38)がサポートされておらず、BE がクラッシュする問題。#68134
- DELETE 操作時にリクエストへ
schema_keyを含めていなかったため、共有データクラスタで Fast Schema Evolution v2 がサポートされていなかった問題。#67456 - 同期マテリアライズドビューおよび従来のスキーマ変更において、共有データクラスタで Fast Schema Evolution v2 がサポートされていなかった問題。#67443
- FE のダウングレード時にファイルバンドルが無効化されている場合、Vacuum が誤ってファイルを削除する可能性がある問題。#67849
- MySQLReadListener における正常終了処理が正しくない問題。#67917
4.0.4
リリース日:2026年1月16日
改善点
- クエリスケジューリング性能を向上させるため、Operator および Driver の並列 Prepare と、単一ノードでの Fragment 一括デプロイをサポートしました。 #63956
- 大規模パーティションテーブルに対する
deltaRowsの計算を遅延評価(Lazy Evaluation)方式に最適化しました。 #66381 - Flat JSON の処理を最適化し、逐次イテレーション方式の採用およびパス導出ロジックを改善しました。 #66941 #66850
- Group Execution におけるメモリ使用量を削減するため、Spill Operator のメモリを早期に解放できるようにしました。 #66669
- 文字列比較処理のオーバーヘッドを削減するロジックを最適化しました。 #66570
GroupByCountDistinctDataSkewEliminateRuleおよびSkewJoinOptimizeRuleにおけるデータスキュー検出を強化し、ヒストグラムおよび NULL ベースの戦略をサポートし ました。 #66640 #67100- Chunk 内の Column 所有権管理を Move セマンティクスで強化し、Copy-On-Write のオーバーヘッドを削減しました。 #66805
- Shared-data クラスタ向けに FE の
TableSchemaServiceを追加し、MetaScanNodeを更新して Fast Schema Evolution v2 のスキーマ取得をサポートしました。 #66142 #66970 - マルチ Warehouse 環境における Backend リソース統計および並列度(DOP)の計算をサポートし、リソース分離を強化しました。 #66632
- StarRocks セッション変数
connector_huge_file_sizeにより Iceberg の Split サイズを設定できるようになりました。 #67044 QueryDumpDeserializerにおいて、ラベル形式(Label-formatted)の統計情報をサポートしました。 #66656- Shared-data クラスタで Full Vacuum を無効化するための FE 設定
lake_enable_fullvacuum(デフォルト:false)を追加しました。 #63859 - lz4 依存関係を v1.10.0 にアップグレードしました。 #67045
- 行数が 0 の場合に、サンプリングベースのカーディナリティ推定に対するフォールバックロジックを追加しました。 #65599
array_sortにおける Lambda Comparator の Strict Weak Ordering 特性を検証しました。 #66951- 外部テーブル(Delta / Hive / Hudi / Iceberg)のメタデータ取得に失敗した場合のエラーメッセージを改善し、根本原因を表示するようにしました。 #66916
- クエリタイムアウト時に Pipeline の状態を Dump し、FE 側で
TIMEOUT状態としてクエリをキャンセルできるようにしました。 #66540 - SQL ブラックリストのエラーメッセージに、マッチしたルールのインデックスを表示するようにしました。 #66618
EXPLAIN出力に列統計情報のラベルを追加しました。 #65899- 正常終了(例:LIMIT 到達)時の「cancel fragment」ログを除外しました。 #66506
- Warehouse がサスペンドされている場合の Backend ハートビート失敗ログを削減しました。 #66733
ALTER STORAGE VOLUME構文でIF EXISTSをサポートしました。 #66691
バグ修正
以下の問題を修正しました:
- Low Cardinality 最適化下で
withLocalShuffleが不足していたことにより、DISTINCTおよびGROUP BYの結果が不正になる問題を修正しました。 #66768 - Lambda 式を含む JSON v2 関数におけるリライトエラーを修正しました。 #66550
- 相関サブクエリ内の Null-aware Left Anti Join において、Partition Join が誤って適用される問題を修正しました。 #67038
- Meta Scan のリライトルールにおける行数計算の誤りを修正しました。 #66852
- 統計情報に基づく Meta Scan のリライト時に、Union Node の Nullable 属性が不一致となる問題を修正しました。 #67051
PARTITION BYおよびORDER BYが指定されていない Ranking ウィンドウ関数において、最適化ロジックが原因で BE がクラッシュする問題を修正しました。 #67094- ウィンドウ関数と組み合わせた Group Execution Join において、誤った結果が返される可能性がある問題を修正しました。 #66441
- 特定のフィルタ条件下で
PartitionColumnMinMaxRewriteRuleが誤った結果を生成する問題を修正しました。 #66356 - 集約後の Union 処理において Nullable 属性の推論が誤っていた問題を修正しました。 #65429
- 圧縮パラメータ処理時に
percentile_approx_weightedがクラッシュする問題を修正しました。 #64838 - 大きな文字列エンコーディングを伴う Spill 処理中にクラッシュが発生する問題を修正しました。 #61495
- ローカル TopN のプッシュダウン時に
set_collectorが複数回呼び出され、クラッシュが発生する問題を修正しました。 #66199 - LowCardinality リライトロジックにおける依存関係推論エラーを修正しました。 #66795
- Rowset のコミット失敗時に Rowset ID がリークする問題を修正しました。 #66301
- Metacache におけるロック競合の問題を修正しました。 #66637
- 条件付き更新と列モード部分更新を併用した場合に、インジェストが失敗する問題を修正しました。 #66139
- ALTER 操作中に Tablet が削除されることで、並行インポートが失敗する問題を修正しました。 #65396
- RocksDB のイテレーションタイムアウトにより Tablet メタデータのロードが失敗する問題を修正しました。 #65146
- Shared-data クラスタにおいて、テーブル作成および Schema Change 時に圧縮設定が適用されない問題を修正しました。 #65673
- アップグレード時の Delete Vector における CRC32 互換性問題を修正しました。 #65442
- Clone タスク失敗後のファイルクリーンアップ処理におけるステータスチェックロジックの誤りを修正しました。 #65709
INSERT OVERWRITE実行後の統計情報収集ロジックが異常となる問題を修正しました。 #65327 #65298 #65225- FE 再起動後に外部キー制約が失われる問題を修正しました。 #66474
- Warehouse 削除後にメタデータ取得が失敗する問題を修正しました。 #66436
- 高い選択度のフィルタ条件下で、監査ログのスキャン統計が不正確になる問題を修正しました。 #66280
- クエリエラー率メトリクスの計算ロジックが誤っていた問題を修正しました。 #65891
- タスク終了時に MySQL 接続がリークする可能性がある問題を修正しました。 #66829
- SIGSEGV クラッシュ発生時に BE ステータスが即時更新されない問題を修正しました。 #66212
- LDAP ユーザーのログイン処理中に NPE が発生する問題を修正しました。 #65843
- HTTP SQL リクエストでユーザー切り替えを行った際のエラーログが不正確な問題を修正しました。 #65371
- TCP 接続再利用時に HTTP コンテキストがリークする問題を修正しました。 #65203
- Follower から転送されたクエリにおいて、Profile ログに QueryDetail が欠落する問題を修正しました。 #64395
- 監査ログに Prepare / Execute の詳細が記録されない問題を修正しました。 #65448
- HyperLogLog のメモリ割り当て失敗によりクラッシュする問題を修正しました。 #66747
trim関数のメモリ予約処理に関する問題を修正しました。 #66477 #66428- CVE-2025-66566 および CVE-2025-12183 に対応しました。 #66453 #66362 #67053
- Exec Group Driver のサブミッション処理における競合状態を修正しました。 #66099
- Pipeline のカウントダウン処理における use-after-free のリスクを修正しました。 #65940
- キューがクローズされた際に
MemoryScratchSinkOperatorがハングする問題を修正しました。 #66041 - ファイルシステムキャッシュのキー衝突問題を修正しました。 #65823
SHOW PROC '/compactions'におけるサブタスク数の表示誤りを修正しました。 #67209- Query Profile API が統一された JSON 形式を返さない問題を修正しました。 #67077
getTableの例外処理が不適切で、マテリアライズドビューのチェックに影響する問題を修正しました。 #67224- ネイティブテーブルとクラウドネイティブテーブルで
DESC文のExtra列の出力が不一致となる問題を修正しました。 #67238 - 単一ノード構成における競合状態の問題を修正しました。 #67215
- サードパーティライブラリからのログ漏洩を修正しました。 #67129
- REST Catalog の認証ロジック不備により認証に失敗する問題を修正しました。 #66861
4.0.3
リリース日:2025 年 12 月 25 日
改善点
- STRUCT データ型 に対する
ORDER BY句をサポートしました。#66035 - プロパティ付き Iceberg ビューの作成をサポートし、
SHOW CREATE VIEWの出力にプロパティを表示できるようになりました。#65938 ALTER TABLE ADD/DROP PARTITION COLUMNによる Iceberg テーブルのパーティション Spec の変更をサポートしました。#65922- フレーム付きウィンドウ(例:
ORDER BY/PARTITION BY)上でのCOUNT/SUM/AVG(DISTINCT)集約をサポートし、最適化オプションを追加しました。#65815 - 単一文字区切り文字に
memchrを使用することで、CSV パース性能を最適化しました。#63715 - ネットワークオーバーヘッド削減のため、Partial TopN を事前集約(Pre-Aggregation)フェーズにプッシュダウンするオプティマイザルールを追加しました。#61497
- Data Cache の監視機能を強化しました:
- OOM 発生時に迅速にメモリを解放できるよう、Sort および Aggregation オペレーターを最適化しました。#66157
- 共有データクラスターにおいて、CN が必要なスキーマをオンデマンドで取得できるよう、FE に
TableSchemaServiceを追加しました。#66142 - すべての依存する取り込みジョブが完了するまで履歴スキーマを保持するよう、Fast Schema Evolution を最適化しました。#65799
filterPartitionsByTTLを強化し、NULL パーティション値を正しく処理することで、全パーティションが誤って除外される問題を防止しました。#65923FusedMultiDistinctStateを最適化し、リセット時に関連する MemPool を解放するようにしました。#66073- Iceberg REST Catalog において、
ICEBERG_CATALOG_SECURITYプロパティのチェックを大文字・小文字を区別しないようにしました。#66028 - 共有データクラスター向けに、StarOS Service ID を取得する HTTP エンドポイント
GET /service_idを追加しました。#65816 - Kafka コンシューマー設定において、非推奨の
metadata.broker.listをbootstrap.serversに置き換えました。#65437 - Full Vacuum Daemon を無効化できる FE 設定項目
lake_enable_fullvacuum(デフォルト:false)を追加しました。#66685 - lz4 ライブラリを v1.10.0 に更新しました。#67080
バグ修正
以下の問題を修正しました:
latest_cached_tablet_metadataにより、バッチ Publish 中にバージョンが誤ってスキップされる可能性がありました。#66558- 共有なしクラスター実行時に、
CatalogRecycleBin内のClusterSnapshotの相対チェックが引き起こす可能性のある問題。#66501 - Spill 処理中に、複雑なデータ型(ARRAY / MAP / STRUCT)を Iceberg テーブルへ書き込む際に BE がクラッシュする問題。#66209
- writer の初期化または初回書き込みが失敗した場合に、Connector Chunk Sink がハングする可能性がある問題。#65951
- Connector Chunk Sink において、
PartitionChunkWriterの初期化失敗により、クローズ時に Null Pointer 参照が発生する問題。#66097 - 存在しないシステム変数を設定した際に、エラーが返されず成功してしまう問題。#66022
- Data Cache が破損している場合に、Bundle メタデータの解析が失敗する問題。#66021
- 結果が空の場合に、MetaScan が count 列に対して 0 ではなく NULL を返す問題。#66010
- 旧バージョンで作成されたリソースグループに対し、
SHOW VERBOSE RESOURCE GROUP ALLがdefault_mem_poolではなく NULL を表示する問題。#65982 flat_jsonテーブル設定を無効化した後、クエリ実行中にRuntimeExceptionが発生する問題。#65921- 共有データクラスターにおいて、Schema Change 後に
min/max統計を MetaScan に書き換える際に発生する型不一致の問題。#65911 PARTITION BYおよびORDER BYが指定されていない場合に、ランキングウィンドウ最適化によって BE がクラッシュする問題。#67093- 実行時フィルター統合時の
can_use_bf判定が不正確で、誤った結果やクラッシュを引き起こす可能性がある問題。#67062 - 実行時 bitset フィルターをネストした OR 述語にプッシュダウンした際に、結果が不正になる問題。#67061
- DeltaWriter 完了後の書き込みや flush 処理により、データ競合やデータ損失が発生する可能性がある問題。#66966
- 単純集約を MetaScan に書き換える際、nullable 属性の不一致により実行エラーが発生する問題。#67068
- MetaScan 書き換えルールにおける行数計算が正しくない問題。#66967
- Tablet メタデータキャッシュの不整合により、バッチ Publish 中にバージョンが誤ってスキップされる可能性がある問題。#66575
- HyperLogLog 処理において、メモリ割り当て失敗時のエラーハンドリングが不適切な問題。#66827
4.0.2
リリース日:2025年12月4日
新機能
- 新しいリソースグループ属性
mem_poolを追加しました。複数のリソースグループが同じメモリプールを共有し、そのプールに対して共同のメモリ上限を適用できます。本機能は後方互換性があります。mem_poolが指定されていない場合はdefault_mem_poolが使用されます。#64112