Files
resume-ng/main.tex
2026-04-10 13:48:36 +00:00

128 lines
7.6 KiB
TeX
Executable File
Raw 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.
% !TeX TS-program = xelatex
\documentclass{resume}
\ResumeName{个人简历}
\usepackage{graphicx}
\usepackage{tikz}
\setmainfont{Latin Modern Roman}
\begin{document}
\ResumeContacts{
姓名:连奕恒,%
学历:硕士,%
专业:软件工程,%
(+86)178-8812-0369,%
\ResumeUrl{mailto:lianyh0266@outlook.com}{lianyh0266@outlook.com},%
}
\begin{tikzpicture}[remember picture, overlay]
\node [anchor=north east, inner sep=1cm] at (current page.north east)
{\includegraphics[width=2cm]{image2.png}};
\end{tikzpicture}
\ResumeTitle
\section{教育经历}
\ResumeItem
[西安电子科技大学|硕士研究生]
{西安电子科技大学}
[\textnormal{软件工程,计算机科学与技术学院|} 专业学位研究生]
[2024.09—2027.06(预计)]
主要研究方向为密态数据库、加密数据查询与索引结构。2027 年应届生。
\ResumeItem
[兰州理工大学|本科生]
{兰州理工大学}
[\textnormal{软件工程,计算机学院|} 工学学士]
[2020.09—2024.06]
天梯赛一等奖,蓝桥杯省赛二等奖。
\section[技术能力]
{技术能力}
\begin{itemize}
\item 熟悉 C/C++ 开发熟悉面向对象的编程思想熟悉常用设计模式和STL
熟悉智能指针、Lambda 表达式、协程原理;
对原子变量、内存序与无锁数据结构设计有一定了解。
\item 熟悉 Linux 操作系统,对进程/线程模型、常用IPC以及内存管理有一定了解。
\item 掌握 Socket 网络编程,熟悉 TCP/IP 协议栈;熟悉 epoll/select 等 I/O 多路复用模型与异步 I/O 框架 io\_uring ;熟悉 Reactor / Proactor 架构。
\item 了解 SPDK 用户态存储框架,有 Blobstore 实际开发经验;了解 Linux VFS 层次结构与 POSIX 文件系统调用语义;具备 LD\_PRELOAD 拦截用户态 I/O 的经验对应NVMe协议有一定了解。
\item 具备 eBPF 程序开发经验,使用过 uprobe/kprobe/tracepoint 等探测点;探索过 eBPF 内核态网络转发方案。
\item 了解 Redis 基本原理;熟悉 MySQL了解索引、事务、锁机制、MVCC完成 15445 BusTub 数据库项目。
\item 熟悉 Linux 常用命令;了解 Makefile、Cmake熟悉 Git、GDB使用过 gprof、strace。
\end{itemize}
\section{项目经历}
\ResumeItem{ZVFS | 基于 SPDK 的透明 POSIX 文件系统 }
[独立开发 | \ResumeUrl{https://git.1ian.cn/lian/zvfs}{gitea}]
[2025.11 --- 2026.03]
\vspace{0.5em}
\noindent 透明用户态文件系统原型,面向 AI 检索场景(pgvector)对存储 I/O 的高吞吐需求,通过 LD\_PRELOAD 无侵入劫持 POSIX I/O将文件数据路径路由至 SPDK Blobstore在零业务代码改动下绕过内核 I/O 栈。透明接管 PostgreSQL及 pgvector 已完成功能验证。
\par
% \ResumeDesc{技术栈}{SPDK / NVMe / Blobstore / LD\_PRELOAD / xattr / Unix Domain Socket。}
\begin{itemize}
\item 需要非侵入的绕过内核 I/O 栈以降低存储延迟:以 LD\_PRELOAD 劫持 POSIX I/O 接口,通过 Unix Domain Socket 将 LD\_PRELOAD 层拦截的 POSIX I/O 请求路由至 Daemon 进程,由 Daemon 统一接管 SPDK Blobstore 数据路径,完成数据库场景零侵入接入。
\item 从零实现目录树工程复杂度极高:控制面全部复用 Linux VFS 管理目录、权限、inode 生命周期,仅以 xattr将文件绑定至对应 SPDK Blob无需实现元数据存储/载机制,显著降低实现复杂度。
\item SPDK 的 Ownership 机制要求固定线程操作元数据:设计 Daemon 进程为「单 IPC I/O 线程 + 单 SPDK 元数据线程 + 多 SPDK I/O 线程」架构,在满足 SPDK 单线程约束的同时支持并行数据 I/O。
\item 多进程下需要正确模拟 fork/dup 等语义:在 Daemon 进程中模拟 Linux Open File Description 与 FdTable 模型,并通过 IPC 同步引用计数与偏移语义,保证多 fd / 多进程共享句柄时行为一致。
\item 每次 I/O 重新申请 DMA 内存导致延迟抖动:实现 DMA IO Pool 复用 DMA 内存区域,消除重复申请开销。
\item FIO 中 WRITE 延迟明显高于预期:对端到端路径加轻量打点,将总延迟分解至各层;定位到无条件 RMW、poller 调度抖动、线程未绑核等多个叠加问题,逐项修复后 spdk服务端延迟 从毫秒级降至约 350 µs。
\item 性能测试:在 VMware + 模拟 NVMe 环境下FIO 16K Psyn 随机写达到 kernel 路径约 73\% IOPS1353 vs 1855平均时延为 692 µs顺序对齐写场景下吞吐达spdk\_nvme\_perf 基准 90\%4K: 94/100 MiB/s128K: 1662/1843 MiB/s。单客户端场景 TPS 为 38.2,对比 kernel 39.1,端到端性能基本持平(约 4\% 差距)。
\end{itemize}
\vspace{1em}
\ResumeItem{LDB | 高性能 KV 存储系统 \& 本地语义问答引擎}
[独立开发 | \ResumeUrl{https://git.1ian.cn/lian/ldb}{gitea}]
[2025.02 --- 2025.07]
\vspace{0.5em}
\noindent 自研 KV 存储引擎,兼容 RESP 协议,支持 pipeline采用 Reactor/epoll + io\_uring 架构实现高性能网络与持久化路径。在此基础上构建本地语义问答系统,通过向量检索与三层路由降低 LLM 调用成本。
\par
% \ResumeDesc{技术栈}{Linux、Reactor、epoll、io\_uring、RESP2、eBPF、共享内存 IPC、gprof、ChainBuffer、SPSC。}
\begin{itemize}
\item 频繁小对象分配导致内存碎片严重:自实现内存池统一管理分配,小对象场景吞吐较 glibc malloc 提升 7\%
\item AI问答的长回复在固定缓冲区下存在内存浪费以 ChainBuffer + ET 边缘触发 + readv 直读重构收发路径支持大命令缓冲实现跨分段大Key解析。
\item 同步持久化阻塞主线程,高并发下落盘成为瓶颈:以 io\_uring + n×spsc 落盘线程组实现异步持久化,配合 in-flight 背压防止 CQ overflow负载均衡分摊写压力无fsync 时 set QPS 损失仅 5.6\%每秒fsync一次 QPS损失 11.3\%,读路径接近零影响。相较同步持久化方案,整体性能提升 2x。对比Redis AOF 模型持久化开销降低50\%
\item 运行时内存泄漏难以追踪:通过 eBPF 实现热插拔泄漏探测组件,对比 valgrind 性能开销更小且无需重启即可介入。
\item 为实现读写分离架构降低主进程压力实现基于独立进程的主从同步通过共享内存向独立同步进程转发写命令QPS损失15\%。设计基于内核态函数探测的eBPF转发方案探测开销低于3\%
% \item 增量持久化路径存在性能瓶颈gprof 定位后发现提交落盘任务频繁申请内存,引入组提交机制与可复用组提交缓冲池,合并多次写入批量落盘;持久化路径开销降低 23\%。
\item 针对重复问题频繁触发 LLM 调用导致的高延迟与高成本问题:设计“精确匹配 → 向量检索 → LLM 兜底”的三层路由,显著减少模型调用次数与 tokens 消耗。
\item 性能测试压测场景RBTree256B valuepipeline=128下 set/get 吞吐达同环境 Redis 的 72\% / 75\%
\end{itemize}
\section{个人总结}
\begin{itemize}
\item 对基础组件开发具有浓厚兴趣,喜欢与系统底层机制打交道,关注系统性能优化与高并发处理能力。
\item 对关系型数据库原理较为熟悉,对常见非关系型数据库有一定了解。
\item 了解线程池、连接池、无锁队列、网络缓冲区、定时器等基础组件的设计。
\item 阅读过 DPDK 中 MPMC 无锁队列的实现源码,对高性能并发数据结构有一定理解。
\item 具备使用 Codex / AI 编程工具辅助开发的经验。
\end{itemize}
\end{document}