В общем, каждый раз, когда возникает вопрос о подсчете, все согласны с тем, что с GAE вы должны предварительно вычислить все, что можете. Я бы подошел к вашему конкретному требованию, касающемуся 10 лучших результатов, - создать объект, который будет иметь самые высокие оценки, и обновлять позицию всякий раз, когда у вас появляется новый результат, который перевешивает лучшие 10.
Когда вы вычисляете балл, вы можете запросить, сколько других баллов больше, чем вычисленный балл. Если счет больше 10, вам не нужно обновлять свои оценки. Это будет в большинстве случаев. Если количество равно или больше 10, вам необходимо обновить заказ, чтобы вы получили свои первые 10 и вставили новый счет в зависимости от ситуации.
Чтобы обработать компонент времени, я бы запустил какой-нибудь процесс, ежедневно проверяющий, нужно ли выселять счет из первой десятки, если так, то возьмите следующий наивысший, чтобы заменить его.
Вот несколько ответов на похожую тему, которые касаются шаблонов проектирования и логики, подходящей для хранилища данных GAE: Каков наилучший способ подсчета результатов в GQL?