Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
 Re: Ищу примеры на С  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10281
YuRock
Я и не говорю, что на каждую запись отдельный пакет. Но на размер пакета 32кб уже делил - всё-равно ужасно на долгом пинге.
А какой будет ужас, когда размер пакета FB всё равно превысит MTU ...
15 июн 20, 07:42    [22150736]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
WildSery
Member

Откуда: да, оттуда.
Сообщений: 18521
Побурчу.
10000 строк - не бывает такого отчёта.
15 июн 20, 09:36    [22150774]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
hvlad
Member

Откуда:
Сообщений: 10961
Basil A. Sidorov
А какой будет ужас, когда размер пакета FB всё равно превысит MTU ...
Тут речь о том, чтобы клиент выдал (в идеале) 1 раз op_fetch и потом получил все записи, без повторных запросов. Т.е. не запрос-ответ-запрос-ответ..., а запрос-ответ-ответ-ответ...
15 июн 20, 09:42    [22150780]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1892
Basil A. Sidorov
А какой будет ужас, когда размер пакета FB всё равно превысит MTU ...

скорее когда превысит window size

YuRock
Я и не говорю, что на каждую запись отдельный пакет. Но на размер пакета 32кб уже делил - всё-равно ужасно на долгом пинге.

говоришь, как будто 10мб разом передаются по сети
с таким пингом ничего не спасет, ты не сможешь утилизировать весь канал в одном соединении
15 июн 20, 09:44    [22150781]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10575
YuRock,

кто тебе мешает написать промежуточное звено которое так делает? Писать толстый клиент, который работает через спутник с огромнейшим пингом, мне кажется немного странным архитектурным решением.
15 июн 20, 09:48    [22150787]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4221
Симонов Денис
YuRock,

кто тебе мешает написать промежуточное звено которое так делает? Писать толстый клиент, который работает через спутник с огромнейшим пингом, мне кажется немного странным архитектурным решением.
Да ничего не мешает, просто ситуация сужает возможности.
15 июн 20, 10:32    [22150818]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50418

YuRock
Кого еще, если у него 10 клиентов? Именно их он и должен обслуживать

Один клиент запросил миллион записей. Сервер забил весь канал фетчем этому клиенту.
Остальные нервно курят, ожидая пока это дерьмо пролезет сквозь трубу.

Posted via ActualForum NNTP Server 1.5

15 июн 20, 12:32    [22150887]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4221
Dimitry Sibiryakov
YuRock
Кого еще, если у него 10 клиентов? Именно их он и должен обслуживать

Один клиент запросил миллион записей. Сервер забил весь канал фетчем этому клиенту.
Остальные нервно курят, ожидая пока это дерьмо пролезет сквозь трубу.
Я не понимаю, почему должно быть так, если толщина канала сервера в десятки-сотни раз толще, чем у этого клиента, запросившего миллион записей.
Возможно, это особенность сервера Firebird, я нюансов не знаю, но верится неохотно.
15 июн 20, 14:02    [22150974]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50418

YuRock
толщина канала сервера в десятки-сотни раз толще, чем у этого клиента

1. Откуда у сервера такой канал?
2. Это дерьмо будет накапливаться в месте где широкий канал становится узким.

Posted via ActualForum NNTP Server 1.5

15 июн 20, 14:14    [22150986]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4221
Dimitry Sibiryakov
Это дерьмо будет накапливаться в месте где широкий канал становится узким.
Будет накапливаться, пока не заполнится полностью, и серверу придется ждать, пока можно будет отправить очередную порцию дерьма.
Ну и что? Почему в это время нельзя обслуживать других клиентов?
15 июн 20, 14:26    [22150998]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50418

YuRock
Почему в это время нельзя обслуживать других клиентов?

Потому что обработка переполнения системного буфера при send() в общем случае нетривиальна
и требует довольно хитровывернутого кода, который 30 лет назад никто просто не стал писать.

Posted via ActualForum NNTP Server 1.5

15 июн 20, 14:38    [22151008]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4221
Dimitry Sibiryakov
YuRock
Почему в это время нельзя обслуживать других клиентов?

Потому что обработка переполнения системного буфера при send() в общем случае нетривиальна
и требует довольно хитровывернутого кода, который 30 лет назад никто просто не стал писать.
Я не видел исходников. Но если без хитровывернутости, то в моём понимании это так:
1. Делаем select.
2. Если он вернул < 0, или FD_ISSET(exceptfds) - ошибка, всё.
3. Если 0, или !FD_ISSET(writefds) - ждём.
4. Иначе - send следующей порции.

Мне кажется, при таком тривиальном алгоритме можно обслуживать других клиентов.
15 июн 20, 14:56    [22151032]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50418

Вот это "ждём" и "можно обслуживать" - взаимно несовместимы.

Posted via ActualForum NNTP Server 1.5

15 июн 20, 15:08    [22151055]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4221
Dimitry Sibiryakov
Вот это "ждём" и "можно обслуживать" - взаимно несовместимы.
Разве буффер отправки общий на весь сервер? Не на каждый клиентский сокет?
Это тоже мне кажется странным, впрочем я не претендую на звание гуру работы с сетями.
15 июн 20, 15:18    [22151065]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
Кроик Семён
Member

Откуда: СПб --> Dortmund
Сообщений: 6621
pietro_888,

pietro_888
Простите.. по парюсь со следующем: где взять исходники с примерами на голом СИ?


посмотрите, например:

firebird/examples/api
  • api1.c
  • api3.c
  • ... и остальные тоже


хотя, в принципе, первым же ответом оффлайн-версию той же папки подсказали

Сообщение было отредактировано: 15 июн 20, 15:59
15 июн 20, 15:58    [22151092]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
Все форумы / Firebird, InterBase Ответить