关于Datomic的问题

Rob*_*sen 2 datomic

快速提问.

1)如果我执行交易,当该交易的结果返回时,是否所有同行都更新了?或者其他同行最终会反映交易的变化吗?

2)同伴如何更新他们的状态?根据我的理解,Peers可以直接访问存储,并且是他们自己的缓存.因此,当他们没有你要求的东西时,我想他们只是从存储中检索它.同行如何知道他们的信息何时过时?

3)存储/后端的选择有多重要?由于像MySQL等类似的db是针对服务器/客户端关系进行了优化的,因此不可能创建Datomic优化的存储解决方案吗?或者它不值得吗?

a2n*_*ade 5

1)保证更新的唯一对等方是请求事务的对等方.其他人最终会看到变化.如果您的应用程序需要对等协调,则需要使用阻塞(sync connection t)功能来实现它.有关更多信息,请参阅datomic-docs.

2)交易者向所有连接的对等体广播新的变化.对等状态由来自交易者的新颖性和他们直接从存储中检索的数据段组成.同样,该sync函数可以与事务处理器通信,以确保对等体阻塞,直到在调用之前写入的所有事务sync都可用.大多数其他函数不与事务处理器或块通信.

3)如果您的系统不需要巨大的写入可扩展性并且您的应用程序数据往往适合内存,那么特定存储服务的选择通常是无关紧要的,当然,除了它们的操作功能(备份,管理工具等). )与Datomic无关.请参阅存储后端如何影响Datomic?更多细节.