После множества сбоев в работе нашего центрального RavenDb мы хотим кэшировать определенные объекты в хранилище BLOB-объектов Azure. Redis не имеет тех же гарантий SLA, что и ABS, поэтому Redis был исключен.
Получение и десериализация этих объектов происходит каждую минуту и должно происходить очень быстро.
Вот код, который мы пытаемся использовать для десериализации, однако он примерно в 5-6 раз медленнее, чем получение объектов из Raven. Все равно оптимизировать? Размер объекта около 8 МБ
var blob = container.GetBlockBlobReference(entityId + ".json");
var serializer = new JsonSerializer
{
ObjectCreationHandling = ObjectCreationHandling.Reuse,
NullValueHandling = NullValueHandling.Include,
ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
PreserveReferencesHandling = PreserveReferencesHandling.All,
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full,
TypeNameHandling = TypeNameHandling.All
};
using (var stream = new MemoryStream())
{
blob.DownloadToStream(stream);
stream.Position = 0;
using (var sr = new StreamReader(stream))
using (var jsonTextReader = new JsonTextReader(sr))
{
var accountOut = serializer.Deserialize<Account>(jsonTextReader);
}
}
GetBlockBlobReference
? Если так, боюсь, с АБС ничего не поделаешь. Может быть переход на базу данных SQL Azure? - person fharreau   schedule 10.08.2017