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