LINUX.ORG.RU

Одновременная запись в несколько сокетов


2

3

Суть задачи: RedHat Linux MRG Realtime Есть структура, содержащая (условно) список сокетов, в которые надо писать одинаковые данные (мультиплексирование). Сокетов достаточно много - сотни и единицы тысяч.

Операции записи должны быть асинхронными, при этом потокобезопасными. Высокие требования к латентности (распространение рыночных данных).

На какие низкоуровневые средства предложите посмотреть и какие высокоуровневые реализации посоветуете посмотреть?

Спасибо заранее.

Ответ на: комментарий от westtrd

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

Несколько десятков тысяч - каждому? Ты ради интереса time ping -f -c 100000 127.0.0.1 запусти :-) 80000 пакетов в секунду через loopback, 8000 пакетов в секунду на гигабитном линке. У тебя затык будет _не_ в переключении контекста, честно-честно. Расслабься, реализуй самую простую схему и готовься строить кластер. Не ты первый, не ты последний.

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

300 клиентов, 300 сообщений в секунду для каждого на 8-ядерной ноде. Ну максимум в 3 раза больше.

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

Одно из решений - обход стека протоколов TCP, но тут свои нюансы

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