[pgpool-general: 2514] Re: black_function_list in replication mode
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