Overview
"Open Source Promotion Plan" is initiated and supported by the Institute of Software, Chinese Academy of Sciences. As a summer open-source event specially designed for students, this event not only ignites students' passion for the open-source spirit but also nurtures numerous emerging tech talents, injecting vitality into the open-source community. Through practical experience, participants can proficiently master the technical skills of open-source software development and maintenance, gain an early sense of how written code leaps into real life, and truly appreciate the joy of code implementation.
Project Introduction
GreptimeDB has handpicked three challenging projects for this year's OSPP, eager to ignite a tech spark with fellow students. What's thrilling is the sheer enthusiasm and perseverance from the students, bringing all three projects to a successful close and showcasing their potential and prowess as the upcoming tech whizzes!
Implement support for Duration
and Interval
data types
Description: The Duration
data type measures specific types of time, which can be represented in seconds, milliseconds, microseconds, or nanoseconds. The Interval
data type represents time differences by calculating the number of days between two points in time. These data types are extremely useful in representing and modeling real-world time series scenarios.
Student: Wei Zou
Issue: https://github.com/GreptimeTeam/greptimedb/issues/1886
Related PRs:
- https://github.com/GreptimeTeam/greptimedb/pull/2265
- https://github.com/GreptimeTeam/greptimedb/pull/2180
- https://github.com/GreptimeTeam/greptimedb/pull/2146
- https://github.com/GreptimeTeam/greptimedb/pull/2064
- https://github.com/GreptimeTeam/greptimedb/pull/2117
- https://github.com/GreptimeTeam/greptimedb/pull/1952
Mentor: Lei Huang
Words from Mentor: Zou Wei implemented the Interval
and Duration
data types for GreptimeDB, along with the write of related computational functions. His contributions significantly enriched the functionality of GreptimeDB, making it more suitable for the storage and processing of time-related data, and enhancing user experience and data processing efficiency.
In addition to his contributions to the functionality of GreptimeDB, Zou Wei also made significant efforts to improve its quality and reliability. By adding numerous test cases for the Interval
and Duration
data types, he further ensured the stability of the new features, identified several historical bugs, and provided regression testing for potential future issues.
In just a few months, Zou Wei has contributed a total of 26 PRs to GreptimeDB, not only completing the OSPP project but also gradually delving into database core modules like the storage engine, becoming one of the core developers of GreptimeDB.
Implement the syntax
and computation for the sliding sampling window function
Description: Querying and aggregating data over a given length of time is a common query pattern in time-series data, such as the Range Selector in PromQL
. GreptimeDB plans to implement similar capabilities in the SQL
interface.
Unlike the WINDOW syntax
, the sliding sampling window function calculates at a fixed step and range. For example, querying the weekly average temperature of each day; the query's step is one day (daily temperature), and each calculation uses data from the past week to calculate the average. This project will start by extending the SQL Parser, defining and implementing the syntax for sliding sampling window functions, then expanding the logic planner to generate plans for related statements, and finally implementing support for common aggregation operators.
Student: Jingdi Wu
Issue: https://github.com/GreptimeTeam/greptimedb/issues/1662
Related PRs:
- https://github.com/GreptimeTeam/greptimedb/pull/2138
- https://github.com/GreptimeTeam/greptimedb/pull/2229
- https://github.com/GreptimeTeam/greptimedb/pull/2557
- https://github.com/GreptimeTeam/greptimedb/pull/2664
- https://github.com/GreptimeTeam/greptimedb/pull/2697
- https://github.com/GreptimeTeam/greptimedb/pull/2770
- https://github.com/GreptimeTeam/docs/pull/618
Mentor: Ruihang Xia
Words from Mentor: Jingdi made notable contributions to GreptimeDB by completing several critical tasks, significantly enhancing its functionality. During his involvement in the Range query
project, he skillfully managed the implementation process from the parser stage
to the operator. His outstanding performance led to an internship with the GreptimeDB team, where he further improved system observability, crucially strengthening its stability and reliability.
Implement the Truncate Table
/Clear table function in GreptimeDB
Description: Implement the TRUNCATE TABLE
feature for GreptimeDB; TRUNCATE TABLE
removes all rows from a table. It is similar to a DELETE statement
without a WHERE clause
but is faster than row-by-row deletion
. The implementation of this feature will enhance the performance of GreptimeDB.
Student: Su Hao
Related PRs:
- https://github.com/GreptimeTeam/greptimedb/pull/1932
- https://github.com/GreptimeTeam/greptimedb/pull/2002
- https://github.com/GreptimeTeam/greptimedb/pull/2090
- https://github.com/GreptimeTeam/greptimedb/pull/2097
- https://github.com/GreptimeTeam/greptimedb/pull/2335
- https://github.com/GreptimeTeam/greptimedb/pull/2414
Mentor: Yingwen Yang
Words from Mentor: Su Hao has a solid engineering background, with good code readability and adherence to community standards. He also wrote unit tests and SQL integration tests to ensure the reliability of the code during the implementation of this feature. Meanwhile, as the community was undergoing a large-scale restructuring and developing a new storage engine, he actively assisted in porting this feature to the new engine, significantly reducing the community's workload.
Special thanks to the organizers of the Open Source Promotion Plan. We look forward to meeting more outstanding students in the future.
Call for global contributors
Join the adventure with GreptimeDB, our Rust-written, open-source database! If you have a keen interest in Rust or database development, GreptimeDB might be a good starting point. It’s a great opportunity to learn and grow alongside our skilled database development team.
As a pretty young project, we're proud that GreptimeDB soared to GitHub Global Trending No.1 in its first open-source week last year. We're thrilled to have welcomed global contributors since then, with two of them becoming our committers.
Check us out on GitHub and you'll find some good first issues
to kickstart your involvement.
If you encounter any technical issues or questions, free feel to join our Slack community. Both our team and our community members will help you as soon as possible. All contributors receive exclusive Greptime SWAG! 🎁 Let's innovate and grow together. Check us out and let's get things rolling!