CN106528844B - 一种数据请求方法及装置和数据存储*** - Google Patents
一种数据请求方法及装置和数据存储*** Download PDFInfo
- Publication number
- CN106528844B CN106528844B CN201611044045.4A CN201611044045A CN106528844B CN 106528844 B CN106528844 B CN 106528844B CN 201611044045 A CN201611044045 A CN 201611044045A CN 106528844 B CN106528844 B CN 106528844B
- Authority
- CN
- China
- Prior art keywords
- data
- request
- major key
- server
- value
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2219—Large Object storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种数据请求方法及装置和数据存储***,应用于数据存储***中的任一服务器,通过接收携带至少一个未关联有值的目标主键的数据请求;本地查找与目标主键关联的值;如果存在未查找到关联的值的目标主键,将查找到的值关联到相应的目标主键,并将关联有查找到的值的目标主键的数据请求转发至数据存储***中的另一未接收过数据请求的服务器;如果所有目标主键均查找到关联的值,将查找到的值关联到相应的目标主键,得到返回结果并发送给请求数据的客户端的方式,使得当客户端向数据存储***请求多个键值对时,不需与数据存储***中的服务器进行多次交互,在提高客户端接口性能的基础上,实现了在数据存储***中请求数据的目的。
Description
技术领域
本发明涉及数据请求处理技术领域,具体涉及一种数据请求方法及装置和数据存储***。
背景技术
因键值对数量庞大,故在数据存储***中具有不同主键的键值对可能会存放在数据存储***中的不同服务器。其中,数据存储***例如分布式存储***,所述分布式存储***由多个服务器组成;键值对是主键和与主键关联的值的组合,值可以表示内容信息,如昵称、性别等。
因键值对在数据存储***中的各个服务器上分布存储,所以当客户端向数据存储***请求多个键值对的时候,通常需要根据请求键值对的分布来访问数据存储***中的多个服务器,以保证从数据存储***拉取所有请求的键值对。
客户端与数据存储***中的服务器进行多次交互以实现对请求的多个键值对的拉取的方式,通常会存在客户端吞吐量低、进而导致影响客户端接口性能的问题。
发明内容
有鉴于此,本发明实施例提供一种数据请求方法及装置和数据存储***,以在提高客户端接口性能的基础上,实现在数据存储***中请求数据的目的。
为实现上述目的,本发明实施例提供如下技术方案:
一种数据请求方法,应用于数据存储***中的任一服务器,所述方法包括:
接收数据请求,所述数据请求携带至少一个未关联有值的目标主键;
本地查找与所述目标主键关联的值;
如果存在未查找到关联的值的目标主键,将查找到的值关联到相应的目标主键,并将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器;
如果所有目标主键均查找到关联的值,将查找到的值关联到相应的目标主键,得到返回结果,将所得到的返回结果发送给请求数据的客户端。
一种数据请求装置,应用于数据存储***中的任一服务器,所述装置包括:
数据请求接收单元,用于接收数据请求,所述数据请求携带至少一个未关联有值的目标主键;
本地查找单元,用于本地查找与所述目标主键关联的值;
数据请求转发单元,用于如果存在未查找到关联的值的目标主键,将查找到的值关联到相应的目标主键,并将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器;
结果返回单元,用于如果所有目标主键均查找到关联的值,将查找到的值关联到相应的目标主键,得到返回结果,将所得到的返回结果发送给请求数据的客户端。
一种数据存储***,包括至少一个服务器,各所述服务器包括:
存储器,预先存储有至少一个键值对;
处理器,接收数据请求,所述数据请求携带至少一个未关联有值的目标主键;
在所述存储器中查找与所述目标主键关联的值;
如果存在未查找到关联的值的目标主键,将查找到的值关联到相应的目标主键,并将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器;
如果所有目标主键均查找到关联的值,将查找到的值关联到相应的目标主键,得到返回结果,将所得到的返回结果发送给请求数据的客户端。
本申请实施例提供一种数据请求方法及装置和数据存储***,应用于数据存储***中的任一服务器,通过接收携带至少一个未关联有值的目标主键的数据请求;本地查找与目标主键关联的值;如果存在未查找到关联的值的目标主键,将查找到的值关联到相应的目标主键,并将关联有查找到的值的目标主键的数据请求转发至数据存储***中的另一未接收过数据请求的服务器;如果所有目标主键均查找到关联的值,将查找到的值关联到相应的目标主键,得到返回结果并发送给请求数据的客户端的方式,使得当客户端向数据存储***请求多个键值对时,不需与数据存储***中的服务器进行多次交互,在提高客户端接口性能的基础上,实现了在数据存储***中请求数据的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据请求方法应用场景示意图;
图2为本申请实施例提供的一种数据请求方法流程图;
图3为本申请实施例提供的一种将查找到的值关联到相应的目标主键,并将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器的方法流程图;
图4为本申请实施例提供的另一种数据请求方法流程图;
图5为本申请实施例提供的一种将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器的方法流程图;
图6为本申请实施例提供的一种从所述数据存储***中未接收过数据请求的服务器中,确定本地存储有与所确定的目标主键关联的值的服务器的方法流程图;
图7为本申请实施例提供的另一种将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器的方法流程图;
图8为本申请实施例提供的一种从所确定的服务器中,确定与所确定的目标主键利用所述取模算法计算得到的取模余数相匹配的服务器的方法流程图;
图9为本申请实施例提供的一种数据请求装置的结构示意图;
图10为本申请实施例提供的一种数据请求转发单元的详细结构示意图;
图11为本申请实施例提供的另一种数据请求转发单元的详细结构示意图;
图12为本申请实施例提供的一种第二确定单元的详细结构示意图;
图13为本申请实施例提供的又一种数据请求转发单元的详细结构示意图;
图14为本申请实施例提供的一种第五确定单元的详细结构示意图;
图15为本申请实施例提供的一种数据请求装置的硬件结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:
图1为本申请实施例提供的一种数据请求方法应用场景示意图。
本申请实施例提供的一种数据请求方法应用于数据存储***,所述数据存储***中包括至少一个服务器。具体的,如图1所示的数据存储***中仅仅体现了三个服务器,且分别以服务器1、服务器2和服务器3命名。可选的,发明人可根据自己的需求任意设置数据存储***中包括的服务器的个数,在此不做限定。并且,此处将数据存储***中的三个服务器分别用服务器1、服务器2和服务器3命名,只是为了描述方便,在此不做限定。
可选的,客户端向数据存储***请求多个键值对时,只需向数据存储***中的任意一个服务器发送数据请求即可。这里并不限定如图1所示客户端只能将数据请求发送给服务器1,可选的,客户端可将数据请求发送至服务器1、服务器2或服务器3中的任意一个。
以图1为例进行说明:客户端向数据存储***请求多个键值对时,只需向数据存储***中的任意一个服务器(例如服务器1)发送数据请求,进而在数据存储***中的各个服务器之间实现数据请求的转发,以得到返回结果。如图1所示的数据请求在数据存储***的各个服务器之间的转发方式是本申请实施例提供的优选方案,有关数据请求在数据存储***中的各个服务器之间的转发方式在此不做限定。例如,客户端将数据请求发送至数据存储***后,数据请求可能只需在数据存储***中的部分服务器之间进行转发即可得到返回结果。
需要说明的是:针对位于数据存储***中的每个服务器而言,只要接收到数据请求,即需按照如下图2所示的数据请求方法流程图执行相应的数据请求方法。
如图2所示,该方法包括:
S101、接收数据请求,所述数据请求携带至少一个未关联有值的目标主键;
可选的,接收数据请求的方式包括:接收客户端发送的数据请求,或者,接收上一接收数据请求的服务器转发的数据请求(例如,客户端将数据请求发送给服务器1、服务器1将数据请求转发给服务器2时,可认为服务器2是接收的上一接收数据请求的服务器(服务器1)转发的数据请求。
需要说明的是:接收到的数据请求中携带至少一个未关联有值的目标主键。即,接收到的数据请求中携带至少一个目标主键,所述目标主键未关联有值。数据请求的目的是:获取数据请求携带的各目标主键关联的值。
S102、本地查找与所述目标主键关联的值;
可选的,服务器接收到数据请求后,本地查找与所述目标主键关联的值的方式,包括:服务器在与其相连的数据库中查找与所述目标主键关联的值。即,将与服务器相连的数据库确定为所述服务器的本地。
可选的,与服务器相连的数据库可设置于所述服务器上,或者独立于所述服务器与所述服务器相连,在此不做限定。
可选的,与服务器相连的数据库可以是由多个数据库组成的服务器集群,也可是单独的一个数据库,有关与服务器相连的数据库的具体形式,在此不做限定。
S103、判断是否存在未查找到关联的值的目标主键;如果存在未查找到关联的值的目标主键,执行步骤S104;如果所有目标主键均查找到关联的值,执行步骤S105;
可选的,从步骤S101中确定的目标主键中,确定是否存在未查找到关联的值的目标主键;如果存在未查找到关联的值的目标主键,执行步骤S104;如果所有目标主键均查找到关联的值,执行步骤S105。
S104、将查找到的值关联到相应的目标主键,并将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器;
可选的,将查找到的值关联到相应的目标主键的方式包括:针对每个查找到的值,确定与所述查找到的值关联的目标主键,并将所述查找到的值关联到所确定的目标主键。
S105、将查找到的值关联到相应的目标主键,得到返回结果,将所得到的返回结果发送给请求数据的客户端。
可选的,所述返回结果包括“如果所有目标主键均查找到关联的值,将查找到的值关联到相应的目标主键,得到的关联有查找到的值的目标主键的数据请求”。
以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设置返回结果中包括的具体内容,在此不做限定。
为了更加全面的对本申请实施例提供的一种数据请求方法进行阐述,现对本申请实施例提供的一种数据请求中的“将查找到的值关联到相应的目标主键,并将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器”过程进行详细介绍,具体请参见图3。
图3为本申请实施例提供的一种将查找到的值关联到相应的目标主键,并将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器的方法流程图。
如图3所示,该方法包括:
S201、在所接收的数据请求中,将查找到的值关联到相应的目标主键,得到关联有查找到的值的目标主键的数据请求;
可选的,服务器接收到数据请求(所述数据请求携带至少一个未关联有值的目标主键);本地查找与所述目标主键关联的值;如果存在未查找到关联的值的目标主键,在所接收的数据请求中,将查找到的值关联到相应的目标主键,得到关联有查找到的值的目标主键的数据请求。
S202、转发所得到的数据请求至所述数据存储***中的另一未接收过数据请求的服务器。
可选的,将上述步骤S201所得到的数据请求(关联有查找到的值的目标主键的数据请求)转发至所述数据存储***中另一未接收过数据请求的服务器。
可选的,转发所得到的数据请求至所述数据存储***中的另一未接收过数据请求的服务器,包括:转发所得到的数据请求至所述数据存储***中的任何一个未接收过数据请求的服务器。
通过上述对本申请实施例提供的一种将查找到的值关联到相应的目标主键,并将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器的方法的进一步介绍,使得本申请实施例提供的数据请求方法更加清晰、完整,便于本领域技术人员理解。
可选的,本申请实施例中,将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器后,调整转发次数与数据请求的已转发次数相应。
在本申请实施例中,优选的,每当将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收到数据请求的服务器后,均调整转发次数与数据请求的已转发次数相应。
可选的,转发次数与数据请求的已转发次数相应,包括:转发次数与数据请求已转发次数相同。
以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设置转发次数与数据请求的已转发次数相应的具体方式,在此不做限定。
进一步,为了更加全面的对本申请实施例提供的一种数据请求方法进行阐述,现对本申请实施例提供的另一种数据请求方法进行详细介绍,具体请参见图4。
图4为本申请实施例提供的另一种数据请求方法流程图。
如图4所示,该方法包括:
S301、接收数据请求,所述数据请求携带至少一个未关联有值的目标主键;
S302、本地查找与所述目标主键关联的值;
S303、判断是否存在未查找到关联的值的目标主键;如果存在未查找到关联的值的目标主键,执行步骤S304;如果所有目标主键均查找到关联的值,执行步骤S307;
S304、将查找到的值关联到相应的目标主键;
S305、判断当前转发次数是否与所述数据存储***中的服务器的数量匹配;如果当前转发次数与所述数据存储***中的服务器的数量不匹配,执行步骤S306;
可选的,当前转发次数与数据存储***中的服务器的数量不匹配时,说明所述数据存储***中还存在未接收到数据请求的服务器,因此,执行步骤S306,将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器(即,将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的任何一个未接收过数据请求的服务器)。
S306、将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器;
S307、如果所有目标主键均查找到关联的值,将查找到的值关联到相应的目标主键,得到返回结果,将所得到的返回结果发送给请求数据的客户端。
参见图4可知,本申请实施例提供的一种数据请求方法,在如果当前转发次数与所述数据存储***中的服务器的数量匹配时,进一步包括步骤S308、根据所述关联有查找到的值的目标主键的数据请求确定返回结果,将所确定的返回结果发送给请求数据的客户端。
可选的,当前转发次数与所述数据存储***中的服务器的数量匹配时,说明所述数据存储***中已不存在未接收过数据请求的服务器,因此,所述关联有查找到的值的目标主键的数据请求确定返回结果,将所确定的返回结果发送给请求数据的客户端即可。
通过上述对本申请实施例提供的另一种数据请求方法的进一步介绍,使得本申请实施例提供的数据请求方法更加清晰、完整,便于本领域技术人员理解。
进一步,为了更加全面的对本申请实施例提供的一种数据请求方法进行阐述,现对本申请实施例提供的一种数据请求方法中的“将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器”过程进行详细介绍,具体请参见图5。
图5为本申请实施例提供的一种将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器的方法流程图。
如图5所示,该方法包括:
S401、从关联有查找到的值的目标主键的数据请求中,确定未关联有值的目标主键;
可选的,从关联有查找到的值的目标主键的数据请求中,确定未关联有值的目标主键,包括:确定关联有查找到的值的目标主键的数据请求中存在的未关联有值的目标主键。
S402、从所述数据存储***中未接收过数据请求的服务器中,确定本地存储有与所确定的目标主键关联的值的服务器;
可选的,当从关联有查找到的值的目标主键的数据请求中,确定未关联有值的目标主键后,需从所述数据存储***中未接收过数据请求的服务器中,确定本地存储有与所确定的目标主键关联的值的各个服务器。
S403、将关联有查找到的值的目标主键的数据请求转发至所确定的任意一个本地存储有与所确定的目标主键关联的值的服务器。
所述将关联有查找到的值的目标主键的数据请求转发至所确定的任意一个本地存储有与所确定的目标主键关联的值的服务器,包括:将关联有查找到的值的目标主键的数据请求转发至步骤S402所确定的任意一个服务器中。
进一步的,图6为本申请实施例提供的一种从所述数据存储***中未接收过数据请求的服务器中,确定本地存储有与所确定的目标主键关联的值的服务器的方法流程图。
如图6所示,该方法包括:
S501、确定所述数据存储***中未接收过数据请求的服务器;
S502、分别获取所确定的每个所述服务器本地存储的键值对的主键;
可选的,数据存储***中的每个服务器中均存储有所述数据存储***中的其他每个服务器的键值对列表;当接收数据请求的服务器确定所述数据存储***中未接收过数据请求的服务器后,获取所确定的每个服务器的键值对列表,所述键值对列表中包括至少一个键值对;进而分别获取每个键值对列表中包括的各个主键,作为与所述键值对列表对应的服务器本地存储的主键。
S503、从所确定的服务器中,确定本地存储有与所确定的目标主键相同的主键的服务器。
可选的,从所确定的服务器中,确定本地存储有与所确定的目标主键相同的主键的服务器作为从所述数据存储***中未接收过数据请求的服务器中,确定的本地存储有与所确定的目标主键关联的值的服务器。
通过上述对本申请实施例提供的一种将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器方法的进一步介绍,使得本申请实施例提供的数据请求方法更加清晰、完整,便于本领域技术人员理解。
进一步,为了更加全面的对本申请实施例提供的一种数据请求方法进行阐述,现对本申请实施例提供的一种数据请求方法中的“将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器”过程进行详细介绍,具体请参见图7。
图7为本申请实施例提供的另一种将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器的方法流程图。
如图7所示,该方法包括:
S601、从关联有查找到的值的目标主键的数据请求中,确定未关联有值的目标主键;
S602、确定所述数据存储***中未接收过数据请求的服务器;
S603、获取所述数据存储***的取模算法以及所确定的每个所述服务器的本地取模余数;
可选的,当数据存储***中的各个服务器利用取模方式存储键值对时,所述数据存储***中各个服务器采用的取模算法相同,这时不仅需要获取数据存储***的取模算法,所述取模算法包括:用于被取模的数值(如对3进行取模中的数值3);还需要获取所述数据存储***中的每个服务器的本地取模余数(本地取模余数是相对于服务器存储的键值对中的主键而言的,本地取模余数是服务器本地存储的键值对的主键按照取模算法进行取模时的余数)。例如,当数据存储***包括两个服务器(服务器1和服务器2),所述数据存储***的取模算法指示对3取模,服务器1的取模余数为1(表示服务器1中存储的各键值对的主键对3进行取模的余数均是1),服务器2的取模余数为2(表示服务器2中存储的各键值对的主键对3进行取模的余数均是2)。
S604、从所确定的服务器中,确定与所确定的目标主键利用所述取模算法计算得到的取模余数相匹配的服务器;
可选的,服务器与所确定的目标主键利用所述取模算法计算得到的取模余数匹配的方式包括:服务器的本地取模余数与所确定的目标主键利用所述取模算法计算得到的取模余数相同。
S605、将关联有查找到的值的目标主键的数据请求转发至所确定的任意一个与所确定的目标主键利用所述取模算法计算得到取模余数相匹配的服务器。
可选的,将关联有查找到的值的目标主键的数据请求转发至所确定的任意一个与所确定的目标主键利用所述取模算法计算得到取模余数相匹配的服务器,包括:将关联有查找到的值的目标主键的数据请求转发至上述步骤S604中所确定的服务器中的任意一个。
进一步的,图8为本申请实施例提供的一种从所确定的服务器中,确定与所确定的目标主键利用所述取模算法计算得到的取模余数相匹配的服务器的方法流程图。
如图8所示,该方法包括:
S701、利用所述取模算法分别计算所确定的每个目标主键的取模余数;
可选的,利用所述取模算法分别计算所确定的每个目标主键的取模余数,包括:针对所确定的每个目标主键,利用所述取模算法计算所述目标主键的取模余数。例如,当目标主键的数值为5时,若取模算法指示对3进行取模计算,则针对数值为5的目标主键,对3进行取模计算,所述目标主键的数值为5的取模余数为2。
S702、从所确定的服务器中,确定具有与计算得到的取模余数中的任意一个取模余数相同的本地取模余数的服务器。
可选的,从所确定的服务器中,确定的具有与计算得到的取模余数中的任意一个取模余数相同的本地取模余数的服务器,作为从所确定的服务器中,确定的与所确定的目标主键利用所述取模算法计算得到的取模余数相匹配的服务器。
通过上述对本申请实施例提供的一种将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器方法的进一步介绍,使得本申请实施例提供的数据请求方法更加清晰、完整,便于本领域技术人员理解。
上述本发明公开的实施例中详细描述了方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了一种数据请求装置,下面给出具体的实施例进行详细说明。
图9为本申请实施例提供的一种数据请求装置的结构示意图。
在本申请实施例中,优选的,如图9所示的装置应用于数据存储***中的任一服务器。
如图9所示,该装置包括:
数据请求接收单元81,用于接收数据请求,所述数据请求携带至少一个未关联有值的目标主键;
本地查找单元82,用于本地查找与所述目标主键关联的值;
数据请求转发单元83,用于如果存在未查找到关联的值的目标主键,将查找到的值关联到相应的目标主键,并将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器;
结果返回单元84,用于如果所有目标主键均查找到关联的值,将查找到的值关联到相应的目标主键,得到返回结果,将所得到的返回结果发送给请求数据的客户端。
本发明实施例提供的数据请求转发单元83的一种可选结构参见图10,数据请求转发单元83包括:
关联单元91,用于如果存在未查找到关联的值的目标主键,在所接收的数据请求中,将查找到的值关联到相应的目标主键,得到关联有查找到的值的目标主键的数据请求;
第一数据请求转发子单元92,用于转发所得到的数据请求至所述数据存储***中的另一未接收过数据请求的服务器。
在本申请实施例中,优选的,将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器后,调整转发次数与数据请求的已转发次数相应。
本发明实施例提供的数据请求转发单元83的一种可选结构,数据请求转发单元83包括:第一转发单元,用于如果当前转发次数与所述数据存储***中的服务器的数量不匹配,将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器。
进一步的,本申请实施例提供的一种数据请求转发单元83还包括:第二转发单元,用于如果当前转发次数与所述数据存储***中的服务器的数量匹配,根据所述关联有查找到的值的目标主键的数据请求确定返回结果,将所确定的返回结果发送给请求数据的客户端。
本发明实施例提供的数据请求转发单元83的另一种可选结构参见图11,数据请求转发单元83包括:
第一确定单元101,用于从关联有查找到的值的目标主键的数据请求中,确定未关联有值的目标主键;
第二确定单元102,用于从所述数据存储***中未接收过数据请求的服务器中,确定本地存储有与所确定的目标主键关联的值的服务器;
第二数据请求转发子单元103,用于将关联有查找到的值的目标主键的数据请求转发至所确定的任意一个本地存储有与所确定的目标主键关联的值的服务器。
本发明实施例提供的第二确定单元102的一种可选结构参见图12,第二确定单元102包括:
第一服务器确定单元111,用于确定所述数据存储***中未接收过数据请求的服务器;
主键获取单元112,用于分别获取所确定的每个所述服务器本地存储的键值对的主键;
第二服务器确定单元113,用于从所确定的服务器中,确定本地存储有与所确定的目标主键相同的主键的服务器。
本发明实施例提供的数据请求转发单元83的又一种可选结构参见图13数据请求转发单元83包括:
第三确定单元121,用于从关联有查找到的值的目标主键的数据请求中,确定未关联有值的目标主键;
第四确定单元122,用于确定所述数据存储***中未接收过数据请求的服务器;
取模余数获取单元123,用于获取所述数据存储***的取模算法以及所确定的每个所述服务器的本地取模余数;
第五确定单元124,用于从所确定的服务器中,确定与所确定的目标主键利用所述取模算法计算得到的取模余数相匹配的服务器;
计算单元125,用于将关联有查找到的值的目标主键的数据请求转发至所确定的任意一个与所确定的目标主键利用所述取模算法计算得到取模余数相匹配的服务器。
本发明实施例提供的第五确定单元124的一种可选结构参见图14,第五确定单元124包括:
取模余数计算单元131,用于利用所述取模算法分别计算所确定的每个目标主键的取模余数;
第三服务器确定单元132,用于从所确定的服务器中,确定具有与计算得到的取模余数中的任意一个取模余数相同的本地取模余数的服务器。
可选的,数据请求装置可以为硬件设备,上文描述的模块、单元可以为设置于数据请求装置内的功能模块。图15示出了数据请求装置的硬件结构框图,参照图15,数据请求装置可以包括:处理器141,通信接口142,存储器143和通信总线144;其中处理器141、通信接口142、存储器143通过通信总线144完成相互间的通信;可选的,通信接口142可以为通信模块的接口,如GSM模块的接口;
处理器141,用于执行程序;存储器143,用于存放程序;程序可以包括程序代码,程序代码包括计算机操作指令;
处理器141可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路;存储器143可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
其中,程序可具体用于:
接收数据请求,所述数据请求携带至少一个未关联有值的目标主键;
本地查找与所述目标主键关联的值;
如果存在未查找到关联的值的目标主键,将查找到的值关联到相应的目标主键,并将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器;
如果所有目标主键均查找到关联的值,将查找到的值关联到相应的目标主键,得到返回结果,将所得到的返回结果发送给请求数据的客户端。
本申请实施例提供一种数据请求装置,应用于数据存储***中的任一服务器,通过接收携带至少一个未关联有值的目标主键的数据请求;本地查找与目标主键关联的值;如果存在未查找到关联的值的目标主键,将查找到的值关联到相应的目标主键,并将关联有查找到的值的目标主键的数据请求转发至数据存储***中的另一未接收过数据请求的服务器;如果所有目标主键均查找到关联的值,将查找到的值关联到相应的目标主键,得到返回结果并发送给请求数据的客户端的方式,使得当客户端向数据存储***请求多个键值对时,不需与数据存储***中的服务器进行多次交互,在提高客户端接口性能的基础上,实现了在数据存储***中请求数据的目的。
本发明实施例还公开一种数据存储***,所述数据存储***包括至少一个服务器,各所述服务器包括:
存储器,预先存储有至少一个键值对;
处理器,接收数据请求,所述数据请求携带至少一个未关联有值的目标主键;
在所述存储器中查找与所述目标主键关联的值;
如果存在未查找到关联的值的目标主键,将查找到的值关联到相应的目标主键,并将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器;
如果所有目标主键均查找到关联的值,将查找到的值关联到相应的目标主键,得到返回结果,将所得到的返回结果发送给请求数据的客户端。
本申请实施例提供一种数据存储***,应用于数据存储***中的任一服务器,通过接收携带至少一个未关联有值的目标主键的数据请求;本地查找与目标主键关联的值;如果存在未查找到关联的值的目标主键,将查找到的值关联到相应的目标主键,并将关联有查找到的值的目标主键的数据请求转发至数据存储***中的另一未接收过数据请求的服务器;如果所有目标主键均查找到关联的值,将查找到的值关联到相应的目标主键,得到返回结果并发送给请求数据的客户端的方式,使得当客户端向数据存储***请求多个键值对时,不需与数据存储***中的服务器进行多次交互,在提高客户端接口性能的基础上,实现了在数据存储***中请求数据的目的。
综上:
本申请实施例提供一种数据请求方法及装置和数据存储***,应用于数据存储***中的任一服务器,通过接收携带至少一个未关联有值的目标主键的数据请求;本地查找与目标主键关联的值;如果存在未查找到关联的值的目标主键,将查找到的值关联到相应的目标主键,并将关联有查找到的值的目标主键的数据请求转发至数据存储***中的另一未接收过数据请求的服务器;如果所有目标主键均查找到关联的值,将查找到的值关联到相应的目标主键,得到返回结果并发送给请求数据的客户端的方式,使得当客户端向数据存储***请求多个键值对时,不需与数据存储***中的服务器进行多次交互,在提高客户端接口性能的基础上,实现了在数据存储***中请求数据的目的。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (17)
1.一种数据请求方法,其特征在于,应用于数据存储***中的任一服务器,所述方法包括:
接收数据请求,所述数据请求携带至少一个未关联有值的目标主键;
本地查找与所述目标主键关联的值;
如果存在未查找到关联的值的目标主键,将查找到的值关联到所接收到的数据请求中的相应的目标主键,得到关联有查找到的值的目标主键的数据请求,并将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器;
如果所有目标主键均查找到关联的值,将查找到的值关联到相应的目标主键,得到返回结果,将所得到的返回结果发送给请求数据的客户端。
2.根据权利要求1所述的方法,其特征在于,所述将查找到的值关联到相应的目标主键,并将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器,包括:
在所接收的数据请求中,将查找到的值关联到相应的目标主键,得到关联有查找到的值的目标主键的数据请求;
转发所得到的数据请求至所述数据存储***中的另一未接收过数据请求的服务器。
3.根据权利要求1所述的方法,其特征在于,将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器后,调整转发次数与数据请求的已转发次数相应;
所述将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器,包括:
如果当前转发次数与所述数据存储***中的服务器的数量不匹配,将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器。
4.根据权利要求3所述的方法,其特征在于,还包括:
如果当前转发次数与所述数据存储***中的服务器的数量匹配,根据所述关联有查找到的值的目标主键的数据请求确定返回结果,将所确定的返回结果发送给请求数据的客户端。
5.根据权利要求1所述的方法,其特征在于,所述将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器,包括:
从关联有查找到的值的目标主键的数据请求中,确定未关联有值的目标主键;
从所述数据存储***中未接收过数据请求的服务器中,确定本地存储有与所确定的目标主键关联的值的服务器;
将关联有查找到的值的目标主键的数据请求转发至所确定的任意一个本地存储有与所确定的目标主键关联的值的服务器。
6.根据权利要求5所述的方法,其特征在于,所述从所述数据存储***中未接收过数据请求的服务器中,确定本地存储有与所确定的目标主键关联的值的服务器,包括:
确定所述数据存储***中未接收过数据请求的服务器;
分别获取所确定的每个所述服务器本地存储的键值对的主键;
从所确定的服务器中,确定本地存储有与所确定的目标主键相同的主键的服务器。
7.根据权利要求1所述的方法,其特征在于,所述将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器,包括:
从关联有查找到的值的目标主键的数据请求中,确定未关联有值的目标主键;
确定所述数据存储***中未接收过数据请求的服务器;
获取所述数据存储***的取模算法以及所确定的每个所述服务器的本地取模余数;
从所确定的服务器中,确定与所确定的目标主键利用所述取模算法计算得到的取模余数相匹配的服务器;
将关联有查找到的值的目标主键的数据请求转发至所确定的任意一个与所确定的目标主键利用所述取模算法计算得到取模余数相匹配的服务器。
8.根据权利要求7所述的方法,其特征在于,所述从所确定的服务器中,确定与所确定的目标主键利用所述取模算法计算得到的取模余数相匹配的服务器,包括:
利用所述取模算法分别计算所确定的每个目标主键的取模余数;
从所确定的服务器中,确定具有与计算得到的取模余数中的任意一个取模余数相同的本地取模余数的服务器。
9.一种数据请求装置,其特征在于,应用于数据存储***中的任一服务器,所述装置包括:
数据请求接收单元,用于接收数据请求,所述数据请求携带至少一个未关联有值的目标主键;
本地查找单元,用于本地查找与所述目标主键关联的值;
数据请求转发单元,用于如果存在未查找到关联的值的目标主键,将查找到的值关联到所接收到的数据请求中的相应的目标主键,得到关联有查找到的值的目标主键的数据请求,并将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器;
结果返回单元,用于如果所有目标主键均查找到关联的值,将查找到的值关联到相应的目标主键,得到返回结果,将所得到的返回结果发送给请求数据的客户端。
10.根据权利要求9所述的装置,其特征在于,所述数据请求转发单元,包括:
关联单元,用于如果存在未查找到关联的值的目标主键,在所接收的数据请求中,将查找到的值关联到相应的目标主键,得到关联有查找到的值的目标主键的数据请求;
第一数据请求转发子单元,用于转发所得到的数据请求至所述数据存储***中的另一未接收过数据请求的服务器。
11.根据权利要求9所述的装置,其特征在于,将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器后,调整转发次数与数据请求的已转发次数相应;
所述数据请求转发单元,包括:
第一转发单元,用于如果当前转发次数与所述数据存储***中的服务器的数量不匹配,将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器。
12.根据权利要求11所述的装置,其特征在于,所述数据请求转发单元,还包括:
第二转发单元,用于如果当前转发次数与所述数据存储***中的服务器的数量匹配,根据所述关联有查找到的值的目标主键的数据请求确定返回结果,将所确定的返回结果发送给请求数据的客户端。
13.根据权利要求9所述的装置,其特征在于,所述数据请求转发单元,包括:
第一确定单元,用于从关联有查找到的值的目标主键的数据请求中,确定未关联有值的目标主键;
第二确定单元,用于从所述数据存储***中未接收过数据请求的服务器中,确定本地存储有与所确定的目标主键关联的值的服务器;
第二数据请求转发子单元,用于将关联有查找到的值的目标主键的数据请求转发至所确定的任意一个本地存储有与所确定的目标主键关联的值的服务器。
14.根据权利要求13所述的装置,其特征在于,所述第二确定单元,包括:
第一服务器确定单元,用于确定所述数据存储***中未接收过数据请求的服务器;
主键获取单元,用于分别获取所确定的每个所述服务器本地存储的键值对的主键;
第二服务器确定单元,用于从所确定的服务器中,确定本地存储有与所确定的目标主键相同的主键的服务器。
15.根据权利要求9所述的装置,其特征在于,所述数据请求转发单元,包括:
第三确定单元,用于从关联有查找到的值的目标主键的数据请求中,确定未关联有值的目标主键;
第四确定单元,用于确定所述数据存储***中未接收过数据请求的服务器;
取模余数获取单元,用于获取所述数据存储***的取模算法以及所确定的每个所述服务器的本地取模余数;
第五确定单元,用于从所确定的服务器中,确定与所确定的目标主键利用所述取模算法计算得到的取模余数相匹配的服务器;
计算单元,用于将关联有查找到的值的目标主键的数据请求转发至所确定的任意一个与所确定的目标主键利用所述取模算法计算得到取模余数相匹配的服务器。
16.根据权利要求15所述的装置,其特征在于,所述第五确定单元,包括:
取模余数计算单元,用于利用所述取模算法分别计算所确定的每个目标主键的取模余数;
第三服务器确定单元,用于从所确定的服务器中,确定具有与计算得到的取模余数中的任意一个取模余数相同的本地取模余数的服务器。
17.一种数据存储***,其特征在于,包括至少一个服务器,各所述服务器包括:
存储器,预先存储有至少一个键值对;
处理器,接收数据请求,所述数据请求携带至少一个未关联有值的目标主键;
在所述存储器中查找与所述目标主键关联的值;
如果存在未查找到关联的值的目标主键,将查找到的值关联到所接收到的数据请求中的相应的目标主键,得到关联有查找到的值的目标主键的数据请求,并将关联有查找到的值的目标主键的数据请求转发至所述数据存储***中的另一未接收过数据请求的服务器;
如果所有目标主键均查找到关联的值,将查找到的值关联到相应的目标主键,得到返回结果,将所得到的返回结果发送给请求数据的客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611044045.4A CN106528844B (zh) | 2016-11-24 | 2016-11-24 | 一种数据请求方法及装置和数据存储*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611044045.4A CN106528844B (zh) | 2016-11-24 | 2016-11-24 | 一种数据请求方法及装置和数据存储*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106528844A CN106528844A (zh) | 2017-03-22 |
CN106528844B true CN106528844B (zh) | 2019-07-05 |
Family
ID=58356886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611044045.4A Active CN106528844B (zh) | 2016-11-24 | 2016-11-24 | 一种数据请求方法及装置和数据存储*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106528844B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107094178B (zh) * | 2017-05-11 | 2019-06-18 | 广东网金控股股份有限公司 | 一种互联网数据传输方法、装置以及服务器终端 |
CN110019212B (zh) * | 2017-11-29 | 2021-06-18 | 杭州海康威视数字技术股份有限公司 | 一种数据处理方法、装置及数据库服务器 |
CN108235074B (zh) * | 2018-01-08 | 2021-03-16 | 武汉斗鱼网络科技有限公司 | 一种发送、接收密钥信息的方法、服务器及计算机设备 |
CN110535969B (zh) * | 2019-09-16 | 2021-06-15 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据存储方法、装置、存储介质和设备 |
CN112799872B (zh) * | 2021-02-19 | 2022-08-12 | 上海交通大学 | 一种基于键值对存储***的纠删码编码方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706819A (zh) * | 2009-12-14 | 2010-05-12 | 金蝶软件(中国)有限公司 | 数据库的查询方法和***,客户端、服务器及数据库 |
CN102402590A (zh) * | 2011-10-31 | 2012-04-04 | 深圳中兴力维技术有限公司 | 一种键值数据管理方法及*** |
CN104683422A (zh) * | 2013-12-03 | 2015-06-03 | 腾讯科技(深圳)有限公司 | 数据传输方法及装置 |
CN105141672A (zh) * | 2015-08-03 | 2015-12-09 | 广州神马移动信息科技有限公司 | 一种数据存储方法、装置及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8949294B2 (en) * | 2011-03-23 | 2015-02-03 | Red Hat, Inc. | Data grid supporting multiple protocols |
-
2016
- 2016-11-24 CN CN201611044045.4A patent/CN106528844B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706819A (zh) * | 2009-12-14 | 2010-05-12 | 金蝶软件(中国)有限公司 | 数据库的查询方法和***,客户端、服务器及数据库 |
CN102402590A (zh) * | 2011-10-31 | 2012-04-04 | 深圳中兴力维技术有限公司 | 一种键值数据管理方法及*** |
CN104683422A (zh) * | 2013-12-03 | 2015-06-03 | 腾讯科技(深圳)有限公司 | 数据传输方法及装置 |
CN105141672A (zh) * | 2015-08-03 | 2015-12-09 | 广州神马移动信息科技有限公司 | 一种数据存储方法、装置及*** |
Also Published As
Publication number | Publication date |
---|---|
CN106528844A (zh) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106528844B (zh) | 一种数据请求方法及装置和数据存储*** | |
US10506043B2 (en) | Rapid client-side component processing based on component relationships | |
CN107004013A (zh) | 用于使用基于硬件的处理来提供分布式树遍历的***和方法 | |
EP2904737B1 (en) | Consistency-based service-level agreements in cloud storage environments | |
CN105224609B (zh) | 一种索引查询方法及装置 | |
CN108153757A (zh) | 一种哈希表管理的方法和装置 | |
WO2022121538A1 (zh) | 基于区块链的数据同步方法、***及相关设备 | |
US20140025723A1 (en) | Cloud storage system and data storage and sharing method based on the system | |
CN110325985A (zh) | 使用对高速缓存友好的存储器内散列索引的原子rdma读取的基于主键的高效查询的方法 | |
CN103873602A (zh) | 一种网络资源命名方法与生成装置 | |
CN109521962A (zh) | 一种元数据查询方法、装置、设备及计算机可读存储介质 | |
CN108268524A (zh) | 数据库聚合处理方法及装置 | |
CN104951466A (zh) | 一种poi信息搜索方法、装置、***及相关设备 | |
CN110046062A (zh) | 分布式数据处理方法及*** | |
US20180321706A1 (en) | Timestamp Alignment Across a Plurality Of Computing Devices | |
CN105843867A (zh) | 基于元数据模型的检索方法和基于元数据模型的检索装置 | |
US20150026102A1 (en) | Directory service discovery and/or learning | |
CN109565468A (zh) | 确定通信网络中的路径 | |
CN110413845A (zh) | 基于物联网操作***的资源存储方法及装置 | |
CN105045536B (zh) | 一种数据存储的方法、装置与*** | |
CN109739684A (zh) | 基于向量时钟的分布式键值数据库的副本修复方法与装置 | |
WO2016101759A1 (zh) | 一种数据路由方法、数据管理装置和分布式存储*** | |
WO2022057525A1 (zh) | 一种数据找回方法、装置、电子设备及存储介质 | |
JP2012252705A (ja) | 階層的な名前構造に基づいたネットワークにおけるコンテンツ要請者及びコンテンツ回答者の通信方法及び装置 | |
CN108540583A (zh) | 一种cdn***中的域名下发方法及装置,电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |