LINUX.ORG.RU

Выбор асинхронного днс-резолвера

 , ,


0

1

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

Рассматривал c-ares, но после просмотра документации и беглого осмотра кода посчитал что для работы с мультиплексирующими библиотеками он не подходит, автор немного увлекся select'ом и разнообразными FD_SET.

Остановился на udns: http://www.corpit.ru/mjt/udns.html, он же есть в стретче. Смущает то что код давно не обновлялся и скудная документация, но это компенсирует хороший говорящий код.

Какие подводные камни c udns?


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

anonymous
()

Смущает то что код давно не обновлялся

Протокол DNS тоже не часто обновляют, как и linux syscall (или интерфейсы glibc), а больше там ничего и не используется, скорее всего...

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

IMHO, если думаешь, что он тебе больше подходит, чем другие варианты - просто пользуйся и не заморачивайся. udns - это довольно мелкий проект, который однажды написали, какое-то время он эволюционировал и стабилизировался, когда вся нужная функциональность реализована, все ошибки исправлены, а интерфейсы с внешним миром не меняются.

anonymous
()

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

Просто отправьте патч

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

смысла нет выбирать асинхронный

Да лан, а если 100+ запросов, то их тоже резолвить поочереди и забить на то что используем libevent?

какое-то время он эволюционировал и стабилизировался

Спасибо, про стабильность и хотел услышать

Просто отправьте патч

к сожалению, моих знаний и времени недостаточно чтобы запилить патч для libevent или c-ares, но такие мысли были

ocr
() автор топика
Ответ на: комментарий от ocr

Да лан, а если 100+ запросов, то их тоже резолвить поочереди и забить на то что используем libevent?

бгг, ну давайте забьем в баш скрипт 100+ разных доменов и посмотрим за сколько они разрезолвятся в лучшем случае
не я конечно одобряю что в случае за миллионы запросов это очень актуально
но вы в своих реалиях даже до пол тыщи не дойдете

anonymous
()
Ответ на: комментарий от anonymous

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

ocr
() автор топика
Ответ на: комментарий от anonymous

я не могу сказать определенно
просто представь себе что надо отрезолвить 10 тыс доменов разом и не единожды

ocr
() автор топика
Ответ на: комментарий от ocr

просто представь себе что надо отрезолвить 10 тыс доменов разом и не единожды

Спаммер что-ли (шучу)?

Только учитывай, что DNS запросы и getaddrinfo сильно разные вещи.

getaddrinfo использует NSS, который лезет в /etc/hosts, LDAP, nmb и любые другие локальные и сетевые базы (поэтому, не может быть асинхронным, кроме как работать на пуле потоков) и только потом делает DNS запрос (который сделать асинхронным довольно просто). Т.е. асинхронный DNS локальные адреса, если их нет в DNS разрешить не сможет (например, если адрес прописан в /etc/hosts).

anonymous
()
Ответ на: комментарий от anonymous

нет, не спамер)
мне удалось после непрофильного говновуза устроиться погромистом на очень жестких условиях и скоро будет проект в котором мне придется работать с асинхронностями, хочу разобраться и поэтому взялся написать утилиту которая по большрму списку доменов скачивает главную страницу.
Про nss не знал

ocr
() автор топика
Ответ на: комментарий от ocr

синтетические надуманные задачи ? тогда вам не сюда, абстрактных коней в вакууме дома считайте

anonymous
()
Ответ на: комментарий от ocr

про за тыщу резолвов ? очевидно спам бот ака зловред
в реальных задачах этого не бывает

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.