1.一种面向边缘-云异构下的多级事务调度分配策略,其特征在于,包括以下步骤:
步骤1,收集所有待处理事务的信息并整理,此处待处理的信息包括事务tk的计算工作量 最大延迟容忍时间 向其他事务tl传输的数据量 其中,若事务tk是入口事务,则传输数据量为 事务的信息还包括:前导事务的数量Np(tk)和后继事务数量Ns(tk)、前导事务集合P(tk)和后继事务集合S(tk),其中所述的入口事务不存在前导事务,前导事务集合由该事务tk的所有前导事务组成,所述的前导事务是指执行事务tk前必须首先执行的事务;出口事务不存在后继事务,后继事务集合由该事务tk的所有后继事务组成,所述的后继事务是指在事务tk执行完成之后才可以执行的事务;将所有收集的事务信息整理成事务集合T={t1,t2,t3,...,tk,...,tn}和事务依赖关系集合E,E包含事务间的依赖关系,其中表示事务tk和事务tl的依赖关系,利用事务集合和事务依赖关系集合形成一个T-DAG图;
步骤2,将整个边缘-云协同架构下的所有资源节点,包括云服务器和边缘服务器,两两相关联,形成一个R-CG图;R-CG中所有的点组成资源集合R={r1,r2,r3,...,ri,...,rm},图上每个点代表一个资源节点ri,每个资源节点ri需要保存的信息包括:资源节点的计算能力和计算功率 R-CG图中所有的边组成资源关联集合 每个边缘 需要保存的信息包括:资源ri和资源rj之间传输数据的带宽 以及资源ri和rj之间的距离
步骤3,在步骤1存储事务信息的基础上进行提炼,确定事务调度算法执行的入口事务集Tentry和出口事务集Texit,其中入口事务不存在前导事务,出口事务不存在后继事务;
步骤4,在遵从事务执行顺序的前提下,判断事务是在边缘服务器还是云端执行;判断事务执行位置是按照从边缘设备接收事务的顺序进行;首先,定义一个空的优先级事务队列,若判断结果为事务在云端执行,则该事务将按照执行顺序,等待发送到云端处理,并将事务放入事务优先级队列Q中,所依赖的前导事务之后,其中两个事务不存在依赖关系的前提下,默认在云端处理的事务比在边缘处理的事务优先级要高,事务放入优先级队列之后计算该事务的执行时间;若判断结果为事务在边缘服务器执行,则通过启发式事务调度算法计算事务的优先级,生成非递减的事务优先级队列Q;当所有事务判断优先级结束后,进入步骤5,否则,重复执行步骤4;
其中,判断事务tk执行位置的方法如下:
首先,计算事务tk预估在云端的执行时间 和事务的预估传输时间 事务预估执行时间和传输时间如公式(1)、(2)所示:其中,ωcloud表示云端服务器的计算能力,rj∈P(ri)表示执行事务tl的资源节点rj在执行事务tk的资源节点rj的前导集合中, 表示从资源节点ri到云端的所有带宽的均值;
其次,比较事务预估在云端执行时间和事务的预估传输时间之间的关系:当时,将事务tk传输到云端服务器执行;否则,在边缘服务器执行;
其中,所述的启发式事务调度算法计算事务tk优先级的公式(3)如下:
其中, 表示所有资源节点的平均工作能力; 表示其它所有可能潜在rj节点资源节点到资源节点ri的平均带宽;rj∈P(ri)表示资源节点rj在ri的前导集合中; 表示资源节点ri到其它所有可能潜在rj节点资源节点的平均带宽;rj∈S(ri)表示资源节点rj在ri的后继集合中; 表示事务tk的前导事务tl的优先级数值;tk≡Tentry表示事务tk是一个事务入口,tk≠Tentry表示事务tk不是事务入口;
步骤5,按照事务优先级队列Q的顺序计算每个事务在不同边缘节点的评估函数,评估函数最小的资源节点即为执行当前事务的最优资源节点;其中,事务tk执行的评估函数如下:其中,
其中, 为事务tk的待处理紧急程度,即等待的时间不能超过事务最大延迟容忍时间;
为事务tk的等待时间;以下是 和 的计算公式:
其中,rj∈S(ri)表示执行事务tl的资源节点rj在执行事务tk的资源节点rj的后继集合中, 为计算功耗, 为传输功耗,qh表示在事务优先级队列Q中的第h个事务,ρsend表示数据传输在单位长度和单位时间内的功率;以上的公式按照之前排列好的事务优先级队列Q的事务顺序计算在不同资源节点上的评估函数,使得当前事务评估函数最小的资源节点即为执行当前事务的最优资源节点;当优先级队列中的事务全部完成了资源分配,资源分配阶段结束,,生成事务-资源分配映射方案;若没有,则不断重复步骤5;
步骤6,在步骤4和步骤5安排好事务优先级对列Q的前提下,开始按照事务优先级队列Q中的顺序执行事务,事务按照步骤4和步骤5生成的资源分配映射方案,在最优资源节点上执行。