4

私たちは、ライブ Web サイトで低速のデータベースを操作するための最適なソリューションを見つけようとしています。

基本的なシステム アーキテクチャは次のとおりです。

  • 遅い (一部の読み取りとほとんどの書き込みは高速ですが、数秒かかるものもあります) Postgres DB。これを制御することはできません。
  • Postgres DB にアクセスするモノリシック オフライン システム。これを制御することはできません。
  • Postgres DB にアクセスできる高速な内部サーバー。このサーバー用のソフトウェアを開発してインストールできます。
  • Postgres DB にはアクセスできないが、内部サーバーにはアクセスできる LAMP スタックを実行する高速 Web サーバー。このサーバー用のソフトウェアを開発できます。
  • 何からでもアクセスできる高速な MySQL データベース。私たちはこれを完全に管理しています。

Symfony 2 を使用して、Web サーバー上で実行する新しい Web アプリケーションを開発しています。

私たちの最初の計画は、RESTful API を作成して、Web アプリによって消費される内部サーバーに配置することでした。私たちが直面している主な問題は、Web アプリの速度が Postgres DB の速度によって制限されていることであり、これはユーザーにとって受け入れがたいものです。

この速度の問題を回避するための戦略を知っている人はいますか?

キャッシュは明らかな解決策であり、データがどれだけ最新である必要があるかについては確かに議論できますが、特定の状況では、完全に最新でなければなりません. たとえば、ユーザーがいくつかの変更を保存した場合、これらはすぐに表示されます。Postgres から非同期に更新する独自の高速データ ストアを持つ API を使用することを検討しました。次に、この高速ストレージですべての読み取りを実行し、それと Postgres の両方に書き込みをコミットできます。もちろん、心配なのはデータの一貫性と、システムの複雑さの増大です。

JSON-LD を使用してデータを表現することを検討しています。JSON-LD は、私たちが扱っているものに適しているためです。標準を使用することで、比較的新しいものではありますが、今後の主要なアーキテクチャの変更が容易になる可能性があります。ドキュメント ストアに直接配置できるため、プロセスが簡素化される可能性があります。

ここでの主な目標は次のとおりです。

  • ユーザーに優れたエクスペリエンスを提供します。
  • 保守可能でわかりやすいシステムを作成します。

推奨事項や提案は大歓迎です!

4

3 に答える 3

1

主な質問は、Postgres DB がなぜこんなに遅いのかということだと思います。また、あなたの説明から、これらすべてのシステムが何をしているのか、依存関係/要件が何であるかが明確ではありません。たとえば、PostgresDB のデータを最新にする必要がありますか? それはメインDBですか?モノリシックオフラインシステムの統合DBですか?

遅い Postgres DB を変更できない場合は、最新の状態にする必要があり、Web サイトもそれに依存し、(場合によっては) 最新の状態にする必要があります。できません。とにかくオフラインアプリで使用されるため、Postgres DB を最新の状態にする必要がない場合は、その DB を非同期的に更新し、必要なパフォーマンスが得られるように MySQL DB を使用できます。

JSON-LD を使用する予定ということで、構築中のシステムについて詳しく教えていただければ幸いです。もう少し情報を共有できますか?

于 2014-06-17T15:05:24.107 に答える
0

たとえば、ユーザーがいくつかの変更を保存した場合、これらはすぐに表示されます。

これもキャッシュであるため、ユーザーが一部のデータを更新すると、キャッシュ (現在は古いデータが含まれています) が期限切れになります (Etag または手動でキャッシュを削除します)。

于 2014-06-17T12:47:40.687 に答える