简历
PDF教育背景
硕士 系统结构
学士 计算机科学与技术
工作经历
资深数据库内核研发2023年7月至今
技术专家2021年5月 - 2023年6月
高级工程师2018年4月 - 2021年5月
研发工程师2016年7月 - 2018年3月
项目经历
Spacture 时空库产品化及项目POC。
- 工作1: HA、备份工具及插件的选型
- 工作2: 探索如何通过 Operator 支持 RDS 及基于 PG 的 MPP 分布式数据库的统一部署
- 工作3: POC 测案编写及实施
同城容灾是专有云项目常见的企业级特性,针对 GPDB 只支持单副本和两副本的架构进行扩展。
- 主要工作: 修改 FTS 逻辑适配多副本架构,其中一个备升主之后其它备要去和新主建立 replication
- 适用场景: 需要高可用的部署场景,常见于同城容灾专有云局点
- 其它: 差异化修复(基于 rsync 进行主备数据同步)
Apache Iceberg 是一个开源的大数据表格式,旨在为数据湖提供一个高效的元数据管理系统。ADB PG 希望借助 Iceberg 的通用表格式来更好地融入大数据生态。
- 主要工作: 实现 iceberg-c sdk 及 iceberg_fdw
- 适用场景: 查询由其它大数据工具生成的数据,将 gpdb 接入大数据生态
- 未来规划: 像 snowflake 一样将 iceberg 视为本地表进行查询写入
AnalyticDB PostgreSQL 云原生 Serverless 版支持秒级付费、按需启停、存算分离、分时弹性等能力,数据存储在 OSS 上,实例运行环境部署 Dadi 缓存系统,增加了存储成本。差异化存储企业级特性充分利用 OSS 不同存储类型的价格为用户进一步节省成本。
- 工作1: 提供转冷语法,利用 background worker 异步将 oss 对象转为对应的低频访问存储类型
- 工作2: 提供建冷表语法,创建表时指定对应的 oss 存储类型,写入链路直接将文件存储为相应的类型
- 工作3: 计费,读写低频访问存储的数据量写入 log,管控采集日志完成计费收集
APS 在 DTS 之外提供了一种低成本数据同步链路,同时提供将 Kafka/SLS 等消息队列中的数据写入 hudi table 的能力,供 ADB 查询分析。
- 选型 Flink CDC connectors 开发 datastream job,从 RDS 向 ADB 同步数据
- 从 SLS 中并行读取数据并写入 hudi table,作为 ADB 湖仓数据入口
- 向 Flink CDC 社区贡献动态增删表特性: add new tables to existing cdc job
AnalyticDB MySQL 是阿里巴巴自主研发的海量数据实时高并发在线分析云计算服务,可以在毫秒级针对千亿级数据进行即时的多维分析透视和业务探索。
- 分析 POC 过程中遇到的性能瓶颈并优化
- 开发 Z-order 索引特性,加速多维查询分析
TaurusDB for MySQL 是华为的一款分布式 MySQL 数据库解决方案,SCN (System Change Number) 用于确保数据库中的数据一致性。
- 使用 mmap 优化 binlog 性能,Use mmap for binlog
- SCN 项目相关工作: 适配 purge 流程
OBS Index Layer 用于存储对象存储的元数据,基于 MongoDB,存储引擎使用 mongo-rocks,并通过实现 plog ENV 来对接持久层。
- 主要工作: MongoDB transport layer 适配 xnet 库 (RoCE),提高吞吐减少延时 (bypass kernel)
- 适用场景: 当返回大量数据到客户端时对性能提升效果明显,例如 OBS 用户查看一个 bucket 中的所有文件名时
FusionStorage 是华为推出的一款分布式存储系统,支持文件、块、对象等多种存储访问协议。其中 Persistence Layer——存储系统的持久化层——作为存储系统的底层引擎,负责将数据持久化到存储介质中,同时提供数据保护和数据管理等功能,向上提供 plog 接口。
- 主要工作: 增加了一种新的缓存类型,基于原有的缓存方案适配保电内存介质
- 模块功能: Battery Backup Unit 空间的管理,包括 chunk 的申请、释放,掉电恢复等
- 适用场景: 存储数据量较小的元数据
开源贡献
- Patroni
- Greenplum
- pg_cron
- cron
- Apache ORC
- Flink CDC
- MySQL
- HDFS
- Kong
技能栈
- 编程语言: C/C++ > Java > Python > Rust > Lua
- 并发: 熟悉事件驱动模型及网络编程
- 常用工具: GDB/Perf&FlameGraph/tmux
其它
- 博客: https://zhjwpku.com
- 外语: CET-6 & VET/VEWT
- 论文笔记: paper notes
- GSoC: 两次 Google Summer of Code (X.Org, Ceph) 项目经历