2014-04-24 12 views
1

Datomic允許我們在相同查詢中使用use multiple inputs即多個數據服務器。多個輸入上的數據組查詢性能與單個輸入一樣快?

由於查詢是performed locally in the peers, using the actual db indexes inside the peer,它似乎正在運行查詢,即從多個數據服務器加入數據的查詢幾乎可能幾乎(如果不如在單個數據服務器上執行類似的加入)那麼快。

是這種情況還是在使用多個來源時查詢引擎工作方式存在質的差異? (如果沒有的話,我們可以避免這樣一個事實,即在一個數據服務器中的所有寫操作都必須通過一個單獨的處理器,通過分片來任意縮放寫入性能。對RDBMS分片的好處是查詢性能和在接合時的效率)

編輯:

事實證明,即使裏面一個datomic服務器,not all queries are equally fast

實體你會經常查詢ACR oss - 與我們示例數據中的社區相關實體一樣 - 應位於的同一分區中,以提高查詢性能

因此,讓我改一下:是單個datomic服務器上跨datomic服務器大致一樣快和高效(內存,CPU使用率,網絡)爲跨分區查詢的查詢?

回答

3

Datomic的查詢引擎並不關心底層索引段來自哪裏,因此與使用單個系統索引的查詢相比,使用多個不同系統索引的查詢不會造成任何損失。這就是說,你將不得不以這樣一種方式來組織你的數據,即在N個系統中加入有用的屬性來做任何有趣的事情。這可能會對性能產生影響,例如選擇比簡單實體ID更大的值類型會減少適合緩存的數據量。

相關問題