Здравствуйте, Изя Рнет, Вы писали:
N>>Что такое HOLB? N>>Разделение на разные потоки в SCTP ценно только одним: в каждом потоке своё упорядочение сообщений и свои зависимости между ними, когда нежелательно, чтобы проблемы передачи в среде и приёма обработчиком влияли на другую группу сообщений. А это непосредственно стыкается с QoS. ИР>Неа. Не стыкается. Есть логическая связь внутри группы сообщений и важен порядок их поступления — ок, это поток. Если есть другая группа сообщений, внутри которой есть порядок, но он не связан с порядком в первой, то это другой поток. Нет никаких причин, чтобы проблемы в первой группе влияли на вторую. И таких групп сообщений хоть миллион.
Теоретически — да. На практике миллион мне кажется ну совсем маловероятным; тысячи — можно при извращённом раскладе, но это можно заказать; в практически заметных случаях группа (поток) определяется приоритетом.
N>>Если HOLB — это head-of-line blocking, то множество потоков не является единственным или даже лучшим методом решения этой проблемы, всегда легче организовать адекватную буферизацию в userland. ИР>Да, head of line blocking. И буферизация не спасает. Пусть у нас в едет что-то массивное, а тем временем хочется послать что-нибудь мелкое. Вот чтобы мелкое не оттормозилось, пока едет большое, мелкое стоит послать отдельным потоком.
А почему хочется послать что-нибудь мелкое? Потому что оно важнее/срочнее? Тогда см. выше.
Здравствуйте, netch80, Вы писали:
N>Здравствуйте, Изя Рнет, Вы писали:
N>>>Что такое HOLB? N>>>Разделение на разные потоки в SCTP ценно только одним: в каждом потоке своё упорядочение сообщений и свои зависимости между ними, когда нежелательно, чтобы проблемы передачи в среде и приёма обработчиком влияли на другую группу сообщений. А это непосредственно стыкается с QoS. ИР>>Неа. Не стыкается. Есть логическая связь внутри группы сообщений и важен порядок их поступления — ок, это поток. Если есть другая группа сообщений, внутри которой есть порядок, но он не связан с порядком в первой, то это другой поток. Нет никаких причин, чтобы проблемы в первой группе влияли на вторую. И таких групп сообщений хоть миллион.
N>Теоретически — да. На практике миллион мне кажется ну совсем маловероятным; тысячи — можно при извращённом раскладе, но это можно заказать; в практически заметных случаях группа (поток) определяется приоритетом.
Это был фигуральный "миллион" в смысле дофига
Что касается заметных случаев, то Главное Приложение, под которое и дизайнился SCTP на том и строится — нет смысла стоять и ждать прогресса в тех случаях, когда от того прогресса ничего не зависит, а можно действовать независимо.
N>>>Если HOLB — это head-of-line blocking, то множество потоков не является единственным или даже лучшим методом решения этой проблемы, всегда легче организовать адекватную буферизацию в userland. ИР>>Да, head of line blocking. И буферизация не спасает. Пусть у нас в едет что-то массивное, а тем временем хочется послать что-нибудь мелкое. Вот чтобы мелкое не оттормозилось, пока едет большое, мелкое стоит послать отдельным потоком.
N>А почему хочется послать что-нибудь мелкое? Потому что оно важнее/срочнее? Тогда см. выше.
Неа. Не важнее и не срочнее. Просто нет смысла ждать, пока пролезет толстое, если нет зависимости по порядку от него.
Здравствуйте, Изя Рнет, Вы писали:
ИР>>>Да, head of line blocking. И буферизация не спасает. Пусть у нас в едет что-то массивное, а тем временем хочется послать что-нибудь мелкое. Вот чтобы мелкое не оттормозилось, пока едет большое, мелкое стоит послать отдельным потоком. N>>А почему хочется послать что-нибудь мелкое? Потому что оно важнее/срочнее? Тогда см. выше. ИР>Неа. Не важнее и не срочнее. Просто нет смысла ждать, пока пролезет толстое, если нет зависимости по порядку от него.
Для этого вообще никакие потоки не нужны: флаг внеочередной, независимой от соседей доставки ставится независимо от номера потока.