0

読み書き用のメイン RDBMS として Oracle を使用していますが、memcache として使用できる map-reduce があるため、couchbase をキャッシュ レイヤーとして使用したいと考えています。Oracleが更新または挿入されたときに、それをどのように実装できるか、およびキャッシュレイヤーでデータを転送および更新する方法についてのアイデア.

4

3 に答える 3

0

あなたの質問はデータベースの同期に関するものだと思います。これは、DB の依存関係と、couchbase が提供するかどうかはよくわからない「ライトスルー」機能を組み合わせて使用​​することで実現できます。したがって、DB 依存関係を使用すると、Db アイテムに依存するアイテムがキャッシュされ、DB アイテムが更新または削除されると、キャッシュ内の対応する依存アイテムが削除され、同時にサーバー レベルで実行される「ライトスルー」ハンドラーを作成できます。 ; このハンドラの主な目的は、削除されたアイテムの新しいコピーをキャッシュにロードすることです。したがって、基本的には、ハンドラーを 1 回記述してキャッシュ サーバーに登録すると、同期が必要なときにキャッシュ サーバーがそれを実行します。キャッシュを使用して DB 内の新しいアイテム。Db 同期に関するこの読み取りは、役立つ場合があります。

于 2013-05-31T07:12:19.423 に答える
0

したがって、あなたの質問はCouchbaseに直接関係していませんが、データがOracleインスタンスに変更されたときにアラートを受け取る方法について他の人が述べたように.

あまり知られていないことの 1 つは、このために非常に優れた Oracle データベース変更通知機能です: http://docs.oracle.com/cd/E11882_01/java.112/e16548/dbchgnf.htm

したがって、変更をリッスンし、データを Couchbase にプッシュするアプリケーションを作成できます。

于 2013-06-03T08:25:24.680 に答える
0

現在のパフォーマンスの問題について何も語っていません。

RDBMS/SQL 機能をあまり活用していないアプリケーションが多すぎます。特に ORM が間にある場合はそうです。

解決策は、データベースの上に別のキャッシュを配置し、IP マルチキャスト (SwarmCache など)、メッセージ キュー (JMS)、または夜間のインポート ジョブを使用して手動でクラスター内でこれを同期することです。最終的にはさらに多くの問題を引き起こす可能性があります。また、システムの複雑さが増します。

したがって、あなたの質問に対する私の答えは次のとおりです。データモデルやクエリに関して改善の余地がある限り、私はそれをしません。

于 2013-05-30T19:13:27.423 に答える