`

Skype 用 PostgreSQL 支撑海量用户

阅读更多

自从 MySQL 被 Sun 收购后,相信很多对该收购不放心的朋友会转而看好 PostgreSQL 的前途。虽然比较大的 Web 2.0 站点数据库方案基本都采用 MySQL ,不过也有用 PostgreSQL 并且跑的不错的。今天看到 Skype Plans for PostgreSQL to Scale to 1 Billion Users 这个帖子,对 PostgreSQL 在大型网站应用上的部署算是有了一点了解。

Skype 在数据库上的横向扩展能力以 PL/Proxy 为基础的。其实几乎所有部署 MySQL 的站点也都在考虑 Scale Out (相比 Scale Up) 的扩展方案,也有 MySQL Proxy 这样的产品推出来,只是看起来还不够成熟。PL/Proxy 的设计思想类似 Teradata 的 Hash 机制,数据存储对客户端是透明的,客户请求发送到 PL/Proxy 后,由这里分布式存储过程调用,统一分发,示意图如下:
?

?

PL_Proxy.png

PL/Proxy 的设计初衷就是在这一层充当"数据总线"的职责,所以,当数据吞吐量支撑不住的时候,只需要增加更多的 PL/Proxy 服务器即可。(虽然随着服务器越多,通信的开销越大,但只要不大于某个规模,似乎还不足以成为比较大的问题)

随着数据总线层的水平扩展,连接池的问题就凸显出来。Skype 在连接池上的解决方案是采用 PgBouncer,PgBouncer 极大地增强了 PostgreSQL 的连接数扩展能力。顺便说一下,"池"有三种级别:Session 池、事务池、语句池。

Skype 另外开发了一套工具包: SkyTools 来进行数据库的维护,主要是解决数据的复制与队列以及失败接管问题。

整体看下来,围绕着 PostgreSQL 的解决方案其实蛮成熟的。BTW,看起来挺适合阿里旺旺的 :)


[点击查看详细]

分享到:
评论

相关推荐

    POSTGRESQL-10用户手册

    POSTGRESQL-10用户手册 2018最新版用户手册,官方原版

    postgresql8.2.3用户手册API

    《postgresql8.2.3用户手册API》是PostgreSQL数据库系统在8.2.3版本中的应用程序编程接口(API)的详细指南。这份手册对于开发者来说是宝贵的资源,它涵盖了如何利用API与PostgreSQL数据库进行交互的各种技术。下面...

    postgresql-42.5.0.jar

    它可以让Java程序员方便地使用PostgreSQL数据库,并提供了许多功能和工具,使程序员可以编写高效、稳定和高性能的应用程序。postgresql-42.5.0.jar在许多Java框架如Hibernate和Spring等中使用,并很受开发人员的欢迎...

    PostgreSQL 12.2安装与使用

    本文档提供了一个详细的 PostgreSQL 12.2 安装与使用指南,涵盖了创建用户与环境配置、系统内核参数配置、PostgreSQL 12.2 安装、依赖包检查、源代码安装步骤、创建数据库、配置与使用等方面的内容。通过本文档,您...

    postgresql 12、15离线安装包

    6. 文档:包含安装指南、用户手册和技术文档,帮助用户理解和使用PostgreSQL。 安装步骤大致如下: 1. 解压下载的离线包到一个合适的目录。 2. 设置环境变量,例如将bin目录添加到PATH中,以便于在命令行中调用...

    PostgreSQL中文手册9.2

    一、使用 一、使用 EXPLAINEXPLAINEXPLAINEXPLAIN EXPLAIN: 46 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (服务器配置 服务器配置 服务器配置 ) 50 一、服务器进程的启动和关闭: 一、服务器...

    阿里云 专有云Enterprise版 HybridDB for PostgreSQL V3.1.0 用户指南

    用户在使用 HybridDB for PostgreSQL 时,需要遵守阿里云的使用条款,包括但不限于不擅自披露或传播阿里云的保密信息、不得擅自修改或复制阿里云的软件或文档、不得使用阿里云的名称或商标进行任何营销或广告活动等...

    PostgreSQL_8.2.3.rar_postgresql_windows 8

    8. **函数与过程**:PostgreSQL允许用户定义自定义函数和存储过程,文档会展示如何编写和使用这些高级功能。 9. **性能调优**:对于大型系统,性能优化是关键。文档可能包含有关调整参数、监控系统状态和分析性能...

    Postgresql-10安装包

    8. **创建第一个数据库和用户**:使用 `createdb` 创建数据库,使用 `createuser` 创建数据库用户,并给予适当的权限。 9. **安装和配置额外的工具**:如 pgAdmin 或 psql,这些工具可以帮助你更方便地管理和操作...

    PostgreSQL 12.2 安装手册

    PostgreSQL 是一种功能强大且广泛使用的开源关系数据库管理系统。随着版本的更新,PostgreSQL 12.2 成为当前主流的数据库管理系统版本之一。本文档旨在指导用户如何在 CentOS 7.7 操作系统环境中安装 PostgreSQL ...

    PostgreSQL 数据库集群和PL/Proxy配置安装指南PL/Proxy和PostgreSQL集群的结构关系可以用下图清楚地表示,对PL/Proxy和PostgreSQL集群还不太了解的朋友可以看Skype Plans for PostgreSQL to Scale to 1 Billion Users这篇文章。

    ### PostgreSQL 数据库集群与 PL/Proxy 的配置安装详解 #### 一、PostgreSQL 数据库集群概念 PostgreSQL 是一种开源的关系型数据库系统,以其强大的功能、稳定性和扩展性而受到广泛认可。对于需要处理大量数据或高...

    银河麒麟V10 安装postgresql

    - **配置文件编辑**:使用`vim`编辑器对PostgreSQL的配置文件`postgresql.conf`和`pg_hba.conf`进行编辑,以更改数据库的默认设置和安全策略。 - **防火墙设置**:关闭操作系统防火墙是为了让数据库能够接受外部...

    PostgreSQL 11.2 中文手册

    用户可以通过阅读这份手册,来全面掌握PostgreSQL 11.2的使用方法和最佳实践。 手册内容涵盖了以下几个主要方面: 1. 安装与配置:这部分内容主要指导用户如何在不同操作系统上安装PostgreSQL数据库。同时,还包括...

    Navicat for PostgreSQL(PostgreSQL数据库管理)V11.0.10简体中文特别版

    它可以用于任何版本 7.5 或以上的 PostgreSQL 数据库服务器,并支持大部份 PostgreSQL最新版本的功能,包括触发器、函数、管理用户等。Navicat 的功能足以符合专业开发人员的所有需求,但是对 PostgreSQL 的新手来说...

    PostgreSQL 12.2 中文手册

    PostgreSQL是一个功能强大的开源对象关系数据库系统,它使用和扩展了SQL语言,同时也增加了许多其他特性。版本12.2是在12.x系列中的一个更新版本,增加了许多改进和修复,以及性能优化。这版手册作为学习和参考资料...

    postgresql

    1. **下载与解压**:首先,用户需要从官方网站或其他可靠来源下载对应版本的PostgreSQL安装包,然后将其解压到本地目录。 2. **环境配置**:在安装前,确保系统满足PostgreSQL的硬件和软件需求,例如操作系统兼容性...

    postgresql 离线安装教程

    此外,用户还可以通过添加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等方式来扩展PostgreSQL的功能。由于其灵活的许可证条款,任何人都可以免费地使用、修改和分发PostgreSQL。 #### 二、离线安装...

    Navicat For Postgresql 10 绿色

    首先,Navicat for PostgreSQL 10绿色版是无需安装的版本,用户只需解压缩文件,经过简单的步骤即可开始使用。这种便携式设计使得它可以在任何有需要的地方快速启动,不占用系统资源,也不会在电脑上留下冗余的...

    postgresql 14.0版(Windows&Linux).zip

    安装包中一般会包含数据库服务器、客户端工具、文档以及各种例程,确保用户能够快速开始使用PostgreSQL数据库。 从实用性的角度出发,PostgreSQL 14.0版的推出,使得数据库用户能够享受到更新的技术带来的红利。...

    postgresql-16.6-3 windows

    作为一个开源项目,PostgreSQL拥有活跃的开发者社区和广泛的用户社区,这意味着用户可以免费使用它,并从社区获得帮助。随着互联网上资源的丰富,无论是新手还是有经验的数据库管理者,都能够找到大量关于PostgreSQL...

Global site tag (gtag.js) - Google Analytics