TiDB 2.1.17 リリースノート
発売日:2019年9月11日
TiDB バージョン: 2.1.17
TiDB アンシブル バージョン: 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 バッチの行数よりも多い場合、クエリの結果が正しくない場合がある問題を修正しました。 Index Lookup Join の機能範囲を拡張します。
UnionScanIndexJoin#11843のサブノードとして使用できます - 無効なキー (
invalid encoded key flag 252など) の表示をSHOW STAT_BUCKETS構文に追加し、統計フィードバック プロセス中に無効なキーが発生する可能性がある状況に備えます#12098
- SQL 実行エンジン
CAST関数が数値型#11712を変換しているときに、最初にUINTに変換される数値によって引き起こされる、いくつかの誤った結果 (select cast(13835058000000000000 as double)など) を修正します。DIV計算の被除数が小数で、この計算に負の数#11812含まれている場合、計算結果が正しくない場合がある問題を修正ConvertStrToIntStrict関数を追加して、SELECT/EXPLAINステートメントの実行時に一部の文字列がINT型に変換されることによって発生する MySQL の非互換性の問題を修正します#11892EXPLAIN ... FOR CONNECTIONを使用するとstmtCtxの構成が間違っているためにExplain結果が正しくない場合がある問題を修正#11978unaryMinus関数で返される結果が MySQL と互換性がない問題を修正します。これは、整数の結果がオーバーフローしたときに非 10 進数の結果が原因で発生します#11990LOAD 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"およびInsert Into … Select構文で 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操作のバックグラウンド ワーカー スレッドのデフォルト パラメータ値を減らして、オンライン ワークロードへの大きな影響を回避します#11875SPLIT TABLE構文の動作を改善: 領域#11929を分割するためにSPLIT TABLE ... REGIONS Nが使用される場合、N データリージョン(s) と 1 つのインデックスリージョンを生成します- 設定ファイルに
split-region-max-numパラメータ (デフォルトでは10000) を追加して、SPLIT TABLE構文で許可されるリージョンの最大数を調整可能にします#12080 - システムがbinlog #12121を書き込むときに、この句でコメント解除された
PRE_SPLIT_REGIONSが原因で、下流の MySQL がCREATE TABLE句を解析できないという問題を修正します。 SHOW TABLE … REGIONSとSHOW TABLE .. INDEX … REGIONS#12124にWHERE節を追加
- モニター
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コマンドを追加して、tombstone ストア レコードのクリアをサポートします#1705 - スケジューリングをスピードアップするようオペレーターに積極的に働きかけるサポート#1686
ツール
- TiDBBinlog
- TiDB Lightning
- チェックポイント#239からデータを再インポートすると、tidb-lightning がクラッシュする可能性があるバグを修正します。