При выносе в RAM выделяется определенно количество ОЗУ, которое будет использоваться для временных таблиц. Но что произойдет, если выделенного места не хватит?

В данном случае сеанс, который пытался это сделать, получит ошибку вида:

Невосстановимая ошибка
Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm:
по причине:
Ошибка СУБД:
53100: ERROR:  could not extend file "pg_tblspc/6539232/PG_15_202209061/16439/t13_9297341": No space left on device
HINT:  Check free disk space.
TEXT

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

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

Что будет с уже созданными временными таблицами в случае аварийного завершения работы PostgreSQL? 

Тестовый сценарий:

  1. 20 сеансов в цикле постоянно создают временные таблицы
  2. Один из процессов постгреса завершается путем выполнения команды kill -9 PID
  3. Ребут сервера shutdown -r now

После перезагрузки в логах постгреса проблем нет, вход в базы 1С и операции в базе выполняются успешно. 

Автовакуум удаляет безхозные временные таблицы, которые остались в результате аварийного завершения:

2024-01-14 16:41:28.431 MSK [29129:5/2] []   LOG:  autovacuum: dropping orphan temp table "fragster.pg_temp_8.tt1"
2024-01-14 16:41:28.433 MSK [29129:5/3] []   LOG:  autovacuum: dropping orphan temp table "fragster.pg_temp_9.tt1"
2024-01-14 16:41:28.433 MSK [29129:5/4] []   LOG:  autovacuum: dropping orphan temp table "fragster.pg_temp_8.tt2"

...........
TEXT

Заключение

Каталог временных таблиц можно выносить в RAM, только следует настроить мониторинг, чтобы своевременно реагировать на возможные проблемы нехватки места.