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がクラッシュする可能性があるバグを修正します