我们开始在我们的中央RavenDb数据库之上使用分布式缓存策略 . 作为此策略的一部分,我们从RavenDb检索文档的Etag,并从本地Azure blob存储缓存中检索对象的值 .
我们的对象很少更改(每天10-100个对象更改)但是经常检索(每分钟大约5000个对象检索并且正在增长)
这是一个多线程环境,内部RavenDb缓存不够大,无法在AggresiveCache模式下存储所有对象 .
无论如何,我们看到从Raven中检索Etags的可怕时期 . 1到10秒之间(!!! ???)我们做错了什么?这是代码
return _session.Advanced.DocumentStore.DatabaseCommands.Head(id).Etag;
1 回答
您是在每次通话时发出请求,这意味着您必须支付很多已经提取文档的费用 . 直接加载文档而不是执行Head可能会更便宜