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

文档序号:8258626阅读:355来源:国知局
一种数据库系统、数据库系统访问方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机通信领域,尤其涉及一种数据库系统、数据库系统访问方法及
>J-U ρ?α装直。
【背景技术】
[0002]随着大数据时代的到来,海量的用户信息需要被系统快速的限时处理。系统的用户飞速的增长,同时用户信息的细化程度也在飞速增长,这些飞速增长的海量数据往往需要系统在日益增长的用户并发数需求下限时完成数据的增添、删除、修改和查询操作。但对于这种大规模系统无论应用层负载均衡后承载能力有多高,往往受限于有A(Atomicity,原子性)、C (Consistency, 一致性)、I (Isolat1n,隔离性)、D (Durability,持久性)需求的数据库系统。目前通常采用的解决方案主要有数据库分片技术。
[0003]数据库分片技术通过将不同的数据分布到不同的服务器上来提供更高的数据负载能力。优势在于将数据库分隔以后数据库的CRUD (增、查、改、删)操作自然分隔,从而展现集群性能优势。缺点是因为需要由几台主服务器负责对数据操作请求的分拆操作,主服务器掌控整个数据库系统的状态,因此这些主服务器往往就会成为系统的瓶颈所在,容易成为故障点,足以引发一定范围的数据库异常。

【发明内容】

[0004]有鉴于此,本发明提供了一种数据库系统、数据库系统访问方法及装置,以解决现有技术中,在处理海量数据信息时,由主服务器负责分拆操作,主服务器掌控整个数据库系统的状态,成为系统的瓶颈所在,容易成为故障点,足以引发一定范围的数据库异常的问题。
[0005]为了实现上述目的,本发明的实施例提供的技术方案如下:
[0006]一方面,本发明提供一种数据库系统,包括:数据服务器组,由多台数据服务器组成,所述数据服务器用于存储数据,并接收客户端发送的数据操作请求来对存储的数据执行相应的操作;主服务器,用于设置所述数据服务器组中的数据服务器的数据分布状态,并将所述数据分布状态发送给所述客户端以供所述客户端根据所述数据分布状态将所述数据操作请求发送给对应的所述数据服务器,所述数据分布状态包括所述数据服务器组中的每一数据服务器所存储的数据范围。
[0007]进一步地,所述主服务器采用封闭式环形分布方式设置所述数据服务器组中的数据服务器的数据分布状态,使得当添加/删除数据服务器时,只需要对在所述封闭式环形分布的数据服务器组中位于所述添加/删除的数据服务器的前一个/后一个数据服务器中的数据进行重新分布。
[0008]进一步地,所述主服务器包括多台服务器,其中一台服务器为主用服务器,其他服务器为备用服务器。
[0009]进一步地,数据在所述多台数据服务器中冗余存储,其中冗余存储是指在所述多台数据服务器的不同区域存储有同一数据的多份副本。
[0010]进一步地,所述数据服务器组包括:读数据服务器组,包括多台读数据服务器,用于存储数据,并接收客户端发送的查询数据操作请求来执行相应的操作;写数据服务器组,包括多台写数据服务器,用于存储数据,并接收客户端发送的除查询数据操作请求以外的数据操作请求来执行相应的操作;所述每台写数据服务器均对应多台所述读数据服务器,所述写数据服务器存储的数据与对应的所述多台读数据服务器存储的数据相同。
[0011]另一方面,本发明还提供了一种数据库系统访问方法,用于访问如上所述数据库系统,所述方法包括:根据存储的数据服务器组中的数据服务器的数据分布状态,确定接收待处理的数据操作请求的目标数据服务器;将所述待处理的数据操作请求发送到所述目标数据服务器,以使得所述目标数据服务器根据所述待处理的数据操作请求进行相应的操作;接收所述目标数据服务器发送的与所述待处理的数据操作请求对应的操作结果。
[0012]进一步地,所述根据存储的数据服务器组中的数据服务器的数据分布状态,确定接收待处理的数据操作请求的目标数据服务器之前,还包括:向主服务器发送所述数据服务器组中的数据服务器的数据分布状态是否更新的询问;当接收到所述主服务器发送的所述数据分布状态已发生更新的消息时,向所述主服务器发送获取所述数据分布状态的请求;接收并存储所述主服务器发送的所述数据分布状态。
[0013]进一步地,所述根据存储的数据服务器组中的数据服务器的数据分布状态,确定接收待处理的数据操作请求的目标数据服务器,包括:确定所述待处理的数据操作请求所涉及的数据范围;根据所述待处理的数据操作请求所涉及的数据范围及所述数据服务器组中的数据服务器的数据分布状态确定目标数据服务器范围;根据所述目标数据服务器范围的数据分布状态拆分所述待处理的数据操作请求,所述每条拆分后的数据操作请求所涉及的数据在一台数据服务器存储的数据范围内;为所述每条拆分后的数据操作请求确定目标数据服务器。
[0014]进一步地,所述数据服务器组包括:读数据服务器组,包括多台读数据服务器,用于存储数据,并接收客户端发送的查询数据操作请求来执行相应的操作;写数据服务器组,包括多台写数据服务器,用于存储数据,并接收客户端发送的除查询数据操作请求以外的数据操作请求来执行相应的操作;所述每台写数据服务器均对应多台所述读数据服务器,所述写数据服务器存储的数据与对应的所述多台读数据服务器存储的数据相同。所述根据所述数据操作请求的类型,为所述每条拆分后的数据操作请求确定目标数据服务器,具体为:确定所述待处理的数据操作请求的类型;当所述待处理的数据操作请求为除查询操作之外的数据操作请求时,从所述每条拆分后的数据操作请求对应的所述数据服务器中确定写数据服务器为目标数据服务器;当所述待处理的数据操作请求为查询操作请求时,从所述每条拆分后的数据操作请求对应的所述数据服务器中确定一台读服务器为目标数据服务器。
[0015]进一步地,所述从所述每条拆分后的数据操作请求对应的所述数据服务器中确定一台读数据服务器为目标数据服务器,具体为:根据负载均衡算法从所述每条拆分后的数据操作请求对应的所述数据服务器中确定一台读数据服务器为目标数据服务器。
[0016]本发明还提供了一种数据库系统访问装置,用于访问如上所述数据库系统,包括:确定模块,用于根据存储的数据服务器组中的数据服务器的数据分布状态,确定接收待处理的数据操作请求的目标数据服务器;第一发送模块,用于将所述待处理的数据操作请求发送到所述目标数据服务器,以使得所述目标数据服务器根据所述待处理的数据操作请求进行相应的操作;第一接收模块,用于接收所述目标数据服务器发送的与所述待处理的数据操作请求对应的操作结果。
[0017]进一步地,所述装置还包括:第二发送模块,用于向主服务器发送所述数据服务器组中的数据服务器的数据分布状态是否更新的询问;第三发送模块,用于当接收到所述主服务器发送的所述数据分布状态已发生更新的消息时,向所述主服务器发送获取所述数据分布状态的请求;第二接收模块,用于接收并存储所述主服务器发送的所述数据分布状态。
[0018]进一步地,所述确定模块,包括:第一确定单元,用于确定所述待处理的数据操作请求所涉及的数据范围;第二确定单元,用于根据所述待处理的数据操作请求所涉及的数据范围及所述数据服务器组中的数据服务器的数据分布状态确定目标数据服务器范围;拆分单元,用于根据所述目标数据服务器范围的数据分布状态拆分所述待处理的数据操作请求,所述每条拆分后的数据操作请求所涉及的数据在一台数据服务器存储的数据范围内;第三确定单元,用于为所述每条拆分后的数据操作请求确定目标数据服务器。
[0019]进一步地,所述数据服务器组包括:读数据服务器组,包括多台读数据服务器,用于存储数据,并接收客户端发送的查询数据操作请求来执行相应的操作;写数据服务器组,包括多台写数据服务器,用于存储数据,并接收客户端发送的除查询数据操作请求以外的数据操作请求来执行相应的操作;所述每台写数据服务器均对应多台所述读数据服务器,所述写数据服务器存储的数据与对应的所述多台读数据服务器存储的数据相同。所述第三确定单元,还包括:第一确定子单元,用于确定所述待处理的数据操作请求的类型;第二确定子单元,用于当所述待处理的数据操作请求为除查询操作之外的数据操作请求时,从所述每条拆分后的数据操作请求对应的所述数据服务器中确定写数据服务器为目标数据服务器;第三确定子单
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1