惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Forbes - Security
Forbes - Security
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Jina AI
Jina AI
美团技术团队
博客园 - 聂微东
博客园 - 叶小钗
Security Latest
Security Latest
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园_首页
Spread Privacy
Spread Privacy
J
Java Code Geeks
雷峰网
雷峰网
宝玉的分享
宝玉的分享
C
Cyber Attacks, Cyber Crime and Cyber Security
P
Privacy International News Feed
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threat Research - Cisco Blogs
The Hacker News
The Hacker News
量子位
L
LINUX DO - 热门话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
G
GRAHAM CLULEY
D
Darknet – Hacking Tools, Hacker News & Cyber Security
月光博客
月光博客
腾讯CDC
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tor Project blog
罗磊的独立博客
V
Vulnerabilities – Threatpost
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
有赞技术团队
有赞技术团队
Project Zero
Project Zero
Hugging Face - Blog
Hugging Face - Blog
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tenable Blog
MyScale Blog
MyScale Blog
T
The Exploit Database - CXSecurity.com
GbyAI
GbyAI
博客园 - 【当耐特】
O
OpenAI News
Schneier on Security
Schneier on Security
S
Secure Thoughts
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
Securelist
博客园 - 司徒正美

RSS feed of yihong0618's gitblog

12 月,姥姥,以及大模型 · Issue #344 · yihong0618/gitblog 不要自动化你的情感链接 · Issue #343 · yihong0618/gitblog 那些幸福的瞬间 · Issue #342 · yihong0618/gitblog 12 年过去了,你过得还好么? · Issue #341 · yihong0618/gitblog Be a human, not a claw. · Issue #339 · yihong0618/gitblog 新年快乐以及一些近况 · Issue #338 · yihong0618/gitblog 偶得的佳句与 AI · Issue #337 · yihong0618/gitblog 确定性的丧失 · Issue #336 · yihong0618/gitblog Something Boring or Interesting · Issue #335 · yihong0618/gitblog 2025 年我提了 500 个 Pull Requests · Issue #334 · yihong0618/gitblog 网友 · Issue #333 · yihong0618/gitblog 如何判断一个项目是个好的开源项目并且想贡献? · Issue #331 · yihong0618/gitblog Things I don’t like · Issue #329 · yihong0618/gitblog Notes on Pycon2025 · Issue #327 · yihong0618/gitblog 从错误中学习 · Issue #326 · yihong0618/gitblog 一次艰难的 cpython issue 排查过程,以及我学到了什么 · Issue #325 · yihong0618/gitblog 八月 · Issue #324 · yihong0618/gitblog Notes on May · Issue #318 · yihong0618/gitblog Things I like · Issue #311 · yihong0618/gitblog 我的 35 岁 · Issue #309 · yihong0618/gitblog 连续跑了 365 天 · Issue #306 · yihong0618/gitblog 最近给开源项目贡献的记录 · Issue #304 · yihong0618/gitblog 2020-2025 最喜欢的 12 篇文章和一张图 · Issue #302 · yihong0618/gitblog 断章 · Issue #301 · yihong0618/gitblog 这两个月 · Issue #299 · yihong0618/gitblog 从给 RisingWave 提 PR 说起,聊聊怎么快速切入一个复杂的开源项目 · Issue #296 · yihong0618/gitblog 能几日,又中秋 · Issue #294 · yihong0618/gitblog 第一次 AI 尝试,完全用 AI(MarsCode) 做个需求 · Issue #293 · yihong0618/gitblog 一件趣事儿 · Issue #292 · yihong0618/gitblog 这玩意不是就__ · Issue #291 · yihong0618/gitblog 六月 · Issue #290 · yihong0618/gitblog 跑了 10000km 花了 13 年 · Issue #289 · yihong0618/gitblog 抉择 · Issue #287 · yihong0618/gitblog 三月 · Issue #283 · yihong0618/gitblog About Me · Issue #282 · yihong0618/gitblog 用小爱加手指机器人实现传统开关语音关灯 · Issue #281 · yihong0618/gitblog 记忆碎片 · Issue #280 · yihong0618/gitblog 开源值得么? · Issue #279 · yihong0618/gitblog 聊聊读书 · Issue #275 · yihong0618/gitblog 旧文,移动端最好的游戏,《Dream Quest》以及其它 · Issue #274 · yihong0618/gitblog 微信好友 · Issue #272 · yihong0618/gitblog 如何写一个 PostgreSQL Extension · Issue #270 · yihong0618/gitblog 五月病 · Issue #268 · yihong0618/gitblog 杂感 · Issue #262 · yihong0618/gitblog vm.overcommit_memory 学习笔记 · Issue #261 · yihong0618/gitblog 开源四年的一些记录 · Issue #259 · yihong0618/gitblog 不用 root 使用小爱同学和 ChatGPT 交互折腾记 · Issue #258 · yihong0618/gitblog 用 eBPF trace PostgreSQL 的几种姿势 · Issue #257 · yihong0618/gitblog 2022 失落的一年 · Issue #255 · yihong0618/gitblog 写诗吧 · Issue #254 · yihong0618/gitblog 利用 GitHubPoster 和 GitHub Actions 备份任意用户推特 · Issue #252 · yihong0618/gitblog 一杯敬月光 · Issue #251 · yihong0618/gitblog 如何判断一个数字帐号来自中国大陆 · Issue #248 · yihong0618/gitblog Random Thoughts · Issue #242 · yihong0618/gitblog 反思 · Issue #241 · yihong0618/gitblog 今天的跑步电台 · Issue #239 · yihong0618/gitblog LeetCode 是如何运行的--测试篇 · Issue #237 · yihong0618/gitblog 新冠纪元 · Issue #235 · yihong0618/gitblog Postgres 需要学的东西 · Issue #234 · yihong0618/gitblog Postgres 中 GUC 的一些记录 · Issue #233 · yihong0618/gitblog 运交华盖欲何求 · Issue #231 · yihong0618/gitblog 年终岁尾 · Issue #230 · yihong0618/gitblog 二零二二的三个小目标 · Issue #229 · yihong0618/gitblog 经历了人生体验最棒的一次面试 · Issue #228 · yihong0618/gitblog 参加了《开源面对面》《ByteTalk》《枫言枫语》播客的一些记录 · Issue #223 · yihong0618/gitblog 有趣与无趣 · Issue #221 · yihong0618/gitblog running_page 开源一周年的总结 · Issue #220 · yihong0618/gitblog 接下来要写的东西 · Issue #219 · yihong0618/gitblog 一点思考 · Issue #218 · yihong0618/gitblog 友情链接 · Issue #217 · yihong0618/gitblog 朋友圈 · Issue #216 · yihong0618/gitblog 张小龙的饭否 · Issue #215 · yihong0618/gitblog 一件小事 · Issue #214 · yihong0618/gitblog 从 Rich 作者的一个问题说起 · Issue #212 · yihong0618/gitblog 如何用一个仓库记录自己的一年 · Issue #209 · yihong0618/gitblog 逃离 · Issue #208 · yihong0618/gitblog 近况 · Issue #207 · yihong0618/gitblog 年过完了 · Issue #206 · yihong0618/gitblog 力扣的程序是如何运行的 · Issue #205 · yihong0618/gitblog 生存守则 · Issue #204 · yihong0618/gitblog 沮丧 · Issue #203 · yihong0618/gitblog 今年的三个小目标 · Issue #202 · yihong0618/gitblog 新年碎碎念 · Issue #201 · yihong0618/gitblog 二零二一开始 · Issue #200 · yihong0618/gitblog 记住这一刻 · Issue #199 · yihong0618/gitblog 巧妙利用 iOS 的快捷指令配合 GitHub Actions 实现自动化 · Issue #198 · yihong0618/gitblog 如何获取悦跑圈数据 · Issue #197 · yihong0618/gitblog 生的对立面 · Issue #196 · yihong0618/gitblog 推荐一些我一直关注的觉得不错的和 Python 相关的独立博客 · Issue #195 · yihong0618/gitblog 2020 年 10 月总结 11 月计划 · Issue #194 · yihong0618/gitblog 写在 0x20 岁之前 · Issue #193 · yihong0618/gitblog 如何获取 keep 跑步数据 · Issue #191 · yihong0618/gitblog 2020 年 9 月总结 10 月计划 · Issue #190 · yihong0618/gitblog 决定把gitblog和kb结合起来 · Issue #189 · yihong0618/gitblog 感冒了,真是难受 · Issue #188 · yihong0618/gitblog 把running page 变得通用必须提上日程了 · Issue #187 · yihong0618/gitblog 我转行程序员的经历 · Issue #186 · yihong0618/gitblog 普通人和天才之间的巨大鸿沟 · Issue #185 · yihong0618/gitblog 月跑 250 km计划 · Issue #184 · yihong0618/gitblog 2020年八月总结九月月展望 · Issue #182 · yihong0618/gitblog
从给 Greptime 贡献代码的过程中,我都学到了什么 · Issue #320 · yihong0618/gitblog
yihong0618 · 2025-07-22 · via RSS feed of yihong0618's gitblog

写在前面:

项目是 : greptimedb
它是一个时序数据库,官方介绍是:

化繁为一的可观测数据库,OpenTelemetry 原生、云原生的可观测数据库,实时处理指标、日志和链路追踪数据 — 在任何规模下提供亚秒级洞察。

我一共给 greptime 提了 51 个 Pull Request 被 merge 了 44 个,在所有贡献者里目前排第 20.

给它贡献的几个契机

  • 很早就知道了这个用 Rust 写的时序数据库,当时还是马道长在大连云原生大会上的一个介绍
  • 很早就在推特认识了 @sunng87 后面知道了他在里面做 CTO
  • tison 在这里工作过一段时间,当时他在推特上发 good first issue
  • 去年年底因为觉得 AI 帮忙写 python 总会写一些很难发现的 bug, 也许用 Rust 会好一点,准备学点 Rust
  • 他们公司有人给我拉黑了(后来证明是误会)

不过最后一个契机是某一天有人在 LinkedIn 上关注我,我点开一看是 Greptime 的 CEO 正好我想学一学 Rust 便又点开了这个项目。

第一个 PR:

第一个 PR 是没有成功合并的,我特别喜欢从 bug 入手一个项目,在 bug 中管中窥豹来了解一个项目的全貌,
那时候正好有这么一个 issue, 我去尝试解决了下,发现不太难,但是由于设计的问题最后没有合并,但尝试修第一个 bug 的过程中
我学到了:

  1. 如何编译这个项目
  2. 项目需要跑的 lint test 以及我在 makefile 中学到了项目的基本信息
  3. 项目的 makefile 写的特别好,我学到了常规的 make help 应该怎么写怎么用,给我后面打 TiDB 提的一个 patch 打了基础
  4. 学习了 greptime 的 CI

想给开源项目贡献并不难,只要项目成功跑起来,就知道如何贡献了。

嗯上面是我说的,于是就有了

第一个成功 merge 的 PR

在尝试做第一个修复的过程中发现了 make fmt 异常的慢,我不太理解,仔细研究了一下代码。嗯,是 python 我比较熟。
从 40s 提高到了 4s 这个贡献并不难,我们都可以做,甚至在今天,AI agent 直接做的比我还好,我们在 LLM 时代更
需要一个发现问题的眼睛了~

边学 Rust 边贡献

从这 patch 中我学到了一些 rust cargo 生态的一些 check

因为懂一点点 pg 我又去尝试修复 bug 了但是这个是一个需要巨大工作量的修复(后来我才知道)
这个 patch 也是我给 greptime 贡献的第一行 rust 代码,从这个 PR 里我学会了如何给 greptime 加测试

在我尝试修复另一个很久以前的 bug 的时候发现的 bug, 还挺有趣的顺便尝试修复了,从中我学到了怎么处理 Rust
panic 的一些技巧

因为 @Xuanwo 的 OpenDAL 发现 greptime 用的也是 opendal 就去学习里面的代码了,发现有个 useless import 给删除了

其中的一条评论很有趣

LGTM. Why does cargo check or clippy is not reporting this?

通过这条评论我又学习了 cargo check 是无法准确的报告一些 useless code 的,那么有没有可以的呢,学到了新的一个 static check
于是有了下面一个 patch

再之后我想了,既然 rust 的机制已经保证了很多的安全性,那么能不能更安全呢?于是去查到了 rapx 这个项目,这应该是我见到的最牛的几个 static check 项目之一(后面因为 check greptime 我还有机会给这个项目提了个 patch)

因为 rapx 我贡献的几个 patch:

之后是一些常规的修复也了一些 patch

三个我比较自豪的 patch
我从中学到了很多 perf 技巧,尤其是之前在 gp 的时候只听同事讲过优化器 fast path 我通过其中的一个 patch
才真正的明白了一点点数据库的优化。
还有一个是算法的重要性,我只是优化了几行代码就能提高 10 倍的性能理解了 O(n) O(...) 不是只有 LeetCode

后面因为学会了一点点 Rust 又去给 OpenDAL 贡献了不少代码,理解了 OpenDAL 后又返回来给 GreptimeDB 贡献了个小的 feat

再后面就是遇到啥好玩的,发现 greptime 可能有用就顺手贡献一个。

当然最重要的是后面线下认识了一个 greptime 的大哥 @fengjiachun 和在日本加了 @sunng87

  • 喝了好多酒
  • 发现了很多交集
  • 聊了很多往事

喝酒跑步和写代码一样有趣

学到了新的东西,认识了新的朋友,就更有趣了。