私はこのシナリオを持っています:
24時間年中無休で稼働するファクトリープロセスラインがあります。ダウンタイムは非常に高くつきます。すべての異なる部分を制御するソフトウェアは、データベースストレージの共有形式を使用する必要があります。これの主な理由は、工場がどの状態にあるかを知ることです。
要件:
- プラントの一部でエラーが発生すると、1km以上離れた場所で何らかのマシンがシャットダウンする必要があることをソフトウェアが検出できるようにしたいと思います。したがって、PLCにデータを保存することはできません。
- 工場環境の更新とアップグレードは頻繁に行われます
- 負荷(コンピューター用語で)は本当に低くなります。
システムは、計算/チェックが行われ、その後に工場の機械に送信される指示が続く、1日に数百の割り当てを処理します。システムはほとんどの場合退屈します。最も重要な要件は、中央コンピュータシステムが正しく、常に機能している必要があることです。
ダイナモベースのデータベース(riakまたはcassandra)を使用することを考えていました。このデータベースでは、データが複数のマシンに書き込まれ、各マシンにはデータベース全体が含まれます。
1つのシステムがダウンすると、気付かれずにダウンします。従来のSQLデータベースは、テーブルが変更され、このマスタースレーブを構成するのが難しい場合に、アップグレードするのがより面倒な場合があります。
あなたの解決策は何でしょうか?
ネットワークは冗長化されており、他のほとんどの単一障害点があります。データベースのダウンタイムは、許容できるマシンの1つだけでなく、プラント全体のダウンタイムを意味するため、データベースシステムは重要です。
- 共有状態の問題を解決する方法。
- データベースの複雑さは問題になりません。私は、最新の正しいデータを取得するための単純なKeyValueStoreのようになります。