基于大数据和云存储系统定向性能优化的资源调度系统和方法与流程

文档序号:15238065发布日期:2018-08-24 17:03阅读:163来源:国知局

本发明涉及一种资源优化调度系统和方法,尤其涉及基于大数据和云存储系统定向性能优化的资源调度系统和方法。涉及专利分类号G06计算;推算;计数G06F电数字数据处理G06F9/00程序控制装置,例如,控制器G06F9/06应用存入的程序的,即应用处理设备的内部存储来接收程序并保持程序的G06F9/46多道程序装置G06F9/50资源分配,例如,中央处理单元。



背景技术:

大数据时代,移动互联、社交网络、物联网、云服务等应用的迅速普及,全世界范围不同的领域内如各大商业网站、政府、医疗、金融、媒体等,都产生了的大量数据,这些数据的容量不断呈指数级增长。这对数据中心提出了革命性的要求,存储基础架构成为核心之一。

通过对之前已公开的专利所述“一种大数据存储系统”(申请号:201410053769,公开号:103812939A)的部署和使用发现,在存储的大量数据中,有一些数据在一段时间被很集中的访问,其他数据很少被访问。当大量这种类型的“高峰时间”的现象同时发生时,许多存储设备,网络,磁盘I/O和CPU都存在访问瓶颈等问题。类似问题也出现在一些大型网站及互联网企业中,如淘宝(taobao.com)和Facebook(脸书)为了解决”高峰时间“问题,均采用缓存系统,比如Memcache来提升网页访问性能。据报道,Facebook使用超过800个Memcache服务器提供的内存超过28TB服务每秒超过200,000UDP请求。

我们之后部署了简单的缓存服务器来试图解决这样的“高峰时间”的问题。但发现,尽管数据存取性能得到了提高,整个系统的I/O(包含磁盘I/O,网络I/O)几乎加倍。这在很大程度上是由于我们的存储服务器和新引入的缓存服务器之间的频繁的数据交换。

因为缓存单元或设备较一般存储设备而言,同等容量下,成本更大,并且,大数据和云存储系统与传统的单用户文件系统相比,采用不同的计价模型,并有着不同的用户使用习惯和方式。

因此,我们需要一个更有效的机制,把最“理想”的对象在最适当的时间放入缓存单元内,并在合适的时间删除它们。这样的机制可以1有效地使用可用的高速缓存单元,从而2提高了数据访问的总体性能,同时也3减少磁盘IO和CPU瓶颈。此外,4通过为用户提供额外的和优越的性能作为一个分离的服务,并相应地对其收费,服务供应商可以产生更大的收入。

尽管一些大型云存储平台提供商如亚马逊(Amazon S3)、谷歌(Google),阿里云(Aliyun)已经在这方面取得了巨大成功,但目前大数据及云存储领域内仍然缺乏合理可用的资源调度及优化方法来将可用的缓存单元或设备用于提升系统性能及提高企业收入。



技术实现要素:

本发明针对以上问题的提出,而研制的一种基于大数据和云存储系统定向性能优化的资源调度系统,具有:

对象元数据存储单元MSS、对象元数据缓存单元MCS、对象松散数据存储单元OSS、对象松散数据缓存单元OCS;日志存储单元,存储对象松散数据存储单元OSS中的松散数据的操作日志。

存储单元指普通类型的存储空间或设备,缓存单元相对于本发明/一般所指的存储单元,读取和存储速度更高,带宽更大,存储于缓存空间中的数据访问速度大大高于存储于普通存储空间。

系统还具有:缓存控制单元,通过分析所述的操作日志,得出当前时刻或一段时间内访问量超过阈值的数据对象m;根据缓存调度模型计算所述数据对象由对象松散数据存储单元OSS转移至对象松散数据缓存单元OCS后的应用性能优化度;

若优化度超过缓存门槛,则将该数据对象m转移至对象松散数据缓存单元OCS;若经缓存后优化度低于所述的缓存门槛;则不转移数据对象m。在本发明中,该缓存门槛设置为全部松散数据对象的总访问量与全部松散数据对象数量。

作为优选的实施方式,所述的缓存调度模型为:

Sm表示所述的数据对象m置于缓存空间的得分,xm为决策变量,Sm至少包含用户使用优化度函数f(m);对于每个数据对象m∈M,xm是一个二元变量,表示是否应将m放入缓存空间内;如果xm=1,则放入缓存空间;xm=0,则不放入缓存空间;f(m)=对象松散数据存储单元OSS数据读取相应时间(m)-对象松散数据缓存单元OCS读取相应时间(m);其中,对象松散数据存储单元MSS数据读取相应时间(m)=PA1·zm+PA2;对象松散数据缓存单元OCS读取相应时间(m)=PA3·zm+PA4;zm为所述数据对象m占用空间大小,m∈M;M为松散数据对象集合。

通过采用所述的缓存调度模型,对松散数据访问的历史情况进行统计,有效的对数据对象m未来的访问情况进行预测,相对于现有的访问机制(注入化简映射等手段可实现),本发明所采用的缓存调度机制调度的数据更为精确。

更进一步的,为了能够协调用户满意度和大数据运营商收入,作为优选的实施方式,所述Sm还包括:数据对象m所产生的预期收益函数E(m)和移动数据对象m的成本函数C(m);

Sm=αf(m)+βE(m)-γC(m);E(m)=VmPr+VmzmPt;

Pt数据传输流量每单位价格Pr数据请求次数每单位价格;Vm数据对象m的所占空间大小,m∈M;zm数据对象m的所占空间大小,m∈M;

其中,Rm为数据对象m被修改的次数;Uc当前CPU负载比率;Ur当前内存使用量;Un当前网络负载比率;α,β,γ,τ,ψ,θ,ι,κ是模型中的常量,反映系统中不同因素对最终得分的影响程度。

α,β,γ,τ,ψ,θ,ι,κ是模型中的常量,它们反映出系统中不同因素对最终得分的影响程度。这样,云存储系统的供应商便可根据各自的需求定义适当的常量值,从而建立不同的缓存机制模型。

比如:以盈利为首要目的的云存储供应商为了实现利润最大化,可将α设为0,β设为1。相反的,对于不以盈利为目的的个体云存储服务供应者,唯一重要的因素是使用的性能如何,因此可将α设为1,β设为0。其他常量γ,τ,ψ,θ,ι,κ,用于控制物理资源(如:CPU,内存,网络)的使用强度。例如:ψ越高意味着缓存高频率更新数据对象的几率越低;τ越大意味着缓存较大文件的几率越低,也可将γ,τ,ψ,θ,ι,κ均设为0则忽略计算成本函数。在本专利所述资源调度方法中,将γ,τ,ψ,θ,ι,κ均设为1。

例如:有些公司的硬件环境所使用的服务器网络按流量计费,那么对于他们来说网络Un权重很大,所以可将κ值设大。有些公司硬件环境内存属于稀缺资源,所以看重内存的负载,所以可将Ur的权重ι设置大。有些公司硬件环境CPU属于稀缺资源,所以看重内存的负载,所以可将Uc的权重θ设置大。有些公司硬件环境磁盘的IO属于稀缺资源,大的话意味着会有频繁读写操作,所以可将ψ设置大。

更进一步的,考虑到实际使用缓存调度模型运算时,可能出现计算对象的总数巨大(总数量可以通过分析访问日志得到。总数量大的,计算时间会慢。评判标准依据不同环境决定,主要取决于可以承受的计算时间。例如如果当前环境(公司/企业)使用模型发现计算时间超过可承受的时间,例如10分钟,便可引入松弛变量)超出运算能力,造成获得0-1整数规划的最优解耗费大量时间的情况。故为了能够在系统的多项式时间内求解模型,作为优选的实施方式,所述的缓存控制单元在所述的缓存调度模型中引入松弛变量,求得原始NP完全问题的最优上限或下限:

引入松弛变量后的缓存调度模型为:

其中,xm∈(0,1),m∈M。

更进一步的,上述公式的最小上限应为最接近初始规划问题最优解的值。这便需要引入以下拉格朗日对偶函数来求解规划问题:

其中,xm∈(0,1),m∈M。

一种基于大数据和云存储系统定向性能优化的资源调度方法,应用于对象元存储单元MSS、对象元数据缓存单元MCS、对象松散数据存储单元OSS、对象松散数据缓存单元OCS的大数据和存储系统中,具有如下步骤:

—分析对象松散数据存储单元OSS中的松散数据的操作日志,得到当前时刻之前一段时间内数据对象m的访问次数;

—根据缓存调度模型计算所述数据对象m转移至所述对象松散数据存储单元OCS后的应用系能优化度;

—若优化度超过缓存门槛,则将该数据对象m转移至对象松散数据缓存单元OCS;若经缓存后优化度低于所述的缓存门槛;则不转移数据对象m。

所述的缓存调度模型为:

Sm表示所述的数据对象m置于缓存空间的得分,xm为决策变量,Sm至少包含用户使用优化度函数f(m);

对于每个数据对象m∈M,xm是一个二元变量,表示是否应将m放入缓存空间内;如果xm=1,则放入缓存空间;xm=0,则不放入缓存空间;

f(m)=对象松散数据存储单元MSS数据读取相应时间(m)-对象松散数据缓存单元OCS读取相应时间(m);

其中,对象松散数据存储单元MSS数据读取相应时间(m)=PA1*zm+PA2;对象松散数据缓存单元OCS读取相应时间(m)=PA3*zm+PA4;zm为所述数据对象m占用空间大小,m∈M;M为数据对象集合。

所述Sm还包括:数据对象m所产生的预期收益函数E(m)和移动数据对象m的成本函数C(m);

Sm=αf(m)+βE(m)-γC(m);E(m)=VmPr+VmzmPt;

Pt数据传输流量每单位价格Pr数据请求次数每单位价格;Vm数据对象m的所占空间大小,m∈M;zm数据对象m的所占空间大小,m∈M;

其中,Rm为数据对象m被修改的次数;Uc当前CPU负载比率;Ur当前内存使用量;Un当前网络负载比率;α,β,γ,τ,ψ,θ,ι,κ是模型中的常量,反映系统中不同因素对最终得分的影响程度。

当需要计算的对象的总数量超过设定阈值时,所述的缓存控制单元在所述的缓存调度模型中引入松弛变量,求得原始NP完全问题的最优上限或下限:引入松弛变量后的缓存调度模型为:

其中,xm∈(0,1),m∈M。

在求解过程中,所述的缓存控制单元引入以下拉格朗日对偶函数来求解规划问题;

其中,xm∈(0,1),m∈M。、

附图说明

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

图1为对象数据元数据存储空间和空间示意图;

图2为本发明的系统架构示意图

图3为本发明的时序流程图

图4为本发明实施例中映射化简示意图

具体实施方式

为使本发明的实施例的目的、技术方案和优点更加清楚,下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚完整的描述:

如图1-4所示:一种基于大数据和云存储系统定向性能优化的资源调度方法或者系统,主要应用于包含如下单元的大数据和/或云存储系统中。

对象元数据存储单元MSS、

对象元数据缓存单元MCS、

对象松散数据存储单元OSS、

对象松散数据缓存单元OCS;

日志存储单元,存储对象松散数据存储单元OSS中的松散数据的操作日志。

存储单元指普通类型的存储空间或设备,缓存单元相对于本发明/一般所指的存储单元,读取和存储速度更高,带宽更大,存储于缓存空间中的数据访问速度大大高于存储于普通存储空间。

还具有:缓存控制单元/步骤,通过分析所述的操作日志,得出当前时刻或一段时间内访问量超过阈值的数据对象m;根据缓存调度模型计算所述数据对象由对象松散数据存储单元OSS转移至对象松散数据缓存单元OCS后的应用性能优化度。

分析操作日志,主要通过映射和化简的方式进行,在本实施例中,可按如下方法实现(为方便描述,采用伪代码形式)

日志处理流程

映射操作Map(String key,String value)

1.//value:代表每一行日志记录,例如“数据下载2014-11-02 23:27:01容器1/对象1”

2.set n_obj=0,n_meta=0,n_oc=0,n_mc=0//初始化参数

3.emitKey=parseEmitKey(value)//获取容器及对象命名空间从value参数中

4.if(is GetObject request)

5.set n_obj=1,n_meta=1//如果是数据下载操作,更新参数n_obj,n_meta

6.else if(is PutObject request)

7.set n_oc=1,n_mc=1//如果是数据上传操作,更新参数n_oc,n_mc

8.……//更新其他数据操作类型及参数

9.end if

10.将所有参数值写入emitValue

11.emit(emitKey,emitValue)//映射操作完成,将赋值参数返回

化简操作Reduce(String key,iterator values)

1.//输入key为Map操作所传递的emitKey

2.//输入values为Map操作所传递的所有emitKey对应的参数值(emitValue)

1.set n_obj=0,n_meta=0,n_oc=0,n_mc=0//初始化参数

2.foreach(value in values)//遍历每一个值

3.//parse and update request counters

4.n_obj=n_obj+parse_n_obj(value)

5.n_meta=n_meta+parse_n_meta(value)//遍例每种数据操作类型,并更新参数值(更新所有的变量,例如对象松散,元数据下载量,修改量)

6.……

7.end for

8.将所有参数值写入emitValue

9.emit(key,emitValue)///化简操作完成,将赋值参数返回

其中,N_obj为对象分散数据下载次数;N_meta对象元数据下载次数N_oc对象分散数据修改次数;N_mc对象元数据修改次数。

缓存调度模型为:

Sm表示所述的数据对象m置于缓存空间的得分,xm为决策变量,Sm至少包含用户使用优化度函数f(m);对于每个数据对象m∈M,xm是一个二元变量,表示是否应将m放入缓存空间内;如果xm=1,则放入缓存空间;xm=0,则不放入缓存空间;f(m)=对象松散数据存储单元OSS数据读取相应时间(m)-对象松散数据缓存单元OCS读取相应时间(m);其中,对象松散数据存储单元MSS数据读取相应时间(m)=PA1·zm+PA2;对象松散数据缓存单元OCS读取相应时间(m)=PA3·zm+PA4;zm为所述数据对象m占用空间大小,m∈M;M为松散数据对象集合。

在本实施例中,所述Sm还包括:数据对象m所产生的预期收益函数E(m)和移动数据对象m的成本函数C(m);

Sm=αf(m)+βE(m)-γC(m);E(m)=VmPr+VmzmPt;

Pt数据传输流量每单位价格Pr数据请求次数每单位价格;Vm数据对象m的所占空间大小,m∈M;zm数据对象m的所占空间大小,m∈M;

其中,Rm为数据对象m被修改的次数;Uc当前CPU负载比率;Ur当前内存使用量;Un当前网络负载比率;α,β,γ,τ,ψ,θ,ι,κ是模型中的常量,反映系统中不同因素对最终得分的影响程度。

α,β,γ,τ,ψ,θ,ι,κ是模型中的常量,在本实施例中γ,τ,ψ,θ,ι,κ均为1。

使用模型的演算过程如下(采用伪代码形式):

LDC演算流程:

输入:

C全局缓存哈希表<key,

1.开始

2.通过日志处理流程处理ts和te时间段内的日志记录文件

3.创建有新的哈希表C’

4.foreach(log in logs)//遍历每一条访问记录

5.设置对应key从处理后的访问日志记录中,并更新C’

6.end for

7.合并C’和C形成新的C,并更新所有对应的对象访问记录

8.从C中移除低于缓存门槛(threshold)的对象

9.if(size(C)>MAX),then//如果C中对象总数量大于MAX

10.将C转化成排序数组A,最多不超过MAX

11.else

12.将C转化成排序数组A

13.C=使用A作为输入并演算LDC模型解决对象松散数据调度问题

14.C=使用A作为输入并演算LDC模型解决对象数据元数据调度问题

15.结束

数据移动流程

输入:

1.开始

2.初始化参数latestCacheFiles[]

3.foreach(key in C)//遍历C中每个key

4.c=C(key)

5.meta=fetchObjectMetadata(key)///获取对象元数据

6.c.setMetadata(meta)//设置缓存元数据

7.if(c.toObjCache())//判断是否要缓存对象松散数据

8.latest_etag=meta.getEtag()//获取etag,用于表示数据校验值(checksum)

9.cached_etag=c.getEtag()

10.if(cached_etag==latest_etag)//判断etag是否一致

11.latestCacheFiles.add(c.getCacheFile())//更新latestCacheFiles变量

12.else

13.file_id=randomUUID()//生成新的随机字符串作为文件标识

14.etag=copyfile(meta.getFile(),new File(file_id))//移动对象松散数据到缓存空间

15.c.setCachedFile(file_id)

16.c.setEtag(etag)

17.latestCacheFiles.add(c.getCachedFile())//更新latestCacheFiles变量

18.updateCachedHashTable(C,c)//更新全局缓存哈希表C

19.end if

20.end if

21.end for

22.allCacheFiles[]=listAllFiles()//获取目前缓存空间内现有对象列表

23.foreach(file in allCacheFiles)

24.if(!latestCacheFiles.contains(file))//若latestCacheFiles不含有对应file

25.删除file

26.end if

27.end for

28.结束

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

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