私は、LDAP システムでのレプリケーションの遅延を補うプロセスを構築する任務を負っています。現在、1 つの書き込みサーバーと 4 つの読み取りサーバーがあります。エントリを書き込みサーバーに書き込んだ後、エントリが読み取りサーバーに複製されるまでに、システムで最大 4 秒の遅延が発生する可能性があります。したがって、レコードを更新するサービス「A」を呼び出し、その直後にそのレコードを読み取るサービス「B」にアクセスすると、データが古くなります。
この問題を解決するために、アプリケーションがデータベースと直接インターフェイスするのではなく、キャッシュ サービスを介してインターフェイスするように、キャッシュ Web サービスを構築することを計画していました。サービスは、すべての作成、更新、および削除をキャッシュ (おそらくList<ModelObject>
) に格納します。CRUD - R エントリは、最低 4 秒間キャッシュに残る必要があります。次に、サービス「B」が読み取りを試みると、キャッシュ サービスは、データベースで読み取り操作を実行する前にキャッシュをチェックします。
だから、私の質問は2つの部分です。1) これは実行可能な解決策ですか? そうでない場合、どのような問題がありますか? 2) WCF サービス内でキャッシュに対してメンテナンスを行うにはどうすればよいですか。つまり、キャッシュから 4 秒経過したエントリをクリアするバックグラウンド ワーカー スレッドを開始する方法はありますか?