TiDB 7.1.4 リリースノート
リリース日:2024年3月11日
TiDBバージョン: 7.1.4
クイックアクセス: クイックスタート | 本番環境へのデプロイ
互換性の変更
- ログ出力のオーバーヘッドを減らすために、 TiFlashは
logger.levelのデフォルト値を"debug"から"info"に変更します。 #8641 @JaySon-Huang - TiKV設定項目
gc.num-threadsを導入して、enable-compaction-filterがfalseの場合のGCスレッド数を設定します。 #16101 @tonyxuqqi
改善点
TiDB
- 特定のシナリオで
OUTER JOINをINNER JOINに変換する能力を強化する#49616 @qw4990 force-init-statsをtrueに設定すると、TiDB は起動時にサービスを提供する前に統計情報の初期化が完了するのを待ちます。この設定により HTTP サーバーの起動がブロックされなくなり、ユーザーは監視を継続できます。 #50854 @hawkingrei
- 特定のシナリオで
TiKV
PD
TiFlash
- バックグラウンド GC タスクによる読み取りおよび書き込みタスクのレイテンシーへの影響を軽減します#8650 @JaySon-Huang
- ディスクパフォーマンスジッターによる読み取りレイテンシーへの影響を軽減#8583 @JaySon-Huang
ツール
Backup & Restore (BR)
- データ復元中にデータベースをバッチで作成するサポート#50767 @Leavrth
- 大規模なデータセットのシナリオで
RESTORE文のテーブル作成パフォーマンスを向上 #48301 @Leavrth - より効率的なアルゴリズムを使用して、データ復元中に SST ファイルをマージする速度を改善します #50613 @Leavrth
- データ復元中に SST ファイルをバッチで取り込むことをサポート#16267 @3pointer
- ログバックアップ中に、ログとメトリックのグローバルチェックポイントの進行に影響を与える最も遅いリージョンの情報を出力します。 #51046 @YuJuncen
- Google Cloud Storage(GCS)を外部ストレージとして使用する場合の古い互換性チェックを削除します#50533 @lance6716
- 複数のログバックアップ切り捨てタスク(
br log truncate)が同時に実行されるのを防ぐためのロックメカニズムを実装する#49414 @YuJuncen
TiCDC
- ダウンストリームがKafkaの場合、トピック式で
schemaを省略可能にし、トピック名を直接指定することをサポートします#9763 @3AceShowHand - チェンジフィードの下流同期ステータスの照会をサポートし、TiCDC が受信した上流データの変更が下流システムに完全に同期されているかどうかを判断するのに役立ちます#10289 @hongyunyan
- TiDB DashboardでのTiCDCログの検索をサポート #10263 @CharlesCheung96
- ダウンストリームがKafkaの場合、トピック式で
TiDB Lightning
バグ修正
TiDB
tidb_multi_statement_modeモードが有効になっている場合、インデックス検索を使用するDELETEおよびUPDATE文でエラーが報告される可能性がある問題を修正しました#50012 @tangenta- CTEクエリが再試行プロセス中にエラー
type assertion for CTEStorageMap failedを報告する可能性がある問題を修正しました #46522 @tiancaiamao - Golang の暗黙的な変換アルゴリズムによって発生する統計情報の構築における過剰な統計エラーの問題を修正しました #49801 @qw4990
- パーティションテーブルのグローバル統計の同時マージ中にエラーが返される可能性がある問題を修正しました。 #48713 @hawkingrei
- TiDB が
group byの定数値を誤って削除することによる間違ったクエリ結果の問題を修正しました #38756 @Rustin170506 BIT型の列が一部の関数の計算に関係する場合にデコード失敗によりクエリエラーが発生する可能性がある問題を修正しました#49566 #50850 #50855 @jiyfhust- 複数レベルのネストされた
UNIONクエリのLIMITが無効になる可能性がある問題を修正しました#49874 @Defined2014 AUTO_ID_CACHE=1のAUTO_INCREMENT列を使用すると同時競合によりAUTO_INCREMENT ID 割り当てでエラーが報告される問題を修正しました。 #50519 @tiancaiamao- クエリで
NATURAL JOINが使用される場合に発生する可能性のあるColumn ... in from clause is ambiguousエラーを修正します #32044 @AilinKid - クエリがソートを強制するオプティマイザヒント(
STREAM_AGG()など)を使用し、その実行計画にIndexMergeが含まれている場合、強制ソートが無効になる可能性がある問題を修正しました。 #49605 @AilinKid STREAM_AGG()が CI を誤って処理したためにクエリ結果が正しくない問題を修正しました #49902 @wshwsh12HashJoinオペレーターがディスクにスピルできない場合に発生する可能性のある goroutine リークの問題を修正しました。 #50841 @wshwsh12REPLACE INTO文でヒントが使用できない問題を修正 #34325 @YangKeaoGROUP_CONCAT(ORDER BY)構文を含むクエリを実行するとエラーが返される可能性がある問題を修正しました #49986 @AilinKid- 多値インデックスを使用して空の JSON 配列にアクセスすると、誤った結果が返される可能性がある問題を修正しました#50125 @YangKeao
- CTEクエリのメモリ使用量が制限を超えたときに発生するgoroutineリークの問題を修正しました #50337 @guo-shaoge
- 古いインターフェースを使用するとテーブルのメタデータに不整合が発生する可能性がある問題を修正しました。 #49751 @hawkingrei
ORDER BY句でUNIQUEインデックス検索を実行するとエラーが発生する可能性がある問題を修正しました #49920 @jackysp- 共通ヒントが
UNION ALL文で有効にならない問題を修正 #50068 @hawkingrei - メモリが
tidb_mem_quota_queryを超えると IndexHashJoin オペレーターを含むクエリが停止する問題を修正しました #49033 @XuHuaiyu WITH RECURSIVECTE を含むUPDATEまたはDELETE文で誤った結果が生成される可能性がある問題を修正しました#48969 @winoros- ヒストグラムの境界に
NULLが含まれている場合、ヒストグラム統計が読み取り可能な文字列に解析されない可能性がある問題を修正しました。 #49823 @AilinKid - クエリに Apply オペレーターが含まれており、
fatal error: concurrent map writesエラーが発生すると TiDB がpanicになる可能性がある問題を修正しました。 #50347 @SeaRise - 集計関数をグループ計算に使用すると発生する可能性のある
Can't find column ...エラーを修正#50926 @qw4990 - 定数伝播で
ENUMまたはSET型を処理するときに TiDB が間違ったクエリ結果を返す問題を修正しました #49440 @winoros - 依存関係のある 2つの DDL タスクの完了時間が誤って順序付けられる問題を修正しました。 #49498 @tangenta
tidb_enable_prepared_plan_cacheシステム変数が有効になってから無効になった後にEXECUTE文を使用してPREPARE STMTを実行すると、TiDB がpanicになる可能性がある問題を修正しました#49344 @qw4990- ネストされた
UNIONのクエリでLIMITとORDER BYが無効になる可能性がある問題を修正しました #49377 @AilinKid LEADINGヒントがUNION ALLステートメントで有効にならない問題を修正しました #50067 @hawkingreiCOM_STMT_EXECUTEを介して実行されたCOMMITまたはROLLBACK操作が、タイムアウトしたトランザクションを終了できない問題を修正しました。 #49151 @zyguan- 無効なオプティマイザヒントによって有効なヒントが無効になる可能性がある問題を修正#49308 @hawkingrei
- 一部のタイムゾーンで夏時間が正しく表示されない問題を修正 #49586 @overvenus
PREPAREメソッドを使用してSELECT INTO OUTFILEを実行すると、エラーではなく、誤って成功メッセージが返される問題を修正しました。 #49166 @qw4990- PD との相互作用の問題により、
tiup cluster upgrade/startを使用してローリングアップグレードを実行すると TiDB がpanicになる可能性がある問題を修正しました。 #50152 @zimulala - 空のテーブルにインデックスを追加したときに期待される最適化が有効にならない問題を修正しました #49682 @zimulala
- 多数のテーブルまたはパーティションが作成された場合に TiDB が OOM になる可能性がある問題を修正#50077 @zimulala
- ネットワークが不安定な場合にインデックスを追加するとインデックスデータの不整合が発生する可能性がある問題を修正#49773 @tangenta
- DDLジョブの実行順序を修正して、TiCDCが順序どおりに動作しないDDL を受信しないようにします。 #49498 @tangenta
tidb_server_memory_limit変数が変更された後、tidb_gogc_tuner_thresholdシステム変数がそれに応じて調整されない問題を修正しました #48180 @hawkingrei- 誤ったパーティションプルーニングが原因で、レンジパーティションテーブルのクエリ結果が間違っている場合がある問題を修正しました。 #50082 @Defined2014
CREATE TABLE文に特定のパーティションまたは制約が含まれている場合に、テーブル名の変更などの DDL 操作が停止する問題を修正しました#50972 @lcwangchao- 列のデフォルト値が削除されている場合に列のデフォルト値を取得するとエラーが返される問題を修正#50043 #51324 @crazycs520
- Grafana の監視メトリック
tidb_statistics_auto_analyze_totalが整数として表示されない問題を修正しました #51051 @hawkingrei auto analyzeがパーティションテーブルを処理しているときにtidb_merge_partition_stats_concurrency変数が有効にならない問題を修正しました #47594 @hawkingrei- クエリにJOIN操作が含まれる場合に
index out of rangeエラーが発生する可能性がある問題を修正しました #42588 @AilinKid - TiFlash の遅延マテリアライゼーションが関連列 を処理するときに間違った結果が返される可能性がある問題を修正しました #51204 @Lloyd-Pottiger #49241
- テーブルにクラスター化インデックスがある場合に並列
Applyで誤った結果が生成される可能性がある問題を修正しました。 #51372 @guo-shaoge
TiKV
- 例外的な状況で休止状態のリージョンがすぐに起動しない問題を修正#16368 @LykxSassinator
- ノードをオフラインにする前に、リージョン内のすべてのレプリカの最後のハートビート時間をチェックすることで、1 つのレプリカがオフラインになるとリージョン全体が使用できなくなる問題を修正しました#16465 @tonyxuqqi
- Titan が有効になっているときに RocksDB に保存されるテーブルプロパティが不正確になる可能性がある問題を修正#16319 @hicqu
- クラスターにTiFlashノードがある場合に
tikv-ctl compact-clusterの実行が失敗する問題を修正しました #16189 @frew - gRPC スレッドが
is_shutdownをチェックしているときに TiKV がpanicする可能性がある問題を修正しました #16236 @pingyu DECIMAL算術乗算切り捨てを処理するときに TiDB と TiKV が矛盾した結果を生成する可能性がある問題を修正しました #16268 @solotzgcast_duration_as_timeが誤った結果を返す可能性がある問題を修正#16211 @gengliqi- TiKVがブラジルとエジプトのタイムゾーンを誤って変換する問題を修正#16220 @overvenus
- JSON の整数が最大値
INT64より大きく最大値UINT64より小さい場合、TiKV によってFLOAT64として解析され、TiDB との不整合が発生する問題を修正しました。 #16512 @YangKeao
PD
- リソースグループ クライアントでスロットが完全に削除されず、割り当てられたトークンの数が指定された値より少なくなる問題を修正しました。 #7346 @guo-shaoge
- 一部のTSOログでエラー原因が出力されない問題を修正しました #7496 @CabinfeverB
BURSTABLEが有効になっているときにデフォルトのリソースグループに不要なトークンが蓄積される問題を修正#7206 @CabinfeverBevict-leader-schedulerインターフェースが呼び出されたときに出力がない問題を修正しました #7672 @CabinfeverBwatch etcdが正しくオフになっていない場合に発生するメモリリークの問題を修正#7807 @rleungxMergeLabels関数が呼び出されたときにデータ競合が発生する問題を修正しました #7535 @lhy1024- TLS が有効な場合に TiDB Dashboardが TiKV プロファイルを取得できない問題を修正#7561 @Connor1996
- レプリカ数が要件を満たしていない場合に孤立ピアが削除される問題を修正しました #7584 @bufferflies
- データレプリケーション自動同期(DR自動同期)モードを採用しているクラスタで
available_storesが誤って計算される問題を修正#7221 @disksing - 配置ルールの設定が複雑な場合、データレプリケーション自動同期(DR自動同期)モードを採用しているクラスタで
canSyncとhasMajorityが誤って計算される可能性がある問題を修正しました#7201 @disksing - データレプリケーション自動同期(DR自動同期)モードを採用しているクラスターで、セカンダリAZがダウンしているときにプライマリAZがTiKVノードを追加できない問題を修正しました。 #7218 @disksing
- リソースグループをバッチでクエリすると PD がpanicになる可能性がある問題を修正しました #7206 @nolouch
pd-ctlを使用してリーダーのないリージョンを照会すると、PD がpanicになる可能性がある問題を修正しました。 #7630 @rleungx- リーダースイッチ後にPD監視項目
learner-peer-countが古い値を同期しない問題を修正 #7728 @CabinfeverB - PDが
systemdで起動したときにリソース制限を読み取れない問題を修正 #7628 @bufferflies
TiFlash
- レプリカ移行中に PD とのネットワーク接続が不安定になり、 TiFlash がpanicする可能性がある問題を修正しました #8323 @JaySon-Huang
ENUM値が 0 の場合にTiFlash がENUMを誤って処理する問題を修正しました #8311 @solotzg- 定数文字列パラメータを含む
GREATESTまたはLEAST関数で発生する可能性のある、ランダムに無効なメモリアクセスの問題を修正しました。 #8604 @windtalker lowerUTF8とupperUTF8関数で、大文字と小文字が異なるバイトを占めることができない問題を修正しました。 #8484 @gengliqi- 短いクエリが正常に実行され、過剰な情報ログが出力される問題を修正しました。 #8592 @windtalker
- クエリの低速化によりメモリ使用量が大幅に増加する問題を修正 #8564 @JinheLin
ALTER TABLE ... MODIFY COLUMN ... NOT NULLを実行した後にTiFlash がパニックを起こし、null 許容列が非 null 許容に変更される問題を修正しました。 #8419 @JaySon-Huang- クエリを終了した後、 TiFlash上の多数のタスクが同時にキャンセルされると、同時データの競合によりTiFlash がクラッシュする問題を修正#7432 @SeaRise
- リモート読み取り中にTiFlashがクラッシュする可能性がある問題を修正 #8685 @zanmato1984
- 結合に非等価条件が含まれている場合に、 TiFlash Anti Semi Join が誤った結果を返す可能性がある問題を修正しました。 #8791 @windtalker
ツール
Backup & Restore (BR)
- ログバックアップタスクを停止すると TiDB がクラッシュする問題を修正#50839 @YuJuncen
- TiKVノードにリーダーがいないためにデータの復元が遅くなる問題を修正しました #50566 @Leavrth
- 同じノードで TiKV IP アドレスを変更した後にログバックアップが停止する問題を修正しました #50445 @3pointer
- S3 からファイル コンテンツを読み取っているときにエラーが発生した場合にBR が再試行できない問題を修正しました #49942 @Leavrth
- 古いバージョンのバックアップからデータを復元するときに
Unsupported collationエラーが報告される問題を修正しました #49466 @3pointer
TiCDC
- アップストリームテーブルで
TRUNCATE PARTITIONを実行した後に、changefeed がエラーを報告する問題を修正しました。 #10522 @sdojjy - 極端なケースでチェンジフィード
resolved tsが進まない問題を修正#10157 @sdojjy - 同期ポイントテーブルが誤って複製される可能性がある問題を修正#10576 @asddongmen
ignore-eventでadd table partitionイベントをフィルタリングするように設定した後、TiCDC が関連パーティションの他のタイプの DML 変更をダウンストリームに複製しない問題を修正しました。 #10524 @CharlesCheung96- ストレージシンクの使用時に、ストレージサービスによって生成されたファイルシーケンス番号が正しく増加しない可能性がある問題を修正しました。 #10352 @CharlesCheung96
- 複数のチェンジフィードを同時に作成すると TiCDC が
ErrChangeFeedAlreadyExistsエラーを返す問題を修正しました #10430 @CharlesCheung96 - 変更フィードを再開するときに
snapshot lost caused by GCが時間内に報告されず、変更フィードのcheckpoint-tsが TiDB の GC セーフポイントよりも小さい問題を修正しました。 #10463 @sdojjy - 単一行データのデータ整合性検証が有効になった後、タイムゾーンの不一致により TiCDC が
TIMESTAMP型のチェックサムの検証に失敗する問題を修正#10573 @3AceShowHand
- アップストリームテーブルで
TiDB Data Migration (DM)
TiDB Lightning