TiDB 4.0.5 リリースノート
発売日:2020年8月31日
TiDB バージョン: 4.0.5
互換性の変更
TiDB
新機能
TiKV
- エラー#8387のエラー コードを定義します。
ティフラッシュ
- TiDB との統合ログ形式をサポート
ツール
改良点
TiDB
- 大きなユニオン クエリに対して
DecodePlan
のパフォーマンスを最適化する#18941 Region cache miss
エラー発生時の GC ロックスキャン回数を減らす#18876- クラスターのパフォーマンスに対する統計的フィードバックの影響を緩和する#18772
- RPC 応答が返される前の操作のキャンセルをサポート#18580
- HTTP API を追加して TiDB メトリクス プロファイルを生成する#18531
- 分散分割テーブルのサポート#17863
- Grafana #18679の各インスタンスの詳細なメモリ使用量を追加
EXPLAIN
#18892の結果でBatchPointGet
演算子の詳細なランタイム情報を表示しますEXPLAIN
#18817の結果でPointGet
演算子の詳細なランタイム情報を表示しますremove()
#18395分のConsume
の潜在的なデッドロックを警告するStrToInt
とStrToFloat
の動作を改良し、JSON をdate
、time
、およびtimestamp
型に変換することをサポートします#18159TableReader
オペレーター#18392のメモリー使用量の制限をサポートbatch cop
リクエスト#18999を再試行するときにバックオフが何度も発生しないようにするALTER TABLE
アルゴリズムの互換性を改善#19270- 内側にシングルパーテーションテーブルサポート
IndexJoin
を作成する#19151 - ログに無効な行が含まれている場合でも、ログ ファイルの検索をサポート#18579
- 大きなユニオン クエリに対して
PD
- 特別なエンジン (TiFlash など) を備えたストアでのスキャッタリング領域のサポート#2706
- リージョン HTTP API をサポートして、特定のキー範囲#2687のリージョンスケジューリングを優先します
- リージョン分散後のリーダー分布を改善する#2684
- TSO 要求#2678のテストとログをさらに追加します。
- リージョンのリーダーが変更された後の無効なキャッシュ更新を回避する#2672
store.GetLimit
が廃棄済みストアを返すことを許可するオプションを追加します#2743- PD リーダーとフォロワー間のリージョンリーダーの変更の同期をサポートします#2795
- GC safepoint サービスをクエリするコマンドを追加します#2797
- フィルター内の
region.Clone
の呼び出しを置き換えて、パフォーマンスを向上させます#2801 - リージョンフロー キャッシュの更新を無効にするオプションを追加して、大規模なクラスター#2848のパフォーマンスを向上させます。
ティフラッシュ
- CPU、I/O、RAM 使用量のメトリックとストレージ エンジンのメトリックを表示するための Grafana パネルを追加します。
- Raftログの処理ロジックを最適化して I/O 操作を削減する
- ブロックされた
add partition
の DDL ステートメントのリージョンスケジューリングを高速化する - DeltaTree のデルタ データの圧縮を最適化して、読み取りと書き込みの増幅を減らします
- 複数のスレッドを使用してスナップショットを前処理することにより、リージョンのスナップショットを適用するパフォーマンスを最適化します
- TiFlash の読み取り負荷が低いときにファイル記述子を開く数を最適化して、システム リソースの消費を削減します。
- TiFlash の再起動時に作成される不要な小さなファイルの数を最適化します
- データ ストレージの保存時の暗号化をサポート
- データ転送用の TLS をサポート
ツール
バグの修正
TiDB
builtinCastRealAsDecimalSig
関数でErrTruncate/Overflow
エラーが誤って処理されるために発生するshould ensure all columns have the same length
エラーを修正します#18967- パーティション化されたテーブル#18837で
pre_split_regions
テーブル オプションが機能しない問題を修正します。 - 大規模なトランザクションが途中で終了する可能性がある問題を修正します#18813
collation
関数を使用すると間違ったクエリ結果が得られる問題を修正#18735getAutoIncrementID()
関数がtidb_snapshot
セッション変数を考慮しないというバグを修正します。これにより、ダンパー ツールがtable not exist
エラー#18692で失敗する可能性があります。select a from t having t.a
#18434のような SQL ステートメントのunknown column error
を修正します- パーティション キーが整数型#18186の場合、64 ビットの符号なし型をハッシュ パーティション テーブルに書き込むとオーバーフローが発生し、予期しない負の数が返されるというpanicの問題を修正します。
char
関数の間違った動作を修正#18122ADMIN REPAIR TABLE
ステートメントが範囲パーティション#17988の式で整数を解析できないという問題を修正しますSET CHARSET
ステートメント#17289の間違った動作を修正します。collation
関数#17231の間違った結果につながる間違った照合順序設定によって引き起こされたバグを修正します。STR_TO_DATE
のフォーマット トークン '%r'、'%h' の処理が MySQL #18727の処理と矛盾する問題を修正cluster_info
テーブルの TiDB のバージョン情報が PD/TiKV のバージョン情報と一致しない問題を修正#18413- 悲観的なトランザクションの既存のチェックを修正します#19004
union select for update
を実行すると同時競合#19006が発生する可能性がある問題を修正apply
にPointGet
演算子#19046の子がある場合の間違ったクエリ結果を修正IndexLookUp
がApply
演算子#19496の内側にある場合に発生する誤った結果を修正します。anti-semi-join
クエリの誤った結果を修正する#19472BatchPointGet
#19456の誤った使用による誤った結果を修正UnionScan
がApply
演算子#19496の内側にある場合に発生する誤った結果を修正します。EXECUTE
ステートメントを使用して高価なクエリ ログ#17419を出力することによって引き起こされるpanicを修正します。- 結合キーが
ENUM
またはSET
#19235の場合のインデックス結合エラーを修正 - インデックス列#19358に
NULL
の値が存在する場合、クエリ範囲を構築できない問題を修正 - グローバル構成の更新によって発生するデータ競合の問題を修正します#17964
- 大文字のスキーマで文字セットを変更するときに発生するpanicの問題を修正します#19286
- ディスク スピル アクション中に一時ディレクトリを変更することによって発生する予期しないエラーを修正します#18970
- 10 #19131型の間違ったハッシュ キーを修正します。
PointGet
およびBatchPointGet
演算子がパーティション選択構文を考慮せず、誤った結果が得られる問題を修正します#19141Apply
演算子をUnionScan
演算子#19104と一緒に使用した場合の誤った結果を修正します。- インデックス付き仮想生成列が間違った値#17989を返すバグを修正
- ランタイム統計のロックを追加して、同時実行によるpanicを修正します#18983
TiKV
PD
ティフラッシュ
- データベースまたはテーブルの名前に特殊文字が含まれている場合、以前のバージョンからアップグレードした後、TiFlash が正常に起動できない問題を修正します。
- 初期化中に例外がスローされると、TiFlash プロセスが終了できない問題を修正します。
ツール