datomic数据库——ACID(1)

ACID

datomic数据库的事务是ACID的:Atomic(原子性),Consistent(一致性),Isolated(隔离性),Durable(持久性)。

原子性

原子性要求每一个事务要么就全部执行,要么就全不执行。如果事务中某部分操作失败,那么整个事务也就失败,数据库应该没有任何变化。

datomic的事务(transaction)在被写入到持久储存的数据库的过程,是一个原子性写操作,所以能够保证其原子性;而在每一个客户端(peer)的程序内部,datomic是存在于内存中的(这是datomic数据库高性能的一个重要因素)。内存中的datomic使用的是一个不可变数据结构,同时,对它的每个更新操作都是在一个原子性操作中完成。

一致性

一致性确保任何事务能够将数据库从某一合法状态改变到另一种合法状态。

datomic通过以下途径保证一致性:

  • 每个客户端(peer)将已完成的事务看作是一个特殊的时间点,我们称之为时间戳(time basis)。
  • 在一个系统中,事务的时间戳(time basis)是事务在该系统中的一个全局性的指令(ordering),所有的客户端总是能够看到该时间戳之前(包含该时间戳)的所有事务(也就是说,datomic的所有事务都被存储),并且所有的事务都是按时间顺序排列的。

另外,datomic还提供了一些类用于访问这些时间戳信息:

  • 每个存储于datomic数据库中的事实(fact)都知道组成datom的每个事务的时间戳。
  • 每个数据库值(注:datomic设计哲学中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值