一种用于大数据同步的系统及客户端的制作方法

文档序号:17481820发布日期:2019-04-20 06:30阅读:199来源:国知局
一种用于大数据同步的系统及客户端的制作方法

本发明涉及一种用于大数据同步的系统及客户端。



背景技术:

冷冻电镜,是一种用于透射电镜的超低温冷冻制样及传输技术(cryo-em),可实现直接观察液体、半液体及对电子束敏感的样品;是结构生物学领域非常重要的科研技术手段。目前其常用的图像采集装置是直接电子探测相机,该类型相机具有高帧率,大照幅,高分辨率的特点。为了提高信噪比,拍摄时往往采用特殊的低剂量高曝光时间长的方式。每张拍摄的照片其实是一个照片栈(以下不做特殊说明,都以照片替代照片栈)。每张未经压缩的电镜照片平均在5gb左右,稳定投入使用的冷冻电镜每小时能拍100张以上照片,短时间内产生很大的数据量。并且每张照片栈在3到4秒间拍摄结束,用户需要将数据实时传输至预处理节点做预处理,才能看到拍摄结果。所以,冷冻电镜平台对于数据的传输速率的有着严格的要求,集中在两点,短时间内大量数据的备份;实时的传输做计算预处理,并将结果反馈给科研人员。

目前,冷冻电镜实验室主要选择通过nfs,samba进行数据传输。nfs作为传统文件共享协议,可以使客户端挂载服务器端的文件系统,通过网络文件共享之后,客户端可以像操作本地磁盘系统一样读写服务器端文件系统。目前冷冻电镜应用数据中心多采用分布式存储系统,分布式存储系统可有效地避免存储和传输热点问题,提高了访问的并发性,其理论物理速度为单节点传输速度和节点数的乘积。

然而,目前主要采用的nfs,samba,存在挂载热点问题,无法发挥出分布式存储系统的负载均衡的优点。另外,nfs服务协议是通过传统的ip加端口号的方式进行挂载,由于nfs协议提供了不同的服务,因此nfs提供的服务端口号是随机的,需要通过远程过程调用rpc(remoteprocesscall)协议来获取nfs服务端口号,再建立通信连接,所以在开启nfs服务之前必须先开启rpc服务,rpc传输速度明显低于套接字传输服务(12%)。

再者,nfs传统的多线程模式只是增加了服务端处理多客户端请求时整体的效率,对于单客户端高速传输的请求无法及时响应处理,最快的处理单个大文件的读写方式永远是顺序读写,而非nfs多线程采用的预读式处理方式。因此,目前nfs文件系统的挂载模式,在分布式存储系统上只有30mbits/s的速度,无法满足目前传输要求,影响数据的计算与分析。

冷冻电镜这两年发展迅猛,处理相关数据的工作站比过去低端的计算性能在短短两年内实现了几何级数的增长,高性能计算和传输的需求非常迫切,对硬件的要求非常高。不但需要专业主板,服务器级别cpu,比如常用的至强双cpu架构,当单纯cpu计算无法满足要求时,还会使用专业图像处理器gpu做并行计算。内存和ssd配置也比一般工作站高很多,并配有万兆网卡。这样高配置的硬件理论上能提供的速度能达到1.25gb/s。

目前市场上还没有专门针对冷冻电镜拍摄的原始图像进行高速传输处理的软件,用nfs和samba所能提供的速度大概在200mb/s左右,软件的传输速度目前完全无法跟上高配置硬件所能提供的理论速度,严重影响了数据处理与分析的速度。冷冻电镜业界急需一款合适的高性能传输软件。



技术实现要素:

本发明要解决的技术问题是:为克服现有技术中传输速率以及资源利用率低的技术问题,提供一种用于大数据同步的系统及客户端。

本发明解决其技术问题所采用的技术方案是:

一种用于大数据同步的系统,所述系统至少包括:作为发送端的客户端和作为接收端的服务器端;

所述客户端采用queue模型,当客户端检测到新数据时,所述数据被依次存入队列中,然后通过socket套接字按照tcp/ip协议发送给服务器端。

其中,所述客户端采用poll查询模式进行数据检测,并利用发送线程从队列头部获取数据。

其中,所述服务器端采用pipeline流水线模型,具体包括:回写线程和接收线程,其中,回写线程比接收线程延迟一个固定时间。

其中,所述客户端开始获取文件属性并保存路径状态,判断检查目录下有无新文件产生;若没有新文件则等待,若有新文件则发送新文件到服务器端;

服务器端开始同时发起两个线程,线程2用于写文件到磁盘,线程1用于接收socket数据。

其中,当检测到特定的触发操作时,发送流程和接收流程同时开始处理数据,其中,客户端配置网络协议与ip,服务器端初始化socket端口,并监听端口、处理接收请求;

客户端获取数据保存目录状态,判断检查数据目录下有无新文件,若没有新文件则等待;若有新文件,发送新文件到服务器端,同时,服务器端开始发起两个线程进行处理。

其中,发送和处理的数据包括:文件的尺寸、名字和内容。

其中,所述客户端以软件的形式进行封装,当客户端上指定的运行按键被点击时,触发大数据的同步流程。

一种用于大数据同步的客户端,所述客户端采用queue模型,利用poll查询模式实现数据的检测,当客户端检测到新数据时,所述数据被依次存入队列中,然后通过socket套接字按照tcp/ip协议发送给服务器端。

其中,所述客户端以软件的形式进行封装;当客户端上指定的运行按键被点击时,触发大数据的同步流程。

其中,所述同步流程包括:客户端获取数据保存目录状态,判断检查数据目录下有无新文件,若没有新文件则等待;若有新文件,发送新文件到服务器端,同时,服务器端开始发起用于接收socket数据的线程1和用于写文件的线程2进行文件的处理。

本发明的有益效果是,本发明提供的用于大数据同步的系统及客户端,跟传统方案相比,硬件利用率高达90%以上,而传统的方案不足30%,达到相同的性能所需的硬件配置会低很多,故能极大地节约成本。传统的方案即使利用多线程设计但接收数据和写回磁盘两个线程会使用同一段内存地址,实际运行时会加互斥锁,进而拖慢效率,而该软件设计采用流水线模型,能做到两部分几乎完全分离,所以能极大的提高传输速度。该客户端和服务端所能提供的速度大概在1gb/s。该软件客户端是已经封装好的,无需专业人员搭建网络服务,方便快捷简单易用,用户无需经过专业培训,直接打开软件就能使用。

附图说明

下面结合附图和实施例对本发明进一步说明。

图1是本发明的优选实施例的系统流程图;

图2是本发明的优选实施例的通信模型图;

图3是本发明的优选实施例的控制流程图;

图4是本发明的优选实施例的客户端界面图。

具体实施方式

现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。

本发明的提供了一种用于大数据同步的系统,所述系统至少包括:客户端和服务器端,如图1所示。

所述客户端采用queue模型,当客户端检测到新数据时,所述数据被依次存入队列中,然后通过socket套接字按照tcp/ip协议发送给服务器端。

其中,所述客户端采用poll查询模式进行数据检测,并利用发送线程从队列头部获取数据。

客户端和服务端采用生产者消费者模型进行数据同步,客户端采用poll查询模式,当客户端产生新数据时,客户端通过tcp/ipsocket套接字立即发送给服务端,服务端将最新收到的数据存入到队列尾部,服务端从队列头部开始处理,存入ssd阵列之中,从而实现数据的自动同步。

其中,所述服务器端采用pipeline流水线模型,具体包括:回写线程和接收线程,其中,回写线程比接收线程延迟一个固定时间。

所述系统工作流程具体涉及:第一步:硬件连接。通过标准的6类网线将相机采集机器和集群头节点的万兆网卡连接起来。相机采集机器除了需要配置万兆网卡之外,还需要配置40tb的高速ssd阵列,64gb的ddr4内存,intel双cpu架构处理器;集群头节点同样需要配置万兆网卡,还需要配置10tb的高速ssd阵列,64gb的ddr4内存,以及intel双cpu架构处理器。

第二步:客户端环境实现。客户端采用queue模型,当有数据到达时,数据被依次存入队列中,发送线程从队列头部获取数据,通过socket套接字按照tcp/ip协议发送给服务器端。

第三步:服务器端环境实现。服务器端采用pipeline流水线模型,回写线程比接收线程延迟一个节拍,有效地发挥了单线程顺序写盘的最大速度,并且接收线程也可以全速处理socket请求,同时又避免线程互斥带来的资源竞争情况从而导致速度降低。

其中,所述客户端开始获取文件属性并保存路径状态,判断检查目录下有无新文件产生;若没有新文件则等待,若有新文件则发送新文件到服务器端;

服务器端开始同时发起两个线程,线程2用于写文件到磁盘,线程1用于接收socket数据。

其中,客户端与服务端通信模型具体如下:

socket是"打开—读/写—关闭"模式的实现,以使用tcp协议通讯的socket为例,如图2示。使用socket传输,能够有效的提高数据的数据速率,同时提高资源利用率。

发送端开始获取文件属性并保存路径状态,判断检查目录下有无新文件产生。若没有新文件则等待,若有新文件则发送新文件到接收端。接收端开始同时发起两个线程,线程2用于写文件到磁盘,线程1用于接收socket数据,处理发送的报头信息和接收文件到内存。发送端开始执行显示文件传输速率到控制台,结束后关闭连接。

其中,当检测到特定的触发操作时,发送流程和接收流程同时开始处理数据,其中,客户端配置网络协议与ip,服务器端初始化socket端口,并监听端口、处理接收请求;

客户端获取数据保存目录状态,判断检查数据目录下有无新文件,若没有新文件则等待;若有新文件,发送新文件到服务器端,同时,服务器端开始发起两个线程进行处理。其中,发送和处理的数据包括:文件的尺寸、名字和内容。其中,所述客户端以软件的形式进行封装,所述触发操作为客户端的运行按键被点击。利用上述软件客户端实现的流程如图3所示:

1.界面上的run按钮,接收端流程,发送端流程同时开始处理数据。

2.发送端开始执行8,9步骤。配置网络协议与ip,进行网络连接。同时,接收端开始执行1,2,3步骤。初始化socket端口,监听端口并处理接收请求。之后,接收端开始执行4步骤。初始化流水线模型,初始化线程参数。

3.发送端开始执行10,11步骤,开始获取发送者数据保存目录状态,判断检查数据目录下有无新文件。若没有新文件到12步,等待。若有新文件到13步,发送新文件到接收端,发送文件的尺寸,名字和内容,每次接收相同尺寸的文件内容进行发送。同时,接收端开始执行5步,同时发起6,7步两个线程,线程2用于拷贝文件到磁盘,线程1用于接收文件,处理发送的报头信息和接收文件的尺寸,名字和内容到内存,每次接收相同尺寸的文件内容进行接收。

4.发送端开始执行14,15步骤,显示文件传输速率到控制台,结束后关闭连接。

本发明运用最专业的计算机知识,结合最前沿的冷冻电镜科研数据传输需求,设计出专用于同步冷冻电镜大数据的系统和软件客户端。该软件客户端跟传统方案相比,硬件利用率高达90%以上,而传统的方案不足30%,达到相同的性能所需的硬件配置会低很多,故能极大地节约成本。传统的方案即使利用多线程设计但接收数据和写回磁盘两个线程会使用同一段内存地址,实际运行时会加互斥锁,进而拖慢效率,而该软件设计采用流水线模型,能做到两部分几乎完全分离,所以能极大的提高传输速度。该客户端和服务端所能提供的速度大概在1gb/s。该软件客户端是已经封装好的,无需专业人员搭建网络服务,方便快捷简单易用,用户无需经过专业培训,直接打开软件就能使用。

一种用于大数据同步的客户端,所述客户端采用queue模型,利用poll查询模式实现数据的检测,当客户端检测到新数据时,所述数据被依次存入队列中,然后通过socket套接字按照tcp/ip协议发送给服务器端。

其中,所述客户端以软件的形式进行封装;当客户端上指定的运行按键被点击时,触发大数据的同步流程。

其中,软件封装得到的客户端应用界面如图4示,其中,

cryoemdatacollectionip:冷冻电镜图像数据的发送端(电脑1)的ip地址(ip1)

cryoemdatacachefolder:(电脑1)要传送的照片的文件夹路径

hpc(gpu/cpu)clusterip:处理图像的数据中心接收端(电脑2)的ip地址(ip2)

hpcclustercachefolder:(电脑2)要接收的照片的文件夹路径

transferspeed(mb/s):实时显示传送速度

transferstatus:传送状态的显示(一些提示、警告或传送完成的信息)

run:开始传送图像数据

stop:停止传送图像数据

由此可见,该软件客户端是已经封装好的,无需专业人员搭建网络服务,方便快捷简单易用,用户无需经过专业培训,直接打开软件就能使用。

其中,所述同步流程包括:客户端获取数据保存目录状态,判断检查数据目录下有无新文件,若没有新文件则等待;若有新文件,发送新文件到服务器端,同时,服务器端开始发起用于接收socket数据的线程1和用于写文件的线程2进行文件的处理。

本发明的有益效果是,本发明提供的用于大数据同步的系统及客户端,跟传统方案相比,硬件利用率高达90%以上,而传统的方案不足30%,达到相同的性能所需的硬件配置会低很多,故能极大地节约成本。传统的方案即使利用多线程设计但接收数据和写回磁盘两个线程会使用同一段内存地址,实际运行时会加互斥锁,进而拖慢效率,而该软件设计采用流水线模型,能做到两部分几乎完全分离,所以能极大的提高传输速度。该客户端和服务端所能提供的速度大概在1gb/s。该软件客户端是已经封装好的,无需专业人员搭建网络服务,方便快捷简单易用,用户无需经过专业培训,直接打开软件就能使用。

以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1