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の機能範囲を拡張しました
UnionScan
IndexJoin
#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 がクラッシュする可能性があるバグを修正しました。