我正在开始研究一个需要在其数据库上提供 ACID 语义的项目。
由于数据的性质,它不适合存储在常见的现成系统(关系或键值)中。
关于如何实现必须提供 ACID 语义的系统,有哪些好的资源?
我的典型谷歌搜索返回更多关于已经提供 ACID 语义的系统的信息,而不是如何去实现这样的系统。
我正在开始研究一个需要在其数据库上提供 ACID 语义的项目。
由于数据的性质,它不适合存储在常见的现成系统(关系或键值)中。
关于如何实现必须提供 ACID 语义的系统,有哪些好的资源?
我的典型谷歌搜索返回更多关于已经提供 ACID 语义的系统的信息,而不是如何去实现这样的系统。
如果你懂德语,我会推荐
“Einführung”,意思是“介绍”,是一种严重的轻描淡写。这本书有几章介绍了如何物理布局数据、WAL(预写日志记录)、可序列化与不可序列化的历史记录、失败后重新启动等等。
不过,我怀疑你真的想写这样的东西。我是否需要提醒您,理论上您可以在关系模型之上对任何数据结构进行建模?
看看乐观并发。使用 STM(软件事务内存)方法而不是锁定。更快,更容易实施。使用 SERIALIZABLE 隔离级别,您每秒可以有 10,000 或 100,000 个 ACID 事务。无需放松事务的隔离属性。
另外,我建议考虑为内存缓存和磁盘数据使用部分持久的数据结构。它允许读取器永远不会被写操作阻塞。
有关我正在处理的数据库,请参见http://bergdb.com/ 。请随时与我联系以讨论这个有趣的话题。/ 弗兰斯·伦德伯格
对于我对定义不明确的 ACID 属性的看法:
http://blog.franslundberg.com/2013/12/acid-does-not-make-sense.html