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オプティマイザー
EvalSubqueryExecutor#11811構築中にエラーが発生した場合、エラーメッセージが正しく返されない問題を修正- 外部テーブルの行数がインデックス検索結合の単一バッチの行数よりも大きい場合、クエリ結果が正しくなくなる可能性がある問題を修正します。インデックスルックアップ結合の機能範囲を拡張します。
UnionScanIndexJoin#11843のサブノードとして使用できます - 統計フィードバック プロセス中に無効なキーが発生する可能性がある状況に備えて、無効なキー (
invalid encoded key flag 252など) の表示をSHOW STAT_BUCKETS構文に追加します#12098
- SQL実行エンジン
CAST関数が数値型#11712を変換するときに、最初にUINTに変換される数値によって引き起こされるいくつかの誤った結果 (select cast(13835058000000000000 as double)など) を修正しました。DIV計算の被除数が小数で、この計算に負の数#11812含まれる場合、計算結果が正しくなくなることがある問題を修正SELECT/EXPLAINステートメントの実行時に一部の文字列がINTタイプに変換されることによって引き起こされる MySQL の非互換性の問題を修正するConvertStrToIntStrict関数を追加します#11892EXPLAIN ... FOR CONNECTIONを使用#11978た場合にstmtCtxの設定が間違っているため、Explain結果が正しくなくなることがある問題を修正- 整数の結果がオーバーフローした場合に
unaryMinus進数以外の結果が発生するために、関数によって返される結果が 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に送信されるリクエストの数を減らします。 Insert Into … Select構文でoom-action = "cancel"と OOM が発生した場合の OOMpanic問題の誤った処理によって引き起こされる接続切断の問題を修正します#12126
- 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構文動作を改善します。領域#11929を分割するためにSPLIT TABLE ... REGIONS N使用される場合、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
- モニター
connection_transient_failure_count監視メトリックを追加して、tikvclient#12092の gRPC 接続エラーをカウントします。
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 がクラッシュする可能性があるバグを修正