repositorypackage
0.0.0-20240910130940-2673d13b74ca
Repository: https://github.com/fireping32/zenodb.git
Documentation: pkg.go.dev
# README
ZenoDB
A lightweight, disk-based NoSQL key-value store implemented in Go.
Overview
This project implements a basic NoSQL key-value database from scratch in Go. It's designed to be simple and minimal, focusing on the core concepts of database implementation. The database uses a B-tree as its underlying data structure and implements disk-based storage with a page size of 4KB.
Features
- Disk-based storage
- 4KB page size
- Basic CRUD operations
- Persistence between restarts
- Freelist management for efficient space utilization
Components
- Database: Manages the program and is responsible for orchestrating transactions.
- Data Access Layer (DAL): Handles all disk operations and data organization on the disk.
- Freelist: Manages free and occupied pages to avoid fragmentation.
- Meta Page: Stores metadata about the database, including the freelist page number.
Getting Started
Prerequisites
Go 1.19
Usage
go run main.go
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License.