Configurei pgpool2
(v3.4.3) com postgresql
(v9.5) para armazenar em cache consultas como esta:
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'
Posso confirmar que as consultas estão realmente sendo armazenadas em cache.
O problema é que o cache não invalida mesmo após atualizações, inserções e exclusões na mesma tabela. É o que acontece:
A invalidação de cache funciona como esperado no esquema public
, mas não em outros esquemas. Eu li isto em FAQ :
When I use schema qualified table names, pgpool-II does not invalidate on memory query cache and I got outdated data. Why? It seems you did not install "pgpool_regclass" function. Without the function, pgpool-II ignores the schema name pat of the schema qualified table name and the cache invalidation fails.
Instalei as extensões pgpool_adm
, pgpool_recovery
e pgpool_regclass
nos bancos de dados application
e postgres
, mas o cache ainda não está invalidando.
Tags cache postgresql sql query