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空の文字列を返す問題を修正#26532last_day関数の動作が SQL モード#26000で互換性がない問題を修正しましたhaving節が正しく動作しない可能性がある問題を修正#26496between前後の照合順序が異なる場合に発生する誤った実行結果を修正#27146group_concat関数の列に非ビン照合順序#27429ある場合に発生する誤った実行結果を修正しました- 新しい照合順序が有効になっているときに、複数の列で
count(distinct)式を使用すると間違った結果が返される問題を修正しました#27091 extract関数の引数が負の期間#27236場合に発生する結果の誤りを修正SQL_MODE「STRICT_TRANS_TABLES」の場合、無効な日付を挿入してもエラーが報告されない問題を修正しました#26762SQL_MODE「NO_ZERO_IN_DATE」の場合に無効なデフォルト日付を使用してもエラーが報告されない問題を修正しました#26766- プレフィックスインデックス#26029のクエリ範囲に関するバグを修正
LOAD DATA文が非 UTF8 データを異常にインポートする可能性がある問題を修正#25979insert ignore on duplicate updateセカンダリインデックスにプライマリキーと同じ列がある場合に間違ったデータが挿入される可能性がある問題を修正#25809- パーティションテーブルにクラスター化インデックスがある場合に間違ったデータが挿入される可能性が
insert ignore duplicate update問題を修正しました#25846 - ポイント取得またはバッチポイント取得#24562でキーが
ENUM型の場合にクエリ結果が間違っている可能性がある問題を修正しました BIT型の値を#23479割ったときに発生する誤った結果を修正しましたpreparedステートメントと直接クエリの結果が矛盾する可能性がある問題を修正#22949YEAR型を文字列または整数型#23262と比較するとクエリ結果が間違っている可能性がある問題を修正しました
- 新規セッションで
機能強化
TiDB
- 最適化の推定を無視し、MPPモード#26382を強制的に使用する設定
tidb_enforce_mpp=1サポート
- 最適化の推定を無視し、MPPモード#26382を強制的に使用する設定
TiKV
- TiCDC 構成の動的な変更をサポート#10645
PD
- TiDBダッシュボード#3884にOIDCベースのSSOサポートを追加
TiFlash
- DAGリクエストの
HAVING()機能をサポートする DATE()機能をサポートする- インスタンスごとの書き込みスループットの Grafana パネルを追加する
- DAGリクエストの
改善点
TiDB
- ヒストグラムの行数に基づいて自動分析をトリガーする#24237
- ノードが故障して#26757前に再起動した場合、一定期間TiFlashノードへのリクエストの送信を停止します。
split region上限を上げてsplit tableとpresplitをより安定させる#26657- MPPクエリの再試行をサポート#26483
- MPPクエリ#1807を起動する前にTiFlashの可用性を確認してください
- クエリ結果をより安定させるために、安定した結果モードをサポートします#26084
- MySQLシステム変数
init_connectとその関連機能#18894サポートする - MPPモード#25861で
COUNT(DISTINCT)集約機能を徹底的に押し下げる - 集計関数を
EXPLAIN文#25736でプッシュダウンできない場合にログ警告を出力する - Grafanaダッシュボード#25327の
TiFlashQueryTotalCounterにエラーラベルを追加する - HTTP API #24209によるセカンダリインデックス経由でクラスター化インデックステーブルの MVCC データを取得する機能をサポート
- パーサー#24371の
prepared文のメモリ割り当てを最適化する
TiKV
- 読み取り準備と書き込み準備は別々に処理して読み取りレイテンシーを削減する#10475
- ネットワーク帯域幅を節約するために、解決されたTSメッセージのサイズを縮小します#2448
- スロガースレッドが過負荷になりキューがいっぱいになったときに、スレッドをブロックする代わりにログをドロップする#10841
- TiKVコプロセッサのスローログに、リクエスト#10841処理に費やされた時間のみを考慮するようにする
- 未確定エラーの可能性を減らすために、できるだけべき等な事前書き込みを行う#10587
- 書き込みフローが低い場合に「GC が動作できません」という誤った警告を回避する#10662
- 復元するデータベースが、バックアップ時の元のクラスタサイズと常に一致するようにします#10643
- panic出力がログ#9955にフラッシュされていることを確認する
PD
- PD間のリージョン情報の同期パフォーマンスを向上#3993
ツール
Dumpling
START TRANSACTION ... WITH CONSISTENT SNAPSHOTまたはSHOW CREATE TABLE構文をサポートしていない MySQL 互換データベースのバックアップをサポート#309
TiCDC
- Unified Sorterがメモリを使用してソートする場合のメモリ管理を最適化します#2553
- メジャーバージョンまたはマイナーバージョン間での TiCDC クラスターの操作を禁止#2598
- テーブルのリージョンがすべて TiKV ノード#2284から転送されるときに、goroutine の使用を減らす
file sorter#2326を削除- 常にTiKVから古い値を引き出し、出力は
enable-old-value#2301に従って調整されます。 - PDエンドポイントに証明書がない場合に返されるエラーメッセージを改善しました#1973
- 同時実行性が高い場合は、ワーカープールを最適化してゴルーチンの数を減らす#2211
- グローバル gRPC 接続プールを追加し、KV クライアント間で gRPC 接続を共有する#2533
バグ修正
TiDB
- パーティションテーブルをクエリし、パーティションキーに条件
IS NULLがある場合に TiDB がpanic可能性がある問題を修正しました#23802 FLOAT64型のオーバーフローチェックがMySQL #23897と異なる問題を修正case when式#26662の間違った文字セットと照合順序を修正します- 悲観的トランザクションをコミットすると書き込み競合が発生する可能性がある問題を修正#25964
- 悲観的トランザクションのインデックスキーが繰り返しコミットされる可能性があるバグを修正#26359 #10600
- 非同期コミットロックを解決する際に TiDB がpanic可能性がある問題を修正#25778
INDEX MERGE#25045使用時に列が見つからないことがあるバグを修正ALTER USER REQUIRE SSLユーザーのauthentication_string#25225をクリアするバグを修正- 新しいクラスターの
tidb_gc_scan_lock_modeグローバル変数の値が、実際のデフォルトモード「LEGACY」 #25100ではなく「PHYSICAL」と表示されるバグを修正しました。 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のコプロセッサー Cacheパネルのメトリックが間違っている問題を修正しました#26338
- 同じパーティションを同時に切り捨てるとDDL文がスタックする問題を修正しました#26229
- セッション変数を
GROUP BY項目#27106として使用した場合に発生する誤ったクエリ結果の問題を修正しました - テーブル#25902を結合する際の
VARCHARとタイムスタンプ間の誤った暗黙的な変換を修正しました - 関連するサブクエリステートメントの誤った結果を修正する#27233
- パーティションテーブルをクエリし、パーティションキーに条件
TiKV
- 破損したスナップショットファイルによって引き起こされる潜在的なディスクフル問題を修正#10813
- Titan が有効になっている 5.0 より前のバージョンからアップグレードするときに発生する TiKVpanic問題を修正しました#10843
- 新しいバージョンの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
TiFlash
- テーブルスキャンタスクの実行時に発生する可能性のあるpanic問題を修正しました
- MPPタスク実行時に発生する可能性のあるメモリリークの問題を修正
- TiFlashがDAQリクエストを処理する際に
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 #2758にエンコードする際に発生するプロセスpanicの問題を修正- このテーブルが再スケジュールされているときに複数のプロセッサが同じテーブルにデータを書き込む可能性があるために発生するデータの不整合の問題を修正しました#2417
- TiCDC があまりにも多くのリージョンをキャプチャしたときに発生する OOM を回避するために、gRPC ウィンドウのサイズを小さくします#2724
- メモリ負荷が高いときにgRPC接続が頻繁に切断されるエラーを修正#2202
- 符号なし
TINYINT型#2648でTiCDCがpanicを起こすバグを修正 - TiCDCオープンプロトコルがトランザクションを挿入し、アップストリーム#2612で同じ行のデータを削除すると空の値を出力する問題を修正しました。
- スキーマ変更#2603の終了 TS で変更フィードが開始されると DDL 処理が失敗するバグを修正しました。
- 応答しないダウンストリームが、タスクがタイムアウトするまで古い所有者のレプリケーションタスクを中断する問題を修正しました#2295
- メタデータ管理#2558のバグを修正
- TiCDC 所有者スイッチ後に発生するデータの不整合の問題を修正#2230
capture listコマンド#2388の出力に古いキャプチャが表示される可能性がある問題を修正しました- 統合テスト#2422でDDLジョブの重複が発生したときに発生する
ErrSchemaStorageTableMissエラーを修正します ErrGCTTLExceededエラーが発生した場合に changefeed を削除できないバグを修正#2391- 大きなテーブルをcdclogに複製できないバグを修正#1259 #2424
- CLI の下位互換性の問題を修正#2373
SinkManager#2299のマップへの安全でない同時アクセスの問題を修正- DDL ステートメント#1260実行時にオーナーがクラッシュした場合に、潜在的な DDL 損失が発生する問題を修正しました。
- リージョン#2188初期化直後にロックが解決される問題を修正
- 新しいパーティションテーブル#2263を追加するときに発生する余分なパーティションディスパッチの問題を修正しました。
- 削除された変更フィード#2156について TiCDC が警告し続ける問題を修正しました