tencent cloud

フィードバック

CATSトランザクションスケジューリング

最終更新日:2022-03-07 15:52:44

    機能の説明

    TXSQLに新たな並列トランザクションスケジューリングアルゴリズム(Contention-Aware Transaction Scheduling,CATS)を追加し、直接ロック競合を自動的に感知して、トランザクションの優先順位に基づいてトランザクションをスケジューリングし実行できるようになりました。
    MySQLの従来の並列トランザクションはFIFO(First-In-First-Out)ルールによってトランザクションの実行順を決定します。一方CATSトランザクションスケジューリングアルゴリズムの主な原理は、トランザクションのロック保持状況に基づいて並列トランザクションの競合状況を判断するとともに、トランザクション実行の優先順位を決定し、その後優先順位に従ってトランザクションの実行順を割り振ることで、システムのトランザクション処理のスループットを向上させるものです。

    サポートするバージョン

    • カーネルバージョン MySQL 5.7 20190230およびそれ以降
    • カーネルバージョン MySQL 8.0 20200630およびそれ以降

    ユースケース

    主に並列性が高く、かつロック競合が比較的著しいケースに適します。

    パフォーマンスデータ

    並列性が高く、ロック競合が著しいケースで、TPSパフォーマンスが50%以上向上しました。

    • テスト方法:sysbench-oltp_read_writeシーン(分離レベルRR、テーブル数8、10MBデータ、paretoランダム化方式)
    • テスト環境:32コア128GBオンラインインスタンス
    スレッド数 FCFS(FIFO) CATS パフォーマンス向上
    128 11999 12005 0%
    256 6609 10137 53%
    512 3453 9365 171%
    1024 2196 7015 219%

    利用説明

    MySQLバージョン5.7では、グローバルパラメータinnodb_trx_schedule_algorithmによってトランザクションスケジューリングのアルゴリズムを指定することができます。このパラメータのデフォルト値はautoです。
    このアルゴリズムには次の3種類があります。

    • auto:自動。現在のシステム状況に基づいて自動的に調整します。ロック待機スレッド数が32を超えるとCATSスケジューリングアルゴリズムを使用し、それ以外の場合はFCFSアルゴリズムを使用します。
    • fcfs:先着順サービスアルゴリズム。
    • cats: 競合検知スケジューリングアルゴリズム。
    パラメータ名 動的 タイプ デフォルト パラメータ値範囲 説明
    innodb_trx_schedule_algorithm yes string auto [auto,fcfs,cats] トランザクション待機スケジューリングアルゴリズム
    説明:

    ユーザーは現在、上記パラメータのパラメータ値を直接変更することはできません。変更する場合は、チケットを提出から変更することができます。

    MySQL バージョン8.0ではautoアルゴリズムが常に用いられ、設定はできません。

    お問い合わせ

    カスタマーサービスをご提供できるため、ぜひお気軽にお問い合わせくださいませ。

    テクニカルサポート

    さらにサポートが必要な場合は、サポートチケットを送信して弊社サポートチームにお問い合わせください。24時間365日のサポートをご提供します。

    電話サポート(24 時間365日対応)