TiDB2.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- 外側のテーブルの行数がインデックスルックアップ結合の単一バッチの行数よりも多い場合に、クエリ結果が正しくない可能性がある問題を修正します。インデックスルックアップ結合の機能範囲を拡張します。
UnionScanは#11843のサブノードとして使用できIndexJoin - 統計フィードバックプロセス中に無効なキーが発生する可能性がある状況のために、
SHOW STAT_BUCKETSの構文に無効なキー(invalid encoded key flag 252など)の表示を追加します#12098
- SQL実行エンジン
CAST関数が数値タイプ#11712を変換しているときに、最初にUINTに変換される数値によって引き起こされるいくつかの誤った結果(select cast(13835058000000000000 as double)など)を修正します。DIVの計算の被除数が小数であり、この計算に負の数#11812が含まれている場合、計算結果が正しくない可能性がある問題を修正します。ConvertStrToIntStrict関数を追加して、SELECT/EXPLAINステートメントの実行時に一部の文字列がINTタイプに変換されることによって引き起こされるMySQLの非互換性の問題を修正します#11892EXPLAIN ... FOR CONNECTIONが使用されている場合にstmtCtxの設定が間違っているためにExplainの結果が正しくない可能性があるという問題を修正します#11978unaryMinus関数によって返される結果がMySQLと互換性がないという問題を修正します。これは、整数の結果が#11990をオーバーフローしたときに非10進数の結果が原因で発生します。LOAD DATAステートメントが実行されているときのカウント順序が原因でlast_insert_id()が正しくない可能性があるという問題を修正します#11994- ユーザーが明示的-暗黙的な混合方法で自動インクリメント列データを書き込むときに
last_insert_id()が正しくない可能性があるという問題を修正します#12001 JSON_UNQUOTE関数の引用符で囲まれたバグを修正します。二重引用符(")で囲まれた値のみを引用符で囲まないようにする必要があります。たとえば、「SELECT JSON_UNQUOTE("\\\\")」の結果は「\\」(変更されない) #12096になります。
- サーバ
- 低速クエリログに記録された
start tsを、TiDBトランザクションを再試行するときの最後の再試行時刻から最初の実行時刻に変更します#11878 - リージョン全体でのスキャン操作を回避し、キーの数が減ったときにロックを解決するコストを削減するために、トランザクションのキーの数を
LockResolverに追加します#11889 - 遅いクエリログで
succフィールド値が正しくない可能性がある問題を修正します#11886 - 低速クエリログに記録された
Index_idsをIndex_namesフィールドに置き換えて、低速クエリログの使いやすさを向上させます#12063 Durationに-(select time(‘--’)など)が含まれている場合に、TiDBが-をEOFエラーに解析することによって発生する接続切断の問題を修正します#11910- 無効なリージョンを
RegionCacheからすばやく削除して、このリージョン#11931に送信されるリクエストの数を減らします。 oom-action = "cancel"とOOMがInsert Into … Select構文#12126で発生した場合に、OOMパニックの問題を誤って処理することによって引き起こされる接続切断の問題を修正します。
- 低速クエリログに記録された
- DDL
tikvSnapshotの逆スキャンインターフェイスを追加して、DDL履歴ジョブを効率的にクエリします。このインターフェースを使用した後、ADMIN SHOW DDL JOBSの実行時間は大幅に短縮されます#11789CREATE TABLE ... PRE_SPLIT_REGION構文を改善します。35の場合、事前分割領域の数を2 ^(N-1)からPRE_SPLIT_REGION = N^Nに変更し#11797 。- オンラインワークロードへの大きな影響を回避するために、
Add Index操作のバックグラウンドワーカースレッドのデフォルトパラメーター値を減らします#11875 SPLIT TABLEの構文動作を改善しますSPLIT TABLE ... REGIONS Nを使用してリージョン#11929を分割する場合、N個のデータリージョンと1つのインデックスリージョンを生成します。- 構成ファイルに
split-region-max-numつのパラメーター(デフォルトでは10000)を追加して、SPLIT TABLEの構文で許可されるリージョンの最大数を調整可能にします#12080 - システムがbinlog5を書き込むときに、この句のコメントがない
PRE_SPLIT_REGIONSが原因で、ダウンストリームのMySQLがCREATE TABLE句を解析できない問題を修正し#12121 。 SHOW TABLE … REGIONSと#12124にWHEREつの副節を追加しSHOW TABLE .. INDEX … REGIONS
- モニター
connection_transient_failure_countモニタリングメトリックを追加して、35のtikvclient接続エラーをカウントし#12092
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
ツール
- TiDB Binlog
- TiDB Lightning
- チェックポイント#239からデータを再インポートすることによってtidb-lightningがクラッシュする可能性があるバグを修正します