高度可靠的存储,适用于“长”/时间序列

时间:2011-03-01 19:59:30

标签: java persistence

在我正在处理的应用程序中,我需要一个后写数据日志。也就是说,应用程序将数据累积在内存中,并且可以将所有数据保存在内存中。但是,它必须坚持,容忍合理的错误,并允许备份。

显然,我可以写一个SQL数据库;德比可以轻松嵌入。我并不是非常喜欢处理SQL API(JDBC,但是有口红),我不需要任何查询,索引或其他装饰。记录消失了,重启后我需要把它们全部读回来。

还有其他合适的替代品吗?

2 个答案:

答案 0 :(得分:3)

尝试使用一个简单的日志文件。

随着数据的进入,存储在内存中并写入(追加)到文件中。 write()后跟fsync()将保证(在大多数系统上,仔细阅读您的系统和文件系统文档)数据被写入持久存储(光盘)。这些是任何数据库引擎用于在持久存储中获取数据的相同机制。

重新启动时,重新加载日志。有时,修剪日志文件的前面,以便数据使用不会无限增长。或者,将日志文件建模为循环缓冲区,其大小与内存中可容纳的大小相同。

答案 1 :(得分:1)

你看过(现在的Oracle)Berkeley DB for Java吗? “直接持久层”实际上非常简单易用。 DPL的文档here

备份的不同选项带有一些实用程序。运行嵌入式。

(许可:我相信的BSD许可证的一种形式。)