5

私はこのシナリオを持っています:

24時間年中無休で稼働するファクトリープロセスラインがあります。ダウンタイムは非常に高くつきます。すべての異なる部分を制御するソフトウェアは、データベースストレージの共有形式を使用する必要があります。これの主な理由は、工場がどの状態にあるかを知ることです。

要件:

  • プラントの一部でエラーが発生すると、1km以上離れた場所で何らかのマシンがシャットダウンする必要があることをソフトウェアが検出できるようにしたいと思います。したがって、PLCにデータを保存することはできません。
  • 工場環境の更新とアップグレードは頻繁に行われます
  • 負荷(コンピューター用語で)は本当に低くなります。

システムは、計算/チェックが行われ、その後に工場の機械に送信される指示が続く、1日に数百の割り当てを処理します。システムはほとんどの場合退屈します。最も重要な要件は、中央コンピュータシステムが正しく、常に機能している必要があることです。

ダイナモベースのデータベース(riakまたはcassandra)を使用することを考えていました。このデータベースでは、データが複数のマシンに書き込まれ、各マシンにはデータベース全体が含まれます。

1つのシステムがダウンすると、気付かれずにダウンします。従来のSQLデータベースは、テーブルが変更され、このマスタースレーブを構成するのが難しい場合に、アップグレードするのがより面倒な場合があります。

あなたの解決策は何でしょうか?

ネットワークは冗長化されており、他のほとんどの単一障害点があります。データベースのダウンタイムは、許容できるマシンの1つだけでなく、プラント全体のダウンタイムを意味するため、データベースシステムは重要です。

  • 共有状態の問題を解決する方法。
  • データベースの複雑さは問題になりません。私は、最新の正しいデータを取得するための単純なKeyValueStoreのようになります。
4

3 に答える 3

3

これは sql/nosql の質問ではないと思います。すべての Postgres、MySQL、および MS SQL Server には、何らかの種類のクラスターまたはホット スタンバイ オプションがあります。

構成は 1 回限りの作業ですが、物事を実行する目的でリレーショナルをあきらめたプラットフォームで根本的にリレーショナルなことをしようとしている場合、NoSQL オプションはコードの上から下まで頭痛の種になります。アマゾンやフェイスブックのように。設定は一度で、コーディングは永遠です。

したがって、私は、実証済みの真のソリューションに固執し、そのホット レプリケーションを開始することをお勧めします。

これにより、アップグレードのソリューションも提供されます。一般的なシーケンスは、スタンバイへの「フェイルオーバー」、マスターのアップグレード、マスターへのフリップバック、スタンバイのアップグレード、再開です。もちろん、状況に固有の詳細を使用します。

于 2011-01-19T23:24:40.957 に答える
2

そのようなことをネイティブにサポートする確立された RDBMS を使用する

いつでも一貫性のあるもので、24 時間年中無休のミッション クリティカルなシステムを本当に実行したいですか?

于 2011-01-22T08:33:08.797 に答える
1

単一障害点を回避する必要があります。

dbms 業界のすべての主要なプレーヤーは、データベース自体が単一障害点になることを回避する方法を少なくとも 1 つ提供しています。製造プロセスに十分な速さで変更を反映できるかどうか疑問に思うかもしれません。(または、データの更新は実際には問題ではありませんか? あなたの質問からは本当にわかりません。) 製造業での私のデータベースの仕事は、自動車と化学産業に限定されています。マイクロ秒は彼らにとって重要ではありませんでした。

しかし、失敗する可能性があるのは dbms だけではありません。「常に機能している」とは、クライアントも常に機能している必要があることを意味します。クライアント ハードウェア、ネットワークへの接続、ネットワークおよびネットワーク サーバー自体のすべてに、おそらく単一障害点があります。耐障害性サーバーには、複数の電源、複数の NIC などがあります。

「常時稼働」は本当にコストがかかります。あなたの会社にとって、データベースが最大の問題になることはないと思います。

于 2011-01-22T13:32:29.257 に答える