[发明专利]一种拟态redis数据库的输入输出代理方法和装置有效
| 申请号: | 202210708862.4 | 申请日: | 2022-06-22 |
| 公开(公告)号: | CN114780569B | 公开(公告)日: | 2022-09-16 |
| 发明(设计)人: | 王培磊;张汝云;邹涛;李顺斌;黄培龙 | 申请(专利权)人: | 之江实验室 |
| 主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/25;G06F16/27;H04L67/141;H04L69/16 |
| 代理公司: | 北京志霖恒远知识产权代理事务所(普通合伙) 11435 | 代理人: | 奚丽萍 |
| 地址: | 311121 浙江*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 拟态 redis 数据库 输入输出 代理 方法 装置 | ||
1.一种拟态redis数据库的输入输出代理方法,其特征在于,包括拟态redis数据库、拟态输入输出代理容器和裁决器,所述拟态redis数据库中包括至少三个运行有redis服务器进程的数据库容器;所述拟态输入输出代理容器中包括一个伪服务器模块、一个裁决器交互模块和不少于三个数据库交互模块;所述裁决器交互模块与裁决器相连接;所述数据库交互模块与数据库容器相连接;所述方法具体包括如下步骤:
S1、初始化阶段:所述伪服务器模块、裁决器交互模块和数据库交互模块作为独立进程运行,所述伪服务器模块与裁决器交互模块、数据库交互模块之间构建进程间通信的数据传输通道;
S2、伪服务器模块接收用户发起的建立连接请求,创建一个与用户绑定的套接字并建立连接,同时保持用户连接的状态信息;
S3、伪服务器模块接收到用户发起的命令请求,更新用户连接的状态信息,根据命令请求的类型的定义方式,得到命令请求的类型,并启动命令请求的类型对应的响应模式;根据响应模式,伪服务器执行相应的操作;
S4、伪服务器模块执行动态数据同步;
具体包括如下步骤:
S41、伪服务器模块维护一个公共键空间,所述公共键空间保存一系列的键值对,所述键值对中的键与实际redis数据库当中的键一一对应,所述键值对当中的值保存了同步状态;
S42、伪服务器模块维护一个公共键空间的迭代器,所述迭代器用于遍历所述公共键空间当中的键值对;
S43、伪服务器模块周期性调用所述迭代器,获取到所述公共键空间当中的键值对,并根据所述键值对中的值所保存的同步状态决定是否进行同步动作;
根据同步状态决定是否进行同步,判断标准采用随机信用衰减机制,所述随机信用衰减机制具体包括如下步骤:
S431、伪服务器模块维护的所述公共键空间新增键值对时,调用随机数生成器生成一个随机数,将所述随机数保存在对应键的同步状态当中;
S432、伪服务器模块通过所述迭代器获取到公共键空间当中待处理的键值对,按照预设的步长对所述的同步状态中保存的随机数进行衰减;
S433、衰减后的随机数数值小于设定阈值,则对待处理的键进行同步,同步完成后重新生成一个随机数,并保存到同步状态当中;
S434、衰减后的随机数数值不小于设定阈值,则伪服务器模块调用迭代器获取下一个待处理键值对;
S44、对需要进行同步的键,伪服务器模块通过多个数据库交互模块分别获得所述键在各个数据库中所对应的数据值,伪服务器模块将所述各个数据库中所对应的数据值通过裁决器交互模块提交给裁决器进行裁决并获得裁决结果,伪服务器模块再根据裁决结果对各个数据库中所对应的数据值进行更新,完成数据同步工作。
2.如权利要求1所述的一种拟态redis数据库的输入输出代理方法,其特征在于:所述数据库容器与所述数据库交互模块的数量相同。
3.如权利要求1所述的一种拟态redis数据库的输入输出代理方法,其特征在于:步骤S2中所述状态信息包括套接字描述符、用户名称、用户身份认证信息、用户输入缓冲区和输出缓冲区。
4.如权利要求1所述的一种拟态redis数据库的输入输出代理方法,其特征在于:步骤S3中所述命令请求的类型的定义方式包括编译前定义和运行时定义;所述编译前定义具体包括在代码开发阶段人为设定各种redis交互命令的命令类型;所述运行时定义用户在发送命令请求时增加一个命令选项,伪服务器模块根据所述命令选项判断命令请求的类型。
5.如权利要求1所述的一种拟态redis数据库的输入输出代理方法,其特征在于:步骤S3中所述响应模式包括普通模式和拟态模式;
S31、普通模式下,伪服务器基于信用分机制选择其中一个数据库交互模块,通过数据库交互模块使用户与一个运行有redis服务器进程的数据库容器进行间接直连;
S32、拟态模式下,伪服务器将用户发起的命令请求同时分发给不少于三个数据库交互模块,伪服务器模块获取到的数据库交互模块响应结果后通过裁决器交互模块交由裁决器进行裁决,伪服务器模块获取到裁决结果后对用户进行响应。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于之江实验室,未经之江实验室许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210708862.4/1.html,转载请声明来源钻瓜专利网。





