TiDB 3.0.8 リリースノート

発売日:2019年12月31日

TiDB バージョン: 3.0.8

TiDB アンシブル バージョン: 3.0.8

TiDB

  • SQL オプティマイザー
    • タイミングの悪いキャッシュ更新によって引き起こされた誤った SQL バインディング プランを修正する#13891
    • SQL ステートメントにシンボル リストが含まれている場合、SQL バインディングが無効になる可能性がある問題を修正します#14004
    • SQL ステートメントが; #14113で終わるため、SQL バインディングを作成または削除できない問題を修正します。
    • PhysicalUnionScan演算子が間違った統計を設定するため、間違った SQL クエリ プランが選択される可能性がある問題を修正します#14133
    • minAutoAnalyzeRatioの制限を外してautoAnalyzeをタイムリーに#14015
  • SQL 実行エンジン
    • INSERT/REPLACE/UPDATE ... SET ... = DEFAULT構文でエラーが報告される可能性があり、 DEFAULT式の使用法を仮想生成列と組み合わせるとエラー#13682が報告される可能性があるという問題を修正します。
    • 文字列を float に変換するときにINSERTステートメントがエラーを報告する可能性がある問題を修正します#14011
    • HashAgg executor の同時実行値が正しく初期化されていないために集計操作の効果が低い場合がある問題を修正します#13811
    • 句が括弧内にある場合、 group by itemの実行でエラーが報告される問題を修正します#13658
    • TiDB がgroup by item #14014を正しく計算しないため、 OUTER JOINを実行するとエラーが報告される可能性がある問題を修正します。
    • レンジ分割テーブルにレンジを超えるデータを書き込むとエラーメッセージが正しく表示されない問題を修正#14107
    • MySQL PadCharToFullLengthがすぐに破棄されることを考慮して、 広報番号 10124を元に戻し、 PadCharToFullLengthの効果をキャンセルして、特殊なケースで予期しないクエリ結果を回避します#14157
    • ExplainExec #14226での保証されていないclose()呼び出しによって引き起こされるEXPLAIN ANALYZEステートメントを実行するときのゴルーチン リークの問題を修正します。
  • DDL
    • change columnのエラーメッセージ出力を最適化して分かり#13796するmodify column
    • 分割されたテーブルのリージョンの分割をサポートするためにSPLIT PARTITION TABLE構文を追加します#13929
    • インデックスの作成時にインデックスの長さが正しくチェックされないため、インデックスの長さが 3072 バイトを超えてもエラーが報告されない問題を修正し#13779
    • 分割されたテーブルにインデックスを追加するのに時間がかかりすぎるため、 GC life time is shorter than transaction durationエラー メッセージが報告される場合がある問題を修正します#14132
    • DROP COLUMN / MODIFY COLUMN / CHANGE COLUMN実行時に外部キーがチェックされないため、 SELECT * FROM information_schema.KEY_COLUMN_USAGE実行時のpanicを修正#14105
  • サーバ
    • ステートメントの概要の改善:
      • 多数の SQL メトリック フィールドを追加して、SQL ステートメントをより詳細に分析し#14168する#14151
      • stmt-summary.refresh-intervalパラメータを追加して、古いデータをevents_statements_summary_by_digestテーブルからevents_statements_summary_by_digest_historyテーブルに移動するかどうかを制御します (デフォルトの間隔: 30 分) #14161
      • events_statements_summary_by_digest_historyテーブルを追加して、古いデータをevents_statements_summary_by_digest #14166に保存します
    • RBAC関連の内部SQL文実行時にbinlogが誤って出力される問題を修正#13890
    • TiDBサーバーバージョン#13906を変更する機能を制御するserver-versionの構成項目を追加します。
    • HTTP インターフェイスを使用して TiDB バイナリログの書き込みを回復する機能を追加します#13892
    • GRANT roles TO userで必要な権限をGrantPrivからROLE_ADMINまたはSUPERに更新して、MySQL の動作との一貫性を維持します#13932
    • MySQL の動作との互換性を維持するために、TiDB の動作を現在のデータベースの使用からGRANTステートメントでデータベース名が指定されていない場合にNo database selectedエラーを報告するように変更します#13784
    • REVOKEステートメントの実行権限をSuperPrivからREVOKEに変更して、ユーザーが対応するスキーマの権限を持っている場合にのみ実行できるようにし、MySQL の動作との一貫性を維持します#13306
    • GRANT ALL構文にWITH GRANT OPTION #13943が含まれていない場合、ターゲット ユーザーに誤ってGrantPrivが付与される問題を修正します。
    • LoadDataInfoaddRecord #13980の呼び出しに失敗した場合に、 LOAD DATAステートメントの間違った動作の原因がエラー メッセージに含まれていない問題を修正します。
    • クエリ内の複数の SQL ステートメントが同じStartTime #13898を共有するため、間違ったスロークエリ情報が出力される問題を修正します。
    • batchClient大規模なトランザクションを処理するとメモリ リークが発生する可能性がある問題を修正します#14032
    • system_time_zoneが常にCSTと表示され、TiDB のsystem_time_zonemysql.tidbテーブル#14086systemTZから取得される問題を修正
    • GRANT ALL構文がユーザー#14092にすべての権限を付与しないという問題を修正します。
    • Priv_create_user権限がCREATE ROLEDROP ROLE #14088で無効になる問題を修正
    • ErrInvalidFieldSizeのエラー コードを1105(Unknow Error)から3013 #13737に変更します。
    • SHUTDOWNコマンドを追加して TiDBサーバーを停止し、 ShutdownPriv特権#14104を追加します。
    • DROP ROLEステートメントの原子性の問題を修正して、TiDB がステートメントの実行に失敗したときに一部のロールが予期せず削除されないようにします#14130
    • TiDB のバージョンを 3.0 にアップグレードすると、 SHOW VARIABLEの結果のtidb_enable_window_functionが誤って1を出力する問題を修正し、誤った結果を0 #14131に置き換えます。
    • TiKV ノードがオフラインのときにgcworker継続的にリトライするため、ゴルーチンがリークする可能性がある問題を修正します#14106
    • 問題追跡の使いやすさを向上させるために、スロー クエリ ログに binlog をPrewrite回記録し#14138
    • tidb_enable_table_partition変数サポートをGLOBAL SCOPE #14091にする
    • 新しい権限が追加されたときに、新しく追加された権限が対応するユーザーに正しく付与されないため、ユーザー権限が失われたり、誤って追加されたりする可能性がある問題を修正します#14178
    • TiKVサーバーが切断されたときにrpcClientが閉じないため、 CheckStreamTimeoutLoopゴルーチンがリークする可能性がある問題を修正#14227
    • 証明書ベースの認証をサポート ( ユーザー文書 ) #13955
  • 取引
    • 新しいクラスターが作成されるときに、 tidb_txn_mode変数のデフォルト値を""から"pessimistic"に更新します#14171
    • トランザクションの再試行時に単一ステートメントのロック待機時間がリセットされないため、ペシミスティック トランザクションのロック待機時間が長すぎる問題を修正し#13990
    • 悲観的トランザクションモード#14050で変更されていないデータがロック解除されているため、間違ったデータが読み取られる可能性がある問題を修正します。
    • #14175でプリライトを行うとトランザクションの種類が区別されないため、挿入値の制限チェックが繰り返される問題を修正
    • session.TxnStateInvalid #13988の場合、トランザクションが正しく処理されないため、panicを修正します。
    • mocktikv のErrConfclit構造体にConflictCommitTS #14080が含まれていない問題を修正
    • ロックを解決した後、 #14083がロック タイムアウトを正しくチェックしないためにトランザクションがブロックされる問題を修正します。
  • モニター
    • LockKeys #14194pessimistic_lock_keys_duration監視項目を追加

TiKV

  • コプロセッサー
    • コプロセッサ#6051でエラーが発生した場合の出力ログのレベルをerrorからwarnに変更します
    • tidb-server #6069の更新動作との一貫性を保つために、統計サンプリング データの更新動作を、行を直接更新するから、挿入する前に削除するように変更します。
  • ラフトストア
    • destroyメッセージをpeerfsmpeerfsmに繰り返し送信することによって引き起こされるpanicが複数回破壊される問題を修正します#6297
    • デフォルト値split-region-on-tabletrueからfalseに更新して、デフォルトでテーブルごとのリージョンの分割を無効にします#6253
  • エンジン
    • RocksDB イテレータ エラーが極端な状況で正しく処理されないため、空のデータが返される可能性がある問題を修正します#6326
  • 取引
    • 悲観的ロックが誤ってクリーンアップされるため、TiKV がキーにデータを書き込むことができず、GC がブロックされる問題を修正します#6354
    • 悲観的なロック待機メカニズムを最適化して、ロックの競合が深刻なシナリオでのパフォーマンスを向上させます#6296
  • デフォルト値のtikv_alloctikv_alloc/defaultからjemalloc #6206に更新します。

PD

  • クライアント
    • contextを使用してクライアントを作成し、新しいクライアントを作成するときにタイムアウト期間を設定することをサポートします#1994
    • KeepAlive接続の作成をサポート#2035
  • /api/v1/regions API #1986のパフォーマンスを最適化する
  • tombstone状態のストアを削除するとpanicが発生する可能性がある問題を修正します#2038
  • ディスク#2011#2040からリージョン情報をロードするときに、重複するリージョンが誤って削除される問題を修正します。
  • etcd を v3.4.0 から v3.4.3 にアップグレードします (アップグレード後は、pd-recover を使用してのみ etcd を劣化させることができることに注意してください) #2058

ツール

  • Binlog
    • Pumpが DDL コミットされた binlog #853を受信しないため、binlog が無視される問題を修正します。

TiDB アンシブル

  • 単純化された構成アイテム#1053を元に戻す
  • ローリング更新時の TiDB のバージョン確認ロジックを最適化する#1056
  • TiSpark を v2.1.8 にアップグレードする#1061
  • Grafana #1065で PD ロールの監視項目が誤って表示される問題を修正
  • Grafana #1071の TiKV 詳細ページの最適化Thread Voluntary Context SwitchesThread Nonvoluntary Context Switchesの監視項目
エコシステム
TiDB
TiKV
TiSpark
Chaos Mesh
© 2022 PingCAP. All Rights Reserved.