テナントのGTS(global timestamp service)サービスは、テナントシステムログストリームによって提供され、テナント内のすべてのOBServerノードにグローバルタイムスタンプを供給します。その可用性はテナント全体の可用性に直接影響するため、クラスタ内のノード数が多く、QPSが非常に高い場合は、GTSトラフィックとユーザートラフィックを分離し、GTSの応答時間を優先的に保証する必要があります。
このセクションでは、UNIT_NUM を使用して拡張し、GTS専用モードを有効にすることで、GTSトラフィックとユーザートラフィックを分離し、ユーザー業務の安定性を向上させる方法について説明します。
背景
現在のバージョンではGTS専用機能がサポートされており、この機能はテナントレベルの構成パラメータ enable_gts_standalone で制御され、デフォルトは無効です。必要に応じてGTS専用機能を有効にすることができ、有効になると、システムは自動的にGTSが配置されるシステムログストリームが一組のUnitを専有することを保証します。
シナリオ
現在、テナント tenant1 が存在し、そのローカリティは F@zone1,F@zone2,A、プライマリゾーンは zone1,zone2 です。テナントの zone1 および zone2 の UNIT_NUM はどちらも2であり、テナントのログストリームの分布状況は以下の図のとおりです。
手順
このシナリオでは、SYSログストリームが配置されているマシンがボトルネックに達した場合、業務の安定性を保証するために、まずテナントのすべてのリソースプールの UNIT_NUM を2から3に拡張し、次にSYSログストリーム(1号ログストリーム)を拡張後に追加された一組のUnitに移行・コピーし、1号ログストリームが一組のUnitを専有するようにします。その後、GTS専用モードを有効にします。
詳細な操作手順は以下のとおりです。
rootユーザーでクラスタのsysテナントにログインします。テナント内の自動リバランシング機能を無効にします。
テナントレベルの構成パラメータ enable_rebalance の値を
Falseに設定し、自動リバランシングのトリガーを防ぎます。ステートメントは以下のとおりです。obclient(root@sys)[(none)]> ALTER SYSTEM SET enable_rebalance = False TENANT = tenant1;(オプション)拡張前に、ゾーン内のノード数が不足している場合は、まずzone1とzone2にそれぞれ1つのノードを追加する必要があります。
ノードの追加に関する詳細な操作と説明については、ノードの追加を参照してください。
テナントのすべてのリソースプールの
UNIT_NUMを3に調整します。obclient(root@sys)[(none)]> ALTER RESOURCE TENANT tenant1 UNIT_NUM = 3;UNIT_NUMを使用した拡張の詳細な操作と説明については、Unit Numberの調整によるテナントの拡張と縮小を参照してください。ログストリームを変更します。
テナント
tenant1のSYSログストリーム(1号ログストリーム)のUNIT_GROUP(同種ゾーンモード)/UNIT_LIST(異種ゾーンモード)を拡張後に追加されたUnitのセットに変更し、1号ログストリームが一意のUnitセットを専有できるようにします。ステートメントは以下のとおりです。同種ゾーンモード異種ゾーンモードobclient(root@sys)[(none)]> ALTER SYSTEM MODIFY LS 1 UNIT_GROUP unit_group_id TENANT = tenant1;ここで、
unit_group_idは実際の環境に応じて、拡張後に追加されたUnitの対応するUNIT_GROUP_IDに置き換える必要があります。obclient(root@sys)[(none)]> ALTER SYSTEM MODIFY LS 1 UNIT_LIST (unit_id1,unit_id2) TENANT = tenant1;ここで、
unit_id1、unit_id2は実際の環境に応じて、拡張後に追加されたUnitのUNIT_IDに置き換える必要があります。ログストリームの変更に関する詳細な操作と説明については、ログストリームの変更を参照してください。
GTS専有機能を有効にします。
テナントレベル構成パラメータ enable_gts_standaloneの値を
Trueに設定します。ステートメントは以下のとおりです。obclient(root@sys)[(none)]> ALTER SYSTEM SET enable_rebalance = True TENANT = tenant1;テナント内の自動再バランシング機能を再び有効にします。
テナントレベル構成パラメータ enable_rebalanceの値を
Trueに設定します。これにより、自動再バランシングのトリガーを回避します。ステートメントは以下のとおりです。obclient(root@sys)[(none)]> ALTER SYSTEM SET enable_rebalance = True TENANT = tenant1;
このシナリオでは、テナントの UNIT_NUM を拡張し、GTS専有機能を有効にした後、ユーザーログストリームの UNIT_NUM は変更されません。SYSログストリーム(1号ログストリーム)のみが移行コピーされ、ログストリームの数の均等化やTransferは行われません。これにより、ユーザー業務の安定性が保証されます。テナントの最終的なログストリームの分布状況は以下の図のとおりです。