CN104918058A - 一种高效传送数据流的方法 - Google Patents
一种高效传送数据流的方法 Download PDFInfo
- Publication number
- CN104918058A CN104918058A CN201510273751.5A CN201510273751A CN104918058A CN 104918058 A CN104918058 A CN 104918058A CN 201510273751 A CN201510273751 A CN 201510273751A CN 104918058 A CN104918058 A CN 104918058A
- Authority
- CN
- China
- Prior art keywords
- data
- generation module
- data flow
- file
- zero
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23103—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion using load balancing strategies, e.g. by placing or distributing content on different disks, different memories or different servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种高效传送数据流的方法,该方法为:为多媒体服务器的文件***提供一个通用接口以通过避免数据拷贝和语境转换来改善数据流吞吐量。该文件***包括一个输出登记服务程序,用来提供指向文件***实现规定的一组零拷贝接口的各功能指示字。这些接口包括一个用来建立必需的数据结构的初始化服务程序;用来验证所规定的文件是否适合零拷贝操作的另一些服务程序;用来在中断级锁定一个缓存器和返回现有的数据量的另一个服务程序;以及一个用来提供有关文件访问模式变化的信息的服务程序。
Description
技术领域
本发明涉及计算机化的多媒体服务器,具体地说,涉及这种***中高效率地在各装置之间诸如从一个磁盘存储子***至一个网络或图像解码卡传送数据流的技术。
背景技术
多媒体***通常涉及大量表示高密多媒体数据的数据流,它们必需以非常高的效率传送通过***。一个有代表性的例子是“视频点播”服务***。人们已经研究了各种方法,力图高效率地使数据通过这些***。这些***有许多用众所周知的Unix操作***或其派生***作为它们的操作***,正如通常在那些实现多媒体内容投送***的用户服务器环境中可以看到的那样。
但是这种基于Unix的***的固有严重不足之处是其中传送数据所采用的机制并没有如所需的那样在涉及非常复杂的多媒体数据流的***中使效率最佳化。
因此,业界急需一种高效传送数据流的方法,来使得目前的市场情况加以改善。
发明内容
为了克服上述现有技术中存在的技术缺陷,本发明的目的在于提供一种高效传送数据流的方法。
为了实现上述发明目的,本发明的技术方案如下:
一种高效传送数据流的方法,其用于在多媒体数据流***中用预先存在的文件***支持对一个数据流文件执行零拷贝功能,所述的多媒体数据流***包括:多个各支持一组零拷贝功能接口的不同现有文件***中的一个现有文件***、一个使一个产生模块和一个用户模块连接的VCS、一个与共享存储器连接的大容量存储装置、一个用户装置、一个多媒体文件***后台进程和一个配置在所述用户装置和用户模块之间的装置驱动器;
所述方法包括下列步骤:建立一个与所述多个不同现有文件***相连的通用文件***接口;以及调用所述通用文件***接口,,一控制***,以实现从所述产生模块到所述用户模块的所述数据流的零拷贝传送。
进一步的,所述方法还包括下列步骤:从所述产生模块向所述输出登记服务发送一个功能调用,以得到所述产生模块可用来调用所述内核扩展的所述功能描述符。
更进一步的,所述方法还包括下列步骤:用所述VCS调用所述产生模块,以使所述产生模块验证所述数据流文件是否符合所述零拷贝功能的要求。
其中,所述验证步骤包括对数据结构进行初始化和检验与所述数据流文件相关的一些参数。
优选的,所述方法还包括下列步骤:从所述产生模块调用所述内核服务扩展,以得到支持从中断语境传送数据的缓存器的标识,从而确定所述数据流在所述大容量存储装置内的位置并可在中断语境加以检索。
更优选的,所述方法还包括下列步骤:从所述产生模块向所述内核服务扩展传送一个指示符,指明所述***随时可以准备与所述数据流文件对应的需从所述大容量存储装置传送经所述共享存储器内缓存器的数据。
常规子***进行高效率传送多媒体数据流信息所出现的其他一些问题,使本发明采取了相应的革新措施,包括:在中断级寻找和锁定缓存器,向后台进程传送预取信息,以在中断级需要文件数据缓存器前预先加以领取,用并行写入器对文件进行串行化,以及更概括地说,提供在VCS框架内支持零拷贝的通用文件***接口,以便使数据的传输更加高效。
具体实施方式
下面结合具体实施例对本发明的技术方案做进一步详细的描述说明。
本实施例提供了零拷贝或VCS子***,它的功能与一个更为传统的***中的各组成部分的配合情况。数据输出口主要是用来建立磁盘驱动器和文件***与诸如ADEC那样的图像解码卡之间的连接。概括地说,输出口提供以流水线方式对产生器和用户装置的互连。一旦连接建立,数据输出口通过控制至VCS提供一个连接,用来通过VCS直接控制文件***和通信装置之间的数据流动。
图像连接子***的总体功能是以最佳方式控制多媒体文件***(MMFS)、产生模块和用户模块之间的数据流动。用户模块例如可以是一个包括例如ADECNAR和基本上处于流水线输出那一侧的相应ADEC适配卡的图像解码器。产生模块可以是一个诸如可以部分体现在多个常用的磁盘驱动器或一个RAID阵列中的磁盘驱动***和文件***那样的存储子***。产生模块起着另一个可以是具有现有常用结构的诸如文件***那样的文件***与VCS之间的中介作用。VCS本身有一组管理数据流动的接口,因此产生模块实质上起着响应来自VCS的请求对文件***进行相应调用以获得所请求的数据的中介作用。
内核扩展显然是处于操作***内核之中,而后台进程在应用空间内执行。这说明了为什么控制流程是从VCS到产生器模块到内核扩展再到后台进程,VCS、产生器模块和内核扩展都在内核内,一直通达由应用空间中的后台进程所代表的用户级。
本发明的基本目的是实现必需的多媒体数据传送而不需要对数据进行拷贝占用开销。已经知道,能够在不将数据取入存储器的情况下在各装置之间传送数据。
在图像服务器环境中,可能感兴趣的是将数据取入存储器,因为如果有两个用户希望播放同一个节目,那么这些多个请求可以用存储器中的单个拷贝来满足(然而如果在装置之间直接传送相同的数据,那么这数据就必需在物理上传送两次)。因此,在这个用户可以希望接入相同数据的图像服务器环境中,能够利用存储器的缓冲特性是有意义的。本发明的模型是基于这样的设想:数据将取入存储器和希望得到单个数据拷贝,所选择的方案基本上是使文件***提供这单个拷贝。
文件***传统上是在过程语境内运行的。在这个语境内,文件***中传送数据的传统方式是从一个用户级程序对内核进行“读”***调用,得到从盘读入一个内核缓存器的文件的特定数据范围,然后再将它拷贝到用户缓存器。另一方面,如果需要将数据写到网络上,那么就发出一个“写”***调用,数据从用户存储器反向传送到内核,再从内核缓存器传送给网络装置。
本发明所研究的一个问题涉及图像连接子***可以支持的模型。具体地说,需要的是这样的一个***,它能在Unix或Unix派生的环境(诸如IBM公司的AIX)TM(操作***)内以能限制CPU开销和拷贝数据所占用的开销的方式进行操作。VCS在产生模块和用户模块之间执行的控制流程大都是在中断语境内发生的。然而,在Unix和Unix派生的操作***的环境中,对能在中断环境(与文件***在其中运行的过程语境不同)中执行的操作有着明显的限制。本发明的VCS实质上是用一个完全在内核内执行数据传送的模型来代替传统的写模型。
在这一点上,可以用一个例子来说明采用本发明所提出的零拷贝方法传送数据的情况。一旦VCS在产生模块和用户模块之间建立了一条流水线而开始传送数据流时,VCS就会向产生模块发出一个请求,要求它取得一个数据缓存器。产生模块于是接入文件***,执行查找,确定数据缓存器的位置,然后提供在内核语境对这个缓存器的可寻址标志,转给用户模块。因此,不是实际拷贝数据,而是提供对数据的寻址基准。
具体地说,代码主要在产生模块内执行。因此,在图像子***启动后,产生模块装入操作***的内核,产生模块装入后,就调入由内核扩展提供的输出服务,这基本上是一个登记服务。产生模块请求内核扩展的服务指出该内核扩展为了支持零拷贝功能所提供的各功能的相应地址。当过程开始和产生模块装入后,即登记内核扩展所支持的文件***零拷贝支持接口。
应该指出,本发明的一个重要特点是提供了支持这种零拷贝功能的一个通用接口。按照本发明,由于提供的是一组更为通用的内核服务,因此可由在零拷贝框架内的各种不同的文件***加以利用。这些文件***由产生模块登记。具体地说,响应模块的这个调用,内核扩展向产生模块返回一组功能描述符,使得产生模块后能对内核扩展进行各种功能调用。因此,产生模块将对它的数据结构进行某些初始化,并对传送给它的文件进行参数检验,以保证这文件实际是一个来自多媒体文件***的多媒体文件而不是一个来自诸如杂志文件***(JFS)那样的其他什么文件***的文件。
在数据传送实际开始前,产生模块将调入现有多媒体文件***(具体是MMFS内核扩展),提取有关以后将在这中断语境内允许数据从中检索数据的文件的信息。
如前面所述,通常在Unix或Unix派生的环境中,大多数文件***操作,如从文件***读出数据或将数据写入文件***,都在过程语境内发生。要使数据可在文件***内传送必需能获取进行传送所需的所有信息,例如有关文件、支持从中断语境传送数据的缓存器等的信息。诸如节点和间接块之类的相应数据结构传统上通常是在过程语境而不是在中断语境可访问的。
因此,用户装置实际上已经完成了共享存储器中的当前缓存器的传送。一旦作出了这个传送完成的通知,指示该缓存器正在使用的任何锁定或其他信息都必需更新,此外,另一个预取消息于是从产生模块通过内核扩展的通路发送给后台进程,以在用户装置需要前进行下一个缓存器的预取(即在文件中将要传送的位置,逻辑上与上一次传入刚释放的缓存器内的数据相邻)。这样,***就保持这样一种状态,在用户装置需要以前数据就已存在共享存储器内了。
进行检验,确定是否其他缓存器留有与文件对应的需传送数据。实际上,如果还没有达到数据的终端,过程就循环回方框。如果测试表明所有这些数据都已传送,则过程结束,发出返回消息,表示数据传送已经完成。
虽然结合本发明的一些具体实施例对本发明作了说明,但熟悉本技术领域的人员可以理解,其中可以根据本发明的精神实质无论在形式上还是在细节上都能进行种种修改,因此都应属于本发明的专利保护范围。
Claims (6)
1.一种高效传送数据流的方法,其用于在多媒体数据流***中用预先存在的文件***支持对一个数据流文件执行零拷贝功能,所述的多媒体数据流***包括:多个各支持一组零拷贝功能接口的不同现有文件***中的一个现有文件***、一个使一个产生模块和一个用户模块连接的VCS、一个与共享存储器连接的大容量存储装置、一个用户装置、一个多媒体文件***后台进程和一个配置在所述用户装置和用户模块之间的装置驱动器;其特征在于:
所述方法包括下列步骤:建立一个与所述多个不同现有文件***相连的通用文件***接口;以及调用所述通用文件***接口,,一控制***,以实现从所述产生模块到所述用户模块的所述数据流的零拷贝传送。
2.根据权利要求1所述的一种高效传送数据流的方法,其特征在于,所述方法还包括下列步骤:从所述产生模块向所述输出登记服务发送一个功能调用,以得到所述产生模块可用来调用所述内核扩展的所述功能描述符。
3.根据权利要求1或2所述的一种高效传送数据流的方法,其特征在于,所述方法还包括下列步骤:用所述VCS调用所述产生模块,以使所述产生模块验证所述数据流文件是否符合所述零拷贝功能的要求。
4.根据权利要求3所述的一种高效传送数据流的方法,其特征在于,所述验证步骤包括对数据结构进行初始化和检验与所述数据流文件相关的一些参数。
5.根据权利要求3所述的一种高效传送数据流的方法,其特征在于,所述方法还包括下列步骤:从所述产生模块调用所述内核服务扩展,以得到支持从中断语境传送数据的缓存器的标识,从而确定所述数据流在所述大容量存储装置内的位置并可在中断语境加以检索。
6.根据权利要求5所述的一种高效传送数据流的方法,其特征在于,所述方法还包括下列步骤:从所述产生模块向所述内核服务扩展传送一个指示符,指明所述***随时可以准备与所述数据流文件对应的需从所述大容量存储装置传送经所述共享存储器内缓存器的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510273751.5A CN104918058A (zh) | 2015-05-26 | 2015-05-26 | 一种高效传送数据流的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510273751.5A CN104918058A (zh) | 2015-05-26 | 2015-05-26 | 一种高效传送数据流的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104918058A true CN104918058A (zh) | 2015-09-16 |
Family
ID=54086702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510273751.5A Pending CN104918058A (zh) | 2015-05-26 | 2015-05-26 | 一种高效传送数据流的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104918058A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0853412A2 (en) * | 1996-12-02 | 1998-07-15 | International Business Machines Corporation | System method for efficiently transferring datastreams in a multimedia system |
JP2007318792A (ja) * | 1994-05-13 | 2007-12-06 | Starsight Telecast Inc | テレビスケジュール情報送信及び利用システム並びに方法 |
CN101557420A (zh) * | 2009-03-31 | 2009-10-14 | 北京航空航天大学 | 虚拟机监控器高效网络通信的实现方法 |
CN102291298B (zh) * | 2011-08-05 | 2014-10-22 | 曾小荟 | 一种高效的面向长消息的计算机网络通信方法 |
-
2015
- 2015-05-26 CN CN201510273751.5A patent/CN104918058A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007318792A (ja) * | 1994-05-13 | 2007-12-06 | Starsight Telecast Inc | テレビスケジュール情報送信及び利用システム並びに方法 |
EP0853412A2 (en) * | 1996-12-02 | 1998-07-15 | International Business Machines Corporation | System method for efficiently transferring datastreams in a multimedia system |
CN101557420A (zh) * | 2009-03-31 | 2009-10-14 | 北京航空航天大学 | 虚拟机监控器高效网络通信的实现方法 |
CN102291298B (zh) * | 2011-08-05 | 2014-10-22 | 曾小荟 | 一种高效的面向长消息的计算机网络通信方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1093660C (zh) | 多媒体***中高效传送数据流的***方法和设备 | |
US10120586B1 (en) | Memory transaction with reduced latency | |
KR102520039B1 (ko) | 에너지 및 시간 효율적인 컨텐츠 배포 및 전송을 지원하기 위한 시스템 및 방법 | |
US6421742B1 (en) | Method and apparatus for emulating an input/output unit when transferring data over a network | |
US8762480B2 (en) | Client, brokerage server and method for providing cloud storage | |
US20040093454A1 (en) | USB endpoint controller flexible memory management | |
US20080147909A1 (en) | Remote USB protocol for a heterogeneous system | |
US20080201571A1 (en) | System and method for managing boot images in a retail store environment | |
CN101373448B (zh) | 具有远程管理的计算机*** | |
US9104813B2 (en) | Software installation method, apparatus and program product | |
JPH09224044A (ja) | 配信システム | |
US7069305B2 (en) | Computer system and a data transfer method thereof using remote direct memory access | |
CN110633046A (zh) | 一种分布式***的存储方法、装置、存储设备及存储介质 | |
CN108205482B (zh) | 文件挂载恢复方法 | |
CN107817962B (zh) | 一种远程控制方法、装置、控制服务器及存储介质 | |
US7099995B2 (en) | Metadata access during error handling routines | |
CN111164570B (zh) | 用于创建用于与远程计算机一起使用的虚拟盘映像的***和方法 | |
US11868819B2 (en) | System and method for constructing filter graph-based media processing pipelines in a browser | |
CN104918058A (zh) | 一种高效传送数据流的方法 | |
CN116932451A (zh) | 一种数据处理方法、主机及相关设备 | |
CN1625734A (zh) | 将数据流式传输至一网络中的计算机的***和方法 | |
US20080140669A1 (en) | Dedicated storage and background backup of stored contents | |
US10642494B2 (en) | Method, electronic device and computer program product for data processing | |
CN101510146A (zh) | 基于独立冗余磁盘阵列的虚拟空间创建方法、装置和*** | |
US6434635B1 (en) | Methods, apparatus, and computer program product for data transfer using a scatter-gather list |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150916 |
|
WD01 | Invention patent application deemed withdrawn after publication |