Main Page

From pgpool Wiki
Revision as of 07:49, 20 July 2012 by Admin (talk | contribs) (pgpool-II 3.2 beta2 released (2012/07/13))
Jump to: navigation, search

Welcome to Pgpool Wiki!

What is pgpool-II?

pgpool-II is a middleware that works between PostgreSQL servers and a PostgreSQL database client. It is licensed under BSD license. It provides the following features.

  • Connection Pooling
pgpool-II saves connections to the PostgreSQL servers, and reuse them whenever a new connection with the same properties (i.e. username, database, protocol version) comes in. It reduces connection overhead, and improves system's overall throughput.
  • Replication
pgpool-II can manage multiple PostgreSQL servers. Using the replication function enables creating a realtime backup on 2 or more physical disks, so that the service can continue without stopping servers in case of a disk failure.
  • Load Balance
If a database is replicated, executing a SELECT query on any server will return the same result. pgpool-II takes an advantage of the replication feature to reduce the load on each PostgreSQL server by distributing SELECT queries among multiple servers, improving system's overall throughput. At best, performance improves proportionally to the number of PostgreSQL servers. Load balance works best in a situation where there are a lot of users executing many queries at the same time.
  • Limiting Exceeding Connections
There is a limit on the maximum number of concurrent connections with PostgreSQL, and connections are rejected after this many connections. Setting the maximum number of connections, however, increases resource consumption and affect system performance. pgpool-II also has a limit on the maximum number of connections, but extra connections will be queued instead of returning an error immediately.
  • Parallel Query
Using the parallel query function, data can be divided among the multiple servers, so that a query can be executed on all the servers concurrently to reduce the overall execution time. Parallel query works the best when searching large-scale data.

pgpool-II talks PostgreSQL's backend and frontend protocol, and relays a connection between them. Therefore, a database application (frontend) thinks that pgpool-II is the actual PostgreSQL server, and the server (backend) sees pgpool-II as one of its clients. Because pgpool-II is transparent to both the server and the client, an existing database application can be used with pgpool-II almost without a change to its sources.


pgpool-II 3.2

Pgpool-II 3.2 will be released in this July. Here are the new features.

On Memory Query Cache

  • New fast query cache !
On memory query cache is faster because cache storage is on memory. Moreover you don't need to restart pgpool-II when the cache is outdated because the underlying table gets updated.
On memory cache saves pair of SELECT statements (with its Bind parameters if the SELECT is an extended query). If the same SELECTs comes in, it returns the value from cache. Since no SQL parsing nor access to PostgreSQL are involed, it's extremely fast.
  • Choosing cache storage
You can choose a cache storage: shared memory or memcached (you can't use the both).
Query cache with shared memory is fast and easy because you don't have to install and config memcached, but restricted the max size of cache by the one of shared memory. Query cache with memcached needs a overhead to access network, but you can set the size as you like.

Watchdog

"Watchdog" is a sub process of pgpool-II aiming for adding high availability feature to it. Features added by watchdog include:

  • Life checking of pgpool service
Watchdog monitors responses of pgpool service rather than process. It sends queries to PostgreSQL via pgpool which is being monitored by watchdog and watchdog checks the response.
Also watchdog monitors connections to up stream servers (application servers etc.) from the pgpool.
The connection between the up stream servers and the pgpool is monitored as service of pgpool.
  • Mutually monitoring of watchdog processes
Watchdog processes exchange information on the monitored servers to keep the information up to date, and to allow watchdog processes to mutually monitor each other.
  • Changing active/standby state in case of certain faults detected
When a fault is detected in the pgpool service, watchdog notifies the other watchdogs of it. Watchdogs decide the new active pgpool if previous active pgpool is broken by voting and change active/standby state.
  • Automatic virtual IP address assigning synchronous to server switching
When a standby pgpool server promotes to active, the new active server brings up virtual IP interface. Meanwhile, the previous active server brings down the virtual IP interface.
This enables the active pgpool to work using the same IP address even when servers is switched over.
  • Automatic registration of a server as standby in recovery
When broken server recovers or new server is attached, the watchdog process notifies the other watchdog process along with information of the new server, and the watchdog process receives information on the active server and other servers. Then, the attached server is registered as standby.

What's new

pgpool-II 3.2 beta2 released (2012/07/13)

Pgpool-II 3.2 RC1 is now relased. This is not a stable version but just for developers.

You can download it from here.

pgpool-II 3.2 beta2 released (2012/07/13)

Pgpool-II 3.2 beta2 is now relased. This is not a stable version but just for developers.

Users are encouraged to take part in our beta test program. Please help us in testing and making pgpool-II 3.2 better!

You can download it from here.

pgpool-II 3.2 beta1 released (2012/07/06)

Pgpool-II 3.2 beta1 is now relased. This is not a stable version but just for developers.

Users are encouraged to take part in our beta test program. Please help us in testing and making pgpool-II 3.2 better!

You can download it from here.

pgpool-II 3.2 alpha2 released (2012/06/29)

Pgpool-II 3.2 alpha2 is now relased. This is not a stable version but just for developers.

V3.2 is added a new feature: watchdog. This is a sub process of pgpool-II aiming for adding high availability feature. You can download it from here.

pgpoolAdmin 3.2 alpha1 released (2012/06/04)

PgpoolAdmin 3.2 alpha1 is now relased. This is not a stable version but just for developers. V3.2 is not only for pgpool-II V3.2 but also for older versions (V2.0 -).

You can download it from here.

pgpool-II 3.2 alpha1 released (2012/05/16)

Pgpool-II 3.2 alpha1 is now relased. This is not a stable version but just for developers.

V3.2 has a new feature: On memory query cache. You can download it from here.

pgpool-II 3.1.3 and 3.0.7 officially released(2012/04/23)

Pgpool-II 3.1.3 and 3.0.7 are now officially released. These are the latest stable versions of each major series.

Learn more about pgpool-II 3.1.3:

Learn more about pgpool-II 3.0.7:

pgpool-II 3.1.2 and 3.0.6 officially released(2012/01/31)

Pgpool-II 3.1.2 and 3.0.6 are now officially released. These are the latest stable versions of each major series.

Learn more about pgpool-II 3.1.2:

Learn more about pgpool-II 3.0.6:

pgpool-II 3.1.1 and pgpoolAdmin 3.1.1 officially released(2011/12/6)

Pgpool-II 3.1.1 is now officially released. This is the latest stable version of pgpool-II 3.1 series. And we also released pgpoolAdmin 3.1.

pgpool-II 3.1 officially released(2011/9/8)

Pgpool-II 3.1 is now officially released. This version supports syslog, more than one standby nodes in streaming replication mode, allow to specify user name with pg_md5 command. You can add new DB node or do online recovery without disturbing existing client sessions.

Also documents are enhanced. Simplified Chinese and French verion of documnets are added.

Learn more about pgpool-II 3.1: