2017-08-13 78 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

总成本几乎相同,除非文档非常大 –