TiDB 3.0.4 リリースノート

発売日:2019年10月8日

TiDB バージョン: 3.0.4

TiDB アンシブル バージョン: 3.0.4

  • 新機能

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

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

    • デフォルト値のtxn-local-latches.enableからfalseを更新して、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が、データ複製中にダウンストリーム データベースでエラーを引き起こす可能性があるという問題を修正します。
    • TiDB で、カーソルを使用してPREPARE + EXECUTEの結果を取得すると、スロー クエリ ログが正しくない問題を修正します。
    • 隣接する小さなリージョンをマージできない 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()でインデックスが指定されていない場合は、インデックスを使用しないでください。
    • CMSketch統計のTopNレコードの数を厳密に制限して、ステートメント数がトランザクションのサイズに関する TiDB の制限を超えているためにANALYZEステートメントが失敗するという問題を修正します#11914
    • Updateステートメント#12483に含まれるサブクエリを変換するときに発生したエラーを修正します。
    • Limit 演算子をIndexLookUpReader実行ロジック#12378まで押し下げて、 select ... limit ... offset ...ステートメントの実行パフォーマンスを最適化します。
  • SQL 実行エンジン
    • PREPAREDステートメントが誤って実行された場合、ログに SQL ステートメントを出力します#12191
    • UNIX_TIMESTAMP関数を使用してパーティショニング#12169を実装する場合、パーティションのプルーニングをサポートします。
    • AUTO_INCREMENTMAX int64MAX uint64 #12162を誤って割り当てた場合にエラーが報告されない問題を修正
    • SHOW TABLE … REGIONSSHOW TABLE .. INDEX … REGIONSの構文にWHERE句を追加します#12123
    • SQL 実行がメモリ制限を超えた場合、リンクを切断する代わりにOut Of Memory Quotaエラーを返します#12127
    • JSON_UNQUOTE関数が JSON テキスト#11955を処理すると、誤った結果が返される問題を修正
    • 1 行目のAUTO_INCREMENT列に値を代入するとLAST INSERT IDが正しくない問題を修正 (例: insert into t (pk, c) values (1, 2), (NULL, 3) ) #12002
    • PREPARE#12351GROUPBY構文解析規則が正しくない問題を修正
    • ポイントクエリで権限チェックが正しくない問題を修正#12340
    • PREPAREステートメントの期間がsql_typeずつ監視レコードに表示されない問題を修正します#12331
    • ポイント クエリでのテーブルのエイリアスの使用をサポート (例: select * from t tmp where a = "aa" ) #12282
    • BIT型カラムに負数を挿入する際、負数を符号なしとして扱わないとエラーが発生する問題を修正#12423
    • 時間の誤った丸めを修正します (たとえば、 2019-09-11 11:17:47.9999996662019-09-11 11:17:48に丸める必要があります)。 #12258
    • 式ブロックリストの使用法を改善します (たとえば、 <Itに相当します。) #11975
    • 存在しない関数エラーのメッセージにデータベース接頭辞を追加します (例: [expression:1305]FUNCTION test.std_samp does not exist ) #12111
  • サーバ
    • スロー クエリ ログにPrev_stmtフィールドを追加して、最後のステートメントがCOMMIT #12180のときに前のステートメントを出力します。
    • 冗長なフィールドを削除して、スロー クエリ ログの出力を最適化する#12144
    • デフォルト値のtxn-local-latches.enableからfalseを更新して、TiDB #12095でローカル トランザクションの競合をチェックするデフォルトの動作を無効にします
    • 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
    • AUTO_INCREMENT列を含むインデックスが 2 つのインデックスから参照されると、 drop indexステートメントが失敗する問題を修正し#12344
  • モニター
    • connection_transient_failure_countのモニタリング メトリックを追加して、 tikvclient #12093の gRPC 接続エラーの数をカウントします

TiKV

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

PD

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

ツール

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

TiDB アンシブル

  • 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
エコシステム
TiDB
TiKV
TiSpark
Chaos Mesh
© 2022 PingCAP. All Rights Reserved.