[pgpool-general: 2514] Re: black_function_list in replication mode

Karsten Düsterloh pgpool-general-ml at tal.de
Fri Jan 31 16:31:40 JST 2014

Tatsuo Ishii wrote:
> "Specify a comma separated list of function names that do update the 
> database. SELECTs using functions specified in this list are not
> load balanced if in replication mode. In master slave mode, such
> SELECTs are sent to master(primary) only."

Thanks for the clarification.

>> But it doesn't work.
> Works for me. SELECTs using functions in the black_function_list 
> should be sent to all nodes. 

It seems as if you need to drop the database connection after changing
the black_function_list and reloading.

Yesterday, when I discovered that the function call wasn't replicated
because it wasn't blacklisted, I was using the psql shell. I kept that
shell while changing pgpool's config and kept using it while doing my
(failed) replication tests afterwards.

Today, I started with a fresh psql shell and now everything works as
expected! (pgpool was neither restarted nor reloaded in the meantime.)

> What do you mean by "doesn't work" exactly?
> Can you please show the query using "tal_clonerow"?

The row cloned by "select tal_clonerow('sometable',15579);" function was
only inserted on one random backend, as checked by using local psql on
the backend nodes. Trying to update the new entry resulted in an warning
that a different number of rows were changed on the backend nodes.
(We're using failover_if_affected_tuples_mismatch = false.)
pgpool log only showed a statement line for one node, but not for other.

>> /*NO LOAD BALANCE*/select tal_clonerow('sometable',15579);
> Have you tried /*REPLICATION*/ comment?


Maybe the fact that changed blacklist configs will only take effect for
*new* database connections should be added to the documentation?

Anyway, thanks for your support! :-)


More information about the pgpool-general mailing list