Pull to refresh

Comments 28

Ещё не открывая кат, увидев картинку в посте, я понял, о чём будет первый коммент.
Все так плохо?..
Я понимаю, что дизайн программистский, что бы мне с ним сделать? Шрифты одинаковые поставить?
Не, ничего плохого. Тут просто ироничный оффтопик с первых комментов: шрифт был выбран чересчур провокационный у вас =)

PS Когда по картинке становится ясно, о чём будет первый коммент, а потом зайдя под кат видишь, что первого коммента НЕТ — истинное мастерство состоит в том, чтоб этот коммент не писать :)
По моему в таких случаях проще пересчитывать место в рейтинге по крону, чем придумывать запутанный алгоритм.
Может быть проще, но latency увеличится, а мы же в 21-ом веке живем :)
С одной стороны вы правы… с другой. Как увеличится у вас нагрузка при увеличении количества игроков (т.е. по сути при увеличении кол-ва мест)?
При увеличении количества игроков, количество мест не обязательно возрастет. Если у всех этих новых игроков будет одинаковое количество очков (например, 0), то и место у них будет одно. Кроме того, скажем, возможно максимальное прибавление +25 очков, тогда и мест будет пересчитываться максимум 25.
не обязательно по крону.
можно просто ставить задачу в очередь.
И всетаки, интересно было бы увидеть нагрузку при самом простом решении, которое сразу было отброшено («налету»).
Проблема не столько в нагрузке, сколько «тяжеловесности» страницы с такой операцией. Эта страница будет тормозить, периодически вылетать по таймауту. В целом на нагрузку сервера это может особо не влиять, но пользователь будет ощущать «тяжесть» открываемой страницы.
Я это и имел ввиду.
Просто в вопросах оптимизации иногда вещи, которые на первый взгляд выглядят так, будто будут томозить, на практике особо не тормозят.
Первое правило оптимизации: «Не оптимизируй!» (заранее)
Вы должны были быть готовы к нагрузке указывая ссылку на хабре. Или это еще один метод протестировать нагрузку?
Можно еще снизить нагрузку, вы не показали главное как вы выводите точнее чем, и где memcache?
видно автору не знакомо понятие write behind cache
memcache используется для распределения пересчета рейтинга. Как уже отметили, это называется write behind cache — данные помещаются сначала в memcache, затем другим запросом записываются в Data Storage. Алгоритм этот уже много где описан, и я не вижу смысла загромождать основной смысл статьи деталями.
Кроме memcache я также не описал, как использовал task queues и deferred API.
У меня вот вопрос, а чем вам платформа «Вконтакте» (всеми гарячо любимого) не понравилась? Сразу все лезут на App Engine.
в GAE нет таблиц.
пишите нормальный код и все будет работать, а то привыкли вместо оптимизации кода сервера добавлять.
Я, конечно, против того, чтобы писать кривой код, но почему бы вам не включить на всякий случай биллинг? Квоты резко повысятся. А порог биллинга поставьте минимальный — 1 доллар в день. Так вы и на деньги не попадете, и квоты поднимите, и не откажете посетителям, которые зашли в критический момент.
Биллинг включен, на скриншотах можно видеть полосочку, обозначенную Free Quota — до нее — это бесплатная квота, после нее — оплаченная.
Если эта Галецкая реально существует, она сейчас будет массово зафренжена, зафлужена и заспамлена.
Просто интересно — Вы всегда сырой код испытываете в production даже без предварительных расчётов?
Главное правило — отсутствие глюков/багов. Если их нет, то можно в боевых условиях тестить, почему нет? :)
Хотя бы потому, что он может потреблять много ресурсов :)
Чтобы проверить код на актуальных данных не в боевом режиме, достаточно отредактировать одну строку в app.yaml. Ну а дальше AppStats, логи приложения и нехитрое умножение на возможное количество выполнений кода выявили бы проблему до появления душераздирающих скриншотов.
Редисовские sorted sets идеально справились бы с этой задачей.
К сожалению, в AppEngine его нет :)
Sign up to leave a comment.

Articles