Brin Index主Greenplum 7中的理论与实现0 码力 | 32 页 | 1.04 MB | 1 年前3
Greenplum Database 管理员指南 6.2.1模式的 Master .......................................................................... - 294 - 中断客户端进程 .................................................................................................. Mirror 取代原有的 Primary。在采取相应 的措施将失败的 Primary 恢复到健康状态之前,该 Primary 一直保持失败状态。失 败的 Primary 可以在系统处于运行状态下被恢复回来。恢复进程仅仅复制失败期间发 生变化的增量差异,当然,如果失败时间太久或者因失败的 Instance 文件有损毁, 将需要全量恢复或者需要选择全量恢复。在 6 之前的版本,GP 的 Primary 和 Mirror 不可用时,Standby 可以被激活以 接替 Master 的角色。Standby 与 Master 之间保持 WAL 同步,保证与 Master 之 间的实时一致性。 在 Master 失效时,WAL 同步的复制进程会自动停止,同时,Standby 可以被激 活。在 Standby 上,冗余的 WAL 日志会被用来将状态恢复到最后成功提交(commit) 时的状态。激活的 Standby 实际上会成为 GP 的新0 码力 | 416 页 | 6.08 MB | 1 年前3
Greenplum 编译安装和调试开源社区最新源代码 6X_STABLE 分支: https://github.com/greenplum-db/gpdb,内核代码基于 PostgreSQL 9.4。目前(2019/04/23) 主 干分支的代码基于 PostgreSQL 9.4。合并到 PostgreSQL 9.5 的工作也已经开始,有关最新工作 进展请参见:https://github.com/greenplum-db/g Greenplum MPP 数据库 4.1 调试 Master 节点Backend进程 调试 Master 的Backend进程(也称为 QD)和调试单节点的PostgreSQL 非常类似。 通常遇到解析、优化、调度相关问题时,需要调试QD。 下面以一个例子介绍如何调试 Greenplum QD 进程。 启动两个窗口,一个运行psql,一个运行 lldb psql窗口 lldb/gdb窗口 执行。 4.2 调试 Segment 节点Backend进程 (QE) 调试 segment 进程(通常是 QE)和调试master上的进程一样,唯一的区别是如何获得进程的id ? 此时不能通过 pg_backend_pid() 获得,因为该pid是 QD 的进程号。 常用的方法是通过执行2次 SQL,获得 QE 的进程号。 Greenplum 为了提高效率,降低创建 Gang/QEs0 码力 | 15 页 | 2.07 MB | 1 年前3
Greenplum开源MPP数据库介绍存储数据,share-nothing q 产生计算进程 Ø Libpq:控制信道 Ø Interconnect: 数据交换信道 Confidential │ ©2022 VMware, Inc. 8 Greenplum的高可用 Ø 数据存两份,Coordinator有standby Ø 自动同步数据 (WAL replication) Ø 自动灾难恢复 (FTS,主备切换) Confidential Broadcast广播 (n:n), Redistribute重分布 (n:n) Ø Slice q Motion把计划切片 q 每一片叫Slice,每一个Slice的实体是一组存在于各个节点上的进程 Ø Locus Ø 数据的分布模式 Confidential │ ©2022 VMware, Inc. 12 分布式计划举例 Confidential │ ©2022 VMware, Inc 客户端连接coordinator, coordinator fork出QD 2) QD 拿到纯文本的查询,解析、优化、生成一个树形结构的分布式计划 3) QD 生成slice结构,生成每个slice的一系列进程结构(Gang) 4) QD 连接segment节点,segment节点fork出QE,QE执行分布式计划 5) QD 从QE归集结果,返回给客户端 Confidential │ ©2022 VMware0 码力 | 23 页 | 4.55 MB | 1 年前3
Greenplum介绍mirror端的数据不同步了,所以恢复的时候需要花比较 长的时间。对于Greenplum 3.X的版本,恢复时,需要 把好的节点上的所有数据都copy到坏的机器上。而 Greenplum4.0版本增加了功能,当备份节点坏的时 候,主节点可以把增量数据记下来,这样当备份节点的 主机恢复时,只需要恢复增量数据就可以了。 要让原先已offline的节点再加入集群中,需要重启集 群。 Greenplum中的高可用方案 对于Greenplum = '04-30-2008'; GP的查询处理 GP的查询处理 在master上,查询的工作进程叫query dispatcher(QD) 在segment上,查询的工作进程叫query executor (QE) 执行计划的每个切片(slice)至少分配一个工作进程。 GP的查询处理 GP的执行计划 建测试表: create table t1(id int0 码力 | 38 页 | 655.38 KB | 1 年前3
Greenplum 精粹文集AND 0xffff) modulo)】,这 样能保证流量均匀的打在多块网卡上,另外注意采用 mode4 绑定的 时候,一定要把交换机设置在 802.3ad 模式下。 2. 主节点服务器 Greenplum 集群是有 master 架构,关于有、无 master 架构业界一直 有所争论。 从功能上而言 master 节点是对外服务的入口,用户所有的请求都必须 先经过 master,所以 实例负责维护,就如 segment 实例状 态管理的两张表 gp_segment_configuration 和 gp_configuration_ history 的数据是由 master 的专用进程 fts 负责维护的。 3) Persistent table 如:gp_persistent_database_node、gp_persistent_filespace_ node、gp_pe EOF 1416416), persistent serial num 5725616 at TID (3353,1) 该问题会出现在 AO 表中,表示个别实例上的数据文件被损坏。 问题可能会导致进程 PANIC,实例启动失败。首先可在问题的实 例(postgresql.conf)中设置参数 gp_crash_recovery_suppress_ ao_eof=true。让出问题的实例先启动起来。再进行 0 码力 | 64 页 | 2.73 MB | 1 年前3
Greenplum 架构概览等外部存储 GP 基本查询流程 PostgreSQL 进程模型 PostgreSQL(以下简称 PG)采⽤的是经典的 C/S 模型,即 Client-Server 模型,同时使⽤多进程的⽅式⽀持并发查询与写⼊。也就是说, 每当有⼀个客户端连接⾄ PG 时,就会有⼀个⼦进程被创建出来。postmaster 进程和 postgres 进程之间采⽤共享内存进⾏通信 client 和 PG 之间的通信过程 之间的通信过程 client 调⽤ libpq 库向 PG 的 Postmaster 进程发起连接请求 PG fork 出⼀个 postgres 进程与该客户端建⽴连接,postmaster 进程不再处理与该客户端的相关请求 postgres 进程接收客户端的请求,处理并返回结果。当然,响应需要经过 libpq 库的处理 基本查询流程 Query Dispatcher 当 client postmaster 进程将会 fork 出⼀个⼦进程,叫做 Query Dispatcher(分发 器),简称为 QD 进程 QD 进程会对收到的查询请求进⾏处理,包括解析原始查询语句、优化器优化以及⽣成分布式查询计划,然后将查询计划通过 libpq 库发送 给其它的 Segment 节点 Query Executor Segment 节点上同样是 PG 进程,所以仍然由 postmaster0 码力 | 1 页 | 734.79 KB | 1 年前3
Greenplum 分布式数据库内核揭秘PostgreSQL 是进程模型,而不是类似于 MySQL 的线程模型。 主进程 postmaster 是整个数据库实例的总控进程,负责启动和关闭数据库实例。当客户端和 Coordinator 建立连接时,postmaster 会 fork 出一个子进程来为该连接提供服务。 Coordinator 节点上负责处理用户查询请求的进程称为 QD (Query Dispatcher) 进程。当 QD 进 程收到客户的 时,就会对其进行解析、重写和优化,并将分布式查询计划发送给 Segment 节点进行执行,并将最终结果返回给客户端。 Segment 节点上负责执行 QD 分发来的查询任务的进程称为 QE (Query Executor) 进程,递归 遍历 QD 发来的计划树,对每一个节点按照拉模型 (火山模型) 进行执行。 QD && QE Confidential │ ©2021 VMware, Inc. 26 Motion 则一 刀将 Motion 切成发送方和接收方。同时,每个 Slice 都由一个 QE 进程进行处理。通常来说, Slice 的数据量为 Motion 的数据量再加 1。 Gang:在不同 Segment 上执行同一个 Slice 的所有 QEs 进程称为 Gang,Gang 用来表示一组 进程 Slice && Gang Confidential │ ©2021 VMware, Inc0 码力 | 31 页 | 3.95 MB | 1 年前3
Pivotal Greenplum 最佳实践分享Instance实例数的配置建议 • Instance是GPDB的最小并行单元,每个Segment 节点一般配置4~8个Instance,初始化完成后很 难修改,需要提前规划; • 每个Instance都是一套独立的进程,当客户端 发起一个请求时,每个Instance都将FORK子进 程并行工作; • 对于并发请求高、面向于复杂的灵活查询的系 统,建议每个Segment配置4个或以下Instance, 这样来保 gp_locks_on_relation查看在哪个资源上被锁了 – 有些时候是lock在Segment上,使用gpssh -f allhosts -e ―ps –ef |grep con#sess_id#‖查看是否有进程处于 waiting状态 解决方法: – 如果是被其它回话锁了,需要等待其它回话结束或者Cancel; – 极端的情况下,某些回话虽然终止了,但事务没有正常终止,此时可 gp_session_role=utility' psql-h segment_host –d dbnme –p port 确定是哪个实例的问题后,检查该节点是否有硬件故障 – 检查网络是否故障 – 检查实例的进程是否存在,ps –ef |grep postgres|grep port – 检查文件系统是否有异常(到相应实例对应的数据目录下,执行ls;echo“test‖ > mytest.txt看看是否有错误)0 码力 | 41 页 | 1.42 MB | 1 年前3
Greenplum数据库架构分析及5.x新功能分享GP Workload Manager 7 Pivotal Confidential–Inter nal Use Only MPP(大规模并行处理)无共享体系架构 从主节点 … 主节点 SQL • 主节点和从主节点,主节点负责协调整个集群 • 一个数据节点可以配置多个节点实例(Segment Instances) • 节点实例并行处理查询(SQL) • 数据节点有自己的CPU、磁盘和 大规模并行数据加载 • 高速数据导入和导出 – 主节点不是瓶颈 – 10+ TB/小时/Rack – 线性扩展 • 低延迟 – 加载后立刻可用 – 不需要中间存储 – 不需要额外数据处理 • 导入/导出 到&从: – 文件系统 – 任意 ETL 产品 – Hadoop 发行版 外部数据源 Interconnect ... ... ... ... 主节点 查询优化和调度 数据节点 存储数据 Confidential–Inter nal Use Only 解析器 主节点Segment 系统表 优化器 分布式事务 调度器 执行器 解析器执行词法分 析、语法分析并生 成 解析树 客户端 主节点接受客户连接, 处理请求,执行认证 解析器 主节点 17 Pivotal Confidential–Inter nal Use Only 优化器 本地存储 主节点Segment 系统表 分布式事务 Interconnect0 码力 | 44 页 | 8.35 MB | 1 年前3
共 18 条
- 1
- 2













