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 スロークエリログの最後の再試行時間から最初の実行時間への変更
ティビ
- SQL オプティマイザー
EvalSubqueryビルドExecutor#11811中にエラーが発生したときにエラーメッセージが正しく返されない問題を修正- Index Lookup Joinで外部テーブルの行数が1バッチの行数より多い場合にクエリ結果が正しくない可能性がある問題を修正しました。Index Lookup Joinの機能範囲を拡張しました
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をオーバーフローしたときに 10 進数以外の結果になるためです。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構文の動作を改善しますSPLIT 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監視メトリックを追加します。
ティクヴ
- 一部のケースでリージョン内のキーをカウントした結果が誤っていた問題を修正#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 がクラッシュする可能性があるバグを修正しました。