2017-11-24 22 views
0

アプリケーションがあり、このアプリケーションが共通のデータベースを使用していないが、すべてのデータをメモリにロードし、すべてがそこから機能するとします。実行中のアプリケーションのIn Memory Datastoresを置き換える共通のパターンはありますか?

これはWSで、数時間ごとにメモリ内のデータベースを更新します。ダウンタイムを危険にさらしたくないので、メモリ内のデータストアを即座に置き換えるだけでよいからです。

  • 特定のデータ、もはや存在しないかもしれない「古い」データストアで使用可能だったと誰かがその瞬間に右のあなたのデータを消費している場合、彼らはで終わるだろう。しかし、それに来て一定のリスクがあるかもしれませんエラー。
  • 一部のデータは変更される可能性があり、名前が同じか、わずかに異なる可能性があります。

このような問題に特定のアプローチやパターンがあるかどうかは疑問でした。

私のアプローチは、特定の時間に2つのデータストアを持つことです。 「古い」と「新しい」。新しいセッションはすべて新しいデータストアによって処理され、古いセッションはすべて古いデータストアを使用し、ある時点で新しいデータストアを使用するように強制的に更新されることがあります。その後、私は古いものを投げ捨てて、同じ曲をもう一度始めます。

答えて

0

これを解決する「DBMS方法」は、通常はMVCC(マルチバージョン並行性制御)によって「読み取り再現性」を実装することです。あなたは、あなたが描いている「古い」と「新しい」データストアのコンセプトを使っていますが、粗い(細かくはない)方法でやっています。 DBMSは、SQLカーソルごとにそれを行います。ただし、Webサービスのユーザーコミュニティの潜在的なサイズに応じて、スケーリングの問題が発生する可能性があります。

関連する問題