数据发送方法、装置和存储介质制造方法及图纸

技术编号:22521272 阅读:23 留言:0更新日期:2019-11-13 01:31
本发明专利技术提供了数据发送方法及装置,涉及分布式存储领域。本发明专利技术提供的数据发送方法,通过在分布式系统内部的服务器中设置了代理节点,并且由不同服务器间的代理节点进行TCP连接的建立,以及,通过代理节点来将OSD存储节点所要发送的第一目标数据通过与其他代理节点所建立的TCP连接进行发送,在不影响数据发送的情况下,减少了各个服务器之间所建立的TCP连接的数量,降低了CPU的开销。

Data transmission method, device and storage medium

The invention provides a data transmission method and a device, which relates to the field of distributed storage. The data transmission method provided by the invention is that the proxy node is set in the server inside the distributed system, and the proxy node between different servers is used to establish the TCP connection, and the proxy node is used to send the first target data to be sent by the OSD storage node through the TCP connection established with other proxy nodes, without affecting the data transmission In this case, the number of TCP connections established between servers is reduced and the CPU overhead is reduced.

【技术实现步骤摘要】
数据发送方法、装置和存储介质
本专利技术涉及分布式存储领域,具体而言,涉及数据发送方法、装置和存储介质。
技术介绍
随着网络数据技术的发展,电子数据的数量呈现出了爆炸式的增长,进而,数据的存储成了首先遇到的问题。为了提高数据的使用便捷程度,以及数据的安全程度,某些情况下,用户通常首选使用分布式系统来进行数据的存储。分布式系统通常由许多独立的存储节点组成,此处的存储节点的具体体现形式是物理服务器,通常,一个物理服务器上可以同时运行多个存储节点。为了提高数据的安全性,通常会采用将相同的数据分别存储在不同的服务器中。这也就需要设置在不同服务器中的存储节点之间先进行数据收发,而后,再由接收到数据的存储节点将数据存储在硬盘中。设置在不同服务器中的存储节点之间进行数据收发时,首先需要建立TCP连接,之后,存储节点再利用建立好的TCP连接来进行数据的收发。一个TCP连接只能在进行数据收发的两个存储节点之间进行建立,随着存储节点数量的增加,为了进行数据传输而建立的TCP连接的数量越来越多,这严重的消耗了服务器的CPU资源和内存资源。
技术实现思路
本专利技术的目的在于提供一种数据发送方法和装置。第一方面,本专利技术实施例提供了一种数据发送方法,作用于分布式系统中的服务器内所设置的代理节点;分布式系统包括至少三个服务器;每个服务器均包括代理节点、共享内存和多个OSD存储节点;不同服务器中的代理节点之间建立有TCP连接;该方法包括:第一代理节点获取目标第二OSD存储节点的标识,以及从第一共享内存中读取第一目标数据;所述第一目标数据是由目标第一OSD存储节点写入到第一共享内存中的;所述目标第二OSD存储节点所在的第二服务器和目标第一OSD存储节点所在的第一服务器是不同的服务器;所述第一共享内存、第一代理节点和目标第一OSD存储节点均位于第一服务器中;第一代理节点通过与第二服务器中的第二代理节点建立的TCP连接,将第一目标数据和目标第二OSD存储节点的标识向第二代理节点发送,以使第二服务器中的第二代理节点将第一目标数据向目标第二OSD存储节点发送;第二代理节点和目标第二OSD存储节点位于第二服务器中。结合第一方面,本专利技术实施例提供了第一方面的第一种可能的实施方式,其中,第一目标数据按照如下方式获取:第一代理节点从目标第一虚拟队列中获取发送任务,所述发送任务中记载了第一目标数据在第一共享内存中的位置;发送任务是由目标第一OSD存储节点写入到目标第一虚拟队列中的;第一代理节点根据发送任务从第一共享内存中提取第一目标数据。结合第一方面,本专利技术实施例提供了第一方面的第二种可能的实施方式,其中,目标第二OSD存储节点的标识是第一代理节点根据获取到发送任务的目标第一虚拟队列上的标记确定的;目标第一虚拟队列上记录有将目标第二OSD存储节点作为数据接收方的标记。结合第一方面,本专利技术实施例提供了第一方面的第三种可能的实施方式,其中,目标第一OSD存储节点只对应了一个第一OSD存储节点;或,目标第一OSD存储节点对应了至少两个第一OSD存储节点;和/或,目标第二OSD存储节点的标识只对应了一个第二OSD存储节点;或,目标第二OSD存储节点的标识对应了至少两个第二OSD存储节点。结合第一方面,本专利技术实施例提供了第一方面的第四种可能的实施方式,其中,还包括:第一代理节点获取目标第一OSD存储节点所发出的第一虚拟队列分配请求;第一虚拟队列分配请求中携带有目标第二OSD存储节点的标识;第一代理节点为目标第一OSD存储节点分配目标第一虚拟队列,并根据目标第二OSD存储节点的标识对分配的目标第一虚拟队列进行标记;第一代理节点根据获取发送任务的目标第一虚拟队列的标记,确定目标第二OSD存储节点的标识。结合第一方面,本专利技术实施例提供了第一方面的第五种可能的实施方式,其中,还包括:第一代理节点接收第三代理节点所发出的第二目标数据;第二目标数据是由目标第三OSD存储节点发送给第三代理节点的;所述第三代理节点和所述第三OSD存储节点均位于第三服务器中;第一代理节点将第二目标数据存储到第一共享内存中;第一代理节点向第一虚拟队列中写入接收任务,以使目标第一OSD存储节点根据接收任务从第一共享内存中读取第二目标数据;所述接收任务中记载了第二目标数据在第二共享内存中的位置。第二方面,本专利技术实施例提供了一种数据发送装置,设置于分布式系统中的第一服务器内的第一代理节点中;第一服务器是分布式系统包括的至少三个服务器中的一个;每个服务器均包括代理节点、共享内存和多个OSD存储节点;不同服务器中的代理节点之间建立有TCP连接;该装置包括:第一获取模块,用于获取目标第二OSD存储节点的标识,以及从第一共享内存中读取第一目标数据;所述第一目标数据是由目标第一OSD存储节点写入到第一共享内存中的;所述目标第二OSD存储节点所在的第二服务器和目标第一OSD存储节点所在的第一服务器是不同的服务器;所述第一共享内存、第一代理节点和目标第一OSD存储节点均位于第一服务器中;发送模块,用于通过与第二服务器中的第二代理节点建立的TCP连接,将第一目标数据和目标第二OSD存储节点的标识向第二代理节点发送,以使第二服务器中的第二代理节点将第一目标数据向目标第二OSD存储节点发送;第二代理节点和目标第二OSD存储节点位于第二服务器中。结合第二方面,本专利技术实施例提供了第一方面的第一种可能的实施方式,其中,还包括:第二获取模块,用于从目标第一虚拟队列中获取发送任务,所述发送任务中记载了第一目标数据在第一共享内存中的位置;发送任务是由目标第一OSD存储节点写入到目标第一虚拟队列中的;提取模块,用于根据发送任务从第一共享内存中提取第一目标数据。结合第二方面,本专利技术实施例提供了第一方面的第二种可能的实施方式,其中,目标第二OSD存储节点的标识是根据获取到发送任务的目标第一虚拟队列上的标记确定的;目标第一虚拟队列上记录有将目标第二OSD存储节点作为数据接收方的标记。结合第二方面,本专利技术实施例提供了第一方面的第三种可能的实施方式,其中,目标第一OSD存储节点只对应了一个第一OSD存储节点;或,目标第一OSD存储节点对应了至少两个第一OSD存储节点;和/或,目标第二OSD存储节点的标识只对应了一个第二OSD存储节点;或,目标第二OSD存储节点的标识对应了至少两个第二OSD存储节点。结合第二方面,本专利技术实施例提供了第一方面的第四种可能的实施方式,其中,还包括:第三获取模块,用于获取目标第一OSD存储节点所发出的第一虚拟队列分配请求;第一虚拟队列分配请求中携带有目标第二OSD存储节点的标识;分配模块,用于为目标第一OSD存储节点分配目标第一虚拟队列,并根据目标第二OSD存储节点的标识对分配的目标第一虚拟队列进行标记;确定模块,用于根据获取发送任务的目标第一虚拟队列的标记,确定目标第二OSD存储节点的标识。结合第二方面,本专利技术实施例提供了第一方面的第五种可能的实施方式,其中,还包括:接收模块,用于接收第三代理节点所发出的第二目标数据;第二目标数据是由目标第三OSD存储节点发送给第三代理节点的;所述第三代理节点和所述第三OSD存储节点均位于第三服务器中;存储模块,用于将第二目标数据存储到第一共享内存中;写入模块,用于向第一虚拟队列中本文档来自技高网...

【技术保护点】
1.一种数据发送方法,其特征在于,作用于分布式系统中的服务器内所设置的代理节点;分布式系统包括至少三个服务器;每个服务器均包括代理节点、共享内存和多个OSD存储节点;不同服务器中的代理节点之间建立有TCP连接;同一个服务器中的共享内存和多个OSD存储节点之间是采用有线连接的方式进行连接,或者是局域网式的无线连接的方式进行连接的;同一个服务器中的代理节点和共享内存之间是通过有线连接的方式连接,或者是通过局域网式的无线连接的方式连接;该方法包括:第一代理节点获取目标第二OSD存储节点的标识,以及从第一共享内存中读取第一目标数据;所述第一目标数据是由目标第一OSD存储节点写入到第一共享内存中的;所述目标第二OSD存储节点所在的第二服务器和目标第一OSD存储节点所在的第一服务器是不同的服务器;所述第一共享内存、第一代理节点和目标第一OSD存储节点均位于第一服务器中;第一代理节点通过与第二服务器中的第二代理节点建立的TCP连接,将第一目标数据和目标第二OSD存储节点的标识向第二代理节点发送,以使第二服务器中的第二代理节点将第一目标数据向目标第二OSD存储节点发送;第二代理节点和目标第二OSD存储节点位于第二服务器中。...

【技术特征摘要】
1.一种数据发送方法,其特征在于,作用于分布式系统中的服务器内所设置的代理节点;分布式系统包括至少三个服务器;每个服务器均包括代理节点、共享内存和多个OSD存储节点;不同服务器中的代理节点之间建立有TCP连接;同一个服务器中的共享内存和多个OSD存储节点之间是采用有线连接的方式进行连接,或者是局域网式的无线连接的方式进行连接的;同一个服务器中的代理节点和共享内存之间是通过有线连接的方式连接,或者是通过局域网式的无线连接的方式连接;该方法包括:第一代理节点获取目标第二OSD存储节点的标识,以及从第一共享内存中读取第一目标数据;所述第一目标数据是由目标第一OSD存储节点写入到第一共享内存中的;所述目标第二OSD存储节点所在的第二服务器和目标第一OSD存储节点所在的第一服务器是不同的服务器;所述第一共享内存、第一代理节点和目标第一OSD存储节点均位于第一服务器中;第一代理节点通过与第二服务器中的第二代理节点建立的TCP连接,将第一目标数据和目标第二OSD存储节点的标识向第二代理节点发送,以使第二服务器中的第二代理节点将第一目标数据向目标第二OSD存储节点发送;第二代理节点和目标第二OSD存储节点位于第二服务器中。2.根据权利要求1所述的方法,其特征在于,第一目标数据按照如下方式获取:第一代理节点从目标第一虚拟队列中获取发送任务,所述发送任务中记载了第一目标数据在第一共享内存中的位置;发送任务是由目标第一OSD存储节点写入到目标第一虚拟队列中的;第一代理节点根据发送任务从第一共享内存中提取第一目标数据。3.根据权利要求2所述的方法,其特征在于,目标第二OSD存储节点的标识是第一代理节点根据获取到发送任务的目标第一虚拟队列上的标记确定的;目标第一虚拟队列上记录有将目标第二OSD存储节点作为数据接收方的标记。4.根据权利要求2所述的方法,其特征在于,目标第一OSD存储节点只对应了一个第一OSD存储节点;或,目标第一OSD存储节点对应了至少两个第一OSD存储节点;和/或,目标第二OSD存储节点的标识只对应了一个第二OSD存储节点;或,目标第二OSD存储节点的标识对应了至少两个第二OSD存储节点。5.根据权利要求2所述的方法,其特征在于,还包括:第一代理节点获取目标第一OSD存储节点所发出的第一虚拟队列分配请求;第一虚拟队列分配请求中携带有目标第二OSD存储节点的标识;第一代理节点为目标第一OSD存储节点分配目标第一虚拟队列,并根据目标第二OSD存储节点的标识对分配的目标第一虚拟队列进行标记;第一代理节点根据获取发送任务的目标第一虚拟队列的标记,确定目标第二OSD存储节点的标识。6.根据权利要求1所述的方法,其特征在于,还包括:第一代理节点接收第三代理节点所发出的第二目标数据;第二目标数据是由目标第三OSD存储节点发送给第三代理节点的;所述第三代理节点和所述第三OSD存储节点均位于第三服务器中;第一代理节点将第二目标数据存储到第一共享内存中;第一代理节点向第一虚拟队列中写入接收任务,以使目标第一OSD存储节点根据接收任务从第一共享内存中读取第二目标数据;所述接收任务中记载了第二目标数据在第一共享内存中的位置。7.一种数据发送装置,其特征在于,设置于分布式系统中的第一服务器内的第一代理节点中...

【专利技术属性】
技术研发人员:陈钊
申请(专利权)人:新华三技术有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1