1.7 KiB
1.7 KiB
9.1 Kvstore
需求
- ntyco需要作为kvstore的submodule,通过git clone一次下载。 完成。
- README需要包含编译步骤,测试方案与可行性,性能数据。 完成。
- 全量持久化保存数据集。 BUG FIX,完成。
- 持久化的性能数据。
- 特殊字符,可以解决redis的resp协议。 完成。
- 实现配置文件,把日志级别,端口ip,主从模式,持久化方案。 完成。
- 持久化落盘用io_uring,加载配置文件用mmap。 完成。
- 主从同步的性能,开启与关闭性能做到。
- 主从同步600w条,出现的coredump。
- 主从同步用ebpf实现。
- 内存池测试qps与虚拟内存,物理内存。
- 实现一个内存泄露检测组件。 完成。
环境安装与编译
# xml
sudo apt install libxml2 libxml2-dev
# hiredis client
sudo apt install -y libhiredis-dev
# bpftrace
sudo apt install -y bpftrace
git clone git@gitlab.0voice.com:lianyiheng/9.1-kvstore.git
cd 9.1-kvstore/
git submodule update --init --recursive
./init.sh
make
测试
面试题
- 为什么会实现kvstore,使用场景在哪里?
- reactor, ntyco, io_uring的三种网络模型的性能差异?
- 多线程的kvstore该如何改进?
- 私有协议如何设计会更加安全可靠?
- 协议改进以后,对已有的代码有哪些改变?
- kv引擎实现了哪些?
- 每个kv引擎的使用场景,以及性能差异?
- 测试用例如何实现?并且保证代码覆盖率超过90%
- 网络并发量如何?qps如何?
- 能够跟哪些系统交互使用?