Connection pool или постоянное подключение

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
ARM
Сообщения: 26
Зарегистрирован: 02 дек 2006, 13:27

Connection pool или постоянное подключение

Сообщение ARM » 02 дек 2006, 15:29

Доброго дня.

Подскажите знающие люди, проектируется клиент-сервер: FB 2 на Win; ADO.NET provider.
Интересует момент, что выбрать для клиента: connection pool, т.е. открыл коннект, старт транзакции, операция, заверш. транзакции, закрыли коннект.... или тоже самое через постоянное соединение + открытие новых подключений в паралельных потоках (1-3 одновременных).
Вижу след. минусы Connection pool:
1) есть ограничение на размер пула.
2) насколько грузовой этот пул для клиенской машины порядка P2.0, 512 мозгов при, допустим, 10-20 открытых коннектах ?
Static connection:
С постоянным коннектом я работал всегда, проблем не было! Но возможно я чего-то не знаю о пуле! :)

Linco
Сообщения: 13
Зарегистрирован: 01 дек 2004, 16:02

Сообщение Linco » 26 дек 2006, 21:57

ИМХО зависит от задачи. В большинстве задач нет необходимости усложнять логику программированием пула. На открытие и закрытие коннекта уходит дополнительное процессорное время. В общем если такое поведение не диктуется специфической задачей/условиями, то необходимости нет.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 26 дек 2006, 22:23

connection pool это как раз несколько постоянно открытых коннектов. а не открыл-закрыл.
1) есть ограничение на размер пула.
какое? пул вообще то как раз для веб-приложений или трехзвенки и имеет смысл. 10 коннектов обычно обслуживают до 100 пользователей.
P2.0, 512 мозгов при, допустим, 10-20 открытых коннектах ?
мда. и на эту тачку ты собрался водрузить - Firebird и IIS с ADO.Net ???
если бы у тебя был только Firebird, то оно и 50 коннектов потянуло бы, обычных клиент-серверных. А IIS + ADO.Net на такой машинке будет худо.
но попробовать можно, чтобы было понятно, в какую сторону двигаться :)

ARM
Сообщения: 26
Зарегистрирован: 02 дек 2006, 13:27

Сообщение ARM » 27 дек 2006, 10:27

Linco писал(а):ИМХО зависит от задачи. В большинстве задач нет необходимости усложнять логику программированием пула. На открытие и закрытие коннекта уходит дополнительное процессорное время. В общем если такое поведение не диктуется специфической задачей/условиями, то необходимости нет.
Так пока и решил (не гемороится с пулом). Если при интенсивных открытиях коннектов, попробую юзать пул.

ARM
Сообщения: 26
Зарегистрирован: 02 дек 2006, 13:27

Сообщение ARM » 27 дек 2006, 10:42

kdv писал(а):connection pool это как раз несколько постоянно открытых коннектов. а не открыл-закрыл.
Это мне ? Вроде я такого не опровергал!
kdv писал(а):
1) есть ограничение на размер пула.
какое?
В строке подключения: Pooling=False;MinPoolSize=0;MaxPoolSize=100
kdv писал(а):пул вообще то как раз для веб-приложений или трехзвенки и имеет смысл. 10 коннектов обычно обслуживают до 100 пользователей.
не согласен. трехзвенка - однозначно, а также клиент-сервер, где клиент активно работает с БД через какой-то промежуток времени (не открыл, записал много, закрыл). Например работает с 5-10 потоков, которые юзают БД (пример, самописный шедулер, которого нет в ФБ). Вот последний вариант мой.
kdv писал(а):
P2.0, 512 мозгов при, допустим, 10-20 открытых коннектах ?
мда. и на эту тачку ты собрался водрузить - Firebird и IIS с ADO.Net ???
если бы у тебя был только Firebird, то оно и 50 коннектов потянуло бы, обычных клиент-серверных. А IIS + ADO.Net на такой машинке будет худо.
но попробовать можно, чтобы было понятно, в какую сторону двигаться :)
Дима, в первом посте я указал "что выбрать для клиента"! О оснастке сервака речь не идет.
ЗЫ: На такой (от фонаря придуманном конфиге клиента) даже IIS+.NET framework+.NET application будет бегать, а вот если добавить ФБ, то будет проблематичнее.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 27 дек 2006, 10:47

Это мне ? Вроде я такого не опровергал!
в исходном вопросе это было очень запутанно. про "клиента" проглядел, и, собственно, на клиенте пул коннектов никто никогда не делает.

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

ARM
Сообщения: 26
Зарегистрирован: 02 дек 2006, 13:27

Сообщение ARM » 27 дек 2006, 11:01

kdv писал(а):
Это мне ? Вроде я такого не опровергал!
в исходном вопросе это было очень запутанно. про "клиента" проглядел, и, собственно, на клиенте пул коннектов никто никогда не делает.

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

Ок, сенкс, общие понятия получил. Топик закрыт.

Ответить