CN102932442A - 用于分布式数据存储***的设备、***及方法 - Google Patents
用于分布式数据存储***的设备、***及方法 Download PDFInfo
- Publication number
- CN102932442A CN102932442A CN2012104178184A CN201210417818A CN102932442A CN 102932442 A CN102932442 A CN 102932442A CN 2012104178184 A CN2012104178184 A CN 2012104178184A CN 201210417818 A CN201210417818 A CN 201210417818A CN 102932442 A CN102932442 A CN 102932442A
- Authority
- CN
- China
- Prior art keywords
- data
- data server
- server
- servers
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种用于分布式数据存储***的数据管理设备,该分布式数据存储***包括多个数据服务器,该数据管理设备包括:监控器,被配置为至少获知多个数据服务器各自的负载状态信息和网络延迟信息;数据接口,被配置为接收来自数据请求方的数据请求,并将与数据请求对应的被请求数据返回至数据请求方;选择器,被配置为至少基于监控器所获知的多个数据服务器各自的负载状态信息和网络延迟信息,选择多个数据服务器之一来处理数据请求,其中多个数据服务器均存储数据请求对应的被请求数据;以及数据读取器,被配置为从选择器所选择的数据服务器读取被请求数据,并将被请求数据发送给数据接口。
Description
技术领域
本发明涉及数据存储技术领域,具体涉及一种用于分布式数据存储***的数据管理设备及方法,以及一种用于分布式数据存储的数据管理***。
背景技术
目前数据库的种类很多,比较流行的一种是基于分布式文件存储的数据库,所谓基于分布式文件存储的数据库,主要是指为了保证数据的可靠性和可扩展性,在多个数据服务器上分别存储数据,将多个数据服务器共同看成一个完整的数据库,共同完成数据的写入和读取。因为数据库的具体形式有很多,因此基于分布式文件存储的数据库也有很多。
下面仅以常用的一种基于分布式文件存储的数据库MongoDB为例进行说明。MongoDB(Data Base,数据库)是介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。因此,在很多涉及到数据库的业务都使用了MongoDB。
在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服务器读取被请求数据,并将所述被请求数据发送给所述数据接口。
依据本发明的又一方面,提供了一种用于分布式数据存储***的数据管理设备,该分布式数据存储***包括多个数据服务器,该数据管理设备包括:监控器,被配置为至少获知所述多个数据服务器各自的负载状态信息和物理位置标签;数据接口,被配置为接收来自数据请求方的数据请求,并将与所述数据请求对应的被请求数据返回至所述数据请求方;选择器,被配置为至少基于所述监控器所获知的多个数据服务器各自的负载状态信息和物理位置标签,选择所述多个数据服务器之一来处理所述数据请求,其中所述多个数据服务器均存储所述数据请求对应的被请求数据;数据读取器,被配置为从所述选择器所选择的数据服务器读取所述被请求数据,并将所述被请求数据发送给所述数据接口。
可选的,所述选择器包括:第三选择模块,被配置为至少基于所述监控器所获知的多个数据服务器各自的负载状态信息和预设的负载状态允许条件,选择满足所述负载状态允许条件的第三数据服务器集合;在所述第三数据服务器集合中,根据其中各数据服务器的物理位置标签,选择特定机房内部的数据服务器来处理所述数据请求。
可选的,所述选择器包括:第四选择模块,被配置为至少基于所述监控器所获知的多个数据服务器各自的物理位置标签,选择处于特定机房内部的第四数据服务器集合;在所述第四数据服务器集合中,根据其中各数据服务器的负载状态信息,选择负载最低的数据服务器来处理所述数据请求。
可选的,所述监控器,被配置为还获知所述多个数据服务器各自的网络延迟信息;所述选择器,具体被配置为基于所述监控器所获知的多个数据服务器各自的负载状态信息、网络延迟信息和物理位置标签,选择所述多个数据服务器之一来处理所述数据请求,其中所述多个数据服务器均存储所述数据请求对应的被请求数据。
可选的,所述选择器包括:第五选择模块,被配置为至少基于所述监控器所获知的多个数据服务器各自的物理位置标签,选择处于特定机房内部的第五数据服务器集合;在所述第五数据服务器集合中,根据其中各数据服务器的负载状态信息以及预设的负载状态允许条件,选择满足所述负载状态允许条件的第五数据服务器子集合;在所述第五数据服务器子集合中,根据其中各数据服务器的网络延迟信息,选择网络延迟最低的数据服务器来处理所述数据请求。
可选的,所述选择器包括:第六选择模块,被配置为至少基于所述监控器所获知的多个数据服务器各自的物理位置标签,选择处于特定机房内部的第六数据服务器集合;在所述第六数据服务器集合中,根据其中各数据服务器的网络延迟信息以及预设的网络延迟允许条件,选择满足所述网络延迟允许条件的第六数据服务器子集合;在所述第六数据服务器子集合中,根据其中各数据服务器的负载状态信息,选择负载最低的数据服务器来处理所述数据请求。
可选的,所述选择器包括:第七选择模块,被配置为至少基于所述监控器所获知的多个数据服务器各自的负载状态信息和预设的负载状态允许条件,选择满足所述负载状态允许条件的第七数据服务器集合;在所述第七数据服务器集合中,根据其中各数据服务器的网络延迟信息和预设的网络延迟允许条件,选择满足所述网络延迟允许条件的第七数据服务器子集合;在所述第七数据服务器子集合中,根据其中各数据服务器的物理位置标签,选择处于特定机房内部的数据服务器来处理所述数据请求。
可选的,所述选择器包括:第八选择模块,被配置为至少基于所述监控器所获知的多个数据服务器各自的网络延迟信息和预设的网络延迟允许条件,选择满足所述网络延迟允许条件的第八数据服务器集合;在所述第八数据服务器集合中,根据其中各数据服务器的负载状态信息和预设的负载状态允许条件,选择满足所述负载状态允许条件的第八数据服务器子集合;在所述第八数据服务器子集合中,根据其中各数据服务器的物理位置标签,选择处于特定机房内部的数据服务器来处理所述数据请求。
可选的,所述特定机房具体是下述机房中的一种:本地机房,或,基于业务需要指定某一物理位置的机房。
可选的,所述监控器包括:检测模块,被配置为向所述多个数据服务器分别发送查询请求,以及接收所述多个数据服务器各自返回的响应数据,所述响应数据中至少包括对应的数据服务器的负载状态信息和对应的数据服务器的物理位置标签。
依据本发明的又一方面,提供了一种用于分布式数据存储***的数据管理方法,该分布式数据存储***包括多个数据服务器,所述数据管理方法包括:至少获知所述多个数据服务器各自的负载状态信息和物理位置标签;接收来自数据请求方的数据请求;至少基于所获知的多个数据服务器各自的负载状态信息和物理位置标签,选择所述多个数据服务器之一来处理所述数据请求,其中所述多个数据服务器均存储所述数据请求对应的被请求数据;从所述选择的数据服务器读取所述被请求数据;以及将所述被请求数据返回至所述数据请求方。
可选的,所述至少基于所获知的多个数据服务器各自的负载状态信息和物理位置标签,选择所述多个数据服务器之一来处理所述数据请求包括:基于所获知的多个数据服务器各自的负载状态信息、网络延迟信息和物理位置标签,选择所述多个数据服务器之一来处理所述数据请求。
依据本发明的又一方面,提供了一种用于分布式数据存储的数据管理***,包括根据本发明的数据管理设备,以及多个数据服务器,多个数据服务器均存储有数据请求对应的被请求数据。
依据本发明的又一方面,提供了一种用于分布式数据存储***的数据管理设备,该分布式数据存储***包括多Mongod服务器,该数据管理设备包括Mongos装置,所述Mongos装置具体包括:监控器,被配置为至少获知分布在至少两个机房的多个Mongod服务器各自的负载状态信息和物理位置标签;数据接口,被配置为接收来自应用服务器的数据请求,并将与所述数据请求对应的被请求数据返回至所述应用数据服务器;选择器,被配置为至少基于所获知的分布在至少两个机房的多个Mongod服务器各自的负载状态信息和物理位置标签,选择所述多个Mongod服务器之一来处理所述数据请求,所述多个Mongod服务器均存储所述数据请求对应的被请求数据;数据读取器,被配置为从所述选择器选择的Mongod服务器读取所述被请求数据,并将所述被请求数据发送给所述数据接口。
根据本发明的用于分布式数据存储***的数据管理设备、方法及***可以至少根据负载情况和网络延迟情况,或者负载情况和物理位置标签,或者负载情况、网络延迟情况以及物理位置标签,有针对性的选择合适的数据服务器,由此解决了现有随机选择方式的盲目性,取得了提高数据库数据读取效率的有益效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的用于分布式数据存储的数据管理***示意图;
图2示出了根据本发明一个实施例的用于分布式数据存储***的数据管理设备;
图3示出了根据本发明一个实施例的用于分布式数据存储***的数据管理方法的示意图;以及
图4示出了根据本发明另一个实施例的用于分布式数据存储***的数据管理方法的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
请参阅图1,其为根据本发明一个实施例的用于分布式数据存储的数据管理***示意图。
从图中可以看出,该***包括用于分布式数据存储***的数据管理设备100和多个数据服务器,即该分布式数据存储***包括多个数据服务器,比如第一数据服务器302、第二数据服务器304、第三数据服务器306以及第四数据服务器308,需要说明的是,上述多个数据服务器属于一个数据服务器集群,该集群中的具体数据服务器数量并没有限制,本发明只是示例性的给出四个数据服务器。数据请求方400通过数据管理设备100从某个数据服务器获取被请求数据。
数据管理设备100具体包括监控器102、数据接口104、选择器106以及数据读取器108。下面将分别详细介绍每一个组成部分。
监控器102有多种可以单独应用、也可以任意组合应用的具体实现方案:
在一个实施例中,监控器102获取多个数据服务器(302-304)各自的负载状态信息。
例如,监控器102可以包括检测模块,检测模块向多个数据服务器分别发送查询请求,并且接收数据服务器(302-304)各自返回的响应数据。响应数据中至少包括对应的数据服务器的负载状态信息。通过该检测模块,使得监控器102可以获知数据服务器(302-304)各自的负载状态信息。每个数据服务器的负载状态信息包括但不限于下述信息中的一种或多种:数据服务器现有的并发连接数;数据服务器的CPU(Central Processing Unit,中央处理单元)负载指标,比如CPU空闲状况的百分比率;数据服务器的磁盘负载指标,比如io(input output,输入输出)、磁盘操作的tps(Transactions Per Second,每秒写入读取的数据量)。例如,检测模块可以每隔一定时间间隔,比如10秒向各数据服务器发送一次心跳请求,获取每个数据服务器的状态。心跳请求可以理解为是查询请求的一种,具体而言,是发送一个数据包给每个数据服务器,每个服务器收到心跳请求后,都会给检测模块回复一个响应的数据包,在该响应的数据包中记录了该数据服务器上现有的负载状态信息。
可选的,监控器102也可以不向各数据服务器发查询请求,而是每隔一定时间间隔,各数据服务器主动上报各自的负载状态信息。
在另一实施例中,监控器102还可以获知多个数据服务器各自的网络延迟信息。
例如,监控器102包括检测模块和延迟模块。检测模块为向多个数据服务器(302-304)发送查询请求,以及接收各数据服务器(302-304)返回的响应数据。延迟模块根据检测模块发送查询请求的发送时间和检测模块接收到响应数据的接收时间,计算数据服务器(302-304)各自的网络延迟信息。具体而言,检测模块会记录向每个数据服务器发送查询请求的发送时间,也会记录响应数据的接收时间,因此,延迟模块就可以根据检测模块提供的针对某个数据服务器的查询请求发送时间和响应数据接收时间获得数据包的网络延迟时间,进而获得每个数据服务器的网络延迟信息。可选的,也可以由各数据服务器主动向监控器102发送测试的数据包,然后监控器102向各数据服务器返回响应的数据包,进而,各数据服务器根据测试数据包的发送时间和监控器102响应的数据包的接收时间计算自己的网络延迟时间,并将各自的网络延迟时间上报至监控器102。
在又一个实施例中,监控器102还可以获知多个数据服务器(302-304)各自的物理位置标签。
例如,各数据服务器返回至监控器102的响应数据中,还包括对应的数据服务器的物理位置标签。物理位置标签,简称为标签,用以标记每个数据服务器所在的物理位置信息,比如数据服务器处于哪个机房。因为多个数据服务器可能处于不同的机房中,因此通过物理位置标签即可获知每个数据服务器所处的机房信息。在具体实现时,可以在各数据服务器的配置信息中添加各自的物理位置标签,进而,当数据服务器在启动时就相应的加载配置信息,当向监控器102返回响应数据时就可以携带上自己的物理位置标签。同理可选的,监控器102可以不向各数据服务器发送查询请求,而是由各数据服务器主动上报自己的物理位置标签,在这种方案中,监控器102就可以不包括检测模块。
通过上述监控器102的多个具体实现方式可以看出,监控器102可以获知多个数据服务器各自的负载状态信息、网络延迟信息以及物理位置标签中的任意一种,也可以获知上述三种信息中的任意两种或三种,甚至被配置获知更多所需要的信息。比如,至少获知多个数据服务器(302-304)各自的负载状态信息和网络延迟信息,或者至少获知多个数据服务器各自的负载状态信息和物理位置标签,再或者获知多个数据服务器各自的负载状态信息、网络延迟信息以及物理位置标签。此外,监控器102可以定期或不定期的更新所获知的各数据服务器的各种状态信息,比如可以每间隔一定时间就向各数据服务器发送一次查询请求,或者要求各数据服务器每隔一定间隔时间就上报一次自己的状态信息,从而可以保证所获知的各数据服务器的相关状态信息是相对及时、准确、最新的。
数据接口104接收来自数据请求方400的数据请求。数据请求方400包括但不限于应用服务器(如web服务器)、邮件服务器、文件服务器以及各种需要查询数据的计算机程序等。
数据接口104将所接收的数据请求发送到数据读取器108。数据读取器108会从多个数据服务器(302-308)当中选择一个数据服务器来读取满足数据请求的数据,并且将所读取的数据返回给数据接口104,以便数据接口104将该数据返回给数据请求方400。
数据读取器108根据选择器106来选择多个数据服务器之一进行数据读取。选择器106根据监控器102所获知的有关各个数据服务器的信息,来选择由数据读取器108进行数据读取的服务器。
选择器106具有多种可以单独应用、也可以任意组合应用的具体实现方案:
在一个实施例中,选择器106至少基于监控器102所获知的多个数据服务器各自的负载状态信息和网络延迟信息,选择多个数据服务器之一来处理数据请求。因为监控器102所获知的多个数据服务器的各种状态信息都是及时更新的,因此选择器106可以做出及时和准确的选择。
可选的,选择器106可以包括第一选择模块,第一选择模块首先基于监控器102所获知的多个数据服务器各自的负载状态信息和预设的负载状态允许条件,选择满足负载状态允许条件的第一数据服务器集合;随后根据各数据服务器的网络延迟信息,在第一数据服务器集合中选择网络延迟最低的数据服务器来处理该数据请求。该预设的负载状态允许条件,可以基于负载状态的具体内容以及实际需求而定。例如,负载状态允许条件可以是针对某项具体负载状态的要求,也可以是针对多项负载状态都有要求。比如,负载状态允许条件可以是,数据服务器现有的并发连接数小于第一阈值,或者是数据服务器的CPU负载指标小于第二阈值,再或者是数据服务器的磁盘负载指标小于第三阈值,其中,第一阈值、第二阈值以及第三阈值可以相等,也可以不等。再比如,满足负载状态允许条件可以是上述多个负载状态指标均小于各自的预置阈值,即多个负载状态指标都同时满足要求才算满足负载状态允许条件。至于各阈值的具体数值设置,则可以根据具体应用环境对技术指标的要求而定,本发明实施例对此并没有限制。通过这个实现方案,可以使选择器106在负载状态都比较小的若干数据服务器(302-308)中,选择一个网络延迟也比较低的数据服务器为数据请求方400提供被请求的数据。
可选的,选择器106可以包括第二选择模块。该第二选择模块首先基于监控器102所获知的多个数据服务器各自的网络延迟信息和预设的网络延迟允许条件,选择满足网络延迟允许条件的第二数据服务器集合。随后第二选择模块在第二数据服务器集合中,根据其中各数据服务器的负载状态信息,选择负载最低的数据服务器处理数据请求。同理,网络延迟允许条件的具体内容可以根据实际需要而定。比如,可以将网络延迟允许条件预设为网络延迟时间小于某个阈值。前面已经介绍过网络延迟时间和负载状态的相关信息,此处不再赘述。通过这种方式,可以使选择器106在网络延迟相对比较小的若干数据服务器(302-308)中,优先选择负载最低的数据服务器为数据请求方400提供被请求的数据。
在另一个实施例中,选择器106为至少基于监控器102所获知的多个数据服务器(302-308)各自的负载状态信息和物理位置标签,选择多个数据服务器之一来处理数据请求。物理位置标签,如上所述,用以标记每个数据服务器所在的物理位置信息,比如处于哪个机房。因为多个数据服务器可能处于不同的机房中,因此通过物理位置标签即可获知每个数据服务器的具体物理位置。通常而言,处于本地机房的数据服务器的网络延迟较小、处理速度较快,处于远程机房的数据服务器网络延迟较大、处理速度较慢。另外,往往基于业务的某些特定需求,某个业务需要指定某个物理位置的机房内部的数据服务器处理数据请求。特定机房具体是本地机房,或者基于业务需要指定某一物理位置的机房。
可选的,选择器106可以包括第三选择模块。第三选择模块基于监控器102所获知的多个数据服务器各自的负载状态信息和预设的负载状态允许条件,选择满足负载状态允许条件的第三数据服务器集合。然后第三选择模块在第三数据服务器集合中,根据其中各数据服务器的物理位置标签,选择特定机房内部的数据服务器来处理数据请求。通过这种技术方案,可以使选择器106在若干负载较低的数据服务器中,优选选择特定机房内部的一个数据服务器来处理数据请求。
可选的,选择器106可以包括第四选择模块。第四选择模块基于监控器102所获知的多个数据服务器各自的物理位置标签,选择处于特定机房内部的第四数据服务器集合。随后,第四选择模块在第四数据服务器集合中,根据其中各数据服务器的负载状态信息,选择负载最低的数据服务器来处理该数据请求。通过该技术方案,可以使选择器106在符合要求的特定机房内部的若干数据服务器中,优先选择一个负载最低数据服务器处理数据请求。
在又一个实施例中,选择器106可以根据监控器102所获知的多个数据服务器各自的负载状态信息、网络延迟信息和物理位置标签,在多个数据服务器(302-308)中选择其一来处理数据请求。
可选的,选择器106可以包括第五选择模块。第五选择模块首先基于监控器102所获知的多个数据服务器各自的物理位置标签,选择处于特定机房内部的第五数据服务器集合。随后,第五选择模块在第五数据服务器集合中,根据其中各数据服务器的负载状态信息以及预设的负载状态允许条件,选择满足负载状态允许条件的第五数据服务器子集合,并在第五数据服务器子集合中,根据其中各数据服务器的网络延迟信息,选择网络延迟最低的数据服务器处理来该数据请求。通过这种技术方案,可以使选择器106在合适的特定机房内部的多个数据服务器中,选择一个负载较低,并且网络延迟也比较小的数据服务器处理该数据请求。
可选的,选择器106可以包括第六选择模块。第六选择模块可以首先基于监控器102所获知的多个数据服务器各自的物理位置标签,选择处于特定机房内部的第六数据服务器集合。随后,在第六数据服务器集合中,第六选择模块根据其中各数据服务器的网络延迟信息以及预设的网络延迟允许条件,选择满足网络延迟允许条件的第六数据服务器子集合;并在第六数据服务器子集合中,根据其中各数据服务器的负载状态信息,选择负载最低的数据服务器来处理该数据请求。通过这种技术方案,可以使选择器106在合适的特定机房内部的多个数据服务器中,选择一个网络延迟较小,并且负载也比较低的数据服务器处理该数据请求。
可选的,选择器106可以包括第七选择模块。第七选择模块可以首先基于监控器102所获知的多个数据服务器各自的负载状态信息和预设的负载状态允许条件,选择满足该负载状态允许条件的第七数据服务器集合。随后,在第七数据服务器集合中,第七选择模块根据其中各数据服务器的网络延迟信息和预设的网络延迟允许条件,选择满足该网络延迟允许条件的第七数据服务器子集合;并且在第七数据服务器子集合中,根据其中各数据服务器的物理位置标签,选择处于特定机房内部的数据服务器来处理该数据请求。通过这种技术方案,可以使选择器106在负载较低且网络延迟较小的多个数据服务器中,优选选择处于特定机房内部的数据服务器处理该数据请求。
可选的,选择器106可以包括第八选择模块。第八选择模块首先可以基于监控器102所获知的多个数据服务器各自的网络延迟信息和预设的网络延迟允许条件,选择满足网络延迟允许条件的第八数据服务器集合。随后,在第八数据服务器集合中,第八选择模块根据其中各数据服务器的负载状态信息和预设的负载状态允许条件,选择满足负载状态允许条件的第八数据服务器子集合;并在第八数据服务器子集合中,根据其中各数据服务器的物理位置标签,选择处于特定机房内部的数据服务器来处理该数据请求。通过这种技术方案,可以使选择器106在网络延迟较小且负载较低的多个数据服务器中,优选选择处于特定机房内部的数据服务器处理该数据请求。
在一个实施例中,如果数据读取器108从选择器106所选择的数据服务器读取被请求数据失败的话,则数据读取器108会通知选择器106,选择器106随后根据多个数据服务器(302-308)中的其他数据服务器各自的状态,继续选择其他数据服务器当中的另一个数据服务器,并且将选择结果返回给数据读取器108。数据读取器108从选择器106重新选择的数据服务器读取与数据请求对应的被请求数据。选择器106具体从其他数据服务器中选择哪个数据服务器处理,与在读取数据失败前的选择方案雷同,具体可以参考前面选择器106的相关实现方案,此处不再赘述。
可选的,监控器102中的检测模块向各数据服务器发送查询请求时,仍然继续向发生故障的数据服务器(即数据读取器108读取被请求数据失败的数据服务器)发送查询请求,并且根据该发生故障的数据服务器是否返回响应数据或者返回响应数据的内容或状况,确定该发生故障的数据服务器的故障是否已消除,如果故障已消除,则更新该数据服务器为可用,以便后续选择器106选择哪个数据服务器处理数据请求时,考虑该故障已消除的数据服务器。
例如,当某个数据服务器出现故障,数据读取器108获取数据失败后,选择器106会自动选取另一台数据服务器提供给数据读取器108,以便数据读取器重新读取数据。并且,选择器106会在检测过程所记录的数据中指示该数据服务器处于故障状态,在该数据服务器故障消除之前,选取数据服务器时会跳过该发生故障的数据服务器。当监控器102每发一次心跳请求(即查询请求)时,都会检测发生故障的数据服务器,当该数据服务器恢复时,修改该数据服务器为正常状态,以便选择器106后续可以选择该数据服务器。
可选的,当新增提供服务的数据服务器时,将该数据服务器添加至监控器102维护的检测列表中,以便监控器102可以监控该新增服务器的相关状态信息。
在一个实施例中,多个数据服务器具体是多个Mongod服务器,具体请参阅图2所,其为根据本发明一个实施例的用于分布式数据存储***的数据管理设备。多个Mongod服务器至少分布在两个机房,比如MongoD1和MongoD2分布于机房1内,MongoD3和MongoD4分布于机房2内。数据管理设备100包括Mongos 210,即前述数据管理设备100中的各部件在Mongos210中予以实现,Mongos 210通过监控器202维护着各数据服务器的信息。Mongos 210监控器202、数据接口204、选择器206、以及数据读取器208。监视器202的具体实现与前述各实施例中的监控器102雷同,类似的,数据接口204与前述各实施例中的数据接口104雷同,选择器206与前述各实施例中的选择器106雷同,以及数据读取器208与前述各实施例中的数据读取器108雷同,仅仅是将图1中所示的各部件具体应用于MongoDB的分布式数据存储***中,因此对相关组成部分的具体实现不再赘述,请参考前述相关组成部分的具体实现方案。通过各个实施例中的选择器206对数据服务器的选择,可以使得在兼顾选择负载较低的数据服务器的同时,能够优先选择网络延迟较小的数据服务器,或者优先选择与Mongos 210在同一机房、即本地机房的数据服务器处理数据请求。通常,一般本地机房内的数据服务器网页延迟也较小。
当然,前述各实施例的数据管理设备,除了可以应用于MongoDB的分布式数据存储***中,还可以应用于其他类似的分布式数据存储***,比如mysql等。
请参阅图3,其为根据本发明一个实施例的用于分布式数据存储***的数据管理方法的示意图,该分布式数据存储***包括多个数据服务器,其例如为上面参考图1或者图2描述的数据存储***。该数据管理方法始于步骤S310,在步骤S310中,获知多个数据服务器各自的负载状态信息和网络延迟信息。
具体而言,在步骤S310中,可以向多个数据服务器分别发送查询请求,并接收多个数据服务器各自返回的响应数据。响应数据中通常包括对应的数据服务器的负载状态信息,这样就获得了各个数据服务器的负载状况信息。另外,在步骤S310中,还可以基于向各个数据服务器发送查询请求的发送时间和响应数据的接收时间,获得各个数据服务器的网络延迟信息。例如可以把每个数据服务器的网络延迟时间计算为相应发送时间和接收时间之差。除了可以获得前面的负载状态信息和网络延迟信息之外,还可以获得数据服务器的物理位置标签,比如各个数据服务器在返回的响应数据中也添加各自的物理位置标签。
本步骤可以通过前述数据管理设备100中的监控器102执行,相关的技术实现可以参考前述监控器102在各实施例中的相关描述,此处不再赘述。
随后,在S320中,接收来自数据请求方的数据请求。数据请求方具体可以是常见的应用服务器,也可以其他服务器,比如邮件服务器、文件服务器等,只要有数据查询需求、并且数据服务器能够提供被查询的数据的服务器都可以作为本发明实施例中的数据请求方。而且,除了各种具有数据查询请求的服务器之外,有数据查询请求的各种计算机程序也可以作为本发明实施例的数据请求方。总而言之,只要有数据查询需求、并且数据服务器能够提供被查询的数据的设备或程序,都可以是本发明实施例中的数据请求方,本发明实施例对此并没有限制。
本步骤可以通过前述数据管理设备100中的数据接口104执行,相关的技术实现可以参考前述监控器102在各实施例中的相关描述,此处不再赘述。
在步骤S320中接收到数据请求之后,在步骤S330中,根据在步骤S310所获知的各个数据服务器的负载状态信息和/或网络延迟信息,选择一个要处理该数据请求的数据服务器。
应当注意的是,除了根据各个数据服务器的负载状态信息和/或网络延迟信息之外,还可以根据各个数据服务器的物理位置标签来选择处理该数据请求的数据服务器。本发明所描述的选择方式可以包括负载状态、网络延迟和物理位置标签的一个或者多个的组合。所有这些选择方式都在本发明的保护范围之内。对于如何结合物理位置标签来选择处理该数据请求的数据服务器,在后续图4所示的实施例中还会进行更详细的介绍。
本步骤可以通过前述数据管理设备100中的选择器106执行,相关的技术实现可以参考前述选择器106在各实施例中的相关描述,此处不再赘述。
随后,在S340中,从步骤S330所选择的数据服务器读取被请求的数据。本步骤可以通过前述数据管理设备100中的数据读取器108执行,相关的技术特征可以参考前述数据读取器108在各实施例中的相关描述,此处不再赘述。并在S350中,将被请求的数据返回至数据请求方。本步骤可以通过前述数据管理设备100中的数据接口104执行,相关的技术特征可以参考前述数据接口104在各实施例中的相关描述,此处不再赘述。
应当注意的是,上述方法中的各步骤的顺序是可以调整的,例如步骤S310可以独立于其他步骤来执行或者与其他步骤并行执行。步骤S310还可以定期重复执行,以便及时获知各个数据服务器的最新信息。
还应当注意的是,步骤S330还可能因为步骤S340从数据服务器读取数据失败而重新执行,即重新选择数据服务器,在步骤S330重新选择后,步骤S340也会根据步骤S330重新选择的结果再次执行读取数据的操作。具体而言,如果在步骤S340中从之前步骤S330选择的数据服务器读取被请求的数据失败,比如该数据服务器发生故障了,那么随后步骤S330会重新进行选择,即根据多个数据服务器中的其他数据服务器各自的状态,继续选择其他数据服务器当中的另一个数据服务器,然后,步骤S340也从步骤S330重新选择的另一个数据服务器读取被请求的数据。步骤S340重新读取数据成功后,在S350中将成功读取到的被请求数据返回至数据请求方。
请参阅图4,其为根据本发明另一个实施例的用于分布式数据存储***的数据管理方法的示意图,该分布式数据存储***包括多个数据服务器,其例如为上面参考图1或者图2描述的数据存储***。
该数据管理方法始于步骤S410,在步骤S410中,可以获知多个数据服务器各自的负载状态信息和物理位置标签。具体而言,在步骤S410中,可以向多个数据服务器分别发送查询请求,比如每间隔一定时间发一次心跳请求,然后接收多个数据服务器各自返回的响应数据。在响应数据中通常包括对应的数据服务器的负载状态信息和物理位置标签,这样就获得了各个数据服务器的负载状况信息和物理位置标签。物理位置标签,主要是用来标记每个数据服务器所在的物理位置信息,比如哪个数据服务器处于哪个机房。因为多个数据服务器可能处于不同的机房中,所以通过物理位置标签就可以获知每个数据服务器所处的具体机房信息。除了可以通过各数据服务器返回的响应数据中获得各数据服务器的负载状态信息和物理位置标签之外,还可以基于向各个数据服务器发送查询请求的发送时间和响应数据的接收时间,获得各个数据服务器的网络延迟信息。例如可以把每个数据服务器的网络延迟时间计算为相应发送时间和接收时间之差。
本步骤可以通过前述数据管理设备100中的监控器102执行,相关的技术实现可以参考前述监控器102在各实施例中的相关描述,此处不再赘述。
随后,在S420中,接收来自数据请求方的数据请求。数据请求方具体可以是常见的应用服务器,也可以其他服务器,比如邮件服务器、文件服务器等,只要有数据查询需求、并且数据服务器能够提供被查询的数据的服务器都可以作为本发明实施例中的数据请求方。而且,除了各种具有数据查询请求的服务器之外,有数据查询请求的各种计算机程序也可以作为本发明实施例的数据请求方。总而言之,只要有数据查询需求、并且数据服务器能够提供被查询的数据的设备或程序,都可以是本发明实施例中的数据请求方,本发明实施例对此并没有限制。
本步骤可以通过前述数据管理设备100中的数据接口104执行,相关的技术实现可以参考前述监控器102在各实施例中的相关描述,此处不再赘述。
在步骤S420接收到来自数据请求方的数据请求之后,在步骤S430中,根据S410所获知的各个数据服务器各自的负载状态信息和/或物理位置标签,在多个数据服务器中选择一个来处理该数据请求。
应该注意的是,在步骤S430中,除了可以根据步骤S410获得的各个数据服务器的负载状态信息和/或物理位置标签进行选择之外,还可以根据各个数据服务器的网络延迟信息来选择处理该数据请求的数据服务器。比如,综合参考步骤S410所获知的各个数据服务器的负载状态信息、网络延迟信息和物理位置标签这三种信息,共同决定选择哪个数据服务器来处理该数据请求更合适。总而言之,本发明实施例所描述的选择方式可以包括负载状态、网络延迟和物理位置标签中的一个或多个的组合。所有这些选择方式都在本发明的保护范围之内。
本步骤可以通过前述数据管理设备100中的选择器106执行,相关的技术实现可以参考前述选择器106在各实施例中的相关描述,此处不再赘述。
随后,在S440中,从步骤S430所选择的数据服务器读取被请求的数据。本步骤可以通过前述数据管理设备100中的数据读取器108执行,相关的技术特征可以参考前述数据读取器108在各实施例中的相关描述,此处不再赘述。并在S450中,将被请求数据返回至数据请求方。本步骤可以通过前述数据管理设备100中的数据接口104执行,相关的技术特征可以参考前述数据接口104在各实施例中的相关描述,此处不再赘述。
还应当注意的是,上述方法中各步骤的顺序是可以调整的,例如步骤S410可以独立于其他步骤来执行或者与其他步骤并行执行。步骤S410还可以定期重复执行,以便及时获知各个数据服务器的最新信息。
还应当注意的是,步骤S430还可能因为步骤S440从数据服务器读取数据失败而重新执行,即重新选择数据服务器,在步骤S430重新选择后,步骤S440也会根据步骤S430重新选择的结果再次执行读取数据的操作。具体而言,如果在步骤S440中从之前步骤S430选择的数据服务器读取被请求的数据失败,比如该数据服务器发生故障了,那么随后步骤S430会重新进行选择,即根据多个数据服务器中的其他数据服务器各自的状态,继续选择其他数据服务器中当中的另一个数据服务器,进而,步骤S440就会从步骤S430重新选择的另一个数据服务器读取被请求的数据。步骤S440重新读取数据成功后,在S450中将成功读取的被请求数据返回至数据请求方。
通过以上各实施例的描述可知,采用本发明实施例提供的技术方案,可以监控到各数据服务器的负载状态,使得在选择哪个数据服务器为请求方服务时可以参考各数据服务器的负载状态进行选择,相对现有的随机选择,避免了选择的盲目性,从而提高了数据读取的效率。还可以监控到各数据服务器的网络延迟状况,使得在选择哪个数据服务器为请求方服务时可以参考各数据服务器的网络延迟信息进行选择,相对现有的随机选择方式,同样提高了数据读取的效率。还可以监控到各数据服务器的物理位置标签,使得在选择哪个数据服务器为请求方服务时可以参考各数据服务器的物理位置信息进行选择,比如可以优选选择本地机房内部的数据服务器提供服务,因为通常本地机房的数据服务器的网络延迟较小,再比如,可以根据业务需要选择指定机房的数据服务器提供服务,这种方案相对现有的随机选择方式,同样也提高了数据读取的效率。
进一步,可以同时参考各数据服务器的负载状态和网络延迟状况选择提供服务的数据服务器,采取这种方式,可以同时兼顾负载状态和网络延迟情况,从而更进一步提高了数据库的读取性能。或者,同时参考各数据服务器的负载状态和物理位置标签选择提供服务的数据服务器,采取这种方式,可以同时兼顾负载状态和物理位置,从而更进一步提高了数据库的读取性能。。再或者,同时参考各数据服务器的负载状态、网络延迟状况以及物理位置标签选择提供服务的数据服务器,采取这种方案,使得数据服务器的选择更全面、准确,更进一步提高了数据库的读取性能。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或模块或组件组合成一个模块或模块或组件,以及此外可以把它们分成多个子模块或子模块或子组件。除了这样的特征和/或过程或者模块中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或模块进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的用于分布式数据存储***的数据管理设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的模块权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (14)
1.一种用于分布式数据存储***的数据管理设备,该分布式数据存储***包括多个数据服务器,该数据管理设备包括:
监控器,被配置为至少获知所述多个数据服务器各自的负载状态信息和网络延迟信息;
数据接口,被配置为接收来自数据请求方的数据请求,并将与所述数据请求对应的被请求数据返回至所述数据请求方;
选择器,被配置为至少基于所述监控器所获知的多个数据服务器各自的负载状态信息和网络延迟信息,选择所述多个数据服务器之一来处理所述数据请求,其中所述多个数据服务器均存储所述数据请求对应的被请求数据;以及
数据读取器,被配置为从所述选择器所选择的数据服务器读取所述被请求数据,并将所述被请求数据发送给所述数据接口。
2.根据权利要求1所述的数据管理设备,所述监控器包括:
检测模块,被配置为向所述多个数据服务器分别发送查询请求,以及接收所述多个数据服务器各自返回的响应数据,所述响应数据中至少包括对应的数据服务器的负载状态信息;
延迟模块,被配置为根据所述多个数据服务器各自对应的所述查询请求的发送时间和所述响应数据的接收时间,获得所述多个数据服务器各自的网络延迟信息。
3.根据权利要求1或者2所述的数据管理设备,如果所述数据读取器从所述选择器选择的数据服务器读取被请求数据失败,则所述选择器还根据所述多个数据服务器中的其他数据服务器各自的负载状态信息和网络延迟信息,选择其他数据服务器当中的另一个数据服务器来处理所述数据请求;以及
所述数据读取器还从所述另一个数据服务器读取与所述数据请求对应的被请求数据。
4.根据权利要求1-3中任一个所述的数据管理设备,所述选择器包括:
第一选择模块,被配置为至少基于所述监控器所获知的多个数据服务器各自的负载状态信息和预设的负载状态允许条件,选择满足所述负载状态允许条件的第一数据服务器集合;在所述第一数据服务器集合中,根据其中各数据服务器的网络延迟信息,选择网络延迟最低的数据服务器来处理所述数据请求。
5.根据权利要求1-3中任一个所述的数据管理设备,所述选择器包括:
第二选择模块,被配置为至少基于所述监控器所获知的多个数据服务器各自的网络延迟信息和预设的网络延迟允许条件,选择满足所述网络延迟允许条件的第二数据服务器集合;在所述第二数据服务器集合中,根据其中各数据服务器的负载状态信息,选择负载最低的数据服务器处理所述数据请求。
6.根据权利要求1至5中任一项所述的数据管理设备,所述数据服务器的负载状态信息包括下述信息中的一种或多种:
所述数据服务器现有的并发连接数;
所述数据服务器的CPU负载指标;
所述数据服务器的磁盘负载指标。
7.一种用于分布式数据存储***的数据管理方法,该分布式数据存储***包括多个数据服务器,该数据管理方法包括:
至少获知所述多个数据服务器各自的负载状态信息和网络延迟信息;
接收来自数据请求方的数据请求;
至少基于所获知的多个数据服务器各自的负载状态信息和网络延迟信息,选择所述多个数据服务器之一来处理所述数据请求,其中,所述多个数据服务器均存储所述数据请求对应的被请求数据;
从所述选择的数据服务器读取所述被请求数据;以及
将所述被请求数据返回至所述数据请求方。
8.根据权利要求7所述的数据管理方法,所述获知所述多个数据服务器各自的负载状态信息和网络延迟信息包括:
向所述多个数据服务器分别发送查询请求,以及接收所述多个数据服务器各自返回的响应数据,所述响应数据中至少包括对应的数据服务器的负载状态信息;
根据所述多个数据服务器各自对应的所述查询请求的发送时间和所述响应数据的接收时间,获得所述多个数据服务器各自的网络延迟信息。
9.根据权利要求7或8所述的数据管理方法,如果从选择的所述数据服务器读取被请求数据失败,则还包括:
根据所述多个数据服务器中的其他数据服务器各自的负载状态信息和网络延迟信息,选择其他数据服务器当中的另一个数据服务器来处理所述数据请求;以及
从所述另一个数据服务器读取与所述数据请求对应的被请求数据。
10.根据权利要求7至9中任一个所述的数据管理方法,所述至少根据所获知的多个数据服务器各自的负载状态信息和网络延迟信息,选择所述多个数据服务器之一来处理所述数据请求包括:
至少根据所获知的多个数据服务器各自的负载状态信息和预设的负载状态允许条件,选择满足所述负载状态允许条件的第一数据服务器集合;在所述第一数据服务器集合中,根据其中各数据服务器的网络延迟信息,选择网络延迟最低的数据服务器来处理所述数据请求。
11.根据权利要求7至10中任一个所述的数据管理方法,所述至少根据所获知的多个数据服务器各自的负载状态信息和网络延迟信息,选择所述多个数据服务器之一来处理所述数据请求包括:
至少根据所获知的多个数据服务器各自的网络延迟信息和预设的网络延迟允许条件,选择满足所述网络延迟允许条件的第二数据服务器集合;在所述第二数据服务器集合中,根据其中各数据服务器的负载状态信息,选择负载最低的数据服务器来处理所述数据请求。
12.根据权利要求7至11中任一项所述的数据管理方法,所述数据服务器的负载状态信息包括下述信息中的一种或多种:
所述数据服务器现有的并发连接数;
所述数据服务器的CPU负载指标;
所述数据服务器的磁盘负载指标。
13.一种用于分布式数据存储的数据管理***,包括如权利要求1至6中任一项所述的数据管理设备,以及多个数据服务器,所述多个数据服务器均存储有数据请求对应的被请求数据。
14.一种用于分布式数据存储***的数据管理设备,该分布式数据存储***包括多个Mongod服务器,该数据管理设备包括Mongos装置,所述Mongos装置具体包括:
监控器,被配置为至少获知分布在至少两个机房的多个Mongod服务器各自的网络延迟信息和负载状态信息;
数据接口,被配置为接收来自应用服务器的数据请求,并将与所述数据请求对应的被请求数据返回至所述应用数据服务器;
选择器,被配置为至少基于所述监控器所获知的分布在至少两个机房的多个Mongod服务器各自的网络延迟信息和负载状态信息,选择所述多个Mongod服务器之一来处理所述数据请求,所述多个Mongod服务器均存储所述数据请求对应的被请求数据;以及
数据读取器,被配置为从所述选择器选择的Mongod服务器读取所述被请求数据,并将所述被请求数据发送给所述数据接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104178184A CN102932442A (zh) | 2012-10-26 | 2012-10-26 | 用于分布式数据存储***的设备、***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104178184A CN102932442A (zh) | 2012-10-26 | 2012-10-26 | 用于分布式数据存储***的设备、***及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102932442A true CN102932442A (zh) | 2013-02-13 |
Family
ID=47647139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012104178184A Pending CN102932442A (zh) | 2012-10-26 | 2012-10-26 | 用于分布式数据存储***的设备、***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102932442A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103607424A (zh) * | 2013-10-24 | 2014-02-26 | 北京奇虎科技有限公司 | 一种服务器连接方法及服务器*** |
CN105245565A (zh) * | 2015-08-28 | 2016-01-13 | 浪潮集团有限公司 | 一种云***、管理节点及数据获取的方法 |
CN105652237A (zh) * | 2016-01-13 | 2016-06-08 | 广东欧珀移动通信有限公司 | 一种移动终端的定位方法、装置及移动终端 |
CN105721612A (zh) * | 2016-04-19 | 2016-06-29 | 北京百度网讯科技有限公司 | 数据传输方法和装置 |
CN106357435A (zh) * | 2016-08-31 | 2017-01-25 | 广州唯品会信息科技有限公司 | 同机房的匹配方法及装置 |
CN106936888A (zh) * | 2015-12-30 | 2017-07-07 | 五八同城信息技术有限公司 | 数据收集的方法、装置及*** |
WO2017124925A1 (zh) * | 2016-01-18 | 2017-07-27 | 中兴通讯股份有限公司 | 存储***的服务质量控制方法和装置 |
CN107729514A (zh) * | 2017-10-25 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种基于hadoop的副本放置节点确定方法及装置 |
CN111083244A (zh) * | 2018-10-22 | 2020-04-28 | 浙江宇视科技有限公司 | 集群地址分配方法及装置 |
CN112437137A (zh) * | 2020-11-12 | 2021-03-02 | 翱捷科技(深圳)有限公司 | 一种物联网数据连接方法及*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1345149A (zh) * | 2000-08-07 | 2002-04-17 | 香港科技大学 | 用于流式数据的方法和装置 |
CN1972311A (zh) * | 2006-12-08 | 2007-05-30 | 华中科技大学 | 一种基于集群均衡负载的流媒体服务器*** |
EP1796010A2 (en) * | 2005-12-07 | 2007-06-13 | Samsung Electronics Co., Ltd. | Receiving and transmitting distributed content |
CN101014045A (zh) * | 2007-02-02 | 2007-08-08 | 清华大学 | 服务承载网中服务管理的分布式方法 |
CN102118376A (zh) * | 2010-01-06 | 2011-07-06 | 中兴通讯股份有限公司 | 内容分发网络服务器及内容下载方法 |
CN102752381A (zh) * | 2012-06-28 | 2012-10-24 | 北京邮电大学 | 一种应用于分布式存储的多活动副本机制及其存取方法 |
-
2012
- 2012-10-26 CN CN2012104178184A patent/CN102932442A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1345149A (zh) * | 2000-08-07 | 2002-04-17 | 香港科技大学 | 用于流式数据的方法和装置 |
EP1796010A2 (en) * | 2005-12-07 | 2007-06-13 | Samsung Electronics Co., Ltd. | Receiving and transmitting distributed content |
CN1972311A (zh) * | 2006-12-08 | 2007-05-30 | 华中科技大学 | 一种基于集群均衡负载的流媒体服务器*** |
CN101014045A (zh) * | 2007-02-02 | 2007-08-08 | 清华大学 | 服务承载网中服务管理的分布式方法 |
CN102118376A (zh) * | 2010-01-06 | 2011-07-06 | 中兴通讯股份有限公司 | 内容分发网络服务器及内容下载方法 |
CN102752381A (zh) * | 2012-06-28 | 2012-10-24 | 北京邮电大学 | 一种应用于分布式存储的多活动副本机制及其存取方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103607424A (zh) * | 2013-10-24 | 2014-02-26 | 北京奇虎科技有限公司 | 一种服务器连接方法及服务器*** |
CN103607424B (zh) * | 2013-10-24 | 2017-04-19 | 北京世界星辉科技有限公司 | 一种服务器连接方法及服务器*** |
CN105245565A (zh) * | 2015-08-28 | 2016-01-13 | 浪潮集团有限公司 | 一种云***、管理节点及数据获取的方法 |
CN106936888A (zh) * | 2015-12-30 | 2017-07-07 | 五八同城信息技术有限公司 | 数据收集的方法、装置及*** |
CN105652237A (zh) * | 2016-01-13 | 2016-06-08 | 广东欧珀移动通信有限公司 | 一种移动终端的定位方法、装置及移动终端 |
WO2017124925A1 (zh) * | 2016-01-18 | 2017-07-27 | 中兴通讯股份有限公司 | 存储***的服务质量控制方法和装置 |
CN105721612A (zh) * | 2016-04-19 | 2016-06-29 | 北京百度网讯科技有限公司 | 数据传输方法和装置 |
CN105721612B (zh) * | 2016-04-19 | 2019-05-07 | 北京百度网讯科技有限公司 | 数据传输方法和装置 |
CN106357435A (zh) * | 2016-08-31 | 2017-01-25 | 广州唯品会信息科技有限公司 | 同机房的匹配方法及装置 |
CN107729514A (zh) * | 2017-10-25 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种基于hadoop的副本放置节点确定方法及装置 |
CN111083244A (zh) * | 2018-10-22 | 2020-04-28 | 浙江宇视科技有限公司 | 集群地址分配方法及装置 |
CN111083244B (zh) * | 2018-10-22 | 2022-09-06 | 浙江宇视科技有限公司 | 集群地址分配方法及装置 |
CN112437137A (zh) * | 2020-11-12 | 2021-03-02 | 翱捷科技(深圳)有限公司 | 一种物联网数据连接方法及*** |
CN112437137B (zh) * | 2020-11-12 | 2021-09-28 | 翱捷科技(深圳)有限公司 | 一种物联网数据连接方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102932440A (zh) | 用于分布式数据存储***的数据管理方法、设备和*** | |
CN102932442A (zh) | 用于分布式数据存储***的设备、***及方法 | |
AU2018201459B2 (en) | System and method for improving access to search results | |
US10439937B2 (en) | Service addressing in distributed environment | |
US10587555B2 (en) | Event log analyzer | |
US9690645B2 (en) | Determining suspected root causes of anomalous network behavior | |
US8447757B1 (en) | Latency reduction techniques for partitioned processing | |
US8904144B1 (en) | Methods and systems for determining at risk index for storage capacity | |
US10225158B1 (en) | Policy based system management | |
CN104579765A (zh) | 一种集群***的容灾方法和装置 | |
CN113641526B (zh) | 告警根因定位方法、装置、电子设备及计算机存储介质 | |
CN106547805A (zh) | 优化数据库索引的方法和装置 | |
CN111026333A (zh) | 访问请求处理方法、处理装置、电子设备及存储介质 | |
Sloss et al. | Metrics that matter | |
US20150088826A1 (en) | Enhanced Performance for Data Duplication | |
US20130179569A1 (en) | Systems and methods for gateway status information handling | |
US9639582B2 (en) | Intelligent mapping for an enterprise grid | |
CN109254880A (zh) | 一种处理数据库宕机的方法及装置 | |
CN113672652A (zh) | 一种数据访问方法、装置、设备及存储介质 | |
US10846292B2 (en) | Event based object ranking in a dynamic system | |
CN112433891A (zh) | 数据处理方法、装置和服务器 | |
US20220405170A1 (en) | Systems and methods for application failover management using a distributed director and probe system | |
CN102902828A (zh) | 一种用于检索的方法和装置 | |
US20230010652A1 (en) | Systems and methods for automatic index creation in database deployment | |
US8626476B2 (en) | Determining the impact of elements in a technology system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130213 |
|
RJ01 | Rejection of invention patent application after publication |