% !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、数据面走 SPDK”的分层架构，目录树、权限、inode 生命周期继续复用 Linux VFS，仅通过 xattr 持久化文件到 Blob 的映射，避免自建元数据数据库，显著降低系统复杂度。

    \item 针对 SPDK metadata 的单线程约束，设计「单 IPC 线程 + 单 metadata 线程 + 多 I/O poller」模型。

    \item 为确保在多进程下正确模拟 fork/dup 等语义，设计在 Daemon 进程中模拟 Linux Open File  Description 与 FdTable 模型的方案，并通过 IPC 同步引用计数与偏移语义。
    
    \item 为解决每次 I/O 重新申请 DMA 内存导致延迟抖动，实现 DMA IO Pool 复用 DMA 内存区域，消除重复申请开销。

    \item 解决FIO 中 WRITE 延迟明显高于预期问题，基于端到端 trace 对 WRITE 延迟做分层定位，识别并修复无条件 RMW、poller 调度抖动、线程未绑核等问题。

    \item 性能测试：在 4K randwrite 场景下，ZVFS 达到 3816.78 IOPS，高于内核路径 2883.24 IOPS，平均完成时延降至 259.53~\textmu s；WRITE 请求端到端平均耗时约 256~\textmu s。
\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$\times$SPSC 异步持久化模型，并结合 in-flight 背压防止 CQ overflow；无 fsync 时 set QPS 仅下降 5.6\%，每秒 fsync 一次时下降 11.3\%，读路径几乎不受影响，整体方案相较同步持久化性能提升约 2 倍。
  
  \item 为降低运行期内存泄漏排查成本，实现基于 eBPF 的热插拔泄漏探测组件；相比 valgrind 开销更低，且无需重启服务即可介入线上问题定位。
  
  \item 围绕读写分离与副本同步需求，实现基于独立进程 + 共享内存 IPC 的主从同步链路，将写命令转发至同步进程，MPS 损失控制在 15\% 以内；同时设计基于 eBPF 内核态探测的实时转发方案，探测开销低于 3\%。
  
  \item 在落地本地搭建的 AI问答系统 的过程中，针对重复问题频繁触发 LLM 调用带来的高延迟与高成本，设计“精确匹配 $\rightarrow$ 向量检索 $\rightarrow$ LLM 兜底”的三层路由，显著减少模型调用次数与 tokens 消耗。
  
  \item 压测场景下（RBTree、256B value、pipeline=128），set/get 吞吐达到同环境 Redis 的 72\% / 75\%，验证了自研存储内核在功能完整前提下具备较强性能竞争力。
\end{itemize}



\section{个人总结}

\begin{itemize}
  \item 对基础组件开发具有浓厚兴趣，喜欢与系统底层机制打交道，关注系统性能优化与高并发处理能力。
  \item 对关系型数据库原理较为熟悉，对常见非关系型数据库有一定了解。
  \item 了解线程池、连接池、无锁队列、网络缓冲区、定时器等基础组件的设计。
  \item 阅读过 DPDK 中 MPMC 无锁队列的实现源码，对高性能并发数据结构有一定理解。
  \item 具备使用 Codex / AI 编程工具辅助开发的经验。
\end{itemize}

\end{document}