TiDB 5.0.4 リリースノート
リリース日:2021年9月27日
TiDB バージョン: 5.0.4
互換性の変更
ティビ
- 新しいセッションで
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' の場合に無効な日付を挿入してもエラーが報告されない問題を修正#26762SQL_MODE
が 'NO_ZERO_IN_DATE' の場合に無効なデフォルト日付を使用してもエラーが報告されない問題を修正しました#26766- プレフィックスインデックス#26029のクエリ範囲に関するバグを修正
LOAD DATA
文が非 UTF8 データを異常にインポートする可能性がある問題を修正#25979- セカンダリインデックスにプライマリキーと同じ列がある場合に間違ったデータが挿入される
insert ignore on duplicate update
性がある問題を修正しました#25809 - パーティションテーブルにクラスター化インデックスがある場合に間違ったデータが挿入される
insert ignore duplicate update
性がある問題を修正#25846 - ポイント取得またはバッチポイント取得#24562でキーが
ENUM
型の場合にクエリ結果が間違っている可能性がある問題を修正しました BIT
型の値を#23479割ったときに発生する誤った結果を修正prepared
ステートメントと直接クエリの結果が矛盾する可能性がある問題を修正#22949YEAR
型を文字列または整数型#23262と比較するとクエリ結果が間違っている可能性がある問題を修正しました
- 新しいセッションで
機能強化
ティビ
- 最適化の推定を無視し、MPPモード#26382を強制的に使用する設定
tidb_enforce_mpp=1
をサポート
- 最適化の推定を無視し、MPPモード#26382を強制的に使用する設定
ティクヴ
- TiCDC 構成の動的な変更をサポート#10645
PD
- TiDB ダッシュボード#3884に OIDC ベースの SSO サポートを追加
TiFlash
- DAGリクエストの
HAVING()
機能をサポートする DATE()
機能をサポートする- インスタンスごとの書き込みスループットの Grafana パネルを追加する
- DAGリクエストの
改善点
ティビ
- ヒストグラムの行数に基づいて自動分析をトリガーする#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
ステートメントのメモリ割り当てを最適化します
ティクヴ
- 読み取り準備と書き込み準備は別々に処理して読み取りレイテンシーを削減する#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
ティCDC
- Unified Sorterがメモリを使用してソートする場合のメモリ管理を最適化します#2553
- メジャーバージョンまたはマイナーバージョン間での TiCDC クラスターの操作を禁止する#2598
- テーブルのリージョンがすべて TiKV ノードから転送されるときに、goroutine の使用を減らす#2284
- 削除
file sorter
#2326 - 常にTiKVから古い値を引き出し、出力は
enable-old-value
#2301に従って調整されます。 - PDエンドポイントに証明書がない場合に返されるエラーメッセージを改善#1973
- 同時実行性が高い場合に、ワーカープールを最適化して goroutine の数を減らす#2211
- グローバル gRPC 接続プールを追加し、KV クライアント間で gRPC 接続を共有する#2533
バグ修正
ティビ
- パーティションテーブルをクエリし、パーティションキーに条件
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
- パーティションテーブルをクエリし、パーティションキーに条件
ティクヴ
- 破損したスナップショットファイルによって引き起こされる潜在的なディスクフル問題を修正#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タスクの実行時に発生する可能性のあるメモリリークの問題を修正
- 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以降のバージョンで
ティCDC
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を追加するときに発生する余分なパーティションディスパッチの問題を修正しました。
- 削除された変更フィードに対して TiCDC が警告し続ける問題を修正#2156