All streams
Search
Write a publication
Pull to refresh
51
0
Павел Болдин @davinchi

User

Send message
Видимо, nanosleep используется для синхронизации частоты опроса. Шина просто не может работать быстрее.
Вижу серию медленных ioctl'ов. Судя по-всему медленно работает обмен с DDC.

Время выполнение стабильно такое высокое?
strace в студию!
Вот и получается, что для того что бы сделать это на PHP с этим PHP-классом мне нужно лишь поправить его, а для gearman нужно будет поправить исходник и библиотеку, линковать с PHP и так далее.
Ответил: отдаёт WORK_DATA, но сервер их игнорирует.

В версии 0.13 смотрите (cd ./libgearman-server):
1) Добавление задачи в server.c, стр 272: server_client = NULL;
2) Обработка WORK_DATA в server.c, 485,
3) Выполнение _server_queue_work_data, добавлине данных в очередь, проходит по списку server_client. См. server.c стр. 959.
Не умеет, я посмотрел код. Если вы запускаете задачу в BG, для неё просто не создаётся структура хранящая обмен между клиентом и сервером, в которую данные WORK_DATA записываются.
Всмысле, WORK_DATA не умеет этого делать для background задач.

WORK_DATA, WORK_WARNING, WORK_STATUS, WORK_COMPLETE,
WORK_FAIL, WORK_EXCEPTION

For non-background jobs, the server forwards these packets from
the worker to clients. See «Worker Requests» for more information
and arguments.


А вот статус получить можно.
Нет, вроде это делает GET_STATUS, умеет отдавать процент от выполненного. Нужно, конечно, всегда смотреть код. А то мало-ли.

Думаю, удастся ли убедить админа поставить gearman и имеет ли смысл делать такой патч. Не можете разузнать, хотят ли они реализации отдачи данных кусками? Тогда можно будет написать патч.
Просто изначально топик мною был неверно назван: речь скорее о отложенных заданиях, а не о ресурсоёмких.

Ресурсоёмкость же можно определить как «имеет смысл переложить это задание в очередь: его результат на код не влияет, а выполняется он значительно дольше чем постановка в очередь».
То есть, получается, «приплести mapreduce» тут можно?

Gearman, прежде всего, для передачи вычислений на другую машину создан. Отложить в нём задачу а потом спросить «как она там» в нём не вижу как. Подскажите, если можно.

При помощи globus toolkit можно и отложенные вычисления реализовывать, он для этого сгодится. (Я никогда не говорил, что это одно и то же, только лишь что globus toolkit умеет делать работу gearman давно). Но опять-же, это по воробьям из пушки. И при помощи gearman можно (и довольно хорошо) делать простые grid-системы. Это как слону дробинка.

Но и gearman для отложенных вычислений на хостинге — это слишком тяжеловесное решение.

Про частоту использования: давайте сравнивать количество машинного времени (в flops'ах), которую обработал globus toolkit и gearman. Разницу будет видно, думаю, сразу.

Про защищённость: не смог найти в документации по gearman как на нём авторизовываться и как данные предотвращаются от перехвата (шифрование). Может, документация старая. Сейчас гляну исходники.
На хостингах они открыты?

Я так помню, на большинстве хоситнгов можно вызов некоторого URL'а в cron поставить.
Кстати, а detach'иться от помещённых заданий в нём можно? Так, что бы потом можно было проверять статус задачи на лету и получать часть данных которая уже готова? Что-то не могу найти в коде perl-клиента.

А то предстоит мне одну вебморду для научных вычислений делать, как раз такая штука нужна.
Википедия про gearman как про mapreduce и думает: WIKI

А при том, что фактически эту работу может делать и globus toolkit. И создан он раньше. И уровень защищённости у него больше. И используется больше. Ну, то есть, по сравнению с ним — gearman совсем новый велосипед.

Хотя, конечно, задачи совершенно у них разные и в первую очередь разный «вес». Как и у приведённого кода класса и gearman, отношение приблизительно такое.
Лучше лочить тогда каждый файл задачи отдельно. Это уже подробности реализации cron-сервера.
Ну, и, конечно, ресурсоёмкость разная бывает: если задача чуть сложнее добавления task'а в очередь и её возвращаемое значение не интересно прямо сейчас, то можно отложить и на потом. Правда, смысла в таком мало.
Топик назван не корректно, надо переименовать, наверное. Задачи-же могут быть не только ресурсоёмкими но и просто медленными: связь с удалённым хостом, отсылка данных, ручная проверка.

Тут этот класс является достаточно неплохим минимальным решением.
Ага, особенно когда структуры размером по сотни байт туда-сюда через стэк гоняются. Вообще шикарно.

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity