TiDB 5.0.4 リリースノート
リリース日:2021年9月27日
TiDB バージョン: 5.0.4
互換性の変更
TiDB
- 新しいセッションで
SHOW VARIABLES
を実行すると遅い問題を修正します。この修正により、 #19341で行われた一部の変更が元に戻り、互換性の問題が発生する可能性があります。 #24326 tidb_stmt_summary_max_stmt_count
変数のデフォルト値を200
から3000
#25873に変更します。
- 次のバグ修正により実行結果が変更され、アップグレードの非互換性が生じる可能性があります。
UNION
の子にNULL
の値#26559が含まれている場合、TiDB が間違った結果を返す問題を修正します。greatest(datetime) union null
が空の文字列#26532を返す問題を修正last_day
関数の動作が SQL モード#26000で互換性がない問題を修正having
節が正しく動作しない場合がある問題を修正#26496between
式の前後の照合が異なる場合に発生する誤った実行結果を修正します#27146group_concat
関数の列に非ビン照合順序がある場合に発生する誤った実行結果を修正します#27429- 新しい照合順序が有効になっている場合、複数の列で
count(distinct)
式を使用すると間違った結果が返される問題を修正します#27091 extract
関数の引数が負の期間#27236の場合に発生する結果の誤りを修正します。SQL_MODE
が 'STRICT_TRANS_TABLES' #26762の場合、無効な日付を挿入してもエラーが報告されない問題を修正します。SQL_MODE
が 'NO_ZERO_IN_DATE' #26766の場合、無効なデフォルト日付を使用してもエラーが報告されない問題を修正します。- プレフィックス インデックス#26029のクエリ範囲のバグを修正
LOAD DATA
ステートメントが utf8 以外のデータを異常にインポートする可能性がある問題を修正します#25979- 副次索引に主キーと同じ列がある場合、
insert ignore on duplicate update
が誤ったデータを挿入する可能性がある問題を修正します#25809 - パーティション化されたテーブルにクラスター化されたインデックスがある場合に間違ったデータが挿入される可能性がある問題を修正し#25846
insert ignore duplicate update
- ポイントgetやバッチポイント#24562でキーが
ENUM
型の場合、クエリ結果がおかしくなることがある問題を修正 BIT
型の値#23479を除算するときに発生する誤った結果を修正します。prepared
ステートメントと直接クエリの結果が一致しない可能性がある問題を修正します#22949YEAR
型を文字列または整数型と比較すると、クエリの結果が正しくない場合がある問題を修正#23262
- 新しいセッションで
機能強化
TiDB
- オプティマイザの推定を無視して強制的に MPP モード#26382を使用する設定
tidb_enforce_mpp=1
をサポート
- オプティマイザの推定を無視して強制的に MPP モード#26382を使用する設定
TiKV
- TiCDC 構成の動的変更をサポート#10645
PD
- TiDB ダッシュボード#3884に OIDC ベースの SSO サポートを追加
ティフラッシュ
- DAG リクエストで
HAVING()
の機能をサポート DATE()
機能をサポート- インスタンスごとの書き込みスループット用に Grafana パネルを追加する
- DAG リクエストで
改良点
TiDB
- ヒストグラムの行数に基づいて自動分析をトリガーする#24237
- ノードに障害が発生して#26757前に再起動した場合、TiFlash ノードへのリクエストの送信を一定期間停止します。
split region
の上限を増やしてsplit table
とpresplit
をより安定させる#26657- MPP クエリの再試行のサポート#26483
- MPP クエリを起動する前に、TiFlash の可用性を確認してください#1807
- 安定した結果モードをサポートして、クエリ結果をより安定させます#26084
- MySQL システム変数
init_connect
とそれに関連する機能#18894のサポート COUNT(DISTINCT)
MPPモードの集計機能を徹底的に押し下げる#25861- 集計関数を
EXPLAIN
ステートメントでプッシュダウンできない場合にログ警告を出力する#25736 - Grafana ダッシュボード#25327に
TiFlashQueryTotalCounter
のエラー ラベルを追加する - HTTP API #24209によるセカンダリ インデックスを介したクラスター化インデックス テーブルの MVCC データの取得のサポート
- パーサー#24371で
prepared
ステートメントのメモリ割り当てを最適化する
TiKV
- 読み取り待機レイテンシーを短縮するために、読み取り準備完了と書き込み準備完了を別々に処理する#10475
- 解決済み TS メッセージのサイズを縮小してネットワーク帯域幅を節約する#2448
- slogger スレッドが過負荷になり、キューがいっぱいになったときに、スレッドをブロックする代わりにログを削除します#10841
- TiKV コプロセッサーのスローログを、リクエストの処理に費やされた時間のみを考慮するようにします#10841
- 事前書き込みを可能な限り冪等にして、未確定エラーの可能性を減らします#10587
- 低い書き込みフロー#10662で誤った「GC can not work」アラートを回避する
- 復元するデータベースは、バックアップ中に常に元のクラスター サイズと一致するようにします。 #10643
- panic出力がログ#9955にフラッシュされることを確認します。
PD
- PD 間のリージョン情報の同期のパフォーマンスを向上させます#3993
ツール
Dumpling
START TRANSACTION ... WITH CONSISTENT SNAPSHOT
またはSHOW CREATE TABLE
の構文をサポートしていない MySQL 互換データベースのバックアップのサポート#309
TiCDC
- ユニファイド ソーターが並べ替えにメモリを使用している場合のメモリ管理を最適化します#2553
- メジャーまたはマイナー バージョン間での TiCDC クラスターの動作を禁止する#2598
- テーブルのリージョンがすべて TiKV ノードから転送されるときのゴルーチンの使用量を減らします#2284
- 削除
file sorter
#2326 - 常に TiKV から古い値を引き出し、出力は
enable-old-value
#2301に従って調整されます - PD エンドポイントで証明書が見つからない場合に返されるエラー メッセージを改善します#1973
- 同時実行性が高い場合、より少ないゴルーチンのためにワーカープールを最適化します#2211
- グローバル gRPC 接続プールを追加し、KV クライアント間で gRPC 接続を共有する#2533
バグの修正
TiDB
- パーティション化されたテーブルにクエリを実行し、パーティション キーの条件が
IS NULL
#23802の場合に TiDB がpanicになる可能性がある問題を修正します。 FLOAT64
型のオーバーフローチェックがMySQL #23897と異なる問題を修正case when
式#26662の間違った文字セットと照合順序を修正します- 悲観的なトランザクションをコミットすると書き込み競合が発生する可能性があるという問題を修正します#25964
- 悲観的なトランザクションのインデックス キーが繰り返しコミットされる可能性があるバグを修正#26359 #10600
- 非同期コミット ロックを解決するときに TiDB がpanicになる可能性がある問題を修正します#25778
INDEX MERGE
#25045使用時に列が見つからないことがあるバグを修正- ユーザーの
authentication_string
#25225をALTER USER REQUIRE SSL
でクリアしてしまう不具合を修正 - 新しいクラスタの
tidb_gc_scan_lock_mode
グローバル変数の値が、実際のデフォルト モード「LEGACY」ではなく「PHYSICAL」を示すバグを修正します#25100 TIKV_REGION_PEERS
システムテーブルが正しいDOWN
ステータスを表示しないバグを修正#24879- HTTP API 使用時にメモリリークが発生する問題を修正#24649
- ビューが
DEFINER
#24414をサポートしていない問題を修正 tidb-server --help
がコード2
#24046で終了する問題を修正- グローバル変数
dml_batch_size
の設定が反映されない問題を修正#24709 read_from_storage
と分割テーブルを同時に使用するとエラー#20372が発生する問題を修正- 射影演算子#24264を実行すると TiDB がパニックになる問題を修正
- 統計がクエリのpanicを引き起こす可能性がある問題を修正します#24061
BIT
列でapprox_percentile
関数を使用するとpanic#23662が発生する可能性がある問題を修正します。- Grafana のCoprocessor Cacheパネルのメトリックが間違っている問題を修正します#26338
- 同じパーティションを同時に切り捨てると DDL ステートメントがスタックする問題を修正します#26229
GROUP BY
項目#27106にセッション変数を使用した場合に発生する、誤ったクエリ結果の問題を修正します。- テーブルを結合するときの
VARCHAR
とタイムスタンプの間の間違った暗黙的な変換を修正します#25902 - 関連付けられたサブクエリ ステートメントの間違った結果を修正する#27233
- パーティション化されたテーブルにクエリを実行し、パーティション キーの条件が
TiKV
- 破損したスナップショット ファイルが原因で発生する可能性のあるディスクがいっぱいになる問題を修正します#10813
- Titan を有効にして 5.0 より前のバージョンからアップグレードするときに発生する#10843panicの問題を修正します。
- 新しいバージョンの TiKV が v5.0.x にロールバックできない問題を修正#10843
- 5.0 より前のバージョンから 5.0 以降のバージョンにアップグレードするときに発生する TiKVpanicの問題を修正します。アップグレード前に Titan を有効にしてクラスターを TiKV v3.x からアップグレードした場合、このクラスターで問題が発生する可能性があります。 #10774
- 左悲観ロックによる解析エラーを修正#26404
- 特定のプラットフォームで期間を計算するときに発生するpanicを修正します#10571
- Load Base Split の
batch_get_command
のキーがエンコードされていない問題を修正#10542
PD
ティフラッシュ
- テーブル スキャン タスクの実行時に発生する潜在的なpanicの問題を修正します。
- MPP タスクの実行時に発生する潜在的なメモリ リークの問題を修正します。
- DAQ リクエストの処理時に TiFlash が
duplicated region
エラーを発生させるバグを修正 - 集計関数
COUNT
またはCOUNT DISTINCT
を実行したときに予期しない結果が生じる問題を修正 - MPP タスクの実行時に発生する潜在的なpanicの問題を修正します
- 複数のディスクに展開されたときに TiFlash がデータを復元できないという潜在的なバグを修正します
- 分解時に発生する潜在的なpanicの問題を修正します
SharedQueryBlockInputStream
- 分解時に発生する潜在的なpanicの問題を修正します
MPPTask
- TiFlash が MPP 接続の確立に失敗したときの予期しない結果の問題を修正
- ロックを解決するときに発生する潜在的なpanicの問題を修正します
- 負荷の高い書き込みでメトリクスのストア サイズが不正確になる問題を修正
- クエリに
CONSTANT
、<
、<=
、>
、>=
、またはCOLUMN
などのフィルターが含まれている場合に発生する誤った結果のバグを修正します - 長時間実行した後、TiFlash がデルタ データをガベージ コレクションできないという潜在的な問題を修正します。
- メトリクスが間違った値を表示する潜在的なバグを修正
- TiFlash が複数のディスクに展開されている場合に発生する可能性のあるデータの不整合の問題を修正します。
ツール
Dumpling
- MySQL 8.0.3 以降で
show table status
の実行がスタックする問題を修正#322
- MySQL 8.0.3 以降で
TiCDC
mysql.TypeString, mysql.TypeVarString, mysql.TypeVarchar
などのデータ型を JSON にエンコードする際にプロセスpanicが発生する問題を修正#2758- このテーブルが再スケジュールされているときに、複数のプロセッサが同じテーブルにデータを書き込む可能性があるために発生するデータの不整合の問題を修正します#2417
- TiCDC がキャプチャするリージョンが多すぎる場合に発生する OOM を回避するために、 #2724ウィンドウ サイズを小さくします。
- メモリ プレッシャが高い場合に gRPC 接続が頻繁に切断されるエラーを修正します#2202
- unsigned
TINYINT
type #2648で TiCDC がpanicになるバグを修正 - アップストリーム#2612でトランザクションを挿入し、同じ行のデータを削除すると、TiCDC Open Protocol が空の値を出力する問題を修正します。
- スキーマ変更#2603の終了 TS で変更フィードが開始されると、DDL 処理が失敗するバグを修正します。
- タスクがタイムアウトするまで、無応答のダウンストリームが古い所有者のレプリケーション タスクを中断する問題を修正します#2295
- メタデータ管理のバグを修正#2558
- TiCDC 所有者の切り替え後に発生するデータの不整合の問題を修正します#2230
capture list
コマンド#2388の出力に古いキャプチャが表示されることがある問題を修正します。- 統合テスト#2422で DDL ジョブの重複が発生した場合に発生する
ErrSchemaStorageTableMiss
のエラーを修正します。 ErrGCTTLExceeded
エラーが発生するとチェンジフィードを削除できない不具合を修正#2391- cdclog への大きなテーブルの複製が失敗するバグを修正#1259 #2424
- CLI の下位互換性の問題を修正します#2373
SinkManager
#2299でマップへの安全でない同時アクセスの問題を修正- DDL ステートメントの実行時に所有者がクラッシュすると、DDL が失われる可能性がある問題を修正します#1260
- リージョンが初期化された直後にロックが解除される問題を修正#2188
- 新しいパーティション テーブルを追加するときに発生する余分なパーティション ディスパッチの問題を修正します#2263
- TiCDC が変更フィードを削除しても警告を発し続ける問題を修正#2156