CN103701907A - 服务器中的数据续传的处理方法及*** - Google Patents
服务器中的数据续传的处理方法及*** Download PDFInfo
- Publication number
- CN103701907A CN103701907A CN201310741808.0A CN201310741808A CN103701907A CN 103701907 A CN103701907 A CN 103701907A CN 201310741808 A CN201310741808 A CN 201310741808A CN 103701907 A CN103701907 A CN 103701907A
- Authority
- CN
- China
- Prior art keywords
- cutting
- data file
- file
- module
- fragment
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种服务器中的数据续传的处理方法,解决数据文件上载至服务器的异常修复后的文件续传处理,减少网络传输的数据量。包括:将所述数据文件放置于对应的内部队列中;根据所述数据文件的文件大小决定切分数量,根据所述切分数量对所述数据文件进行切分,并得到多个切分片段;由不同的工作线程读取所述多个切分片段,并根据预先创建的目标文件的文件头将读取的所述切分片段写入所述目标文件中对应的写入位置;当发生写入异常时,根据每一个切分片段的写入进度创建对应的元数据文件;当异常修复后并再次连线进行写入时,读取每一切分片段的元数据文件;依据元数据文件所记录的位置开始写入至目标文件中。
Description
技术领域
本申请涉及数据传输的方法及***,具体涉及一种服务器中的数据续传的处理***及方法。
背景技术
随着网络流量的快速成长,许多过去不容易实现的服务也可以被轻易的完成。例如:宽带的上传多媒体文件(multimedia file)。由于海量的传输仍会影响服务器的负荷量。因此在已知的多媒体服务器也会具备带宽管理(Bandwidth Manager)的功能。服务器可以透过带宽分布或缓存等方式减轻同时间的资料传输量。
此外,所述的传输方式更结合了多个实体磁盘,使得数据可以同步的写入所述磁盘中。而现有技术对数据写入磁盘的方式,是将数据同步的由来源端写入服务器中。服务器会暂存这些数据文件。之后,服务器在将这些数据文件分批的写入实体磁盘。
这种写入的方式的实现成本低廉且快速。但是过去的写入方式是将上传的数据文件切分为多个切分片段。在服务器内部将这些切分片段重新组合。过去的写入技术是将每一切分片段写完后,工作线程会将字节流(I/O Stream)关闭。当下一个切分片段要接续写在数据文件后,另一个工作线程才会开启字节流。这样的处理方式虽然可以实现一次性数据写入。但多个工作线程的开关会造成写入的延迟。而且写入的过程中发生错误,会使得当前已经记录完成的数据文件随之毁损。
因此数据重新传输的时间就会拉长,而且也会增加网络带宽的负载。此外,同一份数据文件除了要从客户端中重新载入,而且也要在服务器内部重新传输。
发明内容
本申请所要解决的技术问题在于提供一种服务器中的数据续传的处理方法,在于解决数据文件上载至服务器的异常修复后的文件续传处理,减少网络传输的数据量。
为了解决上述问题,本申请另揭示了一种数据切分的传输方法,包括以下步骤:将所述数据文件放置于所对应的内部队列中;取得所述内部队列中的数据文件并根据所述数据文件的文件大小决定切分数量,根据所述切分数量对所述数据文件进行切分,并得到多个切分片段;由不同的工作线程读取所述多个切分片段,并根据预先创建的目标文件的文件头将读取的所述切分片段写入所述目标文件中对应的写入位置;当发生写入异常时,根据每一个切分片段的写入进度创建对应的元数据文件,其中,所述元数据文件为包括当前写入位置或写入长度的文件;当异常修复后并再次连线进行写入时,读取每一切分片段的元数据文件;依据元数据文件所记录的位置开始写入至目标文件中。
进一步包括所述根据所述切分数量对所述数据文件进行初始切分,得到多个初始切分片段及每个初始切分片段对应的切分点;判断所述切分片段是否位于所述内部队列的尾端;若所述切分点位于所述尾端之后,则延伸切分片段的长度,令所述数据文件的切分位置至所述切分点上;若所述切分点位于所述尾端之前,则减缩切分片段的长度,令所述数据文件的切分位置至所述切分点上。
进一步地包括所述文件头中加入所述切分片段的时间戳、文件长度或校正码。
进一步地所述工作线程是以并行方式把所述切分片段写入所述目标文件中。
为了解决上述问题,本申请另揭示了一种服务器中的数据续传的处理***包括:本地目录,用于接收客户端的数据文件;扫描模块,连接于所述本地目录,监视所述本地目录的所述数据文件是否异动;控制模块,连接于所述扫描模块,所述控制模块包括至少一内部队列,所述内部队列储存 所述数据文件,所述本地目录中的数据文件有异动时,所述扫描模块根据异动的种类的所述数据文件令所述控制模块创建新的所述内部队列或更新已知的所述数据文件的内容;上传模块,连接于所述本地目录,所述本地目录中的数据文件有异动时,所述上传模块根据异动的数据文件的文件种类将所述数据文件指派至对应的所述内部队列;至少一队列监视模块,连接于所述控制模块,所述队列监视模块取得所述内部队列中的数据文件并根据所述数据文件的文件大小决定切分数量,所述队列监视模块根据切分数量对所述数据文件进行切分,用于得到多个切分片段;多个工作线程,连接于所述队列监视模块,每一工作线程读取所述所属的切分片段,所述工作线程根据预先创建的目标文件的文件头将读取的所述切分片段写入所述目标文件中对应的写入位置;其中,当发生写入异常时,根据每一个切分片段的写入进度创建对应的元数据文件,当异常修复后并再次连线进行写入时,所述工作线程读取每一切分片段的元数据文件,所述工作线程依据元数据文件所记录的位置开始写入至目标文件中。
进一步地队列监视模块对所监控的内部队列的数据文件根据先进先出的方式从内部队列中取出数据文件。
进一步地当队列监视模块于切分时确认数据文件的切分位置落于内部队列的尾端,且数据文件的切分点位于尾端之前,则队列监视模块修改数据文件的切分位置至切分点上。
进一步地所述工作线程以并行的方式把所述切分片段写入所述目标文件中。
进一步地包括分散式文件装置,连接于工作线程,工作线程将切分片段依序的写入分散式文件装置中。
进一步包括至少一心跳服务器,心跳服务器连接于控制模块,控制模块向心跳服务器发送心跳要求,心跳服务器向控制模块发送回应讯息。
为了解决上述问题,本申请另揭示了一种服务器中的数据续传的处理装置包括:网络传输模块、内存模块、切分模块与异常处理模块。网络传输模块,用于接收数据文件;内存模块,连接于网络传输模块,预先建立有内部队列,用于将接收的所述数据文件放置于所对应的内部队列中;切分模块, 连接于所述网络传输模块与所述内存模块,所述处理模块根据所述数据文件的文件大小决定切分数量,根据所述切分数量对所述数据文件进行切分,并得到多个切分片段;工作线程模块,用于由不同的工作线程读取所述多个切分片段,并根据预先创建的目标文件的文件头将读取的所述切分片段写入所述目标文件中对应的写入位置;异常处理模块,用于当发生写入异常时,根据每一个切分片段的写入进度创建对应的元数据文件,其中,所述元数据文件为包括当前写入位置或写入长度的文件;所述异常处理模块,还用于当异常修复后并再次连线进行写入时,读取每一切分片段的元数据文件,并依据元数据文件所记录的位置开始写入至目标文件中。
与现有技术相比,本申请可以获得包括以下技术效果:
1)本申请对切分片段的合并可以不需关闭串流写入的动作,所以在切分片段一直开启的状态把新的切分片段合并在文件的尾端。因此可以加快合并切分片段为数据文件的速度。
2)本申请改进数据文件的传输过程,数据文件写入时若发生错误,本申请不需重新从客户端中取得数据文件。
3)本申请若于传输数据文件的期间中发生错误,本申请可以透过至少一台心跳服务器发报给后台,使得后台人员可以实时的得知何项组件发生异常。
当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请实施例的应用***架构示意图。
图2是本申请实施例的运作流程示意图。
图3A是本申请的第一工作线程与第二工作线程的切分片段写入示意 图。
图3B是本申请的第一工作线程与第二工作线程的切分片段写入示意图。
图4是本申请实施例的装置结构示意图。
具体实施方式
以下将配合附图及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。
本申请的服务器中的数据上传***,请参考图1。本申请的传输***包括:本地端110与多台心跳服务器120。而本地端110由以下元件所构成:本地目录111、上传模块112、扫描模块113、控制模块114、队列监视模块115、工作线程116与分散式文件装置117。
本地目录111,接收客户端所发送的数据文件。扫描模块113,连接于本地目录111,扫描模块113监视本地目录的数据文件是否异动。控制模块114,耦接于扫描模块113,控制模块113包括至少一内部队列,每一内部队列储存对应的数据文件的路径资讯,本地目录111的任一数据文件异动时,扫描模块113根据异动的种类的数据文件令控制模块114创建新的内部队列 或更新已知的数据文件的内容。上传模块112,连接于本地目录111,本地目录111的任一数据文件异动时,上传模块112侦测异动的数据文件的文件种类,并根据文件种类将数据文件指派至对应的内部队列。队列监视模块115,连接于控制模块114,队列监视模块115根据内部队列的数量产生对应数量的队列监视模块115,队列监视模块115根据内部队列的数据文件的大小决定数据文件的一切分数量,并根据切分数量对数据文件进行切分;多个工作线程116,连接于队列监视模块115,工作线程116读取相应的所述切分片段。队列监视模115根据目标文件的文件头指派工作线程所对应的目标文件的写入位置,工作线程根据所属的写入位置并以附加处理的方式,把每一工作线程所对应的切分片段写入目标文件。
而本申请所述的各项元件执行以下步骤:
将所述数据文件放置于所对应的内部队列中;
取得所述内部队列中的数据文件并根据所述数据文件的文件大小决定切分数量,根据所述切分数量对所述数据文件进行切分,并得到多个切分片段;
由不同的工作线程读取所述多个切分片段,并根据预先创建的目标文件的文件头将读取的所述切分片段写入所述目标文件中对应的写入位置;
当发生写入异常时,根据每一个切分片段的写入进度创建对应的元数据文件,其中,所述元数据文件为包括当前写入位置或写入长度的文件;
当异常修复后并再次连线进行写入时,读取每一切分片段的元数据文件;以及,
依据元数据文件所记录的位置开始写入至目标文件中。
上传模块112连接于本地目录111与控制模块114。扫描模块113连接于本地目录111与控制模块114。在本申请中为能简单且清楚的说明整体的运作方式,因此设置第一心跳服务器121与第二心跳服务器122。但实际上心跳服务器120的数量可以根据服务器的运行能力、带宽或安全性等因素所决定。
控制模块114连接于扫描模块113、上传模块112、队列监视模块115、 第一心跳服务器121与第二心跳服务器122。每一个本地目录111可以存放不同种类的数据文件。例如:视频文件可以被存放置视频本地目录,而广告文件则放至于广告本地目录中。一般而言,本地目录111会定时的接收客户端所传送过来的数据文件。扫描模块113监视本地目录111中的文件是否有所异动。所述文件异动指的是数据的新增、搬移、修改或删除。当本地目录111中的文件有所异动时,则上传模块112将会把异动的数据文件在服务器中的路径传递至控制模块114。
此外,上传模块112侦测本地目录111所异动的数据文件的文件种类。广义而言所述文件种类可能是音频文件、影片文件或文字文件等等。进一步而言,音频文件又可能细分为mp3、m4a、AAC或ARM等;影片文件又可细分为mov、flv、m4v、mkv或mp4等。
若控制模块114中未存在数据文件的种类的内部队列时,上传模块会驱动控制模块114生成新的内部队列。尔后,若有同一种类的数据文件被载入,上传模块112会将新载入的数据文件放入对应的内部队列中。
控制模块114会根据所接收到的文件路径依次分类并产生各自对应的内部队列,且不同的内部队列会指派不同的队列监视模块115来进行处理。为能区分内部队列与其他组件所处理的数据,在此对内部队列所处理的数据定义为伫列数据。每一个队列监视模块115会记录所属的文件的切分资讯。所述的切分资讯指的是文件被上传至本地目录111时,文件长度也会随之异动。
队列监视模块115对文件进行等长的切分。在完成文件的切分后,每一个文件切分的片段则定义为切分片段(slice)。队列监视模块115侦测所属的内部队列的堆叠数量超过上限时,队列监视模块115会向第一心跳服务器121与第二心跳服务器122发出报警要求。
而切分片段的数量是可以根据本地端110的性能所决定。例如:1个工作线程116可处理50兆的切分片段,那么一个200兆的数据文件分配给4个工作线程116处理。同理,500兆的数据文件,可以分配给10个工作线程116处理。
对于切分时所记录的相关资讯则称为切分资讯。例如,切分时的每一个切分长度与文件位置的在磁盘中的偏移量(offset)。扫描模块113发现本地目 录111中的数据文件被删除时,扫描模块113会把控制模块114中的对应内部队列予以删除。
接着,不同的切分片段会被指派各自对应的工作线程116,作为读取本地目录111的数据文件。工作线程116的实现可以由不同的程序语言所实现。在本申请中并不局限程序语言的种类,例如,JAVA语言或ASP语言。实际上,队列监视模块115是对本地目录111的数据文件进行切分的估算,用以得到所述数据文件的每一个应所述要被切分的位置。
而实际上进行文件切分处理的对象是由队列监视模块115所实现。队列监视模块115接获切分片段后会根据切分片段的长度,交由所述工作线程116所属的部分数据文件。工作线程116在把所述部分的数据文件写入分散式文件装置117中。
工作线程116在写入的过程中发生错误时。工作线程116会发送报警信息给第一心跳服务器121与第二心跳服务器122。所述工作线程116同时间也会通知其他工作线程116,要求其他工作线程116停止对分散式文件装置117的写入处理,藉以避免分散式文件装置117中的数据完整性。
在切分片段写入分散式文件装置117的过程中,本申请的工作线程除了会读取对应的切分片段并根据写入的顺序调整数据文件,而所述的处理过程请配合图2所示:
步骤S200:将数据文件上传至本地目录;
步骤S210:由控制模块将数据文件放置于内部队列中;
步骤S220:队列监视模块取得内部队列中的数据文件并根据数据文件的文件大小决定切分数量;
步骤S230:队列监视模块根据切分数量对数据文件进行切分,并得到多个切分片段;
步骤S240:配置多个工作线程,每一工作线程读取所属的切分片段;
步骤S250:判断分散式文件装置中是否存在目标文件;
步骤S260:若分散式文件装置中不存在目标文件,在分散式文件装置中创建目标文件;
步骤S270:若分散式文件装置中存在目标文件,伫列监视模根据目标文件的文件头指派工作线程所对应的目标文件的写入位置;
步骤S280:当异常发生时,根据每一个切分片段的写入进度创建对应的元数据文件;
步骤S290:当异常恢复之后,读取每一切分片段的元数据文件;以及
步骤S300:依据元数据文件所记录的位置开始写入至目标文件中。
本地目录111除了接收来自于客户端的数据文件外,本地目录111中的数据文件也可能会被修改、搬移或删除等异动。队列监视模块115会实时的侦测本地目录111中的数据文件是否有异动。当数据文件异动时,队列监视模块115会向上传模块112发出数据文件异动的讯息。
当有新的数据文件存入本地目录111时,扫描模块113会令控制模块建立新的内部队列,并将数据文件存入新的内部队列。一般而言,内部队列的数量限制取决于服务器的运行能力。但若是有过多的数据文件新创,可能会发生内部队列堆叠的问题。一旦有过量的数据文件被创建,则扫描模块113会透过控制模块114向心跳服务器发出心跳要求。
当现有的数据文件的内容有所异动时,扫描模块113会将变更后的数据文件再次存入内部队列中。若是本地目录111删除数据文件时,则扫描模块113会要求控制模块114将对应的数据文件的内部队列进行删除。
上传模块112侦测本地目录111所异动的数据文件的文件种类。上传模块112根据文件种类是否存在,上传模块112要求控制模块113创建新的内部队列或把数据文件放入对应的内部队列中。上传模块112接获数据文件异动的讯息后,上传模块112会重新取得数据文件的路径名称并将路径名称储存至内部队列中。对于不同的数据文件会设置唯一的内部队列。当本地目录111储存大量的数据文件时,控制模块114中的内部队列的数量也会快速的成长。
由于过多的内部队列会造成过量的堆叠,会使得后续的工作线程116无法即时的处理完所述数据文件。因此本申请会监控内部队列的服务量是否超 过设定的压力阀值。当服务量超过压力阀值时,控制模块114会向第一心跳服务器121或第二心跳服务器122发出报警要求。根据切分片段的数量产生相应的工作线程116。每一个工作线程116根据各自的切分片段的起始位置与偏移量取得数据文件的部分片段。
队列监视模块115把切分片段转由工作线程116开始读取。工作线程116把取得的片段写入分散式文件装置117中。为清楚说明本申请的过程在此对以下元件做进一步的定义:读取两相依的切分片段的工作线程分别定义为第一工作线程与第二工作线程。在此是为能方便说明所以仅以两个工作线程作为说明,但实际上工作线程的数量并不局限于此。此外为能区别数据文件与分散式文件装置117的文件,因此在合并后的数据文件定义为目标文件。
请参考图3A与图3B,分别为本申请的第一工作线程与第二工作线程的切分片段写入示意图。于写入的过程中会创建目标文件时,队列监视模块115会先根据数据文件创建一个关于各切分片段写入顺序的文件头。每一个工作线程可以根据文件头所记载的文件长度把切分片段填入对应的位置上。本申请中的属于同一群组的多个工作线程116在写入同一目标文件的方式是并行写入的。而后续的切分片段在写入时会利用附加处理(append)的方式写入目标文件。由于附加处理时不需关闭串流,因此其他工作线116程不需等待即可并行的处理。
举例来说,欲写入的数据文件为视频文件,而每一个切分片段是10分钟的长度。将原来每10分钟切分片段写入的开始写入目标文件并进行合并。第一工作线程与第二工作线程在取得文件头后,第一工作线程与第二工作线程会并行的写入目标文件中。而写入目标文件的过程中由于网络不稳定、人为操作或机器毁损等因素造成目标文件写入中断。
本申请在***发生异常时,工作线程116会将切分片段所写入的进度记录在元数据文件(meta data)中。***异常的种类包括网络中断、机器休眠所导致中断或数据传输异常。而元数据文件会被记录在本地端110中。对于每一个工作线116程而言,会创建自己所属的元数据文件。举例来说,本地端110中有10个工作线程116正在把切分片段写入至目标文件中。若于此时发 生网络断线,则每一工作线程116会将目前切分片段的写入位置记录下来。在图3A中的三角形所指处是其中一个工作线程116的写入位置。在图3B中的三角形所指处是另一个工作线程116所写入位置。不同的工作线程116所写入的速度有所差异,因此写入位置也会不一样。所以在本申请中会对所有正在写入的工作线程116创建相应的元数据文件。
本申请除了前述的实施例外,也可以透过实体的硬件进行前述模块的相关处理。请配合图4,在本实施例的处理装置包括:网络传输模块410、内存模块420、切分模块430、工作线程模块440、异常处理模块450与分散式文件装置460。
网络传输模块410,用于接收数据文件;
内存模块420,连接于网络传输模块410,预先建立有内部队列,用于将接收的所述数据文件放置于所对应的内部队列中;
切分模块430,连接于所述网络传输模块410与所述内存模块420,所述切分模块430根据所述数据文件的文件大小决定切分数量,根据所述切分数量对所述数据文件进行切分,并得到多个切分片段;
工作线程模块440,用于由不同的工作线程读取所述多个切分片段,并根据预先创建的目标文件的文件头将读取的所述切分片段写入所述目标文件中对应的写入位置;
异常处理模块450,用于当发生写入异常时,根据每一个切分片段的写入进度创建对应的元数据文件,其中,所述元数据文件为包括当前写入位置或写入长度的文件;
所述异常处理模块450,还用于当异常修复后并再次连线进行写入时,读取每一切分片段的元数据文件,并依据元数据文件所记录的位置开始写入至目标文件中。
进一步地,工作线程模块440包括多个工作线程,所述工作线程是以并行方式把所述切分片段写入所述目标文件中。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者***中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种服务器中的数据续传的处理方法,其特征在于,包括以下步骤:
将所述数据文件放置于所对应的内部队列中;
取得所述内部队列中的数据文件并根据所述数据文件的文件大小决定切分数量,根据所述切分数量对所述数据文件进行切分,并得到多个切分片段;
由不同的工作线程读取所述多个切分片段,并根据预先创建的目标文件的文件头将读取的所述切分片段写入所述目标文件中对应的写入位置;
当发生写入异常时,根据每一个切分片段的写入进度创建对应的元数据文件,其中,所述元数据文件为包括当前写入位置或写入长度的文件;
当异常修复后并再次连线进行写入时,读取每一切分片段的元数据文件;以及
依据元数据文件所记录的位置开始写入至目标文件中。
2.如权利要求1所述的服务器中的数据续传的处理方法,其特征在于,所述根据所述切分数量对所述数据文件进行切分,并得到多个切分片段进一步包括:
所述根据所述切分数量对所述数据文件进行初始切分,得到多个初始切分片段及每个初始切分片段对应的切分点;
判断所述切分片段是否位于所述内部队列的尾端;
若所述切分点位于所述尾端之后,则延伸切分片段的长度,令所述数据文件的切分位置至所述切分点上;以及
若所述切分点位于所述尾端之前,则减缩切分片段的长度,令所述数据文件的切分位置至所述切分点上。
3.如权利要求1所述的服务器中的数据续传的处理方法,其特征在于,所述文件头中加入所述切分片段的时间戳和/或文件长度和/或校正码。
4.如权利要求1所述的服务器中的数据续传的处理方法,其特征在于,所述工作线程是以并行方式把所述切分片段写入所述目标文件中。
5.一种服务器中的数据续传的处理***,其特征在于,包括:
本地目录,用于接收客户端的数据文件;
扫描模块,连接于所述本地目录,监视所述本地目录的所述数据文件是否异动;
控制模块,连接于所述扫描模块,所述控制模块包括至少一内部队列,所述内部队列储存所述数据文件,所述本地目录中的数据文件有异动时,所述扫描模块根据异动的种类的所述数据文件令所述控制模块创建新的所述内部队列或更新已知的所述数据文件的内容;
上传模块,连接于所述本地目录,所述本地目录中的数据文件有异动时,所述上传模块根据异动的数据文件的文件种类将所述数据文件指派至对应的所述内部队列;
至少一队列监视模块,连接于所述控制模块,所述队列监视模块取得所述内部队列中的数据文件并根据所述数据文件的文件大小决定切分数量,所述队列监视模块根据切分数量对所述数据文件进行切分,用于得到多个切分片段;以及
多个工作线程,连接于所述队列监视模块,每一工作线程读取所述所属的切分片段,所述工作线程根据预先创建的目标文件的文件头将读取的所述切分片段写入所述目标文件中对应的写入位置;
其中,当发生写入异常时,根据每一个切分片段的写入进度创建对应的元数据文件,当异常修复后并再次连线进行写入时,所述工作线程读取每一切分片段的元数据文件,所述工作线程依据元数据文件所记录的位置开始写入至目标文件中。
6.如权利要求5所述的服务器中的数据续传的处理***,其特征在于,所述队列监视模块对所监控的所述内部队列的所述数据文件根据先进先出的方式从所述内部队列中取出所述数据文件。
7.如权利要求5所述的服务器中的数据续传的处理***,其特征在于,切分所述数据文件为切分片段时,所述队列监视模块判断所述切分片段是否位于所述内部队列的尾端:若所述切分点位于所述尾端之后,则延伸切分片段的长度,令所述数据文件的切分位置至所述切分点上;若所述切分点位于所述尾端之前,则减缩切分片段的长度,令所述数据文件的切分位置至所述切分点上。
8.如权利要求5所述的服务器中的数据续传的处理***,其特征在于,进一步所述工作线程以并行的方式把所述切分片段写入所述分散式文件装置中的目标文件。
9.一种服务器中的数据续传的处理装置,其特征在于,包括:
网络传输模块,用于接收数据文件;
内存模块,连接于网络传输模块,预先建立有内部队列,用于将接收的所述数据文件放置于所对应的内部队列中;
切分模块,连接于所述网络传输模块与所述内存模块,所述切分模块根据所述数据文件的文件大小决定切分数量,根据所述切分数量对所述数据文件进行切分,并得到多个切分片段;
工作线程模块,用于由不同的工作线程读取所述多个切分片段,并根据预先创建的目标文件的文件头将读取的所述切分片段写入所述目标文件中对应的写入位置;以及
异常处理模块,用于当发生写入异常时,根据每一个切分片段的写入进度创建对应的元数据文件,其中,所述元数据文件为包括当前写入位置或写入长度的文件;
所述异常处理模块,还用于当异常修复后并再次连线进行写入时,读取每一切分片段的元数据文件,并依据元数据文件所记录的位置开始写入至目标文件中。
10.如权利要求9所述的服务器中的数据续传的处理装置,其特征在于,工作线程模块包括多个工作线程,所述工作线程是以并行方式把所述切分片段写入所述目标文件中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310741808.0A CN103701907A (zh) | 2013-12-27 | 2013-12-27 | 服务器中的数据续传的处理方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310741808.0A CN103701907A (zh) | 2013-12-27 | 2013-12-27 | 服务器中的数据续传的处理方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103701907A true CN103701907A (zh) | 2014-04-02 |
Family
ID=50363301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310741808.0A Pending CN103701907A (zh) | 2013-12-27 | 2013-12-27 | 服务器中的数据续传的处理方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103701907A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105763578A (zh) * | 2014-12-15 | 2016-07-13 | ***通信集团广东有限公司 | 一种图片处理方法及装置 |
CN106021565A (zh) * | 2016-05-31 | 2016-10-12 | 成都索贝数码科技股份有限公司 | Op1a和Op1b格式的MXF文件的续写方法 |
CN106020733A (zh) * | 2016-05-31 | 2016-10-12 | 成都索贝数码科技股份有限公司 | Op atom格式的MXF文件的续写方法 |
CN106055643A (zh) * | 2016-05-31 | 2016-10-26 | 成都索贝数码科技股份有限公司 | Mxf文件写入中断的续写方法 |
CN106156049A (zh) * | 2015-03-27 | 2016-11-23 | 天脉聚源(北京)科技有限公司 | 一种数据读取的方法和*** |
CN110764951A (zh) * | 2018-07-26 | 2020-02-07 | 宏碁股份有限公司 | 电脑***及映像文件的容错处理方法 |
CN111831625A (zh) * | 2020-07-14 | 2020-10-27 | 深圳力维智联技术有限公司 | 数据迁移方法、数据迁移装置和可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010007565A1 (en) * | 2000-01-05 | 2001-07-12 | Chih-Hsien Weng | Packet receiving method on a network with parallel and multiplexing capability |
CN102456076A (zh) * | 2011-11-23 | 2012-05-16 | 北京安天电子设备有限公司 | 海量片段数据汇聚的***和方法 |
CN102567443A (zh) * | 2011-10-25 | 2012-07-11 | 无锡城市云计算中心有限公司 | 一种分布式文件***数据分片换段的方法 |
CN102761614A (zh) * | 2012-06-29 | 2012-10-31 | 浪潮(北京)电子信息产业有限公司 | 一种实现网络数据传输断点续传的方法及*** |
CN103092840A (zh) * | 2011-10-28 | 2013-05-08 | 上海邮电设计咨询研究院有限公司 | 多源自增海量数据文件实时采集方法 |
-
2013
- 2013-12-27 CN CN201310741808.0A patent/CN103701907A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010007565A1 (en) * | 2000-01-05 | 2001-07-12 | Chih-Hsien Weng | Packet receiving method on a network with parallel and multiplexing capability |
CN102567443A (zh) * | 2011-10-25 | 2012-07-11 | 无锡城市云计算中心有限公司 | 一种分布式文件***数据分片换段的方法 |
CN103092840A (zh) * | 2011-10-28 | 2013-05-08 | 上海邮电设计咨询研究院有限公司 | 多源自增海量数据文件实时采集方法 |
CN102456076A (zh) * | 2011-11-23 | 2012-05-16 | 北京安天电子设备有限公司 | 海量片段数据汇聚的***和方法 |
CN102761614A (zh) * | 2012-06-29 | 2012-10-31 | 浪潮(北京)电子信息产业有限公司 | 一种实现网络数据传输断点续传的方法及*** |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105763578A (zh) * | 2014-12-15 | 2016-07-13 | ***通信集团广东有限公司 | 一种图片处理方法及装置 |
CN105763578B (zh) * | 2014-12-15 | 2019-05-28 | ***通信集团广东有限公司 | 一种图片处理方法及装置 |
CN106156049A (zh) * | 2015-03-27 | 2016-11-23 | 天脉聚源(北京)科技有限公司 | 一种数据读取的方法和*** |
CN106020733B (zh) * | 2016-05-31 | 2019-12-13 | 成都索贝数码科技股份有限公司 | Op atom格式的MXF文件的续写方法 |
CN106055643A (zh) * | 2016-05-31 | 2016-10-26 | 成都索贝数码科技股份有限公司 | Mxf文件写入中断的续写方法 |
CN106020733A (zh) * | 2016-05-31 | 2016-10-12 | 成都索贝数码科技股份有限公司 | Op atom格式的MXF文件的续写方法 |
CN106021565A (zh) * | 2016-05-31 | 2016-10-12 | 成都索贝数码科技股份有限公司 | Op1a和Op1b格式的MXF文件的续写方法 |
CN106055643B (zh) * | 2016-05-31 | 2019-12-13 | 成都索贝数码科技股份有限公司 | Mxf文件写入中断的续写方法 |
CN106021565B (zh) * | 2016-05-31 | 2019-12-13 | 成都索贝数码科技股份有限公司 | Op1a和Op1b格式的MXF文件的续写方法 |
CN110764951A (zh) * | 2018-07-26 | 2020-02-07 | 宏碁股份有限公司 | 电脑***及映像文件的容错处理方法 |
CN110764951B (zh) * | 2018-07-26 | 2023-04-07 | 宏碁股份有限公司 | 电脑***及映像文件的容错处理方法 |
CN111831625A (zh) * | 2020-07-14 | 2020-10-27 | 深圳力维智联技术有限公司 | 数据迁移方法、数据迁移装置和可读存储介质 |
CN111831625B (zh) * | 2020-07-14 | 2024-03-12 | 深圳力维智联技术有限公司 | 数据迁移方法、数据迁移装置和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103701907A (zh) | 服务器中的数据续传的处理方法及*** | |
US9792344B2 (en) | Asynchronous namespace maintenance | |
CN110019240B (zh) | 一种业务数据交互方法、装置及*** | |
CN102567138B (zh) | 计算环境中按优先顺序排列要备份的数据项的方法和*** | |
US20160378613A1 (en) | Virtual Machine Snapshot Backup Based on Multilayer De-duplication | |
US10917260B1 (en) | Data management across cloud storage providers | |
CN103699495A (zh) | 数据切分的传输装置与*** | |
US11188423B2 (en) | Data processing apparatus and method | |
CN104735110A (zh) | 元数据管理方法和*** | |
TWI709865B (zh) | 運維數據讀取裝置及其讀取方法 | |
EP3285186A1 (en) | Methods and procedures for timestamp-based indexing of items in real-time storage | |
US20230421822A1 (en) | Content boundary based recordings | |
US8683121B2 (en) | Storage system | |
CN103678699A (zh) | 服务器中的数据合并方法及*** | |
US20220279235A1 (en) | Caching recorded content segments on playback | |
US10248706B2 (en) | Replicating database updates with batching | |
US12014045B2 (en) | Creation and use of an efficiency set to estimate an amount of data stored in a data set of a storage system having one or more characteristics | |
CN103701667A (zh) | 服务器的心跳的监控方法、装置及*** | |
CN103685559A (zh) | 服务器中的数据处理方法及*** | |
CN103699666A (zh) | 数据切分的传输方法及装置 | |
CN103684929A (zh) | 服务器状态的监控***及方法 | |
US11474948B2 (en) | Adaptive retrieval of objects from remote storage | |
CN103701719A (zh) | 服务器中的数据队列的更新方法及*** | |
CN103684873A (zh) | 轮询心跳的监控方法、装置及*** | |
US20230177011A1 (en) | Adaptively providing uncompressed and compressed data chunks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20151228 Address after: Room six, building 19, building 68, No. 100089 South Road, Haidian District, Beijing Applicant after: LETV CLOUD COMPUTING CO., LTD. Address before: Room six, building 19, building 68, No. 100089 South Road, Haidian District, Beijing Applicant before: LeTV Information Technology (Beijing) Co., Ltd. |
|
AD01 | Patent right deemed abandoned | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20180105 |