CN100410917C - 同步数据传送系统及方法 - Google Patents
同步数据传送系统及方法 Download PDFInfo
- Publication number
- CN100410917C CN100410917C CNB2004800357672A CN200480035767A CN100410917C CN 100410917 C CN100410917 C CN 100410917C CN B2004800357672 A CNB2004800357672 A CN B2004800357672A CN 200480035767 A CN200480035767 A CN 200480035767A CN 100410917 C CN100410917 C CN 100410917C
- Authority
- CN
- China
- Prior art keywords
- sub
- piece
- message
- request
- node
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种同步数据传送系统(200)包括:存储处理器节点(103);主干通信开关101;多个标题,划分成子块(113a)-(113e)并且跨在多个节点上分布;用户过程(207),在第一节点(201)上执行;传送过程(215),在第二节点(203)上执行;及管理过程(219),在管理节点(205)上执行。用户过程发送时间戳读取请求,以请求相应子块。传送过程把消息发送到管理过程用于每个接收的读取请求,其中每条消息识别源和目的地节点。管理过程广播传送命令以启动顺序传送时段,接收消息,及从接收的消息中选择,以保证每个节点在每个传送时段期间发送或接收仅一个子块。管理过程为每条选择消息发送一个传送请求,并且传送过程响应于传送命令而发送由传送请求识别的子块。
Description
对于相关申请的交叉引用
本申请要求提交于12/02/2003的美国临时申请No.60/526,437的好处,并且是标题为“交互式宽带服务器系统”、序号为No.10/304,378、提交于11/26/2002、待决的美国专利申请的部分继续,后者本身要求提交于11/28/2001的美国临时申请No.60/333,856的优先权,它们都具有共同发明人、被共同转让、及为了所有意图和目的通过参考包括在这里。
技术领域
本发明涉及交互式宽带服务器系统,并且更具体地说,涉及一种采用同步数据传送系统以促进以高速输送多路同时等时(isochronous)数据流的交互式内容引擎。
背景技术
希望提供一种流式媒体内容的存储和传送的解决方案。可量测性的初始目标是在4兆比特每秒(Mbps)每流下的从100至1,000,000同时的各个等时内容流,尽管考虑到不同的数据速率。可用的总带宽由最大可用底板(backplane)开关所限制。当今的最大开关在每秒兆兆比特的范围中,或者约200,000同时输出流。输出流的数量一般与每流比特速率成反比。
内容存储的最简单模型是连接到单个处理器上的单个盘驱动器,该单个处理器具有单个网络连接器。数据从盘读取,置于存储器中,以及经网络以分组形式分配给每个用户。传统数据,如Web页等可异步地传送。换句话说,有具有随机时间延迟的随机量数据。低容量、低分辨率视频可从Web服务器传送。实时媒体内容,如视频和声频,要求等时传输、或具有保证传送时间的传输。在这种情形下,带宽约束在盘驱动器处存在。盘具有其主张的臂运动和转动等待。如果系统在任何给定时间只能维持从驱动器到处理器的6个同时连续内容流,那么第7个用户的请求必须等待以前6个用户之一中止内容流。这种设计的优点是简单。缺点是作为在设计中的唯一机械装置只能这么快地访问和传输数据。
通过添加另一个驱动器、或诸驱动器并且交错驱动器访问可进行改进。而且,重复内容可存储在每个驱动器上以提高冗余度和性能。这样会更好,但仍有几个问题。只有如此多的内容可放置在本地驱动器或诸驱动器上。盘驱动器、CPU、及存储器是可能灾难性的每个单一失效点。这种系统的规模只能与盘控制器能处置的驱动器数量成比例。即使对于多个单元,也有关于标题分配的问题。在现实世界中,每个人都想看最新影片。根据经验,80%的内容请求是仅对于20%的标题。所有机器的带宽不能由一个标题耗尽,因为它会堵塞对于仅在该机器上存储的较不流行标题的访问。结果,“高度需要”标题必须装载在大多数或所有机器上。简单地说,如果用户想看老影片,则该用户可能不幸运-尽管该影片装载在系统中。对于较大的库,所述比率可能远大于在这个例子中使用的80/20标准。
如果系统基于在数据处理中使用的标准局域网(LAN),则会有其它缺陷。现代基于以太网的TCP/IP系统是保证传送的奇迹,但包括由包冲突和部分丢失包的重新传输引起的时间代价和使它全部工作所需要的管理。不能保障及时内容流集合可用。而且,每个用户消耗一个开关端口,并且每个内容服务器消耗一个开关端口。因而,开关端口计数必须是服务器计数的两倍,限制了总在线带宽。
发明内容
本发明旨在解决上述现有技术中存在的问题。
本发明提出了一种同步数据传送系统,包括:多个处理器节点;主干网络开关,联接到所述多个处理器节点上以能够实现在所述多个处理器节点之间的通信;多个存储装置,跨在所述多个处理器节点上分布并且存储多个标题,每一个标题被划分成跨在所述多个存储装置上分布的多个子块;多个传送过程,每一个在所述多个处理器节点的对应一个上执行,并且可操作以发送消息以为了将从本地存储装置传送到目的地处理器节点的每个子块,每条消息包括源节点识别符和目的地节点识别符;及同步开关管理器过程,在所述多个处理器节点的至少一个上执行,该过程定期地广播一个传送命令以启动多个顺序传送时段的每一个,该过程接收多条消息,并且在每个传送时段之前,该过程从所述多条消息中选择,以保证每个处理节点在每个传送时段期间发送最多至一个子块和接收最多至一个子块,及发送与被选择消息相对应的多个传送请求;以及其中,发送至少一条消息并且从识别对应子块的所述同步开关管理器过程接收了传送请求的每个传送过程,在由广播传送命令启动的下一个传送时段期间发送所述对应子块到由目的地节点识别符所识别的处理器节点。
本发明还提出了一种在联接到网络开关上的多个处理器节点之间同步传送数据的分布子块的方法,所述方法包括:通过在多个处理器节点的至少一个上执行的管理过程,定期地广播传送命令以启动多个顺序传送时段的每一个;通过具有待发送的至少一个子块的每个处理器节点,把一个消息发送到所述管理过程以用于待发送的每个子块,每条消息识别源处理器节点和目的地处理器节点;通过所述管理过程,选择从处理器节点接收的消息,以保证每个处理器节点在随后传送时段期间发送最多达一个子块和每个处理器节点在所述随后传送时段期间接收最多达一个子块;通过所述管理过程,发送多个传送请求,每个传送请求被发送到一个已经发送被选择的对应消息的处理节点;及通过接收传送请求的每个处理器节点,响应随后传送命令,把由接收的传送请求识别的子块传送到目的地处理器节点。
本发明还提出了一种同步数据传送系统,包括:多个存储处理器节点,包括第一和第二用户节点和一个管理节点;主干通信开关,联接到所述多个存储处理器节点上;多个标题,每一个被划分成跨在所述多个存储处理器节点上分布的多个子块;用户过程,在所述第一用户节点上执行,该用户过程发送多个时间戳读取请求,每个时间戳读取请求用来请求一个对应子块;传送过程,在所述第二用户节点上执行,该传送过程为每个接收的时间戳读取请求发送一个消息以请求一个本地存储的子块,每条消息包括源节点识别符和目的地节点识别符;及管理过程,在所述管理节点上执行,该过程经所述开关定期地广播传送命令以启动多个顺序传送时段的每一个,该过程接收多条消息,并且在每个传送时段之前,该过程从所述多条消息中选择,以保证每个存储处理节点在每个传送时段期间发送最多达一个子块和接收最多达一个子块,及发送与被选择消息相对应的多个传送请求;以及其中,所述传送过程,响应于从所述管理过程接收传送请求,在由下一个广播传送命令启动的下一个传送时段期间发送对应子块到由目的地节点识别符所识别的存储处理器节点。
附图说明
本发明的好处、特征及优点相对于如下描述和附图将变得更好理解,其中:
图1是根据本发明的典型实施例实现的交互式内容引擎(ICE)的一部分的简化方块图;和
图2是图1的ICE的一部分的逻辑方块图,表明根据本发明的实施例实现的同步数据传送系统。
具体实施方式
呈现如下描述,以使本领域的技术人员能够实现和使用在具体应用和其要求的上下文内所提供的本发明。然而,对于优选实施的各种修改对于本领域的技术人员将是显然的,并且这里限定的一般原理可以应用于其它实施例。因此,本发明不打算限于这里表示和描述的具体实施例,而是符合与这里公开的原理和新颖特征相一致的最宽范围。
这里描述的结构包容变化能力的各个元件,以避免设施限于进行初始系统购买时的时间点。商品元件的使用保证了最近证明良好的技术、单一源的避免、及最低成本每流。容许个别元件失效。在多种情况下,从用户的角度出发没有性能的显著变化。在其它情况下,有简短的“自修理”周期。在多种情况下,可以容许多重失效。而且,在不是所有也是大多数情况下,系统可恢复而不要求即时注意,使得它对于“关灯(lights out)”操作很理想。
内容存储分配和内部带宽由最少最近使用(LRU)算法自动地管理,该算法保证在RAM高速缓冲器和硬驱动器阵列高速缓冲器中的内容对于当前需要是适当的,并且底板开关带宽以最高效方式使用。在系统内的带宽很少(如果有的话)过度预定,所以不必丢弃或延迟包的传输。该结构提供完全利用每个元件的合成带宽的能力,所以可以满足保证,并且网络是专有的并且在完全控制下,所以即使在非预期的波峰需求的情形下,也没有数据路径被过载。任何比特速率的流可被包容,但典型的流期望保持在1至20Mbps范围中。在可用带宽基础上容纳非等时内容。如果应用要求,则可以故意保留带宽。文件可以具有使存储效率最大的任何尺寸。
图1是根据本发明的典型实施例实现的交互式内容引擎(ICE)100的一部分的简化方块图。为了清楚起见,没有表示不适用于本发明的充分和完全理解的部分。ICE 100包括适当的多重端口(或多端口)吉比特以太网(GbE)开关101,作为具有联接到多个存储处理器节点(SPN)103上的多重以太网端口的底板结构。每个SPN 103是一个简化服务器,包括两个吉比特以太网端口、一个或多个处理器107、存储器109(例如,随机存取存储器(RAM))、及适当数量的(例如,四至八个)盘驱动器111。在每个SPN 103上的第一Gb端口105连接到开关101的对应端口上以便全双工操作(在每个SPN/端口连接处的同时传输和接收),并且用来在ICE 100内移动数据。另一个Gb端口(未表示)把内容输出传送到用户(未表示)。
每个SPN 103具有对于其本地盘驱动器和在每五个SPN组中的其它四个SPN的其它盘驱动器的高速访问。开关101是用于ICE 100的底板,而不仅仅是在SPN 103之间的通信装置。为了说明目的,仅表示五个SPN 103,其中要理解,ICE 100典型地包括大量服务器。每个SPN 103起内容的存储、处理及发送器的作用。在显示的构造中,每个SPN 103构造成使用现成的元件,并且不是在通常意义上的计算机。尽管考虑到标准操作系统,但这样的中断驱动操作系统可能带来不必要的瓶颈。
每个标题(例如,视频、影片或其它媒体内容)不是全部存储在任何单一盘驱动器111上。而是,用于每个标题的数据被划分,并且存储在ICE 100内的几个盘驱动器中,以实现交错访问的速度优势。单个标题的内容跨在多重SPN 103的多重盘驱动器上分布。标题内容的短“时间帧”以循环(round robin)方式从每个SPN 103中的每个驱动器收集。以这种方式,实际负载跳出SCSI和IDE的驱动器计数限制而散布,得到一种失效-安全操作形式,及组织和管理大量标题。
在显示的具体构造中,每个内容标题划分成固定大小的分立块(典型地约2兆位(MB)每块)。每块以循环方式存储在不同组的SPN 103上。每块划分成四个子块,并且创建代表奇偶性的第五子块。每个子块存储在不同SPN 103的盘驱动器上。在显示和描述的配置中,约512千字节(KB)(其中“K”是1024)的子块大小与盘驱动器111的每一个额定数据单元相匹配。SPN 103每次五个分一组,并且每组或SPN集合存储标题的数据块。如表示的那样,五个SPN 103标有1-4和“Parity(奇偶性)”,它们集体地把块113存储为分别存储在SPN 1、2、3、4及Parity上的五个分离子块113a、113b、113c、113d及113e。子块113a-113e表示成以分布方式存储在用于每个不同SPN上的不同驱动器上(例如,SPN1/DRIVE1、SPN2/DRIVE2、SPN3/DRIVE3、等等),但可以以任何其它可能组合存储(例如,SPN1/DRIVE1、SPN2/DRIVE1、SPN3/DRIVE3、等等)。子块1-4包括数据,并且子块Parity包括用于数据子块的奇偶性信息。每个SPN集合的大小,尽管典型地为五个,但是是任意的,并且可容易地是任何其它适当数量,像例如2个SPN至10个SPN。为了冗余度两个SPN使用它们的存储量的50%,十个使用10%。五个是在存储效率和失效概率之间的折衷。
通过以这种方式分布内容,实现至少两个目标。首先,可观看单个标题的用户的数量不限于可由单个集合SPN的所服务的数量,而是由放在一起的所有SPN集合的带宽限制。因此,只要求每个内容标题的一个拷贝。折衷是对每秒可创建的给定标题的新观看者的数量的限制,这是远小于浪费空间和冗余存储的管理开销的约束条件。第二目标是ICE 100的整体可靠性的增加。单个驱动器的失效由通过使用奇偶性驱动器实时再生其内容而掩蔽,类似于独立盘冗余阵列(RAID)。SPN 103的失效由它包含来自各自继续操作的几个RAID集合中的每一个的一个驱动器的事实所掩蔽。连接到失效SPN上的用户非常迅速地由在其它SPN上运行的影子(shadow)过程接管。在盘驱动器和整个SPN失效的情况下,通知操作者修理或更换失效设备。当丢失子块由用户过程重新建立时,它被传输回提供它的SPN,在该处它在RAM中被高速缓冲(就像它已经从本地盘驱动器读取那样)。这避免浪费其它用户过程进行对于流行标题的相同重建的时间,因为以后请求将从RAM填充,只要子块流行得足以保持被高速缓冲。
在每个“用户”SPN 103上运行的用户过程(UP)的目标是收集来自其自己的盘的子块加上来自其它用户SPN的对应四个子块,以组装用于传送的视频内容块。用户SPN与一个或多个管理MGMT SPN不同,后者以相同方式构造但完成不同的功能,如下面进一步描述的那样。设想一对冗余MGMT SPN以提高可靠性和性能。由每个UP完成的收集和组装功能为了多个用户在每个用户SPN 103上进行多次。作为结果,有显著量的数据传输在用户SPN 103之间进行。不然具有包冲突探测和重试的典型以太网协议会被击溃。典型协议为随机传输而设计,并且取决于在那些事件之间的空闲时间。所以不使用这种手段。在ICE 100中,通过使用全双工、全切换结构、并且通过小心地管理带宽而避免冲突。大多数通信同步地进行。开关101本身以同步方式管理,如下面进一步描述的那样,从而协调传输。因为确定了哪个SPN 103进行传送,以及在给定时间段之内何时端口不被超过其能够处理的数据而淹没。的确,数据首先收集在用户SPN 103的存储器109中,并且然后其传送被同步地管理。作为协调的一部分,有在用户SPN 103之间的状态信号。不像到终端用户的实际内容,用来在用户SPN单元之间发送信令的数据大小很小。
如果允许随机或异步地进行子块的传输,则每个子块的长度(约512K字节,其中“K”是1024)否则会淹没在GbE开关101中可用的任何缓冲。用来传输这样多信息的时段是约4毫秒(ms),并且希望确保几个端口不同时试图传送到一个单个端口。因此,如下面进一步描述的那样,开关101以使它同步操作的方式被管理,使所有端口在全负载条件下被充分地利用。
管理文件系统(或虚拟文件系统或VFS)的冗余目录过程负责当给定内容标题被用户请求时报告它存储在何处。当装载新标题时,它也负责分配要求的存储空间。所有分配都在整体块中,整体块的每一个包括五个子块。在每个盘驱动器上的空间在驱动器内由逻辑块地址(LBA)管理。子块存储在盘驱动器上的连续扇区或LBA地址中。在ICE 100中的每个盘驱动器的容量由其最大LBA地址代表,其由每子块的扇区数量划分。
每个标题映射或“目录条目”包含一个列表,该列表指示其标题的块存储在何处,并且更明确地说,每个块的子块位于何处。在所详述的实施例中,在列表中代表子块的每一项包含识别特定用户SPN 103的SPNID、识别被识别的用户SPN 103的特定盘驱动器111的盘驱动号码(DD#)、及打包成64位值的子块指针(或逻辑块地址或LBA)。每个目录条目包含用于在额定4Mbsp下约半小时内容的子块列表。这等于450个块,或2250个子块。每个目录条目约20KB,具有辅助数据。当在SPN上执行的UP请求一个目录条目时,整个条目为相应用户被本地发送和存储。即使SPN支持1,000个用户,对于本地列表或目录条目也仅消耗存储器的20MB。
ICE 100保持对于用户可用的所有标题的数据库。这个列表包括本地光盘库、实时网络编程、及已进行许可和输送设置的远程位置处的标题。数据库包含用于每个标题的所有元数据,包括管理信息(许可时段、比特速率、分辨率、等等)以及对于用户感兴趣的信息(制片、导演、演员阵容、剧组、作者等等)。当用户进行选择时,查询虚拟文件系统(VFS)209的目录(图2),以确定标题是否已经装载在盘阵列中。如果没有,则对于该段内容启动装载过程(未表示),并且如有必要通知UP何时可观看。在大多数情况下,延迟不大于光盘检索机器(未表示)的机械延迟,或者约30秒。
在光盘上存储的信息(未表示)包括所有元数据(它们当盘第一次装载到库中时读入数据库)、以及代表关于这些数据流可预先搜集的标题和所有信息的压缩数字视频和声频。例如,它包含对于在数据流中的所有相关信息的指针,如时钟值和时间戳。它已经划分成子块,具有预计算的和在盘上存储的奇偶性子块。一般地,任何可预先进行以节省装载和处理开销的内容都包括在光盘上。
包括在资源管理系统中的是调度程序(未表示),UP咨询该调度程序以接收用于其流的开始时间(通常在请求的数个毫秒内)。调度程序保证在系统上的负载保持均匀、等待最小、及在ICE 100内需要的带宽在所有时间都不超过可用的带宽。当用户请求停止、暂停、快进、后退或中断其流的流动的其它操作时,其带宽被重新分配,并且对于请求的任何新服务(例如,快进流)进行新分配。
图2是ICE 100的一部分的逻辑方块图,表明根据本发明的实施例实现的同步数据传送系统200。开关101表示成联接到几个典型SPN103上,包括第一用户SPN 201、第二用户SPN 203、及管理(MGMT)SPN 205。如以前提到的那样,多个SPN 103联接到开关101上,并且为了解释本发明只有两个用户SPN 201、203被表示,并且如以前描述的那样实际上仅作为任何SPN 103实施。MGMT SPN 205实际上仅像任何其它SPN 103那样实现,但通常完成管理功能而不是特定用户功能。SPN 201表明某些功能,并且SPN 203表明每个用户SPN 103的其它功能。然而,要理解,每个用户SPN 103被设置为完成类似功能,从而对于SPN 201描述的功能(和过程)也提供在SPN 203,并且反之亦然。
如以前描述的那样,开关101以每端口1Gbps操作,从而每个子块(约512KB)占用约4ms以从一个SPN传到另一个。每个用户SPN 103执行一个或多个用户过程(UP),每个用户过程用来支持一个下游用户。当需要标题的新块重新填充用户输出缓冲器(未表示)时,来自列表的下五个子块从存储那些子块的其它用户SPN请求。由于多个UP可能大体上在同一时间请求多个子块,所以子块传输持续时间另外地会淹没用于单个端口的几乎任何GbE开关的缓冲能力,勿论用于整个开关。这对于所示的开关101是真实的。如果不管理子块传输,则导致用于每个UP的所有五个子块可能同时返回,淹没输出端口带宽。希望收紧ICE 100的SPN的传输的计时,从而最关键数据被首先且完好地传输。
SPN 201显示成执行UP 207以便服务相应的下游用户。用户请求标题(例如,影片),该请求被转发到UP 207。UP 207把标题请求(TR)传送到位于MGMT SPN 205上的VFS 209(下面进一步描述)。VFS 209把目录条目(DE)返回到UP 207,UP 207本地存储在211处显示的DE。DE 211包括定位标题的每个子块(SC1、SC2、等等)的列表,每个条目包括识别特定用户SPN 103的SPNID、识别所述被识别的SPN 103的特定盘驱动器111的盘驱动器号码(DD#)、及在所述识别盘驱动器上提供子块的特定位置的地址或LBA。SPN 201对于在DE 211中的每个子块一次一个地启动时间戳读取请求(TSRR)。在ICE 100中,立即和直接进行所述请求。换句话说,SPN 201向存储数据的特定用户SPN 103立即和直接地提出对于子块的请求。在显示的结构中,即使本地存储,也以同样方式进行请求。换句话说,即使请求的子块驻留在SPN 201的本地盘驱动器上,它也像远程布置那样经开关201送出请求。网络是可以构造成识别出请求正在从SPN发送到同一SPN的定位。同样地处置所有情形会更加简单,特别是在其中请求实际上是本地的可能性较小的较大设施。
尽管请求被立即和直接地送出,子块每个都以完全管理方式返回。每个TSRR使用SPNID到特定用户SPN,并且包括用于目标用户SPN的DD#和LBA,以检索和返回数据。TSRR还可以包括任何其它识别信息,该信息足以保证请求的子块适当地返回到适当的请求者并且使请求者能够识别子块(例如,区分在目的地SPN上执行的多重UP的UP识别符、区分用于每个数据块的多个子块的子块识别符、等等)。每个TSRR也包括识别何时进行原始请求的具体时间的时间戳(TS)。TS识别用于同步传输目的的请求的优先级,其中优先级基于时间,从而较早请求呈现较高优先级。当被接收到时,被请求标题的返回子块存储在本地标题存储器213中,以便进一步处理和传送到请求该标题的用户。
用户SPN 203表明在每个用户SPN(例如,201、203)上执行的传送过程(TP)215的操作和支持功能,用来接收TSRR和用来返回请求子块。TP 215包括存储过程(未表示)或者否则与存储过程相接口,该存储过程与在SPN 203上的本地盘驱动器111相接口,其用来请求和访问存储子块。存储过程可以以任何希望方式实现,如状态机等,并且可以是在TP 215与本地盘驱动器111之间接口的分离过程,如对于本领域的技术人员已知的那样。如表示的那样,TP 215从在其它用户SPN 103上执行的一个或多个UP接收一个或多个TSRR,并且把每个请求存储在其本地存储器109中的读取请求队列(RRQ)217中。RRQ 217存储对子块SCA、SCB等等的请求列表。存储被请求子块的盘驱动器从RRQ 217除去对应请求,把它们以实际顺序分类,并且然后以分类顺序执行每个读取。对于在每个盘上的子块的访问按组管理。每一组根据“电梯寻找(elevator seek)”操作(一次扫描从低到高,下次扫描从高到低,等等,从而跨过盘表面的盘头来回扫描,暂停以读取下个顺序子块)按实际顺序分类。成功读取的请求存储在按TS顺序分类的成功读取队列(SRQ)218中。对于失败读取的请求(如果有的话)存储在失败读取队列(FRQ)220中,并且失败信息转发到网络管理系统(未表示),该网络管理系统确定错误和适当的校正动作。注意,在显示的构造中,队列217、218及220存储请求信息而不是实际子块。
成功读取的每个子块放置在为最近请求子块的LRU高速缓冲器而保留的存储器中。对于每个被检索子块,TP 215创建对应消息(MSG),该消息包括用于子块的TS、子块的源(SRC)(例如正在从其传输子块的SPNID和其实际存储器位置以及任何其它识别信息)、及子块待传输到的目的地(DST)SPN(例如,SPN 201)。如显示的那样,SRQ 218包括分别用于子块SCA、SCB等等的消息MSGA、MSGB等等。在读取和高速缓冲被请求的子块之后,TP 215把对应MSG发送到在MGMT SPN 205上执行的同步开关管理器(SSM)219。
SSM 219从TP接收来自用户SPN的多重MSG并把其按优先级排序,并且最终把传送请求(TXR)发送到识别在其SRQ 218中的MSG之一的TP 215,如使用消息识别符(MSGID)等。当SSM 219把带有识别在SRQ 218中的子块的MSGID的TXR发送到TP 215时,请求列表从SRQ 218移动到网络传送过程(NTP)221(其中“移动”指示从SRQ 218除去请求),该过程221建立用来把子块传送到目的地用户SPN的分组。其中从SRQ 218除去子块请求列表的顺序不必是顺序的,尽管列表按时间戳顺序,因为只有SSM 219确定适当的排序。SSM 219把一个TXR发送到具有至少一个子块待发送的每个其他SPN 103,除非所述子块要发送到已经计划接收相等或较高优先级子块的SPN 103上的UP,如下面进一步描述的那样。SSM 219然后向所有用户SPN 103广播单个传送命令(TX CMD)。TP 215响应由SSM 219广播的TX CMD命令而指示NTP 221把所述子块传送到用户SPN 103的请求UP。以这种方式,已经从SSM 219接收到TXR的每个SPN 103同时传送到另一个请求用户SPN 103。
在MGMT SPN 205上的VFS 209管理标题列表和它们的在ICE100中的位置。在典型计算机系统中,目录(数据信息)通常驻留在数据所驻留的同一盘上。然而,在ICE 100中,VFS 209集中布置以管理分布数据,因为用于每个标题的数据跨在盘阵列中的多个盘上分布,该多个盘又跨在多个用户SPN 103上分布。如以前描述的那样,在用户SPN 103上的盘驱动器111主要存储标题的子块。VFS 209如以上描述的那样,借助PSNID、DD#、及LBA,包括用于每个子块的位置的识别符。VFS 209也包括外部的ICE 100的其它部分(如光学存储)的识别符。当用户请求标题时,使目录信息的完全集合(ID/地址)对于接收了用户的请求的用户SPN 103上执行的UP可用。从那里,任务是把子块传送离开盘驱动器到存储器(缓冲器),经开关101把它们移动到请求用户SPN 103,该请求用户SPN 103在缓冲器中组装完整的块,把它输送到用户,及重复直到完成。
SSM 219在准备消息(RDY MSG)列表223中按时间戳顺序创建“准备”消息列表。其中在用户SPN 103上从TP接收消息的顺序不必按时间戳顺序,而是按在RDY MSG列表223中的TS顺序。刚好在下个传送集合之前,SSM 219从最早时间戳开始扫描RDY MSG列表223。SSM 219首先识别在RDY MSG列表223中的最早TS,并且产生和发送对应TXR消息到存储对应子块的用户SPN 103的TP 215,以启动该子块的当前传送。SSM 219对于每个随后子块按TS顺序继续扫描列表223,产生用于每个子块的TXR消息,该子块的源和目的地还没有包括在当前子块传送中。对于到所有用户SPN 103的每个TXCMD广播,每个用户SPN 103只一次传送一个子块,并且只一次接收一个子块,尽管它可同时地进行两者。例如,如果TXR消息发送到SPN#10的TP以计划到SPN#2的当前子块传送,那么SPN#10不能同时发送另一个子块。然而,SPN#10可同时从另一个SPN接收子块。此外,SPN#2在从SPN#10接收子块的同时不能同时接收另一个子块,尽管SPN#2可同时传送到另一个SPN,这是因为开关101的端口的每一个的全双工属性。
SSM 219继续扫描RDY MSG列表223,直到已经考虑所有用户SPN 103,或者当到达RDY MSG列表223的末端。与TXR消息相对应的RDY MSG列表223中的每个条目最终从RDY MSG列表223除去(或者当发送TXR消息时、或者在完成传送之后)。当前一段时间的最后传送已经结束时,SSM 219广播TX CMD分组,该TX CMD分组向所有用户SPN 103发信号以开始下一轮传输。对于所描述的特定配置,每次传送在近似4至5秒的时段内同时发生。在每个传送轮次期间,额外的MSG发送到SSM 219,并且新TXR消息送出到用户SPN 103以计划下一轮传输,及重复该过程。在连续TX CMD之间的时段近似等于传送子块所有字节所必需的时段,包括分组总开销和分组间延迟,加上清除在子块的传输期间在开关中可能已经发生的所有高速缓冲的时段,典型地为60微秒(μs),加上考虑到由单独SPN识别TX CMD时的延迟引起的任何抖动的时段,典型地小于100μs。
在一个实施例中,复制或镜像MGMT SPN(未表示)是主MGMTSPN 205的镜像,从而SSM 219、VFS 209、及调度程序每个都复制在一对冗余专用MGMT SPN上。在一个实施例中,同步TX CMD广播作为指示MGMT SPN 205的健康的脉动(heartbeat)。脉动发送到辅助MGMT SPN,指示一切都好。在没有脉动的情况下,辅助MGMTSPN在预定时间段内,像例如在5ms内,接管所有管理功能。
尽管参照本发明的某些优选形式已经相当详细地描述了本发明,但其它样式和变化是可能的和可设想的。本领域的技术人员应该认识到,他们可容易地把公开的概念和特定实施例,用作用来设计或修改提供本发明的相同目的的其它结构,而不脱离由如下权利要求书限定的本发明的精神和范围。
Claims (24)
1. 一种同步数据传送系统,包括:
多个处理器节点;
主干网络开关,联接到所述多个处理器节点上以能够实现在所述多个处理器节点之间的通信;
多个存储装置,跨在所述多个处理器节点上分布并且存储多个标题,每一个标题被划分成跨在所述多个存储装置上分布的多个子块;
多个传送过程,每一个在所述多个处理器节点的对应一个上执行,并且可操作以发送消息以为了将从本地存储装置传送到目的地处理器节点的每个子块,每条消息包括源节点识别符和目的地节点识别符;及
同步开关管理器过程,在所述多个处理器节点的至少一个上执行,该过程定期地广播一个传送命令以启动多个顺序传送时段的每一个,该过程接收多条消息,并且在每个传送时段之前,该过程从所述多条消息中选择,以保证每个处理节点在每个传送时段期间发送最多至一个子块和接收最多至一个子块,及发送与被选择消息相对应的多个传送请求;以及
其中,发送至少一条消息并且从识别对应子块的所述同步开关管理器过程接收了传送请求的每个传送过程,在由广播传送命令启动的下一个传送时段期间发送所述对应子块到由目的地节点识别符所识别的处理器节点。
2. 根据权利要求1所述的同步数据传送系统,其中,所述多条消息的每一条包括时间戳;并且所述同步开关管理器过程基于时间戳顺序把所述多条消息的优先级排序,并且按时间戳顺序发送所述多个传送请求。
3. 根据权利要求2所述的同步数据传送系统,还包括:
多个用户过程,每一个在所述多个处理器节点的对应一个上执行并且可操作以发送多个时间戳读取请求;并且
其中,每个传送过程把来自一个对应时间戳读取请求的时间戳包含到对应消息中。
4. 根据权利要求3所述的同步数据传送系统,其中所述同步开关管理器过程把所述多条消息按时间戳顺序组织成一个准备消息列表,刚好在所述多个顺序传送时段的每一个之前按时间戳顺序扫描所述准备消息列表,及基于时间戳优先级选择消息。
5. 根据权利要求4所述的同步数据传送系统,其中如果在随后传送时段期间一个被识别的源处理器节点尚未被选择用于传送一个子块,并且如果在所述随后传送时段期间一个被识别的目的地处理器节点尚未被选择用于接收一个子块,则所述同步开关管理器过程选择一个消息。
6. 根据权利要求1所述的同步数据传送系统,还包括:
所述多个传送过程的每一个把接收的子块读取请求存储到一个读取请求队列中,每个子块读取请求指示一个本地存储子块;
所述多个存储装置的每一个按实际顺序读取在本地读取请求队列中识别的子块;
所述多个处理器节点的每一个把由对应存储装置成功读取的子块列成一个成功读取队列;及
所述多个传送过程的每一个为相应成功读取队列中的每个条目发送一条消息到所述同步开关管理器过程。
7. 根据权利要求6所述的同步数据传送系统,其中每个所述子块读取请求包括时间戳读取请求,其中在每个所述成功读取队列中的条目按时间戳顺序被列表,及其中每个传送过程按时间戳顺序为在相应成功读取队列中的每个条目发送消息。
8. 根据权利要求6所述的同步数据传送系统,还包括:
所述多个传送过程的每一个从相应成功请求队列中除去一个条目,其中所述条目与由相应传送请求识别的子块相关联;和
多个网络传送过程,每一个在所述多个处理器节点的对应一个上执行,并且每一个可操作以建立用来响应传送命令把被识别子块传送到目的地处理器节点的网络分组。
9. 根据权利要求1所述的同步数据传送系统,其中所述网络开关包括具有多个端口的吉比特以太网开关,并且所述多个处理器节点的每一个联接到所述网络开关的一个对应端口上。
10. 根据权利要求1所述的同步数据传送系统,其中所述多个处理器节点包括执行所述同步开关管理器过程的管理节点。
11. 根据权利要求1所述的同步数据传送系统,其中所述多个处理器节点包括执行所述同步开关管理器过程的第一管理节点、和执行镜像同步开关管理器过程的第二管理节点。
12. 一种在联接到网络开关上的多个处理器节点之间同步传送数据的分布子块的方法,所述方法包括:
通过在多个处理器节点的至少一个上执行的管理过程,定期地广播传送命令以启动多个顺序传送时段的每一个;
通过具有待发送的至少一个子块的每个处理器节点,把一个消息发送到所述管理过程以用于待发送的每个子块,每条消息识别源处理器节点和目的地处理器节点;
通过所述管理过程,选择从处理器节点接收的消息,以保证每个处理器节点在随后传送时段期间发送最多达一个子块和每个处理器节点在所述随后传送时段期间接收最多达一个子块;
通过所述管理过程,发送多个传送请求,每个传送请求被发送到一个已经发送被选择的对应消息的处理节点;及
通过接收传送请求的每个处理器节点,响应随后传送命令,把由接收的传送请求识别的子块传送到目的地处理器节点。
13. 根据权利要求12所述的方法,还包括:
在所述发送用于待发送的每个子块的消息之前,给每条消息加时间戳;
所述选择包括基于时间戳顺序进行优先级排序,及
所述发送多个传送请求包括按时间戳顺序发送传送请求。
14. 根据权利要求13所述的方法,还包括:
在所述发送用于待发送的每个子块的消息到所述管理过程之前,由至少一个处理器节点,发送多个时间戳读取请求;以及
其中,所述给每条消息加时间戳包括把来自接收的时间戳读取请求的一个时间戳加入一个对应消息中。
15. 根据权利要求14所述的方法,其中所述选择从处理器节点接收的消息包括:
通过所述管理过程,把接收的消息按时间戳顺序组织成一个准备消息列表;和
通过所述管理过程,刚好在每个传送时段之前,按时间戳顺序扫描所述准备消息列表。
16. 根据权利要求15所述的方法,所述扫描包括:如果在随后传送时段期间所述被识别的源处理器节点尚未被选择用于发送一个子块,并且如果在随后传送时段期间所述被识别的目的地处理器节点尚未被选择用于接收一个子块,则选择一个消息。
17. 根据权利要求16所述的方法,其中,当已经扫描整个准备消息列表时,或者如果所有处理器节点已经被选择用于传送子块或如果所有处理器节点已经被选择用于接收子块,则所述扫描完成。
18. 根据权利要求12所述的方法,还包括:
在所述发送用于待发送的每个子块的消息到所述管理过程之前,把接收的子块读取请求存储到一个读取请求队列中,每个子块读取请求指示对本地存储子块的请求;
在所述存储之后,通过本地盘驱动器,按实际顺序读取在读取请求队列中识别的子块;
在所述存储之后,把成功地读取的子块的条目列表成一个成功读取队列;及
所述发送一个消息用于待发送的每个子块包括,为在所述成功读取队列中的每个条目发送一个消息。
19. 根据权利要求18所述的方法,其中每个子块读取请求包括时间戳读取请求;所述把成功地读取的子块的条目列表到一个成功读取队列中包括,按时间戳顺序列表条目,及所述为在所述成功读取队列中的每个条目发送一个消息包括,按时间戳顺序发送消息。
20. 根据权利要求18所述的方法,在所述列表之后及在所述发送消息之前还包括:
从所述成功请求队列中除去一个与由对应传送请求识别的子块相关联的条目;和
建立用来响应传送命令把被识别子块传送到目的地处理器节点的网络分组。
21. 根据权利要求12所述的方法,还包括在第一管理节点上执行所述管理处理器、以及在是第一管理节点的镜像的镜像管理节点上执行一个镜像管理过程。
22. 一种同步数据传送系统,包括:
多个存储处理器节点,包括第一和第二用户节点和一个管理节点;
主干通信开关,联接到所述多个存储处理器节点上;
多个标题,每一个被划分成跨在所述多个存储处理器节点上分布的多个子块;
用户过程,在所述第一用户节点上执行,该用户过程发送多个时间戳读取请求,每个时间戳读取请求用来请求一个对应子块;
传送过程,在所述第二用户节点上执行,该传送过程为每个接收的时间戳读取请求发送一个消息以请求一个本地存储的子块,每条消息包括源节点识别符和目的地节点识别符;及
管理过程,在所述管理节点上执行,该过程经所述开关定期地广播传送命令以启动多个顺序传送时段的每一个,该过程接收多条消息,并且在每个传送时段之前,该过程从所述多条消息中选择,以保证每个存储处理节点在每个传送时段期间发送最多达一个子块和接收最多达一个子块,及发送与被选择消息相对应的多个传送请求;以及
其中,所述传送过程,响应于从所述管理过程接收传送请求,在由下一个广播传送命令启动的下一个传送时段期间发送对应子块到由目的地节点识别符所识别的存储处理器节点。
23. 根据权利要求22所述的同步数据传送系统,其中,所述管理过程基于时间戳优先级从所述多条消息中选择。
24. 根据权利要求23所述的同步数据传送系统,其中,如果在所述随后传送时段期间一个被识别的源节点尚未被选择用于发送一个子块,并且如果在所述随后传送时段期间一个被识别的目的地节点尚未被选择用于接收一个子块,则所述管理过程首先选择具有最高优先级时间戳的消息,并且然后选择每条随后消息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US52643703P | 2003-12-02 | 2003-12-02 | |
US60/526,437 | 2003-12-02 | ||
US10/999,661 | 2004-11-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1890658A CN1890658A (zh) | 2007-01-03 |
CN100410917C true CN100410917C (zh) | 2008-08-13 |
Family
ID=37579164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800357672A Expired - Fee Related CN100410917C (zh) | 2003-12-02 | 2004-12-02 | 同步数据传送系统及方法 |
Country Status (6)
Country | Link |
---|---|
CN (1) | CN100410917C (zh) |
AT (1) | ATE487321T1 (zh) |
DE (1) | DE602004029925D1 (zh) |
ES (1) | ES2354429T3 (zh) |
HK (1) | HK1099817A1 (zh) |
IL (1) | IL175837A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8768895B2 (en) * | 2007-04-11 | 2014-07-01 | Emc Corporation | Subsegmenting for efficient storage, resemblance determination, and transmission |
CN103188306B (zh) * | 2011-12-30 | 2016-04-27 | 中国移动通信集团公司 | 分布式预处理方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5862403A (en) * | 1995-02-17 | 1999-01-19 | Kabushiki Kaisha Toshiba | Continuous data server apparatus and data transfer scheme enabling multiple simultaneous data accesses |
US5938734A (en) * | 1995-09-12 | 1999-08-17 | Kabushiki Kaisha Toshiba | Real time stream server for handling a plurality of real time stream data with different data rates |
US5949411A (en) * | 1996-02-16 | 1999-09-07 | Cyber Marketing, Inc. | Remote interactive multimedia preview and data collection kiosk system |
US6134596A (en) * | 1997-09-18 | 2000-10-17 | Microsoft Corporation | Continuous media file server system and method for scheduling network resources to play multiple files having different data transmission rates |
US20030115282A1 (en) * | 2001-11-28 | 2003-06-19 | Rose Steven W. | Interactive broadband server system |
-
2004
- 2004-12-02 ES ES04812687T patent/ES2354429T3/es active Active
- 2004-12-02 AT AT04812687T patent/ATE487321T1/de not_active IP Right Cessation
- 2004-12-02 DE DE602004029925T patent/DE602004029925D1/de active Active
- 2004-12-02 CN CNB2004800357672A patent/CN100410917C/zh not_active Expired - Fee Related
-
2006
- 2006-05-22 IL IL175837A patent/IL175837A/en not_active IP Right Cessation
-
2007
- 2007-05-29 HK HK07105644.2A patent/HK1099817A1/xx not_active IP Right Cessation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5862403A (en) * | 1995-02-17 | 1999-01-19 | Kabushiki Kaisha Toshiba | Continuous data server apparatus and data transfer scheme enabling multiple simultaneous data accesses |
US5938734A (en) * | 1995-09-12 | 1999-08-17 | Kabushiki Kaisha Toshiba | Real time stream server for handling a plurality of real time stream data with different data rates |
US5949411A (en) * | 1996-02-16 | 1999-09-07 | Cyber Marketing, Inc. | Remote interactive multimedia preview and data collection kiosk system |
US6134596A (en) * | 1997-09-18 | 2000-10-17 | Microsoft Corporation | Continuous media file server system and method for scheduling network resources to play multiple files having different data transmission rates |
US20030115282A1 (en) * | 2001-11-28 | 2003-06-19 | Rose Steven W. | Interactive broadband server system |
Also Published As
Publication number | Publication date |
---|---|
IL175837A0 (en) | 2006-10-05 |
ES2354429T3 (es) | 2011-03-14 |
DE602004029925D1 (de) | 2010-12-16 |
IL175837A (en) | 2012-09-24 |
ATE487321T1 (de) | 2010-11-15 |
CN1890658A (zh) | 2007-01-03 |
HK1099817A1 (en) | 2007-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1692620B1 (en) | Synchronized data transfer system | |
CN100430915C (zh) | 交互式宽带服务器系统及内容引擎 | |
CA2547442C (en) | Virtual file system | |
US5915094A (en) | Disk access method for delivering multimedia and video information on demand over wide area networks | |
CN101877783B (zh) | 网络视频存储器集群化视频监控系统和方法 | |
CA2130395C (en) | Multimedia distribution over wide area networks | |
US6047309A (en) | Recording observed and reported response characteristics at server and/or client nodes in a replicated data environment, and selecting a server to provide data based on the observed and/or reported response characteristics | |
US5815662A (en) | Predictive memory caching for media-on-demand systems | |
US6925499B1 (en) | Video distribution system using disk load balancing by file copying | |
US7039784B1 (en) | Video distribution system using dynamic disk load balancing with variable sub-segmenting | |
US7143433B1 (en) | Video distribution system using dynamic segmenting of video data files | |
US20020133491A1 (en) | Method and system for managing distributed content and related metadata | |
WO2002087236A1 (en) | System and method for retrieving and storing multimedia data | |
Ghandeharizadeh et al. | Design and implementation of scalable continuous media servers | |
US20030154246A1 (en) | Server for storing files | |
CN100410917C (zh) | 同步数据传送系统及方法 | |
CN1902620B (zh) | 虚拟文件系统 | |
Wright | An efficient video-on-demand model | |
Kumar et al. | A High Performance Multimedia Server For Broadband Network Enviromment | |
Wu et al. | Odyssey: a high‐performance clustered video server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1099817 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1099817 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080813 Termination date: 20181202 |
|
CF01 | Termination of patent right due to non-payment of annual fee |