Механизм приложения автоматически кеширует частые запросы?
Кажется, я помню, что где-то читал, что механизм приложений Google автоматически кэширует результаты очень частых запросов в память, чтобы они быстрее извлекались.
Это правильно?
Если да, есть ли плата за чтение хранилища данных по этим запросам?
3 ответа
Если вы используете Python и новый API ndb, он ДОЛЖЕН автоматически кэшировать сущности, поэтому, если вы выбираете сущности по ключу, он будет кэширован:
http://code.google.com/appengine/docs/python/ndb/cache.html
Как говорится в комментариях, запросы не кэшируются. Кэшированные запросы не попадают в хранилище данных, поэтому вы экономите на чтениях.
Если вы используете Java или другие API для доступа к хранилищу данных, то нет, кэширование отсутствует.
Отредактировано Исправлена ошибка, связанная с кэшированием запросов.
Я думаю, что движок приложения ничего для вас не кеширует. Хотя может быть так, что внутренне он кеширует некоторые вещи на долю секунды, я не думаю, что вам следует полагаться на это.
Я думаю, что вы будете платить обычное количество операций чтения для каждой сущности, которую вы читаете из каждого запроса.
Нет, это не так. Однако в зависимости от того, какую среду вы используете для доступа к хранилищу данных, будет использоваться memcache. Вы разрабатываете в Java или Python? Со стороны java, Objectify будет кэшировать GET автоматически, но не запросы. Имейте в виду, что существует большая разница с точки зрения производительности и кэшируемости между запросами и запросами в Python и Java.
Вы не платите за чтение хранилища данных для обращений к memcache.