2017-08-13 52 views
0

我們開始在我們的中心RavenDb數據庫之上使用分佈式緩存策略。 作爲此策略的一部分,我們正在從RavenDb中檢索文檔的Etag,並從本地Azure blob存儲緩存中檢索對象的值。RavenDb Etags的檢索速度很慢

我們的目標是改變非常頻繁(每天10-100對象的變化),但都極爲頻繁檢索(約5000對象檢索一分鐘,生長)

這是一個多線程的環境,以及內部RavenDb緩存不足以在AggresiveCache模式下存儲所有對象。

無論如何,我們看到了從Raven中檢索Etags的糟糕時刻。 1到10秒(!!! ???)我們做錯了什麼?這是代碼

return _session.Advanced.DocumentStore.DatabaseCommands.Head(id).Etag; 

回答

1

您正在每次通話的請求,這意味着你要付出很多已經獲取文檔的成本。 直接加載文檔可能會更便宜,而不是執行文件頭

+0

無法在沒有加載完整文檔的情況下獲取Etag?當Etag可能單獨存儲或至少在Raven中使用特殊條款時,無法獲得完整文檔 – Igorek

+0

總成本幾乎相同,除非文檔非常大 –