TiDB 2.1.17 リリースノート
発売日:2019年9月11日
TiDB バージョン: 2.1.17
TiDB Ansible バージョン: 2.1.17
新機能
- TiDBの
SHOW TABLE REGIONS構文にWHERE句を追加する - TiKVとPDに
config-check機能を追加して構成項目をチェックする - pd-ctlに
remove-tombstoneコマンドを追加して、トゥームストーンストアのレコードをクリアします。 - Reparoに
worker-countとtxn-batch設定項目を追加して回復速度を制御します
- TiDBの
改善点
- 積極的にプッシュするオペレータをサポートすることでPDのスケジュールプロセスを最適化します
- TiKV の起動プロセスを最適化し、ノードの再起動によって発生するジッターを軽減します。
行動の変化
- TiDB スロークエリログの最後の再試行時刻から最初の実行時刻への変更
start ts - TiDB スロー クエリ ログの
Index_idsフィールドをIndex_namesフィールドに置き換えて、スロー クエリ ログの使いやすさを向上させます。 - TiDB の構成ファイルに
split-region-max-numパラメータを追加して、SPLIT TABLE構文で許可されるリージョンの最大数を変更します。デフォルト構成では、1,000 から 10,000 に増加されます。
- TiDB スロークエリログの最後の再試行時刻から最初の実行時刻への変更
TiDB
- SQLオプティマイザー
EvalSubqueryビルドExecutor#11811中にエラーが発生したときにエラーメッセージが正しく返されない問題を修正- インデックスルックアップ結合において、外部テーブルの行数が単一バッチの行数より多い場合にクエリ結果が正しくない可能性がある問題を修正しました。インデックスルックアップ結合の機能範囲を拡張しました。1
UnionScanIndexJoin#11843のサブノードとして使用できます。 - 統計フィードバック処理中に無効なキーが発生する可能性がある状況に備えて、
SHOW STAT_BUCKETS構文に無効なキー(invalid encoded key flag 252など)の表示を追加します#12098
- SQL実行エンジン
CAST関数が数値型#11712を変換するときに最初にUINTに変換される数値によって発生するいくつかの誤った結果 (select cast(13835058000000000000 as double)など) を修正しました。DIV計算の被除数が小数で、この計算に負の数#11812が含まれている場合に計算結果が正しくない可能性がある問題を修正しました。SELECT/EXPLAIN文#11892を実行するときに一部の文字列がINT型に変換されることで発生する MySQL の非互換性の問題を修正するためにConvertStrToIntStrict関数を追加しますEXPLAIN ... FOR CONNECTION使用されているときにstmtCtxの設定が間違っているためにExplain結果が正しくない可能性がある問題を修正しました#11978unaryMinus関数によって返される結果が MySQL と互換性がない問題を修正しました。これは、整数結果が#11990オーバーフローしたときに非小数点結果になるためです。LOAD DATA文の実行時にカウント順序が原因でlast_insert_id()間違っている可能性がある問題を修正しました#11994- ユーザーが自動インクリメント列データを明示的・暗黙的に混合して書き込む場合に
last_insert_id()間違っている可能性がある問題を修正#12001 - 関数
JSON_UNQUOTE引用符の過剰使用に関するバグを修正しました。二重引用符で囲まれた値 (") のみ引用符で囲まないようにします。例えば、「SELECT JSON_UNQUOTE("\\\\")」の結果は「\\」(変更なし)になります#12096
- サーバ
- TiDBトランザクション#11878再試行する際、最後の再試行時刻から最初の実行時刻までの変更
start tsスロークエリログに記録される LockResolverのトランザクションのキーの数を追加して、リージョン全体のスキャン操作を回避し、キーの数が減ったときにロックを解決するコストを削減します#11889- スロークエリログ#11886で
succフィールドの値が正しくない可能性がある問題を修正しました - スロークエリログの
Index_idsフィールドをIndex_namesフィールドに置き換えて、スロークエリログ#12063の使いやすさを向上させます。 Duration-が含まれる場合 (select time(‘--')など)、TiDB が-EOF エラーとして解析することによって発生する接続切断の問題を修正しました#11910- 無効なリージョンを
RegionCacheからより迅速に削除して、このリージョン#11931に送信されるリクエストの数を減らします。 oom-action = "cancel"と OOM がInsert Into … Select構文#12126で発生したときに OOMpanicの問題を誤って処理することによって発生する接続切断の問題を修正しました。
- TiDBトランザクション#11878再試行する際、最後の再試行時刻から最初の実行時刻までの変更
- DDL
tikvSnapshotにリバーススキャンインターフェースを追加し、DDL履歴ジョブを効率的にクエリできるようにします。このインターフェースを使用することで、ADMIN SHOW DDL JOBS実行時間が大幅に短縮されます#11789CREATE TABLE ... PRE_SPLIT_REGION構文の改善:PRE_SPLIT_REGION = N#11797の場合、事前分割領域の数を 2^(N-1) から 2^N に変更します。- オンラインワークロードに大きな影響を与えないように、
Add Index操作のバックグラウンドワーカースレッドのデフォルトパラメータ値を減らします#11875 SPLIT TABLE構文の動作を改善します。3SPLIT TABLE ... REGIONS N使用して領域#11929を分割すると、N 個のデータリージョンと 1 つのインデックスリージョンが生成されます。- 設定ファイルに
split-region-max-numパラメータ(デフォルトでは10000)を追加して、SPLIT TABLE構文で許可されるリージョンの最大数を調整可能にします#12080 - システムがbinlog#12121書き込むときに、この句のコメントが解除された
PRE_SPLIT_REGIONS原因で、下流のMySQLでCREATE TABLE句を解析できない問題を修正しました。 SHOW TABLE … REGIONSとSHOW TABLE .. INDEX … REGIONSのWHERE#12124のサブ条項を追加する
- モニター
tikvclient#12092の gRPC 接続エラーをカウントするためのconnection_transient_failure_count監視メトリックを追加します。
TiKV
- 一部のケースでリージョン内のキーのカウント結果が誤っていた問題を修正#5415
- TiKVに
config-checkオプションを追加して、TiKV構成項目が有効かどうかを確認する#5391 - ノード#5277再起動によって発生するジッターを軽減するために起動プロセスを最適化します。
- 場合によってはロック解決プロセスを最適化して、トランザクション#5339ロック解決を高速化します。
get_txn_commit_infoプロセスを最適化してトランザクションのコミットを高速化する#5062- Raft関連のログを簡素化する#5425
- TiKVが一部のケースで異常終了する問題を解決#5441
PD
- PDに
config-checkオプションを追加して、PD構成項目が有効かどうかを確認する#1725 - pd-ctlに
remove-tombstoneコマンドを追加して、トゥームストーンストアレコードのクリアをサポートする#1705 - オペレーターのスケジュール調整を積極的に促進するサポート#1686
ツール
- TiDBBinlog
- TiDB Lightning
- チェックポイント#239からデータを再インポートするとtidb-lightningがクラッシュする可能性があるバグを修正しました