{"repo":"luigitni/simpledb","free":true,"listed":false,"github":"https://github.com/luigitni/simpledb","clone":"git clone https://github.com/luigitni/simpledb.git","description":"Go implementation of SimpleDB, a basic RDBMS described by the \"Database Design and Implementation\" book by Edward Sciore","language":"Go","stars":39,"topics":["database","educational-project","rdbms","sql"],"license":null,"category":"databases-storage","readme_excerpt":"SimpleDB Overview SimpleDB is a Go implementation of a basic database system, originally implemented as described by the book \"Database Design and Implementation\" by Edward Sciore. The goal of the project is to serve as a learning tool for understanding fundamental database concepts as we slowly diverge and expand from the original design by adding features and architectural sophistications. The project started as a Go port of the original Java implementation described in the book. While maintaining the educational value of SimpleDB, we are continuously refactoring the codebase to better align with Go project structures and idioms. Major divergencies from the original SimpleDB Storage engine The storage engine has been completely redesigned around a slotted page architecture. Each 8KB page is divided into three sections: - a header containing metadata and slot entries - a data section growing from the end towards the beginning - a special section for index-specific data. The page header tracks block numbers, page types (heap/btree), slot counts, and space management information. Records are stored with transaction-aware headers containing xmin/xmax information, providing the foundation for future MVCC implementation. The engine uses Go's unsafe package for zero-copy reading of fixed-length values, optimizing performance through direct memory access. Write-Ahead Logging and Buffer Management The buffer manager maintains a pre-allocated pool of buffers, coordinating page access","default_branch":null,"files":null,"tree":[],"storefront":"/r/luigitni","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/luigitni/simpledb/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}