Я работаю над веб-сайтом электронной коммерции, предназначенным для представления большого количества SKU. Схема SQL Server, описывающая эти продукты, нормализована в той мере, в которой несколько лет назад стало неоправданно медленным получение необходимой информации для представления клиентам, поэтому мы изменили нашу инфраструктуру таким образом, чтобы мы несли затраты на загрузку данных для каждый продукт один раз и затем сохраняет эти данные в кэше AppFabric (ранее Velocity).Зачем использовать AppFabric, когда денормализованные данные SQL Server также работают?
С течением времени сложность требований, предъявляемых к нашей инфраструктуре AppFabric, выросла (представьте себе), заставив нас потратить значительное количество времени на написание кода для обработки извлечения данных из нашего кеша, обновления данных, включая инкрементные обновления и т. Д.
У нас есть большая часть наших данных о продуктах, хранящихся в денормализованной форме в боковой базе данных, поэтому для экспериментов я написал консольное приложение для случайного выбора одного из наших ~ 150K SKU за один раз, а затем извлечение записи для этого продукта из нашей денормализованной таблицы.
Я был удивлен, обнаружив, что мне удалось выбрать эти записи примерно в то же среднее время, что я мог бы выбрать запись из нашего кэша AppFabric, среднее значение в 2,5 мс в обоих случаях. Я уверен, что в обоих случаях данные поступают из кэша в памяти того или иного типа, будь то AppFabric или кэш диска, а 2,5 мс сталкиваются с минимальным количеством времени для совместной поездки по сети.
Это заставляет меня думать, что нам может быть лучше, просто используя денормализованные данные в SQL Server для наших высоких требований к нагрузке/высокой производительности. Инструменты управления для данных на базе SQL Server намного лучше. Все разработчики нашей команды умеют использовать Management Studio, тогда как с AppFabric у нас есть один dev, который может использовать PowerShell для a) Дайте нам количество записей, хранящихся в кеше, и b) дамп кэша. Любые другие функции управления, которые мы должны создать сами.
Это заставляет меня спросить, почему кто-то захочет использовать AppFabric вообще. Мы не заботимся о стоимости, потому что затраты на разработку, которые мы должны применить к решению, основанному на AppFabric, значительно перевешивают даже стоимость лицензирования SQL Server.
Благодарим вас за любую обратную связь, которую вы можете предоставить, чтобы помочь нашей команде решить лучшее направление для продвижения вперед.
Возможно, вы захотите взглянуть на Инструмент администрирования AppFabric как средство снижения зависимости от этого одного разработчика. Http://mdcadmintool.codeplex.com/ – PhilPursglove