2010-11-22 2 views
2

Я понимаю теорию значений шардинга в Google App Engine, как описано здесь:GAE - Запросы на sharded свойства

http://code.google.com/appengine/articles/sharding_counters.html

но что происходит, когда я хочу, чтобы выполнить запрос на значении, которое я «Я оштрафован? Я не могу просто запросить значение, потому что он был беспорядочно разбит среди N разных счетчиков. Является ли решение просто суммировать эти значения, иногда обновляя мою основную сущность? Мне любопытно посмотреть, какие решения другие придумали для этой проблемы.

EDIT: Я только что открыл API очереди задач, и похоже, что это может быть решение для обновления основного значения в фоновом режиме. Кто-нибудь пытался использовать это параллельно с осколками?

ответ

0

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

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

http://www.google.com/events/io/2010/sessions/high-throughput-data-pipelines-appengine.html

Смежные вопросы