快速提問。關於Datomic的問題
1)如果我執行一個事務,那個事務的結果返回時,是否所有對等點都更新?或者其他同行最終會反映交易的變化嗎?
2)同齡人如何更新他們的狀態?據我所知,Peers可以直接訪問存儲,並且是他們自己的緩存。所以當他們沒有你想要的東西時,我想他們只是從存儲中檢索它。同行如何知道他們的信息何時過時?
3)存儲/後端的選擇有多重要?因爲像MySQL和類似的db已經針對服務器/客戶端關係進行了優化,是不是有可能創建一個Datomic優化的存儲解決方案?或者它不值得嗎?
快速提問。關於Datomic的問題
1)如果我執行一個事務,那個事務的結果返回時,是否所有對等點都更新?或者其他同行最終會反映交易的變化嗎?
2)同齡人如何更新他們的狀態?據我所知,Peers可以直接訪問存儲,並且是他們自己的緩存。所以當他們沒有你想要的東西時,我想他們只是從存儲中檢索它。同行如何知道他們的信息何時過時?
3)存儲/後端的選擇有多重要?因爲像MySQL和類似的db已經針對服務器/客戶端關係進行了優化,是不是有可能創建一個Datomic優化的存儲解決方案?或者它不值得嗎?
1)唯一保證更新的對等體是請求事務的對等體。其他人最終會看到變化。如果您的應用程序需要對等協調,則需要使用阻止(sync connection t)
函數來實現它。有關更多信息,請參見datomic-docs。
2)交易者向所有連接的對等方廣播新的改變。同伴狀態由來自交易者的新穎性和他們直接從存儲中檢索的數據段組成。同樣,sync
函數可以與交易者進行通信,以確保對等點阻塞,直到在調用sync
之前寫入的所有交易可用。大多數其他功能不與交易者或交易所溝通。 3)如果您的系統不需要很大的寫入可擴展性,並且您的應用程序數據往往適合內存,那麼選擇特定的存儲服務通常是無關緊要的,當然,除了它們的操作功能(備份,管理工具等)與Datomic無關。有關更多詳細信息,請參閱How does the storage backend influence Datomic?。