Я работаю над многопоточным приложением, в основе которого лежит около 4 базовых сущностей
например,
public class Album
{
public ICPN ICPN { get; set; }
public string Title { get; set; }
public string Label { get; set; }
public string PLine { get; set; }
public string CLine { get; set; }
public string Genre { get; set; }
public string SubGenre { get; set; }
public string Artist { get; set; }
public int NumTracks { get; set; }
public int NumVolumes { get; set; }
public IList<ITerms> Terms { get; set; }
}
У меня есть 4 шага, где я использую шаблон «производитель / потребитель»с BlockingCollections для управления этими процессами.Это производственная линия, и я изменяю состояние объекта после его завершения, делаю копию статистики и ставлю в очередь следующий процесс, где он ожидает, когда будет выполнен следующий процесс / задача.
Я нахожусь вВ этот критический момент проектирования архитектуры мне нужно взглянуть на сериализацию некоторых из BlockingCollections в БД, или я могу запустить около 10 миллионов объектов вышеупомянутого типа в канале на сервере Highend.
У меня есть очередь, выделенная для статистики каждого процесса. Т.е. Timetaken / Success для пользовательского интерфейса Или я должен смотреть на хранение этой информации с объектами?
Скорость / Эффективность критически важны в этом процессе.
Существуют ли способы расчета требований к памяти или это случай, когда это не так, и смотрите
Обновление На этом этапе мне не нужно сохранять данные для сбоев и т. Д.поскольку объекты метаданных модифицируются и записываются на диск ... то есть необработанная папка / обработанная папка