一种基于并行传输的远距离数据传输方法与流程
- 国知局
- 2024-08-02 14:21:47
本发明属于远距离数据传输的,特别是涉及一种基于并行传输的远距离数据传输方法。
背景技术:
1、当前网络设备在过去几年中经历了显著的进步,新一代的网络设备往往配备了更快的接口,已经从先前的千兆以太网(1gbps)升级到万兆以太网(10gbps、25gbps、40gbps、100gbps甚至更高),而存储设备的存储性能显然没有跟上网络设备的更新速度,目前最新的固态硬盘使用pcie4.0规范,带宽为64gbps,其带宽性能是无法满足万兆以太网的传输需求的,所以更好的发挥存储设备的性能是关键。
2、远距离数据传输的场景是基于一个发送端和一个接收端,发送端读取文件内容发送给接收端,接收端接收到数据包后写入本地文件,以此为基础,目前基于并行传输的写入方法主要有两种:
3、第一种,如图1所示,是发送端将文件根据并行数n将文件等分成n份并创建n个传输通道,从各个开始位置随机读取传输给接收端,接收端接收到文件块以后,将写入的文件等分成n份,根据传输通道得到的数据块,文件偏移量,数据块大小随机写入到指定文件;
4、第二种,如图2所示,发送端将需要传输的文件分成多个块,每个块根据并行数n等分成n个小分块,并行通道分别随机读取每个块中被均分的n个小分块,传输给接收端,当接收端接收到小分块时,顺序写入磁盘。
5、这当中第一种方法对存储设备的随机读取、随机写入和第二种方法中对存储设备的随机读取、顺序写入相比顺序的读取和写入对性能有较大的损耗,这是由于它们在工作原理和数据存取方式上的不同导致的。顺序读写是连续读写大块数据,硬盘在顺序读写时能够充分利用其高速传输通道,以及优化的控制器和缓存技术,并且由于数据是按照顺序排列的,硬盘可以预读取并预处理未来可能需要的数据,从而提高了读写速度。因此,硬盘在顺序读写时通常能够接近其额定速度,速度较快。而随机读写是在不连续的位置上读取或写入数据,硬盘在随机读写时受到寻址和擦除操作的限制,因为它需要在闪存芯片中找到合适的位置进行读写,并且需要进行额外的擦除操作。因为它不能像顺序读写那样预读取和预处理数据,而需要更多的寻址和擦除操作。因此,硬盘在随机读写时的速度较慢,尤其是在小块数据的随机读写场景下,速度会更加显著地下降。总的来说,硬盘的顺序读写速度通常会比随机读写速度快得多,需要尽量减少随机读写操作,可以最大程度地发挥硬盘的性能优势。
6、因此如何将方法1和方法2的优点结合到一起,以充分利用存储设备的性能来增加并行性能,达到存储设备的读写上限,从而提高传输速度的优点显得尤为重要。
技术实现思路
1、本发明的目的在于提供一种基于并行传输的远距离数据传输方法,解决了现有的数据传输方法存在传输速度无法满足要求的问题。
2、为解决上述技术问题,本发明是通过以下技术方案实现的:
3、本发明为一种基于并行传输的远距离数据传输方法,具体包括以下步骤:
4、步骤s1、服务器端在文件开始传输时,即在发送端,根据分块大小、线程数、硬盘读写速度设计出一个合理的缓冲块大小,每个线程分别读取依据缓冲块大小等分的分块,然后发送给接收端,
5、步骤s2、接收端同样设计相等大小的缓冲块,用来存储每个接收线程发送过来的分块;
6、步骤s3、当接收到所有线程发送过来的分块后,再将整个缓冲块的内容全部顺序写入磁盘;
7、其中,在步骤s1中对缓冲块大小的设计的具体步骤如下:
8、s1-1、需要确定硬盘的读写速度,通过硬盘的规格或性能测试来获取硬盘的读写速度;
9、s1-2、由于分块大小决定了每次传输的数据量,而线程数则决定了系统同时处理数据的能力,因此可以根据应用场景和系统资源情况,设置合适的分块大小和线程数;
10、s1-3、随后计算单个线程的传输速率,根据步骤s1-1获得的硬盘的读写速度和步骤s1-2获得的线程数,计算单个线程的传输速率;
11、s1-4、根据步骤s1-3获得的单个线程的传输速率和步骤s1-2获得的分块大小,计算单个线程传输一个分块所需的时间;
12、s1-5、将单个线程传输一个分块所需的时间乘以线程数,得到总的传输时间t,用于表示所有线程同时工作时完成所有分块的时间;
13、s1-6、然后根据总的传输时间t和分块大小来计算缓冲区大小,通过设定总的传输时间为t(单位为秒),分块大小为b(单位为字节),缓冲区大小为s(单位为字节),则缓冲区大小的公式如下:s=t*b,最终得到缓冲区大小。
14、作为优选,在步骤s1-2中,
15、分块大小的具体公式如下:
16、
17、(1)
18、其中公式(1)中,b表示分块大小,单位是字节,d表示传输延迟,单位是秒,n表示并行数,t表示总传输时间,单位是秒,e表示传输效率,单位是字节/秒。
19、作为优选,在步骤s1-2中,
20、线程数的具体公式如下:
21、 (2)
22、
23、其中公式(2)中,p表示并行化部分的比例,即n为总的任务数,p的取值范围为0到1,t1为串行执行任务所需的时间,n表示并行数。
24、作为优选,在步骤s1-1中硬盘读写速度的具体公式如下:
25、
26、其中公式(3)中,v表示硬盘读写速度,单位:字节/秒;e表示传输效率,单位:字节/秒;d表示传输延迟,单位:秒,这个公式可以帮助在考虑传输效率和传输延迟的情况下,选择最佳的硬盘读写速度,以实现最佳的数据传输性能。
27、作为优选,在步骤s1-3中计算单个线程的传输速率的计算公式是将硬盘的读写速度除以线程数来获得。
28、作为优选,在步骤s1-4中计算单个线程传输一个分块所需的时间的方式是将分块大小除以单个线程的传输速率来获得的。
29、本发明具有以下有益效果:本发明可以尽可能的在发送端和接收端实现顺序的读和写,可以充分利用存储设备的性能,增加并行性能,达到存储设备的读写上限,从而提高传输速度,而且通过上述方式选择缓冲区大小,这样能够容纳所有分块的数据,并且足够大以防止数据被覆盖或丢失。
技术特征:1.一种基于并行传输的远距离数据传输方法,其特征在于:具体包括以下步骤:
2.根据权利要求1所述的一种基于并行传输的远距离数据传输方法,其特征在于:在步骤s1-2中,
3.根据权利要求2所述的一种基于并行传输的远距离数据传输方法,其特征在于:在步骤s1-2中,
4.根据权利要求3所述的一种基于并行传输的远距离数据传输方法,其特征在于,在步骤s1-1中硬盘读写速度的具体公式如下:
5.根据权利要求1或2或3或4所述的一种基于并行传输的远距离数据传输方法,其特征在于:在步骤s1-3中计算单个线程的传输速率的计算公式是将硬盘的读写速度除以线程数来获得。
6.根据权利要求1或2或3或4所述的一种基于并行传输的远距离数据传输方法,其特征在于:在步骤s1-4中计算单个线程传输一个分块所需的时间的方式是将分块大小除以单个线程的传输速率来获得的。
技术总结本发明公开了一种基于并行传输的远距离数据传输方法,具体包括以下步骤:步骤S1、服务器端在文件开始传输时,即在发送端,根据分块大小、线程数、硬盘读写速度设计出一个合理的缓冲块大小,每个线程分别读取依据缓冲块大小等分的分块,然后发送给接收端,步骤S2、接收端同样设计相等大小的缓冲块,用来存储每个接收线程发送过来的分块;步骤S3、当接收到所有线程发送过来的分块后,再将整个缓冲块的内容全部顺序写入磁盘。本发明可以尽可能的在发送端和接收端实现顺序的读和写,可以充分利用存储设备的性能,增加并行性能,达到存储设备的读写上限,从而提高传输速度。技术研发人员:毛巨林,张昊,华力,杨伟毅受保护的技术使用者:宁波远古超传科技有限公司技术研发日:技术公布日:2024/7/25本文地址:https://www.jishuxx.com/zhuanli/20240801/242565.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。