Skip to content

Release Notes - TinyStoreDB v0.1.0 (In-Progress Learning Project)

Pre-release
Pre-release

Choose a tag to compare

@raghavgh raghavgh released this 19 Jan 12:38
· 28 commits to master since this release

Release Date: 19/01/2025
Version: v0.1.0
Status: In-Progress (Not Ready for Production)
Repository: https://github.com/raghavgh/TinyStoreDB


Overview

We are excited to introduce the first version of TinyStoreDB v0.1.0, a simple, persistent key-value storage system created as a learning project. This version provides basic functionality for storing and retrieving string-based key-value pairs.
Please note that this project is still in progress and not yet operational for production use.


Key Features

1. Basic Key-Value Storage

  • Data is stored in a .bin file format.
  • Each key-value entry follows a structured format:
    • 4 bytes to store the length of the data.
    • Variable-length bytes for the encoded data type (using Go's GOB encoding).
    • Variable-length bytes for the actual data (key or value).
  • The same format is used for storing both keys and values.

2. Supported Operations

  • Set Operation (Set(key, value))
    Appends new key-value pairs to the binary storage file.
    Designed for efficient write operations with an append-only approach.

  • Get Operation (Get(key))
    Scans the storage file sequentially to retrieve values for given keys.
    Key comparisons are performed using their binary representation.

3. String-Based Key-Value Support

  • Currently, the database only supports StringKey and StringValue types.

Usage

To get started with TinyStoreDB:

1. clone the repo
2. check main.go, for trying out
db := client.NewTinyStoreDBClient()
db.Set("exampleKey", "exampleValue")
value := db.Get("exampleKey")
fmt.Println("Retrieved Value:", value)

Known Limitations

  • Limited Data Type Support:
    Only string keys and values are supported at this stage.

  • No Update or Delete Operations:
    The current version does not support modifying or removing existing key-value pairs.

  • Sequential Reads:
    Get operations currently perform full sequential scans, which may impact performance with larger datasets.


Upcoming Features

The next release will introduce update and delete operations to enhance data management capabilities.
These features will allow key-value modifications and removals while preserving the append-only storage model.


Project Status

TinyStoreDB is currently an experimental learning project.
It is under active development and not intended for production use.
The goal is to iteratively improve functionality while exploring different design concepts and optimizations.


Contribution Policy

At this time, TinyStoreDB is not open for external contributions.
Updates regarding contribution opportunities will be shared in future releases.


Contact

For inquiries or feedback, please reach out via: