TiDB 7.1.2 リリースノート
発売日:2023年10月25日
TiDB バージョン: 7.1.2
互換性の変更
- Security強化モード(SEM)で設定
require_secure_transport~ONを禁止し、ユーザー#47665 @ 天菜まおの潜在的な接続問題を防ぎます。 - スムーズなアップグレード機能はデフォルトで無効になっています。有効にするには、
/upgrade/startとupgrade/finishHTTPリクエストを#47172 @ ジムララに送信します。 - オプティマイザがテーブル#46695 @ コーダープレイに対してハッシュ結合を選択するかどうかを制御する
tidb_opt_enable_hash_joinシステム変数を導入します。 - RocksDBの定期的な圧縮をデフォルトで無効にすることで、TiKV RocksDBのデフォルトの動作がv6.5.0より前のバージョンと一致するようになりました。この変更により、アップグレード後に大量の圧縮が行われることによるパフォーマンスへの影響を回避できます。さらに、TiKVでは2つの新しい設定項目
rocksdb.[defaultcf|writecf|lockcf].periodic-compaction-secondsとrocksdb.[defaultcf|writecf|lockcf].ttl導入され、RocksDB #15355 @ LykxSassinatorの定期的な圧縮を手動で設定できるようになりました。 - TiCDCは、CSVプロトコルにおけるバイナリデータのエンコード方式を制御するための設定項目
sink.csv.binary-encoding-method導入しました。デフォルト値は'base64'#9373 @ チャールズ・チュン96です。 - TiCDC では、設定項目
large-message-handle-option導入されています。デフォルトでは空で、メッセージサイズが Kafka トピックの制限を超えると changefeed が失敗します。この設定を"handle-key-only"に設定すると、メッセージがサイズ制限を超えた場合、メッセージサイズを縮小するためにハンドルキーのみが送信されます。縮小されたメッセージでも制限を超える場合、changefeed は#9680 @ 3エースショーハンドで失敗します。
行動の変化
- 複数の変更を含むトランザクションにおいて、更新イベントで主キーまたはNULL以外の一意のインデックス値が変更された場合、TiCDCはイベントを削除イベントと挿入イベントに分割し、すべてのイベントが挿入イベントに先行する削除イベントの順序に従うようにします。詳細については、 ドキュメント参照してください。
改善点
TiDB
NO_MERGE_JOIN()@ #45520NO_INDEX_MERGE_JOIN()含む新しいオプティマイザヒントNO_HASH_JOIN()qw4990しNO_INDEX_HASH_JOIN()NO_INDEX_JOIN()- コプロセッサ#46514 @ あなた06に関連する要求元情報を追加します
- TiDBノード#47172 @ ジムララのアップグレードステータスの開始と終了をマークするために
/upgrade/startとupgrade/finishAPIを追加します。
TiKV
- 圧縮メカニズムを最適化します。リージョンが分割されるときに、分割するキーがない場合、圧縮がトリガーされ、過剰な MVCC バージョン#15282 @ スペードA-タンが排除されます。
- ルータオブジェクトのLRUCacheを排除してメモリ使用量を削減し、OOM #15430 @ コナー1996を防止します。
Max gap of safe-tsとMin safe ts regionメトリックを追加し、tikv-ctl get-region-read-progressコマンドを導入して、resolved-tsと安全な ts の状態をより適切に観察および診断します#15082 @ エキシウム- TiKV で RocksDB の設定を公開し、ユーザーが TTL や定期的な圧縮などの機能を無効にできるようにします#14873 @ LykxSassinator
- 接続再試行のプロセスでPDクライアントのバックオフメカニズムを追加し、エラー再試行中に再試行間隔を徐々に増やしてPD圧力#15428 @ ノルーシュを軽減します。
- Titan マニフェストファイルを書き込むときにミューテックスを保持しないようにして、他のスレッドに影響を与えないようにします#15351 @ コナー1996
- OOM #15458 @ 金星の上を防ぐためにリゾルバのメモリ使用量を最適化します
PD
TiFlash
ツール
バックアップと復元 (BR)
TiCDC
- 複数の TiCDC 監視メトリックとアラームルールを#9047 @ アズドンメン最適化します
- Kafka Sink は、メッセージが大きすぎる場合にハンドルキーデータのみを送信するサポートし、過剰なメッセージ サイズ#9680 @ 3エースショーハンドによって引き起こされる変更フィードの失敗を回避します。
ADD INDEXDDL操作を複製する実行ロジックを最適化して、後続のDMLステートメント#9644 @ スドジをブロックしないようにします。- TiCDC が失敗後に再試行するときのステータス メッセージを改善する#9483 @ アズドンメン
TiDB データ移行 (DM)
TiDB Lightning
バグ修正
TiDB
GROUP_CONCATORDER BY列#41986 @ アイリンキッドを解析できない問題を修正- システムテーブル
INFORMATION_SCHEMA.TIKV_REGION_STATUSをクエリすると、場合によっては誤った結果が返される問題を修正しました#45531 @ 定義2014 - メタデータの読み取りに 1 つの DDL リース#45176 @ ジムララよりも長い時間がかかる場合に TiDB のアップグレードが停止する問題を修正しました
- CTE を含む DML 文を実行するとpanic#46083 @ ウィノロスが発生する問題を修正しました
- パーティション交換#46492 @ ミョンス中にパーティション定義に準拠していないデータを検出できない問題を修正
MERGE_JOINの結果が間違っている問題を修正#46580 @ qw4990- 符号なし型と
Duration型定数#45410 @ wshwsh12を比較したときに発生する誤った結果を修正しました AUTO_ID_CACHE=1#46444 @ 天菜まおに設定されている場合にDuplicate entry発生する可能性がある問題を修正しました- TTLが#45510 @ lcwangchaoで実行されているときのメモリリークの問題を修正しました
- 接続を切断すると go コルーチン リークが発生する可能性がある問題を修正#46034 @ ピンギュ
- インデックス結合のエラーによりクエリが停止する可能性がある問題を修正#45716 @ wshwsh12
- ハッシュパーティションテーブル#46779 @ ジフハウスに対して
BatchPointGet演算子が誤った結果を返す問題を修正しました EXCHANGE PARTITION失敗またはキャンセルされた場合に、パーティションテーブルの制限が元のテーブルに残る問題を修正#45920 #45791 @ ミョンス- 2つのサブクエリ#46160 @ qw4990を結合するときに
TIDB_INLJヒントが有効にならない問題を修正しました DATETIMEまたはTIMESTAMP列を数値定数#38361 @ イービン87と比較するときに、MySQL と動作が一致しない問題を修正しました。- 深くネストされた式に対してハッシュコードが繰り返し計算され、メモリ使用量が増加し、OOM #42788 @ アイリンキッドが発生する問題を修正しました。
- アクセスパスプルーニングロジックが
READ_FROM_STORAGE(TIFLASH[...])ヒントを無視し、Can't find a proper physical planエラー#40146 @ アイリンキッドが発生する問題を修正しました。 - CAST に精度損失がないのに条件
cast(col)=rangeで FullScan が発生する問題を修正#45199 @ アイリンキッド plan replayer dump explainエラー#46197 @ 時間と運命を報告する問題を修正tmp-storage-quota設定が#45161 #26806 @ wshwsh12で有効にならない問題を修正- TiDBパーサーが状態のままになり、解析エラーが発生する問題を修正#45898 @ qw4990
- MPP実行プランで集計がユニオンを介してプッシュダウンされると、結果が正しくなくなる問題を修正#45850 @ アイリンキッド
AUTO_ID_CACHE=1#46454 @ 天菜まおに設定されている場合に、panic後に TiDB がゆっくりと回復する問題を修正しました。- ソート演算子がスピルプロセス中に TiDB をクラッシュさせる可能性がある問題を修正#47538 @ ウィンドトーカー
- BRを使用して
AUTO_ID_CACHE=1#46093 @ 天菜まおの非クラスタ化インデックステーブルを復元するときに重複する主キーの問題を修正しました。 - 静的プルーニングモードでパーティションテーブルをクエリし、実行プランに
IndexLookUp#45757 @ 定義2014が含まれている場合にクエリがエラーを報告する可能性がある問題を修正しました。 - パーティションテーブルと配置ポリシー#45791 @ ミョンステーブル間でパーティションを交換した後に、パーティションテーブルへのデータの挿入が失敗する可能性がある問題を修正しました。
- タイムゾーン情報が正しくない時間フィールドをエンコードする問題を修正#46033 @ 接線
tmpディレクトリが存在しない場合にインデックスを高速に追加する DDL 文がスタックする問題を修正しました#45456 @ 接線- 複数の TiDB インスタンスを同時にアップグレードするとアップグレードプロセスがブロックされる可能性がある問題を修正#46228 @ ジムララ
- 領域#46135 @ ジムララを分割する際に誤ったパラメータが使用されることで発生する、リージョンが不均一に分散される問題を修正しました。
- TiDB の再起動後に DDL 操作が停止する可能性がある問題を修正#46751 @ wjhuang2016
- 非整数クラスター化インデックス#47350 @ 接線でのテーブル分割操作を禁止する
- 不正なMDL処理#46920 @ wjhuang2016によりDDL操作が永続的にブロックされる可能性がある問題を修正
- テーブル#47064 @ ジフハウスの名前変更によって発生する
information_schema.columnsの重複行の問題を修正 batch-clientinclient-go#47691 @ crazycs520のpanic問題を修正- パーティション化されたテーブルの統計収集が、メモリ使用量がメモリ制限#45706 @ ホーキングレイを超えたときに時間内に強制終了されない問題を修正しました。
- クエリに
UNHEX条件#45378 @ qw4990が含まれている場合にクエリ結果が不正確になる問題を修正しました - TiDBが
GROUP_CONCAT#41957 @ アイリンキッドのクエリに対してCan't find column返す問題を修正
TiKV
ttl-check-poll-interval設定項目がRawKV API V2 #15142 @ ピンギュで有効にならない問題を修正- raftstore-applys #15371 @ コナー1996が継続的に増加するデータエラーを修正しました
- データレプリケーション自動同期モード#14975 @ ノルーシュで同期回復フェーズでQPSがゼロに低下する問題を修正しました。
- 1つのTiKVノードが分離され、別のノードが再起動されたときに発生する可能性のあるデータの不整合の問題を修正しました#15035 @ 金星の上
- オンラインアンセーフリカバリがマージ中止#15580 @ v01dstarを処理できない問題を修正
- PDとTiKV間のネットワーク中断によりPITRが#15279 @ ユジュンセンで停止する可能性がある問題を修正しました
FLASHBACK#15258 @ 金星の上を実行した後にリージョンマージがブロックされる可能性がある問題を修正しました- ストアハートビートの再試行回数を#15184 @ ノルーシュに減らして、ハートビートストームの問題を修正しました。
- オンラインアンセーフリカバリがタイムアウト#15346 @ コナー1996で中止されない問題を修正
- 暗号化により部分書き込み#15080 @ タボキ中にデータ破損が発生する可能性がある問題を修正
- リージョン#13311 @ cfzjywxkのメタデータが正しくないことによって引き起こされるTiKVpanic問題を修正しました
- オンラインワークロード#15565 @ ランス6716がある場合にTiDB Lightningチェックサムコプロセッサの要求がタイムアウトする問題を修正しました
- ピアを移動するとFollower Readのパフォーマンスが低下する可能性がある問題を修正#15468 @ ユジュンセン
PD
- v2 スケジューラ アルゴリズム#6645 @ lhy1024でホット リージョンがスケジュールされない可能性がある問題を修正しました
- TLSハンドシェイクにより空のクラスタ#6913 @ ノルーシュでCPU使用率が上昇する可能性がある問題を修正
- PDノード間の注入エラーによりPDpanic#6858 @ HuSharpが発生する可能性がある問題を修正しました
- ストア情報の同期によりPDリーダーが終了し、 #6918 @ rleungxで停止する可能性がある問題を修正しました。
- フラッシュバック#6912 @ 金星の上後にリージョン情報が更新されない問題を修正
- #7053 @ HuSharp終了時に PD がpanicになる可能性がある問題を修正しました
- コンテキストタイムアウトにより
lease timeoutエラー#6926 @ rleungxが発生する可能性がある問題を修正 - ピアがグループごとに適切に分散されず、リーダー#6962 @ rleungxの分布が不均等になる可能性がある問題を修正しました。
- pd-ctl #7121 @ rleungxを使用して更新するときに分離レベル ラベルが同期されない問題を修正しました
evict-leader-schedulerHuSharpで構成#6897失う可能性がある問題を修正- プラグインディレクトリとファイルの潜在的なセキュリティリスクを修正#7094 @ HuSharp
- リソース制御#45050 @ 栄光を有効にした後に DDL がアトミック性を保証しない可能性がある問題を修正しました
- ルールチェッカーがピア#6559 @ ノルーシュを選択した場合に、不健全なピアを削除できない問題を修正しました
- etcd がすでに起動しているがクライアントがまだ接続していない場合、クライアントを呼び出すと PD がpanic#6860 @ HuSharpになる可能性がある問題を修正しました。
- RU消費量が0未満の場合にPDが#6973 @ キャビンフィーバーBでクラッシュする問題を修正
- クラスタが大きい場合、クライアントが定期的に更新される
min-resolved-tsPD OOMを引き起こす可能性がある問題を修正しました#46664 @ HuSharp
TiFlash
ツール
バックアップと復元 (BR)
- PITR を使用して暗黙の主キーを回復すると競合が発生する可能性がある問題を修正#46520 @ 3ポイントシュート
- PITRがGCS #47022 @ リーヴルスからデータを回復できない問題を修正
- RawKVモード#37085 @ ピンギュのきめ細かなバックアップフェーズで発生する可能性のあるエラーを修正
- PITRを使用してメタkvを回復するとエラー#46578 @ リーヴルスが発生する可能性がある問題を修正しました
- BR統合テストケース#46561 @ ピュアリンドのエラーを修正
- BRで使用されるグローバルパラメータ
TableColumnCountLimitとIndexLimitデフォルト値を最大値#45793 @ リーヴルスに増やすことで、復元が失敗する問題を修正しました。 - 復元されたデータ#45476 @ 3ポイントシュートをスキャンするときに br CLI クライアントが停止する問題を修正しました
- PITRが
CREATE INDEXDDL文#47482 @ リーヴルスの復元をスキップする可能性がある問題を修正しました - 1分以内にPITRを複数回実行するとデータ損失が発生する可能性がある問題を修正#15483 @ ユジュンセン
TiCDC
- 異常な状態のレプリケーションタスクが上流のGC #9543 @ チャールズ・チュン96をブロックする問題を修正しました
- オブジェクトstorageにデータを複製するとデータの不整合が発生する可能性がある問題を修正#9592 @ チャールズ・チュン96
redo-resolved-ts有効にすると、changefeed が失敗する可能性がある問題を修正#9769 @ チャールズ・チュン96- 間違ったメモリ情報を取得すると、一部のオペレーティングシステムで OOM 問題が発生する可能性がある問題を修正#9762 @ スドジ
scale-outが有効になっている場合のノード間の書き込みキーの不均等な配布の問題を修正#9665 @ スドジ- ログ#9690 @ スドジに機密ユーザー情報が記録される問題を修正
- TiCDC が誤って名前変更 DDL 操作を同期する可能性がある問題を修正#9488 #9378 #9531 @ アズドンメン
- すべての変更フィードが削除された後に上流の TiDB GC がブロックされる問題を修正#9633 @ スドジ
- 一部のコーナーケースで TiCDC レプリケーションタスクが失敗する可能性がある問題を修正#9685 #9697 #9695 #9736 @ ヒック @ チャールズ・チュン96
- PDノード#9565 @ アズドンメンのネットワーク分離によって発生するTiCDCレプリケーションのレイテンシーが大きくなる問題を修正
- PD のスケールアップおよびスケールダウン中に TiCDC が無効な古いアドレスにアクセスする問題を修正#9584 @ フビンズ @ アズドンメン
- 上流にリージョン#9741 @ スドジが多数ある場合、TiCDC が TiKV ノード障害から迅速に回復できない問題を修正しました。
- CSV形式#9658 @ 3エースショーハンドを使用するとTiCDCが誤って
UPDATE演算をINSERTに変更する問題を修正 - アップストリーム#9476 #9488 @ チャールズ・チュン96 @ アズドンメンで同じDDL文で複数のテーブルの名前を変更するとレプリケーションエラーが発生する問題を修正
- Kafka #9504 @ 3エースショーハンドに同期するときに再試行間隔が短いためにレプリケーションタスクが失敗する問題を修正しました
- アップストリーム#9430 @ スドジで 1 つのトランザクションで複数の行の一意のキーが変更されると、レプリケーション書き込み競合が発生する可能性がある問題を修正しました。
- ダウンストリームで短期的な障害が発生したときにレプリケーションタスクが停止する可能性がある問題を修正#9542 #9272 #9582 #9592 @ ヒック
- ダウンストリームでエラーが発生し、 #9450 @ ヒックで再試行すると、レプリケーションタスクが停止する可能性がある問題を修正しました。
- Kafka #9855 @ ヒックにデータを複製するときに TiCDC が停止する可能性がある問題を修正しました
TiDB データ移行 (DM)
- 失敗した DDL がスキップされ、後続の DDL が実行されない場合に、DM によって返されるレプリケーション ラグが増大し続ける問題を修正しました#9605 @ D3ハンター
- DM が大文字と小文字を区別しない照合#9489 @ ヒヒフフで競合を正しく処理できない問題を修正しました
- DM バリデーターのデッドロック問題を修正し、再試行を#9257 @ D3ハンターに強化しました。
- 楽観的モード#9588 @ GMHDBJDでタスクを再開するときに DM がすべての DML をスキップする問題を修正しました
- オンライン DDL #9587 @ GMHDBJDをスキップするときに DM が上流のテーブル スキーマを適切に追跡できない問題を修正しました
- DMが楽観的モード#9788 @ GMHDBJDでパーティションDDLをスキップする問題を修正
TiDB Lightning
AUTO_ID_CACHE=1を含むテーブルをインポートするときに、間違ったrow_idが#46100 @ D3ハンターに割り当てられる問題を修正しましたNEXT_GLOBAL_ROW_ID#45427 @ lyzx2001を保存するときにデータ型が間違っている問題を修正しましたchecksum = "optional"#45382 @ lyzx2001のときにチェックサムがエラーを報告する問題を修正しました- PDクラスタアドレスが#43436 @ リチュンジュに変更されるとデータのインポートが失敗する問題を修正しました
- PDトポロジが変更されるとTiDB Lightningが起動に失敗する問題を修正#46688 @ ランス6716
- CSVデータ#43284 @ lyzx2001をインポートする際にルートがpanicになる可能性がある問題を修正
TiDBBinlog