Difference between revisions of "TODO"

From pgpool Wiki
Jump to: navigation, search
(Synchronize backend nodes information with watchdog when standby pgpool starts up)
Line 24: Line 24:
 
=== Avoid multiple pgpools from executing failover.sh simultaneously.  ===
 
=== Avoid multiple pgpools from executing failover.sh simultaneously.  ===
 
: In master-slave mode with watchdog, when a backend DB is down, all pgpools execute failover.sh. It might cause something wrong.
 
: In master-slave mode with watchdog, when a backend DB is down, all pgpools execute failover.sh. It might cause something wrong.
 +
 +
=== Allow to use client encoding ===
 +
:It would be nice if pgpool client could use encoding which different from PostgreSQL server encoding.
 +
: To implement this, the parser should be able to handle "unsafe" encodings such as Shift_JIS. psql replaces second byte of each multibyte character to fool the parser. We could hire similar strategy.

Revision as of 23:06, 13 December 2012


Pgpool-II TODO list

Ability to load balance based on Client IP

From bugid 26: I have recently moved a database from Mysql to postgresql 9.1.5 which is behind a pgpool-II-3.1.4 . Everything went fine until i observed that some "tickets" are not created correctly by the application (OTRS) that populate the database.
After some debugging i found/guess that the problem is the following:
when a cron job wants to create a ticket he has to insert info in abut 10 tables, and i guess that the 2-nd, 3-rd ... inserts depends on the first. The problem was that this operation is not performed transactionally so after the first insert, when the app tries to perform the other inserts, first tries to select "the first insert", but this first insert is still not propagated to all nodes, and the error occurs.
I`m aware of the fact that if this entire operation would be performed transactionally (only on master) the issue is solved, but unfortunately i cannot modify the app.
So i want to know if there is any way that i can tell to pgpool something like :
any request from this ip do not load balance.
PS. temporary i have set the weight factor to 0 to the 2-nd and 3-rd postgresql slaves and it behaves ok, because reads and writes only from master.

Restart watchdog process when it abnormaly exits

It would be nice for pgpool main to restart watchdog process when it dies abormaly.

Automatically reattach a node in streaming master/slave configuration

In streaming master/slave configuration there could be an option to automatically reattach a node if it's up-to-date with the master (0 bytes behind). It often happens that due to minor network outage a slave node is dropped off from pgpool and stays down even if the the node has resumed replication with master and is up-to-date.pgpool already knows how much slave is behind master so i guess this wouldn't be too difficult to implement? (from bugtrack #17)

Synchronize backend nodes information with watchdog when standby pgpool starts up

For example, when a certain node is detached from active pgpool and then standby pgpool starts up, the standby pgpool can't recognized that the node is detached. Standby pgpool should get information about node information from other pgpool.

Avoid multiple pgpools from executing failover.sh simultaneously.

In master-slave mode with watchdog, when a backend DB is down, all pgpools execute failover.sh. It might cause something wrong.

Allow to use client encoding

It would be nice if pgpool client could use encoding which different from PostgreSQL server encoding.
To implement this, the parser should be able to handle "unsafe" encodings such as Shift_JIS. psql replaces second byte of each multibyte character to fool the parser. We could hire similar strategy.