【发布时间】:2010-10-03 05:04:12
【问题描述】:
我正在开始研究一个需要在其数据库上提供 ACID 语义的项目。
由于数据的性质,它不适合存储在常见的现成系统(关系或键值)中。
关于如何实现必须提供 ACID 语义的系统,有哪些好的资源?
我的典型 Google 搜索返回更多关于已经提供 ACID 语义的系统的信息,而不是如何去实现这些系统。
【问题讨论】:
标签: acid
我正在开始研究一个需要在其数据库上提供 ACID 语义的项目。
由于数据的性质,它不适合存储在常见的现成系统(关系或键值)中。
关于如何实现必须提供 ACID 语义的系统,有哪些好的资源?
我的典型 Google 搜索返回更多关于已经提供 ACID 语义的系统的信息,而不是如何去实现这些系统。
【问题讨论】:
标签: acid
ARIES 是一种用于实现 ACID 数据库的流行算法(例如 SQL Server 使用此算法)。
【讨论】:
如果你懂德语,我会推荐
“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
【讨论】: