SetupStrongDC-sqlite-x64-release.exe
SetupStrongDC-sqlite-x86-release.exe
Исходный код:
strongdc-243-sqlite-src-r17135-2014.04.29-22.02.57.7z
* Исправлены падения в NmdcHub::clearUsers()
https://crash-server.com/Problem.aspx?ClientID=ppa&ProblemID=66117
https://crash-server.com/Problem.aspx?ClientID=ppa&ProblemID=66123
* Оптимизация парсинга команды $Search (r5xx)
* Исправлена проблема http://www.flylinkdc.ru/2014/04/flylinkdc-strongdc-tth.html
* Оптимизация CPU при поиске частичных источников http://www.flylinkdc.ru/2014/04/cpu.html
* В SearchFrame::onClose забыл подождать пока закончится фоновый поток флай-сейрвера.
* Исправлена работа с флай-сервером при прокрутке результатов поиска
* Исправлены падения если в строке поиска находится "мусор" http://yadi.sk/d/WtdtH7BGMhYsP
https://crash-server.com/Problem.aspx?ClientID=ppa&ProblemID=64297
https://crash-server.com/Problem.aspx?ClientID=ppa&ProblemID=63507
вторник, 29 апреля 2014 г.
суббота, 26 апреля 2014 г.
Перезагрузил fly-server.ru
Всем привет.
Сегодня сделал ребут сервера. аптайм чуть больше 90 дней.
Ubuntu у меня старая версии 10.04 - судя по графикам в ней немного утекают ресурсы.
Вывод - линуксу тоже иногда полезно делать ребут :)
Сегодня сделал ребут сервера. аптайм чуть больше 90 дней.
Ubuntu у меня старая версии 10.04 - судя по графикам в ней немного утекают ресурсы.
Вывод - линуксу тоже иногда полезно делать ребут :)
вторник, 22 апреля 2014 г.
FlylinkDC++ и StrongDC++ не качают дубли TTH
Привет.
Нашел хитрый баг...
Если у пользователя в каталоге(ах) лежит два файла с одинаковым TTH
то при постановки в закачку этого каталога(ов) скачивается только один файл!
Это экономит траф, но нарушает целостность загрузки. думаю нужно исправить.
Помню в ченжлоге Greylink-а писали, что если TTH уже есть в шаре
то его скачка из сети не выполняется, а делается копия из локального диска...
вероятно так они и фиксили эту ошибку.
Оригинальный DC++ тупее - он взял и три раза скачал один и тот-же файл из сети но это правильно т.к. в каталоге действительно лежит три файла! (почему они одинаковые это уже проблема не "DC-качалки")
Для теста взял мультик - испортил его фаром чтобы был уникальный TTHи сделал 3 копии файла с разными именами.
Флай при закачке каталога "схлопнул" все файлы и закачал только "Обезьянку номер 3"
а 1 и 2 файл не закачались вообще! :(
Нашел хитрый баг...
Если у пользователя в каталоге(ах) лежит два файла с одинаковым TTH
то при постановки в закачку этого каталога(ов) скачивается только один файл!
Это экономит траф, но нарушает целостность загрузки. думаю нужно исправить.
Помню в ченжлоге Greylink-а писали, что если TTH уже есть в шаре
то его скачка из сети не выполняется, а делается копия из локального диска...
вероятно так они и фиксили эту ошибку.
Оригинальный DC++ тупее - он взял и три раза скачал один и тот-же файл из сети но это правильно т.к. в каталоге действительно лежит три файла! (почему они одинаковые это уже проблема не "DC-качалки")
Для теста взял мультик - испортил его фаром чтобы был уникальный TTHи сделал 3 копии файла с разными именами.
Флай при закачке каталога "схлопнул" все файлы и закачал только "Обезьянку номер 3"
а 1 и 2 файл не закачались вообще! :(
понедельник, 21 апреля 2014 г.
Кушаем CPU при большой очереди закачек
Привет
Часто жаловались на тормоза флая на слабых компах если в очереди много закачек.
Нашел в коде несколько моментов:
1. При работ клиента в активном режиме на него постоянно приходит несколько десятков запросов в секунду
на поиск различных TTH.
2. Если флай не находя данные TTH у себя в шаре (там выполняется быстрый поиск через unordered_map)
выполняет дополнительный запрос к менеджеру закачек
в этом месте к сожалению идет линейный поиск по контейнеру т.к. ключом в мапе является имя файла а не TTH
https://github.com/pavel-pimenov/flylinkdc-r5xx/blob/f8157019835b79ab9000134444cd9a9982020ff3/client/QueueManager.cpp#L3044
https://github.com/pavel-pimenov/flylinkdc-r5xx/blob/f8157019835b79ab9000134444cd9a9982020ff3/client/QueueManager.cpp#L210
у некоторых пользователей в очереди закачек висят тысячи файлов постоянный и очень частый линейный просмотр такого
контейнера кушает CPU в холостую т.к. вероятнее всего в очереди так-же нет файлов с такими ТТХ
тут я пока планирую завести дополнительный контейнер unordered_set где буду отслеживать наличие TTH в очереди..
или может есть более оптимальный вариант?
3. Если TTH находится в очереди (это бывает когда вы качаете что-то популярное и большое которые одновременно все ищут)
то выполняется создание UDP сокета
формирование информации какие части файла есть уже есть в клиенте через функцию SearchManager::toPSR
и передача UDP пакета в того кто ищет этот файл.
при этом выполняются команды разбора URL адреса на части
в строках Util::decodeUrl(aSeeker, proto, ip, port, file, query, fragment);
а также дополнительный Socket::resolve(ip) перед посылкой UDP
пока не понял зачем делается эта операция тогда как по описанию команды в Search
в то место может попасть только IP:Port
аналогичный код находится и в StrongDC++ в AirDC++ его немного оптимизировали
сделав UDP-Socket не временным а как мембер менеджера - он создается один раз.
Кто знает/тестировал насколько создание и разрушение UDP сокета затратная операция - наверно стоит сделать аналогично.?
другие мысли можете высказать если есть идеи в этом месте.
Часто жаловались на тормоза флая на слабых компах если в очереди много закачек.
Нашел в коде несколько моментов:
1. При работ клиента в активном режиме на него постоянно приходит несколько десятков запросов в секунду
на поиск различных TTH.
2. Если флай не находя данные TTH у себя в шаре (там выполняется быстрый поиск через unordered_map)
выполняет дополнительный запрос к менеджеру закачек
в этом месте к сожалению идет линейный поиск по контейнеру т.к. ключом в мапе является имя файла а не TTH
https://github.com/pavel-pimenov/flylinkdc-r5xx/blob/f8157019835b79ab9000134444cd9a9982020ff3/client/QueueManager.cpp#L3044
https://github.com/pavel-pimenov/flylinkdc-r5xx/blob/f8157019835b79ab9000134444cd9a9982020ff3/client/QueueManager.cpp#L210
у некоторых пользователей в очереди закачек висят тысячи файлов постоянный и очень частый линейный просмотр такого
контейнера кушает CPU в холостую т.к. вероятнее всего в очереди так-же нет файлов с такими ТТХ
тут я пока планирую завести дополнительный контейнер unordered_set
или может есть более оптимальный вариант?
3. Если TTH находится в очереди (это бывает когда вы качаете что-то популярное и большое которые одновременно все ищут)
то выполняется создание UDP сокета
формирование информации какие части файла есть уже есть в клиенте через функцию SearchManager::toPSR
и передача UDP пакета в того кто ищет этот файл.
при этом выполняются команды разбора URL адреса на части
в строках Util::decodeUrl(aSeeker, proto, ip, port, file, query, fragment);
а также дополнительный Socket::resolve(ip) перед посылкой UDP
пока не понял зачем делается эта операция тогда как по описанию команды в Search
в то место может попасть только IP:Port
аналогичный код находится и в StrongDC++ в AirDC++ его немного оптимизировали
сделав UDP-Socket не временным а как мембер менеджера - он создается один раз.
Кто знает/тестировал насколько создание и разрушение UDP сокета затратная операция - наверно стоит сделать аналогично.?
другие мысли можете высказать если есть идеи в этом месте.
пятница, 18 апреля 2014 г.
ubuntu 14.04
воскресенье, 13 апреля 2014 г.
PtokaX 0.5.0.2
Хаб dchub://dc.fly-server.ru обновил до PtokaX 0.5.0.2
пользователей пока около 1000 - нагрузка на сервер не очень большая
пользователей пока около 1000 - нагрузка на сервер не очень большая
четверг, 10 апреля 2014 г.
StrongDC++ sqlite build 17057
SetupStrongDC-sqlite-x64-release.exe
SetupStrongDC-sqlite-x86-release.exe
Исходный код:
strongdc-243-sqlite-src-r17057-2014.04.11-19.30.31.7z
Изменения:
* В окне поиска добавлен вывод медиа информации для оценки качества видео и звука
(отключается галкой использования fly-server-а)
* Кнопки поиска поднял вверх т.к. их иногда не видно если программа запускается на нетбуке с разрешением по Y 800 точек.
SetupStrongDC-sqlite-x86-release.exe
Исходный код:
strongdc-243-sqlite-src-r17057-2014.04.11-19.30.31.7z
Изменения:
* В окне поиска добавлен вывод медиа информации для оценки качества видео и звука
(отключается галкой использования fly-server-а)
* Кнопки поиска поднял вверх т.к. их иногда не видно если программа запускается на нетбуке с разрешением по Y 800 точек.
пятница, 4 апреля 2014 г.
StrongDC++ sqlite давно не обновлял...
Публикую тест-версию.
http://www.fly-server.ru/install/strongdc-sqlite/src-bin/strongdc-243-sqlite-x64-r16988-2014.04.04-19.55.18.7z
http://www.fly-server.ru/install/strongdc-sqlite/src-bin/strongdc-243-sqlite-x86-r16988-2014.04.04-19.50.32.7z
http://www.fly-server.ru/install/strongdc-sqlite/src-bin/strongdc-243-sqlite-src-r16988-2014.04.04-19.50.08.7z
http://www.fly-server.ru/install/strongdc-sqlite/src-bin/strongdc-243-sqlite-x86-r16988-2014.04.04-19.50.32.7z
http://www.fly-server.ru/install/strongdc-sqlite/src-bin/strongdc-243-sqlite-src-r16988-2014.04.04-19.50.08.7z
Просьба протестировать под нагрузкой - вдруг что-то сломал
Изменения:
- Обновлены внутренние либы OpenSSL,SQLite, mediainfo, miniupnp
- Научил показывать дополнительную медиа-информацию в файл листах пользователей клиентов, которые ее не отдают (для получения информации используется асинхронный запрос к fly-server - естественно данную фичу можно отключить в найтройках)
- Блокируем потенциальные вирусы в результате поиска
- Поддержка fly-server в окне поиска
- Блокировка ddos атак
- Подсказка о возможно вирусном файле
p.s.
А кто поставил 3 минуса :) - отпишите что не понравилось?
Подписаться на:
Сообщения (Atom)