本发明分布式存储技术领域,尤其涉及一种基于数据页路由的分布式存储方法、装置及设备。
背景技术:
随着生活和生产数字化程度越来越高,用户并发度和数据量的增长速度越来越快。这一趋势对数据库的数据处理能力提出了新的要求,数据库的分布式架构已成为数据库的一个主要的架构趋势。当前数据库领域的分布式存储技术主要是为键值对形式的数据存储设计的,原生并非为关系型数据库设计的,若要将其应用到关系型数据库中需要对数据库上层进行相应的修改,该调整会对数据的效率产生一定的影响。目前存在的分布式存储技术,在技术细节上难以完全匹配关系型数据库的设计需求,因此需要提出更适应于关系型数据库的分布式存储技术。
opengauss是单机的数据库系统,目前尚没有公开的分布式架构设计,很难满足日渐增长的数据处理需求,提出一种可以适用于opengauss数据库的分布式存储方法成为亟待解决的技术问题。
技术实现要素:
有鉴于此,本发明提供一种基于数据页路由的分布式存储方法及系统,能适用于opengauss数据库。
一方面,本发明提供一种基于数据页路由的分布式存储方法,包括:
数据库模块创建并发送第一数据页,所述第一数据页包括目标地址信息以及源地址信息;
路由服务器接收所述第一数据页,并在所述第一数据页中加入路由地址信息得到第二数据页,之后发送所述第二数据页至数据存储模块进行保存。
进一步地,所述发送所述第二数据页至数据存储模块进行存储的步骤之后包括:
所述数据库模块在接收到数据页查询请求时,判断所述数据页查询请求对应的目标数据页是否在内存中;
若确定所述数据页查询请求对应的目标数据页不在内存中,则加载所述目标数据页,并通过所述路由服务器查找所述目标数据页对应的路由信息,并根据所述目标数据页对应的路由信息在所述数据存储模块查找并反馈所述目标数据页。
进一步地,在所述数据库模块在接收到数据页查询请求的步骤之前包括:
所述数据存储模块发送第二数据页保存成功信号至所述路由服务器;
所述路由服务器保存所述第二数据页的路由信息,并发送保存完成信息至所述数据库模块。
进一步地,所述反馈所述目标数据页的步骤包括:
所述数据存储模块发送所述目标数据页至所述路由服务器;
所述路由服务器发送所述目标数据页至所述数据库模块。
进一步地,若确定所述数据页查询请求对应的目标数据页在内存中,则直接读取所述目标数据页。
再一方面,本发明还提供一种基于数据页路由的分布式存储系统,包括:
数据库模块,用于创建并发送第一数据页,所述第一数据页包括目标地址信息以及源地址信息;
路由服务器,用于接收所述第一数据页,并在所述第一数据页中加入路由地址信息得到第二数据页,之后发送所述第二数据页;
数据存储模块,用于接收并保存所述第二数据页。
进一步地,所述数据库模块还用于在接收到数据页查询请求时,判断所述数据页查询请求对应的目标数据页是否在内存中;若确定所述数据页查询请求对应的目标数据页不在内存中,则加载所述目标数据页,并通过所述路由服务器查找所述目标数据页对应的路由信息,并根据所述目标数据页对应的路由信息在所述数据存储模块查找并反馈所述目标数据页。
进一步地,所述数据存储模块还用于发送第二数据页保存成功信号至所述路由服务器;所述路由服务器保存所述第二数据页的路由信息,并发送保存完成信息至所述数据库模块。
进一步地,所述数据库模块还用于若确定所述数据页查询请求对应的目标数据页在内存中,则直接读取所述目标数据页。
进一步地,所述数据库模块为数据库集群,以及所述数据存储模块为数据存储集群。
本发明基于opengauss平台的分布式存储架构,即数据库模块、路由服务器以及数据存储模块分离设置,该分布式存储架构主要基于对具有新结构的数据页的路由处理,实现存储于计算分离的架构,一方面是对关系型数据库分布式存储技术的探索,另一方面也是对opengauss分布式技术体系的有效补充。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为根据本发明示例性第一实施例的基于数据页路由的分布式存储方法的流程图。
图2为根据本发明示例性第二实施例的基于数据页路由的分布式存储方法中的数据页结构的示意图。
图3为根据本发明示例性第三实施例的基于数据页路由的分布式存储方法的流程图。
图4为根据本发明示例性第四实施例的基于数据页路由的分布式存储系统的结构框图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
如图1所示,本发明一种基于数据页路由的分布式存储方法,包括:
步骤101,数据库模块创建并发送第一数据页,所述第一数据页包括目标地址信息以及源地址信息;
步骤102,路由服务器接收所述第一数据页,并在所述第一数据页中加入路由地址信息得到第二数据页;
新的数据页结构具体如图2所示,在新定义的数据页结构中需添加目标地址信息、原地址信息和路由地址信息,以新增的信息为基础做路由操作来进行数据页的分发。
步骤103,路由服务器发送所述第二数据页至数据存储模块进行保存。
本实施例基于opengauss平台的分布式存储架构,即数据库模块、路由服务器以及数据存储模块分离设置,该分布式存储架构主要基于对具有新结构的数据页的路由处理,实现存储于计算分离的架构,一方面是对关系型数据库分布式存储技术的探索,另一方面也是对opengauss分布式技术体系的有效补充。
具体结合如图3所示的优选实施例,对基于数据页路由的分布式存储方法进一步说明,除了图1所示步骤,如图3所示,在所述发送所述第二数据页至数据存储模块进行存储的步骤之后包括:
所述数据库模块在接收到数据页查询请求时,判断所述数据页查询请求对应的目标数据页是否在内存中;
若确定所述数据页查询请求对应的目标数据页在内存中,则直接读取所述目标数据页;
若确定所述数据页查询请求对应的目标数据页不在内存中,则加载所述目标数据页,并通过所述路由服务器查找所述目标数据页对应的路由信息,并根据所述目标数据页对应的路由信息在所述数据存储模块查找并反馈所述目标数据页。
此外,在所述数据库模块在接收到数据页查询请求的步骤之前包括:
所述数据存储模块发送第二数据页保存成功信号至所述路由服务器;
所述路由服务器保存所述第二数据页的路由信息,并发送保存完成信息至所述数据库模块。
进一步地,所述反馈所述目标数据页的步骤包括:
所述数据存储模块发送所述目标数据页至所述路由服务器;
所述路由服务器发送所述目标数据页至所述数据库模块。
本实施例在分布式存储技术框架中,涉及三种节点(集群)角色,分别为计算结点、路由节点和存储节点,通过网络实现了计算和存储节点的分离,在该框架下,用户可以根据自己的实际负载情况,选择弹性的单独扩展计算节点集群或存储节点或者是路由集群,以保证整个集群在满足用户负载需求的情况下,尽可能的避免主机节点的浪费。同时用户也可以根据各节点的用途不同有侧重的配置主机或服务器,避免主机资源的浪费。
图4为根据本发明示例性第四实施例的基于数据页路由的分布式存储系统的结构框图。具体如图4所示,基于数据页路由的分布式存储系统包括:
数据库模块,用于创建并发送第一数据页,所述第一数据页包括目标地址信息以及源地址信息;
路由服务器,用于接收所述第一数据页,并在所述第一数据页中加入路由地址信息得到第二数据页,之后发送所述第二数据页;
数据存储模块,用于接收并保存所述第二数据页。
优选地,所述数据库模块还用于在接收到数据页查询请求时,判断所述数据页查询请求对应的目标数据页是否在内存中;若确定所述数据页查询请求对应的目标数据页不在内存中,则加载所述目标数据页,并通过所述路由服务器查找所述目标数据页对应的路由信息,并根据所述目标数据页对应的路由信息在所述数据存储模块查找并反馈所述目标数据页。
优选地,所述数据存储模块还用于发送第二数据页保存成功信号至所述路由服务器;所述路由服务器保存所述第二数据页的路由信息,并发送保存完成信息至所述数据库模块。
优选地,所述数据库模块还用于若确定所述数据页查询请求对应的目标数据页在内存中,则直接读取所述目标数据页。
优选地,所述数据库模块为数据库集群,以及所述数据存储模块为数据存储集群。
本实施例分布式架构将计算结点、路由服务器和数据存储集群相分离,三者在架构上彼此独立,可分别做集群以增加系统的可靠性。上述架构三个部件之间通过交换数据页来进行数据的交换。所以opengauss平台下原来的数据页设计无法满足相应的需求,需要对数据页的结构进行扩展,来匹配相应的路由操作。本实施例分布式存储技术框架使用网络实现了数据库系统中的计算与存储分离的架构,并且计算节点、路由节点和存储节点均可以按照需求进行弹性扩容,在保障了集群健壮性的同时,也使得整个集群的灵活度大大提升,用户可以根据自己业务情况有侧重的在框架范围内增加主机资源,避免主机资源的浪费。同时该框架也填补了opengauss平台缺少分布式解决方案的问题,有效的解决了因日后并发度的提高带来的opengauss平台数据处理能力不足的问题。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
1.一种基于数据页路由的分布式存储方法,其特征在于,包括:
数据库模块创建并发送第一数据页,所述第一数据页包括目标地址信息以及源地址信息;
路由服务器接收所述第一数据页,并在所述第一数据页中加入路由地址信息得到第二数据页,之后发送所述第二数据页至数据存储模块进行保存。
2.根据权利要求1所述的基于数据页路由的分布式存储方法,其特征在于,所述发送所述第二数据页至数据存储模块进行存储的步骤之后包括:
所述数据库模块在接收到数据页查询请求时,判断所述数据页查询请求对应的目标数据页是否在内存中;
若确定所述数据页查询请求对应的目标数据页不在内存中,则加载所述目标数据页,并通过所述路由服务器查找所述目标数据页对应的路由信息,并根据所述目标数据页对应的路由信息在所述数据存储模块查找并反馈所述目标数据页。
3.根据权利要求2所述的基于数据页路由的分布式存储方法,其特征在于,在所述数据库模块在接收到数据页查询请求的步骤之前包括:
所述数据存储模块发送第二数据页保存成功信号至所述路由服务器;
所述路由服务器保存所述第二数据页的路由信息,并发送保存完成信息至所述数据库模块。
4.根据权利要求3所述的基于数据页路由的分布式存储方法,其特征在于,所述反馈所述目标数据页的步骤包括:
所述数据存储模块发送所述目标数据页至所述路由服务器;
所述路由服务器发送所述目标数据页至所述数据库模块。
5.根据权利要求2-4中任一项所述的基于数据页路由的分布式存储方法,其特征在于,若确定所述数据页查询请求对应的目标数据页在内存中,则直接读取所述目标数据页。
6.一种基于数据页路由的分布式存储系统,其特征在于,包括:
数据库模块,用于创建并发送第一数据页,所述第一数据页包括目标地址信息以及源地址信息;
路由服务器,用于接收所述第一数据页,并在所述第一数据页中加入路由地址信息得到第二数据页,之后发送所述第二数据页;
数据存储模块,用于接收并保存所述第二数据页。
7.根据权利要求6所述的基于数据页路由的分布式存储系统,其特征在于,所述数据库模块还用于在接收到数据页查询请求时,判断所述数据页查询请求对应的目标数据页是否在内存中;若确定所述数据页查询请求对应的目标数据页不在内存中,则加载所述目标数据页,并通过所述路由服务器查找所述目标数据页对应的路由信息,并根据所述目标数据页对应的路由信息在所述数据存储模块查找并反馈所述目标数据页。
8.根据权利要求7所述的基于数据页路由的分布式存储系统,其特征在于,所述数据存储模块还用于发送第二数据页保存成功信号至所述路由服务器;所述路由服务器保存所述第二数据页的路由信息,并发送保存完成信息至所述数据库模块。
9.根据权利要求8所述的基于数据页路由的分布式存储系统,其特征在于,所述数据库模块还用于若确定所述数据页查询请求对应的目标数据页在内存中,则直接读取所述目标数据页。
10.根据权利要求6-9中任一项所述的基于数据页路由的分布式存储系统,其特征在于,所述数据库模块为数据库集群,以及所述数据存储模块为数据存储集群。
技术总结