BUG #8404: JDBC block hot standby replication?

Поиск
Список
Период
Сортировка
От pchan@contigo.com
Тема BUG #8404: JDBC block hot standby replication?
Дата
Msg-id E1VETem-0003i8-Rs@wrigleys.postgresql.org
обсуждение исходный текст
Ответы Re: BUG #8404: JDBC block hot standby replication?  (Valentine Gogichashvili <valgog@gmail.com>)
Список pgsql-bugs
The following bug has been logged on the website:

Bug reference:      8404
Logged by:          Pius Chan
Email address:      pchan@contigo.com
PostgreSQL version: 9.1.9
Operating system:   Linux version 2.6.32-279.14.1.el6.x86_64
Description:

When investigating an "out of memory" issue in hot standby, it is found that
JDBC can block the application of replicated transaction log to hot standby.
The set up of the test is as follows:


Set up:
=======
Set up a master db cluster and hot standby db cluster using async streaming
replication. On master database server, create a database TEST. Implement a
cron job which on every minute:
- drop table if exists heartbeat;
- create table heartbeat (timenow timestamp);
- insert into heartbeat values (now());
- this is to ensure transaction entry is generated at least every minute.


Test 1 - psql does not block replication
========================================
- on hot standy db server, start a psql session (session 1), then submit the
following:
psql> begin;
psql> select now();
..... idle


- start another psql session on hot standby db server and run the following
SQLs to monitor the replication delay:


select current_timestamp, pg_last_xact_replay_timestamp(),
current_timestamp-pg_last_xact_replay_timestamp() as replication_delay,
pg_last_xlog_receive_location();


Result: it is found that session 1 does
not block replication.




Test 2 - JDBC can block replication
====================================
- write a Java test program to connect to hot standby TEST database
- in the test program, submit the following SQLs:

  begin;
  select now();
  then sleep for 2 minutes


- on hot standby db server, start another psql session and monitor the
replication delay with the same SQL.


Results: it is found that during the 2 minutes sleeping time,
pg_last_xlog_receive_location is advancing but pg_last_xact_replay_timestamp
is stuck. The result of "select * from heartbeat" does not change.


Is that a bug in JDBC driver?

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Valentine Gogichashvili
Дата:
Сообщение: BUG #7494: WAL replay speed depends heavily on the shared_buffers size
Следующее
От: Valentine Gogichashvili
Дата:
Сообщение: Re: BUG #8404: JDBC block hot standby replication?