重要
このページは英語版のページを機械翻訳しています。原文はこちらからご覧ください。

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
  • 実行エンジン

    • IndexReader TableReaderおよびIndexLookupReader #10003 )でのメモリ使用量の追跡と制御をサポートします。
    • コプロセッサー内のタスクの数、実行/待機時間の平均/最長/ 90%、実行時間または待機時間が最も長いTiKVのアドレスなど、コプロセッサータスクに関する詳細情報を低速ログに表示することをサポートします#10165
    • プレースホルダーなしで準備されたDDLステートメントをサポートする#10144
  • サーバ

    • TiDBの起動時にのみDDL所有者にブートストラップの実行を許可する#10029
    • 変数tidb_skip_isolation_level_checkを追加して、トランザクション分離レベルをSERIALIZABLE3に設定するときに#10065がエラーを報告しないようにします。
    • スローログ#10294の暗黙的なコミット時間とSQL実行時間をマージします。
      • SQLロールのサポート(RBAC権限管理)
      • #10016 SHOW GRANT
      • #9949 SET DEFAULT ROLE
    • #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
    • #9868shard_row_id_bitsにある潜在的なバグを修正します
    • テーブルの文字セットが変更された後、列の文字セットが変更されないというバグを修正しました#9790
    • 列のデフォルト値としてBINARYを使用する場合のSHOW COLUMNの潜在的なバグを修正しBIT #9897
    • COLLATIONステートメントSHOW FULL COLUMNSCHARSETの説明を表示する際の互換性の問題を修正し#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

  • エンジン

    • 読み取りトラフィックで誤った統計を引き起こす可能性がある問題を修正します#4436
    • 範囲#4503を削除するときにプレフィックスエクストラクタpanicを引き起こす可能性がある問題を修正します
    • メモリ管理を最適化して、 #4537のメモリ割り当てとコピーを削減しIterator Key Bound Option
    • 学習者のログギャップを考慮しないと、場合によってはpanicが発生する可能性があるという問題を修正します#4559
    • 異なる#4612間でのblock cache column families共有をサポート
  • サーバ

    • #4473のコンテキストスイッチオーバーヘッドを削減しbatch commands
    • シークイテレータステータスの有効性を確認する#4470
  • RaftStore

    • 構成可能なproperties index distance#4517
  • コプロセッサー

    • バッチインデックススキャンエグゼキュータ#4419を追加します
    • ベクトル化された評価フレームワークを追加する#4322
    • バッチエグゼキュータの実行サマリーフレームワークを追加する#4433
    • 評価panicを引き起こす可能性のある無効な列オフセットを回避するために、RPN式を作成するときに最大列を確認してください#4481
    • BatchLimitExecutor#4469
    • ReadPoolで元のfutures-cpupooltokio-threadpoolに置き換えて、コンテキストスイッチ#4486を減らします
    • バッチ集約フレームワークの追加#4533
    • BatchSelectionExecutor#4562
    • #4570攻撃機能を追加するAVG
    • #4575機能の追加LogicalAnd
  • その他

    • メモリアロケータ#4370としてサポートtcmalloc

ツール

  • TiDB Binlog

    • unsignedint型の主キー列のbinlogデータが負の場合のレプリケーション中止の問題を修正します#573
    • ダウンストリームがpbの場合、圧縮オプションを提供しません。ダウンストリーム名をpbから#559に変更しfile
    • ローカルストレージでの非同期フラッシュを可能にするstorage.sync-logの構成アイテムをPumpに追加します#509
    • PumpとDrainer#495間の通信のトラフィック圧縮をサポートする
    • 異なるSQLモード#511でのDDLクエリの解析をサポートするために、 Drainerにsyncer.sql-modeの構成アイテムを追加します。
    • レプリケーションを必要としないテーブルの除外をサポートするために、 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

    • チェックポイントをサポートして検証ステータスを記録し、再起動後に最後に保存したポイントから検証を続行します#224
    • チェックサム#215を計算してデータの整合性をチェックするには、 only-use-checksumの構成アイテムを追加します

TiDB Ansible

  • より多くのTiKVモニタリングパネルをサポートし、Ansible、Grafana、およびPrometheus1のバージョンを更新し#727
    • クラスタステータスを表示するためのサマリーダッシュボード
    • 問題のトラブルシューティングのためのtrouble_shootingダッシュボード
    • 開発者が問題を分析するための詳細ダッシュボード
  • Kafkaバージョン#730のBinlogのダウンロード失敗の原因となるバグを修正します
  • CentOS 7.0以降、およびRedHat7.0以降としてサポートされているオペレーティングシステムのバージョン制限を変更する#733
  • ローリングアップデート中のバージョン検出モードをマルチコンカレント#736に変更します
  • #740のドキュメントリンクを更新する
  • 冗長なTiKV監視メトリックを削除します。トラブルシューティングのための新しいメトリックを追加する#735
  • table-regions.pyのスクリプトを最適化して、表#739ごとにリーダーの分布を表示します
  • Drainerの構成ファイルを更新し#745
  • SQLカテゴリごとにレイテンシを表示する新しいパネルでTiDBモニタリングを最適化する#747
  • Lightning構成ファイルを更新し、 tidb_lightning_ctlのスクリプトを追加します#1e946f8