TiDB 3.0.8 リリースノート

発売日: 2019年12月31日

TiDB バージョン: 3.0.8

TiDB Ansible バージョン: 3.0.8

ティビ

  • SQL オプティマイザー
    • タイミングの悪いキャッシュ更新によって発生した間違った SQL バインディング プランを修正#13891
    • SQL文にシンボルリスト#14004が含まれている場合にSQLバインディングが無効になる可能性がある問題を修正
    • SQL文が; #14113で終わるためSQLバインディングを作成または削除できない問題を修正
    • PhysicalUnionScan演算子が間違った統計を設定するため、間違った SQL クエリ プランが選択される可能性がある問題を修正しました#14133
    • minAutoAnalyzeRatio制限を削除してautoAnalyzeよりタイムリーにする#14015
  • SQL実行エンジン
    • INSERT/REPLACE/UPDATE ... SET ... = DEFAULT構文でエラーが報告される可能性があり、 DEFAULT式の使用と仮想生成列を組み合わせるとエラーが報告される可能性がある問題を修正しました#13682
    • INSERT文が文字列を浮動小数点数に変換するときにエラーを報告する可能性がある問題を修正#14011
    • HashAggエグゼキュータの同時実行値が正しく初期化されていないために、集計操作の効率が低下することがある問題を修正しました#13811
    • group by item節が括弧内にある場合に実行時にエラーが報告される問題を修正#13658
    • TiDBがgroup by item #14014を誤って計算するため、 OUTER JOINの実行でエラーが報告される可能性がある問題を修正しました。
    • 範囲を超えるデータが範囲パーティションテーブルに書き込まれたときにエラーメッセージが不正確になる問題を修正#14107
    • MySQL 8ではPadCharToFullLengthすぐに破棄されることを考慮して、特殊なケースで予期しないクエリ結果を回避するために広報 #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文をより詳細に分析できるように、 #14168のSQLメトリックフィールドを追加します#14151
      • stmt-summary.refresh-intervalパラメータを追加して、古いデータをevents_statements_summary_by_digestテーブルからevents_statements_summary_by_digest_historyテーブルに移動するかどうかを制御します (デフォルトの間隔: 30 分) #14161
      • events_statements_summary_by_digest #14166の古いデータを保存するには、 events_statements_summary_by_digest_historyテーブルを追加します。
    • RBAC関連の内部SQL文の実行時にbinlogが誤って出力される問題を修正#13890
    • TiDBサーバーバージョン#13906の変更機能を制御するためのserver-version構成項目を追加します。
    • HTTPインターフェースを使用してTiDBbinlog#13892の書き込みを回復する機能を追加
    • MySQLの動作#13932との一貫性を保つために、 GRANT roles TO userに必要な権限をGrantPrivからROLE_ADMINまたはSUPER更新します。
    • MySQLの動作#13784との互換性を保つために、TiDBの動作を、現在のデータベースを使用する動作から、 GRANT文でデータベース名が指定されていない場合にNo database selectedエラーを報告する動作に変更しました。
    • MySQLの動作#13306との一貫性を保つために、 REVOKE文の実行権限をSuperPrivからREVOKEに変更し、対応するスキーマに対する権限を持つユーザーのみ実行可能にする
    • GRANT ALL構文にWITH GRANT OPTION #13943が含まれていない場合に、対象ユーザーに誤ってGrantPrivが付与される問題を修正しました。
    • LoadDataInfo addRecord #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 ROLEおよびDROP ROLE #14088に対して無効になる問題を修正
    • エラーコードErrInvalidFieldSize1105(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継続的に再試行するため、goroutineがリークする可能性がある問題を修正しました#14106
    • 問題追跡の使いやすさを向上させるために、スロークエリログにbinlogをPrewrite回記録します#14138
    • tidb_enable_table_partition変数をGLOBAL SCOPE #14091サポートする
    • 新しい権限が追加されたときに、新しく追加された権限が対応するユーザーに正しく付与されないため、ユーザー権限が欠落したり、誤って追加されたりする可能性がある問題を修正しました#14178
    • TiKVサーバーが切断されたときにrpcClient閉じないためにCheckStreamTimeoutLoop goroutine がリークする可能性がある問題を修正#14227
    • 証明書ベースの認証をサポート ( ユーザードキュメント ) #13955
  • トランザクション
    • 新しいクラスターが作成されたときに、 tidb_txn_mode変数のデフォルト値を""から"pessimistic"に更新します#14171
    • トランザクションが再試行されたときに単一ステートメントのロック待機時間がリセットされないため、悲観的トランザクションのロック待機時間が長すぎる問題を修正しました#13990
    • 悲観的トランザクションモード#14050で未変更データがロック解除されるため、誤ったデータが読み取られる可能性がある問題を修正しました。
    • mocktikv #14175で事前書き込みを実行するときにトランザクション タイプが区別されないため、挿入値の制限チェックが繰り返される問題を修正しました。
    • session.TxnStateInvalid #13988のときにトランザクションが正しく処理されないためpanicが発生する問題を修正
    • mocktikvのErrConfclit構造にConflictCommitTS #14080が含まれていない問題を修正
    • ロック#14083を解決した後に TiDB がロック タイムアウトを正しくチェックしないためにトランザクションがブロックされる問題を修正しました。
  • モニター
    • LockKeys #14194pessimistic_lock_keys_duration監視項目を追加

ティクヴ

  • コプロセッサー
    • コプロセッサー#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 アンシブル

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

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

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