TiDB 2.1 RC1 リリースノート
2018 年 8月 24日に、TiDB 2.1 RC1 がリリースされました。TiDB 2.1 ベータ版と比較して、このリリースでは安定性、SQL オプティマイザ、統計情報、実行エンジンが大幅に改善されています。
TiDB
- SQLオプティマイザ
- 相関サブクエリの相関を解除した後に間違った結果が返される場合がある問題を修正#6972
Explainの出力結果を最適化する #7041 #7011IndexJoinの外側のテーブルの選択戦略を最適化する #7019PREPARE以外のステートメントのプランキャッシュを削除します #7040INSERT文が解析されず、場合によっては正しく実行されない問題を修正#7068IndexJoin結果が場合によっては正しくない問題を修正#7150- 一部のケースで一意インデックスを使用して
NULL値が見つからない問題を修正 #7163 - UTF-8 のプレフィックスインデックスの範囲計算の問題を修正 #7194
- 場合によっては
Project演算子を削除することによって結果が正しくなくなる問題を修正しました#7257 - 主キーが整数の場合に
USE INDEX(PRIMARY)を使用できない問題を修正 #7316 - 相関列を使用してインデックス範囲を計算できないケースがある問題を修正#7357
- SQL実行エンジン
- 一部のケースで夏時間が正しく計算されない問題を修正#6823
- 集計関数フレームワークをリファクタリングして、
StreamとHash集計オペレーターの実行効率を向上させる #6852 Hash集計オペレーターが場合によっては正常に終了できない問題を修正#6982BIT_AND/BIT_OR/BIT_XOR非整数データを正しく処理しない問題を修正#6994REPLACE INTO文の実行速度を最適化し、パフォーマンスを約10倍向上させます#7027- 時間型データのメモリ使用量を最適化し、時間型データのメモリ使用量を50%削減します#7043
UNION文で返される結果に符号付き整数と符号なし整数が混在する問題を修正しました。これは MySQL と互換性がありません。 #7112LPAD/RPAD/TO_BASE64/FROM_BASE64/REPEATでメモリ使用量が多すぎるために発生するpanic問題を修正しました #7171 #7266 #7409 #7431MergeJoin/IndexJoinがNULL値を処理するときの誤った結果を修正 #7255Outer Joinの誤った結果がいくつかのケースで発生する問題を修正#7288Data Truncatedのエラーメッセージを改善して、間違ったデータとテーブル内の対応するフィールドを見つけやすくします。 #7401- いくつかのケースで
decimalの誤った結果を修正#7001 #7113 #7202 #7208 - ポイント選択パフォーマンスを最適化する#6937
- 根本的な問題を回避するために分離レベル
Read Committedを禁止する #7211 - いくつかのケースで
LTRIM/RTRIM/TRIMの誤った結果を修正#7291 MaxOneRow演算子が返される結果が 1 行を超えないことを保証できない問題を修正しました#7375- コプロセッサー要求を範囲が多すぎる場合に分割する#7454
- 統計
- サーバ
- 権限情報の読み込みに関するバグを修正#6976
Killコマンドの権限チェックが厳しすぎる問題を修正#6954- いくつかのバイナリ数値型を削除する問題を修正#6922
- 出力ログを短くする #7029
mismatchClusterIDの問題を処理する #7053advertise-address設定項目を追加する #7078GrpcKeepAliveオプションを追加 #7100- 接続を追加するか、
Token回のモニター#7110 - データデコードパフォーマンスを最適化する#7149
INFORMMATION_SCHEMAのPROCESSLISTテーブルを追加します #7236- 権限検証で複数のルールがヒットした場合の順序の問題を修正 #7211
- エンコーディング関連のシステム変数のデフォルト値の一部を UTF-8 に変更 #7198
- スロークエリログにさらに詳細な情報を表示する#7302
- PDにtidbサーバ関連情報を登録し、HTTP API でこの情報を取得することをサポート #7082
- 互換性
- セッション変数
warning_countとerror_countサポート#6945 - システム変数読み取り時にチェックを
Scope追加 #6958 MAX_EXECUTION_TIME構文をサポートする #7012SET構文のより多くのステートメントをサポート #7020- システム変数設定する際に有効性チェックを追加する #7117
Prepare文のPlaceHolderの数の検証を追加する #7162set character_set_results = nullをサポート #7353flush status構文をサポートする #7369information_schemaのSETとENUM型の列サイズを修正 #7347- テーブルを作成するためのステートメントの
NATIONAL CHARACTER構文をサポートします #7378 LOAD DATA文のCHARACTER SET構文をサポートする #7391SETとENUMタイプの列情報を修正#7417CREATE USER文のIDENTIFIED WITH構文をサポートする #7402TIMESTAMP計算プロセス中に精度が失われる問題を修正 #7418SYSTEM以上の変数の妥当性検証をサポート#7196CHAR_LENGTH関数がバイナリ文字列を計算するときに誤った結果が発生する問題を修正しました #7410GROUP BYを含む文の誤った結果CONCATを修正します #7448DECIMAL型をSTRING型にキャストする際の不正確な型長の問題を修正しました #7451
- セッション変数
- DML
- DDL
Schemaが複製されているかどうかをDDLで判断する方法を改善し、場合によっては誤判断を回避する#7319- インデックス追加プロセスで
SHOW CREATE TABLE結果を修正 #6993 - 非制限
sql-modeでtext/blob/jsonのデフォルト値をNULLにすることを許可する #7230 - 場合によっては
ADD INDEX問題を修正#7142 UNIQUE-KEYインデックス追加操作の速度を大幅に向上 #7132- UTF-8 文字セットのプレフィックスインデックスの切り捨て問題を修正しました #7109
- 環境変数
tidb_ddl_reorg_priorityを追加して、add-index操作の優先順位を制御します。 #7116 information_schema.tables文のAUTO-INCREMENTの表示問題を修正 #7037admin show ddl jobs <number>コマンドをサポートし、指定された数のDDLジョブ出力をサポートします。 #7028- 並列DDLジョブ実行をサポート#6955
- テーブルパーティション (Experimental)
- トップレベルのパーティションをサポート
Range Partitionをサポート
PD
- 特徴
- バージョン管理メカニズムを導入し、互換性を保ちながらクラスタのローリングアップデートをサポートする
region merge機能を有効にするGetPrevRegionインターフェースをサポート- バッチでのリージョン分割をサポート
- GCセーフポイントの保存をサポート
- 改善点
- システムクロックの逆戻りによってTSO割り当てが影響を受ける問題を最適化します
- リージョンハートビートの処理パフォーマンスを最適化
- リージョンツリーのパフォーマンスを最適化
- ホットスポット統計の計算パフォーマンスを最適化
- APIインターフェースのエラーコードを返すことを最適化
- スケジュール戦略を制御するオプションを追加する
label特殊文字の使用を禁止する- スケジュールシミュレーターの改善
- pd-ctl の統計情報を使用してリージョンを分割する機能をサポート
- pd-ctl で
jq呼び出すことで JSON 出力のフォーマットをサポートします。 - etcd Raftステートマシンに関するメトリクスを追加する
- バグ修正
- Leaderを切り替えた後に名前空間が再ロードされない問題を修正しました
- 名前空間のスケジュールがスケジュール制限を超える問題を修正しました
- ホットスポットのスケジュールがスケジュール制限を超える問題を修正
- PDクライアント終了時に誤ったログが出力される問題を修正
- リージョンハートビートレイテンシーの誤った統計を修正
TiKV
- 特徴
- ホットリージョンへの書き込み操作によってリージョンが大きくなりすぎるのを避けるために
batch splitをサポートします - インデックススキャンの効率を向上させるために、行数に基づいてリージョンを分割することをサポートします。
- ホットリージョンへの書き込み操作によってリージョンが大きくなりすぎるのを避けるために
- パフォーマンス
LocalReaderを使用して読み取り操作をraftstoreスレッドから分離し、読み取りレイテンシーを低下させます。- MVCCフレームワークをリファクタリングし、メモリ使用量を最適化してスキャン読み取りパフォーマンスを改善します。
- I/O使用量を削減するために統計推定に基づいてリージョンを分割する機能をサポート
- ロールバックレコードへの連続書き込み操作によって読み取りパフォーマンスが影響を受ける問題を最適化します。
- プッシュダウン集約計算のメモリ使用量を削減する
- 改善点
- 多数の組み込み関数にプッシュダウンのサポートを追加し、文字セットのサポートを改善しました。
- GCワークフローを最適化し、GC速度を向上させ、GCがシステムに与える影響を軽減します。
prevoteを有効にすると、ネットワークが異常な場合のサービス回復が高速化されます- RocksDBログファイルの関連設定項目を追加します
scheduler_latchのデフォルト設定を調整する- tikv-ctl を使用して手動でデータを圧縮するときに、RocksDB の最下層のデータを圧縮するかどうかの設定をサポートします。
- TiKV の起動時に環境変数のチェックを追加する
- 既存のデータに基づいて
dynamic_level_bytesパラメータを動的に設定することをサポート - ログ形式のカスタマイズをサポート
- tikv-fail を tikv-ctl に統合する
- スレッドのI/Oメトリックを追加する
- バグ修正
- 小数点関連の問題を修正
gRPC max_send_message_lenが誤って設定される問題を修正region_sizeの設定ミスによる問題を修正