Files
ldb/doc/resume.tex
2026-03-05 08:45:23 +00:00

26 lines
2.8 KiB
TeX
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
\section{项目经历}
\ResumeItem[KVStore 高性能 KV 存储系统RESP 兼容 + 异步持久化 + 主从同步)]
{\textbf{KVStore} 高性能 KV 存储系统RESP 兼容 + 异步持久化 + 主从同步)}
[个人项目|独立开发]
[2025.03 --- 2026.03]
\begin{itemize}
\item 基于 \textbf{C + Linux} 从零实现单机 KV 服务:支持 \textbf{RESP2 协议解析}、pipeline 与 binary-safe支持 \texttt{\textbackslash 0}),并统一接入 \textbf{Array / RBTree / Hash} 三类存储引擎。
\item 实现链式网络缓冲 \textbf{ChainBuffer}:通过 \textbf{readv/sendmsg} 构建分段零拷贝收发路径,支持大 Key 与半包/多包场景;提供 \textbf{detach/release} 所有权接口,支持后续执行-落盘共享同一数据片段。
\item 实现 \textbf{io\_uring + n*SPSC} 异步落盘模型主线程执行后写入增量日志worker 线程批量提交 \textbf{writev};通过 in-flight 控制、队列背压、destroy-queue 回收,避免 CQ 溢出与内存失控。
\item 设计并落地“\textbf{快照 + 增量日志}”恢复链路:支持启动加载快照并回放 oplog支持 \textbf{SSYNC $\rightarrow$ 快照传输 $\rightarrow$ SREADY $\rightarrow$ 增量同步} 的主从接管流程,并预留 eBPF uprobe 协同点。
\item 实现可插拔内存分配策略(\textbf{malloc/jemalloc/mypool}):自研 mempool 采用 8--512B 分级桶 + 页级 free-list在 allocator$\times$persistence 复测中,\textbf{mypool} 吞吐最佳none: 924878 QPSincremental: 747101 QPS
\item 构建 hiredis 功能/压测工具链(\texttt{testcase + bench + 自动化脚本}),沉淀多轮可复现实验口径;将关键优化量化为可交付结果(如 ChainBuffer 改造后写路径 QPS 提升约 \textbf{27\%})。
\end{itemize}
\ResumeItem[EncryptSql 基于 PostgreSQL 的透明加密查询与运算框架]
{\textbf{EncryptSQL} 基于 PostgreSQL 的透明加密查询与运算框架}
[学校横向|部分代码开发]
[2024.09 --- 2025.09]
\begin{itemize}
\item 在客户端侧对 \textbf{libpq} 进行改造,实现 \textbf{SQL 解析后重写}:将原生表达式/运算符节点替换为密态版本函数/算子调用,尽量保证业务侧无侵入接入。
\item 基于 \textbf{PostgreSQL 扩展机制}(自定义函数/算子等)接入密态运算:支持常见算术计算(加/减/乘/除)与部分聚合能力,并与查询执行流程集成。
\item 设计并实现基于工厂模式的 \textbf{KMS 接口层}:在 \texttt{encryptsql} 组件中统一密钥获取与管理流程,完成 \textbf{LocalKMS}\textbf{Huawei KMS API} 适配,支持外部 KMS 平滑替换。
\item 面向高安全计算场景,引入 \textbf{TEE} 承载关键运算链路,在安全性与性能开销之间做工程化平衡。
\end{itemize}