Как часто делает кэш-память на Google AppEngine, теряют данные?

Кэш-память в целом и на AppEngine в определенном ненадежна в том смысле, что мои данные могут быть удалены из кэша по любой причине в любом моменте времени. Однако в некоторых случаях могли бы быть случаи, где маленький риск может стоить добавленной производительности с помощью кэш-памяти, мог дать, такие как обновление некоторых данных в кэш-памяти, которая периодически сохраняется некоторому другому, более надежному хранению. Есть ли какие-либо числа от Google, который мог дать мне признак фактической вероятности, что запись кэш-памяти будет потеряна от кэша перед его временем истечения срока, учитывая, что я остаюсь в рамках своих квот?

Есть ли какие-либо причины кроме отказа оборудования и административных операций, таких как машины в дата-центрах, обновляемых/перемещаемых/заменяемых, который заставил бы записи быть удаленными из кэш-памяти преждевременно?

8
задан SoftMemes 15 April 2010 в 23:49
поделиться

3 ответа

Дело не в том, что данные могут быть потеряны, а в том, что если он утерян, его легко вернуть.

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

Если вас беспокоит нагрузка для обычного задания, как насчет настройки задания на обновление счетчика позже, используя очередь задач?

2
ответ дан 5 December 2019 в 18:58
поделиться

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

В дополнение к указанным вами причинам, Memcache и другие подходы к кэшированию имеют ограничения на количество элементов, которые они будут хранить (обычно отбрасывая наименее недавно использованные, когда кеш заполнен), а также часто устанавливают другие политики недействительности кеша ( например, промойте все неиспользованное в течение одного часа).

Если вы не настраиваете и не управляете кешем самостоятельно, у вас НЕТ гарантии, когда и как элементы могут быть удалены из кеша намеренно / намеренно.

5
ответ дан 5 December 2019 в 18:58
поделиться

Любой конкретный ответ, который вы получите на этот вопрос, на 100% может быть изменен.

Тем не менее, я использовал кэш памяти при небольшой нагрузке, чтобы накапливать данные в течение 15 минут или около того, прежде чем записывать их в хранилище данных. Однако это было для совершенно некритичных аналитических данных. Не полагайтесь на это.

2
ответ дан 5 December 2019 в 18:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: