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コマンドを追加して、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はIndexJoinのサブノードとして使用できます。 #11843 - 統計フィードバック処理中に無効なキーが発生する可能性がある状況に備えて、
SHOW STAT_BUCKETS構文に無効なキー(invalid encoded key flag 252など)の表示を追加します#12098
- SQL実行エンジン
CAST関数が数値型を変換するときに最初にUINTに変換される数値によって発生するいくつかの誤った結果 (select cast(13835058000000000000 as double)など) を修正しました。 #11712DIV計算の被除数が小数で、この計算に負の数が含まれている場合に計算結果が正しくない可能性がある問題を修正しました。 #11812SELECT/EXPLAIN文を実行するときに一部の文字列がINT型に変換されることで発生する MySQL の非互換性の問題を修正するためにConvertStrToIntStrict関数を追加します #11892EXPLAIN ... FOR CONNECTIONが使用されているときにstmtCtxの設定が間違っているためにExplain結果が正しくない可能性がある問題を修正しました#11978unaryMinus関数によって返される結果が MySQL と互換性がない問題を修正しました。これは、整数結果がオーバーフローしたときに非小数点結果になるためです。 #11990LOAD DATA文の実行時にカウント順序が原因でlast_insert_id()間違っている可能性がある問題を修正しました#11994- ユーザーがAUTO_INCREMENT列データを明示的・暗黙的に混合して書き込む場合に
last_insert_id()間違っている可能性がある問題を修正#12001 - 関数
JSON_UNQUOTE引用符の過剰使用に関するバグを修正しました。二重引用符で囲まれた値 (") のみ引用符で囲まないようにします。例えば、 "SELECT JSON_UNQUOTE("\\\\")" の結果は "\\" (変更なし)になります#12096
- サーバ
- TiDBトランザクション再試行する際、最後の再試行時刻から最初の実行時刻までの変更
start tsスロークエリログに記録される #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構文で発生したときに OOM panicの問題を誤って処理することによって発生する接続切断の問題を修正しました。 #12126
- TiDBトランザクション再試行する際、最後の再試行時刻から最初の実行時刻までの変更
- DDL
tikvSnapshotにリバーススキャンインターフェースを追加し、DDL履歴ジョブを効率的にクエリできるようにします。このインターフェースを使用することで、ADMIN SHOW DDL JOBS実行時間が大幅に短縮されます#11789CREATE TABLE ... PRE_SPLIT_REGION構文の改善:PRE_SPLIT_REGION = Nの場合、事前分割されるリージョンの数を 2^(N-1) から 2^N に変更します。 #11797- オンラインワークロードに大きな影響を与えないように、
Add Index操作のバックグラウンドワーカースレッドのデフォルトパラメータ値を減らします#11875 SPLIT TABLE構文の動作を改善します。SPLIT TABLE ... REGIONS Nを使用して領域を分割すると、N 個のデータリージョンと 1つのインデックスリージョンが生成されます。 #11929- 設定ファイルに
split-region-max-numパラメータ(デフォルトでは10000)を追加して、SPLIT TABLE構文で許可されるリージョンの最大数を調整可能にします#12080 - システムがbinlog書き込むときに、この句のコメントが解除された
PRE_SPLIT_REGIONS原因で、下流のMySQLでCREATE TABLE句を解析できない問題を修正しました。 #12121 SHOW TABLE … REGIONSとSHOW TABLE .. INDEX … REGIONSのWHEREのサブ条項を追加する #12124
- モニター
tikvclientの gRPC 接続エラーをカウントするためのconnection_transient_failure_count監視メトリックを追加します。 #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コマンドを追加して、tombstoneストアレコードのクリアをサポートする#1705 - オペレーターのスケジュール調整を積極的に促進するサポート#1686
ツール
- TiDB Binlog
- TiDB Lightning
- チェックポイントからデータを再インポートするとtidb-lightningがクラッシュする可能性があるバグを修正しました #239