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