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 partitionDDL ステートメントのリージョンスケジューリングを高速化する - 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演算子の子がある場合の間違ったクエリ結果を修正#19046IndexLookUpApply演算子#19496の内側にある場合に発生する誤った結果を修正しました。anti-semi-joinクエリの間違った結果を修正#19472BatchPointGet#19456の誤った使用によって引き起こされる誤った結果を修正UnionScanApply演算子#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プロセスが終了できない問題を修正
ツール