Я согласен, что при правильном применении, узким местом будет не трекер. Но все же тогда встает вопрос - какой смысл писать на руби трекер, когда есть готовые, надежные и к тому же на C?
--
Konstantin Shababov
--
Konstantin Shababov
http://github.com/etehtsea
On Sunday, July 3, 2011 at 11:46 PM, Alexey Bondar wrote:
On Jul 3, 2011, at 2:52 PM, Konstantin Shababov wrote:Лично наблюдал как около 10к пользователей укладывают популярный torrentpier в варианте с php-трекером на ура. Если пользователей будет пара десятков конечно и на ruby трекер можно пользовать.
10к пользователей, это до 90к анонсов в час (3 раздачи и 3 анонса в час по каждой). Это 25rps flat или около 100-120rps в пике. Структура нагрузки тут простая как лом: таблица сидов / личей по хешу торрента (около 200 байт на запись) и таблица пользователей. На каждый анонс идёт одна операция записи и две операции чтения (можно сократить до одной, если сидов и личеров хранить в одном сете).
Это всё очень хорошо оптимизируется. Например если есть задача учитывать трафик, то можно это делать на сразу, а сохранять только последние данные из анонса и раз в какое-то время запускать считалку, которая будет учитывать только трафик из последнего анонса. При больших нагрузках такую считалку можно вообще не запускать, а переносить ушедших с раздачи во временное хранилище, которое отрабатывать когда нагрузка спадёт.
Вобщем-то я не понимаю где тут проблема конкретно с руби :) Разобрать бенкод это копеечная операция, записать и прочитать в редис/мемкеш пару килобайт тоже.
Самое главное для треккера, я считаю, вне зависимости от того на каком языке он написан -- не делать жесткой связи между каталогом и треккером. В этом проблема почти всех пхп-треккеров.
А гидру я не рекомендую. Она настолько отвратительно написана (а точнее переписана с пхп, не особо включая голову) и имеет очень много кривых мест.
--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru
Комментариев нет:
Отправить комментарий