問題タブ [cluster-computing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
filesystems - ネットワークを介した軽量のオープンソース共有ファイル システム
負荷分散機能を備えた 2 つの Web サーバーがあります。これらのサーバー間でいくつかのファイルを共有する必要があります。これらは、アップロードされたファイル、セッション ファイル、php アプリケーションが作成するさまざまなファイルです。
私たちは、もはやメンテナンスされていない、または商用のソリューションを使用したくありません。共有ファイル システムとして機能する軽量のオープン ソース ソフトウェアを探しています。セットアップが非常に簡単で、HA が利用可能で、非常に高速である必要があります。RedHat Linux で動作するはずです。
同期ファイル共有を備えた drbd などのソリューションを検討しましたが、ext3 のような基盤となるファイルシステムでは機能しないため、それらを使用することはできません。
asp.net - asp.net、stateserver、NLB、セッションが失われました
stackoverflow の最初の投稿です。素晴らしいフィードバックをお待ちしております :)
現在、Web サイトの負荷分散を試みています。IIS 6 を使用して Windows Server 2003 に 2 クラスターの NLB をセットアップしました。
セットアップをテストしているときに、セッションが失われることがあることがわかりました。1日半後、結果は次のとおりです。
- はい、machine.config は両方とも同じ暗号化/復号化キーを持っています。
- はい、iis metabase.xml の ID は両方のマシンで同じです。実際には、「AdminACL」を除いて、ファイル全体が同じです。
- 両方の Web アプリケーションが「StateServer」で設定され、両方が同じマシンを指しています。
その時点から、Google で検索すると、より少ない情報と考えられる解決策が得られます。
私の知る限り、この問題を引き起こす特定のパターンはありません。たまにしか起こりません。
問題を見つけようとしているときに、リクエストが asp セッション ID Cookie をサーバーに送信したが、サーバーがそれをユーザー セッションにマップしていないことがわかりました。
ということで、クライアントからリクエスト番号xが送られてきて、cookieでセッションがマッピングされ、スムーズに進みました。クライアントからリクエスト番号 x+1 が Cookie とともに送信されましたが、セッションが見つかりませんでした。
両方の要求は、NLB の同じマシンで行われました。
asp trace.axd のスニペットを次に示します。
最初のリクエスト:
リクエストの詳細 セッション ID: j2ffvy45updpc52uhw1mbg55 リクエスト タイプ: GET リクエストの時刻: 11/26/2008 2:58:06 PM ステータス コード: 200 リクエストのエンコーディング: Unicode (UTF-8) レスポンスのエンコーディング: Unicode (UTF-8)
Cookie コレクションのリクエスト
名前 値 サイズ
ASP.NET_SessionId j2ffvy45updpc52uhw1mbg55 42 AID 22 9
応答 Cookie コレクション
名前 値 サイズ
ヘッダー コレクション
名前 値
Cookie ASP.NET_SessionId=j2ffvy45updpc52uhw1mbg55; AID=22
2 番目の要求:
リクエストの詳細 セッション ID: リクエスト タイプ: POST リクエストの時刻: 11/26/2008 2:58:08 PM ステータス コード:
リクエストのエンコード: Unicode (UTF-8) レスポンスのエンコード:
Cookie コレクションのリクエスト
名前 値 サイズ
応答 Cookie コレクション
名前 値 サイズ
ヘッダー コレクション名 値 Cookie ASP.NET_SessionId=j2ffvy45updpc52uhw1mbg55; AID=22
2 番目の要求でわかるように、Cookie はクライアントから送信されますが、asp は「Request Cookies Collection」に Cookie を追加しないようです。それがセッションを見つけられない理由だと思います。
では、なぜ Cookie がセッションにマップされないのでしょうか? それが問題ですか?問題は他の場所にありますか?
ご不明な点がございましたら、お気軽にお問い合わせください。
フィードバックをお寄せいただきありがとうございます。
JF
sql - クラスタ マスターを指定する SQL ステートメント
ノードの 1 つをマスターとして指定する必要があるアプリケーションをクラスター化しました。クラスター ノードは、 nodeID 、 isMaster 、 lastTimestamp 列を含むテーブルで追跡されます。
クラスター内の各ノードは、 X秒ごとにマスターになろうとします。ノードは、次のいずれかの場合にのみマスターになることができます
- 他のマスターノードはありません
- 現在のマスター ノードのlastTimestampが2*Xだけ古い
上記のいずれかの条件を満たしたとき
- 現在のマスター ノードのisMasterをクリアする必要があります
- 新しいマスター ノードのisMasterを設定する必要があります
- 新しいマスター ノードのlastTimestampは「現在」のタイムスタンプに設定する必要があります。
2 つ以上のノードがマスターになる可能性なしに上記を達成するための単一の (移植可能な) SQL ステートメントは何ですか?
java - javaで物理シミュレーションを実行するためのLinuxクラスターを作成するには?
物理シミュレーションの実行に使用される科学アプリケーションを開発しています。使用されるアルゴリズムは O(n3) であるため、大量のデータ セットの処理には非常に長い時間がかかります。アプリケーションは約 17 分でシミュレーションを実行し、約 25,000 回のシミュレーションを実行する必要があります。つまり、処理時間は約 1 年です。
幸いなことに、シミュレーションは互いに完全に独立しているため、プログラムを簡単に変更して、複数のコンピューターに作業を分散させることができます。
これを実装するために私が見ることができる複数のソリューションがあります:
- マルチコア コンピューターを入手し、すべてのコアに作業を分散します。私がする必要があることには十分ではありません。
- 複数の「処理」サーバーに接続し、それらの間で負荷を分散するアプリケーションを作成します。
- 安価な Linux コンピューターのクラスターを入手し、プログラムにすべてを 1 つのエンティティとして扱わせます。
オプション番号 2 は実装が比較的簡単なので、これを実装する方法についての提案はあまり探しません (特定のポートでパラメーターを待機し、値を処理して結果を返すプログラムを作成するだけで実行できます)。シリアル化されたファイルとして)。これは、グリッド コンピューティングの良い例です。
ただし、最後のオプションである従来のクラスターの可能性については疑問に思っています。Linux グリッドで Java プログラムを実行するのはどれくらい難しいですか? すべての個別のコンピューターは、複数のコアを備えた単一のコンピューターとして扱われ、プログラムの適応が容易になりますか? 始めるのに役立つリソースへの適切なポインタはありますか? または、これを複雑にしすぎて、オプション番号 2 を使用したほうがよいでしょうか?
編集: 追加情報として、Wired Magazine のこの記事で説明されているようなものを実装する方法に興味があります: Scientific は、スーパーコンピューターを Playstation 3 Linux クラスターに置き換えました。間違いなくナンバー2は行くべき道のように聞こえます...しかし、涼しさの要素です.
編集 2: 計算は非常に CPU バウンドです。基本的に、逆数や乗算など、大きな行列には多くの演算があります。これらの操作のより良いアルゴリズムを探してみましたが、これまでのところ、必要な操作は 0(n3) であることがわかりました (通常利用可能なライブラリ内)。(このような操作の場合) データ セットは大きいですが、入力パラメーターに基づいてクライアント上で作成されます。
Linux でのコンピューター クラスターの仕組みについて誤解していたことがわかりました。複数のコアを備えたコンピューターを持っているかのように、すべてのコンピューターですべてのプロセッサが利用可能であるように見えるように動作すると仮定しましたが、そうではないようです。これらのスーパーコンピューターはすべて、中央エンティティによって分散されたタスクを実行するノードを持つことで機能し、この分散を簡単に実行できるいくつかの異なるライブラリとソフトウェア パッケージがあるようです。
3 番のようなものはないので、質問は次のようになります。クラスター化された Java アプリケーションを作成する最善の方法は何ですか?
java - より高速な Oracle ハッシュ クラスタ テーブルの挿入
あるテーブルから他の 2 つのテーブルに 7M 行を挿入するプロセスを開始したので、これを行うためのより高速な方法があるかどうか疑問に思っています。プロセスは 1 時間で完了すると予想されます。つまり、24 時間の処理です。
手順は次のとおりです。
このテーブルのデータ
他の 2 つのクラスタ テーブル T1 と T2 で新しいホームを見つける必要があります。
このような手動コミットでJava挿入を介して
何か案は?
performance - ColdFusion Web アプリケーション レベルのクエリ キャッシング
多数の Web サーバーがあり、それぞれが 1 つのバージョンの ColdFusion を実行しています。クラスターの前にロード バランサーがあります。
明らかに、これらの各サーバーには独自の CF アプリケーションが実行されており、これにより、CF アプリケーション レベルでクエリ キャッシュが実装されます。ただし、これらのサーバーはすべて 1 つの Web アプリケーションにサービスを提供するため、これらのキャッシュされたクエリの多くは CF アプリケーション インスタンス間で複製されます。
Web アプリケーション レベルで、つまり多数の CF インスタンスにわたってクエリ キャッシュを実装する方法はありますか。または、存在しない場合、データベース サーバーの負荷を最小限に抑えるためにクラスターをセットアップするためのより良い方法はありますか?
私は自分自身を明確にしたことを願っています:)
乾杯、シアラン
mysql - MySQL innoDB 永続ストアを備えた MySQL Cluster
私たちは、高いパフォーマンスとデータの一貫性を必要とする高可用性 (5 9) アプリケーション向けのデータベース ソリューションに取り組んでいます。永続ストレージ用のセカンダリ innoDB MySQL データストアによってバックアップされるプライマリ インメモリ データストアとして MySQL Cluster を使用する予定です。
提案されたアプローチは、オンライン アプリケーションがインメモリ DB (MySQL クラスター) とのみ対話し、MySQL クラスターが永続ストレージの非同期レプリケーション/メッセージングを介して innoDB インスタンスにデータを伝達するというものです。
MySQL クラスターまたは MySQL は単独でこの要件をサポートできますか?
アップデート:
これまでに提供された回答について:
これは、プライマリ データストアに MEMORY エンジンを使用し、セカンダリ データストアに innoDB エンジンを使用して、MySQL 5.1 だけを使用して実行できますか?
MySQL は、イベント ベースの遅延挿入アプローチを使用して、プライマリ データストアに挿入されたデータをセカンダリ データストアに非同期的に複製できますか?
cloud - クラスター/グリッド/クラウド タイムを購入しますか?
私は産業および学術の設定でクラスターを使用しましたが、それらは私が働いていた組織によって所有されていました。クラスター/クラウド/グリッド時間を販売する会社から時間を購入したことはありません。
大規模なシミュレーションやデータ マイニング アプリケーションなど、計算負荷の高いプログラムを実行したいとします。あるいは、外部委託したインフラストラクチャで分散ビルドを実行して、大規模な製品スイートの完全なビルドを最適化したい場合もあります。そのようなプログラムを実行するためのクラスター時間はどこで購入できますか?
Linux、BSD、Mac OS X、Windows などの一般的な OS プラットフォームを実行するクラスターについて学ぶことに興味があります。
明らかに、最近利用可能な高速で安価なハードウェアを使用して独自のクラスターを構築するソリューションがありますが、私は特にアウトソーシング ソリューションに興味があります。
.net - .Netサーバークラスタリング手法
以下のメッセージフローの手順と同様に機能するマルチサーバークラスター化フレームワークを開発したいと思います。
クライアントから
- ゲートウェイサーバーがメッセージを受信する
- ゲートウェイサーバーはACKメッセージ(UDP)を送信します
- メッセージは、ファクトリを介してバイナリからオブジェクトにカスタムデシリアライズされます
- 次に、メッセージはクラスター内のセカンダリサーバー(構成ベース)にルーティングされ、WCFを介してオブジェクトをセカンダリサーバーに送信します。
- メッセージはセカンダリサーバーで処理されます。
サーバーから
- セカンダリサーバーはメッセージを作成し、ゲートウェイサーバーに送信します
- ゲートウェイサーバーのバイナリがメッセージをシリアル化します
- ゲートウェイサーバーはバイナリをクライアントに送信し、ACKメッセージ(UDP)を待ちます
サーバーは、同じアプリケーション(WCFが初期化されます)または他のシステムのいずれかでローカルにサービスを指すように.configファイルを介して構成されます。
誰かがこのようなタイプのアーキテクチャを作成するために働いたことがありますか?もしそうなら、あなたが遭遇した問題のいくつかは何ですか?
編集
システムは既存のプロトコルのサーバー側になるため、クライアントからサーバーへのプロトコルは基本的に変更できませんが、状態管理(クライアントはすべての呼び出しでセッションを送信します)、暗号化、サーバールーティング、およびパケット保護。
編集
誰かが.Netでクラスタリングを使用するオープンソースプロジェクトへのリンクを提供することさえできますか?