我可以在内存中运行对象,或者我需要查看序列化到DB

本文关键字:序列化 DB 或者 内存 运行 对象 我可以 | 更新日期: 2023-09-27 18:17:43

我正在开发一个多线程应用程序,它的核心大约有4个基本实体

e。g

 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来管理这些过程。它是一条生产线,我在一个对象上修改状态,一旦完成,就复制状态。Enque进入下一个进程队列,等待下一个进程/任务执行。

我正处于架构设计的关键时刻,我是否需要考虑将一些BlockingCollections序列化到DB,或者我是否可以在高端服务器的管道中运行大约1000万个上述类型的对象。

我有一个队列专门用于统计每个进程,即时间/成功的UI或者我应该考虑存储这些信息与对象?

在这个过程中,速度/效率是至关重要的。

是否有任何方法来计算内存需求,或者这是一个吮吸它& &;看到

Update在这个阶段,我不需要为崩溃等持久化数据,因为元数据对象被修改并写入磁盘…E未处理文件夹/已处理文件夹

我可以在内存中运行对象,或者我需要查看序列化到DB

你没有真正描述你的应用程序的形式因素,所以我首先说这取决于。

如果有一个需要你的应用程序重新启动,或者如果有一个远程的机会,你的应用程序可能有bug,那么我建议你的实时数据持久化到某种形式的数据存储(数据库,文件等),而它是在飞行。当然,这只有在你不想丢失数据的情况下才有意义。

编辑:考虑到你的编辑,我不认为这真的是必要的,除非你想保存任何以前的数据处理的结果。