Files
ldb/README.md

1.7 KiB
Raw Blame History

9.1 Kvstore

需求

  1. ntyco需要作为kvstore的submodule,通过git clone一次下载。 完成
  2. README需要包含编译步骤测试方案与可行性性能数据。
  3. 全量持久化保存数据集。 BUG FIX完成
  4. 持久化的性能数据。
  5. 特殊字符可以解决redis的resp协议。 完成
简单字符串
+OK\r\n
错误
-ERR message\r\n
整数
:1000\r\n
批量字符串
$6\r\nfoobar\r\n
数组 
*2\r\n$3\r\nfoo\r\n$3\r\nbar\r\n
  1. 实现配置文件把日志级别端口ip主从模式持久化方案。 完成
  2. 持久化落盘用io_uring加载配置文件用mmap。
  3. 主从同步的性能,开启与关闭性能做到。
  4. 主从同步600w条,出现的coredump。
  5. 主从同步用ebpf实现。
  6. 内存池测试qps与虚拟内存物理内存。
  7. 实现一个内存泄露检测组件。

环境安装与编译

# xml
sudo apt install libxml2 libxml2-dev
# hiredis client
sudo apt install -y libhiredis-dev

git clone git@gitlab.0voice.com:lianyiheng/9.1-kvstore.git
cd 9.1-kvstore/
make

测试

面试题

  1. 为什么会实现kvstore使用场景在哪里
  2. reactor, ntyco, io_uring的三种网络模型的性能差异
  3. 多线程的kvstore该如何改进
  4. 私有协议如何设计会更加安全可靠?
  5. 协议改进以后,对已有的代码有哪些改变?
  6. kv引擎实现了哪些
  7. 每个kv引擎的使用场景以及性能差异
  8. 测试用例如何实现并且保证代码覆盖率超过90%
  9. 网络并发量如何qps如何
  10. 能够跟哪些系统交互使用?

架构设计

image