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

Откуда:
Сообщений: 10954
YuRock,

ничего, что клиент сам себе один любимый, а у сервера их таких х\з сколько в данный момент ?
14 июн 20, 22:42    [22150628]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4214
kdv
YuRock
Бывает гораздо лучше выделить десяток мегабайт и одним пакетом с сервера

слишком много вас таких, желающий вытащить "десяток мегабайт". Никакой памяти не напасёшся.
А потом, например, при SORT создается временный файл, который ОС пытается разместить в памяти полностью.
А ты его затем утаскиваешь.
Впрочем, заканчивается это всё точно так же - приходит 10-20 таких клиентов, каждому подай отчет 2-5 гиг, в результате память кончается, и всё это тащится на клиента с диска. А потом жалуются.
И к чему это? Сортировка должна быть произведена полностью в любом случае - все я записи профетчил или нет.
Даже если бы это было не так - не вижу смысла делать многомегабайтные запросы и потом, не фетча записи, закрывать запрос. Это странные клиенты. Хотя всякая логика бывает, конечно.
14 июн 20, 22:46    [22150632]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4214
hvlad
YuRock,

ничего, что клиент сам себе один любимый, а у сервера их таких х\з сколько в данный момент ?
Не вижу, как это усложняет задачу кроме возможности запроса
"верни следующую запись"
добавить возможность запроса
"верни следующие N записей или сколько осталось, если их меньше N".

Или ты на память намекаешь? Если да - то это полностью на совести прикладных программистов будет, ясное дело.
Они могут как существенно снизить время получения данных, так и переполнить память сервера, что увеличит это время.
14 июн 20, 22:53    [22150638]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
hvlad
Member

Откуда:
Сообщений: 10954
YuRock,

речь о том, что нет универсально хороших решений.
14 июн 20, 23:13    [22150654]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4214
hvlad,

Вот, к примеру, есть отчет, который возвращается запросом, результат которого будет 10000 записей 10Мб.

Это на 100 клиентов - 1Gb всего на буффер для этого. При условии, что все одновременно захотят.

Вот у меня клиент есть ~150 точек, большинство из которых - на спутнике (и ничего другого нет лучшего).
Скорость > 10Мбит, но пинг - 9 секунд.

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

Откуда: Донецк
Сообщений: 4214
hvlad
YuRock,

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

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

Откуда:
Сообщений: 10954
YuRock
hvlad,

Вот, к примеру, есть отчет, который возвращается запросом, результат которого будет 10000 записей 10Мб.

Это на 100 клиентов - 1Gb всего на буффер для этого. При условии, что все одновременно захотят.
Ты действительно считаешь, что сеть в состоянии мгновенно проглотить 100 пакетов по 10МБ на 100 адресов ?

YuRock
Вот у меня клиент есть ~150 точек, большинство из которых - на спутнике (и ничего другого нет лучшего).
Скорость > 10Мбит, но пинг - 9 секунд.

Получить такой резалтсет в таких условиях можно было бы за 20 секунд. И серверу было бы лучше - отдал сразу всё и забыл.
Ты уверен, что сервер (спутник) не отдавал бы их по-очереди в таких условиях ?

YuRock
А сейчас за такую задачу даже браться нет смысла - не дождутся, приходится придумывать другие архитектурные решения.
Боюсь, ты хочешь и рыбку съесть, и всё остальное - так не бывает :)
14 июн 20, 23:31    [22150662]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
hvlad
Member

Откуда:
Сообщений: 10954
YuRock
Потому надо давать больше свободы прикладным программистам - они знают (могут знать), как в их случае может быть лучше.
Firebird разрешает в некоторой степени управлять размером сетевого пакета (логического, есс-но)

Сообщение было отредактировано: 14 июн 20, 23:31
14 июн 20, 23:32    [22150663]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
Dimitry Sibiryakov
Member

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

Только смысла в этом никакого. Запрос-то на фетч с сервера отправляется ещё до того, как
клиентский буфер резалтсета опустеет, не так ли?..

Posted via ActualForum NNTP Server 1.5

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

Откуда:
Сообщений: 10954
Dimitry Sibiryakov,

ну да, как первый байт получили - сразу спрашиваем новый пакет.
Или нет так ? А как ? И как тут влияет размер пакета ?
14 июн 20, 23:41    [22150669]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4214
hvlad
Ты действительно считаешь, что сеть в состоянии мгновенно проглотить 100 пакетов по 10МБ на 100 адресов ?
Не мгновенно, конечно, но передать гигабайт по гигабитной сетке можно за реальное, не космически большое время. Речь о считанных секундах.
hvlad
Ты уверен, что сервер (спутник) не отдавал бы их по-очереди в таких условиях ?

Даже если и так - это было бы жизнеспособно.
14 июн 20, 23:55    [22150677]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4214
hvlad
YuRock
Потому надо давать больше свободы прикладным программистам - они знают (могут знать), как в их случае может быть лучше.
Firebird разрешает в некоторой степени управлять размером сетевого пакета (логического, есс-но)
Я не в курсе, если это возможно - хорошо, это похоже на решение проблемы долгого пинга.
14 июн 20, 23:59    [22150679]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
hvlad
Member

Откуда:
Сообщений: 10954
YuRock
hvlad
Ты действительно считаешь, что сеть в состоянии мгновенно проглотить 100 пакетов по 10МБ на 100 адресов ?
Не мгновенно, конечно, но передать гигабайт по гигабитной сетке можно за реальное, не космически большое время.
Так она же не гигабитная ?


YuRock
hvlad
Ты уверен, что сервер (спутник) не отдавал бы их по-очереди в таких условиях ?

Даже если и так - это было бы жизнеспособно.
Первый получит своё через 10 сек, второй - через 20, 10-ый - через 100 и т.д.

Жизнеспособно ?
15 июн 20, 00:04    [22150681]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
hvlad
Member

Откуда:
Сообщений: 10954
YuRock
hvlad
Firebird разрешает в некоторой степени управлять размером сетевого пакета (логического, есс-но)
Я не в курсе, если это возможно - хорошо, это похоже на решение проблемы долгого пинга.
Я же сказал - в некоторой степени :)
См. TcpRemoteBufferSize

PS Долгий пинг так или иначе себя покажет
15 июн 20, 00:07    [22150682]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4214
hvlad
Так она же не гигабитная ?
Почему? На сервере - именно гигабитная.

hvlad
Первый получит своё через 10 сек, второй - через 20, 10-ый - через 100 и т.д.

Жизнеспособно ?
Да, даже так очень жизнеспособно, ибо никогда не бывает, чтобы именно этот отчет бухгалтеры магазинов запустили именно одновременно.
А даже если 10 одновременно - это всего лишь 100 секунд - это реальное время.
Сколько времени займет поочерёдный фетч 10к записей - я даже считать не хочу.
15 июн 20, 00:20    [22150684]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4214
hvlad
YuRock
пропущено...
Я не в курсе, если это возможно - хорошо, это похоже на решение проблемы долгого пинга.
Я же сказал - в некоторой степени :)
См. TcpRemoteBufferSize

PS Долгий пинг так или иначе себя покажет
Благодарю, почитал.
Там вроде лимит в 32 кб.
Легко посчитать во мя для моего примера: 10000/32 = 300. 3 тысячи секунд. Это - НЕ жизнеспособно.
Но всё равно спасибо, это может ускорить некоторые кейсы в несколько раз.

Сообщение было отредактировано: 15 июн 20, 00:29
15 июн 20, 00:30    [22150685]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28878
YuRock
На сервере - именно гигабитная

сервер в вакууме? Ты о чем вообще? Допустим, на сервере сеть гигабитная, а у клиента модем gprs 3g. Дальше что?
15 июн 20, 00:30    [22150686]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4214
kdv
YuRock
На сервере - именно гигабитная

сервер в вакууме? Ты о чем вообще? Допустим, на сервере сеть гигабитная, а у клиента модем gprs 3g. Дальше что?
Сервер что, со всеми клиентами работает по скорости самого медленного (тонкого) клиента?
15 июн 20, 00:33    [22150687]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4214
Или по очереди? Я не понимаю, на что вы намекаете.

Я понимаю так, грубо говоря: если сервер гигабитный, и у него 10 клиентов 100-мегабитных, то сервер может в секунду посылать по 100 мегабит каждому клиенту, а вот если клиентов 11 - то уже меньше.
Возможно, я заблуждаюсь.
15 июн 20, 00:37    [22150688]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
Dimitry Sibiryakov
Member

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

hvlad
ну да, как первый байт получили - сразу спрашиваем новый пакет.
Или нет так ? А как ? И как тут влияет размер пакета ?

Нууу... Например, можно завести какую-нибудь переменную и при каждом фетче проверять: если
количество сообщений в буфере упало ниже её значения - посылать новый запрос. Главное дать
этой переменной имечко позаковыристее, чтобы никто не догадался к чему она служит.
Например, rrq_reorder_level.

Posted via ActualForum NNTP Server 1.5

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

Откуда:
Сообщений: 10954
YuRock
hvlad
ак она же не гигабитная ?
Почему? На сервере - именно гигабитная.
Какая разница ? Скорость передачи данных определяется самым медленным звеном.
Или ты надеешься, что все промежуточные уровни будут буферизовать эти гигабайты ?


YuRock
Сколько времени займет поочерёдный фетч 10к записей - я даже считать не хочу.
Нет никакого поочерёдного фетча. Не читай бред.
15 июн 20, 01:29    [22150694]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
hvlad
Member

Откуда:
Сообщений: 10954
Dimitry Sibiryakov,

иди к Джимми поплачь.

PS rrq_reorder_level - абсолютно нормальное имя. Если читать уметь.
15 июн 20, 01:30    [22150695]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
hvlad
Member

Откуда:
Сообщений: 10954
YuRock
если сервер гигабитный, и у него 10 клиентов 100-мегабитных, то сервер может в секунду посылать по 100 мегабит каждому клиенту
Ты хочешь, чтобы эту секунду сервер никого больше не обслуживал.
Это так не работает. И не будет работать никогда.
15 июн 20, 01:32    [22150697]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4214
hvlad
YuRock
если сервер гигабитный, и у него 10 клиентов 100-мегабитных, то сервер может в секунду посылать по 100 мегабит каждому клиенту
Ты хочешь, чтобы эту секунду сервер никого больше не обслуживал.
Это так не работает. И не будет работать никогда.
Кого еще, если у него 10 клиентов? Именно их он и должен обслуживать. Ну, еще, может, что-то важное делать с базой, накладные расходы... Я написал: грубо говоря.
15 июн 20, 02:05    [22150702]     Ответить | Цитировать Сообщить модератору
 Re: Ищу примеры на С  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4214
hvlad
Скорость передачи данных определяется самым медленным звеном.
Странно это слышать. Я не знаю особенностей внутренностей сервера, но, странно... Как бы то ни было.

hvlad
Нет никакого поочерёдного фетча. Не читай бред.


Я и не говорю, что на каждую запись отдельный пакет. Но на размер пакета 32кб уже делил - всё-равно ужасно на долгом пинге.
15 июн 20, 02:08    [22150704]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Firebird, InterBase Ответить