Re: row filtering for logical replication - Mailing list pgsql-hackers
From | Erik Rijkers |
---|---|
Subject | Re: row filtering for logical replication |
Date | |
Msg-id | 37d16603194380f43b0630ee1357d46f@xs4all.nl Whole thread Raw |
In response to | Re: row filtering for logical replication (Euler Taveira <euler@timbira.com.br>) |
Responses |
Re: row filtering for logical replication
|
List | pgsql-hackers |
On 2018-11-01 01:29, Euler Taveira wrote: > Em qua, 28 de fev de 2018 às 20:03, Euler Taveira > <euler@timbira.com.br> escreveu: >> The attached patches add support for filtering rows in the publisher. >> I ran pgbench-over-logical-replication with a WHERE-clause and could not get this to do a correct replication. Below is the output of the attached test program. $ ./logrep_rowfilter.sh -- /home/aardvark/pg_stuff/pg_installations/pgsql.logrep_rowfilter/bin.fast/initdb --pgdata=/tmp/cascade/instance1/data --encoding=UTF8 --pwfile=/tmp/bugs -- /home/aardvark/pg_stuff/pg_installations/pgsql.logrep_rowfilter/bin.fast/initdb --pgdata=/tmp/cascade/instance2/data --encoding=UTF8 --pwfile=/tmp/bugs -- /home/aardvark/pg_stuff/pg_installations/pgsql.logrep_rowfilter/bin.fast/initdb --pgdata=/tmp/cascade/instance3/data --encoding=UTF8 --pwfile=/tmp/bugs sleep 3s dropping old tables... creating tables... generating data... 100000 of 100000 tuples (100%) done (elapsed 0.09 s, remaining 0.00 s) vacuuming... creating primary keys... done. create publication pub_6515_to_6516; alter publication pub_6515_to_6516 add table pgbench_accounts where (aid between 40000 and 60000-1) ; --> where 1 alter publication pub_6515_to_6516 add table pgbench_branches; alter publication pub_6515_to_6516 add table pgbench_tellers; alter publication pub_6515_to_6516 add table pgbench_history; create publication pub_6516_to_6517; alter publication pub_6516_to_6517 add table pgbench_accounts ; -- where (aid between 40000 and 60000-1) ; --> where 2 alter publication pub_6516_to_6517 add table pgbench_branches; alter publication pub_6516_to_6517 add table pgbench_tellers; alter publication pub_6516_to_6517 add table pgbench_history; create subscription pub_6516_from_6515 connection 'port=6515 application_name=rowfilter' publication pub_6515_to_6516 with(enabled=false); alter subscription pub_6516_from_6515 enable; create subscription pub_6517_from_6516 connection 'port=6516 application_name=rowfilter' publication pub_6516_to_6517 with(enabled=false); alter subscription pub_6517_from_6516 enable; -- pgbench -p 6515 -c 16 -j 8 -T 5 -n postgres # scale 1 transaction type: <builtin: TPC-B (sort of)> scaling factor: 1 query mode: simple number of clients: 16 number of threads: 8 duration: 5 s number of transactions actually processed: 80 latency average = 1178.106 ms tps = 13.581120 (including connections establishing) tps = 13.597443 (excluding connections establishing) accounts branches tellers history --------- --------- --------- --------- 6515 6546b1f0f 2d328ed28 7406473b0 7c1351523 e8c07347b 6516 6546b1f0f 2d328ed28 d41d8cd98 d41d8cd98 e7235f541 6517 f7c0791c8 d9c63e471 d41d8cd98 d41d8cd98 30892eea1 NOK 6515 6546b1f0f 2d328ed28 7406473b0 7c1351523 e8c07347b 6516 6546b1f0f 2d328ed28 7406473b0 5a54cf7c5 191ae1af3 6517 6546b1f0f 2d328ed28 7406473b0 5a54cf7c5 191ae1af3 NOK 6515 6546b1f0f 2d328ed28 7406473b0 7c1351523 e8c07347b 6516 6546b1f0f 2d328ed28 7406473b0 5a54cf7c5 191ae1af3 6517 6546b1f0f 2d328ed28 7406473b0 5a54cf7c5 191ae1af3 NOK [...] I let that run for 10 minutes or so but that pgbench_history table md5-values (of ports 6516 and 6517) do not change anymore, which shows that it is and remains different from the original pgbench_history table in 6515. When there is a where-clause this goes *always* wrong. Without a where-clause all logical replication tests were OK. Perhaps the error is not in our patch but something in logical replication. Attached is the test program (will need some tweaking of PATHs, PG-variables (PGPASSFILE) etc). This is the same program I used in march when you first posted a version of this patch alhough the error is different. thanks, Erik Rijkers
Attachment
pgsql-hackers by date: