pgcluster 介绍
pgcluster是一款为postgresql数据库设计的多主机级同步复制系统。
两大特点:
代码
- Since a replication system is a synchronous replication, delay does not occur with the data duplicate between the Cluster DBs.
系统属于同步复制,cluster DBs间不会发生延时。
- Since a server is multi-master composition, two or more the Cluster DBs can receive access from a user simultaneously.
多主机架构,cluster DBs能够同时处理用户请求。
该架构主要由三种服务器组成:load balancer, Cluster DB, 和 replication server
两大功能:
--负载共享功能
代码
- The session load of a reference request is distributed. It is effective at the Web application with which a reference request pours in.
- A replication object can be specified per table. When the tables which receive an updating request and a reference request differ, the PGCluster can distribute the table which receives an updating request and can reproduce only the table which receives a reference request.
--高可用性功能
代码
- When failure occurs in Cluster DB, a load balancer and a replication server separate Failure DB from a system, and continue service using the remaining DB. Since separation of Failure DB and continuation of service are performed simultaneously, most service stop time is made to 0.
- The Cluster DB which repair finished can be dynamically restored to a system, without stopping service.
- Data is automatically copied to DB restored or added from other DB. The query which received during restoration is executed from the replication server after restoration.
从功能介绍看,pgcluster功能很是强大,是基于session请求的,不是介于CPU等资源类型的。复制对象可以是特定表,而且能够把updating和reference请求分开。load balancer 和 replication server能够将发生故障的cluster DB从系统中分开,同时实现了对服务实现了无缝隙的接管,服务不受影响。在无需停止服务的情况下能够动态将修复好的cluster DB加载到系统中。对实现恢复的或者新加入的DB,数据自动进行复制(copy)。
从官方介绍看pgcluster非常不错,至于其稳定性、维护性还有性能需要通过实践来检验。