TiDB3.0.0-rc.1リリースノート
発売日:2019年5月10日
TiDBバージョン:3.0.0-rc.1
TiDB Ansibleバージョン:3.0.0-rc.1
概要
2019年5月10日、TiDB3.0.0-rc.1がリリースされました。対応するTiDBAnsibleのバージョンは3.0.0-rc.1です。このリリースでは、TiDB 3.0.0-beta.1と比較して、安定性、使いやすさ、機能、SQLオプティマイザー、統計、および実行エンジンが大幅に改善されています。
TiDB
SQLオプティマイザー
- 列間の順序相関を使用して、コスト見積もりの精度を向上させます。ヒューリスティックパラメーター
tidb_opt_correlation_exp_factor
を導入して、相関を直接推定に使用できないシナリオのインデックススキャンの優先度を制御します。 #9839 - フィルタ#10053に関連する列がある場合、複合インデックスのアクセス条件を抽出するときに、インデックスのより多くのプレフィックス列に一致します。
- 動的計画法アルゴリズムを使用して、結合に参加しているテーブルの数が
tidb_opt_join_reorder_threshold
の値より少ない場合の結合操作の実行順序を指定します。 #8816 - アクセス条件として複合インデックスを使用する場合に、インデックス結合を構築する内部テーブルのインデックスのより多くのプレフィックス列に一致します#8471
- NULL値を持つ単一列インデックスの行数推定の精度を向上させます#9474
- 誤った実行を防ぐために、論理最適化フェーズで集計関数を削除する場合は、特に
GROUP_CONCAT
を処理します#9967 - フィルタが定数#9848の場合は、フィルタを結合演算子の子ノードに適切にプッシュダウンします。
- MySQL #10064との非互換性を防ぐために、論理最適化フェーズで列をプルーニングするときに
RAND()
などの一部の関数を特別に処理します。 - サポート
FAST ANALYZE
は、領域全体をスキャンするのではなく、領域をサンプリングすることで統計収集を高速化します。この機能は、変数tidb_enable_fast_analyze
によって制御されます。 #10258 - SQLステートメントの実行プランバインディングを実行することで実行の安定性を確保するSQLプラン管理をサポートします。この機能は現在ベータ版であり、SELECTステートメントのバインドされた実行プランのみをサポートします。実稼働環境での使用はお勧めしません。 #10284
- 列間の順序相関を使用して、コスト見積もりの精度を向上させます。ヒューリスティックパラメーター
実行エンジン
サーバ
- TiDBの起動時にのみDDL所有者にブートストラップの実行を許可する#10029
- 変数
tidb_skip_isolation_level_check
を追加して、トランザクション分離レベルをSERIALIZABLE3に設定するときに#10065がエラーを報告しないようにします。 - スローログ#10294の暗黙的なコミット時間とSQL実行時間をマージします
- #9721
GRANT ROLE
- TiDBを#9889で終了させる
whitelist
プラグインからのConnectionEvent
のエラーを修正します - トランザクション履歴に読み取り専用ステートメントを誤って追加する問題を修正します#9723
kill
ステートメントを改善して、SQLの実行を停止し、リソースをより迅速に解放します#9844- スタートアップオプション
config-check
を追加して、構成ファイル#9855の有効性を確認します。 - 厳密なSQLモードが無効になっている場合にNULLフィールドを挿入する有効性チェックを修正しました#10161
DDL
CREATE TABLE
のステートメントにpre_split_regions
のオプションを追加します。このオプションは、テーブル作成時にテーブル領域を事前分割して、テーブル作成後の大量の書き込みによって引き起こされる書き込みホットスポットを回避することをサポートします#10138- 一部のDDLステートメントの実行パフォーマンスを最適化する#10170
- フルテキストインデックスは13 #9821サポートされていないという警告を追加し
FULLTEXT KEY
- 古いバージョンのTiDB1のUTF8およびUTF8MB4文字セットの互換性の問題を修正し#9820
- 表#9868の
shard_row_id_bits
の潜在的なバグを修正します - テーブルの文字セットが変更された後、列の文字セットが変更されないというバグを修正します#9790
- 列のデフォルト値として
BINARY
を使用する場合のSHOW COLUMN
の潜在的なバグを修正しBIT
#9897 COLLATION
ステートメントSHOW FULL COLUMNS
にCHARSET
の説明を表示する際の互換性の問題を修正し#10007 。SHOW COLLATIONS
ステートメントがTiDB3でサポートされている照合のみをリストするという問題を修正し#10186
PD
- #1452をアップグレードする
- etcdとPDサーバーのログ形式を統合する
- PreVoteによるリーダーの選出に失敗する問題を修正
- 後続のリクエストのブロックを回避できない「提案」および「読み取り」リクエストの高速ドロップをサポート
- リースのデッドロックの問題を修正
- ホットストアがキーの誤った統計を作成する問題を修正します#1487
- 単一のPDノードからのPDクラスタの強制的な再構築をサポート#1485
regionScatterer
が無効な#1482を生成する可能性がある問題を修正しOperatorStep
MergeRegion
演算子#1495の短すぎるタイムアウトの問題を修正します- ホットリージョンスケジューリングを優先するサポート#1492
- PDサーバー側でTSO要求を処理する時間を記録するためのメトリックを追加します#1502
- 対応するストアIDとアドレスをストア#1506に関連するメトリックに追加します
GetOperator
サービスをサポート#1477- ストアが見つからないためにハートビートストリームでエラーを送信できない問題を修正します#1521
TiKV
エンジン
サーバ
RaftStore
- 構成可能な#4517
properties index distance
- 構成可能な#4517
コプロセッサー
- バッチインデックススキャンエグゼキュータ#4419を追加します
- ベクトル化された評価フレームワークを追加する#4322
- バッチエグゼキュータの実行サマリーフレームワークを追加する#4433
- 評価パニックを引き起こす可能性のある無効な列オフセットを回避するために、RPN式を作成するときに最大列を確認してください#4481
BatchLimitExecutor
を#4469- ReadPoolで元の
futures-cpupool
をtokio-threadpool
に置き換えて、コンテキストスイッチ#4486を減らします - バッチ集約フレームワークの追加#4533
BatchSelectionExecutor
を#4562- #4570攻撃関数を追加する
AVG
- #4575機能を追加
LogicalAnd
その他
- メモリアロケータ#4370としてサポート
tcmalloc
- メモリアロケータ#4370としてサポート
ツール
TiDB Binlog
- unsignedint型の主キー列のbinlogデータが負の場合のレプリケーション中止の問題を修正します#573
- ダウンストリームが
pb
の場合、圧縮オプションを提供しません。ダウンストリーム名をpb
から#559に変更しfile
- ローカルストレージでの非同期フラッシュを可能にする
storage.sync-log
の構成アイテムをPumpに追加します#509 - ポンプとドレイナー#495間の通信のトラフィック圧縮をサポートします
- Drainerに
syncer.sql-mode
の構成アイテムを追加して、さまざまなsql- #511でのDDLクエリの解析をサポートします。 - レプリケーションを必要としないテーブルの除外をサポートするために
syncer.ignore-table
の構成アイテムを追加します#520
雷
- 行IDまたはデフォルトの列値を使用して、ダンプファイルで欠落している列データを入力します#170
- SSTの一部がインポートに失敗した場合でも、インポートの成功が返される可能性があるというImporterのバグを修正します#4566
- SSTを#4412にアップロードする際のインポーターの速度制限をサポート
- サイズごとのテーブルのインポートをサポートして、大きなテーブルのChecksumとAnalyzeによるクラスタへの影響を減らし、Checksumと#156の成功率を向上させます。
- データソースファイルをtypes.Datumとして直接解析し、KVエンコーダーからの余分な解析オーバーヘッドを節約することで、LightningのSQLエンコーディングパフォーマンスを50%向上させます#145
- ログ形式を統合ログ形式に変更し#162
- 構成ファイルが欠落している場合に使用するコマンドラインオプションをいくつか追加します#157
sync-diff-inspector
TiDB Ansible
- より多くのTiKVモニタリングパネルをサポートし、Ansible、Grafana、およびPrometheus1のバージョンを更新し#727
- クラスタステータスを表示するためのサマリーダッシュボード
- 問題のトラブルシューティングのためのtrouble_shootingダッシュボード
- 開発者が問題を分析するための詳細ダッシュボード
- Kafkaバージョン#730のTiDBBinlogのダウンロードエラーの原因となるバグを修正します
- CentOS 7.0以降、およびRedHat7.0以降としてサポートされているオペレーティングシステムのバージョン制限を変更する#733
- ローリングアップデート中のバージョン検出モードをマルチコンカレント#736に変更します
- #740のドキュメントリンクを更新する
- 冗長なTiKV監視メトリックを削除します。トラブルシューティング用の新しいメトリックを追加する#735
table-regions.py
のスクリプトを最適化して、表#739ごとにリーダーの分布を表示します- Drainer1の構成ファイルを更新し#745
- SQLカテゴリごとにレイテンシを表示する新しいパネルでTiDBモニタリングを最適化する#747
- Lightning構成ファイルを更新し、
tidb_lightning_ctl
のスクリプトを追加します#1e946f8