Skip to content

Releases: aloima/tellydb

v0.2.2

13 Jan 12:13
143b20f

Choose a tag to compare

Release notes

It is a hot-fix release.

Optimizations and Fixes

  • Fix invalid memory allocation control for string values on SET command, 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 SET command

Full Changelog: v0.2.1...v0.2.2

v0.2.1

09 Jan 22:45
e2dac8f

Choose a tag to compare

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

20 Dec 22:24
0d53bf9

Choose a tag to compare

Release notes

Changes

  • Move code standard to C23
  • Add jemalloc dependency for better memory operations
  • Add gperf dependency 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 LIST command
  • Add INCRBY and DECRBY commands
  • Add multiple keys support to INCR and DECR commands

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

14 Aug 21:02
99329d7

Choose a tag to compare

Release notes

Features

  • Add multiple database support
  • Add catching SIGTERM and SIGINT signals for closing from a process manager
  • Add MacOS compatibility (from #2)
  • Replace build system to CMake

Commands

  • Add SELECT command
  • Add HGETALL, HKEYS and HVALS command
  • Add AS argument to change types of values to SET command

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

15 Feb 10:27
c3fb5e3

Choose a tag to compare

Release notes

  • Add CLIENT KILL, CLIENT LOCK and CLIENT UNLOCK commands
  • Add some error messages
  • Replace .tellylock with 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

24 Dec 20:38
0e6f484

Choose a tag to compare

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, APPEND and DEL commands
  • 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 .tellylock file to check if server is opened or not
  • Minor performance optimizations

Full Changelog: v0.1.6...v0.1.7

v0.1.6

02 Nov 18:41
0576f20

Choose a tag to compare

Release Notes

  • Add RESP3 protocol support
  • Add AGE, SAVE, LASTSAVE, DBSIZE, BGSAVE and HELLO commands
  • Delete MEMORY command
  • 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

13 Oct 13:02
3454fb7

Choose a tag to compare

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

04 Oct 17:35
ac71890

Choose a tag to compare

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

24 Sep 21:17
42dbb71

Choose a tag to compare

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