个人信息
- 电话:17728031679
- 微信号:me-ldd-cool
- 邮箱:winterloo@126.com
- 个人网站:https://me.ldd.cool
- Github: https://github.com/winter-loo
教育经历
| 2011.9 ~ 2015.7 | 安徽大学 | 计算机科学与技术专业 | 本科 |
个人技能
- 熟悉常用的算法和数据结构
- 熟悉多线程编程技术,熟悉常见的线程同步、进程间通信技术
- 熟悉网络编程,熟悉 TCP/IP 通信原理,熟悉 HTTP 协议
- 熟悉 C/C++,熟悉 C++11,良好的面向对象思维和编码风格
- 熟悉 Linux 系统常用操作,熟练使用 gdb 等 Linux 下开发工具
- 熟悉 postgresql、redis 等数据库原理
- 大学英语六级,能流畅阅读英文技术文档
工作经历
2023 年 7 月 ~ 至今 | 个人项目
-
参与 neon 项目的开发
- 新增 wal proposer
- 基于 lsm tree 的 kv 存储,用于存储 wal 日志数据和 full image 数据
-
完成 CMU 数据库入门课程实验
- lru-k 缓存更新算法
- undo log 实现
-
让 PostgreSQL 实现自动记录数据插入时的时间戳
- 只在插入数据时记录时间戳,更新数据时保持不变
- 新增系统列 itime, 不会影响现存 SQL 语句输出
- 类 toast 机制,实现增/删/改时的逻辑
- 查询则基于 tid scan 和 ctid 与 itime 的映射
-
让 PostgreSQL 支持 Oracle 的 dense_rank first 聚合函数
- 支持 MIN(xxx) KEEP (DENSE_RANK FIRST ORDER BY yyy) 语法
- 实现执行器执行时的核心逻辑
2023 年 5 月 ~ 至今 | 恒生电子 | 数据库研发工程师
-
让 PostgreSQL 支持类 Oracle 的回收站功能
- 修改 drop table 逻辑,实现逻辑删除
- 核心是管理数据库对象间的依赖关系
- 新增系统表用于记录要删除的对象
- 支持 flashback table, show recyclebin, purge recyclebin 语法
- 增加后台进程支持定时清理回收站
-
为国测研究 PostgreSQL 内部机制
- 新增 fetch per nth 算子
- 实现 json_fdw 插件对含有 json 串的文件的增删改查
- 研究 PostgreSQL的分布式插件 citus 并修改二阶段提交协议
- vacuum 机制
- 并行框架
-
让 PostgreSQL 支持聚合函数嵌套执行
- 允许类 max(min()), avg(sum()) 的聚合行数嵌套执行
- 核心是等价重写规则
-
实现 pgsql 的语法校验
- 处理所有 pgsql 语句并分析其中的数据库对象是否合法
-
查询引擎的表达式引擎开发
- 兼容 Oracle 的 greatest/least 函数
- 查询引擎解析器的开发
- 允许 create table 语句的参数可以无序输入
2021 年 6 月 ~ 2022 年 6 月 | 亿锦网络 | C++ 软件开发工程师
-
参与开发高性能 IO 库
- 基于新 Linux 内核 5.10 的新特性 io_uring
- 对外接口模仿 chromium 的 PostTask 接口
-
参与高性能日志的开发
- 基于异步、内存预分配、内存对齐、无锁队列等技术将p99延时降到10微秒以下
- 使用 perf 工具观察耗时操作
-
负责整个组的 C++ 代码工程
- 使用 chromium 工程构建工具 gn 将 chromium 的 base 和 net 代码整合成一个静态库以支持团队业务开发
- 研究并使用 chromium 的 PostTask 模型并向团队成员介绍使用模式
- 熟练使用 cmake 完成整个团队内各项目的构建工程,引入 code coverage 和 gtest
- 结合 shell 脚本完成项目间版本管理和依赖管理,达到了每个项目都可以一键编译的目标
- 为团队项目引入 vpckg, 统一公司级 C++ 依赖库的管理
2015 年 7 月 ~ 2021 年 6 月 | 广州汇智通信 | C++ 软件开发工程师
-
数据的收集及处理
- 从 kafka 读取数据,采用链式过滤器模式清洗数据,及 DAO 模式完成到 redis 的存储
- 基于 ZeroMQ 完成多进程间的通信,支持收集进程与处理进程分机器部署
- 基于 gtest 完成单元测试
- 基于 python flask 提供前端访问 redis 中数据的服务
-
基于文本文件完成数据的迁移
- 基于 automount 及 ifstream 状态处理由于网络不稳定造成的 mount 挂载失效。
- 借鉴 linux 的 head/tail 命令完成快速跳过已经读取过的文件内容,完成近实时读取文件并更新读取进度。
- 在没有文件的情况下,基于 ZeroC Ice 定义的协议,完成从分布式程序中生成文件并分发到迁移程序。
- 开发监控程序进行集中式进度监控及远程启停控制
-
参与开发音视频处理 http 服务器
- 负责重新设计类结构,增加代码复用,突出可变代码,便于日后修改及扩展。使用策略模式完成不同数据的获取。
- 根据 url 请求规则完成从音视频数据的传输,如获取音频的波形数据,语音转码,h264 视频数据的合成等。
- 基于该 http 服务,以前后端分离方式开发 html5 音频播放器。
-
基于 TLV 协议的数据传输
- 负责 TLV 协议的序列化和反序列化
- 使用基础 socket api 完成与厂商的联调测试
- 使用 cmake 构建工程