一种大数据环境下的数据分布方法、装置、设备及介质与流程

文档序号:33638094发布日期:2023-03-29 01:15阅读:39来源:国知局
一种大数据环境下的数据分布方法、装置、设备及介质与流程

1.本发明属于数据处理技术领域,具体涉及一种大数据环境下的数据分布方法、装置、设备及介质。


背景技术:

2.对象存储是一种高性能的分布式并行存储技术,用于解决海量数据存储的问题。对象存储系统由于具有块存储系统、文件存储系统无可比拟的可扩展性、数据可靠性和可管理性等特性,已成为当前主流存储架构。在对象存储中,一切数据都以对象的形式存储到对象存储设备(object-based storage device)中。同时,对象存储体系结构很好地实现了文件数据在对象存储设备上地并行性,提高系统地i/o性能。
3.如何将数据合理地分布到异构地对象存储设备中是需要解决的问题。如果将数据对象随机存储到任意地对象存储设备中,会导致某一个存储节点的负载过高,从而降低整个系统的读写性能,并且数据对象的读写等操作集中在一部分热点区域,会导致硬件设备的使用寿命减少,也会造成整个系统性能的下降。
4.目前的对象存储策略主要有两种:第一种策略采用顺序分配的方式,将所有的对象存储设备按照一定的顺序编上序号,按照给定的顺序将待存储的对象以此存入有效的存储设备中;第二种策略采用哈希的思想,是一种随机存储的策略,通过哈希环、跳跃哈希等方法随机选择存储节点进行存储。这些方法在存储设备是同构的情况下应用较好,当时随着异构存储设备地不断使用和扩展,使用这些方法容易将数据对象存入负载较大,读写性能又较差地存储设备中。现有的方法很少考虑存储设备本身地性能和存储设备的类型(ssd和机械硬盘等等),导致数据在不同的对象存储设备间分布不合理。


技术实现要素:

5.针对上述提出的问题,本发明提出一种大数据环境下的数据分布方法、装置、设备及介质,综合考虑对象存储系统中的每一个对象存储设备的剩余容量、内存、网络负载、i/o量等因素,实现数据对象在中尽可能均匀地分布,保证整个对象存储系统地负载均衡,从而提高设备的性能和使用寿命。
6.为了实现上述目的,本发明采用如下技术方案:本发明第一方面,提供了一种大数据环境下的数据分布方法,包括如下步骤:接收存储请求;其中,所述存储请求中包括待存储对象的id和数据大小leni;当待存储对象的数据大小leni大于预设的设定对象分片阈值threshold时,对所述待存储对象进行分片;计算所述待存储对象的分片的最优存储节点,将所述待存储对象的分片存储于所述最优存储节点中。
7.进一步的,所述对所述待存储对象进行分片的步骤中,所述待存储对象的分片数量按照下式计算:
计算出上式中ni的最小值,令;若,则令;其中,f(ni)为ni的函数,ni为待存储对象obji的分片个数,为在客户端分裂数据的开销,bi为数据传输时间,n为服务器端对象存储设备的数量。
8.进一步的,所述计算所述待存储对象的分片的最优存储节点,将所述待存储对象的分片存储于所述最优存储节点中的步骤,具体包括如下:计算存储节点的剩余磁盘空间占总磁盘剩余空间的比例,以及内存大小占总内存大小的比例;基于所述比例和比例计算所述存储节点对应的负载率;建立最小负载节点堆;将负载率作为最小负载节点堆的键,存储节点作为值添加进最小负载节点堆,将所述存储节点按照负载率的大小进行升序排序;将所述待存储对象obji分割成ni片,每一片待存储对象obji记为片;弹出所述最小负载节点堆堆顶的存储节点,将片存入弹出的所述存储节点中,直至所有的片存储完成;其中,每次弹出的所述存储节点对应存储一个片。
9.进一步的,当弹出的所述存储节点处于宕机或者不可用状态时,将所述片存储于预设的额外节点中。
10.进一步的,所述额外节点得获取方式如下:获取预设的淘汰链表;其中,所述淘汰链表包括有存储节点,所述淘汰链表中的存储节点的负载率均大于所述最小负载节点堆中存储节点的负载率;分别计算所述淘汰链表中存储节点的剩余磁盘空间占总磁盘剩余空间的比例;将所述淘汰链表中的存储节点按照比例的大小进行降序排列,并按照排列顺序取前k个存储节点作为额外节点。
11.进一步的,所述将所述片存储于预设的额外节点中的步骤,具体包括:分别计算k个所述额外节点的选取率;将所述片存储于选取率最大的所述额外节点中。
12.进一步的,所述额外节点的选取率按照下式计算:其中,wi为对象存储设备的磁盘剩余容量,si为对象存储设备的内存大小。
13.本发明第二方面,提供了一种大数据环境下的数据分布装置,包括:接收模块,用于接收存储请求;其中,所述存储请求中包括待存储对象的id和数据大小leni;分片模块,用于当待存储对象的数据大小leni大于预设的设定对象分片阈值threshold时,对所述待存储对象进行分片;储存模块,用于计算所述待存储对象的分片的最优存储节点,将所述待存储对象的分片存储于所述最优存储节点中。
14.本发明第三方面,提供了一种电子设备,包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序以实现如上述的大数据环境下的数据分布方法。
15.本发明第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现如上述的大数据环境下的数据分布方法。
16.与现有技术相比较,本发明的有益效果如下:1)本发明提供的大数据环境下的数据分布方法,对较大的存储对象进行分片,采用分片的机制防止一个过大的对象被放入单个存储节点,保证整个对象存储系统地负载均衡,从而提高设备的性能和使用寿命。
17.2)本发明提供的大数据环境下的数据分布方法,通过最小堆的思想,按照负载率的大小进堆排序,每次从存储节点中选出最优的一系列节点存储对象的分片,尽可能保证均匀存储,不会出现单个节点负载率过大而剩余节点空闲的情况。
附图说明
18.构成本技术的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1为本发明实施例一种大数据环境下的数据分布方法的流程示意图;图2为本发明另一实施例一种大数据环境下的数据分布方法的流程示意图;图3为本发明实施例一种大数据环境下的数据分布装置的结构框图;图4为本发明实施例一种电子设备的结构框图。
具体实施方式
19.下面将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
20.以下详细说明均是示例性的说明,旨在对本发明提供进一步的详细说明。除非另有指明,本发明所采用的所有技术术语与本技术所属领域的一般技术人员的通常理解的含
义相同。本发明所使用的术语仅是为了描述具体实施方式,而并非意图限制根据本发明的示例性实施方式。
21.实施例1如图1所示,本方案提供了一种大数据环境下的数据分布方法,包括如下步骤:s1、接收存储请求;其中,存储请求中包括待存储对象的id和数据大小leni。
22.具体的,服务器端接收到来自客户端的存储请求;其中,服务器端共有n个对象存储设备,对象存储设备的集合:;对象存储设备的集合中的元素作为存储节点;客户端共有x个待存储的数据对象,待存储对象的集合:;客户端向服务器发出存储请求,请求中携带两个参数:待存储对象集合obj中的元素obji,元素obji的数据大小leni。
23.s2、当待存储对象的数据大小leni大于预设的设定对象分片阈值threshold时,对待存储对象进行分片。
24.本方案中,待存储对象的分片数量按照下式计算:计算出上式中ni的最小值,令;若,则令;其中,f(ni)为ni的函数,ni为待存储对象obji的分片个数,为在客户端分裂数据的开销,bi为数据传输时间,n为服务器端对象存储设备的数量。
25.其他的一些实施例中,当待存储对象的数据大小leni小于预设的设定对象分片阈值threshold时,另待存储对象的分片个数=1。
26.s3、计算待存储对象的分片的最优存储节点,将待存储对象的分片存储于最优存储节点中。
27.具体包括如下步骤:s31、计算存储节点的剩余磁盘空间占总磁盘剩余空间的比例,以及内存大小占总内存大小的比例;s32、基于比例和比例计算存储节点对应的负载率;s33、建立最小负载节点堆;s34、将负载率作为最小负载节点堆的键,存储节点作为值添加进最小负载节点堆,将存储节点按照负载率的大小进行升序排序;s35、将待存储对象obji分割成ni片,每一片待存储对象obji记为片;s36、弹出最小负载节点堆堆顶的存储节点,将片存入弹出
的存储节点中,直至所有的片存储完成;其中,每次弹出的存储节点对应存储一个片。
28.其它的一些实施例中,还包括步骤,当弹出的存储节点处于宕机或者不可用状态时,将片存储于预设的额外节点中。
29.具体的,额外节点得获取方式如下:获取预设的淘汰链表;其中,淘汰链表包括有存储节点,淘汰链表中的存储节点的负载率均大于最小负载节点堆中存储节点的负载率;分别计算淘汰链表中存储节点的剩余磁盘空间占总磁盘剩余空间的比例;将淘汰链表中的存储节点按照比例的大小进行降序排列,并按照排列顺序取前k个存储节点作为额外节点。
30.具体的,将片存储于预设的额外节点中的步骤包括:分别计算k个额外节点的选取率;将片存储于选取率最大的额外节点中。
31.具体的,额外节点的选取率按照下式计算:其中,wi为对象存储设备的磁盘剩余容量,si为对象存储设备的内存大小。
32.如图2所示,本发明其他的实施例还提供了一种大数据环境下的数据分布方法,包括如下步骤:步骤1:客户端共有x个待存储的数据对象,待存储对象的集合,客户端向服务器发出存储请求,请求中携带两个参数:待存储对象集合obj中的元素obji,obji的数据大小leni。
33.服务器端共有个对象存储设备,对象存储设备的集合。
34.初始化对象存储设备集合osd中所有元素的状态码。
35.服务器端初始化设定对象分片阈值。
36.步骤2:服务器端接收到存储请求,读取存储请求中携带待存储对象的id和数据大小leni,若待存储对象的数据大小leni小于设定对象分片阈值threshold,令存储对象obji的分片个数ni=1并转入步骤5,否则进入步骤3。
37.步骤3:将大小超过设定对象分片阈值threshold的存储对象obji进行分片,ni为obji被分片的数量。
38.根据客户端的智能终端测得并行传输数据文件的总时延tp、串行传输数据文件的总时延t、在客户端分裂数据的开销和数据传输时间bi,通过公式(1)得出并行传输文件的总时延和串行传输的总时延的时间比。
39.(1)步骤4:将公式(1)变形得到关于ni的函数(2),计算出函数(2)中ni的最小值,令。若,则令。将ni作为obji的分片个数;建立最小负载节点堆,初始化堆的大小为ni;建立失败节点链表,链表初始化为空。
40.(2)步骤 5:从i=1开始,遍历服务器端的所有存储节点,根据智能存储终端采集的硬件信息得到的内存大小si、数据传输时延ti、磁盘i/o量pi、磁盘剩余容量wi和网络负载nli。
41.步骤6:根据公式(3)计算存储节点的剩余磁盘空间占总磁盘剩余空间的比例。
42.根据公式(4)计算存储节点内存大小占总内存大小的比例。
43.(3)(4)步骤 7:根据公式(5)计算存储节点对应的负载率loadi,将负载率loadi作为最小负载节点堆treemap
min
的键,存储节点作为值添加进最小负载节点堆treemap
min
,实现按照负载率loadi的大小进行升序排序。
44.若i》ni,将存储节点osdi与最小负载节点堆treemap
min
的末尾元素比较,淘汰负载率loadi大的存储节点,将负载率loadi小的存储节点进堆,并将淘汰的存储节点加入淘汰链表。
45.如果i=n则转入步骤8;否则i加1,并转入步骤5。
46.(5)步骤 8:根据ni计算k个额外节点。采用冒泡排序将淘汰链表中的元素按照比例的大小进行降序排序,选取前k个存储节点作为额外节点,其中,。
47.步骤 9:将客户端请求的待存储对象obji分割成ni片,每一片记为片slicei,从i=0开始,每次弹出最小负载节点堆treemap
min
堆顶的储存节点,若该储存节点处于宕机或者不
可用状态,将状态码置为false,并转入步骤10。否则将片slicei存入堆顶的储存节点,i加1。当i=ni时,转入步骤11。
48.步骤 10:服务器端接收到状态码,根据公式(6)计算淘汰链表中的前k个元素的选取率probi,根据选取率probi随机选取淘汰链表中的前k个元素中的一个元素作为片slicei的存储节点,将片slicei存入选取的存储节点中,i加1,并返回步骤9。
49.(6)步骤 11:待存储对象obji存储完成,数据分布流程结束。
50.实施例2如图3所示,基于与上述实施例的同一发明构思,本方案提供了一种大数据环境下的数据分布装置,包括:接收模块,用于接收存储请求;其中,存储请求中包括待存储对象的id和数据大小leni。
51.分片模块,用于当待存储对象的数据大小leni大于预设的设定对象分片阈值threshold时,对待存储对象进行分片;分片模块中,待存储对象的分片数量按照下式计算:计算出上式中ni的最小值,令;若,则令;其中,f(ni)为ni的函数,ni为待存储对象obji的分片个数,为在客户端分裂数据的开销,bi为数据传输时间,n为服务器端对象存储设备的数量。
52.储存模块,用于计算待存储对象的分片的最优存储节点,将待存储对象的分片存储于最优存储节点中。
53.储存模块,具体用于:计算存储节点的剩余磁盘空间占总磁盘剩余空间的比例,以及内存大小占总内存大小的比例;基于所述比例和比例计算所述存储节点对应的负载率;建立最小负载节点堆;将负载率作为最小负载节点堆的键,存储节点作为值添加进最小负载节点堆,将所述存储节点按照负载率的大小进行升序排序;将所述待存储对象obji分割成ni片,每一片待存储对象obji记为片;弹出所述最小负载节点堆堆顶的存储节点,将片存入弹出
的所述存储节点中,直至所有的片存储完成;其中,每次弹出的所述存储节点对应存储一个片。
54.当弹出的存储节点处于宕机或者不可用状态时,将片存储于预设的额外节点中。
55.具体的,额外节点得获取方式如下:获取预设的淘汰链表;其中,淘汰链表包括有存储节点,淘汰链表中的存储节点的负载率均大于最小负载节点堆中存储节点的负载率;分别计算淘汰链表中存储节点的剩余磁盘空间占总磁盘剩余空间的比例;将淘汰链表中的存储节点按照比例的大小进行降序排列,并按照排列顺序取前k个存储节点作为额外节点。
56.具体的,将片存储于预设的额外节点中的步骤,包括:分别计算k个额外节点的选取率;将片存储于选取率最大的额外节点中。
57.具体的,额外节点的选取率按照下式计算:其中,wi为对象存储设备的磁盘剩余容量,si为对象存储设备的内存大小。
58.实施例3如图4所示,基于与上述实施例的同一发明构思,本发明还提供一种用于实现上述实施例一种大数据环境下的数据分布方法的电子设备100;电子设备100包括存储器101、至少一个处理器102、存储在存储器101中并可在至少一个处理器102上运行的计算机程序103及至少一条通讯总线104。存储器101可用于存储计算机程序103,处理器102通过运行或执行存储在存储器101内的计算机程序,以及调用存储在存储器101内的数据,实现实施例1一种大数据环境下的数据分布方法步骤。
59.存储器101可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备100的使用所创建的数据(比如音频数据)等。此外,存储器101可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
60.至少一个处理器102可以是中央处理单元(centralprocessing unit,cpu),还可
以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(applicationspecific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器102可以是微处理器或者该处理器102也可以是任何常规的处理器等,处理器102是电子设备100的控制中心,利用各种接口和线路连接整个电子设备100的各个部分。
61.电子设备100中的存储器101存储多个指令以实现一种大数据环境下的数据分布方法,处理器102可执行多个指令从而实现:接收存储请求;其中,存储请求中包括待存储对象的id和数据大小leni;当待存储对象的数据大小leni大于预设的设定对象分片阈值threshold时,对待存储对象进行分片;计算待存储对象的分片的最优存储节点,将待存储对象的分片存储于最优存储节点中。
62.实施例4电子设备100集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器及只读存储器(rom,read-onlymemory)。
63.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
64.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
65.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
66.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
67.最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1