CN105162878A - 基于分布式存储的文件分发系统及方法 - Google Patents

基于分布式存储的文件分发系统及方法 Download PDF

Info

Publication number
CN105162878A
CN105162878A CN201510616269.7A CN201510616269A CN105162878A CN 105162878 A CN105162878 A CN 105162878A CN 201510616269 A CN201510616269 A CN 201510616269A CN 105162878 A CN105162878 A CN 105162878A
Authority
CN
China
Prior art keywords
task
back end
module
file
document storage
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.)
Granted
Application number
CN201510616269.7A
Other languages
English (en)
Other versions
CN105162878B (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.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and Technology 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 Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN201510616269.7A priority Critical patent/CN105162878B/zh
Publication of CN105162878A publication Critical patent/CN105162878A/zh
Priority to PCT/CN2016/098652 priority patent/WO2017050141A1/zh
Priority to EP16848023.4A priority patent/EP3340573A1/en
Priority to US15/759,047 priority patent/US10776159B2/en
Application granted granted Critical
Publication of CN105162878B publication Critical patent/CN105162878B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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/184Distributed file systems implemented as replicated file system
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust

Abstract

本发明提供了一种基于分布式存储的文件分发系统及方法,该系统包括:调度服务器;一个或多个源组,每一源组包括多个分布式文件存储集群,每一分布式文件存储集群包括多个数据节点;其中,所述调度服务器基于接收到的任务,根据所述分布式文件存储集群所属的运营商以及各个数据节点的负载信息进行任务调度并生成任务指令,所述任务由所述客户发出或者由所述数据节点发出;所述任务指令指向的数据节点根据所述任务指令执行任务和/或进行任务分发,以使得同一源组内的所有分布式文件存储集群内的数据保持同步。本发明采用调度服务器对多个分布式文件存储集群进行任务调度,从而能够有效提高多个分布式文件存储集群之间的文件分发效率。

Description

基于分布式存储的文件分发系统及方法
技术领域
本发明涉及分布式文件存储的管理技术,尤其涉及一种基于分布式存储的文件分发系统及方法。
背景技术
目前,随着互联网产业和互联网技术的蓬勃发展,互联网上会不断地产生大量的富媒体(RichMedia),富媒体中包括声音、图片、视频等多种媒体信息。为了应对富媒体的需要,越来越多的互联网网站需要采用内容分发网络(CDN,ContentDeliveryNetwork)进行加速。
内容分发网络中包含源服务器(又称为源站)和多个缓存服务器(又称为节点服务器),缓存服务器对数据进行缓存。当用户访问资源时,会被优先引导至最近的缓存服务器获取该资源,以提高响应速度;如果缓存服务器中并未缓存需要的资源,则发出回源请求,从源服务器中获取相应的资源。但是,并发的大量CDN回源请求则会对源站产生较大的压力,因此,为了降低源站的数据存储成本与回源压力,CDN供应商通常提供额外的存储作为替代回源解决方案。
但是,现有技术中的替代回源解决方案存在如下缺点:
(1)针对跨运营商、跨机房存储的应用场景,无法提供高效的文件分发解决方案;
(2)没有针对富媒体的各种类型提供后期处理功能,例如图片格式转化,图片缩略图,视频转码,格式转化,视频切片,直播回看等功能;
(3)无法支持客户多样化接入方式,如ftp、rsync、http以及自定义API。
发明内容
本发明要解决的技术问题是提供一种基于分布式存储的文件分发系统及方法,采用调度服务器对多个分布式文件存储集群进行任务调度,从而能够有效提高多个分布式文件存储集群之间的文件分发效率。
为解决上述技术问题,本发明提供了一种基于分布式存储的文件分发系统,包括:
调度服务器;
一个或多个源组,每一源组包括多个分布式文件存储集群,每一分布式文件存储集群包括多个数据节点;
其中,所述调度服务器基于接收到的任务,根据所述分布式文件存储集群所属的运营商以及各个数据节点的负载信息进行任务调度并生成任务指令,所述任务由所述客户发出或者由所述数据节点发出;
所述任务指令指向的数据节点根据所述任务指令执行任务和/或进行任务分发,以使得同一源组内的所有分布式文件存储集群内的数据保持同步。
根据本发明的一个实施例,所述调度服务器包括:
API模块,用于接收和解析所述任务;
负载均衡模块,用于收集所有分布式文件存储集群内的数据节点的负载信息;
任务调度模块,从所述API模块获取所述任务,根据所述分布式文件存储集群所属的运营商以及所述多个数据节点的负载信息,在所述多个数据节点中选择符合要求的数据节点用于执行任务和/或进行任务分发,并生成所述任务指令;
指令发送模块,将所述任务调度模块产生的任务指令转发至选中的数据节点。
根据本发明的一个实施例,所述任务调度模块包括:
判断子模块,用于根据所述分布式文件存储集群所属的运营商以及所述多个数据节点的负载信息进行判断,判断所述任务是否能被执行和/或能被分发;
第一选择子模块,如果所述任务能被执行,则根据所述负载信息选择数据节点执行所述任务;
第二选择子模块,如果所述任务能被分发,则根据所述数据节点所属的运营商、数据节点的负载信息以及数据节点的历史任务运行情况选择文件传输路径,所述传输路径包括用于任务分发的多个数据节点以及各数据节点之间的传输顺序;
指令生成子模块,根据所述第一选择子模块和第二选择子模块的输出结果生成所述任务指令。
根据本发明的一个实施例,所述第二选择子模块还根据所述数据节点所述的运营商,指示所述传输路径上的多个数据节点选择不同的传输协议进行数据传输,以优化传输效率。
根据本发明的一个实施例,所述API模块包括:
动态API模块,用于适配所述客户自定义的动态API;
发布API模块,用于接收和验证所述任务,判断是否启用所述动态API,如果不启用所述动态API,则直接对所述任务进行解析;如果启用所述动态API,则使用所述动态API模块解析对所述任务进行解析。
根据本发明的一个实施例,所述调度服务器还包括以下模块中的一个或多个:
任务预处理模块,在所述任务调度模块获取所述任务之前,过滤重复的任务;
任务生命周期管理模块,用于管理所述任务的生命周期、计算所述任务的执行进度和/或对所述任象的执行进行超时管理;
动态反馈模块,反馈所述任务的完成结果;
故障恢复模块,用于为同一源组内的多个分布式文件存储集群提供故障恢复。
根据本发明的一个实施例,所述任务预处理模块还计算不同任务之间的依赖关系,所述任务调度模块还根据所述不同任务之间的依赖关系进行任务调度。
根据本发明的一个实施例,所述任务预处理模块采用如下方式判断不同任务之间的依赖关系:
对当前任务要操作的目标文件或目标目录的上级路径进行锁判断,若所述上级路径中有目录加写锁,则将对此目录进行操作的所有任务加入到当前任务的依赖队列中;
对当前任务要操作的目标文件或目标目录进行锁判断,若该目标文件或目标目录加写锁,则将对此目标文件或目标目录进行操作的所有任务加入到当前任务的依赖队列中;
对当前任务要操作的目标文件或目标目录执行加锁操作,当前任务完成后,对目标文件或目标目录执行解锁操作;
其中,加锁操作包括:对加锁操作针对的目标文件或目标目录的所有上级目录的读锁加1,对加锁操作针对的目标文件或目标目录的写锁加1;
解锁操作包括:对解锁操作针对的目标文件或目标目录的所有上级目录的读锁减1,对解锁操作针对的目标文件或目标目录的写锁减1。
根据本发明的一个实施例,所述数据节点配置有文件分发客户端,所述文件分发客户端包括:
协议处理模块,接收并解析所述调度服务器发送的任务指令,以得到所述任务;
任务执行模块,从所述协议处理模块获取所述任务,根据所述任务的类型执行所述任务;
任务反馈模块,向所述调度服务器反馈所述任务的执行进度和/或结果。
根据本发明的一个实施例,所述任务的类型包括:上传、删除、拷贝、转码、解压、切片、图片处理、重命名、创建目录、Rsync任务、视频格式转化和文件校验。
根据本发明的一个实施例,所述数据节点配置有FTP服务器,所述FTP服务器包括:
FTP模块,用于提供通用的FTP服务;
FTP事件封装模块,基于监听到的FTP事件,封装生成所述任务;
任务提交模块,将所述FTP事件封装模块生成的任务传输至所述调度服务器。
根据本发明的一个实施例,所述数据节点配置有Rsync服务器,所述Rsync服务器包括:
Rsync模块,用于提供通用的Rsync服务;
Rsync事件封装模块,基于监听到的Rsync事件,封装生成所述任务;
任务提交模块,将所述Rsync时间封装模块生成的任务传输至所述调度服务器。
为了解决上述问题,本发明还提供了一种基于分布式存储的文件分发方法,包括:
调度服务器基于接收到的任务,根据所述分布式文件存储集群所属的运营商以及各个数据节点的负载信息进行任务调度并生成任务指令,所述任务由所述客户发出或者由所述数据节点发出;
所述任务指令指向的数据节点根据所述任务指令执行任务和/或进行任务分发,以使得同一源组内的所有分布式文件存储集群内的数据保持同步,所述源组包括多个分布式文件存储集群,每一分布式文件存储集群包括多个所述数据节点。
根据本发明的一个实施例,根据所述分布式文件存储集群所属的运营商以及各个数据节点的负载信息进行任务调度并生成任务指令包括:
接收和解析所述任务;
收集所有分布式文件存储集群内的数据节点的负载信息;
根据所述分布式文件存储集群所属的运营商以及所述多个数据节点的负载信息,在所述多个数据节点中选择符合要求的数据节点用于执行任务和/或进行任务分发,并生成所述任务指令;
将所述任务指令转发至选中的数据节点。
根据本发明的一个实施例,在所述多个数据节点中选择符合要求的数据节点用于执行任务和/或进行任务分发包括:
根据所述分布式文件存储集群所属的运营商以及所述多个数据节点的负载信息进行判断,判断所述任务是否能被执行和/或能被分发;
如果所述任务能被执行,则根据所述负载信息选择数据节点执行所述任务;
如果所述任务能被分发,则根据所述数据节点所属的运营商、数据节点的负载信息以及数据节点的历史任务运行情况选择文件传输路径,所述传输路径包括用于任务分发的多个数据节点以及各数据节点之间的传输顺序;
生成所述任务指令。
根据本发明的一个实施例,在所述多个数据节点中选择符合要求的数据节点用于执行任务和/或进行任务分发还包括:根据所述数据节点所述的运营商,指示所述传输路径上的多个数据节点选择不同的传输协议进行数据传输,以优化传输效率。
根据本发明的一个实施例,接收和解析所述任务包括:
配置动态API模块,用于适配所述客户自定义的动态API;
接收和验证所述任务,判断是否启用所述动态API,如果不启用所述动态API,则直接对所述任务进行解析;如果启用所述动态API,则使用所述动态API模块解析对所述任务进行解析。
根据本发明的一个实施例,根据所述分布式文件存储集群所属的运营商以及各个数据节点的负载信息进行任务调度并生成任务指令还包括以下步骤中的一个或多个:
在所述任务调度模块获取所述任务之前,过滤重复的任务;
管理所述任务的生命周期、计算所述任务的执行进度和/或对所述任象的执行进行超时管理;
反馈所述任务的完成结果;
为同一源组内的多个分布式文件存储集群提供故障恢复。
根据本发明的一个实施例,根据所述分布式文件存储集群所属的运营商以及各个数据节点的负载信息进行任务调度并生成任务指令还包括:计算不同任务之间的依赖关系,所述任务调度模块还根据所述不同任务之间的依赖关系进行任务调度。
根据本发明的一个实施例,采用如下方式判断不同任务之间的依赖关系:
对当前任务要操作的目标文件或目标目录的上级路径进行锁判断,若所述上级路径中有目录加写锁,则将对此目录进行操作的所有任务加入到当前任务的依赖队列中;
对当前任务要操作的目标文件或目标目录进行锁判断,若该目标文件或目标目录加写锁,则将对此目标文件或目标目录进行操作的所有任务加入到当前任务的依赖队列中;
对当前任务要操作的目标文件或目标目录执行加锁操作,当前任务完成后,对目标文件或目标目录执行解锁操作;
其中,加锁操作包括:对加锁操作针对的目标文件或目标目录的所有上级目录的读锁加1,对加锁操作针对的目标文件或目标目录的写锁加1;
解锁操作包括:对解锁操作针对的目标文件或目标目录的所有上级目录的读锁减1,对解锁操作针对的目标文件或目标目录的写锁减1。
根据本发明的一个实施例,所述任务指令指向的数据节点根据所述任务指令执行任务和/或进行任务分发包括:
接收并解析所述调度服务器发送的任务指令,以得到所述任务;
根据所述任务的类型执行所述任务;
向所述调度服务器反馈所述任务的执行进度和/或结果。
根据本发明的一个实施例,所述任务的类型包括:上传、删除、拷贝、转码、解压、切片、图片处理、重命名、创建目录、Rsync任务、视频格式转化和文件校验。
与现有技术相比,本发明具有以下优点:
本发明实施例的文件分发系统采用调度服务器根据分布式文件存储集群所属的运营商以及各个数据节点的负载信息进行任务调度,可以充分利用分布式文件存储集群内部的物理资源,而且有利于提高多个分布式文件存储集群之间的文件分发效率。
进一步而言,本发明实施例的文件分发系统采用文件锁机制,在多个任务并发的情况下,可以保证文件的一致性。
进一步而言,本发明实施例的文件分发系统中,在各个数据节点配置文件分发客户端,从而可以根据任务类型的不同提供不同的后期处理功能,例如图片格式转化、图片缩略图、视频转码、视频格式转化、视频切片、直播回看等功能,以满足客户多样化的文件处理需求。
此外,本发明实施例的文件分发系统中,调度服务器可以适配客户自定义的动态API,使得客户自定义API的接入无需升级和重新部署。
附图说明
图1是根据本发明实施例的基于分布式存储的文件分发系统的整体结构示意图;
图2是根据本发明实施例的文件分发系统中的调度服务器的结构框图;
图3是根据本发明实施例的文件分发系统中的FTP服务器的结构框图;
图4是根据本发明实施例的文件分发系统中的文件分发客户端的结构框图;
图5是根据本发明实施例的文件分发系统中的Rsync服务器的结构框图;
图6是根据本发明实施例的文件分发系统中的调度服务器对接收到的任务的处理流程示意图;
图7是根据本发明实施例的文件分发系统中的任务预处理模块的工作流程示意图;
图8是根据本发明实施例的文件分发系统中的调度服务器的任务调度流程示意图;
图9是根据本发明实施例的文件分发系统中的调度服务器的路径选择流程示意图;
图10A和图10B是根据本发明实施例的文件分发系统中的调度服务器中的故障恢复模块的工作流程示意图;
图11是根据本发明实施例的文件分发系统中的文件分发客户端的工作流程示意图;
图12是根据本发明实施例的文件分发系统在执行客户发出的任务时的数据传输流图;
图13是根据本发明实施例的文件分发系统在执行数据节点发出的任务时的数据传输流图。
具体实施方式
下面结合具体实施例和附图对本发明作进一步说明,但不应以此限制本发明的保护范围。
参考图1,本实施例的基于分布式存储的文件分发系统可以包括调度服务器11以及一个或多个源组,例如,源组A、源组B和源组C,但并不限于此。另外,该文件分发系统还可以包括数据库(图中未示出),例如mysql数据库。
其中,每一源组包括多个分布式文件存储集群(本文中还可简称为集群),例如源组A包括分布式文件存储集群A1至A3,源组B包括分布式文件存储集群B1至B3,源组C包括分布式文件存储集群C1至C3。同一源组内的多个分布式文件存储集群内的数据保持同步。每一分布式文件存储集群可以包括多个数据节点,每一数据节点可以是单独的计算机或硬件服务器。单个分布式文件存储集群中的各个数据节点可以共用同一存储部件,换言之,该存储部件中的数据是由集群内的多个数据节点共享的。
通常而言,单个分布式文件存储集群中的多个数据节点可以属于同一个或相同的数个运营商,同一源组内的不同分布式文件存储集群可以属于相同的或不同的运营商。此外,单个分布式文件存储集群中的多个数据节点通常可以位于同一机房内。
本实施例的各个分布式文件存储集群相互独立,由调度服务器11进行任务调度,以协调文件的同步。
本实施例的数据节点上可以配置有文件分发客户端(FileDeliveryClient)、FTP服务器(FTPserver)、Rsync服务器(RsyncServer)等。上述文件分发客户端、FTP服务器和Rsync服务器可以是运行在数据节点上的软件程序、软件与固件的结合,或者其他适当的实现方式。此外,数据节点上还可以配置有其他用于数据传输的服务器或者协议模块,例如用于支持UDP或者Http传输的服务器或协议模块。文件分发客户端、FTP服务器和Rsync服务器将在下文中进行详细描述。
进一步而言,调度服务器11可以接受来自用户10或数据节点的任务。例如,用户10可以通过通用的或是自定义的应用程序接口(API)将任务发送至调度服务器11。调度服务器11基于接收到的任务,根据各个分布式文件存储集群所述的运营商以及各个数据节点的负载信息进行任务调度。调度服务器11将任务调度的结果通过任务指令的方式发送至相应的分布式文件存储集群和数据节点。
客户10可以通过多种不同的传输方式将文件上传至数据节点上,例如,可以通过FTP或者Rsync方式将文件上传到指定域名的分布式文件存储集群的数据节点上。数据节点可以基于这样的文件上传事件向调度服务器11发送任务,之后,由调度服务器11进行任务调度,在同一源组内的多个分布式文件存储集群中进行任务分发,将用户上传的文件传输至其他的分布式文件存储集群,使得多个分布式文件存储集群内的数据保持同步。
数据库可以用于存储业务配置信息、任务数据和所有分布式文件存储集群中的数据节点的实时状态。
参考图2,本实施例的调度服务器可以包括:API模块20、任务预处理模块21、负载均衡模块22、任务调度模块23、指令发送模块24、任务生命周期管理模块25、动态反馈模块26和故障恢复模块27。
其中,API模块20用于接收和解析任务。作为一个优选的例子,该API模块20可以包括发布(release)API模块201和动态API模块202。
进一步而言,动态API模块202用于适配客户自定义的动态API。动态API模块202可以基于各种模板语言(例如Velocity)、动态语言(例如Groovy)在线适配客户自定义的动态API,无需部署和升级。需要解释的是,Groovy是一种用于Java虚拟机的敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用Groovy可以不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。Velocity是一种基于java的模板引擎(templateengine),它允许任何人仅仅使用简单的模板语言(templatelanguage)来引用由java代码定义的对象。
发布API模块201用于接收和验证任务,并判断是否启用动态API,例如可以根据客户配置来判断是否启用动态API,默认情况下,可以并不启用动态API,而是采用通用API。如果不启用动态API,则发布API模块201直接对任务进行解析,并可以封装任务对象;如果启用动态API,则利用动态API模块202对任务进行解析,并可以封装任务对象后传输至发布API模块201,或者直接将解析得到的任务传输至发布API模块201封装为任务对象。此外,发布API模块201还可以保存解析得到的任务,并可以将该任务添加到客户任务队列中。
任务预处理模块21可以过滤重复的任务。例如,可以过滤客户重复提交的任务。此外,任务预处理模块21还可以计算各个任务之间的依赖关系,还可以根据任务的优先级对任务进行分组。关于各个任务之间的依赖关系,下文将进行详细描述。
负载均衡模块22收集所有分布式文件存储集群内的数据节点的负载情况,该负载情况可以是各种物理资源的限制,包括但不限于系统负载、CPU使用率、磁盘IO、网络带宽、内存。负载均衡模块22可以根据负载情况进行负载均衡以得到负载信息,例如,可以采用多种适当的负载均衡算法进行负载均衡,例如轮询、智能负载调度、加权轮询等。作为一个非限制性的例子,可以采用智能负载调度算法进行负载均衡,即根据各个数据节点的实际负载,选择最优(例如实际负载最小)的数据节点提供服务,例如执行任务或者进行任务分发。
任务调度模块23获取任务,例如从客户任务队列中获取任务,根据分布式文件存储集群所属的运营商以及多个数据节点的负载信息,在多个数据节点中选择符合要求的数据节点用于执行任务和/或进行任务分发。更进一步而言,任务调度模块23还可以根据任务之间的依赖关系进行任务调度。任务调度模块23生成任务指令,任务指令中包含了任务调度的结果。
更进一步而言,任务调度模块23可以包括:判断子模块,用于根据分布式文件存储集群所属的运营商以及所述多个数据节点的负载信息进行判断,判断所述任务是否能被执行和/或能被分发;第一选择子模块,如果所述任务能被执行,则根据所述负载信息选择数据节点执行所述任务;第二选择子模块,如果所述任务能被分发,则根据所述数据节点所属的运营商、数据节点的负载信息以及数据节点的历史任务运行情况选择文件传输路径,所述传输路径包括用于任务分发的多个数据节点以及各数据节点之间的传输顺序;指令生成子模块,根据所述第一选择子模块和第二选择子模块的输出结果生成所述任务指令。
指令发送模块24将任务指令转发至选中的数据节点。例如,可以根据任务调度的结果,使用通用或者私有协议将任务指令发送至数据节点。更加具体而言,任务指令被发送至数据节点上的任务分发客户端。
任务生命周期管理模块25用于任务的生命周期管理,还可以用于任务的实时进度计算、任务分发超时管理等。
动态反馈模块26用于反馈任务的完成结果,例如执行结果或分发结果。更进一步而言,可以根据任务的完成结果向客户系统或邮箱反馈任务的完成结果。反馈的内容可以采用模板引擎(例如Velocity)进行动态配置。
故障恢复模块27用于为同一源组内的多个分布式文件存储集群提供故障恢复。例如,可以查询检查点之后的该源组的任务,并对任务进行合并处理,源组内的分布式文件存储集群可以根据合并得到的任务进行故障恢复。关于故障恢复的内容下文将进行详细描述。
参考图3,图3示出了本实施例的FTP服务器的结构框图,该FTP服务器可以配置在各个数据节点上。该FTP服务器可以包括:业务配置同步模块31、FTP模块32、FTP事件封装模块33、任务提交模块34。
进一步而言,业务配置同步模块31用于同步和保存业务配置信息。例如,业务配置同步模块31可以定时向调度服务器同步客户的业务配置信息,并将客户的业务配置信息保存至配置文件中。
FTP模块32用于提供通用的FTP服务,例如,可以基于开源的ApacheFtpServer源码进行扩展和封装,用以提供通用的FTP协议功能。
FTP事件封装模块33基于监听到的FTP事件,封装生成任务。例如,FTP事件封装模块33可以监听客户的FTP事件(例如客户基于FTP协议上传文件),在监听到FTP事件时,封装生成任务,并可以记录到日志中。
任务提交模块34将FTP事件封装模块33生成的任务发送至调度服务器,例如,可以使用通用的发布(release)API发送至调度服务器。
参考图4,图4示出了本实施例的文件分发客户端的结构框图,该文件分发客户端可以配置在各个数据节点上。该文件分发客户端可以包括:协议处理模块41、任务执行模块42和任务反馈模块43。
进一步而言,协议处理模块41用于接收并解析来自调度服务器的任务指令,以得到任务。例如,协议处理模块41可以将解析得到的任务添加至任务队列中。
任务执行模块42根据任务的类型执行任务。例如,任务执行模块42可以从任务队列中获取任务,并判断任务类型。如果是分发任务,则到指定的目标开始下载文件,并定时汇报下载进度到调度服务器,在下载完成后,可以对文件的完整性进行校验,例如,可以通过MD5或者SHA等校验方式来保证文件的一致性;如果是删除任务,则删除文件并反馈结果;如果是转码任务,则开始转码,并定时反馈进度;如果是解压任务,则调用相应的解压工具开始解压;如果是切片任务,则开始切片,并定时反馈进度;如果是图片处理任务,则对图片进行相应的处理,并反馈结果;如果是Rsync任务,则调用相应的Rsync指令,等等。
任务反馈模块43向调度服务器反馈任务的执行进度和/或结果。
参考图5,图5示出了本实施例的Rsync服务器(Rsyncserver)的结构框图,该Rsync可以配置在各个数据节点上。该Rsync服务器可以包括:业务配置同步模块51、Rsync模块52、Rsync事件封装模块53和任务提交模块54。
进一步而言,业务配置同步模块51用于同步和保存客户的业务配置信息。例如,业务配置同步模块51可以定时向调度服务器同步客户的业务配置信息,并将客户的业务配置信息保存到Rsync配置文件中。
Rsync模块52用于提供通用的Rsync服务。该Rsync模块52可以基于Unix下的Rsync源码进行封装,提供通用的Rsync服务。
需要解释的是,Rsync是类UNIX系统下的数据镜像备份工具——remotesync。RemoteSync是一款快速增量备份工具,其可以用于远程同步,支持本地复制,或者可以与其他SSH、Rsync主机同步。
Rsync事件封装模块53基于监听到的Rsync事件,封装生成任务。进一步而言,Rsync事件封装模块53可以监听Rsync事件(例如,客户使用Rsync上传文件),在监听到Rsync事件时,封装生成任务,并可以记录至日志中。
任务提交模块54可以将生成的任务发送至调度服务器。
参考图6,图6示出了调度服务器在接收到任务后的部分工作流程。调度服务器接收任务,解析和验证任务后传输至任务预处理模块。
在61处,接收任务。例如,可以接收客户提交的任务(例如,文件同步请求)。
在62处,判断是否启用动态API。例如,可以根据客户的配置判断是否启用动态API。
如果判断结果为否,也即不启用动态API,则转向63,采用发布API模块直接对任务进行解析,还可以将解析的结果封装为任务对象。换言之,在不启用动态API的情况下,可以采用通用的API协议对任务进行解析。
如果判断结果为是,也即启用动态API,则前进至64,采用动态API模块对任务进行解析,还可以将解析的结果封装为任务对象。换言之,在启用动态API的情况下,可以采用动态的API协议(例如预先配置的Groovy脚本定义的API协议)解析任务。
在65处,可以鉴定客户权限。例如,鉴定客户是否有权限执行其提交的任务。一个非限制性的例子是,客户是否有权限将文件下载至某一分布式文件存储集群中。
在66处,将任务提交至预处理模块,以进行后续的处理。
参考图7,图7示出了任务预处理模块的工作流程。任务预处理模块主要用于判断是否存在重复的任务,并将重复的任务过滤或丢弃掉。
在71处开始。
在72处,判断是否有重复任务。例如,根据已有的任务队列,判断新近接收到的任务是否与先前的任务有重复。
如果判断结果为是,也即存在重复,则转向73,丢弃任务。
如果判断结果为否,也即不存在重复,则前进至74,判断新近接收到的任务与先前任务的依赖关系。例如,可以根据任务针对的文件路径关系来判断当前的任务是否依赖其他任务。
在75处,保存任务。
在76处,将任务保存至任务队列。
在77处,结束。
作为一个优选的实施例,可以采用文件锁的方式来限制和判断任务之间的依赖关系。进一步而言,可以通过对任务针对的文件或目录进行加锁和解锁操作,以此来限制任务之间的依赖关系。
单个文件或目录具有独立的读锁和写锁,加锁和解锁操作可以采用如下方式:
加锁:对于任务针对的文件或目录的文件路径中的所有上级目录,对读锁加1,并对任务针对的最终文件或目录的写锁加1;
解锁:对于任务针对的文件或目录的文件路径中的所有上级目录,对读锁减1,并对任务针对的最终文件或目录的写锁减1。
例如,原始文件夹a/b/c的文件锁情况可以为:/a(00)/b(00)/c(00),其中,括号中的内容为文件锁,第一位表示读锁,第二位表示写锁,但并不限于此。
1.A任务对a/b/c文件夹进行重命名,加锁后,文件锁的状态如下:
/a(10)/b(10)/c(01)
/a(10)/b(10)/f(01)
2.B任务要对/a/b/c/d.txt进行重命名操作,将其重命名为/a/b/c/e.txt,对此文件加锁后的结果如下:
/a(20)/b(20)/c(11)/d.txt(01)
/a(20)/b(20)/c(11)/e.txt(01)
3.C任务要对b文件夹进行重命名操作,将其重命名为h,则加锁后结果如下:
/a(30)/b(21)/c(11)
/a(30)/h(01)/c(11)
4.A任务执行成功,解锁后的结果如下:
/a(20)/b(11)/c(10)
5.B任务执行成功,解锁后的结果如下:
/a(10)/b(01)/c(00)/d.txt(00)
/a(10)/b(01)/c(00)/e.txt(00)
6.C任务执行成功,解锁后的结果如下:
/a(00)/b(00)/c(00)
/a(00)/h(00)/c(00)
判断任务是否依赖于其他任务,可以根据文件或目录的文件锁状态进行判断。具体而言,可以包括如下步骤:
(1)对当前任务所要操作的文件或目录的上级路径进行锁判断,若上级目录中有目录加写锁,则把和此目录的操作有关的所有任务加入到当前任务的依赖队列中;
(2)对当前任务所要操作的最终文件或目录进行锁判断,若该文件或目录有加读写锁,则把和此文件或目录的操作有关的所有任务加入到当前任务的依赖队列中;
(3)对此次操作的文件或目录进行加锁操作。
例如,在一应用场景中,文件/a/b/c/d.txt目前锁状态为:/a(10)/b(10)/c(00)/d.txt(00)。
目前的接收到的任务为重命名任务A:a/b->a/f。也即将a/b重命名为a/f。
首先,根据上述第(1)步判断文件夹a仅加读锁,所以无依赖不用操作。
其次,根据上述第(2)步判断文件夹b加写锁,则需要把与文件夹b的操作有关的所有任务加入到A任务的依赖任务队列中。
之后,根据上述第(3)步,文件夹加锁后状态为:/a(10)/b(11)/c(00)/d.txt(00)。
接下来接收到的任务是上传任务B:a/b/c/e.txt。换言之,e.txt原先不存在,目前的上传任务B要上传e.txt。
首先,根据上述第(1)步判断文件夹a仅加读锁,不用处理;文件夹b有加写锁,需要把与文件夹b写锁操作有关的所有任务加入到B任务的依赖任务队列中;文件夹c没加锁,不用处理;
其次,根据上述第(2)步,任务B要操作的最终文件e.txt没加锁,不用处理。
最后,对此次任务B操作的文件e.txt加锁。
由上,本实施例中的任务依赖关系主要依据文件锁来计算,从而可以保证在多个客户并发执行任务情况下,任务能够正确执行。
参考图8,图8示出了调度服务器中的任务调度模块的示例性工作流程。
在801处开始。
在802处,判断是否达到预定负载以及客户资源配额。其中,客户资源配额指的是客户可以使用的资源,例如客户可以使用的分布式文件存储集群有哪些,客户可用的存储空间,客户可用的数据同步带宽等。如果集群的负载信息800表明当前的负载并未达到预定的阈值,而且客户资源配额中还有可用的集群或数据节点,则表示当前的任务可以执行或分发。
在803处,从任务队列中获取任务。
在804处,根据预设的负载均衡机制或算法选择源组中适当的数据节点执行任务。
在805处,根据集群所属的运营商和区域就近原则选择适当的数据节点进行数据传输,也即,初步确定文件传输路径。通常而言,优先选择属于同一运营商和/或物理距离最近的集群中的数据节点进行数据传输。其中,区域就近或者距离就近原则是可选的,通常可以仅根据所属的运营商来初步确定文件传输路径。
在806处,根据历史任务运行情况809进一步选择文件传输路径。例如,在运营商和区域就近原则判断下,可能仍然存在多个可选的文件传输路径,此时,可以根据历史任务运行情况809对文件传输路径进行进一步的优选。此外,还可以根据历史任务运行情况809判断传输方式,例如可以确定是否选择代理服务器或者使用UDP协议进行传输,以便进一步提高传输速度。
在807处,生成任务指令。
在808处,将生成的任务指令提交至指令发送模块。
参考图9,图9示出了根据历史任务运行情况确定最优文件传输路径的一种方法。
在901处开始,
在902处,根据历史任务运行情况选择文件传输路径和传输方式,传输方式例如可以是选择是否使用代理服务器或者使用UDP协议进行传输。
关于文件传输路径的选择,可以首先统计各个路径的数据传输速度,路径的数据传输速度可以是多次任务中的速度的平均值。更具体而言,历史任务运行情况中记录了近期(例如最近的一天内)各个数据节点的任务运行情况。可以按照如下方式统计路径S的数据传输速度,Avg(S)=(S1+S2……Sn)/n,其中,Avg(S)为路径S的数据传输速度,S1、S2……Sn分别为该路径近期在多次任务中的传输速度。
作为一个非限制性的例子,如果路径上的源数据节点或者目标数据节点的负载高于预设的阈值Pmax,则排除该路径;如果路径上的源数据节点或者目标数据节点的负载小于预设的阈值Pmin,则该路径的传输速度不作衰减;在其他情况下,则可以根据负载对数据传输速度做衰减,衰减比率与负载成正比,并按照衰减比率对路径的数据传输速度做加权计算,例如,可以按照下表确定衰减比率:
Diff_Load 衰减比率(Dload)
0-10% 0
20-30% 15%
30-50% 20%
50-100% 30%
大于100% 70%
其中,Diff_Load为路径A和路径B的负载,例如可以是路径上的各个数据节点的负载之和。
之后,可以比较路径的数据传输速度按照衰减比率的加权值,例如,对于路径A和路径B,可以比较Avg(SA)*DloadA和Avg(SB)*DloadB,以选出最优路径。其中,Avg(SA)为路径A的数据传输速度,DloadA为路径A的衰减比率,Avg(SB)为路径B的数据传输速度,DloadB为路径B的衰减比率。路径的数据传输速度例如可以是路径上的各个数据节点的数据传输速度的平均值或最小值或其他适当的值
确定文件传输路径以及传输方式后,可以前进至903,生成任务指令并发送至选中的数据节点执行任务或分发任务。
在904处,监控传输速度是否低于预期速度。例如,在文件传输过程中,如果发现传输速度小于预期速度(例如5MB/s),而且文件传输进度小于预设阈值(例如70%),则终止文件传输,返回902重新选择文件传输路径;如果传输速度大于预期速度,则当文件传输完成(例如文件下载完成)后,前进至905,保存任务运行情况至历史任务运行情况中,以供后续选择文件传输路径时做参考。
在906处结束。
参考图10A和图10B,图10A和图10B示出了故障恢复模块的工作流程。在属于同一个源组的分布式文件存储集群中,如果出现故障(例如机房故障或者网络问题等情况),则需要进入故障恢复流程。例如,在任务执行过程中可以记录任务并设置保存检查点,在故障后,可以对最新的保存检查点后的任务进行恢复。
在每个分布文件存储集群上都可以保存有每个客户的任务运行日志,任务运行日志的文件命名例如可以为customer_task.log。该任务运行日志的文件格式例如可以是[TaskID,TaskType,checkpoint]三元组,每个客户的TaskID为有序自增ID,TaskType为任务类型,checkpoint标记该任务ID是否为检查点。示例如下:
1,Upload
2,Upload
3,Decompress
4,Upload,Chk
6,Delete
7,Upload
其中,Chk为检查点标记。
接下来,参照上面的例子并结合图10A进行说明,在1001处开始。
在1002处,当最新的任务5完成后,锁定任务运行日志。
在1003处,追加当前任务至任务运行日志中。追加后的结果如下:
1,Upload
2,Upload
3,Decompress
4,Upload,Chk
6,Delete
7,Upload
5,Upload
在1004处,计算检查点;在1005处,追加检查点至任务运行日志中。
关于检查点的计算,可以从上个检查点后分析是否存在连续的TaskID,并将最大的连续TaskID标记为检查点。例如,在上面的例子中,计算和追加检查点后的任务运行日志为:
1,Upload
2,Upload
3,Decompress
4,Upload,Chk
6,Delete
7,Upload,Chk
5,Upload
也就是说,任务7被标记为检查点。
在1006处,解锁任务运行日志。在1007处结束。
当集群从故障中恢复后,可以根据任务运行日志对每个客户的检查点之后的任务进行恢复,在上述例子中,可以查询并恢复任务7之后的全部任务。
参考图10B,图10B示出了任务恢复的流程。
在1011处开始。
在1012处,根据检查点请求任务恢复;在1013处,查询数据库,获取任务的数目。
在1014处,根据故障发生的时间是否超过指定时间或者等待恢复的任务数目超过指定数目,判断是否进入rsync模式。
如果判断结果是,则转向1015,进入Rsync模式并返回Rsync任务。Rsync模式可以批量进行数据传输和恢复,尤其适合需要恢复的任务数目较多的情况。
如果判断结果为否,则前进至1016,合并任务;并前进至1017,返回任务结果。
在1018处结束。
参考图11,图11示出了本实施例的文件分发客户端的工作流程。
在1101处开始。
在1102处,接收调度服务器发出的任务指令。
在1103处,解析任务指令,例如,按照设定的协议对任务指令进行解析。
在1104处,将解析得到的任务添加至任务队列中。
在1105处,判断任务类型。
在1106处,如果是上传任务,则到指定的目标开始下载文件,并定时汇报下载进度到调度服务器,在下载完成后,可以校验文件的MD5值,以保证文件的一致性。
如果是删除任务,则在1111处,删除指定的文件并反馈结果;
如果是转码任务,则在1110处,执行转码,例如视频转码;
如果是解压任务,则在1108处,执行解压,例如调用相应的解压工具进行解压;
如果是切片任务,则在1109处,执行切片,例如视频切片;
如果是图片处理任务,则可以进行图片处理,并反馈结果;
如果是拷贝任务,则可以在1107处,执行拷贝;
如果是Rsync任务,则可以调用Rsync指令。
以上各种任务类型仅仅是示例,并不限于此,例如,任务类型还可以包括重命名、创建目录、视频格式转换、文件校验等。
参考图12,图12示出了通过API方式提交上传任务时,文件分发系统的数据流转示意图。在客户10上传文件的分发过程中,可以使用API方式提交任务至调度服务器,将任务的文件源下载地址、文件存放的路径等参数通知调度服务器11,调度服务器11可以根据相应的参数进行调度,指示适当的分布式文件存储集群进行任务分发。下面参考图12进行详细描述,图12中示出了同一源组内的多个分布式文件存储集群,分别是集群A、集群B和集群C,集群A包含数据节点A1至A4,集群B包含数据节点B1至B4,集群C包含数据节点C1至C4,但并不限于此。
首先,客户10提交任务至调度服务器11。例如,客户10可以通过API方式提交任务,该API方式可以是通用的发布API或者是客户自定义的动态API。
之后,调度服务器11根据各个数据节点的负载信息选择适当的数据节点执行任务,例如,可以根据预设的负载均衡算法选择集群A中的数据节点A2到客户10指定的客户源12下载文件,并将任务指令发送至选中的数据节点A2,具体而言,该任务指令为下载指令。
数据节点A2到客户指定的下载地址(例如http://www.a.com/mp4/a.mp4)下载文件,并存放至指定的路径,例如/data/test/mp4/a.mp4。在文件下载完成时,可以根据客户10提供的MD5或者SHA校验文件的一致性。此外,在下载过程中,数据节点A2上的文件分发客户端可以向调度服务器11反馈任务进度,并反馈最终的任务执行结果。由于集群内的多个数据节点可以共享存储,因此,下载至数据节点A2的文件对于集群A内的其他数据节点也是可用的。
当调度服务器11收到来自数据节点A2完成任务的反馈时,根据各个集群所属的运营商、各个数据节点的负载信息等参数进行任务调度,选择任务分发的路径是集群A的数据节点A3到集群B的数据节点B1,并将相应的任务指令发送至数据节点A3和/或数据节点B1,此时的任务指令为分发指令。此外,调度服务器还可以根据是否跨运营商以及历史任务运行情况,选择适当的传输方式,例如判断是否要选择使用UDP协议或者代理服务器的方式在数据节点A3和数据节点B1之间进行传输。假设在相同运营商的情况下,数据节点B1从数据节点A3下载文件,下载地址例如为http://A3/test/mp4/a.mp4。
数据节点B1在执行分发任务的过程中,也可以向调度服务器11反馈执行进度。在任务完成后,数据节点B1可以向调度服务器11发送反馈,表示文件已经下载完成。
之后,调度服务器11可以根据负载信息、运营商、历史任务运行情况等参数选择数据节点和传输路径,以向集群C发出任务指令,此时的任务指令仍然是分发指令。例如,可以指示数据节点C3从数据节点B4下载文件,例如,下载地址可以是http://B4/test/mp4/a.mp4。
参考图13,图13示出了通过FTP或者Rsync方式上传文件时,文件分发系统的数据流转示意图。
在客户10上传文件的分发过程中,客户10可以使用FTP、Rsync等方式上传文件至数据节点,数据节点中的FTP服务器或者Rsync服务器可以在监测到上传事件时,使用API方式提交任务至调度服务器11。调度服务器11可以根据相应的参数进行调度,指示适当的分布式文件存储集群进行任务分发。下面参考图13进行详细描述,图13中示出了同一源组内的多个分布式文件存储集群,分别是集群A、集群B和集群C,集群A包含数据节点A1至A4,集群B包含数据节点B1至B4,集群C包含数据节点C1至C4,但并不限于此。
首先,客户10通过FTP或者Rsync方式上传文件至数据节点A1,例如,可以将文件a.mp4上传至地址/data/test/mp4/a.mp4。
数据节点A1上的FTP服务器或Rsync服务器根据该上传事件生成任务,并提交至调度服务器11。
调度服务器11在接收到该任务后,根据各个集群所属的运营商、负载信息、历史任务运行情况等进行任务调度,选择集群B中的数据节点B1到集群A中的数据节点A3下载文件。此外,还可以根据所属运营商、历史任务运行情况、网络问题等参数,选择是否采用UDP协议或者代理服务器等特殊的传输方式。假设在相同运营商的情况下,数据节点B1从数据节点A3下载文件,下载地址例如可以为http://A3/test/mp4/a.mp4。
在数据节点B1完成下载后,可以发送反馈至调度服务器11。调度服务器11基于接收到的反馈,根据任务调度的结果,向集群C下发任务指令,该任务指令为分发指令,指示数据节点C3从数据节点B4下载文件。
数据节点C3在收到任务指令后,可以从数据节点B4下载文件,例如通过地址http://B4/test/mp4/a.mp4下载文件。下载完成后,数据节点C3可以发送反馈至调度服务器11。
上述图12和图13分别示出了客户直接向调度服务器发出任务以及数据节点由上传事件触发而向调度服务器发出任务的实例。但是需要解释的是,客户直接发出任务的方式不限于此,客户可以通过通用的发布API、自定义的动态API或者其他方式向调度服务器发出任务,数据节点也可以基于其他类型的事件而生成任务,例如删除、拷贝等等。
本发明的实施例还提供了一种基于分布式存储的文件分发方法,包括如下步骤:
调度服务器基于接收到的任务,根据分布式文件存储集群所属的运营商以及各个数据节点的负载信息进行任务调度并生成任务指令,所述任务由所述客户发出或者由所述数据节点发出;
所述任务指令指向的数据节点根据所述任务指令执行任务和/或进行任务分发,以使得同一源组内的所有分布式文件存储集群内的数据保持同步,所述源组包括多个分布式文件存储集群,每一分布式文件存储集群包括多个所述数据节点。
其中,任务调度的过程可以包括:接收和解析所述任务;收集所有分布式文件存储集群内的数据节点的负载信息;根据所述分布式文件存储集群所属的运营商以及所述多个数据节点的负载信息,在所述多个数据节点中选择符合要求的数据节点用于执行任务和/或进行任务分发,并生成所述任务指令;将所述任务指令转发至选中的数据节点。
关于该方法的更多详细内容,请参照前述实施例中关于文件分发系统的相关描述,这里不再赘述。
本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。

Claims (22)

1.一种基于分布式存储的文件分发系统,其特征在于,包括:
调度服务器;
一个或多个源组,每一源组包括多个分布式文件存储集群,每一分布式文件存储集群包括多个数据节点;
其中,所述调度服务器基于接收到的任务,根据所述分布式文件存储集群所属的运营商以及各个数据节点的负载信息进行任务调度并生成任务指令,所述任务由所述客户发出或者由所述数据节点发出;
所述任务指令指向的数据节点根据所述任务指令执行任务和/或进行任务分发,以使得同一源组内的所有分布式文件存储集群内的数据保持同步。
2.根据权利要求1所述的系统,其特征在于,所述调度服务器包括:
API模块,用于接收和解析所述任务;
负载均衡模块,用于收集所有分布式文件存储集群内的数据节点的负载信息;
任务调度模块,获取所述任务,根据所述分布式文件存储集群所属的运营商以及所述多个数据节点的负载信息,在所述多个数据节点中选择符合要求的数据节点用于执行任务和/或进行任务分发,并生成所述任务指令;
指令发送模块,将所述任务调度模块产生的任务指令转发至选中的数据节点。
3.根据权利要求2所述的系统,其特征在于,所述任务调度模块包括:
判断子模块,用于根据所述分布式文件存储集群所属的运营商以及所述多个数据节点的负载信息进行判断,判断所述任务是否能被执行和/或能被分发;
第一选择子模块,如果所述任务能被执行,则根据所述负载信息选择数据节点执行所述任务;
第二选择子模块,如果所述任务能被分发,则根据所述数据节点所属的运营商、数据节点的负载信息以及数据节点的历史任务运行情况选择文件传输路径,所述传输路径包括用于任务分发的多个数据节点以及各数据节点之间的传输顺序;
指令生成子模块,根据所述第一选择子模块和第二选择子模块的输出结果生成所述任务指令。
4.根据权利要求2所述的系统,其特征在于,所述第二选择子模块还根据所述数据节点所述的运营商,指示所述传输路径上的多个数据节点选择不同的传输协议进行数据传输,以优化传输效率。
5.根据权利要求2所述的系统,其特征在于,所述API模块包括:
动态API模块,用于适配所述客户自定义的动态API;
发布API模块,用于接收和验证所述任务,判断是否启用所述动态API,如果不启用所述动态API,则直接对所述任务进行解析;如果启用所述动态API,则使用所述动态API模块解析对所述任务进行解析。
6.根据权利要求2所述的系统,其特征在于,所述调度服务器还包括以下模块中的一个或多个:
任务预处理模块,在所述任务调度模块获取所述任务之前,过滤重复的任务;
任务生命周期管理模块,用于管理所述任务的生命周期、计算所述任务的执行进度和/或对所述任象的执行进行超时管理;
动态反馈模块,反馈所述任务的完成结果;
故障恢复模块,用于为同一源组内的多个分布式文件存储集群提供故障恢复。
7.根据权利要求6所述的系统,其特征在于,所述任务预处理模块还计算不同任务之间的依赖关系,所述任务调度模块还根据所述不同任务之间的依赖关系进行任务调度。
8.根据权利要求7所述的系统,其特征在于,所述任务预处理模块采用如下方式判断不同任务之间的依赖关系:
对当前任务要操作的目标文件或目标目录的上级路径进行锁判断,若所述上级路径中有目录加写锁,则将对此目录进行操作的所有任务加入到当前任务的依赖队列中;
对当前任务要操作的目标文件或目标目录进行锁判断,若该目标文件或目标目录加写锁,则将对此目标文件或目标目录进行操作的所有任务加入到当前任务的依赖队列中;
对当前任务要操作的目标文件或目标目录执行加锁操作,当前任务完成后,对目标文件或目标目录执行解锁操作;
其中,加锁操作包括:对加锁操作针对的目标文件或目标目录的所有上级目录的读锁加1,对加锁操作针对的目标文件或目标目录的写锁加1;
解锁操作包括:对解锁操作针对的目标文件或目标目录的所有上级目录的读锁减1,对解锁操作针对的目标文件或目标目录的写锁减1。
9.根据权利要求1所述的系统,其特征在于,所述数据节点配置有文件分发客户端,所述文件分发客户端包括:
协议处理模块,接收并解析所述调度服务器发送的任务指令,以得到所述任务;
任务执行模块,从所述协议处理模块获取所述任务,根据所述任务的类型执行所述任务;
任务反馈模块,向所述调度服务器反馈所述任务的执行进度和/或结果。
10.根据权利要求9所述的系统,其特征在于,所述任务的类型包括:上传、删除、拷贝、转码、解压、切片、图片处理、重命名、创建目录、Rsync任务、视频格式转化和文件校验。
11.根据权利要求1所述的系统,其特征在于,所述数据节点配置有FTP服务器,所述FTP服务器包括:
FTP模块,用于提供通用的FTP服务;
FTP事件封装模块,基于监听到的FTP事件,封装生成所述任务;
任务提交模块,将所述FTP事件封装模块生成的任务传输至所述调度服务器。
12.根据权利要求1所述的系统,其特征在于,所述数据节点配置有Rsync服务器,所述Rsync服务器包括:
Rsync模块,用于提供通用的Rsync服务;
Rsync事件封装模块,基于监听到的Rsync事件,封装生成所述任务;
任务提交模块,将所述Rsync时间封装模块生成的任务传输至所述调度服务器。
13.一种基于分布式存储的文件分发方法,其特征在于,包括:
调度服务器基于接收到的任务,根据分布式文件存储集群所属的运营商以及各个数据节点的负载信息进行任务调度并生成任务指令,所述任务由所述客户发出或者由所述数据节点发出;
所述任务指令指向的数据节点根据所述任务指令执行任务和/或进行任务分发,以使得同一源组内的所有分布式文件存储集群内的数据保持同步,所述源组包括多个分布式文件存储集群,每一分布式文件存储集群包括多个所述数据节点。
14.根据权利要求13所述的方法,其特征在于,根据所述分布式文件存储集群所属的运营商以及各个数据节点的负载信息进行任务调度并生成任务指令包括:
接收和解析所述任务;
收集所有分布式文件存储集群内的数据节点的负载信息;
根据所述分布式文件存储集群所属的运营商以及所述多个数据节点的负载信息,在所述多个数据节点中选择符合要求的数据节点用于执行任务和/或进行任务分发,并生成所述任务指令;
将所述任务指令转发至选中的数据节点。
15.根据权利要求14所述的方法,其特征在于,在所述多个数据节点中选择符合要求的数据节点用于执行任务和/或进行任务分发包括:
根据所述分布式文件存储集群所属的运营商以及所述多个数据节点的负载信息进行判断,判断所述任务是否能被执行和/或能被分发;
如果所述任务能被执行,则根据所述负载信息选择数据节点执行所述任务;
如果所述任务能被分发,则根据所述数据节点所属的运营商、数据节点的负载信息以及数据节点的历史任务运行情况选择文件传输路径,所述传输路径包括用于任务分发的多个数据节点以及各数据节点之间的传输顺序;
生成所述任务指令。
16.根据权利要求15所述的方法,其特征在于,在所述多个数据节点中选择符合要求的数据节点用于执行任务和/或进行任务分发还包括:根据所述数据节点所述的运营商,指示所述传输路径上的多个数据节点选择不同的传输协议进行数据传输,以优化传输效率。
17.根据权利要求14所述的方法,其特征在于,接收和解析所述任务包括:
配置动态API模块,用于适配所述客户自定义的动态API;
接收和验证所述任务,判断是否启用所述动态API,如果不启用所述动态API,则直接对所述任务进行解析;如果启用所述动态API,则使用所述动态API模块解析对所述任务进行解析。
18.根据权利要求14所述的方法,其特征在于,根据所述分布式文件存储集群所属的运营商以及各个数据节点的负载信息进行任务调度并生成任务指令还包括以下步骤中的一个或多个:
在所述任务调度模块获取所述任务之前,过滤重复的任务;
管理所述任务的生命周期、计算所述任务的执行进度和/或对所述任象的执行进行超时管理;
反馈所述任务的完成结果;
为同一源组内的多个分布式文件存储集群提供故障恢复。
19.根据权利要求18所述的方法,其特征在于,根据所述分布式文件存储集群所属的运营商以及各个数据节点的负载信息进行任务调度并生成任务指令还包括:计算不同任务之间的依赖关系,所述任务调度模块还根据所述不同任务之间的依赖关系进行任务调度。
20.根据权利要求19所述的方法,其特征在于,采用如下方式判断不同任务之间的依赖关系:
对当前任务要操作的目标文件或目标目录的上级路径进行锁判断,若所述上级路径中有目录加写锁,则将对此目录进行操作的所有任务加入到当前任务的依赖队列中;
对当前任务要操作的目标文件或目标目录进行锁判断,若该目标文件或目标目录加写锁,则将对此目标文件或目标目录进行操作的所有任务加入到当前任务的依赖队列中;
对当前任务要操作的目标文件或目标目录执行加锁操作,当前任务完成后,对目标文件或目标目录执行解锁操作;
其中,加锁操作包括:对加锁操作针对的目标文件或目标目录的所有上级目录的读锁加1,对加锁操作针对的目标文件或目标目录的写锁加1;
解锁操作包括:对解锁操作针对的目标文件或目标目录的所有上级目录的读锁减1,对解锁操作针对的目标文件或目标目录的写锁减1。
21.根据权利要求13所述的方法,其特征在于,所述任务指令指向的数据节点根据所述任务指令执行任务和/或进行任务分发包括:
接收并解析所述调度服务器发送的任务指令,以得到所述任务;
根据所述任务的类型执行所述任务;
向所述调度服务器反馈所述任务的执行进度和/或结果。
22.根据权利要求21所述的方法,其特征在于,所述任务的类型包括:上传、删除、拷贝、转码、解压、切片、图片处理、重命名、创建目录、Rsync任务、视频格式转化和文件校验。
CN201510616269.7A 2015-09-24 2015-09-24 基于分布式存储的文件分发系统及方法 Active CN105162878B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201510616269.7A CN105162878B (zh) 2015-09-24 2015-09-24 基于分布式存储的文件分发系统及方法
PCT/CN2016/098652 WO2017050141A1 (zh) 2015-09-24 2016-09-11 基于分布式存储的文件分发系统及方法
EP16848023.4A EP3340573A1 (en) 2015-09-24 2016-09-11 Distributed storage-based file delivery system and method
US15/759,047 US10776159B2 (en) 2015-09-24 2016-09-11 Distributed storage-based filed delivery system and method using calculated dependencies between tasks to ensure consistancy of files

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510616269.7A CN105162878B (zh) 2015-09-24 2015-09-24 基于分布式存储的文件分发系统及方法

Publications (2)

Publication Number Publication Date
CN105162878A true CN105162878A (zh) 2015-12-16
CN105162878B CN105162878B (zh) 2018-08-31

Family

ID=54803630

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510616269.7A Active CN105162878B (zh) 2015-09-24 2015-09-24 基于分布式存储的文件分发系统及方法

Country Status (4)

Country Link
US (1) US10776159B2 (zh)
EP (1) EP3340573A1 (zh)
CN (1) CN105162878B (zh)
WO (1) WO2017050141A1 (zh)

Cited By (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105516334A (zh) * 2015-12-25 2016-04-20 上海帝联信息科技股份有限公司 Cdn文件分发系统
CN105550362A (zh) * 2015-12-31 2016-05-04 浙江大华技术股份有限公司 一种存储系统的索引数据修复方法和存储系统
CN105701156A (zh) * 2015-12-29 2016-06-22 青岛海信网络科技股份有限公司 一种分布式文件系统管理方法及装置
CN105955804A (zh) * 2016-04-22 2016-09-21 星环信息科技(上海)有限公司 一种处理分布式事务的方法与设备
WO2017050141A1 (zh) * 2015-09-24 2017-03-30 网宿科技股份有限公司 基于分布式存储的文件分发系统及方法
CN106777034A (zh) * 2016-12-09 2017-05-31 裴宏伟 一种文档批量格式转换的方法和系统
CN106874109A (zh) * 2016-12-29 2017-06-20 朗新科技股份有限公司 一种分布式作业分发处理方法及系统
CN107015855A (zh) * 2017-03-14 2017-08-04 微梦创科网络科技(中国)有限公司 一种支持时间策略的异步服务集中调度方法及装置
CN107231399A (zh) * 2016-03-25 2017-10-03 阿里巴巴集团控股有限公司 高可用服务器集群的扩容方法以及装置
CN107229517A (zh) * 2016-03-25 2017-10-03 阿里巴巴集团控股有限公司 任务调度方法和装置
CN107423403A (zh) * 2017-07-27 2017-12-01 郑州云海信息技术有限公司 一种基于分布式文件系统的融合锁管理方法和系统
CN107465709A (zh) * 2016-06-03 2017-12-12 阿里巴巴集团控股有限公司 分布式镜像构建任务方法及装置、系统
CN107465654A (zh) * 2016-08-31 2017-12-12 哈尔滨广播电视台 用于广播电视台各业务子网间内容分发与安全查杀的系统
CN107547653A (zh) * 2017-09-11 2018-01-05 华北水利水电大学 一种分布式文件存储系统
CN107870815A (zh) * 2016-09-26 2018-04-03 中国电信股份有限公司 一种分布式系统的任务调度方法以及系统
WO2018153309A1 (zh) * 2017-02-21 2018-08-30 贵州白山云科技有限公司 一种实现按需加速的文件传输方法、装置、介质及设备
CN108650320A (zh) * 2018-05-15 2018-10-12 北京中创腾锐技术有限公司 一种集群环境下同构级联设备配置文件同步方法
CN108737573A (zh) * 2018-06-28 2018-11-02 郑州云海信息技术有限公司 一种分布式存储集群及其服务响应控制方法、装置和设备
CN108965362A (zh) * 2017-05-19 2018-12-07 腾讯科技(深圳)有限公司 一种数据处理方法、服务器及存储介质
CN108959547A (zh) * 2018-07-02 2018-12-07 山东汇贸电子口岸有限公司 一种pv快照分布式数据库集群恢复方法
CN109088907A (zh) * 2017-06-14 2018-12-25 北京京东尚科信息技术有限公司 文件传递方法及其设备
CN109144529A (zh) * 2018-08-02 2019-01-04 郑州市景安网络科技股份有限公司 操作系统模板下刷方法、装置、设备及可读存储介质
CN109144746A (zh) * 2018-07-19 2019-01-04 中国航空工业集团公司沈阳飞机设计研究所 一种gft训练系统的消息异步分发系统及方法
CN109298949A (zh) * 2018-12-04 2019-02-01 国网辽宁省电力有限公司大连供电公司 一种分布式文件系统的资源调度系统
CN109376137A (zh) * 2018-12-17 2019-02-22 中国人民解放军战略支援部队信息工程大学 一种文件处理方法及装置
CN109521971A (zh) * 2018-11-26 2019-03-26 广东小天才科技有限公司 一种基于跨机房的数据读写分离方法及系统
CN109618003A (zh) * 2019-01-14 2019-04-12 网宿科技股份有限公司 一种服务器规划方法、服务器及存储介质
CN109656694A (zh) * 2018-11-02 2019-04-19 国网青海省电力公司 一种储能监控数据的分布式处理方法及系统
CN109936587A (zh) * 2017-12-15 2019-06-25 北京京东尚科信息技术有限公司 控制方法、控制装置、电子设备及存储介质
CN109960687A (zh) * 2019-03-28 2019-07-02 北京百分点信息科技有限公司 一种文件处理系统及方法
CN109981780A (zh) * 2019-03-27 2019-07-05 深圳市网心科技有限公司 一种调度方法、节点设备、调度系统及存储介质
CN110191146A (zh) * 2019-03-21 2019-08-30 北京北信源软件股份有限公司 一种基于浏览器的文件远程调阅方法及系统
WO2019218708A1 (zh) * 2018-05-15 2019-11-21 华为技术有限公司 一种任务处理方法及处理装置、计算机系统
CN110708369A (zh) * 2019-09-25 2020-01-17 深圳市网心科技有限公司 设备节点的文件部署方法、装置、调度服务器及存储介质
CN110830567A (zh) * 2019-10-31 2020-02-21 中国银行股份有限公司 一种数据传输方法及装置
CN110879707A (zh) * 2018-09-06 2020-03-13 迈普通信技术股份有限公司 编译任务执行方法及装置
CN110909076A (zh) * 2019-10-31 2020-03-24 北京浪潮数据技术有限公司 一种存储集群数据同步方法、装置、设备及存储介质
CN110912969A (zh) * 2019-11-04 2020-03-24 西安雷风电子科技有限公司 一种文件高速传输源节点、目的节点装置及系统
CN111092922A (zh) * 2018-10-24 2020-05-01 杭州海康威视系统技术有限公司 一种信息发送方法及装置
CN111158887A (zh) * 2019-12-31 2020-05-15 中国银行股份有限公司 一种集中式数据分布式处理方法及装置
CN111190541A (zh) * 2019-12-26 2020-05-22 天津中科曙光存储科技有限公司 存储系统的流控方法以及计算机可读存储介质
CN111258742A (zh) * 2020-02-17 2020-06-09 杭州依图医疗技术有限公司 一种数据同步的方法、系统、计算设备及存储介质
CN111427693A (zh) * 2020-03-26 2020-07-17 北京字节跳动网络技术有限公司 数据处理方法、系统、介质、服务系统及旁路卸载系统
CN111600957A (zh) * 2020-05-20 2020-08-28 中国工商银行股份有限公司 文件传输方法、装置、系统和电子设备
CN111818143A (zh) * 2020-06-28 2020-10-23 深圳市高德信通信股份有限公司 一种cdn网络内容分发管理平台
CN111866176A (zh) * 2020-08-04 2020-10-30 蝉鸣科技(西安)有限公司 一种ftp/ftps分布式文件传输方法、装置及计算机存储介质
CN111953538A (zh) * 2020-07-31 2020-11-17 深圳市高德信通信股份有限公司 一种基于大数据处理的cdn带宽调度系统
CN112187875A (zh) * 2020-09-09 2021-01-05 苏州浪潮智能科技有限公司 一种分布式系统多目标集群挂载策略自动匹配方法、系统
CN112256695A (zh) * 2020-09-18 2021-01-22 银联商务股份有限公司 可视化的图计算方法及其系统、存储介质以及电子设备
CN112380183A (zh) * 2020-11-13 2021-02-19 深圳市和讯华谷信息技术有限公司 分布式文件的同步方法、装置、计算机设备及存储介质
CN112398884A (zh) * 2019-08-14 2021-02-23 上海哔哩哔哩科技有限公司 镜像回源场景下流量调度控制方法、可读存储介质及计算机设备
CN111818145B (zh) * 2020-06-29 2021-03-23 苏州好玩友网络科技有限公司 一种文件传输方法、装置、系统、设备及存储介质
CN112671855A (zh) * 2020-12-15 2021-04-16 建信金融科技有限责任公司 文件传输方法及系统
CN112866310A (zh) * 2019-11-12 2021-05-28 北京金山云网络技术有限公司 Cdn回源的校验方法和校验服务器、cdn集群
CN112954008A (zh) * 2021-01-26 2021-06-11 网宿科技股份有限公司 一种分布式任务处理方法、装置、电子设备及存储介质
CN113225761A (zh) * 2020-01-21 2021-08-06 华为技术有限公司 一种选择网络切片的方法及电子设备
CN113722084A (zh) * 2020-05-25 2021-11-30 中移(苏州)软件技术有限公司 数据处理方法、装置、电子设备和计算机存储介质
CN113965282A (zh) * 2021-10-09 2022-01-21 福建新大陆通信科技股份有限公司 一种多媒体ip户外终端应急广播方法
CN115086304A (zh) * 2022-07-08 2022-09-20 甘肃省气象信息与技术装备保障中心 一种基于ftp协议的多源分布式下载系统
CN115297361A (zh) * 2022-07-29 2022-11-04 北京字跳网络技术有限公司 转码任务的处理方法、装置、转码系统、电子设备及介质
CN116661978A (zh) * 2023-08-01 2023-08-29 浙江云融创新科技有限公司 一种分布式的流程处理方法、装置及分布式业务流程引擎
CN116996505A (zh) * 2023-09-27 2023-11-03 天津神舟通用数据技术有限公司 一种基于调度引擎的文件交换控制方法和系统

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108874528A (zh) * 2017-05-09 2018-11-23 北京京东尚科信息技术有限公司 分布式任务存储系统和分布式任务存储/读取方法
EP3502890A1 (en) * 2017-12-22 2019-06-26 Bull SAS Method for managing resources of a computer cluster by means of historical data
CN110022337A (zh) * 2018-01-09 2019-07-16 阿里巴巴集团控股有限公司 资源调度方法、装置、设备和系统
CN110866062B (zh) * 2018-08-09 2023-11-24 菜鸟智能物流控股有限公司 基于分布式集群的数据同步方法以及装置
CN109918106B (zh) * 2019-02-21 2022-05-17 广东星辉天拓互动娱乐有限公司 一种混合cdn统一源站自动刷新方法及系统
CN109981755A (zh) * 2019-03-12 2019-07-05 深圳灵图慧视科技有限公司 图像识别方法、装置和电子设备
US11683236B1 (en) 2019-03-30 2023-06-20 Snap Inc. Benchmarking to infer configuration of similar devices
US11853192B1 (en) * 2019-04-16 2023-12-26 Snap Inc. Network device performance metrics determination
CN110381107B (zh) * 2019-05-24 2023-04-07 平安普惠企业管理有限公司 文件下载方法、装置、计算机设备及存储介质
CN110633250B (zh) * 2019-07-19 2023-05-09 完美世界(北京)软件科技发展有限公司 资源管理系统和方法
CN110489487B (zh) * 2019-08-16 2023-06-09 云帐房网络科技有限公司 一种应用程序数据存储与灵活调用的方法及系统
CN110543354B (zh) * 2019-09-05 2023-06-13 腾讯科技(上海)有限公司 任务调度方法、装置、设备及存储介质
CN110493358B (zh) * 2019-09-16 2022-05-27 世纪海航(厦门)科技有限公司 一种基于自组网技术的文件传输方法、装置及服务器
CN111400027A (zh) * 2019-11-15 2020-07-10 杭州海康威视系统技术有限公司 一种分布式任务处理方法、装置及系统
CN111090519B (zh) * 2019-12-05 2024-04-09 东软集团股份有限公司 任务执行方法、装置、存储介质及电子设备
CN111190992B (zh) * 2019-12-10 2023-09-08 华能集团技术创新中心有限公司 一种非结构化数据的海量存储方法及存储系统
CN111416842B (zh) * 2020-03-06 2022-08-05 科大讯飞股份有限公司 一种资源集群自动分发及热更新系统及方法
CN111405015B (zh) * 2020-03-09 2022-09-30 中国建设银行股份有限公司 一种数据处理方法、装置、设备及存储介质
CN111488209B (zh) * 2020-03-22 2023-12-15 深圳市空管实业发展有限公司 一种启发式Storm节点任务调度优化方法
CN111427698B (zh) * 2020-03-26 2022-11-15 深圳平安医疗健康科技服务有限公司 基于Azakban的数据同步方法、装置和计算机设备
CN111614484B (zh) * 2020-04-13 2021-11-02 网宿科技股份有限公司 一种节点流量的调入、恢复方法、系统及中心服务器
CN111586043B (zh) * 2020-05-07 2022-08-19 广东培正学院 一种计算机设备运维管理系统
CN115517009B (zh) * 2020-05-19 2023-10-13 深圳市欢太科技有限公司 集群管理方法、集群管理装置、存储介质与电子设备
CN113726832B (zh) * 2020-05-26 2024-03-05 杭州海康存储科技有限公司 分布式存储系统的数据存储方法、装置、系统及设备
CN111858727B (zh) * 2020-06-24 2024-02-02 金财互联数据服务有限公司 一种基于模板配置的多数据源数据导出系统及方法
CN111966533A (zh) * 2020-07-23 2020-11-20 招联消费金融有限公司 电子文件管理方法、装置、计算机设备和存储介质
CN112269647A (zh) * 2020-10-26 2021-01-26 广州华多网络科技有限公司 节点调度、切换与协调方法及其相应的装置、设备、介质
CN112738206B (zh) * 2020-12-25 2022-08-23 北京浪潮数据技术有限公司 一种分布式集群和云平台的对接方法及组件
CN113821313A (zh) * 2020-12-28 2021-12-21 京东科技控股股份有限公司 一种任务调度方法、装置及电子设备
CN112822250B (zh) * 2020-12-31 2023-03-17 鲸灵科技有限责任公司 一种大数据平台去中心化的调度和执行方法、装置
CN112732660B (zh) * 2021-01-05 2024-02-27 中国工商银行股份有限公司 干预式文件传输方法、装置及系统
CN113391902B (zh) * 2021-06-22 2023-03-31 未鲲(上海)科技服务有限公司 一种任务调度方法及设备、存储介质
CN113556402B (zh) * 2021-07-29 2024-03-19 北京百度网讯科技有限公司 数据下载调度方法、装置及电子设备
CN113656512B (zh) * 2021-10-21 2022-01-28 浙江太美医疗科技股份有限公司 数据解锁方法、装置、设备和存储介质
CN115037702B (zh) * 2022-05-23 2024-04-12 北京梧桐车联科技有限责任公司 报文分发、数据发送方法及设备
CN114697353B (zh) * 2022-05-27 2022-09-06 邹平市供电有限公司 一种分布式存储集群电网数据存储控制方法
CN114860349B (zh) * 2022-07-06 2022-11-08 深圳华锐分布式技术股份有限公司 数据加载方法、装置、设备及介质
CN115499435B (zh) * 2022-08-08 2023-08-11 中亿(深圳)信息科技有限公司 任务调度方法、系统、电子设备及计算机可读存储介质
CN115576700A (zh) * 2022-12-07 2023-01-06 北京志翔科技股份有限公司 分布式任务执行方法、服务节点及服务器
CN117610325B (zh) * 2024-01-24 2024-04-05 中国人民解放军国防科技大学 基于分布式的优化设计节点调度方法、系统和设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101064729A (zh) * 2006-04-27 2007-10-31 中国电信股份有限公司 通过cdn网络实现ftp下载服务的系统和方法
CN102571959A (zh) * 2012-01-11 2012-07-11 北京奇虎科技有限公司 一种数据下载系统及方法
CN104320495A (zh) * 2014-11-13 2015-01-28 许继电气股份有限公司 一种用电信息采集系统的海量数据存储方法及系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6112243A (en) * 1996-12-30 2000-08-29 Intel Corporation Method and apparatus for allocating tasks to remote networked processors
US20020091784A1 (en) * 1997-09-10 2002-07-11 Baker Richard A. Web interface to a device and an electrical network control system
US7392391B2 (en) * 2001-11-01 2008-06-24 International Business Machines Corporation System and method for secure configuration of sensitive web services
US9270532B2 (en) * 2005-10-06 2016-02-23 Rateze Remote Mgmt. L.L.C. Resource command messages and methods
CN101193294A (zh) 2006-11-29 2008-06-04 中兴通讯股份有限公司 一种视频内容服务系统和服务方法
US9614924B2 (en) * 2008-12-22 2017-04-04 Ctera Networks Ltd. Storage device and method thereof for integrating network attached storage with cloud storage services
US8832173B2 (en) * 2009-01-20 2014-09-09 Sap Ag System and method of multithreaded processing across multiple servers
WO2011074630A1 (ja) * 2009-12-17 2011-06-23 日本電気株式会社 負荷分散システム、負荷分散方法、負荷分散システムを構成する装置およびプログラム
US8887163B2 (en) * 2010-06-25 2014-11-11 Ebay Inc. Task scheduling based on dependencies and resources
CN102075358B (zh) * 2010-12-31 2013-10-30 网宿科技股份有限公司 针对大规模服务器集群的内容分发和部署的系统和方法
CN103002274B (zh) 2011-09-16 2016-05-18 腾讯科技(深圳)有限公司 一种基于离线下载的移动多媒体实时转码播放系统及方法
US9047288B2 (en) * 2012-01-06 2015-06-02 Apple Inc. Intelligent data delivery and storage based on data characteristics
US9195443B2 (en) * 2012-01-18 2015-11-24 International Business Machines Corporation Providing performance tuned versions of compiled code to a CPU in a system of heterogeneous cores
US8782744B1 (en) * 2012-06-15 2014-07-15 Amazon Technologies, Inc. Managing API authorization
US9183049B1 (en) * 2013-01-25 2015-11-10 Amazon Technologies, Inc. Processing content using pipelines
CN103391312B (zh) 2013-06-26 2017-06-09 北京奇虎科技有限公司 资源离线下载方法及装置
US9560170B2 (en) * 2014-03-21 2017-01-31 Ptc Inc. System and method of abstracting communication protocol using self-describing messages
US9513967B2 (en) * 2014-09-18 2016-12-06 International Business Machines Corporation Data-aware workload scheduling and execution in heterogeneous environments
CN104834722B (zh) * 2015-05-12 2018-03-02 网宿科技股份有限公司 基于cdn的内容管理系统
CN105162878B (zh) 2015-09-24 2018-08-31 网宿科技股份有限公司 基于分布式存储的文件分发系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101064729A (zh) * 2006-04-27 2007-10-31 中国电信股份有限公司 通过cdn网络实现ftp下载服务的系统和方法
CN102571959A (zh) * 2012-01-11 2012-07-11 北京奇虎科技有限公司 一种数据下载系统及方法
CN104320495A (zh) * 2014-11-13 2015-01-28 许继电气股份有限公司 一种用电信息采集系统的海量数据存储方法及系统

Cited By (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017050141A1 (zh) * 2015-09-24 2017-03-30 网宿科技股份有限公司 基于分布式存储的文件分发系统及方法
US10776159B2 (en) 2015-09-24 2020-09-15 Wangsu Science & Technology Co., Ltd. Distributed storage-based filed delivery system and method using calculated dependencies between tasks to ensure consistancy of files
CN105516334A (zh) * 2015-12-25 2016-04-20 上海帝联信息科技股份有限公司 Cdn文件分发系统
CN105516334B (zh) * 2015-12-25 2019-01-18 上海帝联信息科技股份有限公司 Cdn文件分发系统
CN105701156A (zh) * 2015-12-29 2016-06-22 青岛海信网络科技股份有限公司 一种分布式文件系统管理方法及装置
CN105701156B (zh) * 2015-12-29 2019-06-14 青岛海信网络科技股份有限公司 一种分布式文件系统管理方法及装置
CN105550362B (zh) * 2015-12-31 2019-11-19 浙江大华技术股份有限公司 一种存储系统的索引数据修复方法和存储系统
CN105550362A (zh) * 2015-12-31 2016-05-04 浙江大华技术股份有限公司 一种存储系统的索引数据修复方法和存储系统
CN107231399A (zh) * 2016-03-25 2017-10-03 阿里巴巴集团控股有限公司 高可用服务器集群的扩容方法以及装置
CN107229517A (zh) * 2016-03-25 2017-10-03 阿里巴巴集团控股有限公司 任务调度方法和装置
US10581674B2 (en) 2016-03-25 2020-03-03 Alibaba Group Holding Limited Method and apparatus for expanding high-availability server cluster
CN107231399B (zh) * 2016-03-25 2020-11-06 阿里巴巴集团控股有限公司 高可用服务器集群的扩容方法以及装置
US11023446B2 (en) 2016-04-22 2021-06-01 Transwarp Technology (Shanghai) Co., Ltd. Method and device for processing distributed transaction
WO2017181931A1 (zh) * 2016-04-22 2017-10-26 星环信息科技(上海)有限公司 一种处理分布式事务的方法与设备
CN105955804B (zh) * 2016-04-22 2018-06-05 星环信息科技(上海)有限公司 一种处理分布式事务的方法与设备
CN105955804A (zh) * 2016-04-22 2016-09-21 星环信息科技(上海)有限公司 一种处理分布式事务的方法与设备
CN107465709A (zh) * 2016-06-03 2017-12-12 阿里巴巴集团控股有限公司 分布式镜像构建任务方法及装置、系统
CN107465709B (zh) * 2016-06-03 2020-09-01 阿里巴巴集团控股有限公司 分布式镜像构建任务方法及装置、系统
CN107465654A (zh) * 2016-08-31 2017-12-12 哈尔滨广播电视台 用于广播电视台各业务子网间内容分发与安全查杀的系统
CN107465654B (zh) * 2016-08-31 2020-07-31 哈尔滨广播电视台 用于广播电视台各业务子网间内容分发与安全查杀的系统
CN107870815A (zh) * 2016-09-26 2018-04-03 中国电信股份有限公司 一种分布式系统的任务调度方法以及系统
CN106777034A (zh) * 2016-12-09 2017-05-31 裴宏伟 一种文档批量格式转换的方法和系统
CN106874109A (zh) * 2016-12-29 2017-06-20 朗新科技股份有限公司 一种分布式作业分发处理方法及系统
WO2018153309A1 (zh) * 2017-02-21 2018-08-30 贵州白山云科技有限公司 一种实现按需加速的文件传输方法、装置、介质及设备
CN107015855B (zh) * 2017-03-14 2020-10-30 微梦创科网络科技(中国)有限公司 一种支持时间策略的异步服务集中调度方法及装置
CN107015855A (zh) * 2017-03-14 2017-08-04 微梦创科网络科技(中国)有限公司 一种支持时间策略的异步服务集中调度方法及装置
CN108965362A (zh) * 2017-05-19 2018-12-07 腾讯科技(深圳)有限公司 一种数据处理方法、服务器及存储介质
CN109088907A (zh) * 2017-06-14 2018-12-25 北京京东尚科信息技术有限公司 文件传递方法及其设备
CN107423403A (zh) * 2017-07-27 2017-12-01 郑州云海信息技术有限公司 一种基于分布式文件系统的融合锁管理方法和系统
CN107547653B (zh) * 2017-09-11 2021-03-30 华北水利水电大学 一种分布式文件存储系统
CN107547653A (zh) * 2017-09-11 2018-01-05 华北水利水电大学 一种分布式文件存储系统
CN109936587A (zh) * 2017-12-15 2019-06-25 北京京东尚科信息技术有限公司 控制方法、控制装置、电子设备及存储介质
US11941434B2 (en) 2018-05-15 2024-03-26 Huawei Technologies Co., Ltd. Task processing method, processing apparatus, and computer system
WO2019218708A1 (zh) * 2018-05-15 2019-11-21 华为技术有限公司 一种任务处理方法及处理装置、计算机系统
CN108650320A (zh) * 2018-05-15 2018-10-12 北京中创腾锐技术有限公司 一种集群环境下同构级联设备配置文件同步方法
CN108737573A (zh) * 2018-06-28 2018-11-02 郑州云海信息技术有限公司 一种分布式存储集群及其服务响应控制方法、装置和设备
CN108959547A (zh) * 2018-07-02 2018-12-07 山东汇贸电子口岸有限公司 一种pv快照分布式数据库集群恢复方法
CN108959547B (zh) * 2018-07-02 2022-02-18 上海浪潮云计算服务有限公司 一种pv快照分布式数据库集群恢复方法
CN109144746A (zh) * 2018-07-19 2019-01-04 中国航空工业集团公司沈阳飞机设计研究所 一种gft训练系统的消息异步分发系统及方法
CN109144746B (zh) * 2018-07-19 2022-04-01 中国航空工业集团公司沈阳飞机设计研究所 一种gft训练系统的消息异步分发系统及方法
CN109144529A (zh) * 2018-08-02 2019-01-04 郑州市景安网络科技股份有限公司 操作系统模板下刷方法、装置、设备及可读存储介质
CN110879707B (zh) * 2018-09-06 2022-10-14 迈普通信技术股份有限公司 编译任务执行方法及装置
CN110879707A (zh) * 2018-09-06 2020-03-13 迈普通信技术股份有限公司 编译任务执行方法及装置
CN111092922A (zh) * 2018-10-24 2020-05-01 杭州海康威视系统技术有限公司 一种信息发送方法及装置
CN109656694A (zh) * 2018-11-02 2019-04-19 国网青海省电力公司 一种储能监控数据的分布式处理方法及系统
CN109521971A (zh) * 2018-11-26 2019-03-26 广东小天才科技有限公司 一种基于跨机房的数据读写分离方法及系统
CN109298949B (zh) * 2018-12-04 2021-08-20 国网辽宁省电力有限公司大连供电公司 一种分布式文件系统的资源调度系统
CN109298949A (zh) * 2018-12-04 2019-02-01 国网辽宁省电力有限公司大连供电公司 一种分布式文件系统的资源调度系统
CN109376137A (zh) * 2018-12-17 2019-02-22 中国人民解放军战略支援部队信息工程大学 一种文件处理方法及装置
CN109618003B (zh) * 2019-01-14 2022-02-22 网宿科技股份有限公司 一种服务器规划方法、服务器及存储介质
CN109618003A (zh) * 2019-01-14 2019-04-12 网宿科技股份有限公司 一种服务器规划方法、服务器及存储介质
CN110191146A (zh) * 2019-03-21 2019-08-30 北京北信源软件股份有限公司 一种基于浏览器的文件远程调阅方法及系统
CN109981780A (zh) * 2019-03-27 2019-07-05 深圳市网心科技有限公司 一种调度方法、节点设备、调度系统及存储介质
CN109960687A (zh) * 2019-03-28 2019-07-02 北京百分点信息科技有限公司 一种文件处理系统及方法
CN112398884A (zh) * 2019-08-14 2021-02-23 上海哔哩哔哩科技有限公司 镜像回源场景下流量调度控制方法、可读存储介质及计算机设备
CN112398884B (zh) * 2019-08-14 2023-08-25 上海哔哩哔哩科技有限公司 镜像回源场景下流量调度控制方法、可读存储介质及计算机设备
CN110708369A (zh) * 2019-09-25 2020-01-17 深圳市网心科技有限公司 设备节点的文件部署方法、装置、调度服务器及存储介质
CN110909076A (zh) * 2019-10-31 2020-03-24 北京浪潮数据技术有限公司 一种存储集群数据同步方法、装置、设备及存储介质
CN110830567A (zh) * 2019-10-31 2020-02-21 中国银行股份有限公司 一种数据传输方法及装置
CN110912969A (zh) * 2019-11-04 2020-03-24 西安雷风电子科技有限公司 一种文件高速传输源节点、目的节点装置及系统
CN110912969B (zh) * 2019-11-04 2023-04-07 西安雷风电子科技有限公司 一种文件高速传输源节点、目的节点装置及系统
CN112866310B (zh) * 2019-11-12 2022-03-04 北京金山云网络技术有限公司 Cdn回源的校验方法和校验服务器、cdn集群
CN112866310A (zh) * 2019-11-12 2021-05-28 北京金山云网络技术有限公司 Cdn回源的校验方法和校验服务器、cdn集群
CN111190541A (zh) * 2019-12-26 2020-05-22 天津中科曙光存储科技有限公司 存储系统的流控方法以及计算机可读存储介质
CN111190541B (zh) * 2019-12-26 2024-04-12 天津中科曙光存储科技有限公司 存储系统的流控方法以及计算机可读存储介质
CN111158887B (zh) * 2019-12-31 2023-11-17 中国银行股份有限公司 一种集中式数据分布式处理方法及装置
CN111158887A (zh) * 2019-12-31 2020-05-15 中国银行股份有限公司 一种集中式数据分布式处理方法及装置
CN113225761A (zh) * 2020-01-21 2021-08-06 华为技术有限公司 一种选择网络切片的方法及电子设备
CN111258742A (zh) * 2020-02-17 2020-06-09 杭州依图医疗技术有限公司 一种数据同步的方法、系统、计算设备及存储介质
CN111258742B (zh) * 2020-02-17 2023-08-04 杭州依图医疗技术有限公司 一种数据同步的方法、系统、计算设备及存储介质
CN111427693A (zh) * 2020-03-26 2020-07-17 北京字节跳动网络技术有限公司 数据处理方法、系统、介质、服务系统及旁路卸载系统
CN111427693B (zh) * 2020-03-26 2023-04-28 北京字节跳动网络技术有限公司 数据处理方法、系统、介质、服务系统及旁路卸载系统
CN111600957A (zh) * 2020-05-20 2020-08-28 中国工商银行股份有限公司 文件传输方法、装置、系统和电子设备
CN113722084A (zh) * 2020-05-25 2021-11-30 中移(苏州)软件技术有限公司 数据处理方法、装置、电子设备和计算机存储介质
CN111818143A (zh) * 2020-06-28 2020-10-23 深圳市高德信通信股份有限公司 一种cdn网络内容分发管理平台
CN111818145B (zh) * 2020-06-29 2021-03-23 苏州好玩友网络科技有限公司 一种文件传输方法、装置、系统、设备及存储介质
CN111953538A (zh) * 2020-07-31 2020-11-17 深圳市高德信通信股份有限公司 一种基于大数据处理的cdn带宽调度系统
CN111866176A (zh) * 2020-08-04 2020-10-30 蝉鸣科技(西安)有限公司 一种ftp/ftps分布式文件传输方法、装置及计算机存储介质
CN112187875B (zh) * 2020-09-09 2022-05-13 苏州浪潮智能科技有限公司 一种分布式系统多目标集群挂载策略自动匹配方法、系统
CN112187875A (zh) * 2020-09-09 2021-01-05 苏州浪潮智能科技有限公司 一种分布式系统多目标集群挂载策略自动匹配方法、系统
WO2022057279A1 (zh) * 2020-09-18 2022-03-24 银联商务股份有限公司 可视化的图计算方法及其系统、存储介质以及电子设备
CN112256695A (zh) * 2020-09-18 2021-01-22 银联商务股份有限公司 可视化的图计算方法及其系统、存储介质以及电子设备
CN112256695B (zh) * 2020-09-18 2023-07-28 银联商务股份有限公司 可视化的图计算方法及其系统、存储介质以及电子设备
CN112380183A (zh) * 2020-11-13 2021-02-19 深圳市和讯华谷信息技术有限公司 分布式文件的同步方法、装置、计算机设备及存储介质
CN112671855B (zh) * 2020-12-15 2023-08-25 中国建设银行股份有限公司 文件传输方法及系统
CN112671855A (zh) * 2020-12-15 2021-04-16 建信金融科技有限责任公司 文件传输方法及系统
CN112954008B (zh) * 2021-01-26 2022-11-04 网宿科技股份有限公司 一种分布式任务处理方法、装置、电子设备及存储介质
CN112954008A (zh) * 2021-01-26 2021-06-11 网宿科技股份有限公司 一种分布式任务处理方法、装置、电子设备及存储介质
CN113965282A (zh) * 2021-10-09 2022-01-21 福建新大陆通信科技股份有限公司 一种多媒体ip户外终端应急广播方法
CN113965282B (zh) * 2021-10-09 2023-05-12 福建新大陆通信科技股份有限公司 一种多媒体ip户外终端应急广播方法
CN115086304A (zh) * 2022-07-08 2022-09-20 甘肃省气象信息与技术装备保障中心 一种基于ftp协议的多源分布式下载系统
CN115086304B (zh) * 2022-07-08 2024-04-19 甘肃省气象信息与技术装备保障中心 一种基于ftp协议的多源分布式下载系统
CN115297361A (zh) * 2022-07-29 2022-11-04 北京字跳网络技术有限公司 转码任务的处理方法、装置、转码系统、电子设备及介质
CN116661978A (zh) * 2023-08-01 2023-08-29 浙江云融创新科技有限公司 一种分布式的流程处理方法、装置及分布式业务流程引擎
CN116661978B (zh) * 2023-08-01 2023-10-31 浙江云融创新科技有限公司 一种分布式的流程处理方法、装置及分布式业务流程引擎
CN116996505A (zh) * 2023-09-27 2023-11-03 天津神舟通用数据技术有限公司 一种基于调度引擎的文件交换控制方法和系统
CN116996505B (zh) * 2023-09-27 2023-12-15 天津神舟通用数据技术有限公司 一种基于调度引擎的文件交换控制方法和系统

Also Published As

Publication number Publication date
US10776159B2 (en) 2020-09-15
CN105162878B (zh) 2018-08-31
EP3340573A4 (en) 2018-06-27
WO2017050141A1 (zh) 2017-03-30
EP3340573A1 (en) 2018-06-27
US20190042303A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
CN105162878A (zh) 基于分布式存储的文件分发系统及方法
TWI528191B (zh) File Handling Method Based on Cloud Storage, System and Server Cluster System
US20150237113A1 (en) Method and system for file transmission
US20180373517A1 (en) Systems, methods, and apparatuses for docker image downloading
CN110825420B (zh) 分布式集群的配置参数更新方法、装置、设备及存储介质
KR100985443B1 (ko) 시퀀스 관리 장치, 데이터 백업 방법, 데이터 백업 클라이언트, 데이터 백업 시스템, 프로그램가능 하드웨어 장치 및 데이터 백업 장치
CN101707543B (zh) 一种支持多任务类型的企业媒体总线系统和方法
US10341509B2 (en) Client device state collection and network-based processing solution
CN111049884A (zh) 一种分布式大文件存储系统及文件上传和下载方法
CN106021315B (zh) 一种应用程序的日志管理方法及系统
CN108062243B (zh) 执行计划的生成方法、任务执行方法及装置
JP4205323B2 (ja) 配信システム、配信サーバとその配信方法、配信プログラム
US8954793B2 (en) Method and a storage server for data redundancy
CN112054923B (zh) 业务请求检测方法、设备及介质
WO2024016624A1 (zh) 多集群访问方法和系统
CN105183470A (zh) 一种自然语言处理系统化服务平台
CN111338893A (zh) 进程日志处理方法、装置、计算机设备以及存储介质
CN112653757A (zh) 文件管理系统、方法及设备
Li et al. Research and application of server cluster load balancing technology
CN111756800A (zh) 一种处理突发流量的方法和系统
CN106936643B (zh) 一种设备联动方法以及终端设备
CN114900449B (zh) 一种资源信息管理方法、系统及装置
CN110636072A (zh) 一种目标域名的调度方法、装置、设备及存储介质
CN112380040B (zh) 一种消息处理的方法、装置、电子设备及存储介质
CN114138715A (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