广州PostgreSQL用户会技术交流会小记 2015-9-19

今天去了广州PostgreSQL用户会组织的技术交流会

分别有两个session

第一个讲师介绍了他公司使用PostgreSQL-X2的情况

第二个讲师介绍了PostgreSQL里面的一些执行计划分析

我个人比较关注第一个session,因为涉及到真正的应用案例

网上有对PostgreSQL-X2的简短介绍,我先转载过来

转载:http://francs3.blog.163.com/blog/static/4057672720125315352442/

浙江移动、华为、腾讯、阿里都在用pgsql去O

搞pgsql的几个大牛都去了BAT,基本上找不到人帮忙了


PostgreSQL-XC: Introduction  

这几天在学习 PostgreSQL-XC,虽然目前 Postgres-XC 的文档还不完整,但学习一下还是有帮助的,
至少PostgreSQL-XC 是一种可以实现 multi-master 方案,这里简单介绍下 PostgreSQL-XC。

一 What Is Postgres-XC

PostgreSQL-XC 是一种提供写可靠性,多主节点数据同步,数据传输的开源集群方案,它包括很多
组件,稍后会详细介绍这些组件,这些 PostgreSQL-XC 组件可以分别安装在多台物理机器或者虚拟机上。

写可靠性 (Write-scalable )是指可以部署多个数据库主节点,并且向这些主节点发出 update 语句,
这种特性单个 PostgreSQL 库是无法提供的; 多主节点 (Multi-master ):是指有多个数据库可以提供统一
完整的数据库视图;主节点数据同步(Synchronous):是指在一台数据库上更新操作会立刻呈现在另一台数据
库中;数据传输(Transparent)是指;数据位于不同的数据库节点中,当查询数据时,不必关心数据位于具
体的节点。

你可以将 PostgreSQL-XC 配置一台或者多台主机上, Postgresql-XC 数据以分布式存储,有两种方式,
 partitioned 或者 replicated ,当向 PostgreSQL-XC 发送查询 SQL时, PostgreSQL-XC 会自动向数据节
 点发出查询语句并获取数据。

二 Postgres-XC 的目标
  
       PostgreSQL-XC 最大的特性就是提供多主(multi-master) 数据同步以及读写( read/write ) 的可靠性。
具体地说, PostgreSQL-XC 提供以下特性

1 PostgreSQL-XC 可以提供多个主节点同时处理来自应用端发出的 SQL 语句,这些节点称为 master
       节点,但在 PostgreSQL-XC 中称为 "coordinator"。
      
     2 PostgreSQL-XC 可以提供多个  masters 节点。
    
    3  任何一个 master 节点都有全局数据库视图,也就是说当任一台 master 接收 update 语句时,在另外的
        master 节点可以迅速地看到。
       
    4 表可以以 replicated 或者 distributed 方式分布式存储,并且这对应用来说是透明的;
    
    5 PostgreSQL-XC 可以提供统一全局的数据库视图。
    
    
三 Postgres-XC Key Components
    
      这里介绍下 PostgreSQL-XC 的组件,PostgreSQL-XC 包含三个主要组件,分别是 
GTM (Global Transaction Manager), Coordinator and Datanode。

--3.1 GTM (Global Transaction Manager)

GTM 是 PostgreSQL-XC 的核心组件,用于全局事务控制以及 tuple 的可见性控制。
     
     PostgreSQL 的事务控制是基于 MVCC 机制的, 在 PostgreSQL-XC 体系中将这种技术单独划分出来,
称之为 GTM。

--3.2 Coordinator

协调呆节点 (Coordinator) 是数据节点 (Datanode)  与应用之间的接口,由于表数据会以分片或者
复制的方式分布式存储,所以 Coordinator 节点并不物理上存储表数据,表数据位于数据节点上,数据节
点接下来会介绍,当应用发起SQL时,会先到达 Coordinator 节点,然后 Coordinator 节点将 sql 分发到
各个数据节点,汇总数据,这一系统过程是通过  GXID 和 Global Snapshot  来控制的。

--3.3 Datanode

Datanode 即数据节点,物理存储表的数据,表数据存储方式包括分片 ( distributed)  和 完全复制 
(replicated) 的方式,数据节点只存储本地的数据。

--3.4  PostgreSQL-XC 体系结构图

  

PostgreSQL-XC    体系结构图

备注:从上图看出,Coordinator 和 datanode 节点可以配置多个,并且可以分别位于不同主机

上,官方建议 Coordinator 节点和 datanode 节点数相同。另外,只有 Coordinator 节点直接对

应用服务,数据节点对应用透明。

四 Postgres-XC Inherits PostgreSQL

Postgres-XC is an extension to PostgreSQL and inherits most of its features.

It is an open-source descendant of PostgreSQL and its original Berkeley code. It supports a
large part of the SQL standard and offers many modern features:

complex queries
foreign keys [3] 
triggers [4] 
views
transactional integrity
multiversion concurrency control

Also, similar to PostgreSQL, Postgres-XC can be extended by the user in many ways, for example
 by adding new

data types
functions
operators
aggregate functions
index methods
procedural languages

And because of the liberal license same as PostgreSQL, Postgres-XC can be used, modified, and distributed
by anyone free of charge for any purpose, be it private, commercial, or academic.


第一个讲师主要介绍了:postgresql -X2的升级、分片、社区情况、备份、原理、增删节点、分配路由

还有他自己踩过的一些坑,还有postgresql -XL、postgresql -XC、postgresql -X2的区别,总之干货非常多

另外,主持人公司承建的中国联通商城系统和佛山市气象局系统都使用Pgsql作为后端数据库,感觉PG的应用还是听广泛的

上几张图

图1

图2

个人感觉上要比MySQL集群要强悍,特别是分片,DBA不需要干预太多,它自己自动管理,是比较吸引的

还有EDB数据库(Enterprise DB ),是PostgreSQL的商业增强版本,并且拥有很多企业级功能,比PostgreSQL要强一些

PostgreSQL有的功能,EDB数据库都有,只不过EDB数据库在中国用的人很少,而且不太出名

如有不对的地方,欢迎大家拍砖o(∩_∩)o 

广州PostgreSQL用户会技术交流会小记 2015-9-19的更多相关文章

  1. 以深圳.NET俱乐部名义 的技术交流会圆满成功

    2017年5月13日的深圳下着暴雨,一场以深圳.NET俱乐部名义的.NET技术交流会在微软Build 2017刚闭幕时在罗湖布吉路与翠山路交界处富基PARK国际6F举办,这次交流以微软Build 20 ...

  2. 福州首届.NET开源社区技术交流会圆满成功

    活动总结 2018年11月10日周六的下午,在福州蒲公英创新工场举办了福州首届.NET开源社区技术交流会,来自福建省各大科技公司的技术小伙伴齐聚一堂,为了就是能在现场学习到微软跨平台技术.NET Co ...

  3. 【福州活动】| "福州首届.NET开源社区线下技术交流会"(2018.11.10)

    活动介绍 微软爱开源,已是尽人皆知的事实.自从收购全球最大的开源社区 GitHub 之后,微软依旧使 GitHub 保持独立运营,并且通过此项举措,微软本身已经成为最大的社区服务者. .NET Cor ...

  4. 【深圳】大湾区第三次.NET技术交流会(网络直播)

    活动简介 云.devops.微服务.容器是现在这个发展阶段的软件形态, 本次活动我们围绕这些话题介绍.NET生态下的发展.SQL Server 2017可根据需要运行本地部署的SQL Server,当 ...

  5. PostgreSQL 用户和权限管理

    PostgreSQL 用户和权限管理 创建 CREATE ROLE rolename;CREATE USER username;CREATE USER和CREATE ROLE的区别在于,CREATE ...

  6. dropuser - 删除一个 PostgreSQL 用户帐户

    SYNOPSIS dropuser [ option...] [ username] DESCRIPTION 描述 dropuser 删除一个现有 PostgreSQL 用户 和 该用户所有的数据库. ...

  7. createuser - 定义一个新的 PostgreSQL 用户帐户

    SYNOPSIS createuser [ option...] [ username] DESCRIPTION 描述 createuser 创建一个新的 PostgreSQL 用户.只有超级用户(在 ...

  8. 关于举办【福州】《K8S社区线下技术交流会》的问卷调查

      近年来,容器.Kubernetes.DevOps.微服务.Serverless等一系列云原生技术受到越来越多的关注,云原生为企业数字化转型提供了创新源动力,基于云原生技术构建企业技术中台在各行业也 ...

  9. PostgreSQL用户和权限问题

    PostgreSQL用户 其实用户和角色都是角色,只是用户是具有登录权限的角色. 创建用户 create user sonar password '123'; 删除用户 drop user sonar ...

随机推荐

  1. x

    笔记 { 计算机 { 底层 { 程序运行 } 信息学 { 网络 { 网络信息安全 } 算法 { 算法 拟合 编译解释词法分析 } 编程语言 { C语言 嵌入式C++ } 黑客 } } 安卓 { 软件 ...

  2. Go语言 获取get、post参数

    在贴代码之前如果能先理解一下golang http.request的三个属性Form.PostForm.MultipartForm应该能较好的理解代码,下面摘录一下. 以上简要翻译一下: Form:存 ...

  3. js中的 || 与 && 运算符 的使用

    &&和||总是傻傻分不清,在这里详细记录一下吧.也给你们分享一下. 表达式a && 表达式b :  计算表达式(或者函数)a的运算结果, 如果为 True, 执行表达式 ...

  4. Unity.Interception(AOP)

            在前面我们学习到的是Unity依赖注入(DI)与统一容器来松散耦合,这个设计已经对我们系统带来了很多的好处.但是我们还会想尝试和遵循单一职责,开放封闭原则.比如我们不应该在我们的Bus ...

  5. 华为荣耀6 H60-L02/L12(联通版)救砖包【适用于无限重启】

    本帖最后由 HOT米粒 于 2014-11-16 20:43 编辑 华为荣耀6 H60-L02/L12(联通版)救砖包[适用于无限重启]说明: 1.本工具包用于华为荣耀6 H60-L02(联通版): ...

  6. 25个 Git 进阶技巧

    [ 原文] http://www.open-open.com/lib/view/open1431331496857.html 我已经使用git差不多18个月了,觉得自己对它应该已经非常了解.然后来自G ...

  7. java中的单例模式(懒汉式+饿汉式)

    什么是单例模式: 单例模式既只能在自己本类中创建有且唯一的一个实例(姑且不考虑映射的情况)通过方法将该实例对外公开 第一种:单例模式-懒汉式 既调用getInstance()方法返回实例之前判断有没有 ...

  8. 2016-2-1 Servlet细节

    Servlet的一些细节(韩顺平老师视频讲解)(1)由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序想要被外界访问,必须把servlet程序映射到一个URL地址上.这个工作在 ...

  9. ZooKeeper个人笔记客户端watcher和AsycCallback回调

    每一个Watcher具有如下属性: 1.KeeperState 2.EventType 3.path 4.process(WatchedEvent evnet)回掉方法 Watcher干嘛的?用户监听 ...

  10. [译]App Framework 2.1 (1)之 Quickstart

    最近有移动App项目,选择了 Hybrid 的框架Cordova  和  App Framework 框架开发. 本来应该从配置循序渐进开始写的,但由于上班时间太忙,这段时间抽不出空来,只能根据心情和 ...