我不理解datomic.api/t->tx的含义,它接受t值并返回事务id。
T值不是在每个事务中递增的数据库属性吗?如果是这样的话,如何独立于任何数据库从它导出事务号?
发布于 2016-02-02 16:30:19
事务数据( Transaction Data,tx)是一个具有id的实体。t不是id,但是有一种有效的机制来发现tx的t,而对于tx则是t。这意味着您可以在一个时间范围内有效地查找事务。
T确实是一个值,它指示事务发生的顺序,尽管我不会称它为数据库的属性,也不会推测它是如何计算的,因为它没有定义,而且可能发生更改。没有定义的术语“事务号”,但我想您是在问,如果没有数据库属性,如何才能创建一个严格增加的数字。一个答案是使用一个时钟,并防止每个滴答的事务数超过一个。在任何情况下,这不是我们需要知道的实现细节,以便使用系统。
术语表提供了以下定义,我认为这些定义很有帮助:
数据库中的一个时间点。每个事务都被分配一个大于数据库中任何以前t的数值t值,并且所有进程都会看到ts的一致继承。事务值t可以用Peer.toTx转换为tx id。
表示事务的实体。数据体数据库中的每个数据都包括创建它的tx,从而允许恢复数据库的整个历史。事务自动与挂钟时间相关联,但在其他情况下是普通实体.特别是,应用程序代码可以对事务进行额外的断言。可以使用Peer.toT将tx实体id转换为事务t。
https://stackoverflow.com/questions/35157981
复制相似问题