Показать сообщение отдельно
Старый 01.04.2010, 11:40   #66
Аватар для Skald
Skald Skald вне форума
Администратор
Цитата:
Сообщение от epozdnjakov Посмотреть сообщение
Да я не про то, я именно про переписывание существующего php-анонсера один в один на C и подключения его к веб-серверу. В результате получится просто бинарный скрипт со смешным потреблением памяти :) Вы ведь вроде оптимизировали анонсер, скажите, насколько оправдана борьба именно с накладными расходами самого php?
Основная проблема почти всех php- аннонсеров это не пхп как таковой (скомпилированный пхп сам по себе довольно быстрый получается), а сама релизация скрипта, а именно, не возможность нормального сохранения данных между сессиями - общее глобальное пространство переменных и как следствие постоянное насилование базы (ну не любит мускуль постоянные апдейт/селекты одной и той же таблицы), так же никто не учитывает тот факт, что для проверки доступности порта используется стандартная функция, которая отрабатывает долго если порт закрыт (таймаут соединения), минимум 1 сек, что для аннонсера не допустимо, учитывая что аннонсов может быть более 100 в сек. Основная фишка xbtt, не то что он написан на с++, а то что он все данные хранит в памяти и в заданное время синхронизирует с базой, но так же я могу привести кучу примеров когда данная схема будет прикладывать сервера.
Так же хочу уточнить что все текущие разговоры имеют смысл только для очень крупных трекеров - количество раздач более 20К пользователей более 100К, и самое смешное что количество пиров уже не становится таким принципиальным, т.к. каждый аннонс отрабатывает очень быстро и основные проседания в производительности происходят именно при пакетном обновлении базы торрентов и пользователей.
В данный момент аннонсер 2.5 версии самый быстрый из всех существующих в публичном доступе PHP-аннонсеров для стандартного конфига вебсервера PHP/MySQL (почти стандартного, т.к. все-таки нужен xcache, но его поставить довольно легко, да и для самого форума устанавливать его однозначно рекомендуется).
Совсем недавно проверял все аннонсеры (TBDev различные версии, стандартный торрентпир, не xbtt версию и др.) везде значительно больше 1-2 запросов на аннонс и 0-1 запросов на скрейп (как в версии 2.5 с установленным xcache).

epozdnjakov, Насчет производительности советую посмотреть в сторону PHPDaemon - переписать текущий аннонсер можно очень легко, но сразу автоматом можно избавиться от прокладок типа xcache-а. Но все равно будут пакетные обновления, описанные выше, которые будут прикладывать базу. Также в PHPDaemon-е есть свой аннонсер в качестве примера использующий MongoDB (кстати данная база значительно быстрее мускуля для конкретной задачи, но совсем не самая быстрая и стабильная из подобных вариантов), можно переписать его. 2.5 версия по максимуму отвязана от самого аннонсера насколько это возможно.

А чтобы делать реально быстрые аннонсеры надо просто использовать совсем другие технологии.

epozdnjakov, Если есть желание поучаствовать в развитии новой версии движка и если есть знания в битторрент технологии и др. p2p технологий, то просьба отписаться мне в личку или в аську.
Новая будет больше ориентирована на открытость/анонимность трекера, но чтобы что-то писать надо точно определиться с функционалом.
Ответить с цитированием