In memory Key Value store
Currently supports single threaded client-server communication. The underlying hashmap is not thread safe -- this will be changed later
Tested on my laptop installed with AMD Ryzen 7 5700U processor running the following software in a VM
Ubuntu 20.04.6 LTS
Linux 5.4.0-182-generic
GCC v11.4.0
To install all requirements[Tested on Ubuntu]:
sudo chmod +x install_dependencies_ubuntu.sh
./install_dependencies_ubuntu.sh
Default is to use the custom allocator. You need to pass the USE_CUSTOM_ALLOC=yes
flag like this make USE_CUSTOM_ALLOC=yes
. Check the documentation for liballoc on how to install it. You also need to set USE_CUSTOM_ALLOC
macro in sikv.h
to 1 or a value greater than zero
You may need to add /usr/local/lib
to your linker path with ldconfig
command -- This might require user with sudo
privileges as follows: sudo ldconfig /usr/local/lib/
Remember to replace main.o
with main.out
Remember to replace client.o
with client.out
NOTE: This will not run when using custom allocator(i.e USE_CUSTOM_ALLOC is set to value > 0) since Valgrind does not work well with mmap
make memcheck # server
make client_memcheck # client