У меня такой сценарий:
У вас есть производственная линия, работающая круглосуточно и без выходных. Время простоя очень дорогое. Программное обеспечение, управляющее всеми различными частями, должно использовать общую форму хранения базы данных. Основная причина этого - знать, в каком состоянии находится фабрика. Например, некоторые продукты могут быть смешаны при использовании одного и того же набора оборудования, а другие ОБЯЗАТЕЛЬНО нет.
требования:
- Я хочу, чтобы программное обеспечение могло обнаруживать, что ошибка в одной части установки должна приводить к остановке какой-либо машины на расстоянии более 1 км. поэтому сохранение данных в ПЛК - это не вариант.
- Обновления и обновления до заводской среды часты
- нагрузка (с компьютерной точки зрения) будет действительно низкой.
Система выполняет несколько сотен заданий в день, для которых выполняются расчеты / проверки с последующими инструкциями, отправляемыми заводским машинам. Большую часть времени системы будут скучать. Наиболее важным требованием является то, что центральная компьютерная система должна быть исправной и всегда работать.
Я думал использовать базу данных на основе динамо (riak или cassandra), где данные записываются на несколько машин, причем каждая машина имеет всю базу данных
Когда одна система выйдет из строя, она выйдет из строя самостоятельно. Традиционную базу данных sql может быть сложнее обновить, когда таблицы изменяются, а это главное ведомое устройство сложнее настроить.
Какое было бы ваше решение?
Сеть была сделана избыточной, и большинство других единичных точек отказались. Система базы данных имеет решающее значение, потому что простой БД означает простои всего предприятия, а не только одной из машин, что является приемлемым.
- Как решить проблему общего состояния.
- сложность в базе данных не будет проблемой. Я буду больше похож на простое хранилище значений ключей для получения самых актуальных и правильных данных.