Назад | Перейти на главную страницу

Pgpool-II не делает недействительным кеш запросов для пользовательских схем

Я настроил pgpool2 (v3.4.3) с postgresql (v9.5) для кеширования таких запросов:

memory_cache_enabled = on
memqcache_method = 'shmem'
memqcache_total_size = 67108864
memqcache_max_num_cache = 10000000
memqcache_expire = 600
memqcache_auto_cache_invalidation = on
memqcache_maxcache = 409600
memqcache_cache_block_size = 1048576
memqcache_oiddir = '/var/log/pgpool/oiddir'

Я могу подтвердить, что запросы действительно кешируются.

Проблема в том, что кеш не станет недействительным даже после обновлений, вставок и удалений в той же таблице. Вот что происходит:

Аннулирование кеша работает должным образом в public схема, но не в других схемах. Я прочитал это в Вопросы-Ответы:

Когда я использую имена таблиц с указанием схемы, pgpool-II не делает недействительным кеш запросов к памяти, и я получаю устаревшие данные. Зачем? Похоже, вы не установили функцию "pgpool_regclass". Без этой функции pgpool-II игнорирует имя схемы pat из имени таблицы с указанием схемы, и аннулирование кеша не выполняется.

Я установил оба pgpool_adm, pgpool_recovery и pgpool_regclass расширения как на application и postgres базы данных, но кеш все еще не становится недействительным.