CN108537594A - 一种云资源动态定价方法 - Google Patents
一种云资源动态定价方法 Download PDFInfo
- Publication number
- CN108537594A CN108537594A CN201810329219.4A CN201810329219A CN108537594A CN 108537594 A CN108537594 A CN 108537594A CN 201810329219 A CN201810329219 A CN 201810329219A CN 108537594 A CN108537594 A CN 108537594A
- Authority
- CN
- China
- Prior art keywords
- node
- section
- usage amount
- rickle
- time interval
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
- G06Q30/0206—Price or cost determination based on market factors
Landscapes
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Finance (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Data Mining & Analysis (AREA)
- Economics (AREA)
- Marketing (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种云资源动态定价方法,针对当下云资源定价存在的问题与不足,提出了动态定价的方案。包括下列步骤:步骤1.建立树型索引结构;步骤2、用户数据新增与删除等操作算法;步骤3.基于树型索引结构的动态定价查询。本发明根据“云资源动态定价”的问题,利用具有Segment‑tree和B‑tree特点的树型索引结构,有效地解决了当前云资源定价的粗放单一。本发明最终实现的功能是能够根据用户对云资源的使用时间和使用量,查询得到一个或多个云资源使用量最大时的时间区间,从而能够根据这个一个或者多个时间区间对云资源进行动态定价。
Description
技术领域
本发明属于云计算领域,提出了一种高效灵活的云计算资源定价策略。通过在线对千万级用户占用资源时间长短进行实时最大窗口覆盖查询,进而找出用户占用资源最高的时间段。该发明基于一种新颖、高效且满足时间聚合查询的索引结构。通过利用这种索引结构,根据所有使用该云资源的用户的使用时间和使用量,来确定一个或前几个负载最高的时间段,即在这些时间段内云端带宽资源的使用量为整个时间轴上最大的若干个,从而根据这些时间段来动态调节价格。
技术背景
如今云资源已被广泛接受,众多企业将IT支撑系统部署在云提供商的产品之上,然而目前多数云提供商对云资源的定价方案较为粗放单一,不能满足用户的实际需求,对企业本身也不够友好,例如,一般来说,目前云资源带宽定价方案类型有三种:
第一种是按固定带宽包月收费。即缴纳固定的钱,在一个月内用户享用相应的带宽。以5Mbps带宽为例,用户使用时不能超过带宽上限即5Mbps,但是使用时间无限制。类似于家庭宽带网络,无论时间,想用就用。
第二种是按固定带宽的使用时长收费。以5Mbps带宽为例,使用效果与第一种方案相同,但是收费时按照用户的在线使用时长来收费,即只有在用户使用带宽时才计费,不使用时不计费,这种方案适合流量大但是使用时长短的用户。
第三种是按使用流量付费。与平时的手机流量套餐类似,以单价为0.8元/GB的套餐为例,计费方式为单价乘以数量(GB)。该方案与上两种方案的区别是,按使用流量付费没有带宽的限制,下行与上行都比以上两种方案快很多,因此很适合用于短时间内需要大带宽的用户。
比较三种方案,方案一的缺点是,使用时带宽资源占用大,不使用时带宽资源占用基本为零,带宽利用不合理,容易导致用户使用时间重叠。而方案二只能用于短期使用,不适用于长期使用。方案三与方案二类似,只适用于短期使用。所以综合来说当下的用户选择的基本都是第一种方案。
方案一带来的影响可以用一个例子来说明。例如,云服务提供商提供给企业用户100Mbps的带宽,企业用户再分配给客户,当客户使用带宽的时间重叠时,会导致总带宽负载过大,甚至超过100Mbps。这时候,由于访问量和数据流量的快速增长,会给服务器造成较大的负荷,同时由于带宽的负载过大,用户的体验变差。另一方面,当带宽超过100Mbps时,运营商对云服务提供商的收费也发生了改变,由于运营商根据带宽的峰值来计费,峰值持续一定时间时就会按照峰值达到的带宽来计费,如峰值达到120Mbps且时间持续30秒,就按照120Mbps来收费。所以峰值持续时间过长就会急剧增加云服务提供商的成本。而在某些时间段,带宽的负荷很低,这样就导致了带宽的使用不合理。
本发明能很好的解决以上的问题。本发明通过用户的使用数据,包括用户的使用时间和使用带宽,通过特定的索引结构查找出带宽负荷峰值的时间段,针对该时间段动态制定价格,如提高峰值时间段价格,降低其他时间的价格,这样做能促进用户合理使用带宽,有利于削减带宽的高峰运行负荷,平滑负荷曲线,提高带宽使用效率,同时还能解决由于峰值持续时间过长导致运营商加收费用的问题,降低云服务提供商的成本。
发明内容
本发明要克服现有云资源定价技术的不足之处,提供了一种新型有效的动态定价方法,该方法基于用户的上网日志数据,即每条日志记录了用户的一次上网行为,包括开始时间,结束时间,资源使用量。通过构建特定的树型索引结构,利用高效查询算法搜索出若干最优时间段,动态定制合适的价格。
本发明所述的一种云资源动态定价方法,包括下列步骤:
1.建立索引结构;
该步骤的目的是在线下为所有用户上网日志数据构建索引,以方便后续的线上实时定价查询。本发明设计了一种树型结构,结合了B-Tree和Segment-Tree的特点。该树型索引结构的每个结点能存储一定数量的时间区间,同时每个时间区间有其对应的用户对该云资源的使用数量。
该树型索引结构包含两个参数:b和l。b为最大分支因子,表示内部结点最多能够存储b个时间区间,l为最大叶子容量,表示叶子结点最多能够存储l个时间区间,它们共同决定了决定了索引的结构。索引结构的详细介绍如下:
1.1内部结点
一个内部结点可以存储连续的b个时间区间,并且至少存个。若在某个结点N中我们要表示j个时间间隔N.I1,N.I2,N.I3,……,N.Ij。那么j-1个不同的时刻以升序形式存储在N中。第i个时刻,表示为N.ti,表示第i个时间间隔N.Ii的结束时间,同时也表示第(i+1)个时间间隔N.Ii+1的开始时间。此外,N中的每个间隔(例如N.Ii)还与相应的使用量(表示为N.Vi)和指向子节点的指针(指示为N.ci)关联。
1.2叶子结点
叶子结点类似内部结点,除了叶子结点中的时间间隔不与指向子结点的指针相关联即没有N.ci。叶子结点最多能够存储l个时间区间,并且至少有个时间区间。
1.3根结点
根结点的结构与内部结点相同,除了根节点仅需要至少两个时间间隔,最多能够存储b个时间区间。
1.4结点构建规则
对于任何非叶子结点N,考虑第i个时刻N.ti,出现在N.ci指向的子结点中的所有时刻必须严格小于N.ti,出现在N.ci+1指向的子结点的所有时刻必须严格大于N.ti;
2、用户数据新增与删除等操作算法;
2.1新增数据
现有一条用户使用记录<I',V'>需要插入,I′表示用户使用的时间区间,V'表示用户的使用量。记插入操作为insert(<I',V'>,N),即在以N为根的树中插入<I',V'>,具体操作位为:从结点N开始,对于当前结点的时间区间N.Ii,若N.Ii与I'有交集,则再次对N.Ii的子结点调用insert(<I,V>,N.ci);若无交集则不做任何操作;当结点N为叶子结点时,若区间N.Ii被I'所包含,则将N.Ii的使用量N.Vi加上V';若只仅仅有交集,则将要插入的记录插入到该结点,并加上相应I′的V'的值。
2.2删除数据
现有一条用户使用记录<I',V'>需要删除,I′表示用户使用的时间区间,V'表示用户的使用量。记删除操作为delete(<I,V>,N),即在以N为根的树中删除<I',V'>,具体操作位为:从结点N开始,对于当前结点的时间区间N.Ii,若N.Ii与I'有交集,则再次对N.Ii的子结点调用delete(<I,V>,N.ci);若无交集则不做任何操作;当结点N为叶子结点时,若区间N.Ii被I'所包含,则将N.Ii的使用量N.Vi减去V';若只仅仅有交集,则将要插入的记录插入到该结点,并减去相应I′的V'的值。
2.3数据溢出时的操作
当某个结点的数据增加到一定数量,即该结点存储的时间区间个数大于该结点的最大容量时,需要进行结点的分裂操作。由于数据的插入操作最终在叶子结点完成,所以叶子结点会首先发生溢出,这时对叶子结点进行分裂操作;当叶子结点分裂操作执行完后,可能会导致其父结点的数据溢出,同理对父结点进行分裂操作。
假设某结点N发生了溢出,且当前存储了n个时间区间,若N为内部结点则n>b,若N为叶结点,则n>l,令split(N)为结点N的分裂操作,具体操作如下:
S1)原结点N分裂为N1和N2。结点N1保留原结点N前一半的区间,即保留前个时刻和前个使用量,如果N是内部结点,N1还保留指针N.c1到结点N2保留剩余的区间,即N2包含时刻从到N.tn-1以及对应的使用量到N.vn;如果N是内部结点,N2还包含指针到N.cn;
S2)如果结点N是根结点,那么创建一个新的根结点N'为N1和N2的父结点,令N'.c1=N1,N'.c2=N2,N'.v1=N'.v2=0;
S3)如果结点N不是根结点,设N有父结点N',且N′.cj=N,令N'的前j-1个区间不变,从第j+1个区间开始到最后,往右移一位;然后令N′.cj=N1,N′.cj+1=N2,N′.vj不变,若结点N'溢出,再次调用split(N′);
3基于树型索引结构的动态定价查询;
为了获得用户使用云资源的最优区间,需要进行以下操作:
3.1获取所有时间区间;
遍历该树型索引结构的叶结点,可以得到所有时间区间以及各区间的云资源使用量。遍历的方法为:从树的根结点出发,遍历当前结点的每一个子结点,如果是叶结点就把叶结点的每个区间信息存起来。这时候,得到的区间可能出现这种情况:相邻区间的使用量相同。这时可以在遍历叶结点时将当前区间与上一个相邻区间比较,若满足两区间使用量相同则合并为一个,这样只要遍历一遍叶结点就能获得所有区间,并且相邻区间不会出现使用量相同的情况。
3.2获得最优区间;
第一步已经得到了所有的时间区间。在所有的区间中快速查找出用户使用量最大的一个或多个区间,即查找top k个区间,这里用最小堆实现。最小堆的规则是(1)是完全二叉树(2)每个结点的关键字都小于他的两个子结点。具体步骤如下。
T1)建立最小堆;
首先确定k,k表示要查找使用量排名前k的区间。设步骤3.1获得的区间个数为n个,现从中取k个,构建最小堆。依次将这k个区间信息插入到最小堆中。插入方法为从根结点开始,依次到左子树和右子树。插入的同时要保证每个结点的关键字都要比字结点的关键字小。这里的关键字就是该区间的使用量。例如,当前结点为p,p的父结点为p’,将结点信息插入到p结点时,将p结点的关键字与它的父结点p’的关键字比较。若p结点的关键字大于父结点p’的关键字,则将两者的区间交换。再将p’的关键字和p’的父结点p”的关键字进行比较,若p’的关键字大于p”的关键字,则再次交换,以此类推,直到满足最小堆的条件。当k个区间插入完成后,最小堆建立完成,其中根结点为所有k个结点中关键字最小的结点。
T2)更新最小堆;
最小堆建立完成后,用剩余的n-k个区间来更新最小堆。基本方法就是只要遍历一遍剩下的区间。当读取一个区间时,将该区间的使用量与根结点的使用量相比较,若是小于根结点的使用量,则抛弃该区间;若大于根结点的使用量,则将根结点的区间信息更新为新的区间信息。同时调整最小堆,使之满足每个结点的关键字都小于左右子结点的关键字。
在实际情况中可能遇到多个区间的使用量一样,这时在更新最小堆时先检查最小堆中是否有相同使用量的结点,若有则将新的区间信息存到该结点中。若没有则再按照以上规则更新。
遍历完所有区间后的最小堆内存放的区间就是top k区间,由于更新最小堆时比根结点小的区间都被抛弃了,所以免去了很大的数据量,这对于提升效率有很大帮助。
本发明拟解决的问题是针对当下云资源定价单一且不合理的情况,希望能够根据用户对云资源的使用数据,即使用时间和使用量,查找出最优时间段,即在该时间段云资源的使用量(负载)为最大。根据最优时间段来动态决定云资源的价格,为公司和企业提供了十分令人信服的动态定价方案。
本发明的优点是:针对大量的用户数据,查询高效准确,消耗时间少。
附图说明
图1表示本发明方法的整个流程图。
图2为演示例子在时间坐标轴上的示意图。
图3表示根据所有用户使用数据建立索引的过程。其中图3.1到图3.7是具体每一步的结果示意图,其中图3.1是未插入任何数据的情况,图3.2是插入<[10,40),2>后的结果,图3.3是插入<[10,30),3>后的结果,图3.4是插入<[20,40),1>后的结果,图3.5是插入<[5,15),2>后的结果,图3.6是插入<[35,45),4>后的结果,图3.7是插入<[10,50),1>后的结果。
图4为实现最小堆的过程,这里设置k=3,其中图4.1到图4.3是最小堆的建立,图4.4到图4.8是最小堆的更新。这里最小堆的结点省略了区间的时间信息,只显示了区间的使用量,其中图4.1是最小堆插入<[5,10),2]>的结果,图4.2是最小堆插入<[10,15),8>后的结果,图4.3是最小堆插入<[15,20),6>后的结果,图4.4是最小堆插入<[20,30),7>后的结果,图4.5是最小堆插入<[30,35),4>后的结果,图4.6是最小堆插入<[35,40),8>后的结果,图4.7是插入<[40,45),5>后的结果,图4.8是插入<[45,50),1>后的结果。
具体实施方法
下面结合附图1-4,以一个例子来说明该发明的算法实施方法。
假设现有一堆用户关于云资源的使用数据。表1表示所有用户使用云资源的使用时间和使用量。例如如表1可知Amy在10到40这个时间段使用云资源,使用量为2。图2为他们抽象的表示在时间坐标轴上。
表1
ID | Time interval | Usage amount |
Amy | [10,40) | 2 |
Ben | [10,30) | 3 |
Cal | [20,40) | 1 |
Dan | [5,15) | 2 |
Eve | [35,45) | 4 |
Fay | [10,50) | 1 |
图3表示了根据所有的用户使用数据建立索引的过程。假设树的b=4,l=4,从第一条记录开始,逐条进行插入。首先插入<[10,40),2>,由于原来树是空的,所以直接插入即可。此时树只有一个根结点N,共有3个时间区间,分别为N.I1=(-∞,10),N.I2=[10,40),N.I3=[40,+∞),它们对应的云资源使用量分别为:N.v1=0,N.v2=2,N.v3=0,如图3.2所示。接着插入<[10,30),3>,结果如图3.3。接着插入<[20,40),1>后,会导致根结点N的溢出,此时需要进行结点的分裂,将N分裂成N1和N2。其中N1包括前2个时间点10,20,即三个区间(-∞,10),[10,20),[20,30)的信息;N2包括时间点40,即包括了区间[30,40),[40,+∞)的信息。由于N为根结点,所以要创建一个新的根结点N′,N′中包含时间点30,然后指向N1和N2,结果如图3.4所示。接着插入<[5,15),2>,从根结点进入,与(-∞,30)相交,所以进入N1结点。因为N1为叶子结点,所以将信息添加到N1,这样会导致N1结点溢出,然后将N1分裂成N11和N12,并将时间点15添加到N′中,N′重新指向N11和N12,结果如图3.5所示。接着插入<[35,45),4>,根据插入的规则添加到N2结点中去,结果如图3.6所示。最后插入<[10,50),1>,首先[10,50)与根结点第一个区间N′.I1=(-∞,15)相交,所以进入结点N11。而是叶子结点,所以直接将信息添加到N11。因为根结点第二个区间N′.I2=[15,30)完全包含于[10,50),所以进入N12,又因为它是叶结点所以直接更新结点信息。根结点第二个区间N′.I3=[30,+∞)又与[10,50)相交,所以进入N2。因为N2是叶子结点,所以将信息添加到N2中。添加后会导致N2溢出,所以要执行分裂操作,将N2分裂成N21和N22,并将时间点45添加到N′中,N′重新指向N21和N22中去,结果如图3.7所示。至此,索引构造完成。
表2表示根据索引获得所有时间区间的云资源使用量。首先从根结点N′出发,进入N11中。因为N11为叶子结点,进行时间区间信息读取。将N11结点中的区间全部读取完后返回N′,进入以N12中……以此类推,直到根结点N′的所有子结点遍历完成。图中的timeinterval表示时间区间,usage amount表示使用量。
表2
Time interval | Usage amount |
[5,10) | 2 |
[10,15) | 8 |
[15,20) | 6 |
[20,30) | 7 |
[30,35) | 4 |
[35,40) | 8 |
[40,45) | 5 |
[45,50) | 1 |
图4表示根据区间信息建立和更新最小堆的过程。首先取出k个区间构建最小堆。再用剩下的区间更新最小堆,使最小堆满足任何结点都小于两个子结点,当遍历完所有区间后,最终的最小堆就是使用量排名前k的的区间。
表3为最小堆最后的结果。
表3
Time interval | Usage amount |
[10,15) | 8 |
[35,40) | 8 |
[20,30) | 7 |
[15,20) | 6 |
Claims (1)
1.一种云资源动态定价方法,包括下列步骤:
步骤1、建立索引结构;
该步骤的目的是在线下为所有用户上网日志数据构建索引,以方便后续的线上实时定价查询;本发明设计了一种树型结构,结合了B-Tree和Segment-Tree的特点;该树型索引结构的每个结点能存储一定数量的时间区间,同时每个时间区间有其对应的用户对该云资源的使用数量;
该树型索引结构包含两个参数:b和l;b为最大分支因子,表示内部结点最多能够存储b个时间区间,l为最大叶子容量,表示叶子结点最多能够存储l个时间区间,它们共同决定了决定了索引的结构;索引结构的详细介绍如下:
1.1内部结点
一个内部结点可以存储连续的b个时间区间,并且至少存个;若在某个结点N中我们要表示j个时间间隔N.I1,N.I2,N.I3,……,N.Ij;那么j-1个不同的时刻以升序形式存储在N中;第i个时刻,表示为N.ti,表示第i个时间间隔N.Ii的结束时间,同时也表示第(i+1)个时间间隔N.Ii+1的开始时间;此外,N中的每个间隔(例如N.Ii)还与相应的使用量(表示为N.Vi)和指向子节点的指针(指示为N.ci)关联;
1.2叶子结点
叶子结点类似内部结点,除了叶子结点中的时间间隔不与指向子结点的指针相关联即没有N.ci;叶子结点最多能够存储l个时间区间,并且至少有个时间区间;
1.3根结点
根结点的结构与内部结点相同,除了根节点仅需要至少两个时间间隔,最多能够存储b个时间区间;
1.4结点构建规则
对于任何非叶子结点N,考虑第i个时刻N.ti,出现在N.ci指向的子结点中的所有时刻必须严格小于N.ti,出现在N.ci+1指向的子结点的所有时刻必须严格大于N.ti;
步骤2、用户数据新增与删除等操作算法;
2.1新增数据
现有一条用户使用记录<I',V'>需要插入,I′表示用户使用的时间区间,V'表示用户的使用量;记插入操作为insert(<I',V'>,N),即在以N为根的树中插入<I',V'>,具体操作位为:从结点N开始,对于当前结点的时间区间N.Ii,若N.Ii与I'有交集,则再次对N.Ii的子结点调用insert(<I,V>,N.ci);若无交集则不做任何操作;当结点N为叶子结点时,若区间N.Ii被I'所包含,则将N.Ii的使用量N.Vi加上V';若只仅仅有交集,则将要插入的记录插入到该结点,并加上相应I′的V'的值;
2.2删除数据
现有一条用户使用记录<I',V'>需要删除,I′表示用户使用的时间区间,V'表示用户的使用量;记删除操作为delete(<I,V>,N),即在以N为根的树中删除<I',V'>,具体操作位为:从结点N开始,对于当前结点的时间区间N.Ii,若N.Ii与I'有交集,则再次对N.Ii的子结点调用delete(<I,V>,N.ci);若无交集则不做任何操作;当结点N为叶子结点时,若区间N.Ii被I'所包含,则将N.Ii的使用量N.Vi减去V';若只仅仅有交集,则将要插入的记录插入到该结点,并减去相应I′的V'的值;
2.3数据溢出时的操作
当某个结点的数据增加到一定数量,即该结点存储的时间区间个数大于该结点的最大容量时,需要进行结点的分裂操作;由于数据的插入操作最终在叶子结点完成,所以叶子结点会首先发生溢出,这时对叶子结点进行分裂操作;当叶子结点分裂操作执行完后,可能会导致其父结点的数据溢出,同理对父结点进行分裂操作;
假设某结点N发生了溢出,且当前存储了n个时间区间,若N为内部结点则n>b,若N为叶结点,则n>l,令split(N)为结点N的分裂操作,具体操作如下:
S1)原结点N分裂为N1和N2;结点N1保留原结点N前一半的区间,即保留前个时刻和前个使用量,如果N是内部结点,N1还保留指针N.c1到结点N2保留剩余的区间,即N2包含时刻从到N.tn-1以及对应的使用量到N.vn;如果N是内部结点,N2还包含指针到N.cn;
S2)如果结点N是根结点,那么创建一个新的根结点N'为N1和N2的父结点,令N'.c1=N1,N'.c2=N2,N'.v1=N'.v2=0;
S3)如果结点N不是根结点,设N有父结点N',且N′.cj=N,令N'的前j-1个区间不变,从第j+1个区间开始到最后,往右移一位;然后令N′.cj=N1,N′.cj+1=N2,N′.vj不变,若结点N'溢出,再次调用split(N′);
步骤3、基于树型索引结构的动态定价查询;
为了获得用户使用云资源的最优区间,需要进行以下操作:
3.1获取所有时间区间;
遍历该树型索引结构的叶结点,可以得到所有时间区间以及各区间的云资源使用量;遍历的方法为:从树的根结点出发,遍历当前结点的每一个子结点,如果是叶结点就把叶结点的每个区间信息存起来;这时候,得到的区间可能出现这种情况:相邻区间的使用量相同;这时可以在遍历叶结点时将当前区间与上一个相邻区间比较,若满足两区间使用量相同则合并为一个,这样只要遍历一遍叶结点就能获得所有区间,并且相邻区间不会出现使用量相同的情况;
3.2获得最优区间;
第一步已经得到了所有的时间区间;在所有的区间中快速查找出用户使用量最大的一个或多个区间,即查找top k个区间,这里用最小堆实现;最小堆的规则是(1)是完全二叉树(2)每个结点的关键字都小于他的两个子结点;具体步骤如下;
T1)建立最小堆;
首先确定k,k表示要查找使用量排名前k的区间;设步骤3.1获得的区间个数为n个,现从中取k个,构建最小堆;依次将这k个区间信息插入到最小堆中;插入方法为从根结点开始,依次到左子树和右子树;插入的同时要保证每个结点的关键字都要比字结点的关键字小;这里的关键字就是该区间的使用量;例如,当前结点为p,p的父结点为p’,将结点信息插入到p结点时,将p结点的关键字与它的父结点p’的关键字比较;若p结点的关键字大于父结点p’的关键字,则将两者的区间交换;再将p’的关键字和p’的父结点p”的关键字进行比较,若p’的关键字大于p”的关键字,则再次交换,以此类推,直到满足最小堆的条件;当k个区间插入完成后,最小堆建立完成,其中根结点为所有k个结点中关键字最小的结点;
T2)更新最小堆;
最小堆建立完成后,用剩余的n-k个区间来更新最小堆;基本方法就是只要遍历一遍剩下的区间;当读取一个区间时,将该区间的使用量与根结点的使用量相比较,若是小于根结点的使用量,则抛弃该区间;若大于根结点的使用量,则将根结点的区间信息更新为新的区间信息;同时调整最小堆,使之满足每个结点的关键字都小于左右子结点的关键字;
在实际情况中可能遇到多个区间的使用量一样,这时在更新最小堆时先检查最小堆中是否有相同使用量的结点,若有则将新的区间信息存到该结点中;若没有则再按照以上规则更新;
遍历完所有区间后的最小堆内存放的区间就是top k区间,由于更新最小堆时比根结点小的区间都被抛弃了,所以免去了很大的数据量,这对于提升效率有很大帮助。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810329219.4A CN108537594A (zh) | 2018-04-13 | 2018-04-13 | 一种云资源动态定价方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810329219.4A CN108537594A (zh) | 2018-04-13 | 2018-04-13 | 一种云资源动态定价方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108537594A true CN108537594A (zh) | 2018-09-14 |
Family
ID=63480074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810329219.4A Withdrawn CN108537594A (zh) | 2018-04-13 | 2018-04-13 | 一种云资源动态定价方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108537594A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553614A (zh) * | 2022-02-22 | 2022-05-27 | 中国建设银行股份有限公司 | 带宽成本估算方法、装置、设备、介质和程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110145094A1 (en) * | 2009-12-11 | 2011-06-16 | International Business Machines Corporation | Cloud servicing brokering |
CN103166989A (zh) * | 2011-12-13 | 2013-06-19 | 中国电信股份有限公司 | 面向云计算的资源使用计量方法和系统 |
CN105389370A (zh) * | 2015-11-13 | 2016-03-09 | 浙江工业大学 | 一种面向社交活动组织的时间聚合查询方法 |
CN105469277A (zh) * | 2015-11-18 | 2016-04-06 | 南京邮电大学 | 一种能量受限无线云计算下的动态调度和动态定价方法 |
-
2018
- 2018-04-13 CN CN201810329219.4A patent/CN108537594A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110145094A1 (en) * | 2009-12-11 | 2011-06-16 | International Business Machines Corporation | Cloud servicing brokering |
CN103166989A (zh) * | 2011-12-13 | 2013-06-19 | 中国电信股份有限公司 | 面向云计算的资源使用计量方法和系统 |
CN105389370A (zh) * | 2015-11-13 | 2016-03-09 | 浙江工业大学 | 一种面向社交活动组织的时间聚合查询方法 |
CN105469277A (zh) * | 2015-11-18 | 2016-04-06 | 南京邮电大学 | 一种能量受限无线云计算下的动态调度和动态定价方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553614A (zh) * | 2022-02-22 | 2022-05-27 | 中国建设银行股份有限公司 | 带宽成本估算方法、装置、设备、介质和程序产品 |
CN114553614B (zh) * | 2022-02-22 | 2024-04-26 | 中国建设银行股份有限公司 | 带宽成本估算方法、装置、设备、介质和程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shakkottai et al. | The price of simplicity | |
US8903803B1 (en) | Horizontal interval-based data partitioning and indexing for large clusters | |
CN105989076A (zh) | 一种数据统计方法以及装置 | |
CN105072602A (zh) | 一种sim/usim卡的分配系统及其分配卡、释放卡、切换卡方法 | |
CN103544316B (zh) | Url过滤的系统及其实现方法 | |
JP6928677B2 (ja) | オンライン分析処理を行うためのデータ処理方法及び装置 | |
CN102930062A (zh) | 一种数据库快速水平扩展的方法 | |
CN106779806A (zh) | 一种客户信息处理方法和系统 | |
CN104021205A (zh) | 一种建立微博索引的方法及装置 | |
CN110012364A (zh) | 主播推荐方法、装置及存储介质 | |
CN103824127B (zh) | 云计算环境下服务的自适应组合优化方法 | |
CN107483355B (zh) | 面向数据中心的在线场景低带宽开销流量调度方案 | |
CN107491549A (zh) | 一种数据处理方法及系统 | |
CN109683816A (zh) | 一种回源树节点的磁盘配置方法及系统 | |
CN107203623B (zh) | 网络爬虫系统的负载均衡调节方法 | |
CN108537594A (zh) | 一种云资源动态定价方法 | |
CN110134695A (zh) | 一种面向流水线结构化数据查询的数据库智能分区方法 | |
CN107798111A (zh) | 一种分布式环境中大批量导出数据的方法 | |
CN103150336A (zh) | 一种基于用户聚类的sky line在线计算方法 | |
CN110381137A (zh) | 基于ceph的对象存储使用量统计方法及系统 | |
CN110070287A (zh) | 一种基于相似聚类及平均思想的动态任务分配方法 | |
CN104794237B (zh) | 网页信息处理方法及装置 | |
CN103441865B (zh) | 管理IP地址的方法、系统及BRAS和Portal服务器 | |
CN103944766B (zh) | 具有QoS关联关系的服务选择方法 | |
CN112818198B (zh) | 一种高度解耦可动态管理爬虫的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180914 |
|
WW01 | Invention patent application withdrawn after publication |