上传者: 42149153
|
上传时间: 2022-05-24 23:45:51
|
文件大小: 53KB
|
文件类型: ZIP
kvstore
##背景
这是课程CS162的项目,分布式KV存储, 由C语言编写
##技术要点
网络请求服务:采用线程池加阻塞IO完成
缓存系统:采用LRU的淘汰策略
磁盘存储:每一项数据存储在一个文件中,存储数据的二进制格式
一致性算法: 采用二阶段提交协议
负载均衡算法: 一致性哈希,多副本存储
###模块设计
kvstore主要结构为主从结构,包括Master和Slave节点,每一个存储节点包括网络请求模块,数据存储模块,包括内存中的缓存和磁盘中的数据。Master节点
包括缓存,但不进行磁盘存储,同时进行请求转发。Slave节点包括缓存和磁盘存储。
####网络请求
网络请求模块采用的是线程池加阻塞IO,算是比较低效的部分。可以使用事件循环和回调提高网络请求效率。请求由4字节的消息长度加消息内容组成。
####缓存
缓存使用的是LRU淘汰策略。
####存储
kvstor