-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce a course of single-node kv storage engine #273
Comments
This suggestion sounds like to introduce a project 0. Do you want to use this self-written kv engine in the following project? |
If you simply want to build a storage engine, https://github.com/pingcap/talent-plan/blob/master/courses/rust/README.md is already offering such course. In Practical Networked Application course, you could build a Bitcask-like engine. I just took a look at current tinykv codebase. The storage provider needs to support column family and (maybe atomic) write batch. A fully-functional LSM storage engine with such capability, from my perspective, might need 3000+ LoC or more, which might be too much for a introductory course. At the same time, I believe single-node storage engine is mature enough that we do not need a separate course to introduce it to our students. There are already a lot of LSM-based storage engine projects for introductory purpose, which supports basic get, put and compaction. If you don’t like LSM-trees, you may also build a B-Tree based engine, which has already been covered in CMU database course. |
Consider the volume of the course and the original intention of the TinyKV, we provide an out-of-the-box storage engine, so students can focus on learning the structure of TiKV. Though I'm willing to see there is a storage engine course enriching TinyKV in the future. |
Hope to provide a beginner-friendly single-node version of the course for rookies.
Thank you!
The text was updated successfully, but these errors were encountered: