Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PostgreSQL > Асинхронные запросы в windows


Автор: ghosterus 10.9.2020, 14:35
Всем привет. 

Работаю в связке Java Spring - Hibernate - PostgreSQL. К БД я отсылаю асинхронные запросы в нескольких потоках. В результате таких действий БД может ничего не вернуть на запрос, в случае, если какие-то запросы на получение одного и того же атрибута посылаются в один и тот же момент. Если же отказаться от потоков и отсылать все запросы последовательно, то все работает корректно.

Я покопался в файле конфигурации (postgresql.conf) и наткнулся на effective_io_concurrency, которое задаёт допустимое число параллельных операций ввода/вывода. Правильно ли я понимаю, что эта настройка работает только из-под линукса? В системе windows она может быть равна только нулю, а значит в данной ОС никаких параллельных операций с postgreSQL быть не может?

Автор: Akina 10.9.2020, 16:23
Эта настройка задаёт количество параллельных потоков чтения для потока исполнения (соединения с СУБД) на сервере с физического устройства (накопителя). См. https://www.postgresql.org/docs/12/runtime-config-resource.html#RUNTIME-CONFIG-RESOURCE-ASYNC-BEHAVIOR

Теоретически может работать в любой ОС, если это поддержано дисковой подсистемой (и аппаратно, и программно, есссно). В Windows скорее всего не поддержано для жёстких дисков и РАЙДов (блин, да там до сих пор нормальный лифт сделать не могут, о чём речь!), хотя насчёт твердотельных накопителей - уже не уверен.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)