我有一个软件应用程序,它可以使用机器的所有内核在内存中拥有超过一百万个对象。每个对象都有一个唯一的ID,并且它自己的内部StateObject
需要暂时保留在某个地方,StateObject
的任何更改都会导致使用新的更新数据覆盖之前的StateObject
。
我想知道我是否应该阅读&将状态写入数据库或者我应该只在机器上本地创建文本文件,每个文件都使用对象的uniqueId命名,每个对象将读取和写入StateObject
的json字符串到文件中。
哪个选项会产生更好的表现?数据库还是只写到本地文件系统?我应该使用uniqueId写入多个文件,还是使用多行写入一个文件,其中第一列将是唯一ID?经过一些研究后,我发现并行读写在HDD上较慢,但在SSD上较快。所以我想我必须使用SSD。
更新
写入磁盘的原因是因为有太多Objects
s(> 1亿)并且每个object
所有StateObject
在内存中都会很昂贵所以我如果没有使用,请将Object
的内部State
(StateObject
)保留在磁盘上。并且保证写入对于处理该对象的下一个请求非常重要。如果由于某种原因写入失败,则在处理下一个更耗时的请求之前,将从远程API构建StateObject
。