Skip to content

Releases: worthant/HandyDB

🌌 Version 1.1.1 - Test command to the limit

07 Jan 17:22
Compare
Choose a tag to compare

Features

  • Added flexible and clear logging for test command, so that it won't flood your termimal
  • Created "connection pool" kinda solution, where for each 200 requests it creates a new Client
    • avoids buffer overflow (if using too many requests per Client)
    • avoids TCP connection overuse (if using too many Clients for connections)

Well, now we can see true HandyDB vc Redis performance (with small logging overhead):

HandyDB testing 1 mil http set requests

> test set 1000000 http
Total time: 1.923722173s
Average time per set operation: 1.923µs
Number of different errors: 0

Redis

image

🚅 Version v1.1.0 - Lightning fast HandyDB with CLI & http

07 Jan 02:15
Compare
Choose a tag to compare

Features

  1. Removed Mutex, which speedup all the operations drastically (see below)
  2. Added network module with get_service and set_service - services for http get and set commands
  • it is working in customly configured Tokio environment
  • endpoints work using actix-web framework
  • CLI is running in the separate thread using thread::spawn
  1. Introduced test command for testing concurrency in CLI and http modes (using reqwest)
  2. Wrote a bunch of unit tests under the new tests module => everything is safe
  3. Used flamegraph for finding that Mutex hotspot => everything is fast
  4. Optimised everything, which gave insane results (from test command):
> test set 1000000     // CLI
Total time: 679.448453ms
Average time per set operation: 679ns
> test set 10000 http  // HTTP
Total time: 16.3966ms
Average time per set operation: 1.639µs
Number of errors: 0

For the reference: Redis vs HandyDB

1_000_000 requests completed in 13.86 seconds // Redis
1_000_000 requests completed in 1.64 seconds // HandyDB

🔑 Version v1.0.0 - Concurrent Key-Value Store

03 Jan 18:16
Compare
Choose a tag to compare

Features

  1. DashMap - fast & efficient HashMap concurrent implementation
  • allowes to access storage with multiple threads simultaneously
  • be aware, that this change might break some old implementations
  1. Set and Get commands (basically the database is working, now need to finish btree and http implementations)
  2. KvPair extendable model (planning to add timestamps to it for leaderboards in the future)

🔧 Version 0.1.1 - Fixed paddings on WIndows

02 Jan 19:35
Compare
Choose a tag to compare

This release introduces padding fix for Windows

  • removed println! and used \r for WIndows and \n for Linux
  • supports Winows and Linux (NO support for MacOS)

📣 Version 0.1.0 - Cross-platform CLI

02 Jan 15:21
Compare
Choose a tag to compare

HandyDB early release v0.1.0

Features

  • Cross-platform compatibility for Linux and Windows (NO support for macOS).
  • Easy-to-use CLI tool

Installation

  • Download the appropriate binary for your platform.

Linux

  • Unarchive the File:
tar -xzvf no-sql-rust-database-linux.tar.gz
  • Run the Application:
./no-sql-rust-database

Windows

  • just unarchive using 7-zip or WinRAR and then execute no-sql-rust-database.exe