-
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 引擎来采集数据,支持 全量 + 增量 的模式,保证所有数据的一致性。