Это быстрее / эффективнее / дешевле обслуживать из Memcache или в интернет-магазине? - PullRequest
3 голосов
/ 11 февраля 2012

У меня есть данные файла (в частности, файлы языковых ресурсов).Эти файлы автоматически генерируются с использованием API машинного перевода (goog translate).Они меняются относительно редко, но когда изменяется основной (добавляется или изменяется новая строка), все остальные языковые файлы обновляются автоматически.

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

Что быстрее / эффективнее?

Ответы [ 3 ]

5 голосов
/ 11 февраля 2012

Ник Джонсон описал компромисс скорости в этой статье .Blobstore лучше всего справляется с загрузками от пользователей.Для вашей проблемы вы, вероятно, получите самую быструю и самую дешевую производительность, используя memcache, поддерживаемый хранилищем данных.В python NDB автоматизирует это для вас.В Java используйте objectify .

1 голос
/ 11 февраля 2012

Это действительно зависит от того, что вы служите. Когда люди говорят о хранилище блогов, они обычно говорят о больших данных (медиафайлах), которые не помещаются в memcache. Наше приложение обслуживает много аудиофайлов, и я обнаружил, что для этого особенно подходит Blobstore, поскольку он поддерживает прогрессивную загрузку http.

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

Теперь хранилище данных это другой зверь ...

0 голосов
/ 11 февраля 2012

Ответ на каждый вопрос «который быстрее» - «сравните его».Особенности вашей настройки (скорость диска, задержка доступа к памяти, пропускная способность, демоническое заражение) в лучшем случае дают любой общий ответ о влиянии на производительность.Тот факт, что вы работаете в Google App Engine, только усложняет задачу - вы не знаете какое оборудование вы собираетесь получить!Так что проверьте это.

Тем не менее, вполне вероятно, что локальный (ish) memcache, как предоставляет Google, будет быстрее, чем все, что может включать в себя удар по диску.Задержка доступа к памяти на порядок быстрее, чем задержка доступа к диску, а пропускная способность памяти в сто и более раз превышает пропускную способность даже самых быстрых твердотельных накопителей на рынке сегодня.

Итак, если вы можете позволить себе оперативную память, а выесли вы хотите максимально быстро реагировать, хранение данных в памяти обычно более эффективно.

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