[pgpool-general: 2112] Re: pgpool-II 3.3.0 and parallel mode

Yugo Nagata nagata at sraoss.co.jp
Tue Sep 10 17:29:21 JST 2013


Thanks for your reporting. Sorry for my late reply.

I tried to reproduce the error but I couldn't in the below configuration;
 - pgpool-II 3.3.0
 - 3 nodes
 - both of replication mode and parallel mode are on
 - insert partition_test's info to dist_def
 - insert other_table's info to replication_def
 - dist_def_func is like 'SELECT mod($1, 3)' ($1 is assigned to partition_test.id)

Could you please provide your configuration information?
 - pgpool.conf
 - contents of dist_def and replication_def tables
 - dist_def_func definition
On Wed, 31 Jul 2013 17:34:11 +0200
Emmanuel Medernach <medernac at clermont.in2p3.fr> wrote:

> Hello,
> 
> ありがとうございます for such a good tool.
> 
> I am using  the latest pgpool2 version 3.3.0  and I have some
> problem setting pgpool2 in parallel mode.
> 
> I am testing pgpool2 installation with 2 tables :
>     - partition_test is a partitionned table
>     - other_table is a replicated table
> 
> with the following test schemas :
> 
> CREATE TABLE partition_test (
>     id integer,
>     name character(4),
>     num integer
> );
> 
> CREATE TABLE other_table (
>     id int,
>     a int,
>     b text,
>     c int
> );
> 
> I could successfully query both tables :
> 
> postgres=# select * from partition_test ;
>    id | name | num
> ----+------+-----
>     2 | bbbb |  20
>     6 | ffff |  60
>    10 | jjjj | 100
>     3 | cccc |  30
>     7 | gggg |  70
>     4 | dddd |  40
>     8 | hhhh |  80
>     1 | aaaa |  10
>     5 | eeee |  50
>     9 | iiii |  90
> (10 rows)
> 
> postgres=# select * from other_table ;
>    id | a |  b   |  c
> ----+---+------+-----
>     1 | 2 | test | 100
>     2 | 5 | test | 200
>     3 | 8 | test | 400
> (3 rows)
> 
> partition_test is correctly partitionned among all backends.
> other_table is correctly replicated on all backends.
> 
> However when I try a query involving both tables I get an error :
> 
> postgres=# select p.name from other_table o, partition_test p where p.id = o.id;
> ERROR:  kind mismatch among backends. Possible last query was: "select p.name 
> from other_table o, partition_test p where p.id = o.id;" kind details are: 0[C] 
> 1[D] 2[D] 3[D]
> HINT:  check data consistency among db nodes
> ERROR:  kind mismatch among backends. Possible last query was: "select p.name 
> from other_table o, partition_test p where p.id = o.id;" kind details are: 0[C] 
> 1[D] 2[D] 3[D]
> HINT:  check data consistency among db nodes
> The connection to the server was lost. Attempting reset: Succeeded.
> 
> log file extract :
> 
> 2013-07-31 17:28:24 ERROR: pid 30984: read_kind_from_backend: 0 th kind C does 
> not match with master or majority connection kind D
> 2013-07-31 17:28:24 ERROR: pid 30984: kind mismatch among backends. Possible 
> last query was: "select p.name from other_table o, partition_test p where p.id = 
> o.id;" kind details are: 0[C] 1[D] 2[D] 3[D]
> 2013-07-31 17:28:24 LOG:   pid 30984: do_child: exits with status 1 due to error
> 
> 
> Of course this query works correctly on each backend:
> 
> postgres=# select p.name from other_table o, partition_test p where p.id = o.id;
>    name
> ------
>    cccc
> (1 row)
> 
> 
> Could you please help me how to solve this ?
> 
> Best regards,
> --
> 
> _______________________________________________
> pgpool-general mailing list
> pgpool-general at pgpool.net
> http://www.pgpool.net/mailman/listinfo/pgpool-general


-- 
Yugo Nagata <nagata at sraoss.co.jp>


More information about the pgpool-general mailing list