摘要: 本文转载自nosql-wiki.org日志保证了数据的持久性和事务的原子性。可以简单的认为日志是一个不断追加日志记录的文件。单条日志记录是一段二进制缓冲区。 下面是本文会使用到的几条通用的日志记录:标示trasaction的开始标示transcatoin成功提交,所有对数据的修改都已经成功。由于cache的存在,在日志中看到COMMIT并不一定意味着 数据的修改都已经持久化。日志的目的就是保证所有COMMIT的事务的修改在程序程序异常退出的情况下能够保留;所有没有COMMIT 的事务的修改在程序异常退出的情况下都不会保留,就像这些事务根本就没有START一样。事务T的所有修改都不能保留下来,最 阅读全文
posted @ 2011-09-08 11:05 sealake 阅读(494) 评论(0) 推荐(0) 编辑
摘要: 本文转载自淘宝核心系统团队博客,文章描述了两个方面的内容,数据库事务的约束条件,以及分布式系统中事务性保证所用到的基础的两阶段提交策略。对理解分布式系统的一致性模型有一定的帮助。1 事务的ACID事务是保证数据库从一个一致性的状态永久地变成另外一个一致性状态的根本,其中,ACID是事务的基本特性。A是Atomicity,原子性。一个事务往往涉及到许多的子操作,原子性则保证这些子操作要么都做,要么都不做,而不至于出现事务的部分操作成功,而另外一部分操作没有成功。如果事务在执行的过程中发生错误,那么数据库将回滚到事务发生之前的状态。比如银行的转账服务,这个事务的最终结果一定是:某个账户的余额增加了 阅读全文
posted @ 2011-09-08 11:02 sealake 阅读(809) 评论(0) 推荐(0) 编辑