一种数据库系统、数据库系统访问方法及装置的制造方法_3

文档序号:8258626阅读:来源:国知局
还可以包括:向主服务器发送所述数据服务器组中的数据服务器的数据分布状态是否更新的询问;当接收到所述主服务器发送的所述数据分布状态已发生更新的消息时,向所述主服务器发送获取所述数据分布状态的请求;接收并存储所述主服务器发送的所述数据分布状态。
[0055]在上述技术方案中,客户端在确定接收待处理的数据操作请求的目标数据服务器之前,向主服务器询问所述数据服务器组中的数据服务器的数据分布状态是否更新,当主服务器反馈的消息表明所述数据分布状态已发生更新时,客户端向所述主服务器发送获取所述数据分布状态的请求,接收并存储所述主服务器发送的新的数据分布状态,以避免客户端存储的数据服务器组中的数据服务器的数据分布状态为错误的,而当主服务器反馈的消息表明所述数据服务器组中的数据服务器的数据分布状态没有发生更新时,则不需要获取数据服务器组中的数据服务器的数据分布状态以避免重复获取影响客户端的性能。
[0056]由于一条数据操作请求涉及的数据范围可以在多台数据服务器的数据存储范围内,因此在确定该数据操作请求的目标数据服务器时,无法将该数据操作请求与某一台目标数据服务器直接映射。
[0057]为了解决上述技术问题,进一步地,所述根据存储的数据服务器组中的数据服务器的数据分布状态,确定接收待处理的数据操作请求的目标数据服务器,可以包括:确定所述待处理的数据操作请求所涉及的数据范围;根据所述待处理的数据操作请求所涉及的数据范围及所述数据服务器组中的数据服务器的数据分布状态确定目标数据服务器范围;根据所述目标数据服务器范围的数据分布状态拆分所述待处理的数据操作请求,所述每条拆分后的数据操作请求所涉及的数据在一台数据服务器存储的数据范围内;为所述每条拆分后的数据操作请求确定目标数据服务器。
[0058]在上述技术方案中,客户端根据待处理的数据操作请求所涉及的数据范围及所述数据服务器组中数据服务器的数据分布状态,确定接收待处理的数据操作请求的目标数据服务器。例如数据服务器组中数据服务器的数据分布状态为:数据服务器A存储的数据范围为字段G大于O小于1000,数据服务器B存储的数据范围为字段G大于等于1000小于2000,数据服务器C存储的数据范围为字段G大于等于2000小于3000,数据服务器D存储的数据范围为字段G大于等于3000小于4000,而数据操作请求所涉及的数据范围为字段G大于1500小于3200,则可以确定目标数据服务器范围包括数据服务器B、数据服务器C及数据服务器D。因此,该数据操作请求需要拆分为三条数据操作请求,第一条数据操作请求涉及的数据范围为字段G大于1500小于2000,第二条数据操作请求涉及的数据范围为字段G大于等于2000小于3000,第三条数据操起请求涉及的数据范围为字段G大于等于3000小于3200。然后为所述每条拆分后的数据操作请求确定目标数据服务器。对数据操作请求的拆分根据涉及的数据范围及数据服务器的数据分布状态来确定,当数据操作请求涉及的数据范围在一台数据服务器的数据存储范围内时,则无需对数据操作请求进行拆分。
[0059]由于查询数据操作请求次数远远多于增、删、改等数据操作请求次数,由一台数据服务器同时处理查询数据操作请求及增、删、改等数据操作请求会造成数据服务器的查询瓶颈,影响数据服务器的性能。
[0060]为了解决上述技术问题,进一步地,所述数据服务器组可以包括:读数据服务器组,包括多台读数据服务器,用于存储数据,并接收客户端发送的查询数据操作请求来执行相应的操作;写数据服务器组,包括多台写数据服务器,用于存储数据,并接收客户端发送的除查询数据操作请求以外的数据操作请求来执行相应的操作;所述每台写数据服务器均对应多台所述读数据服务器,所述写数据服务器存储的数据与对应的所述多台读数据服务器存储的数据相同。所述根据所述数据操作请求的类型,为所述每条拆分后的数据操作请求确定目标数据服务器,可以具体为:确定所述待处理的数据操作请求的类型;当所述待处理的数据操作请求为除查询操作之外的数据操作请求时,从所述每条拆分后的数据操作请求对应的所述数据服务器中确定写数据服务器为目标数据服务器;当所述待处理的数据操作请求为查询操作请求时,从所述每条拆分后的数据操作请求对应的所述数据服务器中确定一台读服务器为目标数据服务器。
[0061]在上述技术方案中,客户端根据待处理的数据操作请求的类型,确定所述拆分后的数据操作请求的目标数据服务器。
[0062]进一步地,所述从所述每条拆分后的数据操作请求对应的所述数据服务器中确定一台读数据服务器为目标数据服务器,可以具体为:根据负载均衡算法从所述每条拆分后的数据操作请求对应的所述数据服务器中确定一台读数据服务器为目标数据服务器。
[0063]在上述技术方案中,当待处理的数据操作请求为查询操作时,每条拆分后的数据操作请求对应的所述数据服务器中包括多台读数据服务器,每台读数据服务器中存储的数据相同,可以根据负载均衡算法从这些读数据服务器中确定一台读数据服务器为目标数据服务器,当然也可以根据其他算法来确定一台性能最好、状态最闲的读数据服务器为目标数据服务器。
[0064]图3为本发明实施例1提供的数据库系统访问装置的结构示意图。如图所示,所述装置包括:
[0065]确定模块,用于根据存储的数据服务器组中的数据服务器的数据分布状态,确定接收待处理的数据操作请求的目标数据服务器;
[0066]第一发送模块,用于将所述待处理的数据操作请求发送到所述目标数据服务器,以使得所述目标数据服务器根据所述待处理的数据操作请求进行相应的操作;
[0067]第一接收模块,用于接收所述目标数据服务器发送的与所述待处理的数据操作请求对应的操作结果。
[0068]在上述技术方案中,确定模块根据数据服务器组中的数据服务器的数据分布状态,确定接收待处理的数据操作请求的目标数据服务器,由第一发送模块将所述待处理的数据操作请求发送到所述目标数据服务器,第一接收模块接收所述目标数据服务器发送的与所述待处理的数据操作请求对应的操作结果。从而避免了由主服务器负责对数据操作请求的分拆操作,使得主服务器成为系统的瓶颈所在,容易成为故障点,足以引发一定范围的数据库异常的问题。
[0069]进一步地,所述装置还包括:第二发送模块,用于向主服务器发送所述数据服务器组中的数据服务器的数据分布状态是否更新的询问;第三发送模块,用于当接收到所述主服务器发送的所述数据分布状态已发生更新的消息时,向所述主服务器发送获取所述数据分布状态的请求;第二接收模块,用于接收并存储所述主服务器发送的所述数据分布状态。
[0070]进一步地,所述确定模块,包括:第一确定单元,用于确定所述待处理的数据操作请求所涉及的数据范围;第二确定单元,用于根据所述待处理的数据操作请求所涉及的数据范围及所述数据服务器组中的数据服务器的数据分布状态确定目标数据服务器范围;拆分单元,用于根据所述目标数据服务器范围的数据分布状态拆分所述待处理的数据操作请求,所述每条拆分后的数据操作请求所涉及的数据在一台数据服务器存储的数据范围内;第三确定单元,用于为所述每条拆分后的数据操作请求确定目标数据服务器。
[0071]进一步地,所述数据服务器组包括:读数据服务器组,包括多台读数据服务器,用于存储数据,并接收客户端发送的查询数据操作请求来执行相应的操作;写数据服务器组,包括多台写数据服务器,用于存储数据,并接收客户端发送的除查询数据操作请求以外的数据操作请求来执行相应的操作;所述每台写数据服务器均对应多台所述读数据服务器,所述写数据服务器存储的数据与对应的所述多台读数据服务器存储的数据相同。所述第三确定单元,还包括:第一确定子单元,用于确定所述待处理的数据操作请求的类型;第二确定子单元,用于当所述待处理的数据操作请求为除查询操作之外的数据操作请求时,从所述每条拆分后的数据操作请求对应的所述数据服务器中确定写数据服务器为目标数据服务器;第三确定子单元,用于当所述待处理的数据操作请求为查询操作请求时,从所述每条拆分后的数据操作请求对应的所述数据服务器中确定一台读服务器为目标数据服务器。
[0072]图4为本发明实施例2提供的数据库系统结构示意图。如图所示,所示数据库系统包括:
[0073]核心状态节点:用于实现实施例1中主服务器的作用。
[00
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1