一种基于动态索引的按需数据广播调度方法转让专利

申请号 : CN201210422270.2

文献号 : CN103036806B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡文斌范存联夏畅彭超梁欢乐刘开增

申请人 : 武汉大学

摘要 :

本发明涉及一种基于动态索引的按需数据广播调度方法。包括接收步骤:当某客户端通过上行信道向服务器发送一个数据请求时,请求包含请求时间、请求截止期和请求信息描述;获取步骤:数据获取模块从请求队列中不断按照顺序取出请求,然后从数据库或其他数据存储器中查找获取满足请求的数据项,获取数据项后,该请求被加入到调度模块的就绪队列中;调度步骤:调度模块先根据调度算法对就绪队列进行调度组织,然后添加索引信息到广播队列中,最后通过下行信道广播相应的广播队列。优点:有利于降低平均访问时间和调谐时间,并且降低失效率;能动态确定最优索引周期长度并使请求失效率、平均访问时间和平均调谐时间达到期望代价最小值,总体效果更优。

权利要求 :

1.一种基于动态索引的按需数据广播调度方法,其特征在于,基于定义:数据项信息的数据结构包括数据项的编号、即将失效请求数、当前请求数、最长等待时间以及请求列表,其中请求列表包含多个请求,请求信息的数据结构包括请求的编号、截止期、访问时间、调谐时间和起始时间,具体包括以下步骤:接收步骤:当某客户端通过上行信道向服务器发送一个数据请求时,请求包含请求时间、请求截止期和请求信息描述,首先接收模块首先查看请求的信息是否已经在请求队列或者广播队列中,如果在,就直接加入到相应数据项的请求列表中,否则这个请求将被请求接收模块放入请求队列中;所有的请求按照请求时间先后顺序或者用户设定的优先级排列,先进先出;

获取步骤:数据获取模块从请求队列中不断按照顺序取出请求,然后从数据库、Internet或者缓存中查找获取满足请求的数据项,获取数据项后,该请求被加入到了调度模块的就绪队列中;

调度步骤:在每一个索引周期开始时刻,调度模块先根据调度算法对就绪队列进行调度组织,动态决定广播队列中的每一个数据项,然后添加索引信息到广播队列中,最后通过下行信道广播相应的广播队列;

所述的调度步骤中,调度模块先根据调度算法对就绪队列进行调度组织基于数据项即将失效请求数 当前请求数 和最长等待时间 作为调度的策略因素,基于公式:调度策略值

其中, 表示数据项di的紧急度;α和β均为权重因子;i,j,k为正整数,d表示待广播数据项,di表示第i个待广播数据项。

2.根据权利要求1所述的一种基于动态索引的按需数据广播调度方法,其特征在于,所述的调度步骤中,加入添加索引信息到广播队列的具体方法是:首先假设某一个数据项被广播,则可以统计被广播之后将要失效的请求数,根据这个将失效请求数用来计算正在被广播的数据项的调度策略值,只有值最小的优先级最大,这个数据项被添加在实际广播队列中,然后再假设第二个数据项被广播,又可以统计此时所有数据项的将要失效请求数,同样计算每个数据项的调度优先级值,可以选择一个实际的数据项插入到广播队列中,以此类推,当达到索引周期长度后,根据实际广播队列构造索引集合即索引项,再将索引项插入到广播队列最前面,最后根据这个带索引项的广播队列来实际广播数据项。

3.根据权利要求2所述的一种基于动态索引的按需数据广播调度方法,其特征在于,建立索引周期的步骤具体方法如下:在预测出数据项bdk,j后,再假设bdk,j被广播,然后统计评估bdk,1到bdk,j之间的请求失效率、平均访问时间和平均调谐时间,最后根据这三个指标新值计算此时的总代价,总代价决定是否将bdk,j插入到实际广播队列,即索引从j-1增加到j,定义fI(j)是索引周期为j时的总代价:

其中,α和β权重因子的取值决定了三个策略因素的影响大小;Ratiok,<j+1为第K次索引周期第1个广播段到第j个广播段的请求失效率,AAk,<j+1为K次索引周期第1个广播段到第j个广播段的平均访问时间;ATk,<j+1为K次索引周期第1个广播段到第j个广播段的平均调谐时间;

式二中第一部分α×Ratiok,<j+1为请求失效率代价,第二部分

为等待时间代价,包含平均访问时间和平均调谐时间,表示等待时间占截止期起始偏移量的比例,某一个请求的等待时间不会超过它截止期偏差,第k个索引周期内从第1个数据项到第j个数据项成功请求的截止期起始偏移量如式五所示:

式五中α、β分别表示请求失效率和等待时间对总代价的权重因子,目标函数是寻求一个适当的j使得fI(j)达到最小值,索引周期至少为1,索引周期长度在每个索引周期期间从索引周期长为1开始递增判定; 为数据项di在第k次索引周期期间第j个数据项开始广播时刻的第r个请求的截止期起始偏移量,i∈{1,2,...N},N为正整数;k,j,t,r为正整数,bdk,t为第k次索引周期期间,第t个数据项。

说明书 :

一种基于动态索引的按需数据广播调度方法

技术领域

[0001] 本发明涉及一种按需数据广播调度方法,尤其是涉及一种基于动态索引的按需数据广播调度方法。

背景技术

[0002] 移动计算,为移动客户机随时随地访问数据提供了基础,使得用户在任何地点任何时间访问信息成为了可能,它有效的弥补了IP网络带宽的严重不足,应用前景已越来越广阔,例如3G、LTE和4G等移动通信技术。不同于固定网络的传统分布式计算环境,移动计算环境有许多特有特点,如:移动性、频繁间断性、网络条件的多样性和非对称性,因此移动计算中最主要的研究课题是数据广播的调度问题,它研究服务器在有限带宽下如何组织生成广播数据序列,实现系统整体服务质量(Quality of service,Qos)最好。
[0003] 数据广播通过带宽复用来实现大量用户同时访问热点数据,而且这种数据广播方式,能支持移动客户端的移动计算特性。按照广播的方式,数据广播主要包括静态周期广播(push-based)、按需广播(pull-based)和混合广播三种方式。静态周期广播是服务器根据用户对数据项的请求分布,周期性的广播热点数据,这种方式不需要用户发送数据请求,如小区广播和军事作战指令传输等。大量文献研究了静态周期广播方式,其中最有影响的算法是多盘调度算法,它将所有的数据项按照用户请求概率进行排列,然后将这些数据项按照优先级归并成几个集合,每个集合被定义成一个盘,整体优先级大的盘转动速度快,优先级小的盘转动速度慢,分别向空中广播数据,所以优先级大的数据项将被多次广播。但在实际情况中,不同的 用户在不同的时间对不同的数据的要求不同,而且热点数据随着时间在不断变化,按需广播就反映了这种需求,它按照移动客户端的动态需求来组织广播数据项。混合广播方式是上述两种方式的结合,一部分热点数据周期广播,非热点数据则按需广播。
[0004] 以下几种典型按需数据广播调度算法,其中有截止期约束的算法,也有非截止期约束的算法。
[0005] EDF(最早截止期优先)是基于数据项最早截止期的优先调度,即第一个被广播的数据项是被请求最紧急的数据项。假设数据项为di,当前第k个索引周期调度第j个数据项,di优先级计算式为 值越小的数据项优先级越高。算法的缺点是只考虑了截止期情况,可能造成请求少的数据项比请求多的数据项优先广播,导致失效率不够低。
[0006] MRF(最多请求优先)首先广播拥有最多请求的数据项,即广播那些最热点的数据。假设数据项为di,当前第k个索引周期调度第j个数据项,di优先级计算式为 值越小的数据项优先级越高。算法的缺点是只考虑了数据项的请求情况,若应用到实时按需广播中,对数据项请求的紧急度不明感,因此失效率可能很大。
[0007] RxW(请求数和等待时间)优先广播有最大RxW值的数据项。其中R表示数据项的有效请求数,W是数据项的最长等待时间。RxW结合访问频率和等待时间来减少响应时间。假设数据项为di,当前第k个索引周期调度第j个数据项,di优先级计算式为 值越小的数据项优先级越高。算法的缺点是虽然可以减少平均访问时间和平均调谐时间,但不能针对实时按需广播问题,与MRF算法一样,失效率可能很大。
[0008] SIN-α(偏移时间比请求数)在每个广播时刻,广播最小SIN值的数据项。SIN值被定义成数据项的偏移时间和请求数的比例。SIN结合访问频 率和紧急度来改善调度性能。假设数据项为di,当前第k个索引周期调度第j个数据项,di优先级计算式为值越小的数据项优先级越高,算法中α是衡量截止期和请求数的权值因子,文献
Wirelessreal-time on-demand data broadcast scheduling with dual deadlines指出α=1时计算式的效果与最优情况相近。算法的缺点是用截止期来反映数据项的整体紧急度,不够完善,而且没有考虑到等待时间情况。
[0009] 实时按需数据广播更能满足实际中用户对信息实时多样化的需求,因此它越来越成为研究热点。目前很多研究提出了有效的调度算法来提高非实时按需广播系统的性能,即使有些算法考虑了请求截止期(实时)因素,也仅仅考虑用数据项请求集合中的最小截止期来代表这个数据项的整体紧急度,这可能导致真正大量请求紧急的数据项未被广播。另外,大多数调度算法只考虑如何降低整个系统的请求失效率,没有考虑如何降低未失效请求的平均访问时间和平均调谐时间。目前还没有一种数据广播调度算法既能满足用户请求的截止期约束,又能减少移动终端的能量消耗(调谐时间)。

发明内容

[0010] 本发明的上述技术问题主要是通过下述技术方案得以解决的:
[0011] 一种基于动态索引的按需数据广播调度方法,其特征在于,基于定义:数据项信息的数据结构包括数据项的编号、即将失效请求数、当前请求数、最长等待时间以及请求列表,其中请求列表包含多个请求,请求信息的数据结构包括请求的编号、截止期、访问时间、调谐时间和起始时间,具体包括以下步骤:
[0012] 接收步骤:当某客户端通过上行信道向服务器发送一个数据请求时,请求包含请求时间、请求截止期和请求信息描述,首先接收模块首先查看 请求的信息是否已经在请求队列或者广播队列中,如果在,就直接加入到相应数据项的请求列表中,否则这个请求将被请求接收模块放入请求队列中;所有的请求按照请求时间先后顺序或者用户设定的优先级排列,先进先出;
[0013] 获取步骤:数据获取模块从请求队列中不断按照顺序取出请求,然后从数据库、Internet或者缓存中查找获取满足请求的数据项,获取数据项后,该请求被加入到了调度模块的就绪队列中;
[0014] 调度步骤:在每一个索引周期开始时刻,调度模块先根据调度算法对就绪队列进行调度组织,动态决定广播队列中的每一个数据项,然后添加索引信息到广播队列中,最后通过下行信道广播相应的广播队列。
[0015] 在上述的一种基于动态索引的按需数据广播调度方法,所述的调度步骤中,调度模块先根据调度算法对就绪队列进行调度组织基于数据项即将失效请求数 当前请求数 和最长等待时间 作为调度的策略因素,基于公式:调度策略值
式一。
[0016] 在上述的一种基于动态索引的按需数据广播调度方法,所述的调度步骤中,加入添加索引信息到广播队列的具体方法是:首先假设某一个数据项被广播,则可以统计被广播之后将要失效的请求数,根据这个将失效请求数用来计算正在被广播的数据项的调度策略值,只有值最小的优先级最大,这个数据项被添加在实际广播队列中,然后再假设第二个数据项被广播,又可以统计此时所有数据项的将要失效请求数,同样计算每个数据项的调度优先级值,可以选择一个实际的数据项插入到广播队列中,以此类 推,当达到索引周期长度后,根据实际广播队列构造索引集合即索引项,再将索引项插入到广播队列最前面,最后根据这个带索引项的广播队列来实际广播数据项。
[0017] 在上述的一种基于动态索引的按需数据广播调度方法,所述的建立索引周期的步骤具体方法如下:在预测出数据项bdk,j后,再假设bdk,j被广播,然后统计评估bdk,1到bdk,j之间的请求失效率、平均访问时间和平均调谐时间,最后根据这三个指标新值计算此时的总代价,总代价决定是否将bdk,j插入到实际广播队列,即索引从j-1增加到j,定义fI(j)是索引周期为j时的总代价:
[0018] 式二
[0019] 式二中第一部分为请求失效率代价,第二部分为等待时间代价,包含平均访问时间和平均调谐时间,表示等待时间占截止期起始偏移量的比例,某一个请求的等待时间不会超过它截止期偏差,第k个索引周期内从第1个数据项到第j个数据项成功请求的截止期起始偏移量如式五所示。
[0020] 式五,
[0021] 式五中α、β分别表示请求失效率和等待时间对总代价的权重因子。目标函数是寻求一个适当的j使得fI(j)达到最小值,索引周期至少为1,索引周期长度在每个索引周期期间从索引周期长为1开始递增判定。
[0022] 因此,本发明具有如下优点:
[0023] 1.LxRxW算法中采用的即将失效请求数比数据项的截止期更能代表数据项的整体紧急度;算法优先广播最长等待时间的数据项,这有利于降低平均访问时间和调谐时间,并且降低失效率。
[0024] 2.有索引的LxRxW调度算法比无索引的LxRxW调度算法少量增加了请求失效率和访问时间,但使移动设备的调谐时间显著下降,说明从总体效果来讲本发明中索引预测和索引组织效果明显,因此在实时按需数据广播调度中引入索引策略非常有效;LxRxW-DAIL算法比固定索引周期时LxRxW具有更好的稳定性,该方法能动态确定最优索引周期长度并使请求失效率、平均访问时间和平均调谐时间达到期望代价最小值,总体效果更优。

附图说明

[0025] 附图1是按需数据广播调度系统的结构。
[0026] 附图2是按需广播系统队列数据结构图。
[0027] 附图3是广播队列索引周期示意图。
[0028] 附图4a是均匀分布下请求速率对请求失效率的影响。
[0029] 附图4b是指数分布下请求速率对请求失效率的影响。
[0030] 附图4c是固定分布下请求速率对请求失效率的影响。

具体实施方式

[0031] 下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
[0032] 实施例:
[0033] 本发明中,按需数据广播调度系统的结构如图1所示。假设系统中包含一个服务器和多个移动客户端,移动客户端使用上行信道传输请求,服务器通过下行信道广播数据项队列。系统主要包括接收(Accept)、获取(Fetch)和调度(Schedule)三个模块,接收模块维护一个请求队列(Req),调度模块维护一个就绪队列(Ready),服务器系统维护一个广播队列(Broadcast),请求队列由请求组成,就绪队列和广播队列由数据项组成,而每个数据项包含一个请求列表。
[0034] 具体实现过程为:接收:当某客户端通过上行信道向服务器发送一个数据请求时,请求包含请求时间、请求截止期和请求信息描述,首先Accept模块首先查看请求的信息是否已经在Ready队列或者Broadcast队列中,如果在,就直接加入到相应数据项的请求列表中,否则这个请求将被请求接收模块放入Req队列中。所有的请求按照请求时间先后顺序或者某种优先级排列,先进先出。
[0035] 获取:数据Fetch模块从Req队列中不断按照顺序取出请求,然后从数据库、Internet或者缓存中查找获取满足请求的数据项,获取数据项后,该请求被加入到了Schedule模块的就绪队列中。本文中,数据项的获取时间不考虑,缓存策略也不考虑。
[0036] 调度:在每一个索引周期开始时刻,Schedule模块先根据调度算法对Ready队列进行调度组织,该算法动态决定广播队列中的每一个数据项,然后添加索引信息到广播队列中,最后通过下行信道广播Broadcast队列。
[0037] 如果在服务器处理过程中,某个请求长时间没被满足,则可能超过请求截止期而失效,而如果某个客户端能够在截止期内接受到请求的数据,那么这个数据项对于客户端来说是有效的。在该系统结构中,一个客户端可以在上一个请求还没被满足的情况下发送另一个请求。
[0038] 数据项数据结构主要包括8部分信息为数据项的编号、即将失效请求数、当前请求数、等待时间、截止期偏移、请求列表,结构表示为{id,lostNum,reqNum,waitTime,min Slack,aTime,tTime,reqList},组成就绪队列和广播队列二个个队列,每个列表的数据结构如图2所示。列表记录了一个数据项下的所有请求信息,请求信息包括请求的编号、截止期、访问时间、调谐时间和起始时间,结构表示为{rid,deadline,aTime,tTime,sTime}。请求队列由请求信息组成。为了能够支持系统中统计模块,请求信息结构中加入是否 统计标志、监听标志等信息,组成全局用户请求列表pUserList。
[0039] 对于请求队列,采用链表结构,本发明按照请求先后时间排序。为了防止经常遍历和查找的时间消耗,就绪队列采用线性表结构,初始长度为数据项的个数,每个单元初始为空。由于广播队列随机性比较大,而且往往只占总数据项的一小部分,所以广播队列中的数据项结构里面还维护了一个向后指针,每当一个广播队列确定后,这些数据项就会形成一个链表,便于查找,因此广播队列不但采用线性表结构,而且还维护一个链表结构。在就绪队列和广播队列中,每个数据项的请求都维护一个链表,所以请求结构中含有向后指针,当用户请求到来,请求被服务器插入到队列中的相应数据项的请求列表中,队列之间转换是直接拷贝数据项的指针就可以了。
[0040] 如果队列中相应数据项被Schedule模块选择为下一个待广播项,则从就绪队列中“剪切”数据项所有信息“粘贴”更新到广播队列中相应域,而且链接到广播队列尾部,原队列中数据项设为NULL。
[0041] 所有未被满足或失效请求,都在服务器的总请求列表pUserList中维护一个指针,这个总请求列表的作用就是,当进行数据项失效率、平均访问时间和平均调谐时间统计时能够快捷的完全遍历。
[0042] 下面,详细阐述一下本发明所需要应用到的方法以及过程:
[0043] 1.首先,进行模型假设:
[0044] (1)假设数据广播采用动态周期性的调度方式,即服务器周期性的生成广播索引项,然后在广播数据项之前广播这个索引项。其中动态广播是周期性广播的一个特例。
[0045] (2)移动客户对广播数据访问的独立性:服务器上所有广播的数据项对所有移动客户端是可见的,所有移动客户端对数据项的访问都是相互独立、互不干扰。
[0046] (3)广播项原子性:广播队列项包括数据项和索引项,都作为广播最小单位,且所有被广播的数据项都是等长度的,本文中归一化处理。在实际应用中,数据项可以是服务器缓存信息、数据库里面的记录信息、Internet上的网页视频资源等数据。
[0047] (4)广播项可识别性:即移动客户在接收任意一个索引项或数据项之前可以根据识别码知道它是不是自己所要访问的数据项。这可以通过在每个数据项之前插入适当的头标识来实现。
[0048] (5)广播项全局唯一性:即每个广播索引项或数据项拥有一个key,它能够唯一地标识一个广播项,并且移动客户机总是根据key来访问数据广播中的广播项,这与广播项的可识别性是一致的。
[0049] (6)广播项在广播队列中位置确定:定义一个数据项在数据广播中的位置为该数据项在广播信道中的被广播时离某个起始时间的偏移量。所有数据项都是顺序被广播,不存在多信道或并发广播情况。
[0050] (7)数据的一致性假设:所有的数据项更新是以一个广播周期为单位的,即在一个广播周期内,所有请求的同一个数据项数据是相同的,即使被修改也只能延迟到下一个广播周期内。
[0051] (8)数据处理时间约定:假设服务器在处理请求、获取数据数据项以及调度数据项的时间为0,即所有广播数据项都是连续无间隔广播,不会因为数据项需要长时间处理而发生停顿。
[0052] (9)单数据请求约定:每个移动客户端在一次请求里只请求一个数据项,移动客户端的多次请求数据项之间无关联性,而且用户可以在没有获得上一个请求数据之前发送下一个请求。
[0053] 2.广播模型定义:
[0054] 图3为数据广播队列索引周期,其中第k次索引周期,包含一个索引项 Index和M个数据项,1,2,3,..,M分别对应一个数据项,本文假定每个数据项的大小一致,每个数据项的广播时间为一个广播段且都为1,第k次索引周期索引长度为索引项和所包含的数据项个数,即索引周期长度为|Index|+M≈M,为研究方便,本文作如下假设和定义:
[0055] (1)di为第i个数据项,i∈{1,2,...N};
[0056] (2) 为数据项di在第k次索引周期期间的请求速率,i∈{1,2,...,N};
[0057] (3)bdk,j为第k次索引周期期间,第j个数据项,j∈{1,2,...,M},广播队列为Bk={Index,bdk,1,bdk,2,bdk,3,...,bdk,j,...,bdk,M};
[0058] (4) 为数据项di在第k次索引周期期间第j个数据项开始广播时刻的请求数,i∈{1,2,...,N},其中,当di∈Bk时, 全部成功满足在截止期前获取数据,否则未成功获取数据;
[0059] (5) 为数据项di在第k次索引周期期间第j个数据项开始广播时刻
[0060] 的第r个请求,i∈{1,2,...,N},设 r∈{1,2,...,Z},di的请求集合为
[0061]
[0062] (6) 为数据项di在第k次索引周期期间第j个数据项开始广播时刻的第r个请求的截止期,i∈{1,2,...N},设Z=|R,k,j|,r∈{1,2,...Z},则数据项di的截止期为且;其中Min为取最小值;
[0063] (7) 为数据项di在第k次索引周期期间第j个数据项开始广播时刻的第r个请求的截止期偏移量,i∈{1,2,...N},截止期偏移量为截止期与当前时间的偏移量值,若定义第k次索引周期期间第j个数据项开始广播时刻为 则则 数据项di的截止期 偏移量,
其中
[0064] (8) 为数据项di在第k次索引周期期间第j个数据项开始广播时刻的第r个请求的截止期起始偏移量,i∈{1,2,...N},截止期起始偏移量为请求截止期与请求发出时间的偏移量值,若定义 发出请求时间为为  则
[0065] (9) 为数据项di在第k次索引周期期间第j个数据项广播期间的失效请求数,i∈{1,2,...,N},则 在第j个数据项开始广播时刻为di的即将失效请求数, 的求解方法:对于广播系统中每个数据项di∈D,假设第j个广播段开始时刻t,统计di的所有请求中截止期满足条件 的请求数 则 所有数据项失效数集合 显然可能存在数据项di的 
[0066] (10) 为数据项di在第k次索引周期期间第j个数据项开始广播时刻的第r个请求的等待时间,i∈{1,2,...N},设 r∈{1,2,...Z},则数据项di等待时间为且,其中Max为取最大值;
[0067] (11) 为数据项di在第k次索引周期期间第j个数据项开始广播时刻的第r个请求的访问时间;
[0068] (12) 为数据项di在第k次索引周期期间第j个数据项开始广播时刻的第r个请求的调谐时间;
[0069] (13)Ik为第k次索引周期的索引周期长,索引长集合I={I1,I2,I3,...,Ik,...},且k≥1。
[0070] 3.LxRxW调度算法
[0071] (1)算法介绍
[0072] 本发明基于SIN-α算法的缺陷提出一种改进的LxRxW算法,关键是找到一种比更能代表数据项整体紧急度的因素,分析发现,如果采用请求截止期的平均值或平均截止期总和值,都不能表示数据项整体紧急度。
[0073] 本发明其不同于SIN-α算法的是:它结合数据项即将失效请求数 当前请求数和最长等待时间 作为调度的主要策略因素,其中即将请求失效数 比数据项截止期 更能代表数据项的整体紧急度,因为若大部分请求紧急,那么 必定很大,但很小则不一定大部分请求紧急,可能刚好一个请求比较紧急,而其他请求都不紧急。在第k次索引周期,第j个广播段期间,LxRxW三个策略因素对数据项A、B的影响关系可以描述如下:
[0074] (1)当两个数据项A、B的请求量和最长等待时间相同时,即 且分别计算这两个数据项的即将失效请求数 和  这里不会考虑
这段时间新加入的请求。如果 则广播A,否则广播B,因为广播了最多失效的
数据项后,整个系统的失效请求最小,所以能够降低整个系统的请求失效率。
[0075] (2)当两个数据项A、B的即将失效请求数和最长等待时间相等,即 且 当 则广播A,否则广播B,从而使被在截止期之前满足的
广播数据项的请求最多,能降低请求失效率、平均访问时间和平均调谐时间。
[0076] (3)当两个数据项A、B的即将失效请求数和请求量相等,即 且当 则广播A,否则广播B,从而使数据项等待时间变短,这
样可以预见性的减少失效请求数,而且能够降低系统平均访问时间和平均调谐时间。
[0077] 为了量化评价数据项的优先级,在每个索引周期内,确定每个广播段 的数据项之前,数据项都会计算一个LxRxW值。第k次索引周期,第j个广播段期间,数据项di的LxRxW值计算如式一。
[0078] 式一
[0079] 其中,具有最小Weight值的数据项优先级最高,被最优先广播。在Weight值计算中可能为0,此时就用 表示数据项di的紧急度,因此式一修改为式二。
[0080] 式二
[0081] 由于对于所有di,可能只有一部分 的值可能为0,本发明LxRxW算法中规定,只有当每一个 都为0时,才会选择 来计算,其中最小LxRxW值对应数据项将会广播,否则从所有 不为0的di中选择数据项广播。第k次索引周期,第j个广播段期间,数据项di被调度,假设调度之前的失效数为ALostNum,成功请求数为ARNum,则调度之后的失效率如式三。
[0082] 式三
[0083] 利用LxRxW算法对表1中的数据进行分析,在第一个广播段期间,D1失效1个请求,V1值为1/(1*5*5)=0.04,D2失效了5个请求,V2值为1/(5*5*5)=0.0008,则V1>V2,那么广播顺序为先D2后D1,可见,LxRxW算法求解符合问题最优解。
[0084] (2)LxRxW调度算法分析
[0085] 通过(1)分析可知,LxRxW算法比SIN-α有两点优势:(1)SIN-α算 法中将数据项中的最小截止期作为数据项截止期计算,这个值不能表示整个数据项所有请求的紧急程度;而本发明的即将失效请求数是统计所有请求截止期当前紧急度的结果,能反应数据项整体紧急程度(;2)SIN-α算法中没有考虑数据项的等待时间,而优先广播最长等待时间数据项,这有利于降低平均访问时间和调谐时间,并且降低失效率,因为等待时间越长,越容易接近和超过截止期,广播高等待时间数据项能有效降低失效率。
[0086] 表1调度数据项示例
[0087]
[0088] 然而,LxRxW算法在一些情况下,并不能很好的工作,如表2示例。根据LxRxW算法分析,D1的计算值为V1=1/(1*5*10)=0.02,D2的计算值为V2=1/(5*5*1)=0.04,则V1
[0089] 式四
[0090] 式四中α和β权重因子的取值决定了三个策略因素的影响大小。 对于请求失效率有直接影响, 对于请求失效率、平均访问时间和平均 响应时间都有直接影响,对于平均访问时间和平均响应时间有直接影响,所以α和β的选择对于不同指标有影响。
[0091] 图4(a)、4(b)以及4(c)是β固定而不同α值(0.5、1、2和4)的LxRxW算法在不同请求速率(0.25、0.5、1、2、4、8、16、32、64、128)下,失效速率的影响趋势比较。实验中,设定β为1,广播速率为10(objects/second),平均截止期为60(s),截止期范围为[0,120](s),其他仿真实验参数设定如表3。移动客户端的请求截止期被随机设置在截止期范围内,依据三种不同的分布(均匀分布、指数分布和固定分布)。从图3可知,当请求速率比较低时,LxRxW在不同α值下失效率比较接近,而当请求速率比较大时,失效率差距有增大的趋势。当α为1时的LxRxW算法在几种分布情况下综合性能比其他三种更优,但大体上,LxRxW受α的变化影响不大。不同α和β值可以改变指标的最终偏向,比如α大β小,可以使失效率更低,而平均访问时间和平均调谐时间可能变高,α小β大,可以使平均访问时间和平均调谐时间更低,而失效率可能变高,因此α和β对第4章中的动态索引周期调整方法DAIL也有影响。本发明中选择LxRxW的α为1,β为1。
[0092] 4.动态索引周期调整方法(DAIL)
[0093] 请求失效率、平均访问时间和平均调谐时间会随索引周期长度的不同而此消彼长,为了使三者达到最优平衡性,本发明需要动态地确定每一个索引周期。文献An Adaptive and Energy-Conserving Indexing Method forOn-Demand Data Broadcasting Systems给出了一种根据上一个索引周期内的平均访问时间和平均调谐时间确定下一个索引周期长度的方法,它的不足之处在于:一方面上一个索引周期指标不能体现下一个索引周期的实时情况且粒度不够,另一方面它没有考虑到请求截止期和失效率。文献An Adaptive and Energy-Conserving Indexing Method for On-Demand DataBroadcasting Systems中周期长度确定方法的粒度是索引周期,并且一次性决定索引周期长度,本发明方法粒度为广播段,动态决定索引周期是否增长。本发明周期长度确定方法DAIL具体思路为:在数据广播调度算法步骤3-6预测出数据项bdk,j后,再假设bdk,j被广播,然后统计评估bdk,1到bdk,j之间的请求失效率、平均访问时间和平均调谐时间,最后根据这三个指标新值计算此时的总代价,总代价决定是否将bdk,j插入到实际广播队列,即索引从j-1增加到j。式五是本发明给出了基于三个指标的索引周期代价计算公式,fI(j)是索引周期为j时的总代价。
[0094] 式五
[0095] 式五中第一部分为请求失效率代价,第二部分为等待时间代价,包含平均访问时间和平均调谐时间,表示等待时间占截止期起始偏移量的比例,某一个请求的等待时间不会超过它截止期偏差,第k个索引周期内从第1个数据项到第j个数据项成功请求的截止期起始偏移量如式六所示。
[0096] 式六
[0097] 式六中α、β分别表示请求失效率和等待时间对总代价的权重因子。目标函数是寻求一个适当的j使得fI(j)达到最小值。索引周期至少为1,DAIL在每个索引周期期间从索引周期长为1开始递增判定,调整算法为DynamicAjust。本实施例中,从索引周期为1开始递增可以找到一个最优索引长度值,使得请求失效率和等待时间的总代价最小,在本实施例中,α、β均取小于1的正数即可。
[0098] 过程:DynamicAjust
[0099] 输入:k,j,fI(j-1)
[0100] 输出:Yes or No (Yes表示可以增长索引周期,No表示不可以)
[0101] (1)(假设)广播bdk,j,更新广播后数据项的所有请求(包括截止期,是否已失效,等待时间等);
[0102] (2)计算请求失效率、平均访问时间和平均调谐时间
[0103] (3)先计算avgSk,<j+1,然后计算fI(j)
[0104] (4)如果fI(j-1)>fI(j),return Yes,否则return No
[0105] DynamicAjust可以替换广播调度算法中步骤7的“判断广播段是否终止”,只需根据上下文环境稍微调整。
[0106] 5.动态索引周期调整方法(DAIL)
[0107] 请求失效率、平均访问时间和平均调谐时间会随索引周期长度的不同而此消彼长,为了使三者达到最优平衡性,本发明需要动态地确定每一个索引周期。文献An Adaptive and Energy-Conserving Indexing Method forOn-Demand Data Broadcasting Systems给出了一种根据上一个索引周期内的平均访问时间和平均调谐时间确定下一个索引周期长度的方法,它的不足之处在于:一方面上一个索引周期指标不能体现下一个索引周期的实时情况且粒度不够,另一方面它没有考虑到请求截止期和失效率。文献AnAdaptive and Energy-Conserving Indexing Method for On-Demand 
DataBroadcasting Systems中周期长度确定方法的粒度是索引周期,并且一次性决定索引周期长度,本发明方法粒度为广播段,动态决定索引周期是否增长。本发明周期长度确定方法DAIL具体思路为:在数据广播调度算法步骤3-6预测出数据项bdk,j后,再假设bdk,j被广播,然后统计评估bdk,1到bdk,j之间的请求失效率、平均访问时间和平均调谐时间,最后根据这三个指标新值计算此时的总代价,总代价决定是否将bdk,j插入到实际广播队列,即索引 从j-1增加到j。式七是本发明给出了基于三个指标的索引周期代价计算公式,fI(j)是索引周期为j时的总代价。
[0108] 式七
[0109] 式七中第一部分为请求失效率代价,第二部分为等待时间代价,包含平均访问时间和平均调谐时间,表示等待时间占截止期起始偏移量的比例,某一个请求的等待时间不会超过它截止期偏差,第k个索引周期内从第1个数据项到第j个数据项成功请求的截止期起始偏移量如式八所示。
[0110] 式八
[0111] 式八中α、β分别表示请求失效率和等待时间对总代价的权重因子。
[0112] 目标函数是寻求一个适当的j使得fI(j)达到最小值。索引周期至少为1,DAIL在每个索引周期期间从索引周期长为1开始递增判定,调整算法为DynamicAjust。通过4.2节分析可知从索引周期为1开始递增可以找到一个最优索引长度值,使得请求失效率和等待时间的总代价最小。
[0113] 过程:DynamicAjust
[0114] 输入:k,j,fI(j-1)
[0115] 输出:Yes or No (Yes表示可以增长索引周期,No表示不可以)
[0116] (1)(假设)广播bdk,j,更新广播后数据项的所有请求(包括截止期,是否已失效,等待时间等);
[0117] (2)计算请求失效率、平均访问时间和平均调谐时间
[0118] (3)先计算avgSk,<j+1,然后计算fI(j)
[0119] (4)如果fI(j-1)>fI(j),return Yes,否则return NoDynamicAjust可以替换广播调度算法中步骤7的“判断广播段是否终 止”,只需根据上下文环境稍微调整。
[0120] 6.基于动态索引策略的LxRxW调度算法
[0121] 系统中,调度算法将LxRxW、索引策略和动态索引长度调整方法DAIL结合起来,算法思路是,在每个索引周期调度时,根据当前请求分布情况,进行一个假设广播过程,首先假设某一个数据项被广播,则可以统计被广播之后将要失效的请求数,根据这个将失效请求数用来计算正在被广播的数据项的调度策略值,只有值最小的优先级最大,这个数据项被添加在实际广播队列中,然后再假设第二个数据项被广播,又可以统计此时所有数据项的将要失效请求数,同样计算每个数据项的调度优先级值,可以选择一个实际的数据项插入到广播队列中,以此类推,当达到索引周期长度后,根据实际广播队列构造索引集合即索引项,再将索引项插入到广播队列最前面,最后根据这个带索引项的广播队列来实际广播数据项。
[0122] 本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。