1

私の Web アプリケーションは複数のデータベース シャードを使用する必要があり、場合によってはこれらのシャードを並行してクエリする必要があります。並列ノンブロッキング データベース アクセスを成熟して安定してサポートする Web スクリプト言語はありますか? もしそうなら、あなたは私を正しい方向に向けることができますか?無料のオープンソースが好まれますが、私は主に動作するものを望んでいます.

スレッドは私には問題ありませんが、本当のマルチスレッド サポートは必要ありません。私が望むのは、5 つの異なるデータベース サーバーに対する 5 つの 10 秒のデータベース クエリが、50 秒ではなく 10 秒かかることだけです。実際に使用された CPU の数は問題ではありません。

4

2 に答える 2

1

実際には、並列のノンブロッキング I/O が必要なようには見えません。並列のノンブロッキング データベース アクセスが必要であり、これは通常、別の API を介して処理されます。

たとえば、Java では、一般的な I/O は java.io と java.net のコンポーネントを介して処理されますが、データベース アクセスは java.sql とベンダー固有のドライバーを介して処理されます。同様の特徴は、他のプラットフォーム/言語にも見られます。

あなたの主な問題は、別の並列データベースアクセス要求を作成できる、ある種のマルチプロセッシング/マルチスレッドを実装することであるように思われます。それがあなたが研究すべき主な分野であることをお勧めします。

このトピックに関する資料はたくさんありますが、詳細については、特定のプラットフォーム/言語に焦点を当てる必要があります。これは、伝統的にソフトウェア開発の非常に難しい領域であることに注意してください。

ご多幸をお祈り申し上げます...

于 2008-12-08T19:52:15.180 に答える
0

考えられる回避策は、Web ページを分割して、各部分が 1 つのシャードのみにヒットするようにすることです。ブラウザーは、パーツごとに個別の AJAX 要求を起動し、クライアント側でページを構築する必要があります。

このソリューションは、選択した言語/フレームワークに依存しませんが、クライアント側で JavaScript を有効にする必要があります。

パフォーマンスは、各訪問者の OS、ブラウザー、および設定 (詳細)によって異なる場合があります。ただし、ページの各部分からのデータが利用可能になるとすぐに、ページは段階的にレンダリングされます。

サーバー側のソリューションと比較した欠点として、この方法は複雑さがサーバーからクライアント側の JavaScript に移動し、Web サーバーの負荷が増加します。

于 2009-01-02T14:14:16.707 に答える