TiDB 3.0.0-rc.1 リリースノート
リリース日:2019年5月10日
TiDB バージョン: 3.0.0-rc.1
TiDB アンシブル バージョン: 3.0.0-rc.1
概要
2019 年 5 月 10 日に、TiDB 3.0.0-rc.1 がリリースされました。対応する TiDB Ansible のバージョンは 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
を追加して、トランザクション分離レベルを SERIALIZABLE #10065に設定するときに TiDB がエラーを報告しないようにします。 - 暗黙的なコミット時間とスロー ログ#10294の SQL 実行時間をマージします。
- サポート
GRANT ROLE
#9721 - TiDB を終了させる
whitelist
プラグインからのConnectionEvent
のエラーを修正します#9889 - 読み取り専用ステートメントをトランザクション履歴に誤って追加する問題を修正します#9723
kill
ステートメントを改善して、SQL の実行を停止し、リソースをより迅速に解放します#9844- 起動オプションを追加する
config-check
設定ファイルの有効性をチェックする#9855 - 厳密な SQL モードが無効になっている場合の NULL フィールドの挿入の有効性チェックを修正します#10161
DDL
CREATE TABLE
のステートメントにpre_split_regions
のオプションを追加します。このオプションは、テーブル作成後の大量の書き込みによって発生する書き込みホット スポットを回避するために、テーブル作成時にテーブルリージョンの事前分割をサポートします#10138- 一部の DDL ステートメントの実行パフォーマンスを最適化する#10170
FULLTEXT KEY
#9821ではフルテキスト インデックスがサポートされていないという警告を追加します。- 古いバージョンの TiDB #9820での UTF8 および UTF8MB4 文字セットの互換性の問題を修正します。
- 表#9868の
shard_row_id_bits
の潜在的なバグを修正 - テーブルの文字セットを変更した後、列の文字セットが変更されないバグを修正#9790
- 列のデフォルト値#9897として
BINARY
/BIT
を使用する場合のSHOW COLUMN
の潜在的なバグを修正します SHOW FULL COLUMNS
ステートメント#10007でCHARSET
/COLLATION
の説明を表示する際の互換性の問題を修正します。SHOW COLLATIONS
ステートメントが TiDB #10186でサポートされている照合のみをリストする問題を修正します。
PD
- ETCD #1452のアップグレード
- etcdとPDサーバーのログフォーマットを統一
- PreVote によるリーダーの選出に失敗する問題を修正
- 後続のリクエストのブロックを回避するために、失敗する「提案」および「読み取り」リクエストの迅速なドロップをサポートします
- Lease のデッドロックの問題を修正
- ホット ストアでキーの統計が正しくない問題を修正します#1487
- 単一の PD ノードから PD クラスターを強制的に再構築するサポート#1485
regionScatterer
が無効なOperatorStep
#1482を生成する可能性がある問題を修正MergeRegion
オペレーター#1495のタイムアウトが短すぎる問題を修正- ホット リージョン スケジューリングを優先するサポート#1492
- PDサーバー側での TSO 要求の処理時間を記録するためのメトリックを追加します#1502
- 対応する店舗 ID と住所を、店舗に関連するメトリクスに追加します#1506
GetOperator
サービス#1477をサポート- ストアが見つからないため、Heartbeat ストリームでエラーを送信できない問題を修正します#1521
TiKV
エンジン
サーバ
ラフトストア
- 設定可能なサポート
properties index distance
#4517
- 設定可能なサポート
コプロセッサー
- バッチ インデックス スキャン エグゼキューター#4419の追加
- ベクトル化された評価フレームワーク#4322を追加
- バッチ executor #4433の実行概要フレームワークを追加します。
- 評価panicを引き起こす可能性のある無効な列オフセットを回避するために、RPN 式を作成するときに最大列を確認してください#4481
BatchLimitExecutor
#4469を追加- ReadPool の元の
futures-cpupool
をtokio-threadpool
に置き換えて、コンテキスト スイッチ#4486を減らします。 - バッチ集計フレームワーク#4533を追加する
BatchSelectionExecutor
#4562を追加- 一括攻撃機能追加
AVG
#4570 - RPN機能追加
LogicalAnd
#4575
その他
- メモリ アロケータとして
tcmalloc
をサポート#4370
- メモリ アロケータとして
ツール
Binlog
- unsigned int 型の主キー列の binlog データが負の#573の場合、レプリケーションが中止される問題を修正します。
- ダウンストリームが
pb
の場合、圧縮オプションを提供しません。下流の名前をpb
からfile
#559に変更します - ローカル ストレージ#509での非同期フラッシュを可能にする
storage.sync-log
の構成項目をPumpに追加します。 - PumpとDrainer #495間の通信のトラフィック圧縮をサポート
- 異なる sql-mode #511での DDL クエリの解析をサポートするために、 Drainerに
syncer.sql-mode
の構成項目を追加します。 syncer.ignore-table
の構成項目を追加して、レプリケーションを必要としないテーブルの除外をサポートします#520
雷
- 行 ID またはデフォルトの列値を使用して、ダンプ ファイルに含まれていない列データを入力します#170
- SST の一部のインポートに失敗した場合でも、インポートの成功が返される可能性があるというインポーターのバグを修正します#4566
- SST を TiKV #4412にアップロードする際の Importer での速度制限のサポート
- サイズごとのテーブルのインポートをサポートして、大きなテーブルのチェックサムと分析によってもたらされるクラスターへの影響を軽減し、チェックサムと分析#156の成功率を向上させます
- データ ソース ファイルをタイプとして直接解析することで、Lightning の SQL エンコーディングのパフォーマンスを 50% 向上させ#145 。
- ログ形式を統合ログ形式 #162に変更
- 構成ファイルが見つからない場合に使用するコマンド ライン オプションをいくつか追加し#157 。
同期差分インスペクター
TiDB アンシブル
- より多くの TiKV 監視パネルをサポートし、Ansible、Grafana、Prometheus #727のバージョンを更新
- クラスターのステータスを表示するための概要ダッシュボード
- 問題をトラブルシューティングするための trouble_shooting ダッシュボード
- 開発者が問題を分析するための詳細ダッシュボード
- Kafka バージョン#730の TiDB Binlogのダウンロードに失敗するバグを修正
- CentOS 7.0 以降、および Red Hat 7.0 以降#733としてサポートされているオペレーティング システムのバージョン制限を変更します。
- ローリング更新中のバージョン検出モードをマルチコンカレント#736に変更する
- README #740のドキュメント リンクを更新
- 冗長な TiKV モニタリング メトリックを削除します。トラブルシューティング用の新しいメトリックを追加します#735
table-regions.py
のスクリプトを最適化して、表#739ごとにリーダーの分布を表示します- Drainer #745の構成ファイルを更新する
- SQL カテゴリ別にレイテンシを表示する新しいパネルで TiDB 監視を最適化します#747
- Lightning 構成ファイルを更新し、
tidb_lightning_ctl
スクリプト#1e946f8を追加します。