TiDB 3.0.4 リリースノート

発売日:2019年10月8日

TiDB バージョン: 3.0.4

TiDB Ansible バージョン: 3.0.4

  • 新機能

    • SQL レベルでパフォーマンスの問題をトラブルシューティングするには、 performance_schema.events_statements_summary_by_digestシステム テーブルを追加します。
    • TiDB のSHOW TABLE REGIONS構文にWHERE句を追加します。
    • Reparoにworker-counttxn-batch設定項目を追加して回復速度を制御します
  • 改善点

    • TiKV でバッチリージョン分割コマンドと空の分割コマンドをサポートし、分割パフォーマンスを向上させます
    • TiKV の RocksDB のダブルリンク リストをサポートし、逆スキャンのパフォーマンスを向上させます。
    • クラスターの状態をより適切に診断するために、TiDB Ansible に 2 つのパフォーマンス ツールiosnoopfuncslowerを追加します。
    • 冗長なフィールドを削除して、TiDB の低速クエリ ログの出力を最適化します。
  • 変化した行動

    • デフォルト値のtxn-local-latches.enablefalseに更新して、TiDB でのローカル トランザクションの競合をチェックするデフォルトの動作を無効にします。
    • TiDB にグローバル スコープのtidb_txn_modeシステム変数を追加し、悲観的ロックの使用を許可します。 TiDB は依然としてデフォルトで楽観的ロックを採用していることに注意してください。
    • TiDB スロー クエリ ログのIndex_idsフィールドをIndex_namesに置き換えて、スロー クエリ ログの使いやすさを向上させます。
    • TiDB 構成ファイルにsplit-region-max-numパラメータを追加して、 SPLIT TABLE構文で許可されるリージョンの最大数を変更します。
    • SQL の実行がメモリ制限を超えた場合、リンクを切断する代わりにOut Of Memory Quotaエラーを返します。
    • 誤操作を避けるために、TiDB の列のAUTO_INCREMENT属性を削除しないようにします。この属性を削除するには、システム変数tidb_allow_remove_auto_incを変更します。
  • 修正された問題

    • コメント化されていない TiDB 固有の構文PRE_SPLIT_REGIONSにより、データ レプリケーション中にダウンストリーム データベースでエラーが発生する可能性がある問題を修正します。
    • カーソルを使用してPREPARE + EXECUTEの結果を取得するときにスロー クエリ ログが正しくないという TiDB の問題を修正しました。
    • 隣接する小さなリージョンをマージできないというPDの問題を修正
    • プロセスが長時間実行されると、アイドル状態のクラスターでのファイル記述子のリークにより、TiKV プロセスが異常終了する可能性があるという TiKV の問題を修正しました。
  • 貢献者

    このリリースにご協力いただいたコミュニティの次の貢献者に感謝します。

TiDB

  • SQLオプティマイザー
    • フィードバック#12170で分割すると無効なクエリ範囲が発生する場合がある問題を修正
    • 結果に無効なキーが含まれている場合、エラーを返すのではなく、ステートメントSHOW STATS_BUCKETSで返されたエラーを 16 進数で表示します#12094
    • クエリにSLEEP関数 (たとえば、 select 1 from (select sleep(1)) t;) ) が含まれている場合、列のプルーニングによってクエリ#11953中に無効なsleep(1)が発生する問題を修正します。
    • クエリがテーブル データではなく列数のみに関係する場合は、インデックス スキャンを使用して IO を削減します#12112
    • MySQL #12100との互換性を保つために、 use index()でインデックスが指定されていない場合はインデックスを使用しないでください。
    • TopN数が TiDB のトランザクション サイズ制限を超えているため、ステートメントANALYZEが失敗する問題を修正するために、統計CMSketch 1 レコードの数を厳密に制限します#11914
    • Updateステートメント#12483に含まれるサブクエリの変換時に発生したエラーを修正
    • Limit 演算子をIndexLookUpReader実行ロジックにプッシュダウンすることで、 select ... limit ... offset ...ステートメントの実行パフォーマンスを最適化します#12378
  • SQL実行エンジン
    • PREPAREDステートメントが誤って実行された場合、ログに SQL ステートメントを出力します#12191
    • UNIX_TIMESTAMP関数を使用してパーティショニング#12169を実装する場合、パーティション プルーニングをサポートします。
    • AUTO_INCREMENT MAX int64MAX uint64誤って割り当てた場合にエラーが報告されない問題を修正#12162
    • SHOW TABLE … REGIONSおよびSHOW TABLE .. INDEX … REGIONS構文にWHERE句を追加します#12123
    • SQL の実行がメモリ制限#12127を超えた場合、リンクを切断する代わりにOut Of Memory Quotaエラーを返します。
    • JSON_UNQUOTE関数が JSON テキスト#11955を処理すると、誤った結果が返される問題を修正
    • 最初の行のAUTO_INCREMENT列に値を割り当てるときにLAST INSERT IDが正しくない問題を修正します (たとえば、 insert into t (pk, c) values (1, 2), (NULL, 3) ) #12002
    • PREPAREステートメントGROUPBYの解析ルールが正しくない問題を修正します#12351
    • ポイントクエリ#12340における権限チェックが正しくない問題を修正
    • 監視レコード#12331にステートメントPREPAREsql_typeによる期間が表示されない問題を修正
    • ポイント クエリでのテーブルのエイリアスの使用をサポート (例: select * from t tmp where a = "aa" ) #12282
    • BIT型列#12423に負の数値を挿入する際、負の値を符号なしとして扱えない場合に発生するエラーを修正
    • 時刻の誤った丸めを修正します (たとえば、 2019-09-11 11:17:47.999999666 2019-09-11 11:17:48に四捨五入する必要があります) #12258
    • 式ブロックリストの使用法を調整します (たとえば、 <Itと同等です)。 #11975
    • 存在しない関数エラーのメッセージにデータベース接頭辞を追加します (例: [expression:1305]FUNCTION test.std_samp does not exist ) #12111
  • サーバ
    • スロークエリログにPrev_stmtフィールドを追加して、最後のステートメントがCOMMIT #12180の場合に前のステートメントを出力します。
    • 冗長なフィールドを削除して、低速クエリ ログの出力を最適化します#12144
    • TiDB #12095でローカル トランザクションの競合をチェックするデフォルトの動作を無効にするには、デフォルト値のtxn-local-latches.enablefalseに更新します。
    • TiDB スロー クエリ ログのIndex_idsフィールドをIndex_namesに置き換えて、スロー クエリ ログの使いやすさを向上させます#12061
    • TiDB にグローバル スコープのシステム変数tidb_txn_modeを追加し、悲観的ロック#12049の使用を許可します。
    • スロー クエリ ログにBackoffフィールドを追加して、2PC #12335のコミット フェーズでバックオフ情報を記録します。
    • カーソルを使用してPREPARE + EXECUTEの結果を取得する場合 (例: PREPARE stmt1FROM SELECT * FROM t WHERE a > ?; EXECUTE stmt1 USING @variable )、スロー クエリのログが正しくない問題を修正します#12392
    • サポートtidb_enable_stmt_summary .この機能を有効にすると、TiDB は SQL ステートメントをカウントし、システム テーブルを使用して結果をクエリできるようになりますperformance_schema.events_statements_summary_by_digest #12308
    • tikv-client の一部のログのレベルを調整します (たとえば、ログ レベルbatchRecvLoop failsERRORからINFOに変更します) #12383
  • DDL
    • tidb_allow_remove_auto_inc変数を追加します。列のAUTO INCREMENT属性の削除はデフォルトで無効になっています#12145
    • コメント化されていない TiDB 固有の構文PRE_SPLIT_REGIONSにより、データ レプリケーション中にダウンストリーム データベースでエラーが発生する可能性がある問題を修正します#12120
    • 設定ファイルにsplit-region-max-num変数を追加して、許容されるリージョンの最大数を調整できるようにします#12097
    • リージョンを複数のリージョンに分割することをサポートし、リージョンスキャッタリング中のタイムアウトの問題を修正します#12343
    • 2 つのインデックスによって参照されるAUTO_INCREMENT列を含むインデックスが存在する場合、 drop indexステートメントが失敗する問題を修正します#12344
  • モニター
    • connection_transient_failure_count監視メトリクスを追加して、 tikvclient #12093の gRPC 接続エラーの数をカウントします。

TiKV

  • Raftstore
    • Raftstore が空のリージョン#5414のキーの数を不正確にカウントする問題を修正
    • RocksDB のダブルリンクリストをサポートし、逆スキャン#5368のパフォーマンスを向上させます。
    • バッチリージョン分割コマンドと空の分割コマンドをサポートして、分割パフォーマンスを向上させます#5470
  • サーバ
    • -Vコマンドの出力形式が2.X #5501の形式と一致しない問題を修正
    • Titan を 3.0 ブランチ#5517の最新バージョンにアップグレードします。
    • grpcio を v0.4.5 にアップグレードする#5523
    • gRPC コアダンプの問題を修正し、OOM #5524を回避するために共有メモリをサポートします。
    • アイドル状態のクラスターでのファイル記述子のリークにより、プロセスが長時間実行されると TiKV プロセスが異常終了する可能性があるという TiKV の問題を修正します#5567
  • ストレージ
    • txn_heart_beat TiDB の悲観的ロックを MySQL の悲観的ロックと可能な限り一致させるための API をサポートします#5507
    • 一部の状況でポイントクエリのパフォーマンスが低下する問題を修正#5495 #5463

PD

  • 隣接する小さなリージョンを結合できない問題を修正#1726
  • pd-ctlのTLS有効化パラメータが無効である問題を修正#1738
  • PD オペレーターが誤って削除されるというスレッド セーフティの問題を修正します#1734
  • リージョン同期器#1739の TLS をサポート

ツール

  • TiDBBinlog
    • Reparoにworker-counttxn-batch設定項目を追加して回復速度を制御する#746
    • Drainerのメモリ使用量を最適化し、同時実行の効率を向上#737
  • TiDB Lightning
    • チェックポイントからデータを再インポートすると、 TiDB Lightning がpanicを引き起こす可能性がある問題を修正します#237
    • AUTO_INCREMENTのアルゴリズムを最適化してAUTO_INCREMENT列がオーバーフローするリスクを軽減します#227

TiDB Ansible

  • TiSpark を v2.2.0 にアップグレードする#926
  • TiDB 構成項目のデフォルト値をpessimistic_txnからtrueに更新します#933
  • システムレベルの監視メトリクスをnode_exporter #938に追加します
  • TiDB Ansible に 2 つのパフォーマンス ツールiosnoopfuncslowerを追加して、クラスターの状態をより適切に診断します#946
  • パスワードの有効期限が切れた場合などの長い待ち時間に対処するために、raw モジュールをシェル モジュールに置き換えます#949
  • TiDB 構成項目txn_local_latchesのデフォルト値をfalseに更新します。
  • Grafana ダッシュボードの監視メトリクスとアラート ルールを最適化する#962 #963 #969
  • 導入およびアップグレードの前に構成ファイルを確認してください#934 #972

このページは役に立ちましたか?

Playground
新規
登録なしで TiDB の機能をワンストップでインタラクティブに体験できます。
製品
TiDB Cloud
TiDB
価格
PoC お問い合わせ
エコシステム
TiKV
TiFlash
OSS Insight
© 2024 PingCAP. All Rights Reserved.
Privacy Policy.