ロードシェアは、クラスタシステムにおいて複数のノードでトランザクションを並列に処理する機能です。
ロードシェアを行うための運用を、ロードシェア運用と呼びます。
Symfoware Serverでは、ロードシェアを実現し、これにより高拡張性に対応するシステムを構築することができます。また、同時に高性能、高可用性にも対応しています。
ロードシェア運用は、PRIMECLUSTERのクラスタ制御の下で動作します。これは、クラスタシステムに関する運用および操作をクラスタ制御に任せることで、クラスタシステム内の他ミドルウェア製品との親和性を確保することを目的としています。また、クラスタ制御がハードウェアと協調することにより実現する高拡張性および高信頼性を最大限に利用することができます。
ロードシェアでは、TCP/IP(ギガビットインタフェース対応製品を推奨)を使用して、クラスタシステムを構成するノード間の通信を実現します。
ロードシェア運用を実現するSymfoware Serverは、クラスタシステムの各ノードに独立して存在します。それぞれのSymfoware Serverは、RDBネットと呼ぶネットワークで結合されます。ロードシェア運用のデータベースシステムが能力不足になった場合、クラスタシステムにノードを追加します。追加したノードに新たなSymfoware Serverを構築して、RDBネットに結合することにより、従来のデータベースシステムに影響を与えずに処理能力を拡張できます。
トランザクションを並列に処理する技術の方式には、Shared Everything方式とShared Nothing方式があります。
Shared Everything方式は、共用ディスクを使用することにより、どのノードからも直接データをアクセスします。Shared Nothing方式は、データベースのアクセス管理をノードと対応させ、管理下のデータベースは、単一のノードの場合と同じく、そのノード内だけで排他をとり、直接アクセスします。管理外のデータベースに対するアクセスは、そのデータベースを管理するノードに処理要求を出して間接的にアクセスします。
Symfoware Serverは、トランザクションを並列に処理する技術の方式として、Shared Nothing方式を採用しています。この方式の採用により、クラスタシステムを構成するコンピュータ間での排他制御が基本的に不要になります。また、データベースシステムの性能を最も左右するメモリ上のデータベースバッファの活用が単一システムの場合と同じであるため、I/O処理を効率良く行うことができます。
これらのことから、Symfoware Serverでは、ノード数に比例した性能スケーラビリティが保証できます。
ロードシェア運用では、何らかの原因でノードダウンが発生した場合でも、生存している別のノードに業務を引き継ぐため、業務継続が可能です。ダウンしたノードが管理していた表やインデックスに対するアクセスは、あらかじめ設定している縮退のルールに従い、別のノードに処理が引き継がれます。
生存しているノードが最後の1ノードになるまで縮退するため、二重故障が発生した場合でも、業務の継続が可能なシステムを構築することができます。
さらに、ロードシェア運用では、ノードダウン発生後、業務を秒オーダで再開することができます。ロードシェア運用では、TCP/IPを使用して、運用中にデータベースの更新ログを引継ぎ先ノードのメモリ上に逐次送信します。ノードダウンが発生した場合、フラッシュトリートメントリカバリにより、引継ぎ先ノードでメモリ上の更新ログを利用して仕掛りデータのリカバリを共用バッファ上で行い、業務の再開を可能とします。フラッシュトリートメントリカバリの詳細については、“1.6 ロードシェア運用の機能”で説明しています。