-
Language:
日本語
-
Language:
日本語
Red Hat Training
A Red Hat training course is available for Red Hat Directory Server
15.6.4. マルチマスターレプリケーションにおけるコンシューマーの独占を防ぐ
マルチマスターレプリケーションの機能の 1 つは、サプライヤーが複製されたエリアのコンシューマーへの排他的アクセスを取得することです。この間、他のサプライヤーは、コンシューマーによる直接通信がロックされます。ロックアウトされた状態でサプライヤーがアクセス権を取得しようとすると、コンシューマーはビジー応答を返し、サプライヤーは数秒間スリープしてから再度アクセスを試みます。更新負荷が低い間に、最初のコンシューマーがロックされたときにサプライヤーが別のコンシューマーに更新を送信し、最初のコンシューマーが再び解放されると更新を送信します。
ロックサプライヤーの更新負荷が高かったり、changelog に多くの保留中の更新があったりすると、問題が発生することがあります。ロックサプライヤーが更新の送信を終了し、送信の保留中の変更が多くなると、他のサプライヤーは通常スリープ状態であるため、すぐにコンシューマーの再取得を試み、成功する可能性が高くなります。これにより、単一のサプライヤーが数時間またはそれ以上にわたってコンシューマーを独占することになります。
以下の属性は、この問題に対応します。
nsds5ReplicaBusyWaitTime
- 別のアクセスの取得を試みる前に、コンシューマーがビジー応答を返した後のサプライヤーが待機する時間を秒単位で設定します。たとえば、別の取得を試みる前に、サプライヤーが 5 秒待機するように設定するには、以下を実行します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=Replication_Agreement_Name,cn=replica,cn=suffix_Name,cn=mapping tree,cn=config changetype: modify replace: nsds5ReplicaBusyWaitTime nsds5ReplicaBusyWaitTime: 5
nsds5ReplicaSessionPauseTime
- 2 つの更新セッションの間にサプライヤーが待機する時間を秒単位で設定します。
nsds5ReplicaBusyWaitTime
で指定した値またはそれよりも小さい値を設定すると、Directory Server はnsds5ReplicaSessionPauseTime
パラメーターの値を自動的に使用します。これは、nsds5ReplicaBusyWaitTime
に設定した値よりも大きな値になります。たとえば、サプライヤーは 2 つの更新セッション間で 10 秒待機するように設定するには、以下を実行します。# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=Replication_Agreement_Name,cn=replica,cn=suffix_Name,cn=mapping tree,cn=config changetype: modify replace: nsds5ReplicaSessionPauseTime nsds5ReplicaSessionPauseTime: 10
nsds5ReplicaReleaseTimeout
- 更新の送信を終了したかどうかにかかわらず、マスターがレプリカを解放するタイムアウトを設定します。これにより、単一マスターがレプリカを独占しなくなります。たとえば、マスターが 90 秒後にレプリカを解放する大規模なレプリケーション環境に設定するには、以下を実行します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=replica,cn=suffix_Name,cn=mapping tree,cn=config changetype: modify replace: nsds5ReplicaReleaseTimeout nsds5ReplicaReleaseTimeout: 90