powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Linux C++ потоки
19 сообщений из 69, страница 3 из 3
Linux C++ потоки
    #39266191
д0k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UNIX - это конструктор-лего в нем есть в том чисте и нити с мутексами
и в нем нужно уметь писать на С,
но очень часто в этом нет необходимости.

Я никоим образом не пытаюсь начать холивар :)

Я о том что Юникс создавался инженерами для инженеров
в классической UNIX архитектуре ПО , не составляет
никакого труда заменить модуль в конвеере обработки алгоритма
с С-шного на перловый, башовый, питоновый и наоборот
с минимальными накладными расходами....
...
Рейтинг: 0 / 0
Linux C++ потоки
    #39266204
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы не конструктивны по отношению к автору. И мы не можем подменять ТЗ просто так по своему умозрению.
...
Рейтинг: 0 / 0
Linux C++ потоки
    #39266236
д0k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonМы не конструктивны по отношению к автору. И мы не можем подменять ТЗ просто так по своему умозрению.

Форкнуть 5 .. 10 .. 20 ... 100 или какая степень паралелизма ему там нужна
nslookup
и по факту прихода сигнала SIGCHLD запускать
следующий форк из списка доменов постоянно поддерживая нужно степень паралелизма.
Пока nslookup-ы резолвят , процесс их запустивший парсит резульатты...

Обработка SIGCHLD не потребует никиких примитивов синхронизации ( мутексов семафоров итд ) ,
всю работу сделает ядро
переклчением контекста основного кода и обработчика сигнала ( в простонародии колбеком) ...

Если ТС Unix way не нравится , пусть пишет свой арбитр нитей в соотвествии с ТЗ. ...
...
Рейтинг: 0 / 0
Linux C++ потоки
    #39266248
д0k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly Moskovskyд0kВ тему cpp::end of use

40 секунд.....
Код: plaintext
1.
for domain in `cat resolv` ; do  nslookup $domain | egrep 'Name|Address' ; done



Это не то что требовалось.
Надо параллельно резолвить.


Не вижу проблем запустить резолвинг
в паралель
...
Рейтинг: 0 / 0
Linux C++ потоки
    #39266255
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Учитывая что DNS - достаточно быстрая услуга и имеет бесконечно большое количество зеркал (availability,
partition tolerance) - то задача по сути сводится к толщине канала. Пока сеть выдерживает - можно увеличивать
параллелизм.

Но помня природу самих DNS-записей я-бы больше делал акцент на их длительное хранение.
На самом деле только 1-й запуск этого приложения будет продуктивен. Повторные - скорее
всего будут бегать по тем-же записям. Это такое моё предположение.
...
Рейтинг: 0 / 0
Linux C++ потоки
    #39266276
д0k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonУчитывая что DNS - достаточно быстрая услуга и имеет бесконечно большое количество зеркал (availability,
partition tolerance) - то задача по сути сводится к толщине канала. Пока сеть выдерживает - можно увеличивать
параллелизм.

Но помня природу самих DNS-записей я-бы больше делал акцент на их длительное хранение.
На самом деле только 1-й запуск этого приложения будет продуктивен. Повторные - скорее
всего будут бегать по тем-же записям. Это такое моё предположение.

без админа тыкать пальцем в небо смысла малоGenerally, DNS propagation takes 24 to 48 hours to complete whenever any changes are made to the Zone File. Lowering the TTL prior to making the change will reduce the time for propagation.



У меня ощущение , что либо консерватории проекта что то с камертоном ,
либо уровень ТС не дотягивает до нужной проекту квалификации...
...
Рейтинг: 0 / 0
Linux C++ потоки
    #39266291
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Местные регистраторы гарантировали что через 24 часа доменное имя будет доступно.

Хотя ... вся эта постановка зыбкая. На консистетность забили большой болт.
...
Рейтинг: 0 / 0
Linux C++ потоки
    #39266296
д0k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonУчитывая что DNS - достаточно быстрая услуга и имеет бесконечно большое количество зеркал (availability,
partition tolerance) - то задача по сути сводится к толщине канала.


Задача сводится к настройке на Linux машине кеширующего ДНС.
с которым приложение рабоатет по 127.0.0.1
и не заморачивается с собственним внутренним кешем для резолвинга.....

Если кеширующий ДНС ранее уже не взлетел по каким либо причинам,
то вопросы который задает ТС не внушают мне оптимизма ,
что он сделает кеш лучше, чем готовый кеширующих ДНС.
...
Рейтинг: 0 / 0
Linux C++ потоки
    #39266400
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
д0kНе вижу проблем запустить резолвинг
в паралель
Ну так и напишите за 40 секунд, а не хвалитесь однострочным хеллоуворлдом не по теме
...
Рейтинг: 0 / 0
Linux C++ потоки
    #39266493
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я-бы сказал что тут параллель как таковая не особо нужна. Тут скорее - грамотное
разбиение исходных данных на N частей (планирование). Запуск N jobs. И слияние
их результатов в логи. Практически нет concurrency.
...
Рейтинг: 0 / 0
Linux C++ потоки
    #39266529
д0k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly Moskovskyд0kНе вижу проблем запустить резолвинг
в паралель
Ну так и напишите за 40 секунд, а не хвалитесь однострочным хеллоуворлдом не по теме


2 минуты :)
Код: plaintext
1.
2.
3.
4.
5.
6.
$ cat ./resolver.sh 
 res=result.$$ ; 
 echo $res; 
  nslookup  $1   >>$res   2>&1 

$ for domain in `cat  resolv` ; do     ./resolver.sh $domain  & 2>&1   ;    done  ;   cat  result* ;   rm -f   result* ;
...
Рейтинг: 0 / 0
Linux C++ потоки
    #39266547
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В оракле есть такая очень удобная функция. Ora_hash().

Вот пример ее юзания. Выборка гео-Ip адресов будет равномерно разбита на 2 группы:

Код: plsql
1.
SELECT beginIp FROM geo WHERE ORA_HASH(beginIp,2) = 0;



Код: plsql
1.
SELECT beginIp FROM geo WHERE ORA_HASH(beginIp,2) = 1;



Одну можно передать 1-му джобу и вторую другому.
...
Рейтинг: 0 / 0
Linux C++ потоки
    #39266580
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот тут на выбор аж 7 DNS провайдеров http://beebom.com/best-dns-servers/

+ у каждого целая пачка primary/secondary.
...
Рейтинг: 0 / 0
Linux C++ потоки
    #39266599
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
д0k,

Код: plaintext
1.
./resolver.sh $domain &


а что будет если запустить сразу 25000 штук?
Код: plaintext
1.
cat  result*


а что будет если к этому моменту не все джобы завершатся?

Я смотрю, вы тот еще доктор, умеете удалить гланды через одно место
...
Рейтинг: 0 / 0
Linux C++ потоки
    #39266628
д0k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly Moskovskyд0k,

Код: plaintext
1.
./resolver.sh $domain &


а что будет если запустить сразу 25000 штук?
Код: plaintext
1.
cat  result*


а что будет если к этому моменту не все джобы завершатся?

Я смотрю, вы тот еще доктор, умеете удалить гланды через одно место

Тут я майтоном согласен , нужно сначало думать а потом писать на скорость ...

1. можно проверить...
2. проверку на завершение нужно добавить.

После размышлений я бы по другому сделал
порезал бы файл со списком доменов на нужное количество под паралеллизм

и скормил бы файлы паралельно выполняющимся nslookup -ам
перанаправив их содержимое в stdin а stdout парсеру ...

Anatoly MoskovskyЯ смотрю, вы тот еще доктор, умеете удалить гланды через одно место

Я по всякому могу
...
Рейтинг: 0 / 0
Linux C++ потоки
    #39266692
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парни, чего вы за всякую .уйню зацепились? ТС давно пропал если чо.
...
Рейтинг: 0 / 0
Linux C++ потоки
    #39266694
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС уронил гугловский ДНС ?
...
Рейтинг: 0 / 0
Linux C++ потоки
    #39266725
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
свой резолвер писать ещё не предлагали?
...
Рейтинг: 0 / 0
Linux C++ потоки
    #39289522
kT_________
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как молоды мы были.. хочется вновь и вновь перечитывать книги Стивенса ;)
сорри, не стал читать всю ветку, автору можно порекомендовать потоки Буста, если конечно вы о них не знаете, либо ограничены в их использование.
...
Рейтинг: 0 / 0
19 сообщений из 69, страница 3 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / Linux C++ потоки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]