This project was focusing on designing and implementing a relational database engine from scratch. Key contributions to the project include:
-
Database Architecture and Design:
- Played an integral role in defining the overall architecture and modular design of the database engine.
- Ensured the design adhered to principles of scalability, maintainability, and performance optimization.
-
Memory and Disk Management:
- Implemented an efficient buffer management system for caching frequently accessed pages.
- Designed file handling and disk storage mechanisms to optimize data retrieval and persistence.
-
Indexing with B+ Trees:
- Developed a B+ tree-based indexing mechanism to enable fast and efficient query processing.
- Integrated indexing with storage management to handle large datasets and ensure consistency.
-
SQL-Like Statement Support:
- Designed and implemented support for SQL-like DDL (e.g., table creation) and DML (e.g., insert, delete, update) statements.
- Created a parser to translate user commands into low-level database operations.
- Unit and Integration Tests:
- Designed and executed a suite of tests covering core functionalities, including concurrency, indexing, and file handling.
- Identified and resolved edge cases to ensure robust and error-free database operations.
- Implemented thread-safe operations using reader-writer locks for concurrent data access, ensuring database reliability in multi-threaded environments.
- Utilized CMake for cross-platform builds and organized modular components for efficient collaboration.
- Followed coding standards and documentation practices to enhance code readability and maintainability.
This database serves as a foundation for further exploration of database systems and algorithms, showcasing a comprehensive understanding of relational database design.