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