-
Notifications
You must be signed in to change notification settings - Fork 328
Google Summer of Code 2023
xiaomin tang edited this page Feb 7, 2023
·
2 revisions
- Mentor name: Ruihang Xia
- Mentor email: [email protected]
- Project type: 350 hours project
- Difficulty: advance
- Skill needed:
- Rust
- Description of project:
- This project is about providing a task runtime that are able to control CPU shares available to each task based on the upper-level context, like task group or task id. This is a fundamental building block for GreptimeDB to implement multi-tenants resource control mechanism.
- Steps to evaluate an applicant for the project: TBD
- What the first 2 weeks of work would look like during the internship:
- Get familiar with GreptimeDB's query engine and tenant system
- Understand how a runtime works and begin to think about how it would be implemented.
- Mentor name: Ruihang Xia
- Mentor email: [email protected]
- Project type: 350 hours project
- Difficulty: intermediate
- Skill needed:
- Rust
- Networking
- Description of project:
- The goal of this project is to implement a dynamic and convenient configure interface for GreptimeDB's resource management system.
- Steps to evaluate an applicant for the project: TBD
- What the first 2 weeks of work would look like during the internship:
- Get familiar with GreptimeDB's existing configuration framework
- Get familiar with GreptimeDB's public admin APIs
- Mentor name: Lei Huang
- Mentor email: [email protected]
- Project type: 350 hours project
- Difficulty: intermediate
- Skill needed:
- Rust
- Apache Arrow
- Description of project:
- Extend our query engine to be able to process dictionary encoded data format. This is useful for reading and computing columns with a limit value set.
- Steps to evaluate an applicant for the project: TBD
- What the first 2 weeks of work would look like during the internship:
- Get familiar with GreptimeDB's query engine
- Get familiar with Apache Arrow
- Mentor name: Lei Huang
- Mentor email: [email protected]
- Project type: 350 hours project
- Difficulty: intermediate
- Skill needed:
- Rust
- SQL
- Description of project:
- Duration type measures a range of time in either seconds, milliseconds, micro seconds or nanoseconds. And Interval counts days between two time. They are powerful types to help modeling real-world time series scenarios.
- What the first 2 weeks of work would look like during the internship:
- Get familiar with GreptimeDB's query engine
- Get familiar with GreptimeDB's type system
- Mentor name: Yingwen Yang
- Mentor email: [email protected]
- Project type: 350 hour project
- Difficulty: advance
- Description of project
- Implement TRUNCATE TABLE for the database. TRUNCATE TABLE removes all rows from a table. It is similar to the DELETE statement with no WHERE clause but is faster than deleting by row.
- Skills needed
- Rust
- Steps to evaluate an applicant for the project
- Build and run the database in standalone mode
- Add a new variant (Truncate) to the RegionMetaAction in storage/src/manifest/action.rs
- Fix all compiler errors
- Add a new unittest to the tests mod in storage/src/manifest/region.rs that writes the RegionMetaAction::Truncate action to the manifest and loads it from the manifest
- Open a pull request against greptimedb:develop branch with a branch that you created from your forked repo
- Mentor name: Yingwen Yang
- Mentor email: [email protected]
- Project type: 350 hour project
- Difficulty: intermediate
- Skills needed
- Rust
- Description of project
- Test the storage engine with fault injection.
- Use fail-rs to inject fail points to the storage engine and trigger them in the unit test.
- Implement a unit test framework to drive the fault injection tests.
- Add more test cases
- Steps to evaluate an applicant for the project
- Build and run the database in standalone mode
- Use fail-rs to inject a fail point to the storage engine storage/src