TiDB 3.0.8 リリースノート

発売日:2019年12月31日

TiDB バージョン: 3.0.8

TiDB Ansible バージョン: 3.0.8

TiDB

  • SQLオプティマイザー
    • 時期尚早のキャッシュ更新によって引き起こされる間違った SQL バインディング プランを修正する#13891
    • SQL ステートメントにシンボル リスト#14004が含まれている場合、SQL バインディングが無効になる可能性がある問題を修正します。
    • SQL ステートメントが; #14113で終わるため、SQL バインディングを作成または削除できない問題を修正します。
    • PhysicalUnionScan演算子が間違った統計#14133を設定するため、間違った SQL クエリ プランが選択される可能性がある問題を修正します。
    • minAutoAnalyzeRatio制限を削除すると、 autoAnalyzeがよりタイムリーに#14015になります
  • SQL実行エンジン
    • INSERT/REPLACE/UPDATE ... SET ... = DEFAULT構文でエラーが報告される可能性があり、 DEFAULT式の使用と仮想生成列を組み合わせるとエラーが報告される可能性があるという問題を修正します#13682
    • 文字列を float #14011に変換するときにINSERTステートメントでエラーが報告される可能性がある問題を修正します。
    • HashAggエグゼキュータの同時実行値が正しく初期化されていないため、集計操作の効率が低い場合がある問題を修正します#13811
    • 句が括弧内にある場合にgroup by itemの実行でエラーが報告される問題を修正します#13658
    • TiDB がgroup by item #14014を誤って計算するため、 OUTER JOINを実行するとエラーが報告される可能性がある問題を修正
    • 範囲を超えるデータが範囲パーティション テーブル#14107に書き込まれるときにエラー メッセージが不正確になる問題を修正します。
    • MySQL 8 がすぐにPadCharToFullLength破棄することを考慮して、特殊な場合に予期しないクエリ結果を回避するためにPR #10124元に戻し、 PadCharToFullLength効果をキャンセルします#14157
    • ExplainExec #14226での保証されていないclose()呼び出しによって引き起こされるEXPLAIN ANALYZEステートメントを実行するときの goroutine リークの問題を修正します。
  • DDL
    • change column / modify columnのエラーメッセージ出力を最適化して分かりやすくする#13796
    • パーティション テーブル#13929のリージョンの分割をサポートするSPLIT PARTITION TABLE構文を追加します。
    • インデックスの作成時にインデックスの長さが誤ってチェックされるため、インデックスの長さが 3072 バイトを超えてもエラーが報告されない問題を修正します#13779
    • パーティション テーブル#14132にインデックスを追加するのに時間がかかりすぎるため、 GC life time is shorter than transaction durationエラー メッセージが報告される可能性がある問題を修正します。
    • 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 インターフェースを使用して TiDBbinlogの書き込みを回復する機能を追加#13892
    • MySQL の動作との一貫性を保つために、 GRANT roles TO userで必要な権限をGrantPrivからROLE_ADMINまたはSUPERに更新します#13932
    • MySQL の動作#13784の互換性を維持するために、TiDB の動作を現在のデータベースの使用からGRANTステートメントでデータベース名が指定されていない場合にNo database selectedエラーを報告するように変更します。
    • MySQL の動作#13306の一貫性を保つために、ユーザーが対応するスキーマに対する権限を持っている場合にのみ実行可能となるように、 REVOKEステートメントの実行権限をSuperPrivからREVOKEに変更します。
    • GRANT ALL構文にWITH GRANT OPTION #13943が含まれていない場合、対象ユーザーに誤ってGrantPrivが付与されてしまう問題を修正
    • LoadDataInfoaddRecord #13980の呼び出しに失敗した場合のLOAD DATAステートメントの誤った動作の原因がエラー メッセージに含まれていない問題を修正します。
    • クエリ内の複数の SQL ステートメントが同じStartTime #13898を共有しているため、間違ったスロー クエリ情報が出力される問題を修正
    • batchClient大きなトランザクションを処理するときにメモリが発生する可能性がある問題を修正#14032
    • system_time_zoneが常にCSTとして表示され、TiDB のsystem_time_zone mysql.tidbテーブルのsystemTZから取得される問題を修正#14086
    • GRANT ALL構文ではユーザー#14092にすべての権限が付与されないという問題を修正します。
    • Priv_create_user権限がCREATE ROLEDROP ROLEでは無効になる問題を修正#14088
    • ErrInvalidFieldSizeのエラーコードを1105(Unknow Error)から3013に変更します#13737
    • TiDBサーバーを停止するSHUTDOWNコマンドを追加し、 ShutdownPriv特権#14104を追加します。
    • TiDB がステートメント#14130の実行に失敗したときに一部のロールが予期せず削除されるのを避けるために、ステートメントDROP ROLEのアトミック性の問題を修正しました。
    • 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で未変更データのロックが解除されるため、誤ったデータが読み込まれる可能性がある問題を修正
    • mocktikv #14175で事前書き込みが実行されるときにトランザクション タイプが区別されないため、挿入値の制限チェックが繰り返される問題を修正しました。
    • session.TxnStateInvalid #13988の場合にトランザクションが正しく処理されないため、panicを修正しました。
    • mocktikv のErrConfclit構造体にConflictCommitTS #14080含まれていない問題を修正
    • TiDB がロック#14083を解決した後にロック タイムアウトを正しくチェックしないため、トランザクションがブロックされる問題を修正します。
  • モニター
    • LockKeys #14194に監視項目をpessimistic_lock_keys_duration追加

TiKV

  • コプロセッサー
    • コプロセッサー#6051でエラーが発生した場合の出力ログのレベルをerrorからwarnに変更
    • tidb-server #6069の更新動作との一貫性を保つために、統計サンプリング データの更新動作を行の直接更新から挿入前の削除に変更しました。
  • Raftstore
    • destroyメッセージをpeerfsmに繰り返し送信し、 peerfsm複数回破棄されることによって引き起こされる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

ツール

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

TiDB Ansible

  • 簡略化された構成項目#1053を元に戻す
  • ローリング アップデート#1056の実行時に TiDB バージョンをチェックするロジックを最適化します。
  • TiSpark を v2.1.8 にアップグレードする#1061
  • Grafana #1065でPDロール監視項目が誤って表示される問題を修正
  • Grafana #1071の TiKV 詳細ページの監視項目Thread Voluntary Context SwitchesThread Nonvoluntary Context Switchesを最適化する

このページは役に立ちましたか?

Playground
新規
登録なしで TiDB の機能をワンストップでインタラクティブに体験できます。
製品
TiDB Cloud
TiDB
価格
PoC お問い合わせ
エコシステム
TiKV
TiFlash
OSS Insight
© 2024 PingCAP. All Rights Reserved.
Privacy Policy.