Уменьшите операцию чтения хранилища данных - PullRequest
7 голосов
/ 08 ноября 2011

При новой схеме ценообразования Google App Engine я получаю неожиданную таблицу цен, как показано ниже.

enter image description here

Виноват в том, что я значительно увеличил количество операций чтения из хранилища данных всего за несколько часов, хотя на мой DownloadServlet

поступило менее 50 вызовов

DownloadServlet просто читает BLOB-объекты (обычно менее 1 МБ) из базы данных и возвращает их пользователю. Могу ли я что-нибудь сделать, чтобы оптимизировать свой код, чтобы я так быстро не превышал лимит свободной квоты.

Ответы [ 2 ]

9 голосов
/ 09 ноября 2011

Вы делаете много операций чтения, потому что вы разбили свои файлы на блоки по 1 МБ в хранилище данных.В результате вы должны выполнить одно чтение для каждого блока, а поскольку вы не используете имена или идентификаторы ключей, вы также делаете запрос для каждого из них, еще больше сокращая свою квоту.вместо этого в магазине.

3 голосов
/ 08 ноября 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...