Releases: worthant/HandyDB
Releases · worthant/HandyDB
🌌 Version 1.1.1 - Test command to the limit
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
🚅 Version v1.1.0 - Lightning fast HandyDB with CLI & http
Features
- Removed
Mutex
, which speedup all the operations drastically (see below) - Added
network
module withget_service
andset_service
- services for httpget
andset
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
- Introduced
test
command for testing concurrency inCLI
andhttp
modes (usingreqwest
) - Wrote a bunch of unit tests under the new
tests
module => everything is safe - Used
flamegraph
for finding thatMutex
hotspot => everything is fast - 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
Features
DashMap
- fast & efficientHashMap
concurrent implementation
- allowes to access storage with multiple threads simultaneously
- be aware, that this change might break some old implementations
Set
andGet
commands (basically the database is working, now need to finish btree and http implementations)KvPair
extendable model (planning to add timestamps to it for leaderboards in the future)
🔧 Version 0.1.1 - Fixed paddings on WIndows
This release introduces padding fix for Windows
- removed
println!
and used\r
for WIndows and\n
for Linux - supports
Winows
andLinux
(NO support for MacOS)
📣 Version 0.1.0 - Cross-platform CLI
HandyDB early release v0.1.0
Features
- Cross-platform compatibility for
Linux
andWindows
(NO support formacOS
). - 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
orWinRAR
and then executeno-sql-rust-database.exe