OSPP (Open Source Promotion Plan) is a summer program initiated by the Institute of Software at the Chinese Academy of Sciences and supported by the “Open Source Software Supply Chain Lighting Plan.” Although it’s now winter 🥶, the program is dedicated to providing university students with a hands-on platform to explore open-source projects. It sparks their enthusiasm for open source technology and injects fresh energy into the open source community. Through this initiative, participants transition from textbook knowledge to real-world coding experiences while contributing to open-source software development.
As a cloud-native, distributed, open-source time-series database, GreptimeDB embraces innovation and open-source collaboration as its core values. By participating in OSPP, we aim not only to share expertise but also to pave the way for the next generation of open-source contributors, fueling the vibrant ecosystem of open source.
👉 GreptimeDB Repository: https://github.com/GreptimeTeam/greptimedb
👉 Greptime Official Website: https://greptime.com/
Project Highlights
This year, GreptimeDB carefully curated three technically challenging and impactful projects for OSPP, anticipating fruitful collaborations with students passionate about technology. The program, spanning from summer to late fall, was a resounding success thanks to the dedication of students, mentors, and organizers.
Project 1: Adding JSON Type Support to GreptimeDB
The introduction of JSON types enhances database flexibility, especially for handling semi-structured data. Under the guidance of mentor Weny, student Yuhan not only implemented JSON type support but also delved into optimizing its underlying mechanisms.
Key Outcomes: Efficient support for the JSONB format, providing developers with powerful tools for data storage and processing.
👉 Related Issue:
👉 Pull Requests:
From Student:
At first, I assumed that adding JSON support would be similar to the Interval/Duration type I worked on last year. However, I soon realized JSON’s uniqueness, especially since it wasn’t already integrated into the DataFusion type system. Special thanks to Weny for his patience and guidance. Successfully contributing JSON support to GreptimeDB has been incredibly rewarding, and I’ve gained invaluable knowledge about database systems.
From Mentor:
Yuhan demonstrated excellent self-motivation and execution. From conducting technical research in the early stages to addressing complex implementation details, he maintained high-quality code and comprehensive test coverage. His ability to tackle challenges with persistence and diligence sets a strong foundation for his future endeavors.
Project 2: Resource Limitation Framework for Embedded Environments
Managing database performance in resource-constrained edge environments is a critical challenge. To address this, student ActivePeter developed a CPU resource limitation framework inspired by cgroups, ensuring efficient system performance.
Key Outcomes:
- Dynamic CPU throttling, significantly improving system stability.
👉 Related Issue:
👉 Pull Request:
From Student:
Using Rust, I encapsulated Rust Futures to implement a dynamic CPU throttling mechanism. The framework dynamically adjusts CPU quotas to maintain stability under high loads. Testing demonstrated substantial improvements in resource utilization. I’m grateful for my mentor’s guidance and look forward to further optimizing this framework.
From Mentor:
ActivePeter showcased an impressive understanding of asynchronous runtimes and delivered a practical solution to CPU throttling. His ability to address reviewers' feedback promptly and proactively push the project forward was commendable.
Project 3: Postgres System Tables and psql
Query Compatibility
To better integrate with the Postgres ecosystem, GreptimeDB needed to support additional system tables and enhance compatibility with the psql
CLI tool. Student J0HN50N133 took on this challenge, successfully implementing core features and improving test coverage.
Key Outcomes:
- Support for essential
psql
functionalities and an enhanced testing framework.
👉 Pull Requests:
From Student:
In this projicet, my goal was to improve GreptimeDB's integration with Postgres by adding support for more system tables and psql commands. I implemented key psql features and enhanced the testing framework, boosting test coverage. Throughout the project, I actively participated in discussions, submitted several PRs, and helped extend GreptimeDB's Postgres compatibility. This experience deepened my understanding of database principles and improved my engineering skills. I'm looking forward to continuing my contributions to GreptimeDB.
From Mentor:
J0HN50N133 excelled at designing and implementing solutions for GreptimeDB’s Postgres integration. He also took the initiative to refactor parts of the testing framework, reflecting strong engineering skills and deep understanding of database principles.
Growth and Aspirations
This November marks the second anniversary of GreptimeDB’s participation in OSPP. Over these two years, we’ve witnessed significant growth in our projects and contributors:
- Student Development: Participants honed technical skills and gained hands-on experience in collaboration and problem-solving.
- Community Growth: The projects brought fresh energy and valuable features to GreptimeDB, enriching the user experience.
- Future Commitments: Many students continue to contribute beyond the program, becoming interns and delving deeper into database innovation with us.
Looking Ahead
GreptimeDB remains dedicated to its open-source mission. We’re excited to collaborate with more students and community members, exploring the limitless possibilities of open source.
A heartfelt thank you to everyone who made this program a success: students, mentors, organizers, and the community. Let’s continue building a vibrant open-source ecosystem together!
About Greptime
Greptime offers industry-leading time series database products and solutions to empower IoT and Observability scenarios, enabling enterprises to uncover valuable insights from their data with less time, complexity, and cost.
GreptimeDB is an open-source, high-performance time-series database offering unified storage and analysis for metrics, logs, and events. Try it out instantly with GreptimeCloud, a fully-managed DBaaS solution—no deployment needed!
The Edge-Cloud Integrated Solution combines multimodal edge databases with cloud-based GreptimeDB to optimize IoT edge scenarios, cutting costs while boosting data performance.
Star us on GitHub or join GreptimeDB Community on Slack to get connected.