a simple DBMS for DB course in ZJU with go
we use go mod to manage dependency, the mod name is minisql
- create a folder named data at the root position
go run main.go
- enjoy yourself! You can use
test
folder *.txt to run it, also you can fork and update it!
- Buffer Manager
- Catalog Manager
- Index Manager
- Record Manager
- Interpreter
- API
Interpreter, Catalog Manager ,API and Buffer Manager is implemented by cxz66666 , Index Manager is implemented by ezoiljy, and Record Manager, front-backend is implemented by Mr_Wolfram
-
Interpreter using lexer and tokenizer, which created by
goyacc
-
Catalog Manager use
msgp
to encode decode -
API and Interpreter use channel to share data
-
Buffer Manager use Mutex.lock to concurrency control, LRU and Two way linked list is used.
Front and backend is included in src/Front
and src/BackEnd
, but we don't ensure you can run it on you machine( because we don't debug it.... 🐛)