Hi, I’m Peter Lee (李緒成), a third-year CS undergrad at NCKU.
Obsessed with open source, distributed systems, and storage tech—probably a childhood trauma from using potato-grade PCs. My dream is to duct-tape a bunch of crummy machines into one awesome super-computer.
Fun fact: before contributing, I had never touched Ozone in real life. I’d only spun up MinIO in Docker for kicks, and at my internship we use GCS. Ozone’s S3 compatibility? Zero connection. 🤷♂️
Early 2025 I stumbled across Ozone, skimmed the architecture blog posts, went “hey this is cool,” and boom—cloned the repo, read the docs, started squashing Jira tickets. No ten-year master plan, just vibes.
Most discussion happens on design docs, PRs, Jira—async, different time zones. Say things once and make them crystal. (I’m still learning. If you have resources, hit me up!)
Huge thanks to Jesse for shouting it out on his socials—professors reposted it, Taiwanese tech morale soared, and I had literally just binge-watched all five seasons of Breaking Bad the night before. Perfect timing.
OpenSource4You is a Taiwan-based non-profit community for real-world OSS contributions.
Mentors guide projects like Apache Airflow, Kafka, YuniKorn, etc.
It’s Chinese-friendly, ask away!
ReplicationManager (inside SCM) tracks container replicas across DataNodes. The patch lets it detect DataNode state changes much faster, cutting reaction latency from minutes to seconds.
DataNode is the Ozone component that physically stores every container’s files. Because it deals with disk space directly, even tiny mis-calculations can snowball into outages—especially when multiple threads are creating or importing containers at the same time.
Import container? That’s the act of pulling a fully-formed container from another DataNode (usually during recovery or data-rebalancing) and “installing” it locally. It happens in parallel with regular container creation, which means two different code paths might race to grab the same disk space.
If ten threads each try to put a 10 GB container onto a volume that only has 11 GB free, and they all check “hey, space looks fine!” before actually reserving it, you end up “allocating” 100 GB into thin air. Oops.
VolumeChoosingPolicy is now synchronized: choose a volume and reserve its space in one atomic step, preventing over-allocation in highly parallel container creates/imports. Bonus: thread-local RNG + atomic counters actually boosted perf 2–3 × (see two images below)
Ozone snapshots piggy-back on RocksDB checkpoints (hard-links). ext4 caps hard-links at ~65 000, so OM now enforces a snapshot limit at the application layer. Looked trivial, turned into a 70-comment marathon thanks to OM’s double-buffer concurrency corner cases.
Aggressive DB Compaction with Minimal Degradation#8178
Problem: tombstones pile up; iterator scans die a slow death.
Idea: slice the key space by volume, bucket, folder prefixes, keep per-range tombstone stats, and compact small ranges whose tombstone ratio blows past a threshold—so you whittle tombstones away in the background without nuking the whole table during peak traffic.
Reality check: Committer ≠ omniscient. I probably grok 15 % of the codebase. Haven’t even mastered the DataNode read/write path—like a chef who can’t turn on the stove.
More reviews & design discussions—container reconciliation, snapshot scaling, S3 lifecycle… I need to keep up.
Big-impact features someday. Still a long grind ahead.
Fork Ozone, clone it, and run mvn install. (Confession: this step alone took me two days… newcomers these days blaze through it in hours. You’ve got this!)
Chia-Ping Tsai — founded OpenSource4You, plugged me into Ozone and a ton of awesome people, mentored my early Kafka dabbling, and—most crucially—kept my motivation bar full with endless emotional support. The whole channel crew chats, debates, and drops advice whenever I’m stuck—huge boost on every front!
Wei-Chiu Chuang — spun up and runs the Ozone Slack channel, spends ridiculous amounts of time answering my newbie questions, and nominated me for Committer.
Chung-En Lee hosts the weekly calls. Both of them flood the channel with pure gold—couldn’t keep up without their brain dumps.
Attila (project gatekeeper extraordinaire), Semmi Chen (APAC community call host), Ethan (NA community call host), plus Jesse, Cheng-En, Ivan, Swami—and a gazillion other PMC/Committers—review my patches, spot hidden land-mines, and patiently answer even my silliest questions. Couldn’t ask for a kinder gauntlet.
Prof. Kun-Da Chuang — invited Wei-Chiu to give a talk at NCKU on literally my second day of contributing (talk about timing!) and nudged my thesis toward Ozone. Massive guidance on research, networking, everything. Fun fact: after that talk I cornered Jesse with a truckload of rookie questions. 😆
Roomies — Eric, Jason, Owen: your relentless grind stops me from turning into a slacker. I used to day-dream you guys would found a startup and hire me for life—but hey, don’t put all the eggs in one basket, so I’d better hustle before you dump me. 😭 Next Committer badge is yours, Owen!
Dcard internship — bullet-proof CI/CD, a strict code-review culture, full test coverage, stellar teammates and leads, and a beefy codebase. All of that shaved weeks off my OSS ramp-up time. Immense gratitude!