Wir beginnen mit einer verteilten Caching-Strategie auf unserer zentralen RavenDb-Datenbank. Als Teil dieser Strategie rufen wir das Etag eines Dokuments aus RavenDb und einen Wert des Objekts aus dem lokalen Azure-Blob-Speichercache ab.Abruf von RavenDb Etags ist langsam
Unsere Objekte sind extrem selten geändert (10-100 Objektänderungen pro Tag), sind aber extrem häufig abgerufen (ca. 5000 Objekt Auslagerungen eine Minute und wachsend)
Dies ist eine Multi-Threaded-Umgebung und interne RavenDB Cache ist nicht groß genug, um alle Objekte im AggresiveCache-Modus zu speichern.
Wie auch immer, wir sehen schreckliche Zeiten mit dem Abruf von Etags von Raven. Zwischen 1 und 10 Sekunden (!!! ???) Was machen wir falsch? Dies ist der Code
return _session.Advanced.DocumentStore.DatabaseCommands.Head(id).Etag;
keine Möglichkeit, nur die Etag zu bekommen, ohne das vollständige Dokument zu laden? Es macht keinen Sinn, das vollständige Dokument zu bekommen, wenn Etag wahrscheinlich separat oder zumindest mit speziellen Bestimmungen in Raven gespeichert wird. – Igorek
Die Gesamtkosten sind ziemlich gleich, es sei denn, das Dokument ist sehr groß –