問題タブ [high-availability]

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.

0 投票する
3 に答える
1460 参照

java - Solaris 上の Java/C++ 用の高可用性でスケーラブルなプラットフォーム

Solaris で Java と C++ を組み合わせたアプリケーションを使用しています。コードの Java の側面は、Web UI を実行し、通信しているデバイスの状態を確立します。C++ コードは、デバイスから返されるデータをリアルタイムで処理します。共有メモリは、デバイスの状態とコンテキスト情報を Java コードから C++ コードに渡すために使用されます。Java コードは、PostgreSQL データベースを使用してその状態を保持します。

かなり深刻なパフォーマンスのボトルネックに直面しており、現時点でスケーリングできる唯一の方法は、メモリと CPU の数を増やすことです。共有メモリの設計により、1 つの物理ボックスにこだわっています。


ここで本当に大きな打撃を受けたのは、C++ コードです。Web インターフェイスは、デバイスの設定にほとんど使用されていません。私たちが本当に苦労しているのは、一度構成されたデバイスが配信するデータ ボリュームを処理することです。

デバイスから返されるすべてのデータには、デバイス コンテキストを指す識別子が含まれているため、それを調べる必要があります。現在、Java/UI コードによって維持され、C++ コードによって参照される一連の共有メモリ オブジェクトがあり、それがボトルネックになっています。そのアーキテクチャのため、C++ データ処理を別のマシンに移すことはできません。デバイスのさまざまなサブセットをさまざまなマシンで処理できるようにスケールアウトできるようにする必要がありますが、その場合、そのコンテキスト ルックアップを実行する機能が失われます。これが私が解決しようとしている問題です。デバイスコンテキストを参照しながら、他のボックスへの時間データ処理。

デバイス自体が使用するプロトコルを制御することはできず、状況が変わる可能性はありません。


クラスターにマシンを追加してスケールアウトできるようにするには、これを回避する必要があることを認識しており、私はこれをどのように行うかを正確に検討している初期段階にあります。

現在、Java コードをスケールアウトする方法として Terracotta を検討していますが、それに合わせて C++ をスケールアウトする方法についてはまだ考えていません。

パフォーマンスのスケーリングだけでなく、高可用性も考慮する必要があります。アプリケーションはほぼ常に利用可能である必要があります。絶対に 100% ではなく、費用対効果が高くありませんが、マシンの停止を乗り切るための合理的な仕事を行う必要があります。

私に与えられた仕事を引き受けなければならないとしたら、あなたは何をしますか?

編集: @john channing から提供されたデータに基づいて、GigaSpaces と Gemstone の両方を調べています。Oracle Coherence と IBM ObjectGrid は Java のみのようです。

0 投票する
13 に答える
4650 参照

release-management - ライブで忙しい Web サイトをできるだけ丁寧に更新するにはどうすればよいでしょうか?

ライブ Web サイトに変更を加える場合、ライブシステムが正しく機能していることをどのように確認しますか? どのツールを使用しますか? 誰がそれをしますか?テスト期間中、サイトへのアクセスをブロックしますか? どのくらいのダウンタイムが許容されますか?

0 投票する
10 に答える
3882 参照

storage - 高可用性ストレージ

NFS および CIFS 経由で 2 TB 程度を利用できるようにしたいと考えています。高可用性と、可能であればサーバー間で負荷を分散する機能のために、2 台 (またはそれ以上) のサーバー ソリューションを探しています。クラスタリングまたは高可用性ソリューションに関する提案はありますか?

これはビジネス用途であり、今後数年間で 5 ~ 10 TB に拡大する予定です。私たちの施設は、ほぼ 1 日 24 時間、週 6 日稼働しています。15 ~ 30 分のダウンタイムが発生する可能性がありますが、データ損失を最小限に抑えたいと考えています。午前 3 時の電話を最小限に抑えたい。

現在、Solaris で ZFS を使用して 1 台のサーバーを実行しており、HA 部分については AVS を検討していますが、Solaris には小さな問題 (CIFS 実装が Vista では機能しないなど) があり、それが私たちの足を引っ張っています。

私たちは見始めました

  • DRDB over GFS (分散ロック機能用の GFS)
  • Gluster (クライアント部分が必要、ネイティブ CIFS サポートなし?)
  • Windows DFS (ファイルを閉じた後にのみレプリケートするとドキュメントに記載されていますか?)

データを提供する「ブラックボックス」を探しています。

現在、ZFS でデータのスナップショットを作成し、そのスナップショットをネット経由でリモート データセンターに送信してオフサイト バックアップを行っています。

当初の計画では、2 台目のマシンを用意し、10 ~ 15 分ごとに rsync を実行する予定でした。障害が発生した場合の問題は、進行中の生産プロセスが 15 分間のデータを失い、「途中」に残されることです。途中でピックアップする場所を見つけるよりも、最初から始める方がほとんど簡単です。それが、私たちが HA ソリューションに目を向けた理由です。

0 投票する
3 に答える
15022 参照

failover - フェイルオーバーと災害復旧

フェールオーバーとディザスター リカバリーの違いは何ですか?

0 投票する
3 に答える
398 参照

asp.net - 多層、高可用性 Web アプリケーションを開発する際に考慮すべきアプリケーション設計の側面は何ですか?

このアプリケーションは、ASP.NET、.NET Remoting、および MS SQL Server を使用して構築される予定です。プレゼンテーション層、アプリケーション層、データベースで高可用性が求められます。

IIS 7.0 は、高可用性の面で IIS 6.0 より優れている点はありますか?

0 投票する
4 に答える
1771 参照

database - 同じアプリケーションの古いバージョンで共有されているデータベースへの重大なデータベース変更の移行の管理

私の目標の 1 つは、古いバージョンと並行して実行される Web アプリケーションの新しいバージョンをデプロイできるようにすることです。問題は、すべてがデータベースを共有することです。新しいバージョンのデータベースには、データベース テーブルへの大幅なリファクタリングが含まれる傾向があります。アプリケーションの新しいバージョンを徐々にユーザーにロールアウトし、必要に応じてユーザーを古いバージョンに戻せるようにしたいと考えています。

Oren は問題を設定する良い投稿をしましたが、次のように終わりました。

「システム全体に影響を与える変更、つまり、データベースの変更を破壊することに関して、本番環境へのデプロイに関しては、まだやや混乱しています。次の記事で、これは少しだけ出てきたことについて説明します。手、恐れ入ります。」

後続の投稿は来ませんでした;-)。同じアプリケーションの古いバージョンで共有されているデータベースへの重大なデータベース変更の移行をどのように管理しますか? データの同期をどのように維持しますか?

0 投票する
2 に答える
495 参照

wcf - 可用性の高い Web サービスのプールを設計するための最善のアプローチは何ですか?

多くの人が Linux ベースのプロキシを使用してルーティングを処理し、Web アプリケーションの高可用性を実現することに成功したと宣伝しているのを聞いたことがありますが、他の人は Web サービスで何をしているのでしょうか? 高可用性 (フェールオーバー) モデルに移行する必要がある WCF サービスのバンクがあります。つまり、WCF サービスをホストしている特定のサーバーがダウンした場合、要求はバンク内の別のサーバーにルーティングされます。この環境には Linux の知識のある人がいないため、Linux ベースのソリューションの実装には近づきません。

0 投票する
2 に答える
1297 参照

filesystems - ネットワークを介した軽量のオープンソース共有ファイル システム

負荷分散機能を備えた 2 つの Web サーバーがあります。これらのサーバー間でいくつかのファイルを共有する必要があります。これらは、アップロードされたファイル、セッション ファイル、php アプリケーションが作成するさまざまなファイルです。

私たちは、もはやメンテナンスされていない、または商用のソリューションを使用したくありません。共有ファイル システムとして機能する軽量のオープン ソース ソフトウェアを探しています。セットアップが非常に簡単で、HA が利用可能で、非常に高速である必要があります。RedHat Linux で動作するはずです。

同期ファイル共有を備えた drbd などのソリューションを検討しましたが、ext3 のような基盤となるファイルシステムでは機能しないため、それらを使用することはできません。

0 投票する
1 に答える
267 参照

postgresql - PostgreSQL の可用性とマージ

スプリットブレインの状況を適切に処理できる PostgreSQL HA ソリューションはありますか。詳しく説明すると、私が取り組んでいるシステムは、サーバーの近くにユーザーがいるいくつかの領域で実行されることが期待されており、ゾーン間の接続は疑わしいことが知られています。ユーザーが劣化した状態 (切断されたゾーンからの更新なし) でシステムを引き続き使用できるようにし、オンラインに戻ったときに賢明なマージができるようにしたいと考えています。

0 投票する
7 に答える
8393 参照

distributed - 分散システムを設計および検証する方法は?

アプリケーション サーバーとオブジェクト データベースの組み合わせであるプロジェクトに取り組んでおり、現在は 1 台のマシンでのみ実行されています。少し前に、分散リレーショナル データベースについて説明している論文を読み、その論文のアイデアを自分のプロジェクトに適用する方法についていくつかのアイデアを得ました。 -何もない建築

私の問題は、分散システムとそのプロトコルの設計経験がないことです。大学で分散システムに関する高度な CS コースを受講していません。そのため、デッドロック、飢餓、スプリットブレインなどの問題を引き起こさないプロトコルを設計できるか心配しています。

質問:分散システムの設計に関する適切な資料はどこにありますか? 分散プロトコルが正しく機能することを確認する方法には、どのようなものがありますか? 書籍、学術論文などの推薦を歓迎します。