Detail implementation in http://blog.handora.me/post/2018/03/2018-03-30-kvscan/
- [X] Page class, for bulk read from memory to reduce IO
- [X] DiskManaer class, for disk management
- [X] LRUreplacer class, for lru algorithm utility
- [X] BufferPool class, for memory page buffer managements
- [X] Server class, for save the mappings and support the concurrent read
- [X] Client class, for scan the mappings through bulk rpc
- [ ] Documents
- [ ] Client cache, reuse the bufferpoolmanager
- [ ] first100page, reduce overload of initial read
- [ ] meta tree, save meta which can be fetched easily
- [ ] rpc timeout handler
git clone https://github.com/Handora/KVScan.git kvscan
cd kvscan
git submodule init
git submodule update
mkdir build
cd build
cmake ..
make
# if you want to make with 4 threads
make -j 4
cd build
# generate with python3 and need improvement
python3 ../script/generate.py
python3 ../script/generate2.py
make check
# if you want to unit test *_test
cd build
python3 ../script/generate.py
python3 ../script/generate2.py
make *_test
# and so on
Waiting for completion