1、PgBouncer
PG数据库的一个轻量级连接池工具,功能及特点如下:
1)缓存后端PG数据库的连接,当前端应用请求时,分配连接池中的连接给应用,从而充分利用了系统资源。
2)允许应用创建比连接池更多的连接,并未应用连接提供排队等候功能,这样既充分利用了资源,也保证了应用端的高并发。
3)可以对应用连接进行限制,这样,可以起到系统稳定和安全作用。
4)PgBouncer的通信效率非常高。
5)PgBouncer通过C语言实现,短小精悍,消耗很少的系统资源。
6)PgBouncer支持三种连接池模式:会话级别,事务级别,语句级别。
2、Slony-I
PG数据库的一款逻辑复制工具,功能及特点如下:
1)Slony-I支持级联复制,一个节点为订阅者的同时,也可以作为下一级的数据提供者,数据的原始生产者对数据的修改,会在各级订阅者之间传播。
2)Slony-I集群中的各节点上都需要有slon守护进程,以处理复制中的事件,例如:配置事件,同步事件。
3)Slony-I可以通过slonik工具进行管理和配置,其具备处理脚本的能力。
4)Slony-I具备强大逻辑复制功能的同时,也有些限制,例如:大对象的复制,DDL复制,用户权限复制等。
3、Bucardo
PG数据库的一款具备双向同步功能的工具,功能及特点如下:
1)可以为PG实现双master架构,5.0版本之前只能实现双master同步,5.0版本之后可以实现多master同步。
2)该工具为异步同步,这点和mysql的M-S同步很相似。
3)通过触发器记录变化,利用PG消息事件通知机制实现同步。
4)同步灵活,可以只同步数据库中的部分数据子集。
5)daemon为perl语言实现,还通过PL/PgSQL、PL/PerlU函数实现同步。
4、PL/Proxy
PG数据库中实现水平拆分的软件,功能及特点如下:
1)应用把请求发送到该水平拆分中间件,该中间件根据拆分键的hash值,将SQL发送至底层数据节点。
2)PL/Proxy架构中,一些PG数据库作为水平拆分中间件,但其不存储实际数据。除了这些中间件角色的PG库,底层还有一些PG库实际存储数据。
3)PL/Proxy并不是独立运行的程序,而是安装在PG库中的一种PL语言,其可以将请求路由到底层数据库中。
4)对应用方请求的路由,通过对中间件和底层库中同名函数的调用实现。
5、pgpool-II
位于PG服务器和客户端之间的中间件,功能及特点如下:
1)具备连接池功能。
2)可以在多个PG服务器间进行复制。
3)可以在多个PG服务器间进行了负载均衡。
4)限制超过限度的连接。
5)在多台PG服务器间进行并行查询。
6)为多进程架构,包括:PCP进程,pgpool-II父进程,pgpool-II子进程,worker进程。
6、Postgres-XC
基于PG库实现的真正的数据水平拆分的分布式数据库,功能及特点如下:
1)相较其他水平拆分方案,Postgres-XC实现的更彻底,对用户来说,Postgres-XC集群就像单机数据库一样。
2)基于PG实现的集群,是通过修改PG源码实现的集群,而不是架构在PG数据库之上的中间件。
3)PG客户端及驱动可以无差别地连接到Postgres-XC上。
4)实现了全局事务,做到了数据强一致性。
5)对称集群,无中心节点,应用可以读写任意节点。
6)线性扩展读写,通过增加节点,不仅可以扩展读性能,还可以扩展写性能。
7)随着节点的增加,Postgres-XC性能增加接近线性。
postgresql相关开源软件及架构简介
原创lhdz__bj 博主文章分类:Postgresql ©著作权
文章标签 pgpool-II Postgres-XC PLProxy Bucardo Slony-I 文章分类 Python 后端开发
-
Kubernetes架构组件命令简介
一文了解Kubernetes架检、组件及常用命令
Pod Kubernetes架构 组件命令简介 SVC Kuberctl -
ironic架构及相关技术简介
简介如今Openstack在虚拟化管理部分已经很成熟了, 通过nova我们可以创建虚
python 数据库 swift -
Servlet相关简介及使用教程
Servlet相关介绍及使用教程
intellij-idea java intellij idea tomcat html -
深度学习_简介及相关概念
从一个简单例子入手,简述神经网络的工作过程及相关概念
深度学习 神经网络 线性变换 -
开源软件许可协议简介
开源软件许可协议简介 来源: 外刊IT评论发布时间: 2011-04-06
开源软件 商业 开源协议 apache 开发者 -
GBDT为什么使用梯度提升
前言 在上一章中我们了解了线性回归求最小值的方法(损失函数最小化),直接对其求导,即正规方程方法。 但是在机器学习中,像线性回归这样可以直接用数学公式推导出最小值的算法是很少的,绝大多数的损失函数是很复杂的,所以我们来介绍一种更为通用,也是机器学习中很重要的一种优化方法,即梯度下降法。 梯度下降法是机器学习中的一种优化算法,并非机器学习算法。 梯度简单的可以理解为多元函数的
GBDT为什么使用梯度提升 3. 机器学习中为什么需要梯度下降 机器学习中为什么需要梯度下降 梯度下降法 损失函数