一种数据分发方法及装置与流程

文档序号:20082213发布日期:2020-03-13 05:47阅读:343来源:国知局
一种数据分发方法及装置与流程

本发明涉及数据分发技术领域,特别涉及一种数据分发方法及装置。



背景技术:

目前,国内外有许多视频网站提供视频观看服务。视频网站把大量视频内容存储在数据中心(idc,internetdatacentre)上,这些不同地方的数据中心,再对不同地方的终端用户提供服务。(数据中心,可以理解为一个大的物理机房,里面有很多主机,每台主机都对外提供服务)。

大型的视频服务提供商会将数据存放于上百个数据中心的上万台机器上。这些数据累计可达上亿个文件,每天会新增数十万数据。把这些新增数据发送到每个数据中心的目标机器时,会产生上亿次数据分发,这些数据快速、可靠的数据分发就是需要面临的问题。数据分发是指,最高级数据中心将目标数据,通过一定的逻辑步骤和物理网络路径,传输到层级低于该数据中心的每一个数据中心的过程。

现有数据分发的网络拓扑多为树状结构。图1是现有技术中层级较高的数据分发网络树形结构示意图。假设每个数据中心能够提供的上传带宽为1mb每秒,一个大小为1mb的目标数据从北京数据中心发送到天津数据中心所需的时间为2秒,发送到郑州数据中心所需的时间为6秒。图2是现有技术中层级较低的数据分发网络树形结构示意图。假设每个数据中心能够提供的上传带宽为1mb每秒,一个大小为1mb的文件从北京数据中心发送到天津数据中心所需的时间为6秒,发送到郑州数据中心所需的时间为12秒。在以上所述分发系统中,目标数据到达每个数据中心的时间是该数据中心到最高层数据中心路径上的时间的总和,目标数据分发速度比较慢。

另外,参见图1,目标数据要经过北京-天津-石家庄-郑州路径才能由北京数据中心发送到郑州数据中心;如果北京-天津-石家庄-郑州路径上的任意一条路径或天津数据中心、石家庄数据中心任一数据中心有问题,会导致郑州数据中心及其对应的下层数据中心无法接收到目标数据。参见图2,目标数据要经过北京-天津-郑州路径才能由北京数据中心发送到郑州数据中心;如果北京-天津-郑州路径上的任意一条路径或天津数据中心有问题,会导致郑州数据中心及其对应的下层数据中心无法接收到目标数据。因此在现有分发网络中,如果网络存在故障点,会导致部分数据中心无法接收到目标数据。



技术实现要素:

本发明实施例的目的在于提供一种数据分发方法及装置,以减少数据的传输时间,同时使所有数据中心能够接收到最高层数据中心发送的数据。

为达到上述目的,本发明实施例公开了一种数据分发方法,应用于数据分发网络中的数据中心,其中,所述数据中心中存储有与自身处于同层的数据中心的第一信息以及比自身数据中心低一层的数据中心的第二信息;

所述方法包括如下步骤:

接收比自身数据中心高一层的数据中心发送的针对目标数据的部分数据,其中,所述部分数据为所述比自身数据中心高一层的数据中心根据自身存储的所述第二信息进行拆分的部分数据;

根据所述第一信息,接收与自身处于同层的数据中心发送的针对所述目标数据的其他部分数据;

将所述部分数据与所述其他部分数据进行合并,生成所述目标数据;

根据所述第二信息,判断自身数据中心是否为最底层的数据中心;

如果否,根据所述第二信息,将所述目标数据进行拆分;

根据预设发送规则,将拆分后的部分数据发送给比自身数据中心低一层的数据中心,以使最底层的数据中心获得所述目标数据。

较佳的,位于同一层的数据中心与最高层的数据中心之间的物理链路属性相同的数据中心。

较佳的,所述物理链路属性相同为,物理链路长度在同一长度区间内。

较佳的,位于同一层的数据中心到最高层的数据中心的距离在同一范围内。

较佳的,所述根据所述第二信息,将所述目标数据进行拆分,包括:

根据所述第二信息,确定比自身数据中心低一层的数据中心的个数;

根据所述个数,将所述目标数据拆分为所述个数个数据量大小相同的部分数据。

为实现上述目的,本发明实施例还公开了一种数据分发装置,应用于数据分发网络中的数据中心,所述装置包括:存储模块、第一接收模块、第二接收模块、数据合成模块、判断模块、拆分模块和发送模块,其中,

所述存储模块,用于存储与自身处于同层的数据中心的第一信息以及比自身数据中心低一层的数据中心的第二信息;

所述第一接收模块,用于接收比自身数据中心高一层的数据中心发送的针对目标数据的部分数据,其中,所述部分数据为所述比自身数据中心高一层的数据中心根据自身存储的所述第二信息进行拆分的部分数据;

所述第二接收模块,用于根据所述第一信息,接收与自身处于同层的数据中心发送的针对所述目标数据的其他部分数据;

所述数据合成模块,用于将所述部分数据与所述其他部分数据进行合并,生成所述目标数据;

所述判断模块,用于根据所述第二信息,判断自身数据中心是否为最底层的数据中心;

所述拆分模块,用于在所述判断模块判断结果为否的情况下,根据所述第二信息,将所述目标数据进行拆分;

所述发送模块,用于根据预设发送规则,将拆分后的部分数据发送给比自身数据中心低一级别的数据中心,以使最低级别的数据中心获得所述目标数据。

较佳的,位于同一层的所述数据中心是指,与最高层的数据中心之间的物理链路属性相同的数据中心。

较佳的,所述物理链路属性相同为,物理链路长度在同一长度区间内。

较佳的,位于同一层的所述数据中心也可以是指,到最高层的数据中心的距离在同一范围内的数据中心。

较佳的,所述拆分模块,具体用于:在所述判断模块判断结果为否的情况下,根据所述第二信息,确定比自身数据中心低一层的数据中心的个数;根据所述个数,所述拆分模块将所述目标数据拆分为所述个数个数据量大小相同的部分数据。

通常,所述目标数据格式至少包括:视频、音频、文件、文本、图像、动画等文件格式。

由上述技术方案可见,本发明实施例公开了一种数据分发方法及装置,应用于数据分发网络中的数据中心,其中,所述数据中心中存储有与自身处于同层的数据中心的第一信息以及比自身数据中心低一层的数据中心的第二信息;数据中心接收来自比自身数据中心高一层的数据中心的针对目标数据的部分数据,根据第一信息,接收与自身处于同层的数据中心发送的针对所述目标数据的其他部分数据;所述数据中心对接收到的所有部分数据进行合并,生成所述目标数据。所述数据中心根据所述第二信息判断自身数据中心是否为最底层数据中心,如果否,所述自身数据中心根据存储的第二信息对数据进行拆分,并根据预设发送规则向下一层数据中心发送拆分后的部分数据。

应用本发明实施例所提供的技术方案,减少了数据的传输时间。并且所有数据中心能够接收到最高层数据中心发送的数据。

当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述所有优点。

附图说明

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

图1为现有技术中层级较高的数据分发网络的树形结构示意图;

图2为现有技术中层级较低的数据分发网络的树形结构示意图;

图3为本发明实施例提供的目标数据从第一层的数据中心发送到第三层的数据中心的一种数据分发示意图;

图4为本发明实施例提供的第二层的数据中心之间数据传输的示意图;

图5为本发明实施例提供的一种数据分发方法的流程示意图;

图6是本发明实施例提供的一种数据分发装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了解决现有技术问题,本发明实施例提供了一种数据分发方法及装置。下面首先对本发明实施例所提供的一种数据分发方法进行介绍。

需要说明的是,本发明的实施例优选适用于数据分发网络中的数据中心,其中,所述数据中心中存储有与自身处于同层的数据中心的第一信息以及比自身数据中心低一层的数据中心的第二信息。

图5为本发明实施例提供的一种数据分发方法的流程示意图,包括:

s101:接收比自身数据中心高一层的数据中心发送的针对目标数据的部分数据,其中,所述部分数据为所述比自身数据中心高一层的数据中心根据自身存储的所述第二信息进行拆分的部分数据。

所述第一信息为与自身数据中心处于同一层的数据中心的个数以及与所述自身数据中心处于同一层的数据中心的标识信息;所述第二信息为比自身数据中心低一层的数据中心的个数及比所述自身数据中心低一层的数据中心的标识信息。

在实际应用中,位于同一层的所述数据中心可以是与最高层的数据中心之间的物理链路属性相同的数据中心。具体的,物理链路属性相同可以是物理链路长度在同一长度区间内,还可以是到最高层的数据中心的距离在同一范围内。

s102:根据所述第一信息,接收与自身处于同层的数据中心发送的针对所述目标数据的其他部分数据。所述数据中心中根据第一信息中的标识信息向与自身数据中心处于同层的其他数据中心发送自身数据中心接收的部分数据,同时接收处于同层的其他数据中心发送的针对目标数据的其他部分数据。

s103:将所述部分数据与所述其他部分数据进行合并,生成所述目标数据。

s104:根据所述第二信息,判断自身数据中心是否为最底层的数据中心,如果否,执行s105。

s105:根据所述第二信息,将所述目标数据进行拆分。

具体的,在实际应用中,根据所述第二信息,将所述目标数据进行拆分,可以根据所述第二信息,确定比自身数据中心低一层的数据中心的个数;根据所述个数,将所述目标数据拆分为所述个数个数据量大小相同的部分数据。

s106:根据预设发送规则,将拆分后的部分数据发送给比自身数据中心低一层的数据中心,以使最底层的数据中心获得所述目标数据。

在实际应用中,预设发送规则可以是上一层数据中心将拆分后的每一份部分数据分别发送给下一层数据中心,还可以是上一层数据中心将拆分后的一份部分数据仅发送给下一层的一个数据中心,还可以是上一层数据中心将拆分后的几份部分数据分别发送给下一层的几个数据中心。还可以是上一层数据仅向下一层的某些数据中心发送部分数据。

需要说明是的,本发明实施例在此不对预设发送规则进行限定,任何可能的实现方式都可以应用于本申请中。

假设数据分发网络中共有18个数据中心,其中,第一层(最高层)数据中心个数为1个,第二层数据中心个数为6个,第三层(最底层)数据中心个数为11个,每个数据中心的带宽均为1mb/s,目标数据大小为1mb。

其中,第一层数据中心为:北京;第二层数据中心分别为石家庄、沈阳、天津、长春、锦州和太原;第三层数据中心分别为杭州、成都、西安、广州、南京、郑州、哈尔滨、重庆、苏州和洛阳。

下面以第三层数据中心中的任意一个数据中心为例进行说明,在此情况下,该数据中心中仅存储有与自身处于同层的数据中心的个数。

首先,该数据中心接收第二层数据中心发送的部分数据,该部分数据为第二层数据中心根据第三层数据中心的个数进行拆分后的大小为1/11mb的数据。

此时,可以将第二层数据中心看做为一个数据中心m,相当于该数据中心m的带宽为6mb/s,将1mb的数据拆分为11份,将每一份1/11mb的数据同时发送下一层的11个数据中心,则下一层的每一个数据中心接收到1/11mb的数据所需的时间为:1/11/(6/11)=1/6s。可以看出此时第三层数据中心接收上一层发送的数据所需的时间仅与第二层数据中心个数有关。

进而可以推导出上一层向下一层传输部分数据所需的时间满足如下公式:

ta=s/(nn-1*b);

其中,ta为第n-1层向第n层传输部分数据所需的时间,s为传输的数据的大小;b为数据中心的带宽;nn-1为第n-1层数据中心的个数。

当该数据中心接收到上一层数据中心发送的1/11mb数据后,接收与自身处于同层的数据中心发送的剩余10/11mb数据,则接收同一层数据中心每一个数据中心发送的1/11mb数据所需的时间为:1/11mb/(1mb/s)=1/11s。则接收到剩余10/11mb数据所需的时间为10/11s。

进而可以推导出同层传输剩余部分数据所需的时间满足如下公式:

tb=(nn-1)s/(nn*b);

其中,tb为第n层同层传输剩余部分数据所需的时间,s为传输的数据的大小;b为数据中心的带宽;nn为第n层数据中心的个数。

进一步的,整体数据由上一层传输到下一层所需的时间为tx=ta+tb。

进而,数据由最高层数据中心传输到最底层数据中心所需总传输时间为:

则第三层数据中心接收到上一层数据中心传输的1mb数据所需的时间为=1/6s+10/11s≈1.08s。

同理,第二层数据中心接收到上一层数据中心传输的1mb数据所需的时间为=1s+5/6s≈1.83s。

则由最高层将1mb的数据传输到最底层所需的时间为1.83+1.08=2.91s。比图1所对应的现有技术所需的时间6s少,并且比图2所对应的现有技术所需的时间12s少。因此节省了数据的传输时间。

具体的,数据分发网络中共有18个数据中心,其中,第一层(最高层)数据中心个数为1个,第二层数据中心个数为6个,第三层(最底层)数据中心个数为11个,最高层数据中心向最底层数据中心发送数据可参见图3,第二层数据中心同层间传输数据可参见图4。

当某一数据中心或者某一路径出现问题时,以图3所示为例,假设石家庄到杭州的路径发生故障,则杭州则不能收到石家庄发送的1/11mb的数据,在进行同层的部分数据传输后,其他数据中心都缺少1/11mb的数据,此时其他数据中心可以获知石家庄到杭州的路径发生故障,因此,可以向上一层请求缺少1/11mb的数据,进而使得每一个数据中心最终都能获得最高层数据中心发送的数据。

需要说明的是,上述以18个数据中心为例进行说明,仅为本发明的一具体实例,并不够成对本发明的限定。

应用本发明图5所示实施例,减少了数据的传输时间;同时使所有数据中心能够收到最高层数据中心发送的数据。

与上述的方法实施例相对应,本发明实施例还提供一种数据分发装置。

图6为本发明实施例提供的一种数据分发装置的结构示意图,可以包括:存储模块104、第一接收模块101、第二接收模块102、数据合成模块103、判断模块105、拆分模块106和发送模块107,其中,

存储模块104,用于存储与自身处于同层的数据中心的第一信息以及比自身数据中心低一层的数据中心的第二信息;

位于同一层的所述数据中心是指,与最高层的数据中心之间的物理链路属性相同的数据中心。物理链路属性相同可以是物理链路长度在同一长度区间内,可以是到最高层的数据中心的距离在同一范围内的数据中心。

所述第一信息为与自身数据中心处于同一层的数据中心的个数以及与所述自身数据中心处于同一层的数据中心的标识信息;所述第二信息为比自身数据中心低一层的数据中心的个数及比所述自身数据中心低一层的数据中心的标识信息。

第一接收模块101,用于接收比自身数据中心高一层的数据中心发送的针对目标数据的部分数据,其中,所述部分数据为所述比自身数据中心高一层的数据中心根据自身存储的所述第二信息进行拆分的部分数据;

第二接收模块102,用于根据所述第一信息,接收与自身处于同层的数据中心发送的针对所述目标数据的其他部分数据。

数据合成模块103,用于将所述部分数据与所述其他部分数据进行合并,生成所述目标数据。

判断模块105,用于根据所述第二信息,判断自身数据中心是否为最底层的数据中心。

拆分模块106,用于在判断模块105判断结果为否的情况下,根据所述第二信息,将所述目标数据进行拆分。

具体的,拆分模块106,具体可以用于:

在判断模块105判断结果为否的情况下,根据所述第二信息,确定比自身数据中心低一层的数据中心的个数;根据所述个数,所述拆分模块将所述目标数据拆分为所述个数个数据量大小相同的部分数据。

发送模块107,用于根据预设发送规则,将拆分后的部分数据发送给比自身数据中心低一级别的数据中心,以使最低级别的数据中心获得所述目标数据。

应用本发明图6所示实施例,减少了数据的传输时间;同时使所有数据中心能够收到最高层数据中心发送的数据。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:rom/ram、磁碟、光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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