TiDB 4.0.5 リリースノート
発売日:2020年8月31日
TiDB バージョン: 4.0.5
互換性の変更
TiDB
新機能
TiKV
- エラー#8387のエラー コードを定義する
TiFlash
- 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
- 特定のキー範囲#2687のリージョンスケジュールを優先するリージョンHTTP API をサポートします。
- リージョン分散#2684後のリーダーの分布を改善します。
- TSO リクエスト#2678のテストとログを追加します。
- リージョンのリーダーが変更された後の無効なキャッシュ更新を回避する#2672
store.GetLimit
墓石ストア#2743を返せるようにするオプションを追加します。- PD リーダーとフォロワー間のリージョンリーダーの変更の同期をサポート#2795
- GC セーフポイント サービスをクエリするためのコマンドを追加します#2797
- パフォーマンスを向上させるためにフィルターの
region.Clone
呼び出しを置き換えます#2801 - 大規模クラスター#2848のパフォーマンスを向上させるために、リージョンフロー キャッシュの更新を無効にするオプションを追加します。
TiFlash
- CPU、I/O、RAM 使用率のメトリクスとstorageエンジンのメトリクスを表示するための Grafana パネルを追加します。
- Raftログの処理ロジックを最適化することで I/O 操作を削減します。
- ブロックされた
add partition
DDL ステートメントのリージョンスケジューリングを高速化する - DeltaTree でデルタ データの圧縮を最適化し、読み取りおよび書き込みの増幅を削減します。
- 複数のスレッドを使用してスナップショットを前処理することにより、リージョンスナップショットを適用するパフォーマンスを最適化します。
- TiFlashの読み取り負荷が低いときに開くファイル記述子の数を最適化し、システム リソースの消費を削減します。
- TiFlash の再起動時に作成される不要な小さなファイルの数を最適化します。
- データstorageの保存時の暗号化をサポート
- データ転送にTLSをサポート
ツール
バグの修正
TiDB
builtinCastRealAsDecimalSig
関数#18967でErrTruncate/Overflow
エラーが正しく処理されないために発生するshould ensure all columns have the same length
エラーを修正pre_split_regions
テーブル オプションがパーティションテーブル#18837で機能しない問題を修正- 大規模なトランザクションが途中で終了する可能性がある問題を修正します#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
関数#18122の誤った動作を修正します。ADMIN REPAIR TABLE
ステートメントが範囲パーティション#17988の式内の整数を解析できない問題を修正します。SET CHARSET
ステートメント#17289の誤った動作を修正します。collation
関数#17231の間違った結果につながる間違った照合順序設定によって引き起こされるバグを修正しました。STR_TO_DATE
のフォーマット トークン '%r'、'%h' の処理が MySQL #18727の処理と矛盾する問題を修正- TiDB のバージョン情報が
cluster_info
表#18413の PD/TiKV のバージョン情報と一致しない問題を修正 - 悲観的トランザクションの既存のチェックを修正します#19004
union select for update
を実行すると同時レース#19006が発生する可能性がある問題を修正apply
にPointGet
演算子の子がある場合の間違ったクエリ結果を修正#19046IndexLookUp
Apply
演算子#19496の内側にある場合に発生する誤った結果を修正しました。anti-semi-join
クエリの間違った結果を修正#19472BatchPointGet
#19456の誤った使用によって引き起こされる誤った結果を修正UnionScan
Apply
演算子#19496の内側にある場合に発生する誤った結果を修正しました。EXECUTE
ステートメントを使用して高価なクエリ ログを出力することによって引き起こされるpanicを修正します#17419- 結合キーが
ENUM
またはSET
の場合のインデックス結合エラーを修正#19235 - インデックス列#19358に
NULL
値が存在する場合、クエリ範囲を構築できない問題を修正 - グローバル構成#17964の更新によって発生するデータ競合の問題を修正します。
- 大文字のスキーマ#19286の文字セットを変更するときに発生するpanic問題を修正します。
- ディスク流出アクション#18970中に一時ディレクトリを変更することによって引き起こされる予期しないエラーを修正しました。
- 10 進数タイプ#19131の間違ったハッシュ キーを修正
PointGet
およびBatchPointGet
演算子がパーティション選択構文を考慮せず、誤った結果が得られる問題を修正します#19141Apply
演算子をUnionScan
演算子と併用した場合の誤った結果を修正しました#19104- インデックス付きの仮想生成列が間違った値#17989を返す原因となるバグを修正
- 実行時統計のロックを追加して、同時実行によって引き起こされるpanicを修正します#18983
TiKV
PD
TiFlash
- データベースまたはテーブルの名前に特殊文字が含まれている場合、以前のバージョンからアップグレードした後、 TiFlash が正常に起動できない問題を修正
- 初期化中に例外がスローされた場合、 TiFlashプロセスが終了できない問題を修正
ツール