2010-11-22 12 views
2

ich die Theorie der sharding Werte in Google App Engine verstehen, wie hier beschrieben:GAE - Abfragen auf sharded Eigenschaften

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

aber was passiert, wenn ich eine Abfrage auf einen Wert ausgeführt werden soll, dass ich geschärft? Ich kann nicht einfach nach dem Wert fragen, weil er zufällig unter N verschiedenen Zählern aufgeteilt wurde. Ist es die Lösung, diese Werte nur gelegentlich zu addieren, um meine Haupteinheit zu aktualisieren? Ich bin gespannt, welche Lösungen andere für dieses Problem gefunden haben.

EDIT: Ich habe gerade die Task-Warteschlange-API entdeckt, und es sieht so aus, als ob es eine Lösung für die Aktualisierung des Hauptwerts im Hintergrund sein könnte. Hat jemand das parallel zum Sharding versucht?

Antwort

0

Sie haben Recht, Sie können die Gesamtsumme in einer anderen Datenspeicherabfrage nicht in einer einzigen Aufnahme verwenden, da sie zwischen den Shards aufgeteilt ist. Sie können jedoch eine erste Abfrage ausführen, um alle Shards zu sammeln, sie im Speicher zu summieren und dann die ursprüngliche Abfrage mit dieser Summe auszuführen.

darüber hinaus, ja, die Aufgabenwarteschlange ist definitiv ein guter Ansatz für die Arbeit wie diese im Hintergrund. Werfen Sie einen Blick auf dieses Gespräch für Ideen:

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