📢 About the Author
Yihong — runner, reader, gamer, and open-source enthusiast.
Preface
Project repository: GreptimeDB
GreptimeDB is an open-source observability database written in Rust. The official description goes:
The unified observability database. OpenTelemetry-native, cloud-native, capable of processing metrics, logs, and traces in real time, delivering sub-second insights at any scale.
So far, I’ve submitted 51 PRs, 44 of which have been merged, ranking me 20th among all contributors.
This article is about how I went from a complete outsider to a long-term contributor—and eventually an advocator—for GreptimeDB.
The Spark: A Series of “Accidents”
My journey into GreptimeDB wasn’t planned. It was more like a chain of coincidences that led me here:
- First encounter: I heard about it at the Cloud Native Conference in Dalian, when someone mentioned a Rust-based database.
- Knowing the CTO: I had followed @sunng87 on Twitter for a while, only later realizing he was Greptime’s CTO.
- Good First Issues: At the time, Tison was active at Greptime, regularly posting beginner-friendly issues.
- Rust motivation: By the end of last year, I was frustrated with AI-generated Python code being full of bugs. I figured switching to Rust might be the cure.
- Funny mishap: At one point, I was even “mistakenly blocked” by a team member, which only made me more curious about the project.
The real trigger was when Greptime’s CEO followed me on LinkedIn. I was already looking for a Rust project to practice with, so I opened the repo—and never looked back.
First Step: Starting with Bugs
My very first PR was db#5274, which was eventually closed. I like starting from bugs when exploring a new project.
Even small fixes give you a window into how the system works. Though my patch was rejected for architectural reasons, it taught me a lot:
- How to fully compile the project
- How the
lint test
andCI
pipelines work - The clever design of their
makefile
—especially make help, which later inspired my patch to TiDB
That was the moment I realized:
Open-source contribution isn’t that hard. If you can run the project, you’ll naturally discover what to do next.
The First Merged PR
My first merged PR was db#5279.
It came from a simple annoyance: make fmt was taking 40 seconds. I optimized it down to 4 seconds.
The patch wasn’t complex—anyone could’ve done it, even AI. But it taught me something important:
In the age of AI, models can write code, but spotting the right problem to solve still requires human intuition.
Learning Rust, Making Friends
From there, I began contributing more while learning Rust:
- db#5301: my first Rust code contribution (plus a test)
- db#5313: fixed a bug that also resolved a panic
- db#5338: cleaned up unused imports while studying OpenDAL
One fun comment I got: “LGTM. Why does cargo check or clippy not report this?”
- db#5349 that led me to discover the limitations of cargo check and explore new static analysis tools. Eventually, I submitted db#5352 using those tools.
Later, I dived into RAPx, a more advanced Rust static analysis framework, and pushed further optimizations: db#5383, db#5388, db#5507, and more.
Through this, I not only learned Rust but also internalized the philosophy of memory safety and the strength of its tooling ecosystem.
Three Patches I’m Proud Of
Among my contributions, three patches stand out: db#5518, db#5561, and db#5497.
They taught me that:
- Performance optimization isn’t magic—concepts like fast paths can deliver immediate impact.
- Algorithms matter—sometimes a few lines of code can bring a 10x performance boost. Going from LeetCode problems to production-grade database code was a powerful experience.
From GreptimeDB to OpenDAL, and Back
As I grew more comfortable with Rust, I also contributed to OpenDAL. Understanding it gave me fresh perspectives, which I later applied back into GreptimeDB—for example, db#5585. Since then, whenever I find something interesting that could benefit Greptime, I just contribute it.
The Community Side: Running, Coding, Sharing
Code is only half of open source.
Offline, I met @fengjiachun and reconnected with @sunng87 in Japan. We shared drinks and stories.
That’s when I realized:
Open source is not just about code—it’s about building human connections.
Final Thoughts
Through GreptimeDB, I’ve learned Rust, gained insights into database optimization, and made new friends. If you’re looking for a way into open source, start small. Pick a bug, open a PR—you never know, it might be the start of your own story.