[发明专利]数据写请求处理方法、装置及分布式数据存储系统有效
申请号: | 201710080036.9 | 申请日: | 2017-02-14 |
公开(公告)号: | CN106878414B | 公开(公告)日: | 2019-06-07 |
发明(设计)人: | 徐锐波;程卓 | 申请(专利权)人: | 北京奇虎科技有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 北京市浩天知识产权代理事务所(普通合伙) 11276 | 代理人: | 宋菲;陈翠 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 请求 处理 方法 装置 分布式 存储系统 | ||
本发明公开了一种数据写请求处理方法、装置及分布式数据存储系统。其中,方法基于调用端发送的数据写请求向存储节点中写入数据,其中数据写请求包含主请求和至少一个子请求,方法包括:对于一个子请求,调用访问接口从全局变量中选择待写入数据的存储节点的存储节点地址,向存储节点发送子请求,其中将选择的存储节点地址保存至子请求的上下文中;从子请求的上下文中提取出所选择的存储节点地址,并保存至存储节点的上下文中;从存储节点的上下文中提取出存储节点地址,与存储节点建立连接,将数据写入到相应的存储节点,能够满足调用端的定制化要求向指定存储节点写入数据,实现了定制化的负载均衡,解决了KV存储的单点限制。
技术领域
本发明涉及计算机网络技术领域,具体涉及一种数据写请求处理方法、装置及分布式数据存储系统。
背景技术
在分布式数据存储系统中,一般会利用分布式组件来将调用端发送的数据写请求转发给存储引擎,其中,分布式组件为反向代理服务器,具体地,可以为Nginx服务器。对于KV存储来说,Nginx内置的负载均衡的策略,无论是round-robin,还是ip_hash,还是url_hash,都不能实现根据key来进行负载均衡的需求,举例说明,以分布式组件采用的是1Primary-1Replica Shard 的存储模式为例,这必然涉及到两次写存储的操作,而这两次的写入需要是两台完全不同的节点,但Nginx内置的负载均衡策略无法满足这样高度定制化的需求,其根本原因在于,Nginx的负载均衡策略将存储节点的地址等细节完全对外层屏蔽了,在编写http模块时不可能通过任何一个内置函数拿到某个存储节点的地址,也就是说这些细节对于开发者是透明的,从而限制了定制化的负载均衡策略的实现。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据写请求处理方法、数据写请求处理装置和相应的分布式数据存储系统。
根据本发明的一个方面,提供了一种数据写请求处理方法,该方法基于调用端发送的数据写请求向存储节点中写入数据,其中数据写请求包含主请求和至少一个子请求,方法包括:
对于每一个子请求,调用访问接口从全局变量中选择待写入数据的存储节点的存储节点地址,向存储节点发送子请求,其中将选择的存储节点地址保存至子请求的上下文中;
从子请求的上下文中提取出所选择的存储节点地址,并保存至存储节点的上下文中;
从存储节点的上下文中提取出存储节点地址,与存储节点建立连接,将数据写入到相应的存储节点。
根据本发明的另一方面,提供了一种数据写请求处理装置,该装置基于调用端发送的数据写请求向存储节点中写入数据,其中数据写请求包含主请求和至少一个子请求,装置包括:用于处理子请求的处理器;
用于处理子请求的处理器包括:
选择单元,适于对于每一个子请求,调用访问接口从全局变量中选择待写入数据的存储节点的存储节点地址;
子请求处理单元,适于向存储节点发送子请求,其中将选择的存储节点地址保存至子请求的上下文中;
提取单元,适于从子请求的上下文中提取出所选择的存储节点地址;
上下文写入单元,适于将提取出的存储节点地址保存至存储节点的上下文中;
连接单元,适于从存储节点的上下文中提取出存储节点地址,与存储节点建立连接;
数据写入单元,适于将数据写入到相应的存储节点。
根据本发明的另一方面,提供了一种分布式数据存储系统,包括:调用端、分布式组件和存储节点;其中,分布式组件包括上述数据写请求处理装置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710080036.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:汽车维修设备网络管理系统
- 下一篇:数据消费的负载均衡方法及装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置