テナントのGTS(global timestamp service)サービスは、テナントのシステムログストリームによって提供され、テナント内のすべてのOBServerノードにグローバルタイムスタンプを供給します。その可用性はテナント全体の可用性に直接影響するため、クラスタ内のノード数が多く、QPSが非常に高い場合は、GTSトラフィックとユーザートラフィックを分離し、GTSの応答時間を優先的に保証する必要があります。
このセクションでは、UNIT_NUM を拡張してGTS専用モードを有効にする方法について説明し、GTSトラフィックとユーザートラフィックを分離することで、ユーザー業務の安定性を向上させる方法を紹介します。
背景
現在のバージョンでは、GTS専有機能がサポートされています。この機能はテナントレベルのパラメータ enable_gts_standalone で制御され、デフォルトは無効です。必要に応じてこの機能を有効にすることができ、有効になるとシステムは自動的に、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は行われないため、ユーザー業務の安定性が確保されます。テナントの最終的なログストリームの分布状況は以下の図のとおりです。
