• Code Interview

    面试中常见的算法题

  • GPDB 差异化修复原理简介

    Greenplum PR15146 增加了一种新的 mirror 节点修复方式 —— 差异化修复(Differential recovery),介于增量修复(Incremental recovery)和全量修复(Full recovery)之间,当数据量庞大且由于 WAL 缺失不能进行增量修复时,差异化修复提供了一种快速修复的能力。

  • pg_rewind 代码浅析

    pg_rewind 是 Postgres 9.5 引入的用于将旧主库上的状态回退到与新主库一个共同的历史点上,进而可以将旧主库作为 standby 与新主库构成主备以提供高可用。对于数据量较大且写入不是很频繁的数据库实例,pg_rewind 相较于 pg_basebackup 在恢复时间上有优势。

  • pg_basebackup 代码浅析

    pg_basebackup 是 PostgreSQL 中基于流复制的在线备份工具,它通过使用与流复制相同的协议,从一个正在运行的 PostgreSQL 服务器复制数据目录并创建一个新的基线备份,并将其传输到指定的目录或远程服务器。

  • PostgreSQL WAL 代码解析 —— File Layout

    WAL (Write Ahead Log) 是 PG 保证 ACID 中 Atomicity 和 Durability 特性的子模块,任何修改必须先写入 stable storage 的日志后才能将结果返回给客户端,在系统失效重启后,通过回放日志以保证不丢失数据(数据库常用的 STEAL + NO-FORCE 模式)。

  • Greenplum FTS 服务代码解析

    FTS (Fault Tolerance Service) 是 Greenplum 提供的用于检测 Segment 节点故障的服务,通过在 Coordinator 维护一个 ftsprobe BackgroundWorker,定期发送探活消息来检测 Segment 的健康状态,并根据不同响应做进一步决策,来保证 GPDB 集群的高可用。需要注意的是,FTS 并不能解决 Coordinator 的高可用问题。

  • Sigmod Programming Contest 2018

    阿里云数据库今年搞了个编程大赛,采用的是 Sigmod 2018 年编程大赛 的赛题。任务是在一组预先定义好的表上执行多批次的 SQL 查询,每个查询都会指定一组表、一组 JOIN 条件(Predicate)和 Selection(Aggregations),即每个查询都是典型的 SPJA 查询。

  • Greenplum 常用命令

    记录 Greenplum 常用的调优、运维、定位问题相关的命令。

  • Awesome PostgreSQL Learning Resources

    PostgreSQL 学习资料,包括但不限于文章、书籍、教程、视频。

  • 在 Mac 上编译安装并运行 Greenplum

    记录在 MacOS 上编译、安装、运行 Greenplum 的步骤。

  • 在 Mac 上编译安装并运行 PostgreSQL

    记录在 MacOS 上编译、安装、运行、调试 PostgreSQL 的步骤。

  • Flink CDC 2.0 实现原理剖析

    Flink CDC Connectors 是 Apache Flink 的一组源端(Source)连接器,通过捕获变更数据(Change Data Capture)从不同数据库中采集数据。项目早期通过集成 Debezium 引擎来采集数据,支持 全量 + 增量 的模式,保证所有数据的一致性。