(19)国家知识产权局
(12)发明 专利
(10)授权公告 号
(45)授权公告日
(21)申请 号 202210708862.4
(22)申请日 2022.06.22
(65)同一申请的已公布的文献号
申请公布号 CN 114780569 A
(43)申请公布日 2022.07.22
(73)专利权人 之江实验室
地址 311121 浙江省杭州市余杭区之江实
验室南湖总部
(72)发明人 王培磊 张汝云 邹涛 李顺斌
黄培龙
(74)专利代理 机构 北京志霖恒远知识产权代理
事务所(普通 合伙) 11435
专利代理师 奚丽萍
(51)Int.Cl.
G06F 16/23(2019.01)
G06F 16/25(2019.01)G06F 16/27(2019.01)
H04L 67/141(2022.01)
H04L 69/16(2022.01)
(56)对比文件
CN 114500114 A,202 2.05.13
WO 2021179449 A1,2021.09.16
CN 114500114 A,202 2.05.13
CN 111885124 A,2020.1 1.03
CN 107360135 A,2017.1 1.17
CN 110545260 A,2019.12.0 6
CN 113542068 A,2021.10.2 2
仝青等.拟态防御Web服 务器设计与实现.
《软件学报》 .2017,(第04期),
Ali AlSabeh 等. 《Levera ging SONiC
Functionalities in Disaggregated Netw ork
Switches》 . 《IE EE》 .2020,
审查员 刘莹
(54)发明名称
一种拟态redis数据库的输入输出代理方法
和装置
(57)摘要
本发明公开了一种拟态redi s数据库的输入
输出代理方法和装置, 通过伪服务器模块保证跟
原生redis的对外接口一致, 从而便于移植到任
意redis应用场景中; 通过独立的进程实现内部
各个模块的隔离, 方便独立开发、 维护和扩展; 并
且将同步功能集成到输入输出代理当中, 从而实
现资源复用; 针对同步功能, 巧妙利用随机信用
衰减机制, 可以保证同步功能进行的同时兼顾资
源的节省。
权利要求书2页 说明书7页 附图3页
CN 114780569 B
2022.09.16
CN 114780569 B
1.一种拟态redis数据库的输入输出代理方法, 其特征在于, 包括拟态redis数据库、 拟
态输入输出代理容器和裁决器, 所述拟态redis数据库中包括至少三个运行有redis服务器
进程的数据库容器; 所述拟态输入输出代理容器中包括一个伪服务器模块、 一个裁决器交
互模块和 不少于三个数据库交互模块; 所述裁决器交互模块与裁决器相连接; 所述数据库
交互模块与数据库容器相连接; 所述方法具体包括如下步骤:
S1、 初始化阶段: 所述伪服务器模块、 裁决器交互模块和数据库交互模块作为独立进程
运行, 所述伪服务器模块与裁决器交互模块、 数据库交互模块之间构建进程间通信的数据
传输通道;
S2、 伪服务器模块接收用户发起的建立连接请求, 创建一个与用户绑定的套接字并建
立连接, 同时保持用户连接的状态信息;
S3、 伪服务器模块接收到用户发起的命令请求, 更新用户连接的状态信息, 根据命令请
求的类型的定义方式, 得到命令请求的类型, 并启动命令请求的类型对应的响应模式; 根据
响应模式, 伪服 务器执行相应的操作;
S4、 伪服务器模块执 行动态数据同步;
具体包括如下步骤:
S41、 伪服务器模块维护一个公共键空间, 所述公共键空间保存一系列的键值对, 所述
键值对中的键与实际redis数据库当中的键一一对应, 所述键值对当中的值保存了同步状
态;
S42、 伪服务器模块维护一个公共键空间的迭代器, 所述迭代器用于遍历所述公共键空
间当中的键值对;
S43、 伪服务器模块周期性调用所述迭代器, 获取到所述公共键空间当中的键值对, 并
根据所述键值对中的值所保存的同步状态决定是否进行同步动作;
根据同步状态决定是否进行同步, 判断标准采用随机信用衰减机制, 所述随机信用衰
减机制具体包括如下步骤:
S431、 伪服务器模块维护的所述公共键空间新增键值对时, 调用随机数生成器生成一
个随机数, 将所述随机数保存在对应键的同步状态当中;
S432、 伪服务器模块通过所述迭代器获取到公共键空间当中待处理的键值对, 按照预
设的步长对所述的同步状态中保存的随机数进行衰减;
S433、 衰减后的随机数数值小于设定阈值, 则 对待处理的键进行同步, 同步完成后重新
生成一个随机数, 并保存到同步状态当中;
S434、 衰减后的随机数数值不小于设定阈值, 则伪服务器模块调用迭代器获取下一个
待处理键值对;
S44、 对需要进行同步的键, 伪服务器模块通过多个数据库交互模块分别获得所述键在
各个数据库中所对应的数据值, 伪服务器模块将所述各个数据库中所对应的数据值通过裁
决器交互模块提交给裁决器进 行裁决并获得裁决结果, 伪服务器模块再根据裁决结果对各
个数据库中所对应的数据值进行 更新, 完成数据同步工作。
2.如权利要求1所述的一种拟态redis数据库的输入输出代理方法, 其特征在于: 所述
数据库容器与所述数据库交 互模块的数量相同。
3.如权利要求1所述的一种拟态redis数据库的输入输出代理方法, 其特征在于: 步骤权 利 要 求 书 1/2 页
2
CN 114780569 B
2S2中所述状态信息包括套接字描述符、 用户名称、 用户身份认证信息、 用户输入缓冲区和输
出缓冲区。
4.如权利要求1所述的一种拟态redis数据库的输入输出代理方法, 其特征在于: 步骤
S3中所述命令请求的类型的定义方式包括编译 前定义和运行时定义; 所述编译 前定义具体
包括在代码开发阶段人为设定各种redis交互命令的命令类型; 所述运行时定义用户在发
送命令请求时增 加一个命令 选项, 伪服 务器模块 根据所述命令 选项判断命令请求的类型。
5.如权利要求1所述的一种拟态redis数据库的输入输出代理方法, 其特征在于: 步骤
S3中所述响应模式包括普通模式和拟态模式;
S31、 普通模式下, 伪服务器基于信用分机制选择其中一个数据库交互模块, 通过数据
库交互模块使用户与一个运行有redis服 务器进程的数据库容器进行间接直连;
S32、 拟态模式下, 伪服务器将用户发起的命令请求同时分发给不少于三个数据库交互
模块, 伪服务器模块 获取到的数据库交互模块响应结果后通过裁决器交互模块交由裁决器
进行裁决, 伪服 务器模块获取到 裁决结果后对用户进行响应。
6.一种拟态re dis数据库的输入输出代 理装置, 其特征在于, 包括存储器和一个或多个
处理器, 所述存储器中存储有 可执行代码, 所述一个或多个处理器执行所述可执行代码时,
用于实现权利要求1 ‑5中任一项所述的拟态 redis数据库的输入输出代理方法。
7.一种计算机可读存储介质, 其特征在于, 其上存储有程序, 该程序被处理器执行时,
实现权利要求1 ‑5中任一项所述的拟态 redis数据库的输入输出代理方法。权 利 要 求 书 2/2 页
3
CN 114780569 B
3
专利 一种拟态redis数据库的输入输出代理方法和装置
文档预览
中文文档
13 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共13页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-02-24 00:47:04上传分享