Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
pydeltup - deltup + дозакачка
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
DmP
n00b
n00b


Joined: 03 Mar 2005
Posts: 14

PostPosted: Fri Mar 04, 2005 12:58 pm    Post subject: pydeltup - deltup + дозакачка Reply with quote

Привет!

Вот начал пользоваться getdelta + deltup, но меня постоянно смущал факт, что не поддерживается дозакачка. Тогда собрался с мыслями и сделать её.
С налета не получилось, тогда решил переписать getdelta на Питоне, и заодно разобраться с алгоритмом работы.
Вот по ходу все больше разочаровывался в работе getdelta, что выяснилось.
1) Алгоритм определения базового файла не возможно написать на все случаи жизни.
Мало того, что названия порой жутко видоизменяются, но еще в portage может быть несколько файлов с родственными названиями.
2) Механизм очередей deltup сервера, может долго заставить Вас ждать чуда.
А модемное время тикает.
3) Отсутствие собственно дозакачки.
4) Наложение патчей. Тоже отбирает полезное время время.
5) Бывают неверные дельты, верней левые базовые файлы. У меня например, было два раза, когда сообщалось, что патч не может быть наложен, так как не верный базовый файл.

В результате, написал программку, которая более менее решает 1-3 пункты. Сделать 4-5 тоже не сложно. Но я отказался от идеи встроить программку в emerge, как это делает getdelta, так как это немножко абсурдно из выше описанного и ведет к увеличению трафика из-за простоев, ошибок определения имен, и слетания модема с линии.

Программку, пока не публикую, т.к. она сыровата, но кому интересно пишете, можно обсудить её развитие.

--
С уважением,
Дмитрий.
Back to top
View user's profile Send private message
fank
l33t
l33t


Joined: 16 Oct 2004
Posts: 794
Location: Minsk, Belarus

PostPosted: Fri Mar 04, 2005 3:20 pm    Post subject: Reply with quote

прекрасное начинание, очень нужное всем диалапщикам
теперь идеи...
Quote:
1) Алгоритм определения базового файла не возможно написать на все случаи жизни.
Мало того, что названия порой жутко видоизменяются, но еще в portage может быть несколько файлов с родственными названиями.

вот насчёт этого пункта тоже долго думал, как решить...
можно указывать отдельно скрипту нестандартное имя файла, например, в конфиге где-нить; кстати, насколько я понял, это так и делается, но только на стороне сервера
Quote:
2) Механизм очередей deltup сервера, может долго заставить Вас ждать чуда.
А модемное время тикает.

согласен на 200%
такое ощущение, что сервер не совсем корректно ставит запрос в очередь, то есть обнуляет очередь по какой-то причине
Quote:
3) Отсутствие собственно дозакачки.

я, вообще-то не программер, но это, по-моему, легко решить :-)
Quote:
4) Наложение патчей. Тоже отбирает полезное время время.

ммм.... может, отдельным процессом, но тогда резко усложняется прога, нужно ведь отлавливать состояние процесса, завершился ли удачно или нет
Quote:
5) Бывают неверные дельты, верней левые базовые файлы. У меня например, было два раза, когда сообщалось, что патч не может быть наложен, так как не верный базовый файл.

а вот это, по моему, решается только одним простым способом - на стороне сервера устроить счётчик ошибок применения патча за интервал времени, и пересоздавать патч

удачи тебе, и выложи, плиз, скриптец, очень уж попробовать хочется :-)
Back to top
View user's profile Send private message
amax
Tux's lil' helper
Tux's lil' helper


Joined: 22 Feb 2004
Posts: 76
Location: Russia, Novosibirsk (Silicon Taiga)

PostPosted: Fri Mar 04, 2005 3:53 pm    Post subject: Reply with quote

Привет, очень интересно, хочется включить твою разработку в Fantoo linux

:)
пиши
Back to top
View user's profile Send private message
DmP
n00b
n00b


Joined: 03 Mar 2005
Posts: 14

PostPosted: Fri Mar 04, 2005 6:21 pm    Post subject: Reply with quote

fank wrote:
прекрасное начинание, очень нужное всем диалапщикам
теперь идеи...
Quote:
1) Алгоритм определения базового файла не возможно написать на все случаи жизни.
Мало того, что названия порой жутко видоизменяются, но еще в portage может быть несколько файлов с родственными названиями.

вот насчёт этого пункта тоже долго думал, как решить...
можно указывать отдельно скрипту нестандартное имя файла, например, в конфиге где-нить; кстати, насколько я понял, это так и делается, но только на стороне сервера

На сервер надееться не стоит, нужно сказать большое спасибо тому, кто сделал этот deltup сервер, и что он еще стоит и работает. Насколько я понимаю это ведь частная инициатива.
А решил этот вопрос очень просто ставлю базовые файлы вручную. :-)

Quote:

Quote:
2) Механизм очередей deltup сервера, может долго заставить Вас ждать чуда.
А модемное время тикает.

согласен на 200%
такое ощущение, что сервер не совсем корректно ставит запрос в очередь, то есть обнуляет очередь по какой-то причине

Работает он правильно, просто в файле deltup-queued сообщаеться длина очереди, у меня при закачке сохраняються все файлы, и по ним можно реально оценить их положение в очереди. Но обратно же неизвестно какие по объему в очереди стоят файлы. Вижу такой выход - соедениться через пол часа, запросы обработаються к тому времени, и вы сможете их загрузить. Выполненые запросы сохраняються на ftp. НО не на долго, по моим оценкам гдето на сутки.

Quote:

Quote:
3) Отсутствие собственно дозакачки.

я, вообще-то не программер, но это, по-моему, легко решить :-)

Элементарно, лишбы ftp сервера поддерживал дозакачку, и разнеца во времени не была бы большой.

Quote:

Quote:
4) Наложение патчей. Тоже отбирает полезное время время.

ммм.... может, отдельным процессом, но тогда резко усложняется прога, нужно ведь отлавливать состояние процесса, завершился ли удачно или нет

Можно и паралельно отслеживать, но проще наложить патчи после всех закачек, как отключитесь от инета.

Quote:

Quote:
5) Бывают неверные дельты, верней левые базовые файлы. У меня например, было два раза, когда сообщалось, что патч не может быть наложен, так как не верный базовый файл.

а вот это, по моему, решается только одним простым способом - на стороне сервера устроить счётчик ошибок применения патча за интервал времени, и пересоздавать патч

Сервер не может узнать об ошибки. Просто в дистрибъютиве контрибъютеры :-) могли пошаманить и Ваш старый файл может отличаться от того что есть на сервере.
Но есть одна хитрость опишу ниже.

Quote:
удачи тебе, и выложи, плиз, скриптец, очень уж попробовать хочется :-)

Спасибо, за идеи особенно.
Просто хотел его доработать, но не знаю в какую сторону лучше.
А) Что у меня было:
Скрипт вставляеться как и getdelta.
Создаеться БД на sqlite с именами файлов и прочей инфой (однаразово).
Запускаеться emerge -f ..., скрипт по имени файла и по БД определяет принадлежность к пакету, и по данной информации генерит старый файл, но он стал спотыкать на "сложных пакетов", и я просто не видел логичного простого решения.
Б) Что сейчас.
Запукаем pydeltap.py -c ИмяПакета, создаеться tasks.sh, со строчками типа:
pydeltap.py -l НовыйФайл НовыйФайл Ссылка
Исправляю вручную первый НовыйФайл, на старый - подправляя версию.
Соединяюсь запускаю tasks.sh. И все грузится. Если произойдет разрыв, вручную можно удалить из скрипта загруженные делты (необязательно), переподключаем запускаем tasks.sh, и он просто тупо перебирает все снова и если что не загружено загружает, или продолжает загружать.
В) Что хочеть сделать:
В1) Сделать более интелектуальное формирование tasks.sh, или еще чего, используя наработки из А.
B2) Возможно отображение содержимого deltup-queued - т.е. состояния очереди, но не позиции в очереди.
В3) Более интелектульное авто-проверки закаченных дельт, опять же экономия трафика.
В4) Наложение патчей вынести в третий этап работы программы, или еще как.
В5) По поводу проверки на правельность базового. Есть одна фича в начале присылаемого dtu файла храниться MD5 сумма старого файла, т.е. скачав начало dtu файла можно проверить правильность старого файло, но проблема в том, что старый файл надо распаковать до tar архива. :-(
Back to top
View user's profile Send private message
DmP
n00b
n00b


Joined: 03 Mar 2005
Posts: 14

PostPosted: Fri Mar 04, 2005 6:31 pm    Post subject: Reply with quote

amax wrote:
Привет, очень интересно, хочется включить твою разработку в Fantoo linux

:)
пиши


:-)
Скрипт находиться в смешном безобразном состоянии, просто недавно поставил Gentoo. хотелось очень обновиться, а модем работает нестабильно, и грузить дельты в 5 Мб с помощью getdelta было страшнавато.

Но дело не в этом, я пререживаю за deltup сервер, если скрипты типа getdelta включать в дистрюбъетbвы, то это позволит легко завалить этот самый сервер и тогда ни кому сщастья не будет.
Back to top
View user's profile Send private message
DmP
n00b
n00b


Joined: 03 Mar 2005
Posts: 14

PostPosted: Fri Mar 04, 2005 6:46 pm    Post subject: Reply with quote

Да забыл сказать после создания tasks.sh, дельты можно закачавать хоть под форточками, правда сейчас для закачки используеться wget.
Back to top
View user's profile Send private message
DmP
n00b
n00b


Joined: 03 Mar 2005
Posts: 14

PostPosted: Sun Mar 06, 2005 1:06 pm    Post subject: Reply with quote

Навел красоту, теперь могу показать скрипт. Но это только альфа, еще многие фичи не сделаны.

Только вот вопрос куда можно выложить скрипт?
К форуму вроде бы не прикрепишь.
Back to top
View user's profile Send private message
bobr[x3]
Tux's lil' helper
Tux's lil' helper


Joined: 28 Nov 2003
Posts: 141
Location: Vladivostok, Russia

PostPosted: Mon Mar 07, 2005 5:50 am    Post subject: Reply with quote

В багзиллу. И еще ebuild напиши, если есть способность, время и желание.
Back to top
View user's profile Send private message
DmP
n00b
n00b


Joined: 03 Mar 2005
Posts: 14

PostPosted: Mon Mar 07, 2005 12:42 pm    Post subject: Reply with quote

bobr[x3] wrote:
В багзиллу. И еще ebuild напиши, если есть способность, время и желание.


С багзилой чет не понятно, я ведь не исправляю ошибок, а пишу новую программу.
А для ebuild - то надо, что бы файл со скриптом уже в инете лежал.
Back to top
View user's profile Send private message
fank
l33t
l33t


Joined: 16 Oct 2004
Posts: 794
Location: Minsk, Belarus

PostPosted: Mon Mar 07, 2005 5:03 pm    Post subject: Reply with quote

Quote:
С багзилой чет не понятно, я ведь не исправляю ошибок, а пишу новую программу.
А для ebuild - то надо, что бы файл со скриптом уже в инете лежал.

нет, всё правильно, там и запость, совсем недавно один чел накропал прогу, так туда и запостил, ток он ещё и ебилд написал, просил потестить, а оттуда, я так понимаю, потом нужные люди в дерево включат
но ты можешь попросить кого-нить написать ебилд прямо там, ничего постыдного тут нет или минимальный скелет набросай, а там уже поправят, будь спок :D

Удачи !
Back to top
View user's profile Send private message
DmP
n00b
n00b


Joined: 03 Mar 2005
Posts: 14

PostPosted: Tue Mar 08, 2005 6:48 pm    Post subject: Reply with quote

fank wrote:
Quote:
С багзилой чет не понятно, я ведь не исправляю ошибок, а пишу новую программу.
А для ebuild - то надо, что бы файл со скриптом уже в инете лежал.

нет, всё правильно, там и запость, совсем недавно один чел накропал прогу, так туда и запостил, ток он ещё и ебилд написал, просил потестить, а оттуда, я так понимаю, потом нужные люди в дерево включат
но ты можешь попросить кого-нить написать ебилд прямо там, ничего постыдного тут нет или минимальный скелет набросай, а там уже поправят, будь спок :D


Зарегистрировался, но не нашел где можно прикрепить файл к описанию бага. :-).
Ну а к тому же хотелось, чтобы русские потестили скрипт, а то мне отвечать на английском будет проблематично.
Еще чет у меня сомнения, что многим захочеться лазить по папке distfiles в поиске базовых файлов. :-)
Back to top
View user's profile Send private message
fank
l33t
l33t


Joined: 16 Oct 2004
Posts: 794
Location: Minsk, Belarus

PostPosted: Tue Mar 08, 2005 7:50 pm    Post subject: Reply with quote

Quote:
но не нашел где можно прикрепить файл к описанию бага

https://bugs.gentoo.org/show_bug.cgi?id=79204
это пример, я туда ебилд сегодня закинул
а вот кнопка создания аттача
https://bugs.gentoo.org/attachment.cgi?bugid=79204&action=enter

дерзай :-)
Back to top
View user's profile Send private message
rencoroso
n00b
n00b


Joined: 21 Feb 2004
Posts: 6

PostPosted: Thu Mar 10, 2005 8:22 am    Post subject: Reply with quote

amax wrote:

Но дело не в этом, я пререживаю за deltup сервер, если скрипты типа getdelta включать в дистрюбъетbвы, то это позволит легко завалить этот самый сервер и тогда ни кому сщастья не будет.


Ну во всяком случае deltup вернули в официальное дерево портежей...

http://linux01.gwdg.de/~nlissne/

Quote:
2005/03/05 Good news! Due to the efforts of Stefan Schweizer aka genstef deltup is back to the official portage tree as well as getdelta is now available as official ebuild. Thank you, Stefan.
Back to top
View user's profile Send private message
DmP
n00b
n00b


Joined: 03 Mar 2005
Posts: 14

PostPosted: Thu Mar 10, 2005 9:00 am    Post subject: Reply with quote

rencoroso wrote:


Ну во всяком случае deltup вернули в официальное дерево портежей...



Да, уже видел, теперь пусть они сами отвечают за работу своего сайта. Но уже сказываеться то, что очередь бывает довольно длинная, у меня было была как-то 11 позиция, это можно спокойно на час отключаться.
Кстати, а интересно только deltup, или вместе с getdelta.sh?

Сейчас работаю над более продвинутым алгоритмом поиска базовых файлов и над пунктом 4 и 5. Еще перед тем как выложить на bugs.gentoo.org нужно поубирать русские комментарии. Если, кто подскажет место куда можно выкладывать промежуточные версии, то буду выкладывать по ходу разработки.
Back to top
View user's profile Send private message
rencoroso
n00b
n00b


Joined: 21 Feb 2004
Posts: 6

PostPosted: Thu Mar 10, 2005 9:32 am    Post subject: Reply with quote

Quote:
Да, уже видел, теперь пусть они сами отвечают за работу своего сайта. Но уже сказываеться то, что очередь бывает довольно длинная, у меня было была как-то 11 позиция, это можно спокойно на час отключаться.


Самый логичный вариант решения пробленмы с перегрузкой сервера, это создание новых deltup-серверов, т.е. делаешь свой дистр на основе gentoo
поднимай и свой deltup-сервер (возможно даже и для бинарников) и поддерживай его...
Это я больше к создателям Fantoo linux ,конечно обращаюсь...


Quote:
Кстати, а интересно только deltup, или вместе с getdelta.sh?


И deltup и getdelta...

Quote:
Если, кто подскажет место куда можно выкладывать промежуточные версии, то буду выкладывать по ходу разработки.


Да,блин, на любом бесплатном хостинге... :)
или на ru.gentoo-wiki.com можешь попробовать...
Back to top
View user's profile Send private message
DmP
n00b
n00b


Joined: 03 Mar 2005
Posts: 14

PostPosted: Thu Mar 10, 2005 11:47 am    Post subject: Reply with quote

Quote:

Да,блин, на любом бесплатном хостинге... :)
или на ru.gentoo-wiki.com можешь попробовать...


На ru.gentoo-wiki.com пишут:
Quote:

Предпочтительны следущие форматы; JPEG - для фотографий, PNG - для рисунков и небольших картинок, OGG - для звуков и музыки.


Да и как-то странно на wiki выкладывать программу, не тот профиль. Потом когда её от туда надо будет удалить, че делать? :-)

А на бесплатном хостинге, там тоже как то не прилично создавать домашнюю страничку, чтобы разместить файл в пару килобайт... :-)

Сорри.
Back to top
View user's profile Send private message
fank
l33t
l33t


Joined: 16 Oct 2004
Posts: 794
Location: Minsk, Belarus

PostPosted: Thu Mar 10, 2005 2:23 pm    Post subject: Reply with quote

Quote:
Да и как-то странно на wiki выкладывать программу, не тот профиль. Потом когда её от туда надо будет удалить, че делать?

ты не прав, это, кстати, самый лучший вариант, wiki для этого и предназначена
Quote:
А на бесплатном хостинге, там тоже как то не прилично создавать домашнюю страничку, чтобы разместить файл в пару килобайт...

не думай о приличиях, думай о мировом сообществе :-)
глядишь, новые мысли появятся или идеи какие - вот и будет дополнительный стимул (и возможность) прославиться :-)
Back to top
View user's profile Send private message
rencoroso
n00b
n00b


Joined: 21 Feb 2004
Posts: 6

PostPosted: Fri Mar 11, 2005 3:19 am    Post subject: Reply with quote

Quote:
Да и как-то странно на wiki выкладывать программу, не тот профиль. Потом когда её от туда надо будет удалить, че делать? Smile

А на бесплатном хостинге, там тоже как то не прилично создавать домашнюю страничку, чтобы разместить файл в пару килобайт... Smile

Сорри.


Выкладывай на http://www.webfile.ru , на первое время самое то...
Back to top
View user's profile Send private message
DmP
n00b
n00b


Joined: 03 Mar 2005
Posts: 14

PostPosted: Fri Mar 11, 2005 8:56 am    Post subject: Reply with quote

fank wrote:

не думай о приличиях, думай о мировом сообществе :-)
глядишь, новые мысли появятся или идеи какие - вот и будет дополнительный стимул (и возможность) прославиться :-)


Тут как бы не опозориться. :-)
В общем переехал сюда:
http://www.linuxforum.ru/index.php?showtopic=5628
Там же выложил файл.

Временно данный форум может быть недоступен, т.к. они меняли хостинг.
Back to top
View user's profile Send private message
fank
l33t
l33t


Joined: 16 Oct 2004
Posts: 794
Location: Minsk, Belarus

PostPosted: Thu Mar 17, 2005 4:10 pm    Post subject: Reply with quote

слушай, есть такая просьба, так сказать, feature request
у меня такая ситуация - есть хреновый канал в инет, есть локальный миррор для distfiles
когда скачиваю дельту, то хотелось бы, чтобы с ftp сервера забирался самый новый файл
сделать, в принципе, очень просто:
слить список содержимого сервака и найти в нём нужный файл, а потом слить сам файл в локальное [на моём компе, в данном случае] хранилище дистфайлов

заранее спасибо !!!
Back to top
View user's profile Send private message
DmP
n00b
n00b


Joined: 03 Mar 2005
Posts: 14

PostPosted: Thu Mar 17, 2005 6:04 pm    Post subject: Reply with quote

fank wrote:

у меня такая ситуация - есть хреновый канал в инет, есть локальный миррор для distfiles
когда скачиваю дельту, то хотелось бы, чтобы с ftp сервера забирался самый новый файл
сделать, в принципе, очень просто:
слить список содержимого сервака и найти в нём нужный файл, а потом слить сам файл в локальное [на моём компе, в данном случае] хранилище дистфайлов

Не понял сути.
Суть работы getdelta и моего клона одна, забирать файл, который нужен для emerge -f. По сути это и есть самый новый.
А самостоятельное определение самого нового, такая же проблема как и определение старого.
И они тащат от туда, от куда им укажет dinamic deltaup server или как его.
Back to top
View user's profile Send private message
fank
l33t
l33t


Joined: 16 Oct 2004
Posts: 794
Location: Minsk, Belarus

PostPosted: Fri Mar 18, 2005 11:28 am    Post subject: Reply with quote

имелось в виду вот что
у меня на компе дистрибов нет - все на серваке
соответственно, если я делаю emerge -f some_program, то getdelta.sh ищет старый файл на моём компе, а мне хотелось бы, чтобы он скачивал старый файл с локального миррора, коим является ftp-сервер. сейчас же так: getdelta.sh пытается скачать с локального миррора только новый файл, считая, что старый лежит на моём компе
Back to top
View user's profile Send private message
DmP
n00b
n00b


Joined: 03 Mar 2005
Posts: 14

PostPosted: Fri Mar 18, 2005 11:41 am    Post subject: Reply with quote

fank wrote:
имелось в виду вот что
у меня на компе дистрибов нет - все на серваке
соответственно, если я делаю emerge -f some_program, то getdelta.sh ищет старый файл на моём компе, а мне хотелось бы, чтобы он скачивал старый файл с локального миррора, коим является ftp-сервер. сейчас же так: getdelta.sh пытается скачать с локального миррора только новый файл, считая, что старый лежит на моём компе


Оригинально. :-)

На самом деле, если getdelta.sh не находит старый файл, он отстраняеться, и "передает" бразды правления emerge.
Т.е. качает новый файл.
Для того, что бы работал getdelta.sh, нужен старый файл и дельта.
Т.е. если я правильно понял скрипт должен будет выкачать с локального ftp, старый файл и дельту с Дельтап Сервера.
Правильно?
В принципе решаемо.
Back to top
View user's profile Send private message
kon
Apprentice
Apprentice


Joined: 05 Mar 2004
Posts: 156
Location: Russia. Saint-Petersburg

PostPosted: Fri Mar 18, 2005 1:49 pm    Post subject: Reply with quote

2fank
Ну так подмонтируй свой ftp на /usr/portage/distfiles
И тогда никому ничего не придется наворачивать в своих скриптах
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum