具体实施方式
功能概述
考虑到相关技术中存在的采用单一的总访问量作为评判资源冷热度的依据而引起资源震荡、影响系统稳定性的问题,本发明实施例提供了一种资源管理方案。该方案的处理原则如下,采用根据包括资源的震荡次数的预定信息对资源进行排序的方法,能够对资源的冷热度进行更为科学的统计与判断,可以增加系统的稳定性。
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在以下实施例中,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
方法实施例
根据本发明的实施例,提供了一种资源管理方法。
该方法包括:根据预定信息对资源进行排序,其中,预订信息包括震荡次数,所述震荡次数为资源从节点被删除后,再次被调度到所述节点的次数。
其中,当震荡周期T大于预定震荡周期,且资源存在率Re小于预定资源存在率时,震荡次数重置为1,其中,震荡周期T=(资源存在于节点的累加时间+资源从第一次加入节点起不在节点的累加时间)/震荡次数;资源存在率Re=资源存在于节点的累加时间/(资源存在于节点的累加时间+资源从第一次加入节点起不在节点的累加时间),下面以表1为例进行具体说明,在该举例中,假设预定振荡周期为2年,即,24个月,预定资源存在率为1/24,下表中TN为第N次震荡的相关持续时间,TN1为第N次震荡资源存在于节点的时间,TN2为第N次震荡资源未存在于节点的时间。根据本发明实施例提供的方法,表1中资源2的震荡次数应置为1。
表1
图2是根据本发明方法实施例的根据预定信息对资源进行排序过程的一流程图。如图2所示,该过程包括如下的步骤S202至步骤S204:
步骤S202,根据预定信息确定第一关键字,其中,预定信息还包括:资源的第一时间段的访问量;
步骤S204,根据第一关键字对资源进行第一次排序。
在步骤S202中,根据资源的第一时间段的访问量、震荡次数确定第一关键字具体包括:对第一时间段的访问量、震荡次数进行加权求和,得到第一关键字。
优选地,在进行第一次排序之后,上述方法还包括:将第一预定资源的第二时间段的访问量作为第二关键字,其中,第一预定资源为进行第一次排序后顺序并列的多个资源;根据第二关键字对第一预定资源进行第二次排序。
优选地,在步骤S204中,节点可以为CDN Agent和POP单元。
图3是根据本发明方法实施例的根据预定信息对资源进行排序过程的另一流程图。如图3所示,该过程包括如下的步骤S302至步骤S304:
步骤S302,按照预定策略确定预定资源集合,根据预定资源集合中资源的预定信息确定第一关键字;
步骤S304,根据第一关键字对资源进行第一次排序。
在步骤S302中,预定策略包括:将第一时间段的访问量小于所有资源的第一时间段的访问量平均值的资源加入预定资源集合。
优选地,在步骤S304中,节点由CDN Agent和POP单元组成。
优选地,在进行第一次排序之后,上述方法还包括:将第一预定资源的第二时间段的访问量作为第二关键字,其中,第一预定资源为进行第一次排序后顺序并列的多个资源;根据第二关键字对第一预定资源进行第二次排序。
优选地,进行上述第二次排序之后,上述方法还包括:将第二预定资源的第三时间段的访问量作为第三关键字,其中,第二预定资源为进行第二次排序后顺序并列的多个资源;根据第三关键字对第二预定资源进行第三次排序。
优选地,上述方法还包括:删除排序结果中排名最低的N个资源,N>=0,且N为整数。
优选地,上述第一时间段、第二时间段、第三时间段为从时间段集合中选择的不同的元素,其中,时间段集合可以包括如下元素:天、周、月、年。
下面将结合实例对本发明实施例的实现过程进行详细描述。
实例一
下面结合表2对本发明实施例提供的资源管理方法进行进一步的说明,根据预定信息对资源进行排序的处理可以包括:根据预定信息确定第一关键字,其中,预定信息还包括:资源的第一时间段的访问量;根据第一关键字对资源进行第一次排序。针对第一次排序后顺序相同的资源,还可以根据第二关键字进行第二次排序,针对第二次排序后顺序相同的资源,还可以根据第三关键字进行第三次排序。
表2为本发明实施例的一个具体实例,表2中示出了6个资源(其中,资源1为新加入资源)的访问量、震荡次数以及根据本实施例提供的资源管理方法计算出的上述第一关键字、第二关键字、第三关键字以及最终的排序情况。
在本实例中,上述第一时间段、第二时间段、第三时间段分别具体为周、月、年。确定第一关键字时,震荡次数、第一时间段的访问量进行加权运算时的权值分别为10、6。第二关键字即为第二时间段的访问量。第三关键字即为第三时间段的访问量。需要说明的是,此处选取的各具体时间段及各具体权值是为了更好的说明本发明,而不构成对本发明的不当限定。
表2
序号 |
震荡次数 |
本年 |
本月 |
本周 |
第一关键字 |
第二关键字 |
第三关键字 |
排序 |
1 |
0 |
20 |
20 |
20 |
120 |
|
|
1 |
2 |
4 |
115 |
20 |
2 |
52 |
20 |
115 |
5 |
3 |
1 |
100 |
20 |
7 |
52 |
20 |
100 |
6 |
4 |
4 |
800 |
25 |
2 |
52 |
25 |
|
4 |
5 |
2 |
105 |
21 |
6 |
56 |
|
|
3 |
6 |
5 |
88 |
25 |
3 |
68 |
|
|
2 |
从上表可以看出,按照本实施例提供的方法确定第一关键字后进行第一次排序,其中,资源2、3、4的第一关键字相同,纳入第一预定资源集合;根据第一预定资源集合中的资源的第二关键字,进行第二次排序,其中,资源2、3的第二关键字相同,纳入第二预定资源集合;根据第二预定资源集合中资源的第三关键字,进行第三次排序。
利用本发明实施例中提供的方法对上述资源热度进行统计,得到以上资源的最终排序如表2所示。从本实例可以看出,利用该方法可以尽可能地保留震荡次数高、和/或近期热度较高的资源。
还可以删除排序结果中排名最低的N个资源,此处以N=2为例,则应删除资源2、3。需要说明的是,此处取N的值为2是为了在本实例中给出示例性的例子,不应构成对本发明的限定。
通过本发明方法实施例提供的资源管理方法,能够对资源的冷热度进行更为科学的统计与判断,可以增加系统的稳定性。
实例二
下面结合表3对本发明实施例提供的资源管理方法进行进一步的说明,根据预定信息对资源进行排序的处理可以包括:按照预定策略确定预定资源集合,根据预定资源集合中资源的预定信息确定第一关键字;根据第一关键字对资源进行第一次排序。针对第一次排序后顺序相同的资源,还可以根据第二关键字进行第二次排序,针对第二次排序后顺序相同的资源,还可以根据第三关键字进行第三次排序。
表3为本发明实施例的一个具体实例,表3中示出了6个资源的访问量、第一关键字(震荡次数)以及根据本实施例提供的资源管理方法计算出的上述预定访问量、预定访问量平均值、第二关键字以及最终的排序情况。
在本实例中,上述第一时间段、第二时间段、第三时间段分别具体为天、月、年。第二关键字即为第二时间段的访问量。第三关键字即为第三时间段的访问量。需要说明的是,此处选取的各具体时间段及各具体权值是为了更好的说明本发明,而不构成对本发明的不当限定。
表3
序号 |
本年 |
本月 |
今天 |
今天访问量平均值 |
震荡次数 |
第二关键字 |
第三关键字 |
排序 |
1 |
30 |
30 |
9 |
4 |
0 |
|
|
0 |
2 |
100 |
20 |
3 |
4 |
3 |
20 |
100 |
3 |
3 |
100 |
21 |
3 |
4 |
1 |
|
|
5 |
4 |
80 |
15 |
3 |
4 |
3 |
15 |
|
4 |
5 |
105 |
20 |
1 |
4 |
3 |
20 |
105 |
2 |
6 |
88 |
25 |
2 |
4 |
5 |
|
|
1 |
从上表可以看出,对上述6个资源的今天访问量进行计算后,得到今天访问量平均值,按照本实施例提供的上述资源策略确定将资源2、3、4、5、6纳入预定资源集合;按照震荡次数对预定资源集合中的资源进行第一次排序,其中,资源2、4、5的第一关键字相同,纳入第一预定资源集合;根据第一预定资源集合中的资源的第二关键字,进行第二次排序,其中,资源2、5的第二关键字相同,纳入第二预定资源集合;根据第二预定资源集合中资源的第三关键字,进行第三次排序。
利用本实施例中提供的方法对上述资源热度进行统计,得到以上资源的最终排序如表3所示,其中,资源1的排序为0意味着其未纳入需参加排序的资源集合(预定资源集合)。从本实例可以看出,利用该方法可以尽可能地保留震荡次数高、和/或近期热度较高的资源。
还可以删除排序结果中排名最低的N个资源,此处以N=1为例,则应删除资源3。需要说明的是,此处取N的值为1是为了在本实例中给出示例性的例子,不应构成对本发明的限定。
通过本发明方法实施例提供的资源处理方法,能够对资源的冷热度进行更为科学的统计与判断,可以增加系统的稳定性。
下面将结合实例对本发明实施例的具体应用场景之一进行详细描述。需要说明的是,以下对本发明实施例的具体应用场景的描述是为了便于更好地理解本发明,不应构成对本发明的不当限定。
本发明方法实施例提供的资源管理及处理方法可以用于资源的老化过程中,图4是根据本发明实施例的资源老化流程时序图,如图4所示,根据本发明实施例的老化流程包括以下步骤:
步骤S401:CDN Manager定时向业务数据库发起查询需老化节点请求,其中,定时可以选择10分钟(默认时长),并且CDN Manager等待业务数据库返回查询结果。
步骤S402:CDN Manager收到业务数据库返回的查询结果后,如果返回查询结果错误,则等下一次定时到时再进行数据库查询,如正确,则向相应的CDN Agent节点发送老化请求消息。
步骤S403:CDN Agent收到CDN Manager老化请求消息后,查询CDN Agent内存数据库的中的资源表,如果内容表不存在或者为空,则在同步响应消息中返回失败,因为此CDN Agent没有资源的相关数据,没有可老化的资源,无法老化;如果存在,查询应老化资源,具体地,通过读取CDN Agent内存数据库中的资源表,并对各资源的热度按照本发明方法实施例一或本发明方法实施例二描述的资源管理方法进行排序,选出老化资源表,如果老化资源表不为空,则将其加入老化请求响应消息发送给CDN Manager。在该步骤中,CDN Agent需要通过单表和多表(本发明实施例中用有序链表来实现)来保存和维护节点下所有资源的相关信息。在这两个表中的信息,至少包括内容标识、运营商标识、POP单元标识、震荡次数、震荡周期、资源存在率和资源加入时间。
步骤S404:CDN Manager收到CDN Agent返回的老化资源表后,设置业务数据库中相关资源的删除标志。优选地,可以通过SQL语句设置所述业务数据库的相关资源为删除标志,但不限于通过SQL语句进行该设置操作。
步骤S405:CDN Manager定时向业务数据库发起删除查询请求,其中,定时可以选择10秒钟(默认时长),并且CDN Manager等待业务数据库返回删除查询结果。
步骤S406:CDN Manager收到业务数据库返回的删除查询结果后,如果删除查询结果错误,则等下一次定时到再进行数据库查询;如正确则CDN Agent发送资源删除请求消息,消息中包括资源和pop单元的相关信息。
步骤S407:CDN Agent收到CDN Manager资源删除请求消息后,直接向流媒体发送资源删除请求。其中,CDN Agent至少需要一表(本发明实施例中用内存Hash表来实现的)来保存和维护所有待删除资源的相关信息。在这张Hash表中的信息,至少包括以下之一:运营商标识、节点标识、POP单元标识、目录标识、内容标识、内容大小、内容类型、文件路径、震荡次数、震荡周期和资源存在率。
步骤S408:流媒体向CDN Agent返回资源删除结果。
步骤S409:CDN Agent收到流媒体的删除结果消息后,向CDNManager返回资源删除结果消息。
步骤S410:CDN Manager收到删除结果后,如果删除成功,则在业务数据库中设置相应记录的震荡次数字段加1,并打上已删除标志。
CDN Manager设置数据库记录成功后,整个流程结束。
图5示出了根据本发明实施例的CDN Manager内容管理模块查询需老化节点流程图,具体包括以下步骤:
步骤S501:CDN Manager设置的10分钟定时时间到,CDNManager检测数据库中是否存在需要老化的节点,CDN Manager等待数据库返回需要老化节点记录。如果不存在需要老化节点,流程结束;如果存在,则直接进行下一步处理。
步骤S502:CDN Manager判断是否处理完所有从业务数据库返回的记录,如果处理完则结束流程,如果没有处理完则直接进行下一步处理。
步骤S503:根据返回的记录获取需要老化的CDN Agent信息,并且给需要老化的Agent发送老化请求消息。重复第二步操作。其中,上述需要老化的CDN Agent信息包括模块号,局号,IP地址信息等等。
图6示出了根据本发明方法实施例的CDN Agent内容管理模块搜索应老化资源流程图,包括以下步骤:
步骤S601:CDN Agent收到CDN Manager发送的老化请求消息后,解析该老化请求消息,获取需要老化的资源数。
步骤S602:获取资源多表的资源数。
步骤S603:判断是否已经遍历完资源多表。
如果已经遍历完多表,则直接进行步骤S604处理。
如果没有遍历完多表,则从多表中提取下一个资源的信息,查看该资源信息中的运营商标识是否错误,如果错误,则重复步骤S603,如果正确,则检测该资源是否在保护天数内,如果在保护天数内,则重复步骤S603,如果不在保护天数内,则检测该资源类型是否为直播源,如果是直播源,则重复步骤S603,如果不是直播源,则确定该资源的预定信息,根据本发明提供的实例,确定该资源预定信息及相应的后续处理可以有以下两种:
处理一、按照实例一提供的资源管理方法确定该资源的第一关键字、第二关键字、第三关键字,将上述结果加入一待老化资源表,检测待老化资源表的资源数是否大于需要老化的资源数的五倍或是否遍历完多表,如果没有遍历完则重复步骤S603,否则,进行步骤S604的操作;
处理二、按照实例二提供的资源管理方法确定该资源的第一时间段的访问量、震荡次数、第二关键字、第三关键字,将上述结果加入一待老化资源表,检测待老化资源表的资源数是否大于需要老化的资源数的五倍或是否遍历完多表,如果否,则重复步骤S603,否则,进行步骤S604的操作。
步骤S604:判断待老化资源表中的资源数是否小于需要老化的资源数,如果不小于需要老化的资源数,则按照预定信息对资源排序,具体来说,处理一进行步骤S607的操作,处理二进行步骤S608的操作;如果小于需要老化的资源数,则直接进行下一步处理。
步骤S605:获取资源单表的资源数。
步骤S606:判断是否已经遍历完资源单表。
如果已经遍历完资源单表,则直接进行下一步处理;
如果没有遍历完资源单表,则从资源单表中获取下一个资源的信息,查看它的运营商标识是否错误,如果错误则重复步骤S606,如果正确,则检测该资源是否在保护天数内,如果在保护天数内,则重复步骤S606,如果不在保护天数内,则检测该资源类型是否为直播源,如果是直播源,则重复步骤S606,如果不是直播源,则确定该资源的预定信息,根据本发明提供的实例,确定该资源预定信息及相应的后续处理可以有以下两种:
处理一、按照实例一提供的资源管理方法确定该资源的第一关键字、第二关键字、第三关键字,将上述结果加入上述待老化内容表,检测待老化资源表的资源数是否大于需要老化的资源数的五倍或是否遍历完单表,如果没有遍历完则重复步骤S606,否则,按照预定信息对资源排序,具体进行步骤S607的操作;
处理二、按照方法实施例二提供的资源管理方法确定该资源的第一时间段的访问量、震荡次数、第二关键字、第三关键字,将上述结果加入上述待老化资源表,检测待老化资源表的资源数是否大于需要老化的资源数的五倍或是否遍历完单表,如果否,则重复步骤S606,否则,按照预定信息对资源排序,具体进行步骤S608的操作。
步骤S607:判断待老化资源表中的资源数是否小于需要老化的资源数,如果小于需要老化的资源数,则发送相关告警;如果大于或等于需要老化的资源数,则将待老化资源表中的资源按照第一关键字排序,排序后顺序仍相同的资源按照第二关键字排序,排序后顺序仍相同的资源按照第三关键字排序,将排序后的待老化资源表中的最后N(N为需老化资源数)个资源加入老化资源表,并将其发送给CDN Manager资源管理模块。至此,本流程结束。
步骤S608:判断待老化资源表中的资源数是否小于需要老化的资源数,如果小于需要老化的资源数,则发送相关告警;如果大于或等于需要老化的资源数,则统计第一时间段的访问量的平均值,删除待老化资源表中第一时间段的访问量大于第一时间段访问量平均值的资源,将待老化资源表中的剩余资源按照震荡次数排序,排序后顺序仍相同的资源按照第二关键字排序,排序后顺序仍相同的资源按照第三关键字排序,将排序后的待老化资源表中的最后N(N为需老化资源数)个资源加入老化资源表,并将其发送给CDNManager资源管理模块。至此,本流程结束。
图7示出了根据本发明实施例的CDN Manager内容管理模块处理老化请求响应消息流程图,包括以下步骤:
步骤S701:CDN Manager收到来自CDN Agent的老化请求响应消息后,解析该老化请求响应消息中的老化内容表,获取需删除资源的内容标识、运营商标识、节点标识、POP单元标识。
步骤S702:CDN Manager在业务数据库中查询需删除资源的相关记录。如果查询失败,则返回查询业务数据库错误,结束流程;如果查询成功,则在业务数据库资源表中,设置需删除资源记录的待删除标志,结束流程。
图8示出了根据本发明实施例的CDN Manager资源管理模块查询应删除资源流程图,包括以下步骤:
步骤S801:CDN Manager定时向业务数据库发送删除查询请求,其中,该定时可以为10秒钟,并等待业务数据库返回删除查询结果。
步骤S802:CDN Manager收到业务数据库返回的删除查询结果,如果该删除查询结果的记录为空,则流程结束;如果该删除查询结果的记录不为空,则直接进行下一步处理。
步骤S803:CDN Manager判断是否处理完删除查询结果中所有的需删除的资源,如果已经全部处理完,则流程结束;如果尚未处理完,则直接进行下一步处理。
步骤S804:获取待删除资源的记录信息,包括内容标识、运营商标识、节点标识、POP单元标识等。
步骤S805:给CDN agent的资源管理模块发送资源删除请求,然后重复步骤S803的处理。
通过上述实施例,能够对资源的冷热度进行更为科学的统计与判断,最大限度的保证IPTV系统中在老化流程中保留最应该保留的资源,可以增加系统的稳定性。
上述实施例可以应用在但不限于IPTV商用系统中,还可以应用到其他多种实施例,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在发明的保护范围之内。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。