用于分布式数据存储系统的设备、系统及方法技术方案

技术编号:8326005 阅读:150 留言:0更新日期:2013-02-14 08:57
本发明专利技术公开了一种用于分布式数据存储系统的数据管理设备,该分布式数据存储系统包括多个数据服务器,该数据管理设备包括:监控器,被配置为至少获知多个数据服务器各自的负载状态信息和网络延迟信息;数据接口,被配置为接收来自数据请求方的数据请求,并将与数据请求对应的被请求数据返回至数据请求方;选择器,被配置为至少基于监控器所获知的多个数据服务器各自的负载状态信息和网络延迟信息,选择多个数据服务器之一来处理数据请求,其中多个数据服务器均存储数据请求对应的被请求数据;以及数据读取器,被配置为从选择器所选择的数据服务器读取被请求数据,并将被请求数据发送给数据接口。

【技术实现步骤摘要】

本专利技术涉及数据存储
,具体涉及一种用于分布式数据存储系统的数据管理设备及方法,以及一种用于分布式数据存储的数据管理系统。
技术介绍
目前数据库的种类很多,比较流行的一种是基于分布式文件存储的数据库,所谓基于分布式文件存储的数据库,主要是指为了保证数据的可靠性和可扩展性,在多个数据服务器上分别存储数据,将多个数据服务器共同看成一个完整的数据库,共同完成数据的写入和读取。因为数据库的具体形式有很多,因此基于分布式文件存储的数据库也有很多。下面仅以常用的一种基于分布式文件存储的数据库MongoDB为例进行说明。MongoDB (Data Base,数据库)是介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。因此,在很多涉及到数据库的业务都使用了 MongoDB0在MongoDB中本身有一个角色称作Mongos,负责接收所有客户端的数据访问请求,还有一个角色称作Mongod,负责保存实际的数据。为了数据可靠性,同一份数据会保存到多个Mongod服务器(即数据服务器的一种)上,多个Mongod称作一个副本集replicaset,彼此之间保证数据一致。当web服务器获取数据时,向mongos发起请求,mongos会在replicaset的多个mongod服务器中,随机选取一台mongod服务器读取数据,然后将数据返回给web服务器。在现有的技术方案中,采用的是随机选择的方式,即所有web服务器获取数据的请求被均勻的分散到所有mongod服务器上。在其他基于分布式文件存储的数据库中,也与MongoDB类似,多是采用随机方式选取一台数据服务器读取数据。上述这种随机选择一台数据服务器读取数据的方式,缺少灵活实用性,尤其是当数据服务器数量较多、部署环境较复杂时,随机选择的方式更是容易导致从数据服务器读取数据的效率较低。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的用于分布式数据存储的数据管理设备和相应的用于分布式数据存储的数据读取方法。依据本专利技术的一个方面,提供了一种用于分布式数据存储系统的数据管理设备,该分布式数据存储系统包括多个数据服务器,该数据管理设备包括监控器,被配置为至少获知多个数据服务器各自的负载状态信息和网络延迟信息;数据接口,被配置为接收来自数据请求方的数据请求,并将与数据请求对应的被请求数据返回至数据请求方;选择器,被配置为至少基于监控器所获知的多个数据服务器各自的负载状态信息和网络延迟信息,选择多个数据服务器之一来处理数据请求,其中多个数据服务器均存储数据请求对应的被请求数据;以及数据读取器,被配置为从选择器所选择的数据服务器读取被请求数据,并将被请求数据发送给所述数据接口。可选的,监控器包括检测模块,被配置为向多个数据服务器分别发送查询请求,以及接收多个数据服务器各自返回的响应数据,响应数据中至少包括对应的数据服务器的负载状态信息;延迟模块,被配置为根据所述多个数据服务器各自对应的查询请求的发送时间和响应数据的接收时间,获得多个数据服务器各自的网络延迟信息。可选的,如果数据读取器从选择器选择的数据服务器读取被请求数据失败,则选择器还根据多个数据服务器中的其他数据服务器各自的负载状态信息和网络延迟信息,选择其他数据服务器当中的另一个数据服务器来处理数据请求;以及数据读取器还从另一个数据服务器读取与数据请求对应的被请求数据。可选的,选择器包括第一选择模块,被配置为至少基于监控器所获知的多个数据服务器各自的负载状态信息和预设的负载状态允许条件,选择满足负载状态允许条件的第一数据服务器集合;在第一数据服务器集合中,根据其中各数据服务器的网络延迟信息,选 择网络延迟最低的数据服务器来处理所述数据请求。可选的,选择器包括第二选择模块,被配置为至少基于监控器所获知的多个数据服务器各自的网络延迟信息和预设的网络延迟允许条件,选择满足网络延迟允许条件的第二数据服务器集合;在第二数据服务器集合中,根据其中各数据服务器的负载状态信息,选择负载最低的数据服务器处理所述数据请求。可选的,数据服务器的负载状态信息包括下述信息中的一种或多种数据服务器现有的并发连接数;数据服务器的CPU负载指标;数据服务器的磁盘负载指标。依据本专利技术的另一个方面,提供了一种用于分布式数据存储系统的数据管理方法,该分布式数据存储系统包括多个数据服务器,该数据管理方法包括至少获知多个数据服务器各自的负载状态信息和网络延迟信息;接收来自数据请求方的数据请求;至少基于所获知的多个数据服务器各自的负载状态信息和网络延迟信息,选择多个数据服务器之一来处理数据请求,其中,多个数据服务器均存储所述数据请求对应的被请求数据;从所选择的数据服务器读取被请求数据;以及将被请求数据返回至数据请求方。依据本专利技术的又一方面,提供了一种用于分布式数据存储的数据管理系统,包括根据本专利技术的数据管理设备,以及多个数据服务器,所述多个数据服务器均存储有数据请求对应的被请求数据。依据本专利技术的再一方面,提供了一种用于分布式数据存储系统的数据管理设备,该分布式数据存储系统包括多个Mongod服务器,该数据管理设备包括Mongos装置,所述Mongos装置具体包括监控器,被配置为至少获知分布在至少两个机房的多个Mongod服务器各自的网络延迟信息和负载状态信息;数据接口,被配置为接收来自应用服务器的数据请求,并将与数据请求对应的被请求数据返回至应用数据服务器;选择器,被配置为至少基于监控器所获知的分布在至少两个机房的多个Mongod服务器各自的网络延迟信息和负载状态信息,选择多个Mongod服务器之一来处理数据请求,多个Mongod服务器均存储所述数据请求对应的被请求数据;以及数据读取器,被配置为从选择器选择的Mongod服务器读取被请求数据,并将所述被请求数据发送给所述数据接口。依据本专利技术的又一方面,提供了一种用于分布式数据存储系统的数据管理设备,该分布式数据存储系统包括多个数据服务器,该数据管理设备包括监控器,被配置为至少获知所述多个数据服务器各自的负载状态信息和物理位置标签;数据接口,被配置为接收来自数据请求方的数据请求,并将与所述数据请求对应的被请求数据返回至所述数据请求方;选择器,被配置为至少基于所述监控器所获知的多个数据服务器各自的负载状态信息和物理位置标签,选择所述多个数据服务器之一来处理所述数据请求,其中所述多个数据服务器均存储所述数据请求对应的被请求数据;数据读取器,被配置为从所述选择器所选择的数据服务器读取所述被请求数据,并将所述被请求数据发送给所述数据接口。可选的,所述选择器包括第三选择模块,被配置为至少基于所述监控器所获知的多个数据服务器各自的负载状态信息和预设的负载状态允许条件,选择满足所述负载状态允许条件的第三数据服务器集合;在所述第三数据服务器集合中,根据其中各数据服务器的物理位置标签,选择特定机房内部的数据服务器来处理所述数据请求。可选的,所述选择器包括第四选择模块,被配置为至少基于所述监控器所获知的多个数据服务器各自的物理位置标签,选择处于特定机房内部的第四数据服务器集合;在所述第四数据服务器集合中,根据其中各数据服务器的负载状态信息,选择负载最低的数 据服本文档来自技高网
...

【技术保护点】
一种用于分布式数据存储系统的数据管理设备,该分布式数据存储系统包括多个数据服务器,该数据管理设备包括:监控器,被配置为至少获知所述多个数据服务器各自的负载状态信息和网络延迟信息;数据接口,被配置为接收来自数据请求方的数据请求,并将与所述数据请求对应的被请求数据返回至所述数据请求方;选择器,被配置为至少基于所述监控器所获知的多个数据服务器各自的负载状态信息和网络延迟信息,选择所述多个数据服务器之一来处理所述数据请求,其中所述多个数据服务器均存储所述数据请求对应的被请求数据;以及数据读取器,被配置为从所述选择器所选择的数据服务器读取所述被请求数据,并将所述被请求数据发送给所述数据接口。

【技术特征摘要】
1.一种用于分布式数据存储系统的数据管理设备,该分布式数据存储系统包括多个数据服务器,该数据管理设备包括 监控器,被配置为至少获知所述多个数据服务器各自的负载状态信息和网络延迟信息; 数据接口,被配置为接收来自数据请求方的数据请求,并将与所述数据请求对应的被请求数据返回至所述数据请求方; 选择器,被配置为至少基于所述监控器所获知的多个数据服务器各自的负载状态信息和网络延迟信息,选择所述多个数据服务器之一来处理所述数据请求,其中所述多个数据服务器均存储所述数据请求对应的被请求数据;以及 数据读取器,被配置为从所述选择器所选择的数据服务器读取所述被请求数据,并将所述被请求数据发送给所述数据接口。2.根据权利要求I所述的数据管理设备,所述监控器包括 检测模块,被配置为向所述多个数据服务器分别发送查询请求,以及接收所述多个数据服务器各自返回的响应数据,所述响应数据中至少包括对应的数据服务器的负载状态信息; 延迟模块,被配置为根据所述多个数据服务器各自对应的所述查询请求的发送时间和所述响应数据的接收时间,获得所述多个数据服务器各自的网络延迟信息。3.根据权利要求I或者2所述的数据管理设备,如果所述数据读取器从所述选择器选择的数据服务器读取被请求数据失败,则所述选择器还根据所述多个数据服务器中的其他数据服务器各自的负载状态信息和网络延迟信息,选择其他数据服务器当中的另一个数据服务器来处理所述数据请求;以及 所述数据读取器还从所述另一个数据服务器读取与所述数据请求对应的被请求数据。4.根据权利要求1-3中任一个所述的数据管理设备,所述选择器包括 第一选择模块,被配置为至少基于所述监控器所获知的多个数据服务器各自的负载状态信息和预设的负载状态允许条件,选择满足所述负载状态允许条件的第一数据服务器集合;在所述第一数据服务器集合中,根据其中各数据服务器的网络延迟信息,选择网络延迟最低的数据服务器来处理所述数据请求。5.根据权利要求1-3中任一个所述的数据管理设备,所述选择器包括 第二选择模块,被配置为至少基于所述监控器所获知的多个数据服务器各自的网络延迟信息和预设的网络延迟允许条件,选择满足所述网络延迟允许条件的第二数据服务器集合;在所述第二数据服务器集合中,根据其中各数据服务器的负载状态信息,选择负载最低的数据服务器处理所述数据请求。6.根据权利要求I至5中任一项所述的数据管理设备,所述数据服务器的负载状态信息包括下述信息中的一种或多种 所述数据服务器现有的并发连接数; 所述数据服务器的CPU负载指标; 所述数据服务器的磁盘负载指标。7.一种用于分布式数据存储系统的数据管理方法,该分布式数据存储系统包括多个数据服务器,该数据管理方法包括至少获知所述多个数据服务器各自的负载状态信息和网络延迟信息;接收来自数据请求方的数据请求;至少基于所获知的多个数据服务器各自的负载状态信息和网络延迟信息,选择所述多个数据服务器之一来处理所述数据请求,其中,所述多个数据服务器均存储所述数据请求对应的被请求数据;从所述选择的数据服务器读取所述被请求数据;以及将所...

【专利技术属性】
技术研发人员:桂勇哲陈超代兵朱超王超
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1