Является ли совместный кэширующий экземпляр Azure внутренним?

Изучая кэширование Azure, я наткнулся на эту статью в котором говорится

Если указано совместное кэширование ролей, размер кэша определяется путем взятия указанного процента памяти виртуальной машины. Если указано кэширование выделенной роли, вся доступная память виртуальной машины используется для кэширования. Если настроено два экземпляра роли, используется объединенная память виртуальных машин.

но является ли совместно расположенный экземпляр кэша специфичным (доступен для чтения-записи только экземпляром, на котором он работает) или специфичен для роли (доступен для чтения-записи любым экземпляром в роли)?

Я не мог найти четкого ответа на этот вопрос... Я обнаружил, что если вы хотите, чтобы две или более ролей обращались к одному и тому же кешу, этот "кэш" должен быть сам по себе выделенной ролью...

РЕДАКТИРОВАТЬ 1
Пример сценария: 3 экземпляра (i1, i2 и i3) одной роли, использующие совмещенный кеш, каждый из которых имеет, скажем, 100 МБ кеша. Если i1 записывает в кеш, значит, i2 может его прочитать? Может ли i3 изменить кэшированную информацию?


person Leonardo    schedule 28.02.2013    source источник


Ответы (1)


Совместный кэш доступен для всех экземпляров в развертывании. Это просто означает, что экземпляр запускает кэш на том же хосте, что и веб-/рабочие роли. Вам просто нужно знать имя роли для доступа к кешу.

Разница между выделенным и совмещенным заключается в доступной памяти для кэширования и вычислительной мощности, доступной для обслуживания кэша. Дешевле использовать совместное размещение, но выделенное будет шагом вперед в производительности (и, возможно, в цене), поскольку его единственная задача – управление кешем. Существует также гибкость, если вы используете выделенную роль кэша, поскольку вы можете использовать ВМ большего размера для своей рабочей/веб-роли, но меньшего размера ВМ для роли кэша (или наоборот, в зависимости от ваших потребностей). .

Когда вы настраиваете свой кеш, вам просто нужно знать, какая роль размещает кластер кеша, а точнее имя роли.

<dataCacheClients>
  <dataCacheClient name="default">
    <autoDiscover isEnabled="true" identifier="[cache cluster role name]" />
  </dataCacheClient>
</dataCacheClients>
person SliverNinja - MSFT    schedule 28.02.2013
comment
Для вашего сценария необходимо понимать, что Azure Cache всегда является кластером — см. эта статья MSDN о кэшировании Windows Azure. Из MSDN: Выполняемые экземпляры этой роли объединяют ресурсы памяти для формирования кластера кеша. Каждый экземпляр в роли видит один кластер — они не видят отдельные кеши. Так что да — i1, i2, i3 имеют доступ для чтения и записи к кластеру кэш-памяти объемом 300 МБ — независимо от того, находится ли он в одном месте или выделен. - person SliverNinja - MSFT; 28.02.2013
comment
Этот ответ правильный. Хотя элемент кэша может принадлежать определенной роли, он доступен всем другим ролям (в кластере). Вы не знаете (или не заботитесь), в каком конкретном экземпляре находится элемент кеша. Служба кэширования позаботится об этом за вас. См. этот вопрос для аналогичного обсуждения. - person Simon Munro; 01.03.2013
comment
Я считаю, что ответ заключается в том, что совместно расположенный/выделенный кластер кэша доступен для ЛЮБОЙ роли в логическом развертывании облачной службы. - person Bart Czernicki; 11.03.2013