Releases: aloima/tellydb
Releases · aloima/tellydb
v0.2.2
Release notes
It is a hot-fix release.
Optimizations and Fixes
- Fix invalid memory allocation control for string values on
SETcommand, it corrupts setting values - Use
mmap()for logging file mechanism, so remove redundant copying operations - Add free'ing all OpenSSL
- Add memory allocation errors to
SETcommand
Full Changelog: v0.2.1...v0.2.2
v0.2.1
Release notes
Optimizations and Fixes
- Remove thread queue states
- Add batching for handling transactions loop
- Integer alignment error of
ltoa()method (from #33) - Add many memory allocation errors for out-of-memory (from #36)
- Fix data race for transaction loop on killing
- Invalid free'ing memory block on
free_clients()method - Optimize handling I/O requests loop
New contributors
Full Changelog: v0.2.0...v0.2.1
v0.2.0
Release notes
Changes
- Move code standard to
C23 - Add
jemallocdependency for better memory operations - Add
gperfdependency for perfect hash method - Add building on MacOS and publishing to Docker CI workflows
Features
- Add extended integer/double support
- Complete installation via
Dockerfile - Add transaction queue
- Add full compatibility for MacOS
- Improve error handling
- Add I/O threads to handle terminating clients, reading data and converting them to processable commands, writing responses
Commands
- Add
CLIENT LISTcommand - Add
INCRBYandDECRBYcommands - Add multiple keys support to
INCRandDECRcommands
Optimizations and Fixes
- Replace B-Tree with HashTable for caching full database in memory (from #10)
- Replace mutex locking with thread queue for transactions handling
- Improve CPU cache and predicting branches (from #28)
- Add arena allocator
- Many optimizations for most of utility methods and commands
- Many fixes, especially memory leaks, for most of utility methods, commands and server
- Use perfect hash method for command searching
- Fix linear probing on
get_data()method
New contributors
Full Changelog: v0.1.9...v0.2.0
v0.1.9
Release notes
Features
- Add multiple database support
- Add catching
SIGTERMandSIGINTsignals for closing from a process manager - Add MacOS compatibility (from #2)
- Replace build system to
CMake
Commands
- Add
SELECTcommand - Add
HGETALL,HKEYSandHVALScommand - Add
ASargument to change types of values toSETcommand
Optimizations and Fixes
- Optimize and fix HashTable (from #3)
- Some minor performance optimizations about transactions
- Some minor fixes about database file
- Add command pipelining, so multiple commands can be executed in one iteration
- Replace multiplexing API to
epoll
Full Changelog: v0.1.8...v0.1.9
v0.1.8
Release notes
- Add
CLIENT KILL,CLIENT LOCKandCLIENT UNLOCKcommands - Add some error messages
- Replace
.tellylockwith file locking for checking server is opened or not - Many performance improvements and fixes
Full Changelog: v0.1.7...v0.1.8
v0.1.7
Release notes
- Add error handling and change memory allocations to aligned memory allocations for B-Tree (caching) to reduce CPU overhead
- Add authorization system
- Add
PWD,AUTH,APPENDandDELcommands - Deleting hash table and list from cache when they have no field/node
- Add DIRECT I/O to database file and logging file, so reduces most of system calls and CPU/kernel overhead
- Improve deleting algorithm of B-Tree, almost (?) done
- Add
.tellylockfile to check if server is opened or not - Minor performance optimizations
Full Changelog: v0.1.6...v0.1.7
v0.1.6
Release Notes
- Add RESP3 protocol support
- Add
AGE,SAVE,LASTSAVE,DBSIZE,BGSAVEandHELLOcommands - Delete
MEMORYcommand - Add partial deleting/balancing B-Tree
- Change database file structure
- Add saving Hash Table value to database file
- Remove DIRECT I/O because of errors and handling cost
- Many optimizations and fixes
- Add some errors to commands
Full Changelog: v0.1.5...v0.1.6
v0.1.5
Release Notes
- Add HDEL command and deleting field-value pair from hash table
- Update HLEN command for showing detailed length data
- Add TLS support and its configuration options
- Add saving/reading List data from database file
- Add MAX_LOG_LINES option to configuration file
- Add thread safety via mutex locks
- Many performance optimizations and fixes
Full Changelog: v0.1.4...v0.1.5
v0.1.4
Release Notes
- Add caching all keys (keyspace)
- Add partial deleting key-value pair from binary tree
- Many performance optimizations
- Many fixes
- Add LINDEX and EXISTS commands
- Add NX and XX arguments to SET command
- Add sections as arguments to INFO command
- Add parsing string values to configuration file and log file
Full Changelog: v0.1.3...v0.1.4
v0.1.3
Release Notes
- Add partial lists and partial hash table
- Fix inserting key-value pair to binary tree, it works properly
- Some performance improvements
- Add hash table and list commands
- Add GET argument to SET command
- Change optimization flag of compiler
Full Changelog: v0.1.2...v0.1.3