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