我正在阅读http://www.h2database.com/html/advanced.html#durability_problems我发现
一些数据库声称它们可以保证持久性,但这种说法是错误的。针对 H2、HSQLDB、PostgreSQL 和 Derby 运行了持久性测试。所有这些数据库有时都会丢失已提交的事务。该测试包含在 H2 下载中,请参阅 org.h2.test.poweroff.Test
它还说
如果不能接受丢失交易,则应使用笔记本电脑或 UPS(不间断电源)。
那么是否有任何数据库是持久的。该文件说 fsync() 命令和大多数硬盘驱动器不服从 fsync()。它还谈到没有可靠的方法来刷新硬盘驱动器缓冲区
那么,是否有一段时间,承诺的交易会变得持久,所以我们可以购买提供最少那么多备用电源的 ups。
还有一种方法可以知道提交的事务是持久的。假设我们不购买 ups,并且在知道交易是持久的之后,我们可以显示成功消息。