CN116382947B - 一种面向高能同步辐射光源海量数据的传输系统和方法 - Google Patents

一种面向高能同步辐射光源海量数据的传输系统和方法 Download PDF

Info

Publication number
CN116382947B
CN116382947B CN202310646004.6A CN202310646004A CN116382947B CN 116382947 B CN116382947 B CN 116382947B CN 202310646004 A CN202310646004 A CN 202310646004A CN 116382947 B CN116382947 B CN 116382947B
Authority
CN
China
Prior art keywords
transmission
data
database
module
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
CN202310646004.6A
Other languages
English (en)
Other versions
CN116382947A (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.)
Institute of High Energy Physics of CAS
Original Assignee
Institute of High Energy Physics of CAS
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 Institute of High Energy Physics of CAS filed Critical Institute of High Energy Physics of CAS
Priority to CN202310646004.6A priority Critical patent/CN116382947B/zh
Publication of CN116382947A publication Critical patent/CN116382947A/zh
Application granted granted Critical
Publication of CN116382947B publication Critical patent/CN116382947B/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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Abstract

本发明提供一种面向高能同步辐射光源海量数据的传输系统和方法,考虑架构和技术上的扩展性,能够面向多实验,异构存储提供高性能的数据传输服务。本发明设计了通用的数据传输架构,分为三层,包括后端支撑层、数据传输层和前端应用层,每层分别由不同的功能模块组成,各个模块协同工作。本发明设计的多DAQ源数据获取模块,能够通过DAQ数据库和目录监听的方式获取传输数据,并生成传输元数据。集群管理模块支持集群传输,解决单一传输节点性能瓶颈,实现数据的高效传输。传输模块支持配置多种数据传输协议,满足数据的分级存储和长期备份需求。消息通知模块实现了传输元数据的消息通知功能等。本发明具有非常重要的工程需求和科研价值。

Description

一种面向高能同步辐射光源海量数据的传输系统和方法
技术领域
本发明属于海量科学数据传输领域,具体涉及一种面向高能同步辐射光源海量数据的传输系统和方法。
背景技术
HEPS作为第四代同步辐射装置,性能指标相对于现有光源有数量级的提升。同时,随着光学、电子学技术的发展,以及先进的光学仪器、探测器的使用,用户实验过程中的实验数据将呈现爆发性增加,海量的实验原始数据、实验元数据需要高效、可靠的传输和传递,以满足装置、光束线实验站、用户等各方面的实验需求,促进科研实验产出。
本发明将应用于HEPS大科学装置,实现海量的实验数据的高效可靠传输。
数据传输问题是每个高能物理实验必须要解决的问题,每个高能物理实验都开发有针对自己实验的数据传输系统。目前,已开始取数的高能物理实验已经部署了各自的数据传输系统,如羊八井宇宙观测实验的数据传输系统、大亚湾中微子实验数据传输系统、CMS(Compact Muon Solenoid)实验和ATLAS(A Toroidal LHC Apparatu S)实验的数据管理系统,它们都是易地建设的高能物理实验,有数据传输的需求。
羊八井宇宙线观测实验的数据传输是利用羊八井至高能所的8M光纤数据传输线路,实现将中子探测设备的宇宙线观测数据每小时从羊八井向北京传输。该实验的数据传输系统,将羊八井的探测设备的数据采集系统形成的文件使用Rsync来完成传输,再存入MySQL数据库中。Rsync是基于ssh工作形式下的数据镜像备份工具,为了避免数据传输过程中的内容重复传,Rsync会在数据传输前分析传输发送和接收端的源文件和目标文件,将有差异的部分传输到对端。羊八井宇宙线观测实验每天生成的单个文件大小约25M,需要传输的单个数据量不大,且传输系统整体所能提供的功能较少,不支持xrootd协议,也不适用于单次产生大数据量的物理实验。
大亚湾中微子实验是部署在广东省深圳市大鹏镇大亚湾核电站内的研究中微子的中美国际合作项目,探测器每天会产生约310GB的数据量,传输系统设计开发采用SPADE框架。这些数据由SPADE系统从大亚湾现场传送到高能所计算中心,再分发到其他合作单位。SPADE系统最早是美国LBNL用在南极考察时的数据传输系统,基于Java开发,系统庞大,不支持集群传输、xrootd协议和消息通知等功能,不适用于单次产生大数据量的物理实验。
CMS是位于瑞士日内瓦的欧洲核子研究组织(European Organization forNuclear Research,CERN)的大型强子对撞机(Large Hadron Collider, LHC)的四个探测器之一。实验主要将每一次发生在它中心的由质子碰撞所产生的信息,作为一个事件记录下来,然后将信息传到各站点进行大量数据的计算和分析。CMS探测器接收产生数据的速度约每秒100MB,每年有PB级的实验数据传输到位于世界各地的50多个网格站点进行备份、处理和分析。CMS实验使用了PhEDEx(Physics Experiment Data Export)系统来完成 CMS 各个计算站点间的大批量数据传输和管理的计算,站点采用了有层次的分布式架构,采用了三级站点的网格形式,Tier-0位于计算中心直接与实验数据获取系统相连,得到数据后根据数据需要传给Tier-1层的站点,Tier-1层站点数据备份后传到Tier-2层进行数据分析,使用网格体系结构来完成数据从实验站点的产生到分析保存的过程。
ATLAS 实验和 CMS 实验的实验环境相似,都是同属于位于 CERN 的 LHC 大型强子对撞机实验。ATLAS 实验与 CMS 的数据传输和管理方式相似,采用 DDM 分布式数据管理系统对实验各站点进行管理分配,使用文件传输服务通道完成站点间的数据共享。CMS和 ATLAS 实验的数据传输, 使用GridFTP来完成TPC的任务。但随着GridFTP支持模式和业务模式的改变,以及LHC实验中使用的其他远程数据访问协议的日益成熟,近期,全球LHC计算网格(WLCG)成立了一个工作组,探讨如何使用替代机制来满足TPC的要求。具体来说,选择HTTP协议和XRootD协议中存在的TPC机制进行进一步的开发和评估。CMS 和 ATLAS 实验的数据传输采用基于路由级别的网格式传输形式,适用于网格式站点分布的传输场景,无法适用于HEPS这种非网格化的实验数据传输。
综上,现有的数据传输系统不支持多种源数据的获取、不支持集群部署和多种数据传输协议,无法满足HEPS的分级分类存储和长期备份需要,也不支持将传输元数据消息通知给第三方系统,因此,现有的数据传输系统无法满足HEPS海量科学数据传输和管理需求。
发明内容
为解决上述技术问题,本发明针对HEPS海量科学数据的传输需求,设计了HEPS科学数据传输系统,提供一种面向高能同步辐射光源海量数据的传输系统,设计了通用的数据传输架构,分为三层,包括后端支撑层、数据传输层和前端应用层,每层分别由不同的功能模块组成,各个模块协同工作。包括多DAQ(Data Acquisition System)源的数据获取模块,支持通过DAQ数据库和目录监听的方式获取传输数据,并生成传输元数据;数据传输模块支持多种数据传输协议,满足数据的分级分类存储和磁带库长久备份;集群管理模块支持集群部署,解决单一传输节点遇到的性能瓶颈;消息通知模块支持标准的RESTful API接口,实现了向其它科学数据管理系统发送传输元数据消息。
为达到上述目的,本发明采用如下技术方案:
一种面向高能同步辐射光源海量数据的传输系统,包括后端支撑层、数据传输层和前端应用层;
所述后端支撑层为其它各层提供数据持久化和服务支撑,包括任务调度模块、集群管理模块、日志模块和数据持久化模块;
所述数据传输层提供科学数据传输服务,包括数据获取模块、消息队列模块、数据传输模块和消息通知模块;
所述前端应用层提供可视化的数据传输部署和展示,包括配置管理模块和传输监控模块。
进一步地,所述任务调度模块使用Quartz定时任务框架实现对DAQ数据库接口轮询和消息通知;所述集群管理模块基于后端配置并使用Redis内存数据库管理和保存前端Session会话和传输服务器节点状态;所述日志模块采用文本形式实时记录传输过程,便于异常问题排查和故障诊断;所述数据持久化模块提供前端配置信息和数据传输元数据的持久化。
进一步地,所述数据获取模块用来获取各个实验待传输数据集和文件列表,所述传输系统支持通过DAQ数据库轮询和目录监听两种方式获取数据,并生成数据传输元数据;所述消息队列模块使用RabbitMQ队列框架传递消息;所述数据传输模块提供数据传输功能,支持配置多种数据传输协议;所述消息通知模块通过RESTful接口向高能同步辐射光源科学数据管理系统发送消息。
进一步地,所述配置管理模块实现对线站实验、DAQ接口、传输配置及定时任务管理;所述传输监控模块对传输过程进行监控,实现对待传输文件、传输文件及异常文件的监控和图形化的展示。
本发明还提供一种面向高能同步辐射光源海量数据的传输方法,包括如下步骤:
步骤1、准备运行环境,包括准备DAQ数据库、传输数据库、内存数据库、消息队列、xrootd-client和配置文件;
步骤2、配置传输任务,包括配置实验、数据源、目标、服务器的传输线程数、本地脚本和消息通知信息;
步骤3、执行数据传输流程,通过DAQ数据库轮询和目录监听获取传输数据,并生成传输元数据,放入传输消息队列,通过数据传输模块调用相应的传输协议,将文件由发送端传递到接收端,同时生成对应的传输结果记录,将传输元数据发送给高能同步辐射光源科学数据管理系统。
进一步地,所述步骤1中,所述传输系统支持对接传输数据库、内存数据库和消息队列,通过后端的配置文件配置各接口信息,所述接口信息包括接口类型、接口地址、认证信息。
进一步地,所述步骤2中,所述传输系统支持对接DAQ数据库接口,DAQ数据库接口附着于实验,通过前端界面配置DAQ数据库接口信息,所述DAQ数据库接口信息包括数据库类型、接口地址、认证信息和交互语句。
进一步地,所述步骤3中,所述DAQ数据库轮询使用Quartz任务调度框架,前端界面负责任务的配置管理,显示任务状态和最新执行时间;前端界面配置的定时规则和触发器的记录存储到传输数据库TRIGGERS表,任务信息存储到JOB_DETAILS表;系统启动后,后台QuartzSchedulerThread线程不断调用调度器,调用CronTrigger类中方法不断扫描TRIGGERS表中时间,获取已到点触发的DAQ数据库轮询和消息通知任务, 并通过传输数据库JOB_DETAILS表查询到具体Job类中方法,执行相应任务。
进一步地,所述步骤3中,所述传输系统根据查询到的实验和任务配置信息,与DAQ数据库进行两次交互,第一次交互获取数据集号,第二次交互根据数据集号获取待传输的数据,并分配集群传输服务节点,生成数据传输元数据的信息,保存到传输数据库,生成消息到传输消息队列。
进一步地,所述步骤3中,所述目录监听是通过扫描线站存储的数据目录,获取待传输文件信息,分配集群传输服务节点并生成消息发送到传输消息队列;在实现目录监听时,当有文件写入磁盘,会立即监听到,若文件写入未完成,此时取到的文件是非完整文件,所述传输系统通过判断文件前后的大小和修改时间是否一致,来检测文件是否写入完成,保证文件的完整性;并且设置基于正则表达式的文件和目录注册功能。
进一步地,所述传输元数据是汇总实验本身对传输数据管理的需要并与第三方系统进行数据交互,所述传输元数据信息包括实验信息,DAQ信息,文件信息,传输信息,消息通知信息;所述文件信息包括文件名、源路径、目的路径,状态、校验值,时间戳等。
进一步地,所述传输消息队列实现异步消息的管理,将数据获取模块和数据传输模块进行解耦,解决数据传输过程中任务积压问题;同时使用多服务器节点,多线程从传输消息队列里签收任务,实现集群和多线程传输,保障传输速率,从而应对峰值。
进一步地,所述传输方法采用集群传输,集群传输中每个传输服务器节点属于传输群集的一部分,后端挂载相同存储,通过在配置文件里设置与其它节点相同的传输数据库、传输消息队列和Redis内存数据库,该节点自动加入集群,共享Redis内存数据库、消息队列和传输元数据;所述传输集群利用Redis内存数据库实现传输服务器节点状态的管理;传输服务器节点上线时,将其IP和状态上报到Redis内存数据库中,并在程序里设置心跳机制,每秒上报一次心跳;如果2秒内没有接收到心跳上报,Redis内存数据库清理掉该传输服务器节点;传输集群中的每个传输服务器均具有一个监听进程,当一台传输服务器的配置发生变化时,通过监听进程更新本传输服务器的配置,查询共享的Redis内存数据库获取其它传输节点,发送http请求到其它传输服务器的监听进程并更新配置。
进一步地,为满足数据在不同介质间传输,所述传输方法兼容中心存储支持的POSIX接口和磁带库支持的xrood协议,并提供多种数据传输命令,包括rsync、scp、xrdcp以及eos cp;为提高应用扩展性,提供多种目标目录生成策略,包括保持原始、按时间生成,接收端缓存及通过文件名提取。
进一步地,所述消息通知模块提供基于标准的RESTful接口的方式进行传输元数据的通信和交互。
有益效果:
本发明针对HEPS科学装置数据传输面临海量科学数据传输的问题,根据实验数据分级分类存储和传输元数据信息与科学数据管理系统之间的交互需求,设计了通用的数据传输系统架构,提供了一套高效的数据传输系统。本发明能为科研人员及时分析实验结果,最大化促进科学产出的关键和基础条件,具有非常重要的工程需求和科研价值。具有如下优点:
1、数据获取模块的设计,实现了在一套传输系统上,能够对接不同实验存储,通过DAQ数据库或者目录监听的方式获传输数据。针对不同实验的数据,生成了通用的数据传输元数据。
2、传输系统实现了集群的传输方案,通过消息队列的方式实现了异步消息的管理,对数据获取和数据传输模块进行解耦,使用集群传输保证了数据高效和可靠的传输。
3、传输系统支持在异构存储中进行传输,通过设计通用的数据传输方式,集成多种数据传输协议,支持线站存储和中心存储使用的POSIX访问接口,磁带库使用的xrootd协议。
4、传输系统提供消息通知的功能,将数据传输的元数据采用标准的JSON格式,通过标准的RESTful API接口发送给HEPS科学数据管理系统。
5、考虑架构和技术上的扩展性,设计了通用的数据传输架构,能够面向多实验,异构存储提供高性能的数据传输服务。
附图说明
图1为本发明的面向高能同步辐射光源(HEPS)海量数据的传输系统架构图;
图2 为通用的数据获取图;
图3 为任务调度模块功能图;
图4 为数据获取模块执行流程图;
图5为传输消息队列图;
图6为集群部署架构图;
图7 为通用数据传输流程设计图;
图8为数据传输执行流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明是根据国家重大科技基础设施HEPS的实验数据的传输需求,研究、设计一套能够满足海量科学数据高效、可靠传输的科学数据传输系统和方法,本发明描述的面向HEPS海量数据的传输系统能够提供高性能的数据传输服务,满足HEPS实验数据分级存储和长期备份的需求。所述传输系统分为三层,包括后端支撑层、数据传输层和前端应用层。每层分别由不同的功能模块组成,各个模块协同工作,完成实验数据的传输工作,具体实施方式如下。
本发明的一种面向高能同步辐射光源海量数据的传输系统能够提供高性能的数据传输服务,满足高能同步辐射光源(HEPS)实验数据分级存储和长期备份的需求。所述传输系统分为三层,包括后端支撑层、数据传输层和前端应用层。每层分别由不同的功能模块组成,具体架构如图1所示。
所述后端支撑层为其它各层提供数据持久化和服务支撑,分为任务调度模块、集群管理模块、日志模块和数据持久化模块。任务调度模块使用Quartz定时任务框架实现对DAQ数据库接口轮询和消息通知;集群管理模块使用Redis内存数据库管理和保存前端Session会话和传输服务器节点状态;日志模块采用文本形式实时记录传输过程,便于异常问题排查和故障诊断。所述数据持久化模块提供前端配置信息和数据传输元数据的持久化。
所述数据传输层提供了科学数据传输服务,分为数据获取模块、消息队列模块、数据传输模块和消息通知模块。数据获取模块用来获取各个实验待传输数据集和文件列表,系统支持通过DAQ数据库轮询和目录监听两种方式获取数据,并生成数据传输元数据;消息队列模块使用RabbitMQ队列框架传递消息;数据传输模块提供数据传输功能,支持配置多种数据传输协议;消息通知模块实现了通过RESTful接口向HEPS科学数据管理系统发送消息。
所述前端应用层提供了可视化的数据传输部署和展示,分为配置管理模块和传输监控模块。所述配置管理模块实现了对线站实验、DAQ接口、传输配置及定时任务管理;所述传输监控模块会对传输过程进行监控,通过该模块实现了对待传输文件、传输文件及异常文件的监控和图形化的展示。
如图2所示,数据获取模块能够通过配置传输目录或轮询DAQ数据库的方式获取线站存储、中心存储和磁带库上待传输的数据。通用性上,通过前端界面配置实现。
系统支持对接多个数据库接口,通过前端界面配置数据库接口信息,所述数据库接口信息包括数据库类型、接口地址、认证信息和交互语句。与其它系统对接数据库的方式不同,本发明的传输系统需根据查询到的实验和任务配置信息,与数据库进行两次交互,第一次交互获取数据集号(在HEPS线站实验管理中,一次实验扫描的数据,属于同一个数据集)、第二次交互根据数据集号获取待传输的数据,生成数据传输元数据,并分配集群传输服务节点,生成消息到传输消息队列。
数据库的轮询方式使用了Quartz任务调度框架,模块实现如图3所示,前端界面负责任务的配置管理,显示任务状态和最新执行时间。前端界面配置的定时规则和触发器的记录存储到传输数据库TRIGGERS(触发器)表,任务信息存储到JOB_DETAILSr(任务细节)表。系统启动后,后台QuartzSchedulerThread(Quartz调度)线程将不断调用调度器,调用CronTrigger(定时触发)类中方法不断扫描TRIGGERS表中时间,获取那些已到点触发的DAQ数据库轮询和消息通知任务, 并通过传输数据库JOB_DETAILS表查询到具体Job类中方法,执行相应任务。
数据获取模块启动后,启动DAQ接口模块轮询任务,查询接口配置,如图4所示,根据配置选择DAQ数据库的接口轮询或者目录监听,如果是DAQ接口轮询,根据查询到的实验和任务配置信息,与DAQ数据库进行两次交互,获取数据集号(在HEPS线站实验管理中,一次实验扫描的数据,属于同一个数据集)、源文件目录、传输目标目录、文件名、文件生成时间等信息等,并与分配传输服务节点一起保存到传输数据库,生成消息发送到传输消息队列。
目录监听的方式是通过扫描线站存储的数据目录,获取待传输文件信息并生成消息发送到传输消息队列。在实现目录监听时,当有文件写入磁盘,会立即监听到,若文件写入未完成,此时取到的文件是非完整文件,系统通过判断文件前后的大小和修改时间是否一致,来检测文件是否写入完成,保证文件的完整性。
通用性方面,系统支持配置数据来源目录,获取待传输数据,也支持配置多级目录匹配规则和文件类型,基于正则表达式,实现对来源目录下的子目录和指定的文件类型进行匹配和传输,该方式兼容多种存储。
数据传输的元数据的设计和实现是通过汇总了实验本身对传输数据管理的需要以及与第三方系统进行数据交互,HEPS实验需要用到的传输元数据信息包括了实验信息,DAQ信息,文件信息,传输信息和消息通知信息等,文件信息包括文件名、源路径、目的路径,状态、校验值,时间戳等。
所述消息队列模块负责实现传输消息队列的管理,系统集成RabbitMQ对来自数据获取模块发送的消息进行缓冲和暂时存储。数据传输模块作为消费者,获取传输队列里的传输任务并对文件进行传输。
由于传输文件获取速率远高于传输速率,使用消息队列实现了异步消息管理,将数据获取模块和数据传输模块解耦,解决数据传输过程中任务积压问题。应对峰值,同时使用多服务器节点,多线程从传输消息队列里签收任务,实现集群和多线程传输,保障传输速率。消息队列模块的实现如图5所示。
为解决单一传输节点遇到的性能瓶颈,实现数据的高效传输,系统支持以集群的方式进行部署,集群内节点协同工作,共享数据,共同分担传输任务,如图6所示。
集群传输中每个传输服务器节点属于群集的一部分,后端挂载相同存储通过在配置文件里设置与其它节点相同的传输数据库、消息队列和Redis内存数据库,该节点会自动加入集群,共享Redis、消息队列和传输元数据。传输集群利用了Redis内存数据库实现了传输服务器节点状态的管理,节点上线的时候会将自己的IP和状态上报到Redis数据库中,并在程序里设置心跳机制,每秒上报一次心跳,如果2秒内没有接收到心跳上报,Redis会清理掉该服务器节点。配置变化通过监听进程获取,集群中每个传输服务器都有一个监听进程,当一台服务器配置发生变化时,通过监听进程更新本服务器配置,查询共享的Redis数据库获取其它传输节点,发送http请求到其它服务器的监听进程并更新配置。
为满足数据在不同介质间传输,兼容中心存储支持的POSIX接口和磁带库支持的xrood协议,系统提供了多种数据传输命令,包括rsync、scp、xrdcp以及eos cp;为提高应用扩展性,系统提供了多种目标目录生成策略,包括保持原始、按时间生成,接收端缓存及通过文件名提取等。
所述消息通知模块提供了标准的RESTful接口方式,能够与其它系统进行元数据的通信和交互。例如与HEPS科学数据管理系统,传输系统将完成传输的数据集信息通知给HEPS科学数据管理系统。根据HEPS的设计规划,科学数据管理系统需要对HEPS实验产生的所有科学数据进行全生命周期的管理和跟踪,因此实验数据从线站存储传输到中心存储以及备份到磁带库,或是将数据从磁带库取回到中心存储,需要实时的将实验元数据信息发送给科学数据管理系统。
传输系统基于配置的方式与第三方系统连通,在前端配置IP、端口、元数据信息等。系统每隔30秒查询传输数据库中成功传输的数据集,生成规范的JSON格式数据,通过RESTful API接口向HEPS科学数据管理系统通知已完成传输的数据集信息。系统通过标准的RESTful接口与第三方系统进行消息通知有如下优势:
(1)低耦合:第三方系统采用标准的RESTful接口;
(2)标准化:接口设计基于标准的JSON格式;
(3)兼容性:接口实现与平台无关、发送约定格式的JSON元数据消息。
本发明是根据国家重大科技基础设施HEPS的实验数据的传输需求,研究、设计一套能够满足海量科学数据高效、可靠传输的科学数据传输系统,满足HEPS实验数据分级存储和长期备份的需求。
具体地,本发明的实施过程如下:
1、运行环境的准备:
为保证系统正常运行,在系统部署前需要安装好系统运行时环境,包括:
(1)java运行环境:系统部署前需要在服务器上安装java JDK。
(2)通用数据库:包括DAQ数据库的准备。DAQ数据库中包含transfer表和file_list表,其中transfer表中包含:pid号、源端路径、目的端路径、时间、传输类型等,传输类型用于区分数据迁移的方向,例如数据从线站存储迁移到中心存储,中心存储迁移到磁带库,磁带库迁移到中心存储等。file_list表中存放文件对应的pid号,文件名和文件状态及时间信息。
还包括传输数据库的准备。传输数据库包含了多个数据库表,包括实验信息、传输任务信息、DAQ配置信息、定时任务信息、传输文件信息及传输队列信息表等。
(3)内存数据库:系统部署前需要先安装好内存数据库,内存数据库中包含了传输节点的IP、端口等信息,这些信息会随着系统启动自动创建,随着系统下线自动删除。
(4)消息队列:系统部署前需要安装消息队列,消息队列用于存放数据获取模块产生的传输消息,传输模块消费消息队列中消息。
(5)xrootd-client:磁带库采用了基于EOS+CTA的结构,安装xroot-client使服务器支持基于xrootd协议的数据传输方式。
(6)配置文件:配置文件中需要配置好服务器、数据源、内存数据库、定时任务、消息队列等信息,用于系统的运行参数以及与各个服务之间的联通。
2、传输任务配置:
数据传输的DAQ接口附属于传输任务、传输任务附属于实验。所以在前端页面需要分别配置实验、传输任务和DAQ信息,具体包括:
(1)配置实验:前端配置页面配置实验信息,实验名和实验启用和停用的状态。
(2)配置传输任务,包括:
1)选择已经配置的实验。
2)数据源配置,数据来源类型包括DAQ数据库和目录监听。选择来源类型为DAQ数据库的方式时,需要配置DAQ,来源类型为目录监听配置来源目录,目录监听服务器,是否进行多级目录轮询,多级目录轮询间隔,多级目录和文件类型匹配规则等。
3)目标配置,若数据来源类型为DAQ数据库,不需要目标配置,若数据来源类型为目录监听,需要配置目标类型,传输协议、传输目标目录,目录生成策略等。
4)传输配置,配置每台服务器的传输线程数。
5)配置文件传输完毕后执行的本地脚本,可选。
6)消息通知配置,包括消息队列类型,主机IP,端口、消息主题及消息内容,消息内容使用标准的json格式。
(3)DAQ配置:选择数据源配置为DAQ数据库,需要配置DAQ,包括实验、数据库类型、数据库连接信息、定时任务、数据库交换语句等。
3、数据传输执行流程,包括:通过DAQ轮询和目录监听获取待传输文件信息,放入消息队列,通过传输模块调用相应的传输协议,将文件由发送端传递到接收端,同时生成对应的传输结果记录,将传输元数据信息发送给HEPS科学数据管理系统。传输执行过程中,系统会实时进行监控和产生日志,保障系统运行的可靠性,具体传输执行流程如图8,具体包括:
(1)数据获取:
1.1)DAQ数据库轮询,包括:
1.1.1 Quartz定时轮询:由Quartz定时任务框架管理轮询任务,按照实验配置的数据库连接信息、查询语句以及时间戳参数查询DAQ数据库文件目录信息。
1.1.2获取文件源:获取到文件目录信息后,根据实验配置里的文件来源方式选择不同的处理方式,具体包括:
1.1.2.1 DAQ文件表:根据配置的查询语句查询需要传输的具体文件信息;
1.1.2.2文件遍历:查询步骤1.1.1里获取的文件路径下的所有有效文件做为待传输文件。
1.1.3更新DAQ查询时间戳,记录传输文件信息:将1.1.1步骤里获取的文件信息里最大修改时间作为最新时间戳更新到传输任务表中,该时间将作为下次轮询文件的起始时间,并生成传输元数据信息。新增文件信息到传输文件表中,更新DAQ数据库文件信息状态和时间。
1.1.4待传输文件判断:如果步骤1.1.2里获取的源文件为空,则跳转到4.2,异常原因为“未查询到可传输的文件,需确认文件是否存在、目录下是否有子文件、是否满足文件类型注册规则或者运行程序用户是否有目录的权限”。
如果步骤1.1.2里获取的文件源存在,则添加待传输文件信息到传输数据库队列文件表中,如果实验配置了前置处理则文件状态为待前置处理,否则为待传输。进入步骤3消息队里处理。
1.2)文件系统监听(LINUX),具体包括:
1.2.1实时监听:实时监听目录下文件,适用于一级目录及接收端缓存。
1.2.2目录文件轮询:轮询监听目录下所有文件目录的变化。目录监听模式下,若更新了时间戳(直接通过数据库修改),则需要重启服务告诉监听器从哪个时间开始监听文件。
1.2.2.1根据配置目录同步:实验配置了目录同步功能并且发送端新增了空目录,则执行目录同步脚本,将在接收端创建相同的目录结构,并保持相同的Facl,实现发送端和接收端目录结构一致,权限一致。如果为文件新增或者修改,则跳转步骤1.2.3。
1.2.3更新最新时间戳,记录传输文件信息:获取监听到的文件列表里的最大修改时间作为最新时间戳更新到传输任务表中,该时间将作为下次轮询文件的起始时间。记录传输文件信息,生成数据传输元数据。
(2)消息队列:
2.1) 记录待传输文件信息,设置文件状态。当接收到待传输文件信息时,记录文件信息,并根据实验配置判断文件状态。
2.2)根据配置的文件状态,将消息发送到不同的消息队列:如果文件状态为待前置处理且实验配置前置类型为压缩,则往MQ压缩队列发送消息,压缩完成往MQ传输队列发送消息。
如果文件状态为待前置处理且实验配置前置类型为解压,则往MQ解压队列发送消息,解压缩完成后往MQ传输队列发送消息。
如果文件状态为待传输,则往MQ传输队列发送消息,默认仅仅使用了传输消息队列。
(3)传输
3.1)接收队列消息:接收到MQ传输队列消息,根据消息内容生成待传输文件,记录ID。根据ID查询待传输文件信息以及对应的实验信息。如果文件状态不是待传输,则停止后续处理。
3.2)传输前处理:更新传输数据库中传输文件状态为传输中。如果来源为DAQ,则更新DAQ数据库文件状态和时间戳。
3.3)根据实验配置选择对应传输命令进行传输:根据实验配置的传输协议以及目标目录生成策略选择相应的传输文件和协议进行传输(如果有信号文件对象,则同步将对象转换为字节数组传输到目标目录下)。
3.4)传输验证:传输成功后返回目标目录、文件名以及checksum,对传输文件进行验证。
3.5)传输成功后处理:更新传输数据库文件传输状态为成功。
如果文件来源为DAQ数据库接口,则更新DAQ文件表里的文件状态和时间戳。
如果传输文件状态为传输成功并且配置了执行脚本,则根据预置参数以及脚本全路径调用执行脚本。
删除数据库中待传输文件记录。
(4)异常处理:
4.1)记录异常文件信息:记录异常文件信息,包括实验ID、文件路径、加入待传输队列时间、传输文件记录ID、创建时间、处理服务器IP、DAQ记录ID。
删除对应的待传输文件记录。
如果来源为DAQ则更新DAQ文件状态为传输失败。
4.2)异常计数更新及后续流转:更新待传输文件信息表里的异常计数加1。
更新完毕后如果计数>=3,则执行步骤4.1。
如果计数<3,则将执行步骤2,生成消息。
4.3)人工处理:通过后台“传输监控-异常文件”菜单模块,可以查询步骤4.1记录的所有异常文件信息,通过查阅日志定位问题,解决后再手动发起重传,或者删除操作。
(5)消息通知
5.1)定时启动消息通知。根据系统的设置,每隔30秒会启动消息通知模块。
5.2)查询通知文件:查询传输数据库中成功传输的文件和传输任务相对应的消息通知模板。
5.3)向HEPS科学数据管理系统发送消息通知:根据查询到的成功传输文件和通知模板生成标准JSON格式的传输元数据消息并通过RESTful接口发送消息给科学数据管理系统。
5.4)更新通知状态:若消息通知成功,更新文件对应的消息通知任务状态为成功。
若消息通知失败,更新文件对应的消息通知任务状态为失败,异常计数加1,若消息通知失败次数小于5,则继续尝试消息通知。
5.5)异常消息队列:若消息通知失败次数累计为5次,则将消息存放到异常消息队列中,生产环境恢复后,进行消息通知。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种面向高能同步辐射光源海量数据的传输系统,其特征在于:包括后端支撑层、数据传输层和前端应用层;
所述后端支撑层为数据传输层和前端应用层提供数据持久化和服务支撑,包括任务调度模块、集群管理模块、日志模块和数据持久化模块;
所述数据传输层提供科学数据传输服务,包括数据获取模块、消息队列模块、数据传输模块和消息通知模块;
所述前端应用层提供可视化的数据传输部署和展示,包括配置管理模块和传输监控模块;
所述任务调度模块使用Quartz定时任务框架实现对DAQ数据库接口轮询和消息通知;所述集群管理模块基于后端配置并使用Redis内存数据库管理和保存前端Session会话和传输服务器节点状态;所述日志模块采用文本形式实时记录传输过程,便于异常问题排查和故障诊断;所述数据持久化模块提供前端配置信息和数据传输元数据的持久化;
所述数据获取模块用来获取各个实验待传输数据集和文件列表,所述传输系统支持通过DAQ数据库轮询和目录监听两种方式获取数据;所述消息队列模块使用RabbitMQ队列框架传递消息;所述数据传输模块提供通用的数据传输功能,支持配置多种数据传输协议;所述消息通知模块通过RESTful接口向高能同步辐射光源科学数据管理系统发送消息。
2.根据权利要求1所述的一种面向高能同步辐射光源海量数据的传输系统,其特征在于:所述配置管理模块实现对线站实验、DAQ接口、传输配置及定时任务管理;所述传输监控模块对传输过程进行监控,实现对待传输文件、传输文件及异常文件的监控和图形化的展示。
3.根据权利要求1-2之一所述的一种面向高能同步辐射光源海量数据的传输系统的传输方法,其特征在于,包括如下步骤:
步骤1、准备运行环境,包括准备DAQ数据库、传输数据库、内存数据库、消息队列、xrootd-client和配置文件;
步骤2、配置传输任务,包括配置实验、数据源、DAQ信息、目标、服务器的传输线程数、本地脚本和消息通知;
步骤3、执行数据传输流程,通过DAQ数据库轮询和目录监听获取传输数据,并生成传输元数据存入传输数据库,生成消息放入传输消息队列,通过数据传输模块获取传输消息队列的消息并调用相应的传输协议,将文件由发送端传递到接收端,同时生成对应的传输结果记录,将传输元数据发送给高能同步辐射光源科学数据管理系统;
所述步骤2中,所述传输系统支持对接DAQ数据库接口,DAQ数据库接口附着于实验,通过前端界面配置DAQ数据库接口信息,所述DAQ数据库接口信息包括数据库类型、接口地址、认证信息和交互语句;
所述步骤3中,所述DAQ数据库轮询使用Quartz任务调度框架,前端界面负责任务的配置管理,显示任务状态和最新执行时间;前端界面配置的定时规则和触发器的记录存储到传输数据库TRIGGERS表,任务信息存储到JOB_DETAILS表;系统启动后,后台QuartzSchedulerThread线程不断调用调度器,调用CronTrigger类中方法不断扫描TRIGGERS表中时间,获取已到点触发的DAQ数据库轮询和消息通知任务, 并通过传输数据库JOB_DETAILS表查询到具体Job类中方法,执行相应任务;
所述步骤3中,所述传输系统根据查询到的实验和任务配置信息,与DAQ数据库进行两次交互,第一次交互获取数据集号,第二次交互根据数据集号获取待传输的数据,并分配集群传输服务节点,生成数据传输元数据的信息,保存到传输数据库,生成消息到传输消息队列;
所述步骤3中,所述目录监听是通过扫描线站存储的数据目录,获取待传输文件信息,并分配集群传输服务节点,生成数据传输元数据的信息,保存到传输数据库,生成消息到传输消息队列;在实现目录监听时,当有文件写入磁盘,会立即监听到,若文件写入未完成,此时取到的文件是非完整文件,所述传输系统通过判断文件前后的大小和修改时间是否一致,来检测文件是否写入完成,保证文件的完整性;并且设置基于正则表达式的文件和目录注册功能;
所述传输元数据汇总实验本身对传输数据管理的需要并与第三方系统进行数据交互,所述传输元数据的信息包括实验信息、DAQ信息、文件信息、传输信息、消息通知信息;所述文件信息包括文件名、源路径、目的路径,状态、校验值、时间戳;
所述传输消息队列实现异步消息的管理,将数据获取模块和数据传输模块进行解耦,解决数据传输过程中任务积压问题;同时使用多服务器节点,多线程从传输消息队列里签收任务,实现集群和多线程传输,保障传输速率,从而应对峰值;
所述传输方法采用集群传输,集群传输中每个传输服务器节点属于传输群集的一部分,后端挂载相同存储,通过在配置文件里设置与其它节点相同的传输数据库、传输消息队列和Redis内存数据库,该节点自动加入集群,共享Redis内存数据库、消息队列和传输元数据;传输群集利用Redis内存数据库实现传输服务器节点状态的管理;传输服务器节点上线时,将其IP和状态上报到Redis内存数据库中,并在程序里设置心跳机制,每秒上报一次心跳;如果2秒内没有接收到心跳上报,Redis内存数据库清理掉该传输服务器节点;传输群集中的每个传输服务器均具有一个监听进程,当一台传输服务器的配置发生变化时,通过监听进程更新本传输服务器的配置,查询共享的Redis内存数据库获取其它传输节点,发送http请求到其它传输服务器的监听进程并更新配置;
为满足数据在不同介质间传输,所述传输方法兼容中心存储支持的POSIX接口和磁带库支持的xrood协议,并提供多种数据传输命令,包括rsync、scp、xrdcp以及eos cp;为提高应用扩展性,提供多种目标目录生成策略,包括保持原始、按时间生成,接收端缓存及通过文件名提取;
所述消息通知模块提供基于标准的RESTful接口的方式进行传输元数据的通信和交互。
CN202310646004.6A 2023-06-02 2023-06-02 一种面向高能同步辐射光源海量数据的传输系统和方法 Active CN116382947B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310646004.6A CN116382947B (zh) 2023-06-02 2023-06-02 一种面向高能同步辐射光源海量数据的传输系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310646004.6A CN116382947B (zh) 2023-06-02 2023-06-02 一种面向高能同步辐射光源海量数据的传输系统和方法

Publications (2)

Publication Number Publication Date
CN116382947A CN116382947A (zh) 2023-07-04
CN116382947B true CN116382947B (zh) 2023-09-08

Family

ID=86971408

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310646004.6A Active CN116382947B (zh) 2023-06-02 2023-06-02 一种面向高能同步辐射光源海量数据的传输系统和方法

Country Status (1)

Country Link
CN (1) CN116382947B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102724321A (zh) * 2012-06-21 2012-10-10 中国科学院高能物理研究所 一种用于高能物理试验大批量数据的传输系统及传输方法
CN109492040A (zh) * 2018-11-06 2019-03-19 深圳航天智慧城市系统技术研究院有限公司 一种适用于数据中心海量短报文数据处理的系统
CN113434515A (zh) * 2021-07-23 2021-09-24 深圳智多豚物联技术有限公司 基于持久化redis存储服务的分布式高速存储系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9514208B2 (en) * 2012-10-30 2016-12-06 Vekatachary Srinivasan Method and system of stateless data replication in a distributed database system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102724321A (zh) * 2012-06-21 2012-10-10 中国科学院高能物理研究所 一种用于高能物理试验大批量数据的传输系统及传输方法
CN109492040A (zh) * 2018-11-06 2019-03-19 深圳航天智慧城市系统技术研究院有限公司 一种适用于数据中心海量短报文数据处理的系统
CN113434515A (zh) * 2021-07-23 2021-09-24 深圳智多豚物联技术有限公司 基于持久化redis存储服务的分布式高速存储系统

Also Published As

Publication number Publication date
CN116382947A (zh) 2023-07-04

Similar Documents

Publication Publication Date Title
EP3543866B1 (en) Resource-efficient record processing in unified automation platforms for robotic process automation
CN103024060B (zh) 一种开放式云计算大规模集群监控系统及方法
US7937716B2 (en) Managing collections of appliances
CN103049268B (zh) 一种基于Naplet的应用开发管理系统
CN105721582B (zh) 多节点文件备份系统
CN112565415B (zh) 一种基于云边协同的跨地域资源纳管系统和纳管方法
WO2003044697A1 (en) Data replication system and method
EP3384391B1 (en) Real-time change data from disparate sources
CN109144785A (zh) 用于备份数据的方法和装置
JP2004524600A (ja) 異種分散事業アプリケーション統合オブジェクトの集中管理提供システム及び集中管理提供方法
CN115827086A (zh) 一种基于分布式集群架构的高可用软件开发集成平台
US11539791B1 (en) Methods, apparatuses and computer program products for synchronizing data objects between and among application service systems
US20130179400A1 (en) Intelligent data publishing framework for common data updates in large scale networks of heterogeneous computer systems
CN103297477B (zh) 一种数据采集上报系统及数据处理方法和代理服务器
CN116382947B (zh) 一种面向高能同步辐射光源海量数据的传输系统和方法
CN105978715A (zh) 一种基于实时数据中心的数据接入接口统一管理方法
CN113672452A (zh) 一种数据采集任务的运行监控方法、系统
US11093465B2 (en) Object storage system with versioned meta objects
CN113641760A (zh) 数据同步方法及装置
CN107330089B (zh) 跨网络结构化数据收集系统
CN112416655A (zh) 一种基于企业服务门户的存储灾备系统及数据复制方法
WO2020256797A1 (en) Object storage system with meta object replication
US20240160606A1 (en) Hybrid cloud event notification management
JP2024511774A (ja) ハイブリッドクラウドイベント通知管理
US20220391409A1 (en) Hybrid cloud asynchronous data synchronization

Legal Events

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