CN104967619B - 文件推送方法、装置和系统 - Google Patents

文件推送方法、装置和系统 Download PDF

Info

Publication number
CN104967619B
CN104967619B CN201510336360.3A CN201510336360A CN104967619B CN 104967619 B CN104967619 B CN 104967619B CN 201510336360 A CN201510336360 A CN 201510336360A CN 104967619 B CN104967619 B CN 104967619B
Authority
CN
China
Prior art keywords
node
push
subfile
task
data file
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.)
Active
Application number
CN201510336360.3A
Other languages
English (en)
Other versions
CN104967619A (zh
Inventor
罗如海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Tencent Computer Systems Co Ltd
Original Assignee
Shenzhen Tencent Computer Systems Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Tencent Computer Systems Co Ltd filed Critical Shenzhen Tencent Computer Systems Co Ltd
Priority to CN201510336360.3A priority Critical patent/CN104967619B/zh
Publication of CN104967619A publication Critical patent/CN104967619A/zh
Priority to PCT/CN2016/081652 priority patent/WO2016202123A1/zh
Priority to US15/663,494 priority patent/US10805363B2/en
Application granted granted Critical
Publication of CN104967619B publication Critical patent/CN104967619B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/402Support for services or applications wherein the services involve a main real-time session and one or more additional parallel non-real time sessions, e.g. downloading a file in a parallel FTP session, initiating an email or combinational services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/402Support for services or applications wherein the services involve a main real-time session and one or more additional parallel non-real time sessions, e.g. downloading a file in a parallel FTP session, initiating an email or combinational services
    • H04L65/4025Support for services or applications wherein the services involve a main real-time session and one or more additional parallel non-real time sessions, e.g. downloading a file in a parallel FTP session, initiating an email or combinational services where none of the additional parallel sessions is real time or time sensitive, e.g. downloading a file in a parallel FTP session, initiating an email or combinational services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/4061Push-to services, e.g. push-to-talk or push-to-video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种文件推送方法、装置和系统,属于网络技术领域。该方法包括:将数据文件拆分为多个子文件;并行地将该多个子文件上传至文件存储节点;在协调节点中添加与该多个子文件对应的推送任务,使得该从推送节点从该文件存储节点中并行地下载该多个子文件,对下载到的多个子文件进行合并,在接收到主推送节点的调度指令时,向该目的节点推送合并得到的数据文件。本发明缩短了上传该数据文件所耗费的时间,也缩短了下载该数据文件所耗费的时间,提高了推送效率。

Description

文件推送方法、装置和系统
技术领域
本发明涉及网络技术领域,特别涉及一种文件推送方法、装置和系统。
背景技术
随着互联网技术的迅速发展,网络系统的数据规模越来越大,生成的数据文件越来越多,当生成了新的数据文件时,如何快速地将生成的数据文件推送至需要应用该数据文件的目的节点已成为亟待解决的问题。
目前的网络系统中,当客户端获取到数据文件时,将该数据文件上传至文件存储节点,上传完成后,向协调节点提交一个推送任务,协调节点可以根据该推送任务,确定该推送任务对应的目的节点,即为该数据文件的目的节点。从推送节点监控协调节点中的任务,当检测到协调节点中添加了该推送任务时,确定该数据文件的目的节点,并从文件存储节点中下载该数据文件,下载完成后,进入下载就绪状态,等待主推送节点的调度指令。而主推送节点检测到协调节点中添加了该推送任务时,确定该数据文件的目的节点,判断目的节点是否处于空闲状态,当主推送节点确定目的节点处于空闲状态,且从推送节点处于下载就绪状态时,向从推送节点发送调度指令,从推送节点接收到该调度指令时,向目的节点推送该数据文件。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
客户端将该数据文件上传至文件存储节点时,需要耗费很长时间,从推送节点从文件存储节点中下载该数据文件时,也需要耗费很长时间。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种文件推送方法、装置和系统。所述技术方案如下:
第一方面,提供了一种文件推送方法,所述方法包括:
将待推送的数据文件拆分为多个子文件;
并行地将所述多个子文件上传至文件存储节点;
在协调节点中添加与所述多个子文件对应的推送任务,使得所述协调节点根据所述推送任务,确定所述数据文件的目的节点,当所述从推送节点检测到所述协调节点中添加了所述推送任务时,确定所述数据文件的目的节点,从所述文件存储节点中,并行地下载所述多个子文件,对下载到的多个子文件进行合并,在接收到主推送节点的调度指令时,向所述目的节点推送合并得到的数据文件。
第二方面,提供了一种文件推送方法,所述方法包括:
监控协调节点中的任务;
当检测到所述协调节点中添加了推送任务时,确定所述推送任务对应的目的节点;
从文件存储节点中,并行地下载所述推送任务对应的多个子文件,所述多个子文件由客户端对待推送的数据文件进行拆分得到;
对当前下载到的多个子文件进行合并;
当接收到主推送节点的调度指令时,向所述目的节点推送当前合并得到的数据文件。
第三方面,提供了一种文件推送方法,所述方法包括:
监控协调节点中的任务;
当检测到所述协调节点中添加了推送任务时,确定所述推送任务对应的目的节点;
判断所述目的节点是否处于空闲状态;
当确定所述目的节点处于空闲状态时,在未确定从推送节点的下载进度的前提下,向所述从推送节点发送调度指令,所述从推送节点用于并行地下载所述推送任务对应的多个子文件,对当前下载到的多个子文件进行合并,当接收到所述调度指令时,获取当前合并得到的数据文件,向所述目的节点推送当前合并得到的数据文件。
第四方面,提供了一种文件推送装置,所述装置包括:
拆分模块,用于将待推送的数据文件拆分为多个子文件;
并行上传模块,用于并行地将所述多个子文件上传至文件存储节点;
任务添加模块,用于在协调节点中添加与所述多个子文件对应的推送任务,使得所述协调节点根据所述推送任务,确定所述数据文件的目的节点,当所述从推送节点检测到所述协调节点中添加了所述推送任务时,确定所述数据文件的目的节点,从所述文件存储节点中,并行地下载所述多个子文件,对下载到的多个子文件进行合并,在接收到主推送节点的调度指令时,向所述目的节点推送合并得到的数据文件。
第五方面,提供了一种文件推送装置,所述装置包括:
监控模块,用于监控协调节点中的任务;
确定模块,用于当检测到所述协调节点中添加了推送任务时,确定所述推送任务对应的目的节点;
并行下载模块,用于从文件存储节点中,并行地下载所述推送任务对应的多个子文件,所述多个子文件由客户端对待推送的数据文件进行拆分得到;
合并模块,用于对当前下载到的多个子文件进行合并;
推送模块,用于当接收到主推送节点的调度指令时,向所述目的节点推送当前合并得到的数据文件。
第六方面,提供了一种文件推送装置,所述装置包括:
监控模块,用于监控协调节点中的任务;
确定模块,用于当检测到所述协调节点中添加了推送任务时,确定所述推送任务对应的目的节点;
判断模块,用于判断所述目的节点是否处于空闲状态;
发送模块,用于当确定所述目的节点处于空闲状态时,在未确定从推送节点的下载进度的前提下,向所述从推送节点发送调度指令,所述从推送节点用于并行地下载所述推送任务对应的多个子文件,对当前下载到的多个子文件进行合并,当接收到所述调度指令时,获取当前合并得到的数据文件,向所述目的节点推送当前合并得到的数据文件。
第七方面,提供了一种文件推送系统,所述系统包括:客户端、主推送节点、从推送节点、文件存储节点、协调节点和目的节点;
所述客户端用于将待推送的数据文件拆分为多个子文件;并行地将所述多个子文件上传至所述文件存储节点;在协调节点中添加与所述多个子文件对应的推送任务;
所述从推送节点用于监控所述协调节点中的任务;当检测到所述协调节点中添加了推送任务时,确定所述推送任务对应的目的节点;从所述文件存储节点中,并行地下载所述多个子文件,对当前下载到的多个子文件进行合并;
所述主推送节点用于监控所述协调节点中的任务;当检测到所述协调节点中添加了推送任务时,确定所述推送任务对应的目的节点;判断所述目的节点是否处于空闲状态;当确定所述目的节点处于空闲状态时,在未确定所述从推送节点的下载进度的前提下,向所述从推送节点发送调度指令;
所述从推送节点还用于当接收到所述调度指令时,向所述目的节点推送当前合并得到的数据文件。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例提供的方法、装置和系统,通过客户端要将数据文件推送至目的节点时,先将数据文件拆分为多个子文件,并行地将该多个子文件上传至文件存储节点,缩短了上传该数据文件所耗费的时间,且在协调节点中添加推送任务,使得从推送节点能够根据该推送任务,从文件存储节点中,并行地下载多个子文件,也缩短了下载该数据文件所耗费的时间,提高了推送效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种文件推送系统的结构示意图;
图2是本发明实施例提供的一种文件推送方法的流程图;
图3是本发明实施例提供的一种文件推送方法的流程图;
图4是本发明实施例提供的一种文件推送方法的流程图;
图5是本发明实施例提供的一种文件推送方法的流程图;
图6A是本发明实施例提供的客户端的处理流程示意图;
图6B是本发明实施例提供的从推送节点的处理流程示意图;
图6C是本发明实施例提供的交互时序示意图;
图7是本发明实施例提供的一种文件推送装置结构示意图;
图8是本发明实施例提供的一种文件推送装置结构示意图;
图9是本发明实施例提供的一种文件推送装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的一种文件推送系统的结构示意图,参见图1,该文件系统包括:客户端101、主推送节点102、从推送节点103、文件存储节点104、协调节点105和目的节点106。该客户端101分别与该文件存储节点104和该协调节点105连接,且该协调节点105分别与该主推送节点102和该从推送节点103连接,该主推送节点102与该从推送节点103连接,且该主推送节点102和该从推送节点103均与该目的节点106连接。
对于一个数据文件来说,该客户端101用于将数据文件上传至该文件存储节点104,并在协调节点105提交与该数据文件对应的推送任务,该主推送节点102和该从推送节点103用于监控该协调节点105中的任务,该主推送节点102还用于监控目的节点106的运行状态,当该主推送节点102检测到该协调节点中添加了推送任务且该目的节点106处于空闲状态时,对该从推送节点103进行调度。该从推送节点103用于检测到协调节点中添加了该推送任务时,从该文件存储节点104下载该数据文件,根据该主推送节点102的调度,向目的节点106推送该数据文件。
本发明实施例中,该客户端101用于将待推送的数据文件拆分为多个子文件,并行地将该多个子文件上传至该文件存储节点104;在协调节点105中添加与该多个子文件对应的推送任务;
该从推送节点103用于监控该协调节点105中的任务;当检测到该协调节点105中添加了推送任务时,确定该推送任务对应的目的节点106;从该文件存储节点104中,并行地下载该推送任务对应的多个子文件,对当前下载到的多个子文件进行合并;
该主推送节点102用于监控该协调节点105中的任务;当检测到该协调节点105中添加了推送任务时,确定该推送任务对应的目的节点106;判断该目的节点106是否处于空闲状态;当确定该目的节点106处于空闲状态时,在未确定该从推送节点103的状态的前提下,向该从推送节点103发送调度指令;
该从推送节点103还用于当接收到该调度指令时,向该目的节点106推送当前合并得到的数据文件。
需要说明的是,本发明实施例中的文件存储节点可以为一个文件存储节点,也可以为包括多个文件存储节点的文件存储节点集群,本发明实施例中的协调节点可以为一个协调节点,也可以为包括多个协调节点的协调节点集群,本发明实施例对此不做限定。
可选地,该客户端101还用于并行地将该多个子文件上传至该文件存储节点104的指定目录下。该从推送节点103还用于从该指定目录,并行地下载该多个子文件。
可选地,该客户端101还用于为该多个子文件中的每个子文件创建子上传任务,每个子上传任务包含对应子文件的名称;根据创建的多个子上传任务,并行地将该多个子文件上传至文件存储节点104。
可选地,该多个子文件中的每个子文件包括顺序标识,该顺序标识用于表示对应子文件在该数据文件中的顺序。
该从推送节点103还用于根据当前下载到的多个子文件的顺序标识,对当前下载到的多个子文件进行合并。
可选地,该从推送节点103还用于如果在该数据文件的子文件还未全部下载完成的情况下,接收到该调度指令,则在向该目的节点106推送当前合并得到的数据文件的同时,继续下载剩余的子文件。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图2是本发明实施例提供的一种文件推送方法的流程图。该发明实施例的执行主体为客户端,参见图2,该方法包括:
201、将待推送的数据文件拆分为多个子文件。
202、并行地将该多个子文件上传至文件存储节点。
203、在协调节点中添加与该多个子文件对应的推送任务,使得该协调节点根据该推送任务,确定该数据文件的目的节点,当该从推送节点检测到该协调节点中添加了该推送任务时,确定该数据文件的目的节点,从该文件存储节点中,并行地下载该多个子文件,对下载到的多个子文件进行合并,在接收到主推送节点的调度指令时,向该目的节点推送合并得到的数据文件。
本发明实施例提供的方法,通过客户端要将数据文件推送至目的节点时,先将数据文件拆分为多个子文件,并行地将该多个子文件上传至文件存储节点,缩短了上传该数据文件所耗费的时间,且在协调节点中添加推送任务,使得从推送节点检测到该协调节点中添加了该推送任务时,能够从文件存储节点中,并行地下载多个子文件,也缩短了下载该数据文件所耗费的时间,提高了推送效率。
可选地,并行地将该多个子文件上传至文件存储节点,包括:
并行地将该多个子文件上传至该文件存储节点的指定目录下,使得该从推送节点从该指定目录,并行地下载该多个子文件。
可选地,该并行地将该多个子文件上传至文件存储节点,包括:
为该多个子文件中的每个子文件创建子上传任务,每个子上传任务包含对应子文件的名称;
根据创建的多个子上传任务,并行地将该多个子文件上传至文件存储节点。
可选地,该多个子文件中的每个子文件包括顺序标识,该顺序标识用于表示对应子文件在该数据文件中的顺序。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图3是本发明实施例提供的一种文件推送方法的流程图。该发明实施例的执行主体为从推送节点,参见图3,该方法包括:
301、监控协调节点中的任务。
302、当检测到该协调节点中添加了推送任务时,确定该推送任务对应的目的节点。
303、从文件存储节点中,并行地下载该推送任务对应的多个子文件,该多个子文件由客户端对待推送的数据文件进行拆分得到。
304、对当前下载到的多个子文件进行合并。
305、当接收到主推送节点的调度指令时,向该目的节点推送当前合并得到的数据文件。
本发明实施例提供的方法,通过客户端要将数据文件推送至目的节点时,先将数据文件拆分为多个子文件,并行地将该多个子文件上传至文件存储节点,缩短了上传该数据文件所耗费的时间,且在协调节点中添加推送任务,使得从推送节点检测到该协调节点中添加了该推送任务时,能够从文件存储节点中,并行地下载多个子文件,也缩短了下载该数据文件所耗费的时间,提高了推送效率。
可选地,该方法还包括:
如果在该数据文件的子文件还未全部下载完成的情况下,接收到该调度指令,则在向该目的节点推送当前合并得到的数据文件的同时,继续下载剩余的子文件。
可选地,该从文件存储节点中,并行地下载该推送任务对应的多个子文件,包括:
获取该推送任务中包含的文件路径;
当该文件路径为该文件存储节点中的指定目录时,从该文件存储节点的指定目录中,并行地下载该多个子文件。
可选地,该多个子文件中的每个子文件包括顺序标识,该顺序标识用于表示对应子文件在该数据文件中的顺序;该对当前下载到的多个子文件进行合并,包括:
根据当前下载到的多个子文件的顺序标识,对当前下载到的多个子文件进行合并。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图4是本发明实施例提供的一种文件推送方法的流程图。该发明实施例的执行主体为主推送节点,参见图4,该方法包括:
401、监控协调节点中的任务。
402、当检测到该协调节点中添加了推送任务时,确定该推送任务对应的目的节点。
403、判断该目的节点是否处于空闲状态。
404、当确定该目的节点处于空闲状态时,在未确定从推送节点的下载进度的前提下,向该从推送节点发送调度指令,该从推送节点用于并行地下载该推送任务对应的多个子文件,对当前下载到的多个子文件进行合并,当接收到该调度指令时,获取当前合并得到的数据文件,向该目的节点推送当前合并得到的数据文件。
本发明实施例提供的方法,通过客户端要将数据文件推送至目的节点时,先将数据文件拆分为多个子文件,并行地将该多个子文件上传至文件存储节点,缩短了上传该数据文件所耗费的时间,且在协调节点中添加推送任务,使得从推送节点检测到该协调节点中添加了该推送任务时,能够从文件存储节点中,并行地下载多个子文件,也缩短了下载该数据文件所耗费的时间,提高了推送效率。且主推送节点确定目的节点处于空闲状态时,无论该从推送节点是否已下载完该数据文件的所有子文件,该主推送节点即开始进行调度,使得从推送节点获取当前合并得到的数据文件,向该目的节点推送当前合并得到的数据文件,缩短了从该目的节点开始处于空闲状态直至主推送节点发送调度指令的时间间隔,进一步提高了推送效率。
图5是本发明实施例提供的一种文件推送方法的流程图。该发明实施例的交互主体为客户端、主推送节点、从推送节点、协调节点和目的节点,参见图5,该方法包括:
501、客户端将待推送的数据文件拆分为多个子文件,为该多个子文件中的每个子文件创建子上传任务,根据创建的多个子上传任务,并行地将该多个子文件上传至文件存储节点,由该文件存储节点存储该多个子文件。
其中,该客户端获取待推送的数据文件,该数据文件可以由该客户端生成,也可以由其他客户端生成,并发送给该客户端,本发明实施例对此不做限定。
本发明实施例中,该客户端需要将该数据文件推送至目的节点,该目的节点是指需要应用该数据文件中数据的节点,该数据文件可以用于对该目的节点的业务内容进行处理。
例如,该目的节点可以为与广告推荐系统一体的节点,该数据文件为模型数据文件,该模型数据文件中的模型数据可以用于对广告推荐系统中的推荐算法进行预测,则当该目的节点获取到该模型数据文件时,广告推荐系统可以加载该模型数据文件,根据该模型数据文件,对推荐算法进行预测。
实际应用时,该目的节点经常会使用一些外部数据,这些数据往往需要保持强一致性,且这些数据不便于进行增量更新。则为了便于该目的节点获取这些数据,可以将这些数据保存在数据文件中,再将该数据文件推送至该目的节点。且推送该数据文件时,可以先将该数据文件上传至文件存储节点进行存储,再将该数据文件从文件存储节点推送至该目的节点。其中,该文件存储节点用于对数据文件进行存储,可以为HDFS(HadoopDistributed File System,分布式文件系统)或者其他节点,本发明实施例对此不做限定。
本发明实施例中,为了缩短推送时间,提高推送效率,客户端在获取到该数据文件时,并未直接将该数据文件上传至文件存储节点,而是先将该数据文件拆分为多个子文件,再并行地将该多个子文件上传至文件存储节点,由该文件存储节点存储该多个子文件。
其中,该数据文件拆分得到的子文件的数目可以由该客户端预先确定,也可以由该客户端根据该数据文件的总数据量和预设的每个子文件数据量确定,本发明实施例对此不做限定。拆分得到的多个子文件中,不同子文件的数据量可以相等,也可以不等,本发明实施例对此也不做限定。且,为了便于后续多个子文件能够按照顺序进行合并,该多个子文件中的每个子文件可以包括顺序标识,该顺序标识用于表示对应子文件在该数据文件中的顺序。每个子文件的顺序标识可以存储在子文件中,或者添加至子文件的名称中,本发明实施例对此不做限定。例如,该客户端将该数据文件拆分为多个子文件,并按照每个子文件在数据文件中的顺序,生成每个子文件对应的顺序标识,添加至每个子文件的名称中。
该客户端可以在将该数据文件拆分为多个子文件后,为每个子文件创建一个对应的子上传任务,再根据创建的多个子上传任务,并行地将该多个子文件上传至文件存储节点,由该文件存储节点存储该多个子文件。该子上传任务可以包含对应子文件的名称,该客户端可以根据该子上传任务包含的文件名称,确定需要上传的子文件,从而将该子文件上传至该文件存储节点。
进一步地,该客户端为每个子文件创建一个对应的子上传任务时,可以将创建的多个子上传任务添加至任务队列中。该客户端可以创建多个线程,每个线程用于处理一个子上传任务,则多个线程并行地从该任务队列中提取对应的子上传任务,对该子上传任务进行处理,将该子上传任务包含的文件名称所对应的子文件上传至文件存储节点。
由于每个子文件的数据量均小于该数据文件的数据量,并行地上传该多个子文件时所耗费的时间要小于上传该数据文件所耗费的时间,即缩短了上传数据文件的时间。
进一步地,该客户端可以在该文件存储节点中,为该数据文件创建指定目录,并行地将该多个子文件上传至该文件存储节点的指定目录下,使得多个子文件存储在同一目录中,以便于后续该多个子文件的并行下载。其中,该指定目录的名称可以根据该客户端创建该指定目录时的时间戳确定,每次该客户端要上传数据文件时,根据当前的时间戳,在该文件存储节点中创建指定目录,并行地将该数据文件的多个子文件上传至该指定目录下。则该文件存储节点中可以包括多个指定目录,不同指定目录对应于该客户端在不同时间上传的数据文件,每个指定目录中包括对应数据文件的多个子文件。
需要说明的是,本发明实施例仅以该客户端将数据文件拆分为多个子文件为例进行说明,实际上,对于不同的数据文件来说,该客户端可以对数据文件进行拆分,也可以不拆分。可选地,该客户端获取该数据文件的数据量,当确定该数据文件的数据量大于预设数据量时,表示该数据文件过大,上传该数据文件时可能会耗费较长的时间,则将该数据文件拆分为多个子文件,以并行地上传该多个子文件。而当确定该数据文件的数据量不大于该预设数据量时,表示上传该数据文件不会耗费太长的时间,则无需对该数据文件进行拆分,将该数据文件直接上传至文件存储节点即可。该预设数据量可以由该客户端预先确定,本发明实施例对该预设数据量不做限定。
502、客户端在协调节点中添加与该多个子文件对应的推送任务。
本发明实施例的文件推送系统不仅包括客户端、目的节点和文件存储节点,还包括协调节点、从推送节点和主推送节点。该协调节点用于对该文件推送系统的推送任务进行管理协调,可以为zookeeper(分布式协调服务)节点或者其他协调节点。该从推送节点用于监控该协调节点中的任务,对该协调节点中的推送任务对应的数据文件进行下载,将下载到的数据文件推送至目的节点。该主推送节点用于监控该协调节点中的任务和目的节点的运行状态,当目的节点处于空闲状态时,对该从推送节点进行调度,以便该从推送节点开始对待推送的文件进行下载。
则为了便于该从推送节点下载该多个子文件,当该客户端并行地将多个子文件上传至该文件存储节点之后,为该多个子文件创建一个推送任务,在该协调节点中添加该推送任务。该推送任务中可以包括用于存储该多个子文件的指定目录,则该从推送节点可以根据该推送任务,确定该指定目录,从该指定目录下载该多个子文件。
另外,该客户端在添加了该推送任务之后,还可以生成上传日志,在数据库中存储该上传日志。该上传日志中包括该多个子文件的上传记录,如上传时间、上传的指定目录等,本发明实施例对此不做限定。
该客户端的处理流程可以如图6A所示,参见图6A,该客户端获取数据文件,确定要将该数据文件拆分为几个子文件;记录拆分得到的每个子文件在该数据文件中的位置,并为每个子文件创建一个子上传任务;多线程并发提取子上传任务,并将子上传任务对应的子文件上传至文件存储节点;在协调节点中添加推送任务;在数据库中存储上传日志。
需要说明的是,该客户端可能会对数据文件进行拆分,也可能不会对数据文件进行拆分,则该客户端上传的文件可能为一个数据文件,也可能为由数据文件划分得到的多个子文件。那么,为了便于从推送节点确定要下载的文件,该客户端在该协调节点中添加推送任务时,该推送任务可以包括对应的文件路径,后续过程中,该从推送节点可以按照该文件路径,下载该推送任务对应的文件。如果该客户端未对数据文件进行拆分,则该推送任务包含的文件路径为该数据文件所在的路径,该从推送节点可以下载与该文件路径对应的数据文件,而如果该客户端对该数据文件进行拆分,则该推送任务包含的文件路径为存储该数据文件的多个子文件的指定目录,该从推送节点可以下载与该文件路径对应的多个子文件,即该指定目录下的多个子文件。
503、协调节点根据该推送任务,确定数据文件的目的节点,执行步骤504和505。
该协调节点添加了该推送任务时,可以根据该推送任务对应的多个子文件,确定该数据文件的目的节点。可选地,该协调节点可以预先设定配置管理信息,根据该配置管理信息和该数据文件,确定该数据文件的目的节点。
例如,该配置管理信息中包括数据文件的类型所对应的目的节点地址,则当该协调节点获取到该推送任务时,确定该推送任务对应的数据文件的类型,根据该数据文件的类型以及该配置管理信息,确定该数据文件的目的节点地址,从而确定了该数据文件的目的节点。或者,该配置管理信息中还可以包括数据文件的地理位置信息所对应的目的节点地址,即该协调节点按照地理区域对数据文件进行拆分,将位于不同地理区域的数据文件推送至不同的目的节点,则当该协调节点获取到该推送任务时,确定该推送任务对应的数据文件的地理位置信息,根据该数据文件的类型以及该配置管理信息,确定该数据文件的目的节点地址。本发明实施例对该协调节点确定目的节点的方式不做限定。
504、从推送节点监控该协调节点中的任务,当检测到该协调节点中添加了推送任务时,确定该目的节点,从文件存储节点中,并行地下载多个子文件,对当前下载到的多个子文件进行合并。
该从推送节点监控该协调节点中的任务,当检测到该协调节点中添加了该推送任务时,可以确定该推送任务对应的目的节点,即为该数据文件的目的节点。其中,该从推送节点可以接收该协调节点发送的目的节点地址,根据该目的节点地址确定该目的节点。
确定该目的节点后,该从推送节点从该文件存储节点中,并行地下载该多个子文件,对当前下载到的多个子文件进行合并。在进行合并时,该从推送节点可以根据当前下载到的多个子文件的顺序标识,确定当前下载到的多个子文件的先后顺序,按照该多个子文件的先后顺序进行合并。
实际应用时,该客户端上传的文件可能为一个数据文件,也可能为由数据文件划分得到的多个子文件,则该推送任务中包含的文件路径可能为数据文件所在的路径,也可能为用于存储多个子文件的指定目录,则该从推送节点监控该协调节点中的任务,当检测到该协调节点中添加了推送任务时,获取该推送任务包含的文件路径,判断该文件路径是一个文件所在的路径还是一个目录,当该文件路径是一个文件所在的路径时,则从文件存储节点中,下载该推送任务对应的文件即可。当该文件路径是一个目录时,则从文件存储节点中,并行地下载该目录中存储的多个子文件。
进一步地,该从推送节点检测到该协调节点中添加了推送任务时,为该推送任务分配第一共享内存,判断该推送任务中的文件路径是否为目录,如果该任务中的文件路径为一个文件所在路径,则从文件存储节点中,下载该推送任务对应的数据文件,存储至该第一共享内存中。而如果该推送任务中的文件路径为一个目录,则对分配的第一共享内存进行划分,得到多个第二共享内存。并为该目录中的多个子文件创建对应的下载任务,将该多个下载任务添加至下载任务队列中,基于该下载任务队列,从文件存储节点中,并行地下载该多个子文件,并按照每个子文件在该数据文件中的顺序以及每个第二共享内存的偏移量,选取与子文件的顺序对应的第二共享内存,将子文件存储至对应的第二共享内存中。
该从推送节点的处理流程可以如图6B所示,参见图6B,该从推送节点中包括下载任务队列以及多个下载线程,每个下载线程用于对该下载任务队列中的任务进行处理。该从推送节点监控到该协调节点中添加了新的任务时,将该任务添加至该下载任务队列,下载线程从该下载任务队列中提取任务,则对于提取到的任务来说,该下载线程可以判断该任务是否为来自协调节点的新任务,如果是,则该从推送节点为该新任务分配共享内存,并判断该任务中的文件路径是否为目录,如果是,对已分配的共享内存继续进行分配,得到多个共享内存,该多个共享内存分别用于存储该任务对应的多个子文件。该下载线程为每个子文件创建对应的下载任务,再插入至下载任务队列中,则后续过程中,下载线程在判断新创建的任务是否为来自协调节点的新任务时,可以确定该下载任务不是来自协调节点的新任务,而是由下载线程生成的任务,则获取为该下载任务分配的共享内存的偏移量,根据该偏移量,将该下载任务对应的子文件下载至该共享内存中。
另外,该推送任务中还可以包括预设格式,该预设格式用于规定要下载的文件名称应符合的格式。该推送任务中的文件路径和该预设格式可以保存在该协调节点中,当该从推送节点检测到该推送任务时,可以获取该文件路径和该预设格式,并从该文件路径下,下载文件名称与该预设格式匹配的文件,而不再下载文件名称与该预设格式不匹配的文件。
其中,该预设格式可以根据待推送子文件的命名规则确定,或者通过自定义确定,本发明实施例对此不做限定。
例如,该文件存储节点中的每个子文件的名称根据上传时间确定,则该预设格式可以根据待推送子文件的上传时间确定,当该预设格式为“20150601…”时,表示仅需下载在2015年6月1日上传的子文件,则该从推送节点从该文件路径下,下载与该预设格式“20150601…”匹配的子文件,即为在2015年6月1日上传的子文件。
505、主推送节点监控该协调节点中的任务,当检测到该协调节点中添加了推送任务时,确定该目的节点,判断该目的节点是否处于空闲状态。
该主推送节点监控该协调节点中的任务,当检测到该协调节点中添加了推送任务时,可以确定该推送任务对应的目的节点,即为该数据文件的目的节点。其中,该主推送节点可以接收该协调节点发送的目的节点地址,根据该目的节点地址确定该目的节点。
在推送过程中,该目的节点可能会对业务内容进行处理,此时如果向该目的节点推送该多个子文件,就会占用该目的节点的带宽,容易影响到该业务内容的正常处理。则为了避免对该业务内容处理过程的影响,该主推送节点可以还可以监控该目的节点的运行状态,判断该目的节点处于繁忙状态还是空闲状态,当确定该目的节点处于空闲状态时,该主推送节点进行调度,向该从推送节点发送调度指令,以便该从推送节点将数据文件推送至该目的节点。而当确定该目的节点处于繁忙状态时,该主推送节点不会向该从推送节点发送调度指令,不会开始调度,则该从推送节点不会将该数据文件推送至该目的节点。
其中,该主推送节点可以获取根据该目的节点当前的业务内容所占用的带宽,根据该目的节点当前的业务内容所占用的带宽,确定该目的节点的运行状态,当该目的节点当前的业务内容所占用的带宽大于预设阈值时,确定该目的节点处于繁忙状态,而当该目的节点当前的业务内容所占用的带宽不大于该预设阈值时,确定该目的节点处于空闲状态。或者,当该目的节点当前的业务内容所占用的带宽与该目的节点的总带宽之间的比例大于预设比例时,确定该目的节点处于繁忙状态,而当该目的节点当前的业务内容所占用的带宽与该目的节点的总带宽之间的比例不大于预设比例时,确定该目的节点处于空闲状态。
需要说明的是,该步骤504和步骤505之间不存在必然的时序关系,该步骤504和步骤505可以同时执行,也可以一前一后执行,即该步骤504可以在步骤505之前执行,也可以在步骤505之后执行,本发明实施例对此不做限定。
另外需要说明的是,该文件推送系统中包括多个推送节点,由于推送节点的数量可能会很多,为了避免推送节点之间的冲突,可以从多个推送节点中,选取一个推送节点作为主推送节点,将其他的推送节点作为从推送节点,从推送节点用于执行数据文件具体的推送任务,而该主推送节点用于对从推送节点的推送过程进行调度。该主推送节点可以通过随机选取确定,也可以由该协调节点确定,且在运行的过程中,该主推送节点可以更换,本发明实施例对此不做限定。
506、当主推送节点确定该目的节点处于空闲状态时,在未确定从推送节点的下载进度的前提下,向该从推送节点发送调度指令。
507、当该从推送节点接收到该调度指令时,获取当前合并得到的数据文件,向该目的节点推送当前合并得到的数据文件。
现有技术中,该主推送节点会监控该目的节点的运行状态和该从推送节点的下载进度,只有该目的节点处于空闲状态且该从推送节点将该数据文件下载完成时,该主推送节点才会向该从推送节点发送调度指令。那么,该目的节点开始处于空闲状态时,该主推送节点需要等待该从推送节点下载完成,等待时间可能会很长,即从该目的节点开始处于空闲状态直至主推送节点发送调度指令的时间间隔很长。
而在本发明实施例中,当主推送节点确定该目的节点处于空闲状态时,无需确定该从推送节点的下载进度,也即是,无论该从推送节点是否已下载完该数据文件的所有子文件,该主推送节点均会向该从推送节点发送调度指令。当该从推送节点接收到该调度指令时,获取当前合并得到的数据文件,向该目的节点推送当前合并得到的数据文件,由该目的节点接收该从推送节点推送的数据文件。
该主推送节点缩短了从该目的节点开始处于空闲状态直至主推送节点发送调度指令的时间间隔,无需等待该数据文件中的所有子文件全部下载完成,即可向该从推送节点发送该调度指令,使得该从推送节点根据该调度指令,开始向该目的节点推送该数据文件,缩短了推送时间,提高了推送效率。
另外,该从推送节点可能会在多个文件还未全部下载完成的情况下,接收到该主推送节点发送的调度指令,则该从推送节点可以在向该目的节点推送当前合并得到的数据文件的同时,继续下载该数据文件拆分得到的剩余的子文件,继续将下载到的子文件合并为数据文件,实现了下载过程和推送过程的同时进行,还缩短了推送数据文件所耗费的时间。
可选地,该从推送节点可以通过下载线程,并行地下载该数据文件的多个子文件,通过推送线程,向该目的节点推送当前合并得到的数据文件,该下载线程和该推送线程可以并行运行。
本发明实施例中,客户端、文件存储节点、主推送节点、从推送节点和目的节点之间的交互时序图可以如图6C所示,参见图6C,该客户端将数据文件拆分为多个子文件后,上传至文件存储节点,则从推送节点从文件存储节点下载多个子文件,该主推送节点向从推送节点发送调度指令,则从推送节点向该目的节点推送由下载到的子文件合并得到的数据文件。其中,该从推送节点可能会在该多个子文件全部下载完成时接收到该调度指令,也可能会在该多个子文件还未全部下载完成时接收到该调度指令,图6C中仅以该从推送节点在该多个子文件还未全部下载完成时接收到该调度指令为例。
与现有技术相比,本发明实施例提供的方法可以缩短数据文件上传、下载、调度、推送等过程所耗费的时间,具体如下:
(1)现有技术中,将待推送的数据存放在一个数据文件时,会采用将单个文件的方式,将该数据文件上传至文件存储节点,导致上传该数据文件所耗费的时间较长。而本发明实施例中,将待推送的数据存放在一个数据文件时,会对该数据文件进行拆分,得到多个子文件,并行地将该多个子文件上传至文件存储节点,缩短了上传该数据文件所耗费的时间。
(2)现有技术中,将该数据文件上传至文件存储节点后,下载该数据文件时所耗费的时间较长。而本发明实施例中,并行地将该多个子文件上传至文件存储节点后,并行地下载该多个子文件,缩短了下载该数据文件所耗费的时间。
(3)现有技术中,主推送节点在目的节点处于空闲状态且从推送节点将该数据文件中的所有数据下载完成时,才会开始进行调度。而本发明实施例中,主推送节点只需确定目的节点处于空闲状态,无需该从推送节点将所有的子文件下载完成,即可开始进行调度,缩短了从该目的节点开始处于空闲状态直至主推送节点发送调度指令的时间间隔。
(4)现有技术中,从推送节点先将该数据文件中的所有数据下载完成,再向目的节点推送该数据文件,推送时间较长。而本发明实施例中,该从推送节点还未将该数据文件拆分得到的多个子文件下载完成时,即可开始向目的节点推送已下载到的数据文件,下载过程和推送过程的同时进行,缩短了推送时间。
本发明实施例提供的方法,通过客户端要将数据文件推送至目的节点时,先将数据文件拆分为多个子文件,并行地将该多个子文件上传至文件存储节点,缩短了上传该数据文件所耗费的时间,且在协调节点中添加与该多个子文件对应的推送任务,使得从推送节点能够根据该推送任务,从文件存储节点中,并行地下载多个子文件,也缩短了下载该数据文件所耗费的时间,提高了推送效率。且主推送节点确定目的节点处于空闲状态时,无论该从推送节点是否已下载完该数据文件的所有子文件,该主推送节点即开始进行调度,使得从推送节点获取当前合并得到的数据文件,向该目的节点推送当前合并得到的数据文件,缩短了从该目的节点开始处于空闲状态直至主推送节点发送调度指令的时间间隔,缩短了从推送节点的推送时间,进一步提高了推送效率。且在推荐系统中,能够将该数据文件快速地同步至推荐系统,提高了数据同步效率,能够提高推荐效果。
图7是本发明实施例提供的一种文件推送装置结构示意图,参见图7,该装置包括:
拆分模块701,用于将待推送的数据文件拆分为多个子文件;
并行上传模块702,用于并行地将所述多个子文件上传至文件存储节点;
任务添加模块703,用于在协调节点中添加与所述多个子文件对应的推送任务,使得所述协调节点根据所述推送任务,确定所述数据文件的目的节点,当所述从推送节点检测到所述协调节点中添加了所述推送任务时,确定所述数据文件的目的节点,从所述文件存储节点中,并行地下载所述多个子文件,对下载到的多个子文件进行合并,在接收到主推送节点的调度指令时,向所述目的节点推送合并得到的数据文件。
本发明实施例提供的装置,通过要将数据文件推送至目的节点时,先将数据文件拆分为多个子文件,并行地将该多个子文件上传至文件存储节点,缩短了上传该数据文件所耗费的时间,且在协调节点中添加与该多个子文件对应的推送任务,使得从推送节点能够根据该推送任务,从文件存储节点中,并行地下载多个子文件,也缩短了下载该数据文件所耗费的时间,提高了推送效率。
可选地,所述并行上传模块703用于并行地将所述多个子文件上传至所述文件存储节点的指定目录下,使得所述从推送节点从所述指定目录,并行地下载所述多个子文件。
可选地,所述并行上传模块703还用于为所述多个子文件中的每个子文件创建子上传任务;根据创建的多个子上传任务,并行地将所述多个子文件上传至文件存储节点。
可选地,所述多个子文件中的每个子文件包括顺序标识,所述顺序标识用于表示对应子文件在所述数据文件中的顺序。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图8是本发明实施例提供的一种文件推送装置结构示意图,参见图8,该装置包括:
监控模块801,用于监控协调节点中的任务;
确定模块802,用于当检测到所述协调节点中添加了推送任务时,确定所述推送任务对应的目的节点;
并行下载模块803,用于从文件存储节点中,并行地下载所述推送任务对应的多个子文件,所述多个子文件由客户端对待推送的数据文件进行拆分得到;
合并模块804,用于对当前下载到的多个子文件进行合并;
推送模块805,用于当接收到主推送节点的调度指令时,向所述目的节点推送当前合并得到的数据文件。
本发明实施例提供的装置,通过客户端要将数据文件推送至目的节点时,先将数据文件拆分为多个子文件,并行地将该多个子文件上传至文件存储节点,缩短了上传该数据文件所耗费的时间,且在协调节点中添加与该多个子文件对应的推送任务,使得该装置能够根据该推送任务,从文件存储节点中,并行地下载多个子文件,也缩短了下载该数据文件所耗费的时间,提高了推送效率。
可选地,所述并行下载模块803还用于如果在所述数据文件的子文件还未全部下载完成的情况下,接收到所述调度指令,则在向所述目的节点推送当前合并得到的数据文件的同时,继续下载剩余的子文件。
可选地,所述并行下载模块803还用于获取所述推送任务中包含的文件路径;当所述文件路径为所述文件存储节点中的指定目录时,从所述文件存储节点的指定目录中,并行地下载所述多个子文件。
可选地,所述多个子文件中的每个子文件包括顺序标识,所述顺序标识用于表示对应子文件在所述数据文件中的顺序;
所述合并模块804还用于根据当前下载到的多个子文件的顺序标识,对当前下载到的多个子文件进行合并。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图9是本发明实施例提供的一种文件推送装置结构示意图,参见图9,该装置包括:
监控模块901,用于监控协调节点中的任务;
确定模块902,用于当检测到所述协调节点中添加了推送任务时,确定所述推送任务对应的目的节点;
判断模块903,用于判断所述目的节点是否处于空闲状态;
发送模块904,用于当确定所述目的节点处于空闲状态时,在未确定从推送节点的下载进度的前提下,向所述从推送节点发送调度指令,所述从推送节点用于并行地下载所述推送任务对应的多个子文件,对当前下载到的多个子文件进行合并,当接收到所述调度指令时,获取当前合并得到的数据文件,向所述目的节点推送当前合并得到的数据文件。
本发明实施例提供的装置,通过客户端要将数据文件推送至目的节点时,先将数据文件拆分为多个子文件,并行地将该多个子文件上传至文件存储节点,缩短了上传该数据文件所耗费的时间,且在协调节点中添加与该多个子文件对应的推送任务,使得从推送节点能够从文件存储节点中,并行地下载多个子文件,也缩短了下载该数据文件所耗费的时间,提高了推送效率。且该装置确定目的节点处于空闲状态时,无论该从推送节点是否已下载完该数据文件的所有子文件,该主推送节点即开始进行调度,使得从推送节点获取当前合并得到的数据文件,向该目的节点推送当前合并得到的数据文件,缩短了从该目的节点开始处于空闲状态直至主推送节点发送调度指令的时间间隔,进一步提高了推送效率。
需要说明的是:上述实施例提供的文件推送装置在推送文件时,仅以上述各功能模块的拆分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将客户端、从推送节点和主推送节点的内部结构拆分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的文件推送装置与文件推送方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (20)

1.一种文件推送方法,其特征在于,所述方法包括:
将待推送的数据文件拆分为多个子文件;
并行地将所述多个子文件上传至文件存储节点;
在协调节点中添加与所述多个子文件对应的推送任务,使得所述协调节点根据所述推送任务确定目的节点地址,根据所述目的节点地址确定所述数据文件的目的节点,将所述目的节点地址发送至从推送节点和主推送节点,当所述从推送节点检测到所述协调节点中添加了所述推送任务时,根据所述协调节点发送的目的节点地址确定所述数据文件的目的节点,从所述文件存储节点中,并行地下载所述多个子文件,对下载到的多个子文件进行合并,在接收到主推送节点的调度指令时,向所述目的节点推送合并得到的数据文件。
2.根据权利要求1所述的方法,其特征在于,所述并行地将所述多个子文件上传至文件存储节点,包括:
并行地将所述多个子文件上传至所述文件存储节点的指定目录下,使得所述从推送节点从所述指定目录,并行地下载所述多个子文件。
3.根据权利要求1所述的方法,其特征在于,所述并行地将所述多个子文件上传至文件存储节点,包括:
为所述多个子文件中的每个子文件创建子上传任务,每个子上传任务包含对应子文件的名称;
根据创建的多个子上传任务,并行地将所述多个子文件上传至文件存储节点。
4.根据权利要求1所述的方法,其特征在于,所述多个子文件中的每个子文件包括顺序标识,所述顺序标识用于表示对应子文件在所述数据文件中的顺序。
5.一种文件推送方法,其特征在于,所述方法包括:
监控协调节点中的任务;
当检测到所述协调节点中添加了推送任务时,根据所述协调节点发送的目的节点地址确定所述推送任务对应的目的节点;
从文件存储节点中,并行地下载所述推送任务对应的多个子文件,所述多个子文件由客户端对待推送的数据文件进行拆分得到;
对当前下载到的多个子文件进行合并;
当接收到主推送节点的调度指令时,向所述目的节点推送当前合并得到的数据文件。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
如果在所述数据文件的子文件还未全部下载完成的情况下,接收到所述调度指令,则在向所述目的节点推送当前合并得到的数据文件的同时,继续下载剩余的子文件。
7.根据权利要求5所述的方法,其特征在于,所述从文件存储节点中,并行地下载所述推送任务对应的多个子文件,包括:
获取所述推送任务中包含的文件路径;
当所述文件路径为所述文件存储节点中的指定目录时,从所述文件存储节点的指定目录中,并行地下载所述多个子文件。
8.根据权利要求5所述的方法,其特征在于,所述多个子文件中的每个子文件包括顺序标识,所述顺序标识用于表示对应子文件在所述数据文件中的顺序;所述对当前下载到的多个子文件进行合并,包括:
根据当前下载到的多个子文件的顺序标识,对当前下载到的多个子文件进行合并。
9.一种文件推送方法,其特征在于,所述方法包括:
监控协调节点中的任务;
当检测到所述协调节点中添加了推送任务时,根据所述协调节点发送的目的节点地址确定所述推送任务对应的目的节点;
判断所述目的节点是否处于空闲状态;
当确定所述目的节点处于空闲状态时,在未确定从推送节点的下载进度的前提下,向所述从推送节点发送调度指令,所述从推送节点用于并行地下载所述推送任务对应的多个子文件,对当前下载到的多个子文件进行合并,当接收到所述调度指令时,获取当前合并得到的数据文件,向所述目的节点推送当前合并得到的数据文件。
10.一种文件推送装置,其特征在于,所述装置包括:
拆分模块,用于将待推送的数据文件拆分为多个子文件;
并行上传模块,用于并行地将所述多个子文件上传至文件存储节点;
任务添加模块,用于在协调节点中添加与所述多个子文件对应的推送任务,使得所述协调节点根据所述推送任务确定目的节点地址,根据所述目的节点地址确定所述数据文件的目的节点,将所述目的节点地址发送至从推送节点和主推送节点,当所述从推送节点检测到所述协调节点中添加了所述推送任务时,根据所述协调节点发送的目的节点地址确定所述数据文件的目的节点,从所述文件存储节点中,并行地下载所述多个子文件,对下载到的多个子文件进行合并,在接收到主推送节点的调度指令时,向所述目的节点推送合并得到的数据文件。
11.根据权利要求10所述的装置,其特征在于,所述并行上传模块用于并行地将所述多个子文件上传至所述文件存储节点的指定目录下,使得所述从推送节点从所述指定目录,并行地下载所述多个子文件。
12.根据权利要求10所述的装置,其特征在于,所述并行上传模块还用于为所述多个子文件中的每个子文件创建子上传任务;根据创建的多个子上传任务,并行地将所述多个子文件上传至文件存储节点。
13.根据权利要求10所述的装置,其特征在于,所述多个子文件中的每个子文件包括顺序标识,所述顺序标识用于表示对应子文件在所述数据文件中的顺序。
14.一种文件推送装置,其特征在于,所述装置包括:
监控模块,用于监控协调节点中的任务;
确定模块,用于当检测到所述协调节点中添加了推送任务时,根据所述协调节点发送的目的节点地址确定所述推送任务对应的目的节点;
并行下载模块,用于从文件存储节点中,并行地下载所述推送任务对应的多个子文件,所述多个子文件由客户端对待推送的数据文件进行拆分得到;
合并模块,用于对当前下载到的多个子文件进行合并;
推送模块,用于当接收到主推送节点的调度指令时,向所述目的节点推送当前合并得到的数据文件。
15.根据权利要求14所述的装置,其特征在于,所述并行下载模块还用于如果在所述数据文件的子文件还未全部下载完成的情况下,接收到所述调度指令,则在向所述目的节点推送当前合并得到的数据文件的同时,继续下载剩余的子文件。
16.根据权利要求14所述的装置,其特征在于,所述并行下载模块还用于获取所述推送任务中包含的文件路径;当所述文件路径为所述文件存储节点中的指定目录时,从所述文件存储节点的指定目录中,并行地下载所述多个子文件。
17.根据权利要求14所述的装置,其特征在于,所述多个子文件中的每个子文件包括顺序标识,所述顺序标识用于表示对应子文件在所述数据文件中的顺序;
所述合并模块还用于根据当前下载到的多个子文件的顺序标识,对当前下载到的多个子文件进行合并。
18.一种文件推送装置,其特征在于,所述装置包括:
监控模块,用于监控协调节点中的任务;
确定模块,用于当检测到所述协调节点中添加了推送任务时,根据所述协调节点发送的目的节点地址确定所述推送任务对应的目的节点;
判断模块,用于判断所述目的节点是否处于空闲状态;
发送模块,用于当确定所述目的节点处于空闲状态时,在未确定从推送节点的下载进度的前提下,向所述从推送节点发送调度指令,所述从推送节点用于并行地下载所述推送任务对应的多个子文件,对当前下载到的多个子文件进行合并,当接收到所述调度指令时,获取当前合并得到的数据文件,向所述目的节点推送当前合并得到的数据文件。
19.一种文件推送系统,其特征在于,所述系统包括:客户端、主推送节点、从推送节点、文件存储节点、协调节点和目的节点;
所述客户端用于将待推送的数据文件拆分为多个子文件;并行地将所述多个子文件上传至所述文件存储节点;在协调节点中添加与所述多个子文件对应的推送任务;
所述从推送节点用于监控所述协调节点中的任务;当检测到所述协调节点中添加了推送任务时,根据所述协调节点发送的目的节点地址确定所述推送任务对应的目的节点;从所述文件存储节点中,并行地下载所述多个子文件,对当前下载到的多个子文件进行合并;
所述主推送节点用于监控所述协调节点中的任务;当检测到所述协调节点中添加了推送任务时,根据所述协调节点发送的目的节点地址确定所述推送任务对应的目的节点;判断所述目的节点是否处于空闲状态;当确定所述目的节点处于空闲状态时,在未确定所述从推送节点的下载进度的前提下,向所述从推送节点发送调度指令;
所述从推送节点还用于当接收到所述调度指令时,向所述目的节点推送当前合并得到的数据文件。
20.一种计算机可读存储介质,其特征在于,所述存储介质包括至少一条指令或者至少一段程序,所述指令或者程序在被执行时实现如权利要求1-4任一所述的文件推送方法,或者实现如权利要求5-8任一所述的文件推送方法,或者实现如权利要求9所述的文件推送方法。
CN201510336360.3A 2015-06-17 2015-06-17 文件推送方法、装置和系统 Active CN104967619B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201510336360.3A CN104967619B (zh) 2015-06-17 2015-06-17 文件推送方法、装置和系统
PCT/CN2016/081652 WO2016202123A1 (zh) 2015-06-17 2016-05-11 文件推送方法、装置和系统
US15/663,494 US10805363B2 (en) 2015-06-17 2017-07-28 Method, device and system for pushing file

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510336360.3A CN104967619B (zh) 2015-06-17 2015-06-17 文件推送方法、装置和系统

Publications (2)

Publication Number Publication Date
CN104967619A CN104967619A (zh) 2015-10-07
CN104967619B true CN104967619B (zh) 2018-09-04

Family

ID=54221561

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510336360.3A Active CN104967619B (zh) 2015-06-17 2015-06-17 文件推送方法、装置和系统

Country Status (3)

Country Link
US (1) US10805363B2 (zh)
CN (1) CN104967619B (zh)
WO (1) WO2016202123A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104967619B (zh) 2015-06-17 2018-09-04 深圳市腾讯计算机系统有限公司 文件推送方法、装置和系统
CN105302780B (zh) * 2015-10-20 2018-11-09 许继集团有限公司 一种优化的scd文件编辑方法
TW201721474A (zh) * 2015-12-09 2017-06-16 群暉科技股份有限公司 檔案上傳方法、檔案下載方法及相關的伺服器
CN105610899B (zh) * 2015-12-10 2019-09-24 浪潮(北京)电子信息产业有限公司 一种文本文件并行上传方法及装置
CN107220254A (zh) * 2016-03-22 2017-09-29 阿里巴巴集团控股有限公司 组装文件的方法及装置
CN106294627A (zh) * 2016-07-28 2017-01-04 五八同城信息技术有限公司 数据管理方法及数据服务器
CN107682459A (zh) * 2017-11-20 2018-02-09 深圳市沃特沃德股份有限公司 数据分包上传服务器的方法及装置
US10831708B2 (en) * 2017-12-20 2020-11-10 Mastercard International Incorporated Systems and methods for improved processing of a data file
CN109040230B (zh) * 2018-07-31 2021-06-04 优视科技新加坡有限公司 文件的下载方法、装置、设备/终端/服务器及存储介质
CN109067690B (zh) * 2018-08-07 2021-03-26 腾讯科技(深圳)有限公司 离线计算结果数据的推送方法及装置
CN110908777B (zh) * 2018-09-17 2024-04-16 京东科技控股股份有限公司 作业调度方法、装置和系统
CN111381972B (zh) * 2018-12-27 2024-02-06 三六零科技集团有限公司 分布式任务调度方法、装置和系统
CN110086850B (zh) * 2019-03-19 2022-11-15 视联动力信息技术股份有限公司 一种文件的处理方法和视联网网盘系统
CN110602163B (zh) * 2019-08-07 2022-02-01 创新先进技术有限公司 文件上传方法及装置
CN111597244A (zh) * 2020-05-19 2020-08-28 北京思特奇信息技术股份有限公司 一种数据快速导入的方法、系统及计算机存储介质
CN115380280A (zh) * 2020-06-15 2022-11-22 深圳市欢太科技有限公司 文件还原方法、终端及存储介质
CN112445442A (zh) * 2020-11-24 2021-03-05 上海汉图科技有限公司 文件打印方法和装置
CN112131286B (zh) * 2020-11-26 2021-03-02 畅捷通信息技术股份有限公司 一种基于时间序列的数据处理方法、装置及存储介质
CN113132463B (zh) * 2021-03-17 2023-03-24 杭州当虹科技股份有限公司 一种分布式的大文件快速下载方法及系统
CN113190511B (zh) * 2021-04-21 2022-09-13 中国海洋大学 基于众核集群的大数据并发调度及加速处理方法
CN113377720A (zh) * 2021-06-23 2021-09-10 上海商汤科技开发有限公司 一种数据处理的方法、装置、电子设备及存储介质
CN113641493A (zh) * 2021-08-11 2021-11-12 杭州安恒信息技术股份有限公司 一种任务推送方法、装置、设备及计算机可读存储介质
CN114462900B (zh) * 2022-04-13 2022-07-29 云智慧(北京)科技有限公司 一种业务活动节点的拆分方法、装置及设备
CN115964155B (zh) * 2023-03-16 2023-05-30 燧原智能科技(成都)有限公司 芯片内数据处理硬件、芯片内数据处理方法及ai平台

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1813251A (zh) * 2004-03-22 2006-08-02 网飞亚技术公司 基于流的内容分发网络系统、以及用于分割、合并和检索文件的方法
CN101453717A (zh) * 2008-12-25 2009-06-10 中国电信股份有限公司 会话发起协议短消息发送方法、接收方法和终端
CN102130928A (zh) * 2010-01-19 2011-07-20 腾讯科技(深圳)有限公司 下载数据的方法和装置
CN102456076A (zh) * 2011-11-23 2012-05-16 北京安天电子设备有限公司 海量片段数据汇聚的系统和方法
CN103237049A (zh) * 2013-03-18 2013-08-07 北京易华录信息技术股份有限公司 一种文件传输方法及装置
WO2014082505A1 (zh) * 2012-11-27 2014-06-05 腾讯科技(深圳)有限公司 转码方法及系统、分布式文件装置
CN104092719A (zh) * 2013-12-17 2014-10-08 深圳市腾讯计算机系统有限公司 文件传输方法、装置及分布式集群文件系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080069091A1 (en) * 2006-09-20 2008-03-20 Tomer Cohen Data Transfer Method, Apparatus and Computer Program Product
EP2145491A1 (en) * 2007-04-30 2010-01-20 Dream to Reality Co., Ltd. A document delivery system of gsm mobile supporting midp environments and thereof
EP2061212B1 (en) * 2007-11-13 2018-06-20 Cellular Communications Equipment Llc Method, apparatus and program product for merging communication sessions in an IMS
CN101198016A (zh) * 2007-12-05 2008-06-11 中兴通讯股份有限公司 交互式个人电视媒体交付系统的内容发布和存储方法
CN104834722B (zh) * 2015-05-12 2018-03-02 网宿科技股份有限公司 基于cdn的内容管理系统
CN104967619B (zh) * 2015-06-17 2018-09-04 深圳市腾讯计算机系统有限公司 文件推送方法、装置和系统
CN105338424B (zh) * 2015-10-29 2019-10-08 努比亚技术有限公司 一种视频处理方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1813251A (zh) * 2004-03-22 2006-08-02 网飞亚技术公司 基于流的内容分发网络系统、以及用于分割、合并和检索文件的方法
CN101453717A (zh) * 2008-12-25 2009-06-10 中国电信股份有限公司 会话发起协议短消息发送方法、接收方法和终端
CN102130928A (zh) * 2010-01-19 2011-07-20 腾讯科技(深圳)有限公司 下载数据的方法和装置
CN102456076A (zh) * 2011-11-23 2012-05-16 北京安天电子设备有限公司 海量片段数据汇聚的系统和方法
WO2014082505A1 (zh) * 2012-11-27 2014-06-05 腾讯科技(深圳)有限公司 转码方法及系统、分布式文件装置
CN103237049A (zh) * 2013-03-18 2013-08-07 北京易华录信息技术股份有限公司 一种文件传输方法及装置
CN104092719A (zh) * 2013-12-17 2014-10-08 深圳市腾讯计算机系统有限公司 文件传输方法、装置及分布式集群文件系统

Also Published As

Publication number Publication date
WO2016202123A1 (zh) 2016-12-22
US10805363B2 (en) 2020-10-13
CN104967619A (zh) 2015-10-07
US20170331867A1 (en) 2017-11-16

Similar Documents

Publication Publication Date Title
CN104967619B (zh) 文件推送方法、装置和系统
CN109862065B (zh) 文件下载方法、装置和电子设备
CN104994177B (zh) 网盘系统的同步方法、终端设备和网盘系统
CN104092719B (zh) 文件传输方法、装置及分布式集群文件系统
CN103309946B (zh) 多媒体文件处理方法、装置及系统
CN108632365A (zh) 服务资源调整方法、相关装置和设备
CN110457281A (zh) 数据处理方法、装置、设备及介质
CN111182061B (zh) 任务分发处理方法、系统、计算机设备和存储介质
WO2017106718A1 (en) Method and apparatus for execution of distrubuted workflow processes
CN109800937A (zh) 机器人集群调度系统
CN106095959A (zh) 一种数据采集方法、装置及系统
CN103366022A (zh) 信息处理系统及其处理方法
CN111198754A (zh) 一种任务调度方法及装置
CN110417598B (zh) 网关组件的管理方法及组件管理器
CN109327321A (zh) 网络模型业务执行方法、装置、sdn控制器及可读存储介质
CN113608838A (zh) 应用镜像文件的部署方法、装置、计算机设备和存储介质
CN113986534A (zh) 任务调度方法、装置、计算机设备和计算机可读存储介质
CN109939441A (zh) 应用复盘校验处理方法及系统
CN116881012A (zh) 一种容器应用垂直扩容方法、装置、设备及可读存储介质
CN108377268A (zh) 一种调整任务优先级的方法与系统
CN106936911B (zh) 轻量级分布式计算平台及其计算资源管控方法
CN106850596B (zh) 一种数据采集系统和方法
CN114924858A (zh) 任务调度方法及装置、存储介质及电子设备
JP4104011B2 (ja) トラヒック制御システム、及び、トラヒック制御処理実行方法
CN105868012A (zh) 处理用户请求的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant