数据动态分片的存储方法、装置和系统与流程

文档序号:16399891发布日期:2018-12-25 20:03阅读:236来源:国知局
数据动态分片的存储方法、装置和系统与流程

本发明涉及数据存储领域,特别涉及一种数据动态分片的存储方法、装置和系统。

背景技术

随着信息技术的快速发展,信息系统数据库中的数据量越来越大。为了满足大数据量的存储需求,在多台服务器上运行的分布式存储系统得到了广泛的应用。

在分布式存储系统中,多台服务器上分别运行了多个数据库系统。数据进行存储时,需要先将数据进行分片(sharding),再将不同的数据分片交由不同的服务器进行存储。分片是一种水平扩展(horizontalscaling)的方式,把一个大的数据集分散到多个数据节点上,所有的数据节点将组成一个逻辑上的数据库来存储这个大的数据集。分片对用户(应用层)是透明的,用户不会知道数据被存放到哪个片服务器上。采用数据分片进行数据存储,可以突破单节点服务器的i/o能力限制,解决数据库拓展性的问题。

现有的数据分片技术方案采用固定参数进行设定,或者通过设定文件大小阈值设置分片数,由此会导致存储系统i/o性能低、数据分片放置和读取效率低等问题。



技术实现要素:

鉴于以上技术问题,本发明提供了一种数据动态分片的存储方法、装置和系统,可以动态调整文件分片数。

根据本发明的一个方面,提供一种数据动态分片的存储方法,包括:

响应于客户端发起的访问请求,进行业务分析,获取配置管理模板的节点参数和存储参数;

实时采集各存储节点的网络带宽;

根据节点参数、存储参数和各存储节点的网络带宽确定当前文件分片数;

根据当前文件分片数对数据进行分片或合并,以便路由控制器访问各对应存储节点的数据片。

在本发明的一个实施例中,所述根据节点参数、存储参数和各存储节点的网络带宽确定当前文件分片数包括:

确定初始文件分片数;

判断各存储节点的网络带宽之和是否大于等于预定阈值;

若各存储节点的网络带宽之和大于等于预定值,则根据初始文件分片数、预定阈值以及各存储节点的网络带宽之和确定当前文件分片数。

在本发明的一个实施例中,所述根据节点参数、存储参数和各存储节点的网络带宽确定当前文件分片数还包括:

若各存储节点的网络带宽之和小于预定阈值,则将初始文件分片数作为当前文件分片数。

在本发明的一个实施例中,所述根据初始文件分片数、预定阈值以及各存储节点的网络带宽之和确定当前文件分片数包括:

根据公式

确定当前文件分片数m2,其中,m1为初始文件分片数,k=k1+k2+…+kn为各存储节点的网络带宽之和,ki为n个存储节点中第i个存储节点的网络带宽,n为大于1的自然数,kmax为所有n个存储节点的网络带宽之和的预定阈值。

根据本发明的另一方面,提供一种数据动态分片的存储装置,包括:

业务管理模块,用于响应于客户端发起的访问请求,进行业务分析,获取配置管理模板的节点参数和存储参数;

节点网络带宽监控模块,用于实时采集各存储节点的网络带宽;

数据管理模块,用于根据节点参数、存储参数和各存储节点的网络带宽确定当前文件分片数;并根据当前文件分片数对数据进行分片或合并,以便路由控制器访问各对应存储节点的数据片。

在本发明的一个实施例中,数据管理模块包括:

初始分片数确定单元,用于确定初始文件分片数;

网络带宽判断单元,用于判断各存储节点的网络带宽之和是否大于等于预定阈值;

当前分片数确定单元,用于在网络带宽判断单元判定各存储节点的网络带宽之和大于等于预定值的情况下,根据初始文件分片数、预定阈值以及各存储节点的网络带宽之和确定当前文件分片数。

在本发明的一个实施例中,当前分片数确定单元还用于在网络带宽判断单元判定各存储节点的网络带宽之和小于预定值的情况下,将初始文件分片数作为当前文件分片数。

在本发明的一个实施例中,当前分片数确定单元用于根据公式

确定当前文件分片数m2,其中,m1为初始文件分片数,k=k1+k2+…+kn为各存储节点的网络带宽之和,ki为n个存储节点中第i个存储节点的网络带宽,n为大于1的自然数,kmax为所有n个存储节点的网络带宽之和的预定阈值。

根据本发明的另一方面,提供一种数据动态分片的存储装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现上述任一实施例所述的方法步骤。

根据本发明的另一方面,提供一种数据动态分片的存储系统,包括路由控制器以及如上述任一实施例所述的数据动态分片的存储装置。

本发明通过引入存储节点实时可用带宽为参数,可以动态调整文件分片数,从而提高了存储节点的i/o性能,提高了数据分片放置和读取效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明数据动态分片的存储系统第一实施例的示意图。

图2为本发明数据动态分片的存储系统第二实施例的示意图。

图3为本发明一个实施例中数据管理模块的示意图。

图4为本发明另一实施例中数据动态分片的存储装置的示意图。

图5为本发明数据动态分片的存储方法一个实施例的示意图。

图6为本发明一个实施例中确定当前文件分片数的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

图1为本发明数据动态分片的存储系统第一实施例的示意图。如图1所示,所述数据动态分片的存储系统包括数据动态分片的存储装置2和路由控制器1,其中:

数据动态分片的存储装置2,用于响应于客户端3发起的访问请求,进行业务分析,获取配置管理模板的节点参数和存储参数;实时采集各存储节点的网络带宽;根据节点参数、存储参数和各存储节点的网络带宽确定当前文件分片数;根据当前文件分片数对数据进行分片或合并。

路由控制器1,用于访问各对应存储节点的数据片。

基于本发明上述实施例提供的数据动态分片的存储系统,通过引入存储节点实时可用带宽为参数,可以动态调整文件分片数,从而提高了存储节点的i/o性能,提高了数据分片放置和读取效率。

图2为本发明数据动态分片的存储系统第二实施例的示意图。与图1实施例相比,在图2实施例中,所述数据动态分片的存储装置2可以包括业务管理模块21、节点网络带宽监控模块22和数据管理模块23,其中:

业务管理模块21,用于响应于客户端3发起的访问请求,进行业务分析,读取配置管理模板的节点参数和存储参数。

节点网络带宽监控模块22,用于实时采集各存储节点的网络带宽。

数据管理模块23,用于根据节点参数、存储参数和各存储节点的网络带宽确定当前文件分片数;并根据当前文件分片数对数据进行分片或合并,以便路由控制器1访问各对应存储节点的数据片。

在本发明的一个实施例中,如图2所示,所述数据动态分片的存储装置2还可以包括配置管理模块24,其中:

配置管理模块24,用于存储配置管理模板并向业务管理模块21提供配置管理模板,其中,所述配置管理模板包括节点参数和存储参数。

例如:在图2具体实施例中,该配置管理模板包括四个存储节点node1、node2、node3和node4。

图2具体实施例中还给出了在发明一个具体实施例中数据动态分片的存储装置2的结构和功能。

基于本发明上述实施例提供的数据动态分片的存储装置,通过引入存储节点实时可用带宽为参数,可以动态调整文件分片数,从而提高了存储节点的i/o性能,提高了数据分片放置和读取效率。

图3为本发明一个实施例中数据管理模块的示意图。如图3所示,图2实施例中的数据管理模块23可以包括初始分片数确定单元231、网络带宽判断单元232和当前分片数确定单元233,其中:

初始分片数确定单元231,用于确定初始文件分片数m1。

在本发明的一个实施例中,初始分片数确定单元231具体可以用于采用固定参数确定初始文件分片数m1,或者依据文件大小的阈值设置初始文件分片数m1。

网络带宽判断单元232,用于判断各存储节点(node1,node2…noden)的网络物理带宽之和(k=k1+k2+…+kn)是否大于等于预定阈值kmax,其中kmax为所有n个存储节点的网络带宽之和的预定阈值,k=k1+k2+…+kn为各存储节点的网络带宽之和,ki为n个存储节点中第i个存储节点的网络带宽,n为大于1的自然数。

当前分片数确定单元233,用于在网络带宽判断单元232判定各存储节点的网络带宽之和k大于等于预定值kmax的情况下,根据初始文件分片数m1、预定阈值kmax以及各存储节点的网络带宽k之和确定当前文件分片数m2。

在本发明的一个实施例中,当前分片数确定单元233还可以用于在网络带宽判断单元232判定各存储节点的网络带宽之和小于预定值的情况下,将初始文件分片数m1作为当前文件分片数m2。

在本发明的一个实施例中,当前分片数确定单元233具体可以用于根据公式(1)确定当前文件分片数m2。

其中,m1为初始文件分片数,k=k1+k2+…+kn为各存储节点的网络带宽之和,kmax为所有n个存储节点的网络带宽之和的预定阈值。

图4为本发明另一实施例中数据动态分片的存储装置的示意图。如图4所示,所述数据动态分片的存储装置可以包括存储器300、处理器400及存储在存储器300上并可在处理器400上运行的计算机程序,其中,所述处理器400执行所述程序时实现上述任一实施例所述的方法步骤。

本发明上述实施例实时采集各存储节点的网络带宽,以存储节点的网络带宽为参数,对文件分片数进行动态调整,从而提高了存储节点的i/o性能,提高了数据分片放置和读取效率。

图5为本发明数据动态分片的存储方法一个实施例的示意图。优选的,本实施例可由本发明数据动态分片的存储装置或系统执行。如图5所示,所述方法可以包括:

步骤51,响应于客户端发起的访问请求,进行业务分析,获取配置管理模板的节点参数和存储参数。

步骤52,实时采集各存储节点的网络带宽。

步骤53,根据节点参数、存储参数和各存储节点的网络带宽确定当前文件分片数。

步骤54,根据当前文件分片数对数据进行分片或合并,以便路由控制器访问各对应存储节点的数据片。

基于本发明上述实施例提供的数据动态分片的存储方法,通过引入存储节点实时可用带宽为参数,可以动态调整文件分片数,从而提高了存储节点的i/o性能,提高了数据分片放置和读取效率。

图6为本发明一个实施例中确定当前文件分片数的示意图。如图6所示,图5实施例中的步骤53具体可以包括:

步骤531,确定初始文件分片数m1。

在本发明的一个实施例中,步骤531通常可以包括:采用固定参数确定初始文件分片数m1,或者依据文件大小的阈值设置初始文件分片数m1。

步骤533,判断各存储节点(node1,node2…noden)的网络带宽之和(k=k1+k2+…+kn)是否大于等于预定阈值kmax,其中kmax为所有n个存储节点的网络带宽之和的预定阈值,k=k1+k2+…+kn为各存储节点的网络带宽之和,ki为n个存储节点中第i个存储节点的网络带宽,n为大于1的自然数。

步骤533,若各存储节点的网络带宽之和k大于等于预定值kmax,则根据初始文件分片数m1、预定阈值kmax以及各存储节点的网络带宽k之和确定当前文件分片数m2。

在本发明的一个实施例中,步骤533中根据初始文件分片数m1、预定阈值kmax以及各存储节点的网络带宽k之和确定当前文件分片数m2的步骤具体可以包括:根据公式(1)确定当前文件分片数m2,公式(1)中,m1为初始文件分片数,k=k1+k2+…+kn为各存储节点的网络带宽之和,ki为n个存储节点中第i个存储节点的网络带宽,kmax为所有n个存储节点的网络带宽之和的预定阈值。

在本发明的一个实施例中,如图6所示,步骤53还可以包括:

步骤534,若各存储节点的网络带宽之和小于预定阈值,则将初始文件分片数作为当前文件分片数。

本发明上述实施例通过实时采集各存储节点的网络带宽,以存储节点的网络带宽为参数,对文件分片数进行动态调整,从而提高了存储节点的i/o性能,提高了数据分片放置和读取效率。

在上面所描述的数据动态分片的存储装置可以实现为用于执行本申请所描述功能的通用处理器、可编程逻辑控制器(plc)、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意适当组合。

至此,已经详细描述了本发明。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1