实施 ACID

Posted

技术标签:

【中文标题】实施 ACID【英文标题】:Implementing ACID 【发布时间】:2010-10-03 05:04:12 【问题描述】:

我正在开始研究一个需要在其数据库上提供 ACID 语义的项目。

由于数据的性质,它不适合存储在常见的现成系统(关系或键值)中。

关于如何实现必须提供 ACID 语义的系统,有哪些好的资源?

我的典型 Google 搜索返回更多关于已经提供 ACID 语义的系统的信息,而不是如何去实现这些系统。

【问题讨论】:

【参考方案1】:

ARIES 是一种用于实现 ACID 数据库的流行算法(例如 SQL Server 使用此算法)。

    Wikipedia on ARIES The ARIES paper

【讨论】:

我一定会看看这些资源。这似乎是一个很好的起点。 -- 谢谢【参考方案2】:

如果你懂德语,我会推荐

Alfons Kemperer:Datenbanksysteme - Eine Einführung,ISBN 3486576909

“Einführung”,意思是“介绍”,是一种严重的轻描淡写。这本书有几章介绍了如何对数据进行物理布局、WAL(预写日志记录)、可序列化与不可序列化的历史记录、失败后重新启动等等。

不过,我怀疑你真的想写这样的东西。我需要提醒您,理论上您可以在关系模型之上对任何数据结构进行建模吗?

【讨论】:

有趣。如果我现在能读德语,我当然会喜欢的。当然,您可以在关系数据库上对任何内容进行建模很好,但是如果您有一个非常具体的数据集,如果它有一个非常具体的读取模式怎么办?关系数据库的灵活性被浪费了。 与其浪费 6 个月的生命,不如浪费关系数据库的灵活性......【参考方案3】:

看看乐观并发。使用 STM(软件事务内存)方法而不是锁定。更快,更容易实施。使用 SERIALIZABLE 隔离级别每秒可以有 10,000 或 100,000 个 ACID 事务。无需放松事务的隔离属性。

另外,我建议考虑为内存缓存和磁盘数据使用部分持久的数据结构。它允许读取器永远不会被写入操作阻塞。

有关我正在处理的数据库,请参阅 http://bergdb.com/。请随时与我联系以讨论这个有趣的话题。 / 弗兰斯·伦德伯格

对于我对定义不明确的 ACID 属性的看法:

http://blog.franslundberg.com/2013/12/acid-does-not-make-sense.html

【讨论】:

以上是关于实施 ACID的主要内容,如果未能解决你的问题,请参考以下文章

98份 项目管理实施规划实施计划书实施方案实施细则

项目管理合集丨实施规划丨实施计划书丨实施方案丨实施细则WordPPT,可下载

什么是软件实施?软件实施前景几何?软件实施的面试题有那些?

sap实施顾问基本职责

DDD实施规范

创建实施人员过程(实施三)