射电天文数据并行传输方法及装置
本发明涉及数据传输,更具体涉及一种射电天文数据并行传输方法及装置。
背景技术:
1、射电天文观测现已迈入数据爆炸式增长阶段,以目前在建的110米奇台射电望远镜(qtt)为例,其频段覆盖范围广、观测精度高,单次观测即可产生tb级数据。该类观测数据具备数据总量大、文件大小高度异构、文件数量海量的特点,且qtt台址网络资源有限,如何高效、可靠地将海量异构观测数据传输至数据中心,已成为射电天文数据管理的核心瓶颈。
2、目前射电天文数据传输多采用远程文件同步工具(rsync)、并行优化远程文件同步工具及scp(安全拷贝协议)等传统方案,但均存在显著技术缺陷。标准远程文件同步工具依托滚动校验和实现增量传输,具备完整性校验优势,但采用串行传输模式,带宽利用率极低,且校验计算占用大量cpu、内存资源,易与台站实时科学计算任务抢占资源,传输中断恢复效率极差。现有并行优化远程文件同步工具虽通过多进程提升了传输吞吐量,但缺乏文件大小异构感知能力,面对超大文件主导的数据场景时并行加速效果失效,且仍存在硬件资源开销高、无断点续传机制的问题。scp协议虽部署简单、安全性高,但仅支持全量拷贝,传输冗余量大,且为串行传输模式,整体传输吞吐量难以满足大数据观测需求。
3、因此,现有传输方案无法适配射电天文海量异构数据的传输场景,亟需一种新型自适应传输方案解决上述问题。
技术实现思路
1、本发明的目的在于提供一种射电天文数据并行传输方法及装置,以解决现有传输方法存在的问题。
2、基于上述目的,本发明一方面提供一种射电天文数据并行传输方法,其包括:
3、主进程遍历源目录,获取源目录下所有文件的元数据和文件总数;其中,每个文件的元数据均包括该文件的标识、尺寸和源存储路径;
4、所述主进程根据所述源目录下各文件的尺寸和文件总数对各文件进行分组,得到多个文件组,每个文件组至少包括一个文件;
5、所述主进程针对每个文件组生成一个传输任务,并将每个传输任务写入磁盘队列文件以进行持久化保存;每个传输任务均包括任务标识、传输任务对应的文件组内每个文件的标识、源存储路径和目标存储路径;
6、所述主进程调度多个并行运行的传输子进程,由各传输子进程执行磁盘队列文件内的传输任务,每个传输子进程每次执行一个传输任务,以将该传输任务对应的文件组内的每个文件从该文件的源存储路径传输至目标存储路径。
7、可选地,所述主进程根据所述源目录下各文件的尺寸和文件总数对各文件进行分组,得到多个文件组,具体包括:
8、基于所述源目录下各文件的尺寸和文件总数确定变异系数;
9、基于所述变异系数确定校正因子;
10、将所述源目录下尺寸大于预设尺寸阈值的文件标记为超大文件,将除所述超大文件以外的其余文件标记为普通文件,统计所述源目录下超大文件的数量;
11、根据校正因子、预设尺寸阈值、源目录下文件总数、源目录下超大文件的数量确定文件组数量;
12、将每个超大文件单独划分为一个文件组,将所有普通文件分配至扣除各超大文件对应的文件组后余下的各文件组中,在分配时,基于各普通文件的尺寸进行均衡调配,以使余下每个文件组的总数据量趋于相同,且每个文件组内的文件数量不超过单组文件数上限。
13、可选地,所述文件组数量满足如下关系式:
14、,
15、其中,为上取整函数,为单组文件数上限,为预设尺寸阈值,为源目录下超大文件的数量,为文件组数量,为校正因子,n为源目录下文件总数,s为源目录下各文件的总数据量。
16、可选地,所述主进程调度多个并行运行的传输子进程,由各传输子进程执行磁盘队列文件内的传输任务,每个传输子进程每次执行一个传输任务,以将该传输任务对应的文件组内的每个文件从该文件的源存储路径传输至目标存储路径,具体包括:
17、所述主进程将所有传输任务的初始状态标记为待执行状态,并将所有传输任务的状态写入持久化状态库中;
18、所述主进程确定最优传输并发数,创建并启动数量与最优传输并发数匹配的传输子进程;
19、各传输子进程采用动态拉取模式持续向主进程申领状态为待执行的传输任务并执行文件传输,将传输任务对应的文件组内各文件由源存储路径传输至目标存储路径,循环申领执行直至持久化状态库内全部传输任务处理完成;
20、每个传输子进程执行传输任务期间向主进程实时上报当前传输任务的进度信息;主进程依据各传输子进程上报的进度信息,统一更新持久化状态库内对应传输任务的状态。
21、可选地,所述主进程确定最优传输并发数,具体包括:
22、主进程构建以传输并发数为自变量,以传输总耗时为因变量的传输总耗时关联模型;
23、以所述传输总耗时最小为优化目标,对所述传输总耗时关联模型进行极值切结,得到所述传输总耗时最小对应的最优传输并发数。
24、本发明另一方面提供一种射电天文数据并行传输装置,其包括:
25、遍历模块,用于通过主进程遍历源目录,获取源目录下所有文件的元数据和文件总数;其中,每个文件的元数据均包括该文件的标识、尺寸和源存储路径;
26、分组模块,用于通过所述主进程根据所述源目录下各文件的尺寸和文件总数对各文件进行分组,得到多个文件组,每个文件组至少包括一个文件;
27、生成模块,用于通过所述主进程针对每个文件组生成一个传输任务,并将每个传输任务写入磁盘队列文件以进行持久化保存;每个传输任务均包括任务标识、传输任务对应的文件组内每个文件的标识、源存储路径和目标存储路径;
28、调度模块,用于通过所述主进程调度多个并行运行的传输子进程,由各传输子进程执行磁盘队列文件内的传输任务,每个传输子进程每次执行一个传输任务,以将该传输任务对应的文件组内的每个文件从该文件的源存储路径传输至目标存储路径。
29、可选地,所述主进程根据所述源目录下各文件的尺寸和文件总数对各文件进行分组,得到多个文件组,具体包括:
30、基于所述源目录下各文件的尺寸和文件总数确定变异系数;
31、基于所述变异系数确定校正因子;
32、将所述源目录下尺寸大于预设尺寸阈值的文件标记为超大文件,将除所述超大文件以外的其余文件标记为普通文件,统计所述源目录下超大文件的数量;
33、根据校正因子、预设尺寸阈值、源目录下文件总数、源目录下超大文件的数量确定文件组数量;
34、将每个超大文件单独划分为一个文件组,将所有普通文件分配至扣除各超大文件对应的文件组后余下的各文件组中,在分配时,基于各普通文件的尺寸进行均衡调配,以使余下每个文件组的总数据量趋于相同,且每个文件组内的文件数量不超过单组文件数上限。
35、可选地,所述文件组数量满足如下关系式:
36、,
37、其中,为上取整函数,为单组文件数上限,为预设尺寸阈值,为源目录下超大文件的数量,为文件组数量,为校正因子,n为源目录下文件总数,s为源目录下各文件的总数据量。
38、可选地,所述主进程调度多个并行运行的传输子进程,由各传输子进程执行磁盘队列文件内的传输任务,每个传输子进程每次执行一个传输任务,以将该传输任务对应的文件组内的每个文件从该文件的源存储路径传输至目标存储路径,具体包括:
39、所述主进程将所有传输任务的初始状态标记为待执行状态,并将所有传输任务的状态写入持久化状态库中;
40、所述主进程确定最优传输并发数,创建并启动数量与最优传输并发数匹配的传输子进程;
41、各传输子进程采用动态拉取模式持续向主进程申领状态为待执行的传输任务并执行文件传输,将传输任务对应的文件组内各文件由源存储路径传输至目标存储路径,循环申领执行直至持久化状态库内全部传输任务处理完成;
42、每个传输子进程执行传输任务期间向主进程实时上报当前传输任务的进度信息;主进程依据各传输子进程上报的进度信息,统一更新持久化状态库内对应传输任务的状态。
43、可选地,所述主进程确定最优传输并发数,具体包括:
44、主进程构建以传输并发数为自变量,以传输总耗时为因变量的传输总耗时关联模型;
45、以所述传输总耗时最小为优化目标,对所述传输总耗时关联模型进行极值切结,得到所述传输总耗时最小对应的最优传输并发数。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com