O Pgpool-II não invalidaria o cache de consulta para esquemas de usuário

1

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:

  • Selecione uma linha da tabela - o cache não está presente - a seleção real é executada.
  • Selecione a mesma linha - a linha é recuperada do cache.
  • Atualize a mesma linha - sucesso.
  • Selecione a mesma linha - a linha é recuperada do cache.

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.

    
por Kolyunya 20.01.2017 / 15:00

0 respostas