pgpool is a connection server for PostgreSQL. pgpool runs between PostgreSQL's clients(front ends) and servers(back ends). A PostgreSQL client can connect to pgpool as if it were a standard PostgreSQL server. pgpool caches the connection to PostgreSQL server to reduce the overhead to establish the connection to it. Also, pgpool could use two PostgreSQL servers for fail over. If the first server goes down, pgpool will automatically switch to the secondary server. Moreover, pgpool supports scheduled switch over.