CN107113323B - 一种数据存储方法、装置和系统 - Google Patents

一种数据存储方法、装置和系统 Download PDF

Info

Publication number
CN107113323B
CN107113323B CN201580001239.3A CN201580001239A CN107113323B CN 107113323 B CN107113323 B CN 107113323B CN 201580001239 A CN201580001239 A CN 201580001239A CN 107113323 B CN107113323 B CN 107113323B
Authority
CN
China
Prior art keywords
storage
storage nodes
node
data
nodes
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
CN201580001239.3A
Other languages
English (en)
Other versions
CN107113323A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN107113323A publication Critical patent/CN107113323A/zh
Application granted granted Critical
Publication of CN107113323B publication Critical patent/CN107113323B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications

Abstract

一种数据存储方法、装置和系统。用于将源节点的待存储的数据分布存储到分布式存储系统中,该方法包括:从所述分布式存储系统确定N个存储节点(S202);获取所述N个存储节点中每个存储节点的带宽信息(S204),所述每个存储节点的带宽信息为所述每个存储节点到所述源节点的数据传输路径的传输带宽;根据所述待存储的数据以及所述每个存储节点的带宽信息,为所述每个存储节点分配对应的待存储的数据(S206);将所述每个存储节点分配到的待存储的数据发送给所述每个存储节点(208)。根据传输带宽为每一个存储节点分配数据块大小,为传输带宽大的存储节点分配的较大的数据块,从而提高了数据传输效率,缩短了数据的访问时间,实现了资源的合理利用。

Description

一种数据存储方法、装置和系统
技术领域
本发明实施例涉及计算机领域,尤其涉及一种数据存储方法、装置和系统。
背景技术
存储速度在过去几年中有了显著的提高,例如现今主流的固态硬盘(Solid StateDrive,SSD)能够提供比传统硬盘存储(Hard Disk Drive,HDD)的接入速度有10倍以上的提升。但相比存储,近几年来网络速度的提升也是达到10倍之多,直到今日,存储速度仍一直落后于网络传输速度。
随着信息和数据的爆炸性增长,对存储容量的需求也达到了前所未有的高度。传统存储系统和存储网络在面对如今这种超大容量的需求时显得力不从心,即便能够满足需求,但是其高昂的造价也成为了壁垒。
随着分布式数据架构应用于云存储系统中,存储节点可以部署在网络的不同位置,为了充分利用分布式存储网络的速度,数据被分为多个数据块,并存储在不同的存储节点中,从而实现对多个存储节点的并行访存。
现有技术中,在分布式存储网络中一般将数据分为大小相同的数据块,并为数据块随机或者基于最小时延策略选择对应的存储节点,然后将数据块存储于不同的存储节点。随着存储规模的快速增长,为了应对网络流量的高速增长,大量高耗能器件的数量也随之增长,现有技术中均分数据块,以及为数据块随机选取存储节点或最小时延策略已经无法满足实际应用的需求,需要对分布式存储方法进行进一步的优化。
发明内容
有鉴于此,本发明实施例提供了一种数据存储方法、装置和系统,实现了分布式存储方法的优化。
第一方面,本发明实施例提供了一种数据存储方法,用于将源节点的待存储的数据分布存储到分布式存储系统中,包括:所述源节点从所述分布式存储系统确定N个存储节点,其中,N为大于1的正整数;所述源节点获取所述N个存储节点中每个存储节点的带宽信息,所述N个存储节点中的所述每个存储节点的带宽信息为所述N个存储节点中的所述每个存储节点到所述源节点的数据传输路径的传输带宽;所述源节点根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据;所述源节点将所述N个存储节点中的所述每个存储节点分配到的待存储的数据发送给所述N个存储节点中的所述每个存储节点。
结合第一方面,在第一方面第一种可能的实现方式中,所述源节点根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据,包括:所述源节点为所述N个存储节点中的J个存储节点分别分配对应的待存储的数据,其中,所述J个存储节点中的第j个存储节点分配到的待存储的数据的大小与所述第j个存储节点的传输带宽呈正相关关系,所述J为大于1小于等于N的正整数,所述j为从1逐一递增到J的正整数。
结合第一方面或第一方面以上任一种可能的实现方式,在第一方面第二种可能的实现方式中,所述源节点从所述分布式存储系统确定N个存储节点,包括:所述源节点获取所述分布式存储系统中的M个存储节点的功耗信息,所述功耗信息为所述M个存储节点中的每个存储节点到所述源节点的传输功耗,M为大于等于N的正整数;所述源节点根据所述M个存储节点的功耗信息,从所述M个存储节点中选择所述N个存储节点。
结合第一方面或第一方面以上任一种可能的实现方式,在第一方面第三种可能的实现方式中,所述源节点从所述分布式存储系统确定N个存储节点,包括:所述源节点获取所述分布式存储系统中的M个存储节点的时延信息,M为大于等于N的正整数;所述源节点根据所述M个存储节点的时延信息,从所述M个存储节点中选择所述N个存储节点。
结合第一方面或第一方面以上任一种可能的实现方式,在第一方面第四种可能的实现方式中,所述源节点根据所述M个存储节点的时延信息,从所述M个存储节点中选择所述N个存储节点,包括:所述源节点从所述M个存储节点选择时延满足第一条件的N个存储节点,其中,所述时延满足第一条件为:第p+1个存储节点的时延小于或等于前p个存储节点的数据下载时间的和值与所述N个存储节点中的第1个存储节点的时延之和,所述p为从1逐一递增到N-1的正整数。
结合第一方面或第一方面以上任一种可能的实现方式,在第一方面第五种可能的实现方式中,所述源节点从所述M个存储节点选择时延满足第一条件的N个存储节点,包括:所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点;所述源节点从所述M个存储节点除去所述第一存储节点之外的存储节点中按照从2到N的顺序依次确定剩下的N-1个存储节点,其中,所述剩下的N-1个存储节点中的每个存储节点的时延满足所述第一条件。
结合第一方面或第一方面以上任一种可能的实现方式,在第一方面第六种可能的实现方式中,所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:所述源节点根据所述时延信息,或者所述带宽信息,或者所述功耗信息从所述M个存储节点中选择一个存储节点作为所述第一存储节点。
结合第一方面或第一方面以上任一种可能的实现方式,在第一方面第七种可能的实现方式中,在所述源节点从所述M个存储节点除去所述第一存储节点之外的存储节点中确定第x个存储节点时,若所述源节点确定了满足所述第一条件的至少两个备选存储节点,所述源节点进一步根据时延,或者传输带宽,或者传输功耗从满足所述第一条件的至少两个备选存储节点中选择一个存储节点作为第x个存储节点,其中,x大于等于2且小于等于N。
第二方面,本发明实施例提供了一种计算设备可读介质,包括计算设备执行指令,当计算设备的处理器执行所述计算设备执行指令时,所述计算设备执行第一方面或第一方面任一种可能的实现方式所述的方法。
第三方面,本发明实施例提供了一种数据存储装置,包括:处理器、存储器、总线和通信接口;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述数据存储装置运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述数据存储装置执行第一方面或第一方面任一种可能的实现方式所述的方法。
第四方面,本发明实施例提供了一种数据存储方法,用于将源节点的待存储的数据分布存储到分布式存储系统中,包括:所述源节点获取所述分布式存储系统中的M个存储节点的功耗信息,所述功耗信息为所述M个存储节点中的每个存储节点到所述源节点的传输功耗,其中M为大于1的正整数;所述源节点根据所述M个存储节点的功耗信息,从所述M个存储节点中确定N个存储节点,其中,N为大于1并且小于等于M的正整数;所述源节点根据所述待存储的数据,给所述N个存储节点中的每个存储节点分配对应的待存储的数据;所述源节点将所述N个存储节点中的所述每个存储节点分配到的待存储的数据发送给所述N个存储节点中的所述每个存储节点。
结合第四方面,在第四方面第一种可能的实现方式中,所述源节点根据所述M个存储节点的功耗信息,从所述M个存储节点中确定N个存储节点,包括:所述源节点获取所述M个存储节点的时延信息;所述源节点从所述M个存储节点选择时延满足第一条件的备选存储节点,其中,所述时延满足第一条件为:第p+1个存储节点的时延小于或等于前p个存储节点的数据下载时间的和值与所述N个存储节点中的第1个存储节点的时延之和,所述p为从1逐一递增到N-1的正整数;所述源节点根据所述备选存储节点的功耗信息,从所述备选存储节点中选择所述N个存储节点。
结合第四方面或第四方面以上任一种可能的实现方式,在第四方面第二种可能的实现方式中,所述源节点根据所述M个存储节点的功耗信息,从所述M个存储节点中确定N个存储节点,包括:所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点;所述源节点根据所述功耗信息按照从第2到第N的顺序依次从所述备选存储节点中确定剩下的N-1个存储节点。
结合第四方面或第四方面以上任一种可能的实现方式,在第四方面第三种可能的实现方式中,所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:所述源节点从所述M个存储节点中选择传输功耗最小的存储节点作为所述第一存储节点;或者,所述源节点从所述M个存储节点中时延最小的至少两个存储节点中,选择传输功耗最小的存储节点作为所述第一存储节点。
结合第四方面或第四方面以上任一种可能的实现方式,在第四方面第四种可能的实现方式中,在所述源节点根据所述功耗信息从所述备选存储节点中确定第x个存储节点时,其中,x为大于1的正整数,所述源节点从满足所述第一条件的备选存储节点中选择传输功耗最小的存储节点作为第x个存储节点;或者,所述源节点从满足所述第一条件的备选存储节点中时延最大的至少两个存储节点中,选择传输功耗最小的存储节点作为第x个存储节点。
结合第四方面或第四方面以上任一种可能的实现方式,在第四方面第五种可能的实现方式中,还包括:所述源节点获取所述N个存储节点中的所述每个存储节点的带宽信息,所述N个存储节点中的所述每个存储节点的带宽信息为所述N个存储节点中的所述每个存储节点到所述源节点的数据传输路径的传输带宽;所述源节点根据所述待存储的数据,给所述N个存储节点中的每个存储节点分配对应的待存储的数据,包括:所述源节点根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据。
结合第四方面或第四方面以上任一种可能的实现方式,在第四方面第六种可能的实现方式中,所述源节点根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据,包括:所述源节点为所述N个存储节点中的J个存储节点分配对应的待存储的数据,其中,所述J个存储节点中的第j个存储节点分配到的待存储的数据的大小与所述第j个存储节点的传输带宽呈正相关关系,所述J为大于1小于等于N的正整数,所述j为从1逐一递增到J的正整数。
第五方面,本发明实施例提供了一种计算设备可读介质,包括计算设备执行指令,当计算设备的处理器执行所述计算设备执行指令时,所述计算设备执行第四方面或第四方面任一种可能的实现方式所述的方法。
第六方面,本发明实施例提供了一种数据存储装置,包括:处理器、存储器、总线和通信接口;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述数据存储装置运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述数据存储装置执行第四方面或第四方面任一种可能的实现方式所述的方法。
第七方面,本发明实施例提供了一种数据存储装置,用于将待存储的数据分布存储到分布式存储系统中,包括:确定单元,用于从所述分布式存储系统确定N个存储节点,其中,N为大于1的正整数;获取单元,用于获取所述N个存储节点中每个存储节点的带宽信息,所述N个存储节点中的所述每个存储节点的带宽信息为所述N个存储节点中的所述每个存储节点到所述源节点的数据传输路径的传输带宽;分配单元,用于根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据;发送单元,用于将所述N个存储节点中的所述每个存储节点分配到的待存储的数据发送给所述N个存储节点中的所述每个存储节点。
结合第七方面,在第七方面第一种可能的实现方式中,所述分配单元用于根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据,包括:所述分配单元用于为所述N个存储节点中的J个存储节点分别分配对应的待存储的数据,其中,所述J个存储节点中的第j个存储节点分配到的待存储的数据的大小与所述第j个存储节点的传输带宽呈正相关关系,所述J为大于1小于等于N的正整数,所述j为从1逐一递增到J的正整数。
结合第七方面或第七方面以上任一种可能的实现方式,在第七方面第二种可能的实现方式中,所述获取单元还用于获取所述分布式存储系统中的M个存储节点的功耗信息,所述功耗信息为所述M个存储节点中的每个存储节点到所述源节点的传输功耗,M为大于等于N的正整数;所述确定单元用于从所述分布式存储系统确定N个存储节点包括:所述确定单元用于根据所述M个存储节点的功耗信息,从所述M个存储节点中选择所述N个存储节点。
结合第七方面或第七方面以上任一种可能的实现方式,在第七方面第三种可能的实现方式中,所述获取单元还用于获取所述分布式存储系统中的M个存储节点的时延信息,M为大于等于N的正整数;所述确定单元用于从所述分布式存储系统确定N个存储节点包括:所述确定单元用于根据所述M个存储节点的时延信息,从所述M个存储节点中选择所述N个存储节点。
结合第七方面或第七方面以上任一种可能的实现方式,在第七方面第四种可能的实现方式中,所述确定单元用于根据所述M个存储节点的时延信息,从所述M个存储节点中选择所述N个存储节点,包括:所述确定单元用于从所述M个存储节点选择时延满足第一条件的N个存储节点,其中,所述时延满足第一条件为:第p+1个存储节点的时延小于或等于前p个存储节点的数据下载时间的和值与所述N个存储节点中的第1个存储节点的时延之和,所述p为从1逐一递增到N-1的正整数。
结合第七方面或第七方面以上任一种可能的实现方式,在第七方面第五种可能的实现方式中,所述确定单元用于从所述M个存储节点选择时延满足第一条件的N个存储节点,包括:所述确定单元用于将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点;所述确定单元用于从所述M个存储节点除去所述第一存储节点之外的存储节点中按照从2到N的顺序依次确定剩下的N-1个存储节点,其中,所述剩下的N-1个存储节点中的每个存储节点的时延满足所述第一条件。
结合第七方面或第七方面以上任一种可能的实现方式,在第七方面第六种可能的实现方式中,所述确定单元用于将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:所述确定单元用于根据所述时延信息,或者所述带宽信息,或者所述功耗信息从所述M个存储节点中选择一个存储节点作为所述第一存储节点。
结合第七方面或第七方面以上任一种可能的实现方式,在第七方面第七种可能的实现方式中,在从所述M个存储节点除去所述第一存储节点之外的存储节点中确定第x个存储节点时,若所述确定单元确定了满足所述第一条件的至少两个备选存储节点,所述所述确定单元还用于根据时延,或者传输带宽,或者传输功耗从满足所述第一条件的至少两个备选存储节点中选择一个存储节点作为第x个存储节点,其中,x大于等于2且小于等于N。
第八方面,本发明实施例提供了一种数据存储系统,包含如第七方面或第七方面任一种可能的实现方式所述的数据存储装置和多个存储节点,用于将所述数据存储装置的数据分布存储于所述多个存储节点中的N个存储节点,其中N为大于1的正整数。
第九方面,本发明实施例提供了一种数据存储装置,用于将待存储的数据分布存储到分布式存储系统中,包括:获取单元,用于获取所述分布式存储系统中的M个存储节点的功耗信息,所述功耗信息为所述M个存储节点中的每个存储节点到所述源节点的传输功耗,其中M为大于1的正整数;确定单元,用于根据所述M个存储节点的功耗信息,从所述M个存储节点中确定N个存储节点,其中,N为大于1并且小于等于M的正整数;分配单元,用于根据所述待存储的数据,给所述N个存储节点中的每个存储节点分配对应的待存储的数据;发送单元,用于将所述N个存储节点中的所述每个存储节点分配到的待存储的数据发送给所述N个存储节点中的所述每个存储节点。
结合第九方面,在第九方面第一种可能的实现方式中,所述获取单元还用于获取所述M个存储节点的时延信息;所述确定单元用于根据所述M个存储节点的功耗信息,从所述M个存储节点中确定N个存储节点,包括:所述确定单元用于从所述M个存储节点选择时延满足第一条件的备选存储节点,其中,所述时延满足第一条件为:第p+1个存储节点的时延小于或等于前p个存储节点的数据下载时间的和值与所述N个存储节点中的第1个存储节点的时延之和,所述p为从1逐一递增到N-1的正整数;所述确定单元用于根据所述备选存储节点的功耗信息,从所述备选存储节点中选择所述N个存储节点。
结合第九方面或第九方面以上任一种可能的实现方式,在第九方面第二种可能的实现方式中,所述确定单元用于根据所述M个存储节点的功耗信息,从所述M个存储节点中确定N个存储节点,包括:所述确定单元用于将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点;所述确定单元用于根据所述功耗信息按照从第2到第N的顺序依次从所述备选存储节点中确定剩下的N-1个存储节点。
结合第九方面或第九方面以上任一种可能的实现方式,在第九方面第三种可能的实现方式中,所述确定单元用于将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:所述确定单元用于从所述M个存储节点中选择传输功耗最小的存储节点作为所述第一存储节点;或者,从所述M个存储节点中时延最小的至少两个存储节点中,选择传输功耗最小的存储节点作为所述第一存储节点。
结合第九方面或第九方面以上任一种可能的实现方式,在第九方面第四种可能的实现方式中,在所述确定单元用于根据所述功耗信息从所述备选存储节点中确定第x个存储节点时,其中,x为大于1的正整数,所述确定单元用于从满足所述第一条件的备选存储节点中选择传输功耗最小的存储节点作为第x个存储节点;或者,从满足所述第一条件的备选存储节点中时延最大的至少两个存储节点中,选择传输功耗最小的存储节点作为第x个存储节点。
结合第九方面或第九方面以上任一种可能的实现方式,在第九方面第五种可能的实现方式中,所述获取单元还用于获取所述N个存储节点中的所述每个存储节点的带宽信息,所述N个存储节点中的所述每个存储节点的带宽信息为所述N个存储节点中的所述每个存储节点到所述源节点的数据传输路径的传输带宽;所述分配单元用于根据所述待存储的数据,给所述N个存储节点中的每个存储节点分配对应的待存储的数据,包括:所述分配单元用于根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据。
结合第九方面或第九方面以上任一种可能的实现方式,在第九方面第六种可能的实现方式中,所述分配单元用于根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据,包括:所述分配单元用于为所述N个存储节点中的J个存储节点分配对应的待存储的数据,其中,所述J个存储节点中的第j个存储节点分配到的待存储的数据的大小与所述第j个存储节点的传输带宽呈正相关关系,所述J为大于1小于等于N的正整数,所述j为从1逐一递增到J的正整数。
第十方面,本发明实施例提供了一种数据存储系统,包含如第九方面或第九方面任一种可能的实现方式所述的数据存储装置和多个存储节点,用于将所述数据存储装置的数据分布存储于所述多个存储节点中的N个存储节点,其中N为大于1的正整数。
根据本发明实施例公开的技术方案,根据传输带宽为每一个存储节点分配数据块大小,为传输带宽大的存储节点分配的较大的数据块,从而提高了数据传输效率,缩短了数据的访问时间,实现了资源的合理利用。进一步的,选取存储节点的时候考虑到存储节点的传输功耗,优先选取传输功耗的存储节点,从而降低了数据访问的功耗。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为分布式数据存储系统的示例性联网环境框图;
图2为依据本发明一实施例的数据存储方法的示范性流程图;
图3为依据本发明一实施例的数据存储方法的示范性流程图;
图4为依据本发明一实施例的数据存储装置的逻辑结构示意图;
图5为依据本发明一实施例的数据存储装置的逻辑结构示意图;
图6为依据本发明一实施例的数据存储装置硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了分布式数据存储系统100的示例性联网环境框图,系统100包含源节点102和多个存储节点104,源节点102和存储节点104,以及存储节点104之间通过交换设备106进行互联,整个系统100的各个组件通过网络相互连接,其中,网络可以是因特网、内联网、局域网(LANs)、广域网络(WLANs)、存储区域网络(SANs)或其他连接方式,或者以上网络的组合。
当源节点102要将数据108分布存储在多个存储节点104时,源节点102将数据108进行分块,并将数据块发送给对应的存储节点104。为了描述方便,在本实施例中,数据108被分为5个数据块,但本发明实施例并不对此进行限定,具体实现的时候,可以将数据108分为更多或者更少的数据块;源节点102从与其连接的多个存储节点104中选取5个存储节点104作为目标存储节点104,并将5个数据块分别发送给5个目标存储节点104进行存储。
图1仅是为以下讨论目的而引出分布式存储的参与者以及它们的相互关系。因此,所描绘的分布式数据存储系统100被大大地简化,系统100可以拥有更多或者更少的组件,本发明实施例并不对此进行限定。
根据本发明一实施例的分布式存储系统100如图1所示。用于将源节点102的数据108分布存储到分布式存储系统100中的N个存储节点104,其中N为大于1的正整数。
所述源节点102从所述分布式存储系统100确定N个存储节点104,其中,N为大于1的正整数。
在本发明实施例的一种实施方式中,所述源节点102从所述分布式存储系统100确定N个存储节点104,包括:所述源节点102获取所述分布式存储系统100中的M个存储节点104的功耗信息,所述功耗信息为所述M个存储节点104中的每个存储节点104到所述源节点102的传输功耗,M为大于等于N的正整数;所述源节点102根据所述M个存储节点104的功耗信息,从所述M个存储节点104中选择所述N个存储节点104。
其中,传输功耗是指单位大小的数据块从对应的存储节点104到源节点102传输需要的功耗。
所述M个存储节点104为与源节点102连接的存储节点104,应了解,此处的连接是指网络拓扑实现了源节点102和所述M个存储节点104之间的互联,连接并不仅限于直连,源节点102和存储节点104之间可以有一个或多个(包括两个)交换设备106。
应了解,所述M个存储节点104可以是与源节点102连接的全部存储节点104。所述M个存储节点104也可以是与源节点102连接的全部的存储节点104中的部分的存储节点104。例如,所述M个存储节点104是负载和时延等情况满足源节点102实际需求,且可实际供源节点102使用的存储节点104。具体而言,到源节点102的数据传输路径的传输时延大于某一阈值,或者负载情况大于某一阈值,或者到源节点102的数据传输路径的传输功耗大于某一阈值,或者到所述源节点102的数据传输路径的跳数大于某一阈值的存储节点104,可以被认为是不能被源节点102实际使用的存储节点104。
因为数据传输的主要传输功耗是由经由的交换设备处理数据产生的功耗,数据传输路径的跳数,即经由的交换设备的个数,反应了数据该数据传输路径传输时的功耗,跳数越多,传输功耗越大。在具体实现过程中,可以用存储节点104到源节点102的路径的跳数来反映存储节点104到源节点102的数据传输路径的传输功耗。
因为数据传输路径的传输功耗不但和跳数有关,也和数据的处理时间有关,对数据的处理时间越长,或者数据在缓存中的等待时间越长,也会消耗更多的能源。在具体实现过程中,也可以用存储节点104到源节点102的数据传输路径的传输时延来反映对应的存储节点104到源节点102的传输功耗。
应了解,传输功耗的表现形式多种多样,可以用数据传输路径的跳数来表示,也可以用数据传输路径的传输时延来表示,也可以进行实际的统计,本发明实施例仅仅是进行了举例说明,并不对传输功耗的表现形式进行限定,允许传输功耗的其他替代表现方式。
在本发明实施例的一种具体的实施方式中,所述源节点102获取所述分布式存储系统100中的M个存储节点104的功耗信息,包括:源节点102向所述M个存储节点104分别发送查询请求;所述源节点102接收来自所述M个存储节点104中每一个存储节点104的回执消息,每一个所述回执消息包含对应的存储节点104的功耗信息。
例如,如果用存储节点104到所述源节点102的数据传输路径的跳数来表述传输功耗,可以用回执报文记录从存储节点104到源节点102传输过程中,经过的路由设备的个数。
在具体实现方式中,源节点102可以向与源节点102连接的所有的存储节点104发送查询请求,只有能够实际满足源节点102的存储需求的M个存储节点104会向源节点102发送回执消息。不能满足源节点102的存储需求的存储节点104可以不响应源节点102的存储资源请求或者向源节点102发送拒绝消息。例如,到源节点102的数据传输路径的传输时延大于某一阈值,或者负载情况大于某一阈值,或者到源节点102的数据传输路径的传输功耗大于某一阈值,或者到所述源节点102的数据传输路径的跳数大于某一阈值的存储节点104,可以不响应源节点102的存储资源请求或发送拒绝消息。
在本发明实施例的一种具体的实施方式中,系统100还包含管理服务器(未示出),所述管理服务器用于维护所述M个存储节点104的节点信息,所述节点信息包含功耗信息。所述源节点102获取所述分布式存储系统100中的M个存储节点104的功耗信息,包括:源节点102向管理服务器发送查询请求;源节点102接收来自所述管理服务器的回执消息,所述回执消息包含所述M个存储节点104中每一个存储节点104的功耗信息。
在具体实现过程中,可以由管理服务器进行存储节点104到源节点102的数据传输路径的传输功耗进行实时统计和更新。
例如,在软件定义网络(Software Defined Networking,SDN)中,管理服务器可以为SDN控制器,管理服务器的种类可以有多种实现形式,本发明实施例并不对此进行限定。
在本发明实施例的一种具体的实施方式中,源节点102包含一个数据库,所述数据库保存了所述M个存储节点104中每一个存储节点104的节点信息,所述节点信息包含功耗信息。所述源节点102获取所述分布式存储系统100中的M个存储节点104的功耗信息,包括:源节点102从所述数据库中获取所述M个存储节点104中每一个存储节点104的功耗信息。
具体实现过程中,可以在系统初始化的时候,在源节点102中的数据库中放入与源节点102连接的目的节点104的节点信息。
在本发明实施例的一种实施方式中,所述源节点102从所述分布式存储系统100确定N个存储节点104,包括:所述源节点102获取所述分布式存储系统100中的M个存储节点104的时延信息,M为大于等于N的正整数;所述源节点102根据所述M个存储节点104的时延信息,从所述M个存储节点104中选择所述N个存储节点104。
所述M个存储节点104中每一个存储节点104的时延信息为源节点102向所述每个存储节点104发送数据访问请求时刻到所述每个存储节点104将数据的第一个数据包发送至所述源节点102时刻之间的时间,包含所述每一个存储节点104的接入时延和所述每一个存储节点104到源节点102的数据传输路径的传输时延。存储节点104的接入时延为源节点102发出访问请求到该存储节点104发送出数据块的第一个数据包之间的时间。具体的,接入时延可以包括源节点102与存储节点104的链接的建立时间和存储节点104发送数据块前的准备时间。
应了解,该时延是由多个部分组成,具体可以包含源节点102向存储节点104发出访问请求到存储节点104接收到该访问请求的第一时延,存储节点104将存储的数据读入最快的一级存储设备准备就绪的第二时延,以及存储节点104发出第一个数据包到源节点102接收到该第一个数据包的第三时延。在具体实现过程中,因为不同阶段的时延大小不同,可以忽略部分时延,用时延的某一部分代表总体时延,本发明实施例并不对此进行限定,只要该时延在一定程度上,体现出源节点102向所述每个存储节点104发送数据访问请求的第一时刻到所述每个存储节点104将数据的第一个数据包发送至所述源节点102的第二时刻之间的时间间隔即可。
在具体实现过程中,所述源节点102可以通过向存储节点104发送查询请求,或者通过向管理服务器发送查询请求,或者在本地数据库存储该时延信息,以获取所述分布式存储系统100中的M个存储节点104的时延信息,其具体实现过程与获取功耗信息的方法相同,在此不再赘述。
例如,可以由管理服务器监控并记录源节点102与存储节点104的链接的建立时间、存储节点104发送数据块前的准备时间以及存储节点104到所述源节点102的数据传输路径的传输时延。源节点102向管理服务器发送查询请求,管理服务器给源节点102发送的回执消息里携带该时延信息。也可以在源节点102与存储节点104之间的通讯报文中加入时间记录字段,用于记录建立链路所需要的时间,及存储节点104到所述源节点102的数据传输路径的传输时延。
在具体实现过程中,可以由管理服务器通过数据传输路径的操作管理维护(Operation Administration and Maintenance,OAM)特性,探测该数据传输路径的传输时延。也可以由管理服务器通过记录的传输时延的经验值对数据传输路径的传输时延进行确定。
所述源节点102还获取所述N个存储节点104中的所述每个存储节点104的带宽信息,所述N个存储节点104中的所述每个存储节点104的带宽信息为所述N个存储节点104中的所述每个存储节点104到所述源节点102的数据传输路径的传输带宽。
在本发明实施例的一种实施方式中,所述源节点102从所述分布式存储系统100确定N个存储节点104,包括:所述源节点102根据所述M个存储节点104的带宽信息,从所述M个存储节点104中选择所述N个存储节点104。
具体的,该传输带宽为系统为所述N个存储节点104中的所述每个存储节点104到所述源节点102的数据传输路径预留的带宽,是该数据传输路径进行实际数据传输的平均传输带宽。
在具体实现过程中,所述源节点102可以通过向存储节点104发送查询请求,或者通过向管理服务器发送查询请求,或者在本地数据库存储该带宽信息,以获取所述分布式存储系统100中的M个存储节点104的带宽信息,其具体实现过程与获取功耗信息的方法相同,在此不再赘述。
应了解,在具体实现的过程中,源节点102根据存储节点104的传输功耗、时延和传输带宽中至少一个,从所述M个存储节点104中确定所述N个存储节点104。
例如,所述源节点102从所述分布式存储系统100确定N个存储节点104,包括:源节点102从所述M个存储节点104中选取时延最小的N个存储节点104,或者从所述M个存储节点104中时延最小的L个存储节点104中选取传输功耗最小或传输带宽最大的N个存储节点104,其中L为大于N的正整数。
再例如,所述源节点102从所述分布式存储系统100确定N个存储节点104,包括:源节点102从所述M个存储节点104中选取传输功耗最小的N个存储节点104,或者从所述M个存储节点104中传输功耗最小的L个存储节点104中选取时延最小或传输带宽最大的N个存储节点104,其中L为大于N的正整数。
再例如,所述源节点102从所述分布式存储系统100确定N个存储节点104,包括:源节点102从所述M个存储节点104中选取传输带宽最大的N个存储节点104,或者从所述M个存储节点104中传输带宽最大的L个存储节点104中选取传输功耗最小或时延最小的N个存储节点104,其中L为大于N的正整数。
应了解,本发明实施例仅仅是对存储节点104的选择依据作出举例说明,并不对此进行限定。
在本发明实施例的一种实施方式中,所述源节点102根据所述M个存储节点104的时延信息,从所述M个存储节点104中选择所述N个存储节点104,包括:所述源节点102从所述M个存储节点104选择时延满足第一条件的N个存储节点104,其中,所述时延满足第一条件为:第p+1个存储节点的时延小于或等于前p个存储节点的数据下载时间的和值与所述N个存储节点104中的第1个存储节点的时延之和,所述p为从1逐一递增到N-1的正整数。
其中,一个存储节点104的数据下载时间为该存储节点104分配到的对应的待存储的数据大小K与该存储节点104到源节点102的数据传输路径的传输带宽B之间的比值。
在具体实现过程中,所述源节点102将所述M个存储节点104中的第一存储节点作为所述N个存储节点104中的第1个存储节点;所述源节点102从所述M个存储节点104除去所述第一存储节点之外的存储节点104中按照从2到N的顺序依次确定剩下的N-1个存储节点104,其中,所述剩下的N-1个存储节点104中的每个存储节点104的时延满足所述第一条件。
具体而言,源节点102从所述M个存储节点104中依次确定第p+1个存储节点时,从满足以下条件的存储节点104中,选取一个存储节点104当做第p+1个存储节点:
Figure GWB0000003030020000181
其中,L1用于表示第1个存储节点的所述时延,Ki用于表示为第i个存储节点104分配的数据块大小,Bi用于表示第i个存储节点104的所述传输带宽,Lp+1用于表示第p+1个目标节点的所述时延。
在本发明实施例的一种实现方式中,所述源节点102将所述M个存储节点104中的第一存储节点作为所述N个存储节点104中的第1个存储节点,包括:所述源节点102根据所述时延信息,或者所述带宽信息,或者所述功耗信息从所述M个存储节点104中选择一个存储节点104作为所述第一存储节点。
例如,所述源节点102将所述M个存储节点104中的第一存储节点作为所述N个存储节点104中的第1个存储节点,包括:源节点102从所述多个存储节点104中选取时延和数据块下载时间之和最小的存储节点104作为第一存储节点,即满足
Figure GWB0000003030020000182
值最小的的存储节点104作为第一存储节点。其中,L为该存储节点104的时延,K为分配给该存储节点104的数据块大小,B为该存储节点104的传输带宽。
再例如,所述源节点102将所述M个存储节点104中的第一存储节点作为所述N个存储节点104中的第1个存储节点,包括:源节点102从所述M个存储节点104中选择时延最小的存储节点104,或者从所述M个存储节点104中时延最小的L个存储节点104中选择传输带宽最大或传输功耗最小的存储节点104作为第一存储节点,其中L为大于1的正整数。
再例如,所述源节点102将所述M个存储节点104中的第一存储节点作为所述N个存储节点104中的第1个存储节点,包括:源节点102从所述M个存储节点104中选取传输功耗最小的存储节点104,或者从所述M个存储节点104中传输功耗最小的L个存储节点104中选择传输带宽最大或时延最小的存储节点104作为第一存储节点,其中L为大于1的正整数。
再例如,所述源节点102将所述M个存储节点104中的第一存储节点作为所述N个存储节点104中的第1个存储节点,包括:源节点102从所述M个存储节点104中选取传输带宽最大的存储节点104,或者从所述M个存储节点104中传输带宽最大的L个存储节点104中选择时延最小或传输功耗最小的存储节点104作为第一存储节点,其中L为大于1的正整数。
应了解,所述源节点102从所述M个存储节点104中确定第一存储节点的依据多种多样,本发明实施例仅仅是举例说明,并不对此进行限定。
在本发明实施例的一种实现方式中,在所述源节点102从所述M个存储节点104除去所述第一存储节点之外的存储节点104中确定第x个存储节点104时,若所述源节点确定了满足所述第一条件的至少两个备选存储节点104,所述源节点进一步根据时延,或者传输带宽,或者传输功耗从满足所述第一条件的至少两个备选存储节点104中选择一个存储节点104作为第x个存储节点104,其中,x大于等于2且小于等于N。
例如,源节点102从满足所述第一条件的至少两个备选存储节点104中选择时延最大的存储节点104,或者从满足所述第一条件的至少两个备选存储节点104中时延最大的L个存储节点104中选择传输带宽最大或传输功耗最小的存储节点104作为第x个存储节点104,其中L为大于1的正整数。
再例如,源节点102从满足所述第一条件的至少两个备选存储节点104中选择传输带宽最大的存储节点104,或者从满足所述第一条件的至少两个备选存储节点104中传输带宽最大的L个存储节点104中选择时延最大或传输功耗最小的存储节点104作为第x个存储节点104,其中L为大于1的正整数。
再例如,源节点102从满足所述第一条件的至少两个备选存储节点104中选择传输功耗最小的存储节点104,或者从满足所述第一条件的至少两个备选存储节点104中传输功耗最小的L个存储节点104中选择时延最大或传输带宽最大的存储节点104作为第x个存储节点104,其中L为大于1的正整数。
应了解,所述源节点102确定第x个存储节点104的依据多种多样,本发明实施例仅仅是举例说明,并不对此进行限定。
所述源节点102根据所述待存储的数据,给所述N个存储节点104中的每个存储节点104分配对应的待存储的数据。
在本发明实施例的一种实现方式中,所述源节点102根据所述待存储的数据,给所述N个存储节点104中的每个存储节点104分配对应的待存储的数据,包括:源节点102将数据均分为N个大小相等的数据块,并为每一个存储节点104分配一个数据块。应了解,因为受到数据的最小分割单位的限制,数据可能无法绝对的均分为N个大小相等的数据块,本发明实施例允许允许在均分的基础上对数据块做出调整。
进一步的,源节点102将数据分割为N个数据块,并对所述N个数据块根据所述数据进行排序,源节点102将数据块分配给对应的存储节点104,从而保证了数据块的顺序,将来访问数据的时候可以根据数据块的顺序进行访问。
在本发明实施例的一种实现方式中,所述源节点102获取所述N个存储节点104中每个存储节点104的缓冲区大小,所述缓冲区为对应的存储节点104用于接收数据的存储设备;所述源节点102根据所述待存储的数据,给所述N个存储节点104中的每个存储节点104分配对应的待存储的数据,包括:源节点102将存储节点104的缓冲区大小整数倍大小的数据块分配给对应的存储节点104。具体的,源节点102可以将对应的存储节点104的缓冲区大小的数据块分配给对应的存储节点104。
具体实现过程中,如果源节点102将对应的存储节点104的缓冲区大小的L倍大小的数据块分配给对应的存储节点104,则源节点102将该数据块拆分为L个大小为该缓冲区大小的子数据块,并分别将L个子数据块发送给对应的存储节点104,其中,L为大于1的正整数。
在本发明实施例的一种实现方式中,所述源节点102根据所述待存储的数据,给所述N个存储节点104中的每个存储节点104分配对应的待存储的数据,包括:所述源节点102根据所述待存储的数据以及所述N个存储节点104中的所述每个存储节点104的带宽信息,为所述N个存储节点104中的所述每个存储节点104分配对应的待存储的数据。
所述源节点102根据所述待存储的数据以及所述N个存储节点104中的所述每个存储节点104的带宽信息,为所述N个存储节点104中的所述每个存储节点104分配对应的待存储的数据,包括:所述源节点102为所述N个存储节点104中的J个存储节点分别分配对应的待存储的数据,其中,所述J个存储节点中的第j个存储节点分配到的待存储的数据的大小与所述第j个存储节点的传输带宽呈正相关关系,所述J为大于1小于等于N的正整数,所述j为从1逐一递增到J的正整数。
例如,在J等于N-1的时候,在具体实现过程中,对于前N-1个存储节点,源节点根据所述前N-1个存储节点的传输带宽,为所述前N-1个存储节点中每一个存储节点分配数据块,每个存储节点分配到的待存储的数据的大小与所述该存储节点的传输带宽呈正相关关系,并把剩余的数据分配给第N个存储节点。
例如,在具体实现过程中,源节点102根据所述N个存储节点104中每一个存储节点104的传输带宽为所述N个存储节点104中每一个存储节点104分配数据块,数据块的大小与传输带宽成正相关关系。具体实现时,可以按照传输带宽比例为每一个存储节点104分配数据块,分配依据如下所示:
Figure GWB0000003030020000211
其中Ki为第i个存储节点104分配的数据块大小,Bi为第i个存储节点104的传输带宽,K为整个数据的大小。应了解,式1中的正比例关系仅仅是正相关关系的一种具体实现,在具体实现过程中,实际的数据块大小可以在式1的基础上进行调整。应了解,因为受到数据的最小分割单位的限制,式1的正比例关系并不是绝对的正比例关系,本发明实施例允许在式1的基础上对数据块大小进行调整。
再例如,源节点102还可以设定单位带宽分配的数据块大小K0,分配依据可以如下所示:
Ki=Bi·K0 (式4)
其中Ki是为第i个存储节点104分配的数据块大小,Bi为第i个存储节点104的传输带宽,K0为单位带宽分配的数据块大小。
应了解,以上仅仅是举例说明,本发明实施例并不限于此,本发明实施例允许存储节点104的数据块大小与该存储节点104的传输带宽有其他约束关系。
在本发明实施例的一种实现方式中,所述源节点102从所述M个存储节点104中逐一确定所述N个存储节点104,所述源节点102在确定第j个存储节点后,并在所述源节点102从所述M个存储节点104中确定第j+1个存储节点前,为第j个存储节点分配数据块,其中j为大于0小于N的正整数。
在本发明实施例的一种具体的实现方式中,所述源节点102根据所述待存储的数据以及所述N个存储节点104中的所述每个存储节点104的带宽信息,为所述N个存储节点104中的所述每个存储节点104分配对应的待存储的数据,包括:源节点102在确定第j+1个存储节点之前,将大小与第j个存储节点的所述传输带宽呈正相关关系的数据块分配给所述第j个存储节点,j为从1逐一递增到N-1的正整数,第j+1个存储节点为第j个存储节点的下一个节点;所述源节点102将所述数据的剩余部分分配给第N个存储节点104。
优选的,源节点102从所述M个存储节点104中确定所述N个存储节点104,并根据所述待存储的数据,给所述N个存储节点104中的每个存储节点104分配对应的待存储的数据,包括:
步骤A:源节点102从所述M个存储节点104中确定第1个存储节点,并根据第1个存储节点的传输带宽为第1个存储节点分配数据块。
其中,所述源节点102根据第1个存储节点的传输带宽为第1个存储节点分配数据块包括:所述源节点102将大小与第1个存储节点的所述传输带宽呈正相关关系的数据块分配给所述第1个存储节点。例如,源节点102可以设定单位带宽分配的数据块大小K0,分配依据K1=B1·K0为第1个存储节点分配数据块,其中,K1是为第1个存储节点分配的数据块大小,B1为第1个存储节点的传输带宽,K0为单位带宽分配的数据块大小。
步骤B:源节点102根据所述传输功耗,从所述M个存储节点104中确定第j+1个存储节点,所述第j+1个存储节点的时延不大于前j个存储节点的数据块的下载时间与第1个存储节点的时延之和。执行步骤C。
其中,j的初始值为1。
具体而言,源节点102确定第j+1个存储节点时,从满足以下条件的存储节点104中,根据所述传输功耗选取一个存储节点104当做第j+1个存储节点:
Figure GWB0000003030020000221
其中,L1用于表示第1个存储节点的所述时延,Ki用于表示为第i个存储节点104分配的数据块大小,Bi用于表示第i个存储节点104的所述传输带宽,Lj+1用于表示第j+1个目标节点的所述时延。
可选的,源节点102从所述M个存储节点104中满足式5条件,且尚未被选择的存储节点104中确定传输功耗最小的节点作为第j+1个存储节点。
可选的,源节点102从所述M个存储节点104中满足式5条件,且尚未被选择的存储节点104中时延最大的L个存储节点104中确定传输功耗最小的节点作为第j+1个存储节点,其中L为大于1的正整数。
可选的,源节点102从所述M个存储节点104中满足式5条件,且尚未被选择的存储节点104中传输功耗最小的L个存储节点104中确定时延最大的节点作为第j+1个存储节点,其中L为大于1的正整数。
可选的,源节点102从所述M个存储节点104中满足式5条件,且尚未被选择的存储节点104中传输功耗最小的L个存储节点104中确定传输带宽最大的节点作为第j+1个存储节点,其中L为大于1的正整数。
可选的,源节点102从所述M个存储节点104中满足式5条件,且尚未被选择的存储节点104中传输带宽最大的L个存储节点104中确定传输功耗最小的节点作为第j+1个存储节点,其中L为大于1的正整数。
应了解,源节点102根据所述传输功耗,从所述M个存储节点104中确定第j+1个存储节点的依据多种多样,本发明实施例仅仅是举例说明,并不对此进行限定。
步骤C:判断是否满足以下条件:
K剩余>Bj+1·K0 (式6)
如果满足条件,则将Kj+1=Bj+1·K0大小的数据块分配给第j+1个存储节点,并将j递增1,返回执行步骤B;如果不满足条件,则将Kj+1=K剩余大小的数据块分配给第j+1个存储节点,并结束分配流程,j的最终值为N-1。其中,K剩余为数据的剩余部分的大小,Bj+1为第j+1个存储节点的传输带宽,K0为单位带宽分配的数据块大小。
所述源节点102将所述N个存储节点104中的所述每个存储节点104分配到的待存储的数据发送给所述N个存储节点104中的所述每个存储节点104。
通过对数据块访问时间的预测,依次确定存储节点104允许的最大时延,并根据这一时延选取合适的存储节点104,可以有效的利用分布式网络的资源,可以在保证数据块下载连续的基础上,综合考虑存储节点104的时延,不必每次都选择时延较小的存储节点104,实现了分布式网络的负载均衡。
根据上述流程的数据存储方案,确定了源节点102访问该数据时,数据块的下载时间是连续的,且最终数据访问的下载时间为:
Figure GWB0000003030020000241
可选的,当源节点102要访问所述数据时,会给存储数据块的存储节点104发送访问请求,所述访问请求指示第1个存储节点立即发送数据块,指示第j+1个存储节点等待到
Figure GWB0000003030020000242
时刻向源节点102发送存储的数据块,从而保证了数据块下载过程的连续,且保证了数据块的下载顺序,且因为数据块不会提前到达,从而节省了源节点102的缓存。其中,L1用于表示第1个存储节点的所述时延,Ki用于表示为第i个存储节点104分配的数据块大小,Bi用于表示第i个存储节点104的所述传输带宽,Lj+1用于表示第j+1个目标节点的所述时延,j为大于1的正整数。
可选的,节点信息里还包含对应的存储节点104的剩余存储空间大小,源节点102在所述剩余存储空间大小的范围内为该对应的存储节点104分配数据块,分配的数据块的大小不大于对应存储节点104的剩余存储空间的大小。
根据本发明实施例公开的技术方案,根据传输带宽为每一个存储节点分配数据块大小,为传输带宽大的存储节点分配的较大的数据块,从而提高了数据传输效率,缩短了数据的访问时间,实现了资源的合理利用。且选取存储节点的时候考虑到存储节点的传输功耗,优先选取传输功耗低的存储节点,从而降低了数据访问的功耗。
图2为依据本发明一实施例的数据存储方法200的示范性流程图,方法200应用于分布式存储系统,用于将源节点的待存储的数据分布存储到分布式存储系统中,如图2所示,方法200包括:
S202:所述源节点从所述分布式存储系统确定N个存储节点,其中,N为大于1的正整数。
S204:所述源节点获取所述N个存储节点中每个存储节点的带宽信息,所述N个存储节点中的所述每个存储节点的带宽信息为所述N个存储节点中的所述每个存储节点到所述源节点的数据传输路径的传输带宽。
具体的,该传输带宽为系统为所述N个存储节点中的所述每个存储节点到所述源节点的数据传输路径预留的带宽,是该数据传输路径进行实际数据传输的平均传输带宽。
在本发明实施例的一种实现方式中,所述源节点从所述分布式存储系统确定N个存储节点,包括:所述源节点根据所述M个存储节点的带宽信息,从所述M个存储节点中选择所述N个存储节点。
在本发明实施例的另一种实现方式中,所述源节点从所述分布式存储系统确定N个存储节点,包括:所述源节点获取所述分布式存储系统中的M个存储节点的功耗信息,所述功耗信息为所述M个存储节点中的每个存储节点到所述源节点的传输功耗,M为大于等于N的正整数;所述源节点根据所述M个存储节点的功耗信息,从所述M个存储节点中选择所述N个存储节点。
在本发明实施例的再一种实现方式中,所述源节点从所述分布式存储系统确定N个存储节点,包括:所述源节点获取所述分布式存储系统中的M个存储节点的时延信息,M为大于等于N的正整数;所述源节点根据所述M个存储节点的时延信息,从所述M个存储节点中选择所述N个存储节点。所述时延的具体含义在图1系统实施例部分已有描述,在此不再赘述。
在本发明实施例的一种实现方式中,所述源节点根据所述M个存储节点的时延信息,从所述M个存储节点中选择所述N个存储节点,包括:所述源节点从所述M个存储节点选择时延满足第一条件的N个存储节点,其中,所述时延满足第一条件为:第p+1个存储节点的时延小于或等于前p个存储节点的数据下载时间的和值与所述N个存储节点中的第1个存储节点的时延之和,所述p为从1逐一递增到N-1的正整数。
具体而言,源节点从所述M个存储节点中依次确定第p+1个存储节点时,从满足以下条件的存储节点中,选取一个存储节点当做第p+1个存储节点:
Figure GWB0000003030020000251
其中,L1用于表示第1个存储节点的所述时延,Ki用于表示为第i个存储节点分配的数据块大小,Bi用于表示第i个存储节点的所述传输带宽,Lp+1用于表示第p+1个目标节点的所述时延。
在本发明实施例的一种实现方式中,所述源节点从所述M个存储节点选择时延满足第一条件的N个存储节点,包括:所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点;所述源节点从所述M个存储节点除去所述第一存储节点之外的存储节点中按照从2到N的顺序依次确定剩下的N-1个存储节点,其中,所述剩下的N-1个存储节点中的每个存储节点的时延满足所述第一条件。
所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:所述源节点根据所述时延信息,或者所述带宽信息,或者所述功耗信息从所述M个存储节点中选择一个存储节点作为所述第一存储节点。
例如,所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:源节点从所述多个存储节点中选取时延和数据块下载时间之和最小的存储节点作为第一存储节点,即满足
Figure GWB0000003030020000261
值最小的的存储节点作为第一存储节点。其中,L为该存储节点的时延,K为分配给该存储节点的数据块大小,B为该存储节点的传输带宽。
再例如,所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:源节点从所述M个存储节点中选择时延最小的存储节点,或者从所述M个存储节点中时延最小的L个存储节点中选择传输带宽最大或传输功耗最小的存储节点作为第一存储节点,其中L为大于1的正整数。
再例如,所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:源节点从所述M个存储节点中选取传输功耗最小的存储节点,或者从所述M个存储节点中传输功耗最小的L个存储节点中选择传输带宽最大或时延最小的存储节点作为第一存储节点,其中L为大于1的正整数。
再例如,所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:源节点从所述M个存储节点中选取传输带宽最大的存储节点,或者从所述M个存储节点中传输带宽最大的L个存储节点中选择时延最小或传输功耗最小的存储节点作为第一存储节点,其中L为大于1的正整数。
应了解,所述源节点从所述M个存储节点中确定第一存储节点的依据多种多样,本发明实施例仅仅是举例说明,并不对此进行限定。
在所述源节点从所述M个存储节点除去所述第一存储节点之外的存储节点中确定第x个存储节点时,若所述源节点确定了满足所述第一条件的至少两个备选存储节点,所述源节点进一步根据时延,或者传输带宽,或者传输功耗从满足所述第一条件的至少两个备选存储节点中选择一个存储节点作为第x个存储节点,其中,x大于等于2且小于等于N。
例如,源节点从满足所述第一条件的至少两个备选存储节点中选择时延最大的存储节点,或者从满足所述第一条件的至少两个备选存储节点中时延最大的L个存储节点中选择传输带宽最大或传输功耗最小的存储节点作为第x个存储节点,其中L为大于1的正整数。
再例如,源节点从满足所述第一条件的至少两个备选存储节点中选择传输带宽最大的存储节点,或者从满足所述第一条件的至少两个备选存储节点中传输带宽最大的L个存储节点中选择时延最大或传输功耗最小的存储节点作为第x个存储节点,其中L为大于1的正整数。
再例如,源节点从满足所述第一条件的至少两个备选存储节点中选择传输功耗最小的存储节点,或者从满足所述第一条件的至少两个备选存储节点中传输功耗最小的L个存储节点中选择时延最大或传输带宽最大的存储节点作为第x个存储节点,其中L为大于1的正整数。
应了解,所述源节点确定第x个存储节点的依据多种多样,本发明实施例仅仅是举例说明,并不对此进行限定。
所述源节点获取所述N个存储节点中每个存储节点的功耗信息,或时延信息,或带宽信息的方法在图1系统实施例部分已有描述,在此不再赘述。
S206所述源节点根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据。
在本发明实施例的一种实现方式中,所述源节点根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据,包括:所述源节点为所述N个存储节点中的J个存储节点分别分配对应的待存储的数据,其中,所述J个存储节点中的第j个存储节点分配到的待存储的数据的大小与所述第j个存储节点的传输带宽呈正相关关系,所述J为大于1小于等于N的正整数,所述j为从1逐一递增到J的正整数。
例如,在具体实现过程中,源节点根据所述N个存储节点中每一个存储节点的传输带宽为所述N个存储节点中每一个存储节点分配数据块,数据块的大小与传输带宽成正相关关系。具体实现时,可以按照带宽比例为每一个存储节点分配数据块,分配依据如下所示:
Figure GWB0000003030020000281
其中Ki为第i个存储节点分配的数据块大小,Bi为第i个存储节点的传输带宽,K为整个数据的大小。应了解,式11中的正比例关系仅仅是正相关关系的一种具体实现,在具体实现过程中,实际的数据块大小可以在式1的基础上进行调整。应了解,因为受到数据的最小分割单位的限制,式1的正比例关系并不是绝对的正比例关系,本发明实施例允许在式1的基础上对数据块大小进行调整。
再例如,源节点还可以设定单位带宽分配的数据块大小K0,分配依据可以如下所示:
Ki=Bi·K0 (式12)
其中Ki是为第i个存储节点分配的数据块大小,Bi为第i个存储节点的传输带宽,K0为单位带宽分配的数据块大小。
应了解,以上仅仅是举例说明,本发明实施例并不限于此,本发明实施例允许存储节点的数据块大小与该存储节点的传输带宽有其他约束关系。
在本发明实施例的一种具体的实现方式中,所述源节点从所述M个存储节点中逐一确定所述N个存储节点,所述源节点根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据,包括:所述源节点在确定第j个存储节点后,在确定第j+1个存储节点之前,将大小与第j个存储节点的所述传输带宽呈正相关关系的数据块分配给所述第j个存储节点,j为从1逐一递增到N-1的正整数,第j+1个存储节点为第j个存储节点的下一个节点;所述源节点将所述数据的剩余部分分配给第N个存储节点。
优选的,所述源节点从所述分布式存储系统确定N个存储节点,并根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据,包括:
步骤A:源节点从所述M个存储节点中确定第1个存储节点,并根据第1个存储节点的传输带宽为第1个存储节点分配数据块。
其中,所述源节点根据第1个存储节点的传输带宽为第1个存储节点分配数据块包括:所述源节点将大小与第1个存储节点的所述传输带宽呈正相关关系的数据块分配给所述第1个存储节点。例如,源节点可以设定单位带宽分配的数据块大小K0,分配依据K1=B1·K0为第1个存储节点分配数据块,其中,K1是为第1个存储节点分配的数据块大小,B1为第1个存储节点的传输带宽,K0为单位带宽分配的数据块大小。
源节点从所述M个存储节点中确定第1个存储节点的方法上文已有描述,在此不再赘述。
步骤B:源节点从所述M个存储节点中确定第j+1个存储节点,所述第j+1个存储节点的时延不大于前j个存储节点的数据块的下载时间与第1个存储节点的时延之和。执行步骤C。
其中,j的初始值为1。
具体而言,源节点确定第j+1个存储节点时,从满足以下条件的存储节点中,选取一个存储节点当做第j+1个存储节点:
Figure GWB0000003030020000291
其中,L1用于表示第1个存储节点的所述时延,Ki用于表示为第i个存储节点分配的数据块大小,Bi用于表示第i个存储节点的所述传输带宽,Lj+1用于表示第j+1个目标节点的所述时延。
可选的,源节点从所述M个存储节点中满足式13条件,且尚未被选择的存储节点中确定第j+1个存储节点的方法在上文已有描述,在此不再赘述。
步骤C:判断是否满足以下条件:
K剩余>Bj+1·K0 (式14)
如果满足条件,则将Kj+1=Bj+1·K0大小的数据块分配给第j+1个存储节点,并将j递增1,返回执行步骤B;如果不满足条件,则将Kj+1=K剩余大小的数据块分配给第j+1个存储节,并结束分配流程,j的最终值为N-1。
其中,K剩余为数据的剩余部分的大小,Bj+1为第j+1个存储节点的传输带宽,K0为单位带宽分配的数据块大小。
S208所述源节点将所述N个存储节点中的所述每个存储节点分配到的待存储的数据发送给所述N个存储节点中的所述每个存储节点。
根据本发明实施例公开的技术方案,根据传输带宽为每一个存储节点分配数据块大小,为传输带宽大的存储节点分配的较大的数据块,从而提高了数据传输效率,缩短了数据的访问时间,实现了资源的合理利用。
图3为依据本发明一实施例的数据存储方法300的示范性流程图,方法300应用于分布式存储系统,用于将源节点的待存储的数据分布存储到分布式存储系统中,如图3所示,方法300包括:
S302:所述源节点获取所述分布式存储系统中的M个存储节点的功耗信息,所述功耗信息为所述M个存储节点中的每个存储节点到所述源节点的传输功耗,其中M为大于1的正整数。
其中,传输功耗是指单位大小的数据块从对应的存储节点到源节点传输需要的功耗。
因为数据传输的主要功耗是由经由的交换设备处理数据产生的功耗,数据传输路径的跳数,即经由的交换设备的个数,反应了数据该数据传输路径传输时的功耗,跳数越多,传输功耗越大。在具体实现过程中,可以用存储节点到源节点的路径的跳数来反映存储节点到源节点的数据传输路径的传输功耗。
因为数据传输路径的传输功耗不但和跳数有关,也和数据的处理时间有关,对数据的处理时间越长,或者数据在缓存中的等待时间越长,也会消耗更多的能源。在具体实现过程中,也可以用存储节点到源节点的数据传输路径的传输时延来反映对应的存储节点到源节点的传输功耗。
应了解,传输功耗的表现形式多种多样,可以用数据传输路径的跳数来表示,也可以用数据传输路径的传输时延来表示,也可以进行实际的统计,本发明实施例仅仅是进行了举例说明,并不对传输功耗的表现形式进行限定,允许传输功耗的其他替代表现方式。
所述源节点获取所述分布式存储系统中的M个存储节点的功耗信息的方法在图1系统实施例已有描述,在此不再赘述。
S304:所述源节点根据所述M个存储节点的功耗信息,从所述M个存储节点中确定N个存储节点,其中,N为大于1并且小于等于M的正整数。
在本发明实施例的一种实现方式中,所述源节点根据所述M个存储节点的功耗信息,从所述M个存储节点中确定N个存储节点,包括:源节点从所述M个存储节点中选取传输功耗最小的N个存储节点,或者从所述M个存储节点中传输功耗最小的L个存储节点中选取时延最小或传输带宽最大的N个存储节点,其中L为大于N的正整数。
可选的,所述源节点根据所述M个存储节点的功耗信息,从所述M个存储节点中确定N个存储节点,包括:所述源节点获取所述M个存储节点的时延信息;所述源节点从所述M个存储节点选择时延满足第一条件的备选存储节点,其中,所述时延满足第一条件为:第p+1个存储节点的时延小于或等于前p个存储节点的数据下载时间的和值与所述N个存储节点中的第1个存储节点的时延之和,所述p为从1逐一递增到N-1的正整数;所述源节点根据所述备选存储节点的功耗信息,从所述备选存储节点中选择所述N个存储节点。
具体而言,源节点从所述M个存储节点中依次确定第p+1个存储节点时,将满足以下条件的存储节点作为第p+1个存储节点的备选存储节点:
Figure GWB0000003030020000311
其中,L1用于表示第1个存储节点的所述时延,Ki用于表示为第i个存储节点分配的数据块大小,Bi用于表示第i个存储节点的所述传输带宽,Lp+1用于表示第p+1个目标节点的所述时延。
在本发明实施例的一种具体的实现方式中,所述源节点根据所述M个存储节点的功耗信息,从所述M个存储节点中确定N个存储节点,包括:所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点;所述源节点根据所述功耗信息按照从第2到第N的顺序依次从所述备选存储节点中确定剩下的N-1个存储节点。
在本发明实施例的一种实现方式中,方法300还包括:所述源节点获取所述N个存储节点中的所述每个存储节点的带宽信息,所述N个存储节点中的所述每个存储节点的带宽信息为所述N个存储节点中的所述每个存储节点到所述源节点的数据传输路径的传输带宽。
具体的,该传输带宽为系统为所述N个存储节点中的所述每个存储节点到所述源节点的数据传输路径预留的带宽,是该数据传输路径进行实际数据传输的平均传输带宽。
可选的,所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:所述源节点根据所述时延信息,或者所述带宽信息,或者所述功耗信息从所述M个存储节点中选择一个存储节点作为所述第一存储节点。
例如,所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:源节点从所述多个存储节点中选取时延和数据块下载时间之和最小的存储节点作为第一存储节点,即满足
值最小的的存储节点作为第一存储节点。其中,L为该存储节点的时延,K为分配给该存储节点的数据块大小,B为该存储节点的传输带宽。
再例如,所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:源节点从所述M个存储节点中选择时延最小的存储节点,或者从所述M个存储节点中时延最小的L个存储节点中选择传输带宽最大或传输功耗最小的存储节点作为第一存储节点,其中L为大于1的正整数。
再例如,所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:源节点从所述M个存储节点中选取传输功耗最小的存储节点,或者从所述M个存储节点中传输功耗最小的L个存储节点中选择传输带宽最大或时延最小的存储节点作为第一存储节点,其中L为大于1的正整数。
再例如,所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:源节点从所述M个存储节点中选取传输带宽最大的存储节点,或者从所述M个存储节点中传输带宽最大的L个存储节点中选择时延最小或传输功耗最小的存储节点作为第一存储节点,其中L为大于1的正整数。
优选的,所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:所述源节点从所述M个存储节点中选择传输功耗最小的存储节点作为所述第一存储节点;或者,所述源节点从所述M个存储节点中时延最小的至少两个存储节点中,选择传输功耗最小的存储节点作为所述第一存储节点。
应了解,所述源节点从所述M个存储节点中确定第一存储节点的依据多种多样,本发明实施例仅仅是举例说明,并不对此进行限定。
可选的,在所述源节点根据所述功耗信息从所述备选存储节点中确定第x个存储节点时,其中,x为大于1的正整数,所述源节点从满足所述第一条件的备选存储节点中选择传输功耗最小的存储节点作为第x个存储节点;或者,所述源节点从满足所述第一条件的备选存储节点中时延最大的至少两个存储节点中,选择传输功耗最小的存储节点作为第x个存储节点。
可选的,在所述源节点根据所述功耗信息从所述备选存储节点中确定第x个存储节点时,其中,x为大于1的正整数,所述源节点从满足所述第一条件的备选存储节点中传输功耗最小的L个存储节点中,选择时延最大或传输带宽最大的存储节点作为第x个存储节点,其中L为大于1的正整数。
S306:所述源节点根据所述待存储的数据,给所述N个存储节点中的每个存储节点分配对应的待存储的数据。
可选的,所述源节点根据所述待存储的数据,给所述N个存储节点中的每个存储节点分配对应的待存储的数据,包括:源节点将数据均分为N个大小相等的数据块,并为每一个存储节点分配一个数据块。应了解,因为受到数据的最小分割单位的限制,数据可能无法绝对的均分为N个大小相等的数据块,本发明实施例允许允许在均分的基础上对数据块做出调整。
进一步的,源节点将数据分割为N个数据块,并对所述N个数据块根据所述数据进行排序,源节点将数据块分配给对应的存储节点,从而保证了数据块的顺序,将来访问数据的时候可以根据数据块的顺序进行访问。
在本发明实施例的一种实现方式中,所述源节点获取所述N个存储节点中每个存储节点的缓冲区大小,所述缓冲区为对应的存储节点用于接收数据的存储设备;所述源节点根据所述待存储的数据,给所述N个存储节点中的每个存储节点分配对应的待存储的数据,包括:源节点将存储节点的缓冲区大小整数倍大小的数据块分配给对应的存储节点。具体的,源节点可以将对应的存储节点的缓冲区大小的数据块分配给对应的存储节点。
具体实现过程中,如果源节点将对应的存储节点的缓冲区大小的L倍大小的数据块分配给对应的存储节点,则源节点将该数据块拆分为L个大小为该缓冲区大小的子数据块,并分别将L个子数据块发送给对应的存储节点,其中,L为大于1的正整数。
在本发明实施例的另一种实现方式中,所述源节点根据所述待存储的数据,给所述N个存储节点中的每个存储节点分配对应的待存储的数据,包括:所述源节点根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据。
在本发明实施例的一种具体的实现方式中,所述源节点根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据,包括:所述源节点为所述N个存储节点中的J个存储节点分配对应的待存储的数据,其中,所述J个存储节点中的第j个存储节点分配到的待存储的数据的大小与所述第j个存储节点的传输带宽呈正相关关系,所述J为大于1小于等于N的正整数,所述j为从1逐一递增到J的正整数。
所述源节点根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据的具体实现过程在图1系统实施例部分已有描述,在此不再赘述。
在本发明实施例的一种实现方式中,所述源节点从所述M个存储节点中逐一确定所述N个存储节点,所述源节点在确定第j个存储节点后,并在所述源节点从所述M个存储节点中确定第j+1个存储节点前,为第j个存储节点分配数据块,其中j为大于0小于N的正整数。
在本发明实施例的一种具体的实现方式中,所述源节点根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据,包括:源节点在确定第j+1个存储节点之前,将大小与第j个存储节点的所述传输带宽呈正相关关系的数据块分配给所述第j个存储节点,j为从1逐一递增到N-1的正整数,第j+1个存储节点为第j个存储节点的下一个节点;所述源节点将所述数据的剩余部分分配给第N个存储节点。
优选的,所述源节点根据所述传输功耗从所述M个存储节点中确定所述N个存储节点,并为所述N个存储节点中每一个存储节点分配数据块包括:
步骤A:源节点根据所述传输功耗,从所述M个存储节点中确定第1个存储节点,并为第1个存储节点分配数据块。
可选的,源节点根据所述传输功耗,从所述M个存储节点中确定第1个存储节点包括:源节点从所述M个存储节点中选取所述传输功耗最小的存储节点作为第1个存储节点。
可选的,源节点根据所述传输功耗,从所述M个存储节点中确定第1个存储节点包括:源节点从所述M个存储节点的时延最小的L个存储节点中选取所述传输功耗最小的存储节点作为第1个存储节点,其中L为大于1的正整数。
可选的,源节点根据所述传输功耗,从所述M个存储节点中确定第1个存储节点包括:源节点从所述M个存储节点的所述传输带宽最大的L个存储节点中选取传输功耗最小的存储节点作为第1个存储节点,其中L为大于1的正整数。
可选的,源节点根据所述传输功耗,从所述M个存储节点中确定第1个存储节点包括:源节点从所述M个存储节点的所述传输功耗最小的L个存储节点中选取所述传输带宽最大或时延最小的存储节点作为第1个存储节点,其中L为大于1的正整数。
应了解,源节点根据所述传输功耗,从所述M个存储节点中确定第1个存储节点的依据多种多样,本发明实施例仅仅是举例说明,并不对此进行限定。
可选的,源节点为第1个存储节点分配数据块包括:所述源节点根据第1个存储节点的传输带宽为第1个存储节点分配数据块。具体实现过程中,所述源节点将大小与第1个存储节点的所述传输带宽呈正相关关系的数据块分配给所述第1个存储节点。例如,源节点可以设定单位带宽分配的数据块大小K0,分配依据K1=B1·K0为第1个存储节点分配数据块,其中,K1是为第1个存储节点分配的数据块大小,B1为第1个存储节点的传输带宽,K0为单位带宽分配的数据块大小。
步骤B:源节点根据所述传输功耗,从所述M个存储节点中确定第j+1个存储节点,所述第j+1个存储节点的时延不大于前j个存储节点的数据块的下载时间与第1个存储节点的时延之和。执行步骤C。
其中,j的初始值为1。
具体而言,源节点确定第j+1个存储节点时,根据以下条件确定第j+1个存储节点的备选存储节点:
Figure GWB0000003030020000361
其中,L1用于表示第1个存储节点的所述时延,Ki用于表示为第i个存储节点分配的数据块大小,Bi用于表示第i个存储节点的所述传输带宽,Lj+1用于表示第j+1个目标节点的所述时延。
可选的,源节点从所述M个存储节点中满足式17条件,且尚未被选择的存储节点中确定传输功耗最小的节点作为第j+1个存储节点。
可选的,源节点从所述M个存储节点中满足式17条件,且尚未被选择的存储节点中时延最大的L个存储节点中确定传输功耗最小的节点作为第j+1个存储节点,其中L为大于1的正整数。
可选的,源节点从所述M个存储节点中满足式17条件,且尚未被选择的存储节点中传输带宽最大的L个存储节点中确定传输功耗最小的节点作为第j+1个存储节点,其中L为大于1的正整数。
可选的,源节点从所述M个存储节点中满足式9条件,且尚未被选择的存储节点中传输功耗最小的L个存储节点中确定时延最大或传输带宽最大的节点作为第j+1个存储节点,其中L为大于1的正整数。
应了解,源节点根据所述传输功耗,从所述M个存储节点中确定第j+1个存储节点的依据多种多样,本发明实施例仅仅是举例说明,并不对此进行限定。
步骤C:判断是否满足以下条件:
Figure GWB0000003030020000362
如果满足条件,则将大小的数据块分配给第j+1个存储节点,并将j递增1,返回执行步骤B;如果不满足条件,则将Kj+1=K剩余大小的数据块分配给第j+1个存储节点,并结束分配流程,j的最终值为N-1。其中,其中,K剩余为数据的剩余部分的大小,
Figure GWB0000003030020000372
为按照理论应该分配给第j+1个存储节点的数据块大小。
可选的,
Figure GWB0000003030020000373
其中,Bj+1为第j+1个存储节点的传输带宽,K0为单位带宽分配的数据块大小。
S308:所述源节点将所述N个存储节点中的所述每个存储节点分配到的待存储的数据发送给所述N个存储节点中的所述每个存储节点。
根据本发明实施例公开的技术方案,根据传输功耗确定确定用于存储数据的存储节点,优先于选择传输功耗较小的存储节点,从而减小了源节点访问数据时的能耗。
图4为依据本发明一实施例的数据存储装置400的逻辑结构示意图,所述装置400应用于分布式存储系统,用于将装置400的待存储的数据分布存储到分布式存储系统中,如图4所示,装置400包括确定单元402、获取单元404、分配单元406和发送单元408。
确定单元402,用于从所述分布式存储系统确定N个存储节点,其中,N为大于1的正整数;
获取单元404,用于获取所述N个存储节点中每个存储节点的带宽信息,所述N个存储节点中的所述每个存储节点的带宽信息为所述N个存储节点中的所述每个存储节点到所述源节点的数据传输路径的传输带宽;
分配单元406,用于根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据;
发送单元408,用于将所述N个存储节点中的所述每个存储节点分配到的待存储的数据发送给所述N个存储节点中的所述每个存储节点。
可选的,所述分配单元406用于根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据,包括:所述分配单元406用于为所述N个存储节点中的J个存储节点分别分配对应的待存储的数据,其中,所述J个存储节点中的第j个存储节点分配到的待存储的数据的大小与所述第j个存储节点的传输带宽呈正相关关系,所述J为大于1小于等于N的正整数,所述j为从1逐一递增到J的正整数。
可选的,所述获取单元404还用于获取所述分布式存储系统中的M个存储节点的功耗信息,所述功耗信息为所述M个存储节点中的每个存储节点到所述源节点的传输功耗,M为大于等于N的正整数;所述确定单元402用于从所述分布式存储系统确定N个存储节点包括:所述确定单元402用于根据所述M个存储节点的功耗信息,从所述M个存储节点中选择所述N个存储节点。
可选的,所述获取单元404还用于获取所述分布式存储系统中的M个存储节点的时延信息,M为大于等于N的正整数;所述确定单元402用于从所述分布式存储系统确定N个存储节点包括:所述确定单元402用于根据所述M个存储节点的时延信息,从所述M个存储节点中选择所述N个存储节点。
可选的,所述确定单元402用于根据所述M个存储节点的时延信息,从所述M个存储节点中选择所述N个存储节点,包括:所述确定单元402用于从所述M个存储节点选择时延满足第一条件的N个存储节点,其中,所述时延满足第一条件为:第p+1个存储节点的时延小于或等于前p个存储节点的数据下载时间的和值与所述N个存储节点中的第1个存储节点的时延之和,所述p为从1逐一递增到N-1的正整数。
可选的,所述确定单元402用于从所述M个存储节点选择时延满足第一条件的N个存储节点,包括:所述确定单元402用于将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点;所述确定单元402用于从所述M个存储节点除去所述第一存储节点之外的存储节点中按照从2到N的顺序依次确定剩下的N-1个存储节点,其中,所述剩下的N-1个存储节点中的每个存储节点的时延满足所述第一条件。
可选的,所述确定单元402用于将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:所述确定单元402用于根据所述时延信息,或者所述带宽信息,或者所述功耗信息从所述M个存储节点中选择一个存储节点作为所述第一存储节点。
可选的,在从所述M个存储节点除去所述第一存储节点之外的存储节点中确定第x个存储节点时,若所述确定单元402确定了满足所述第一条件的至少两个备选存储节点,所述所述确定单元402还用于根据时延,或者传输带宽,或者传输功耗从满足所述第一条件的至少两个备选存储节点中选择一个存储节点作为第x个存储节点,其中,x大于等于2且小于等于N。
本发明实施例与图2的方法实施例相对应,图2实施例部分的特征描述,适用于本发明实施例,在此不再赘述。
根据本发明实施例公开的技术方案,根据传输带宽为每一个存储节点分配数据块大小,为传输带宽大的存储节点分配的较大的数据块,从而提高了数据传输效率,缩短了数据的访问时间,实现了资源的合理利用。
图5为依据本发明一实施例的数据存储装置500的逻辑结构示意图,所述装置500应用于分布式存储系统,用于将装置500的将待存储的数据分布存储到分布式存储系统中,如图5所示,装置500包括获取单元502、确定单元504、分配单元506和发送单元508。
获取单元502,用于获取所述分布式存储系统中的M个存储节点的功耗信息,所述功耗信息为所述M个存储节点中的每个存储节点到所述源节点的传输功耗,其中M为大于1的正整数;
确定单元504,用于根据所述M个存储节点的功耗信息,从所述M个存储节点中确定N个存储节点,其中,N为大于1并且小于等于M的正整数;
分配单元506,用于根据所述待存储的数据,给所述N个存储节点中的每个存储节点分配对应的待存储的数据;
发送单元508,用于将所述N个存储节点中的所述每个存储节点分配到的待存储的数据发送给所述N个存储节点中的所述每个存储节点。
可选的,所述获取单元502还用于获取所述M个存储节点的时延信息;所述确定单元504用于根据所述M个存储节点的功耗信息,从所述M个存储节点中确定N个存储节点,包括:所述确定单元504用于从所述M个存储节点选择时延满足第一条件的备选存储节点,其中,所述时延满足第一条件为:第p+1个存储节点的时延小于或等于前p个存储节点的数据下载时间的和值与所述N个存储节点中的第1个存储节点的时延之和,所述p为从1逐一递增到N-1的正整数;所述确定单元504用于根据所述备选存储节点的功耗信息,从所述备选存储节点中选择所述N个存储节点。
可选的,所述确定单元504用于根据所述M个存储节点的功耗信息,从所述M个存储节点中确定N个存储节点,包括:所述确定单元504用于将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点;所述确定单元504用于根据所述功耗信息按照从第2到第N的顺序依次从所述备选存储节点中确定剩下的N-1个存储节点。
可选的,所述确定单元504用于将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:所述确定单元504用于从所述M个存储节点中选择传输功耗最小的存储节点作为所述第一存储节点;或者,从所述M个存储节点中时延最小的至少两个存储节点中,选择传输功耗最小的存储节点作为所述第一存储节点。
可选的,在所述确定单元504用于根据所述功耗信息从所述备选存储节点中确定第x个存储节点时,其中,x为大于1的正整数,所述确定单元504用于从满足所述第一条件的备选存储节点中选择传输功耗最小的存储节点作为第x个存储节点;或者,从满足所述第一条件的备选存储节点中时延最大的至少两个存储节点中,选择传输功耗最小的存储节点作为第x个存储节点。
可选的,所述获取单元502还用于获取所述N个存储节点中的所述每个存储节点的带宽信息,所述N个存储节点中的所述每个存储节点的带宽信息为所述N个存储节点中的所述每个存储节点到所述源节点的数据传输路径的传输带宽;所述分配单元506用于根据所述待存储的数据,给所述N个存储节点中的每个存储节点分配对应的待存储的数据,包括:所述分配单元506用于根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据。
可选的,所述分配单元506用于根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据,包括:所述分配单元506用于为所述N个存储节点中的J个存储节点分配对应的待存储的数据,其中,所述J个存储节点中的第j个存储节点分配到的待存储的数据的大小与所述第j个存储节点的传输带宽呈正相关关系,所述J为大于1小于等于N的正整数,所述j为从1逐一递增到J的正整数。
本发明实施例与图3的方法实施例相对应,图3实施例部分的特征描述,适用于本发明实施例,在此不再赘述。
根据本发明实施例公开的技术方案,根据传输功耗确定确定用于存储数据的存储节点,优先于选择传输功耗较小的存储节点,从而减小了源节点访问数据时的能耗。
图6是依据本发明一实施例的数据存储设备600的硬件结构示意图。如图6所示,数据存储设备600包括处理器602、存储器604、输入/输出接口606、通信接口608和总线610。其中,处理器602、存储器604、输入/输出接口606和通信接口608通过总线610实现彼此之间的通信连接。
处理器602可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application SQecific Integrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。
存储器604可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器604可以存储操作系统和其他应用程序。在通过软件或者固件来实现本发明实施例提供的技术方案时,用于实现本发明实施例提供的技术方案的程序代码保存在存储器604中,并由处理器602来执行。
输入/输出接口606用于接收输入的数据和信息,输出操作结果等数据。
通信接口608使用例如但不限于收发器一类的收发装置,来实现数据存储设备600与其他设备或通信网络之间的通信。
总线610可包括一通路,在数据存储设备600各个部件(例如处理器602、存储器604、输入/输出接口606和通信接口608)之间传送信息。
应注意,尽管图6所示的计数据存储设备600仅仅示出了处理器602、存储器604、输入/输出接口606、通信接口608以及总线610,但是在具体实现过程中,本领域的技术人员应当明白,数据存储设备600还包含实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当明白,数据存储设备600还可包含实现其他附加功能的硬件器件。此外,本领域的技术人员应当明白,数据存储设备600也可仅仅包含实现本发明实施例所必须的器件,而不必包含图6中所示的全部器件。
图6所示的硬件结构以及上述描述适用于本发明实施例所提供的各种数据存储设备和系统,适用于执行本发明实施例所提供的各种数据存储方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:移动硬盘、只读存储器(英文:Read-Only Memory,简称ROM)、随机存取存储器(英文:Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。

Claims (34)

1.一种数据存储方法,其特征在于,用于将源节点的待存储的数据分布存储到分布式存储系统中,包括:
所述源节点从所述分布式存储系统确定N个存储节点,其中,N为大于1的正整数;
所述源节点获取所述N个存储节点中每个存储节点的带宽信息,所述N个存储节点中的所述每个存储节点的带宽信息为所述N个存储节点中的所述每个存储节点到所述源节点的数据传输路径的传输带宽;
所述源节点根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据;
所述源节点将所述N个存储节点中的所述每个存储节点分配到的待存储的数据发送给所述N个存储节点中的所述每个存储节点。
2.根据权利要求1所述的方法,其特征在于,所述源节点根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据,包括:
所述源节点为所述N个存储节点中的J个存储节点分别分配对应的待存储的数据,其中,所述J个存储节点中的第j个存储节点分配到的待存储的数据的大小与所述第j个存储节点的传输带宽呈正相关关系,所述J为大于1小于等于N的正整数,所述j为从1逐一递增到J的正整数。
3.根据权利要求1或2所述的方法,其特征在于,所述源节点从所述分布式存储系统确定N个存储节点,包括:
所述源节点获取所述分布式存储系统中的M个存储节点的功耗信息,所述功耗信息为所述M个存储节点中的每个存储节点到所述源节点的传输功耗,M为大于等于N的正整数;
所述源节点根据所述M个存储节点的功耗信息,从所述M个存储节点中选择所述N个存储节点。
4.根据权利要求1或2所述的方法,其特征在于,所述源节点从所述分布式存储系统确定N个存储节点,包括:
所述源节点获取所述分布式存储系统中的M个存储节点的时延信息,M为大于等于N的正整数;
所述源节点根据所述M个存储节点的时延信息,从所述M个存储节点中选择所述N个存储节点。
5.根据权利要求4所述的方法,其特征在于,所述源节点根据所述M个存储节点的时延信息,从所述M个存储节点中选择所述N个存储节点,包括:
所述源节点从所述M个存储节点选择时延满足第一条件的N个存储节点,其中,所述时延满足第一条件为:第p+1个存储节点的时延小于或等于前p个存储节点的数据下载时间的和值与所述N个存储节点中的第1个存储节点的时延之和,所述p为从1逐一递增到N-1的正整数;所述前p个存储节点中的每个存储节点的数据下载时间为存储节点分配到的对应的待存储的数据大小与存储节点到源节点的数据传输路径的传输带宽之间的比值。
6.根据权利要求5所述的方法,其特征在于,所述源节点从所述M个存储节点选择时延满足第一条件的N个存储节点,包括:
所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点;
所述源节点从所述M个存储节点除去所述第一存储节点之外的存储节点中按照从2到N的顺序依次确定剩下的N-1个存储节点,其中,所述剩下的N-1个存储节点中的每个存储节点的时延满足所述第一条件。
7.根据权利要求6所述的方法,其特征在于,所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:
所述源节点根据所述时延信息,或者所述带宽信息,或者所述功耗信息从所述M个存储节点中选择一个存储节点作为所述第一存储节点。
8.根据权利要求6所述的方法,其特征在于,在所述源节点从所述M个存储节点除去所述第一存储节点之外的存储节点中确定第x个存储节点时,若所述源节点确定了满足所述第一条件的至少两个备选存储节点,所述源节点进一步根据时延,或者传输带宽,或者传输功耗从满足所述第一条件的至少两个备选存储节点中选择一个存储节点作为第x个存储节点,其中,x大于等于2且小于等于N。
9.一种计算设备可读介质,其特征在于,包括计算设备执行指令,当计算设备的处理器执行所述计算设备执行指令时,所述计算设备执行权利要求1-8任一项所述的方法。
10.一种数据存储装置,其特征在于,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述数据存储装置运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述数据存储装置执行权利要求1-8任一项所述的方法。
11.一种数据存储方法,其特征在于,用于将源节点的待存储的数据分布存储到分布式存储系统中,包括:
所述源节点获取所述分布式存储系统中的M个存储节点的功耗信息,所述功耗信息为所述M个存储节点中的每个存储节点到所述源节点的传输功耗,其中M为大于1的正整数;
所述源节点根据所述M个存储节点的功耗信息,从所述M个存储节点中确定N个存储节点,其中,N为大于1并且小于等于M的正整数;
所述源节点根据所述待存储的数据,给所述N个存储节点中的每个存储节点分配对应的待存储的数据;
所述源节点将所述N个存储节点中的所述每个存储节点分配到的待存储的数据发送给所述N个存储节点中的所述每个存储节点;
所述源节点根据所述M个存储节点的功耗信息,从所述M个存储节点中确定N个存储节点,包括:
所述源节点获取所述M个存储节点的时延信息;所述源节点从所述M个存储节点选择时延满足第一条件的备选存储节点,其中,所述时延满足第一条件为:第p+1个存储节点的时延小于或等于前p个存储节点的数据下载时间的和值与所述N个存储节点中的第1个存储节点的时延之和,所述p为从1逐一递增到N-1的正整数;所述前p个存储节点中的每个存储节点的数据下载时间为存储节点分配到的对应的待存储的数据大小与存储节点到源节点的数据传输路径的传输带宽之间的比值;
所述源节点根据所述备选存储节点的功耗信息,从所述备选存储节点中选择所述N个存储节点。
12.根据权利要求11所述的方法,其特征在于,所述源节点根据所述M个存储节点的功耗信息,从所述M个存储节点中确定N个存储节点,包括:
所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点;
所述源节点根据所述功耗信息按照从第2到第N的顺序依次从所述备选存储节点中确定剩下的N-1个存储节点。
13.根据权利要求12所述的方法,其特征在于,所述源节点将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:
所述源节点从所述M个存储节点中选择传输功耗最小的存储节点作为所述第一存储节点;或者,
所述源节点从所述M个存储节点中时延最小的至少两个存储节点中,选择传输功耗最小的存储节点作为所述第一存储节点。
14.根据权利要求12所述的方法,其特征在于,在所述源节点根据所述功耗信息从所述备选存储节点中确定第x个存储节点时,其中,x为大于1的正整数,
所述源节点从满足所述第一条件的备选存储节点中选择传输功耗最小的存储节点作为第x个存储节点;或者,
所述源节点从满足所述第一条件的备选存储节点中时延最大的至少两个存储节点中,选择传输功耗最小的存储节点作为第x个存储节点。
15.根据权利要求11-14任一项所述的方法,其特征在于,还包括:
所述源节点获取所述N个存储节点中的所述每个存储节点的带宽信息,所述N个存储节点中的所述每个存储节点的带宽信息为所述N个存储节点中的所述每个存储节点到所述源节点的数据传输路径的传输带宽;
所述源节点根据所述待存储的数据,给所述N个存储节点中的每个存储节点分配对应的待存储的数据,包括:所述源节点根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据。
16.根据权利要求15所述的方法,其特征在于,所述源节点根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据,包括:
所述源节点为所述N个存储节点中的J个存储节点分配对应的待存储的数据,其中,所述J个存储节点中的第j个存储节点分配到的待存储的数据的大小与所述第j个存储节点的传输带宽呈正相关关系,所述J为大于1小于等于N的正整数,所述j为从1逐一递增到J的正整数。
17.一种计算设备可读介质,其特征在于,包括计算设备执行指令,当计算设备的处理器执行所述计算设备执行指令时,所述计算设备执行权利要求11-16任一项所述的方法。
18.一种数据存储装置,其特征在于,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述数据存储装置运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述数据存储装置执行权利要求11-16任一项所述的方法。
19.一种数据存储装置,其特征在于,用于将待存储的数据分布存储到分布式存储系统中,包括:
确定单元,用于从所述分布式存储系统确定N个存储节点,其中,N为大于1的正整数;
获取单元,用于获取所述N个存储节点中每个存储节点的带宽信息,所述N个存储节点中的所述每个存储节点的带宽信息为所述N个存储节点中的所述每个存储节点到所述源节点的数据传输路径的传输带宽;
分配单元,用于根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据;
发送单元,用于将所述N个存储节点中的所述每个存储节点分配到的待存储的数据发送给所述N个存储节点中的所述每个存储节点。
20.根据权利要求19所述的装置,其特征在于,所述分配单元用于根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据,包括:
所述分配单元用于为所述N个存储节点中的J个存储节点分别分配对应的待存储的数据,其中,所述J个存储节点中的第j个存储节点分配到的待存储的数据的大小与所述第j个存储节点的传输带宽呈正相关关系,所述J为大于1小于等于N的正整数,所述j为从1逐一递增到J的正整数。
21.根据权利要求19或20所述的装置,其特征在于,所述获取单元还用于获取所述分布式存储系统中的M个存储节点的功耗信息,所述功耗信息为所述M个存储节点中的每个存储节点到所述源节点的传输功耗,M为大于等于N的正整数;
所述确定单元用于从所述分布式存储系统确定N个存储节点包括:所述确定单元用于根据所述M个存储节点的功耗信息,从所述M个存储节点中选择所述N个存储节点。
22.根据权利要求19或20所述的装置,其特征在于,所述获取单元还用于获取所述分布式存储系统中的M个存储节点的时延信息,M为大于等于N的正整数;
所述确定单元用于从所述分布式存储系统确定N个存储节点包括:所述确定单元用于根据所述M个存储节点的时延信息,从所述M个存储节点中选择所述N个存储节点。
23.根据权利要求22所述的装置,其特征在于,所述确定单元用于根据所述M个存储节点的时延信息,从所述M个存储节点中选择所述N个存储节点,包括:
所述确定单元用于从所述M个存储节点选择时延满足第一条件的N个存储节点,其中,所述时延满足第一条件为:第p+1个存储节点的时延小于或等于前p个存储节点的数据下载时间的和值与所述N个存储节点中的第1个存储节点的时延之和,所述p为从1逐一递增到N-1的正整数;所述前p个存储节点中的每个存储节点的数据下载时间为存储节点分配到的对应的待存储的数据大小与存储节点到源节点的数据传输路径的传输带宽之间的比值。
24.根据权利要求23所述的装置,其特征在于,所述确定单元用于从所述M个存储节点选择时延满足第一条件的N个存储节点,包括:
所述确定单元用于将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点;
所述确定单元用于从所述M个存储节点除去所述第一存储节点之外的存储节点中按照从2到N的顺序依次确定剩下的N-1个存储节点,其中,所述剩下的N-1个存储节点中的每个存储节点的时延满足所述第一条件。
25.根据权利要求24所述的装置,其特征在于,所述确定单元用于将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:
所述确定单元用于根据所述时延信息,或者所述带宽信息,或者所述功耗信息从所述M个存储节点中选择一个存储节点作为所述第一存储节点。
26.根据权利要求24所述的装置,其特征在于,在从所述M个存储节点除去所述第一存储节点之外的存储节点中确定第x个存储节点时,若所述确定单元确定了满足所述第一条件的至少两个备选存储节点,所述所述确定单元还用于根据时延,或者传输带宽,或者传输功耗从满足所述第一条件的至少两个备选存储节点中选择一个存储节点作为第x个存储节点,其中,x大于等于2且小于等于N。
27.一种数据存储系统,其特征在于,包含如权利要求19-26任一项所述的数据存储装置和多个存储节点,用于将所述数据存储装置的数据分布存储于所述多个存储节点中的N个存储节点,其中N为大于1的正整数。
28.一种数据存储装置,其特征在于,用于将待存储的数据分布存储到分布式存储系统中,包括:
获取单元,用于获取所述分布式存储系统中的M个存储节点的功耗信息,所述功耗信息为所述M个存储节点中的每个存储节点到所述源节点的传输功耗,其中M为大于1的正整数;
确定单元,用于根据所述M个存储节点的功耗信息,从所述M个存储节点中确定N个存储节点,其中,N为大于1并且小于等于M的正整数;
分配单元,用于根据所述待存储的数据,给所述N个存储节点中的每个存储节点分配对应的待存储的数据;
发送单元,用于将所述N个存储节点中的所述每个存储节点分配到的待存储的数据发送给所述N个存储节点中的所述每个存储节点;
所述获取单元还用于获取所述M个存储节点的时延信息;
所述确定单元用于根据所述M个存储节点的功耗信息,从所述M个存储节点中确定N个存储节点,包括:
所述确定单元用于从所述M个存储节点选择时延满足第一条件的备选存储节点,其中,所述时延满足第一条件为:第p+1个存储节点的时延小于或等于前p个存储节点的数据下载时间的和值与所述N个存储节点中的第1个存储节点的时延之和,所述p为从1逐一递增到N-1的正整数;所述前p个存储节点中的每个存储节点的数据下载时间为存储节点分配到的对应的待存储的数据大小与存储节点到源节点的数据传输路径的传输带宽之间的比值;
所述确定单元用于根据所述备选存储节点的功耗信息,从所述备选存储节点中选择所述N个存储节点。
29.根据权利要求28所述的装置,其特征在于,所述确定单元用于根据所述M个存储节点的功耗信息,从所述M个存储节点中确定N个存储节点,包括:
所述确定单元用于将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点;
所述确定单元用于根据所述功耗信息按照从第2到第N的顺序依次从所述备选存储节点中确定剩下的N-1个存储节点。
30.根据权利要求29所述的装置,其特征在于,所述确定单元用于将所述M个存储节点中的第一存储节点作为所述N个存储节点中的第1个存储节点,包括:
所述确定单元用于从所述M个存储节点中选择传输功耗最小的存储节点作为所述第一存储节点;或者,
从所述M个存储节点中时延最小的至少两个存储节点中,选择传输功耗最小的存储节点作为所述第一存储节点。
31.根据权利要求29所述的装置,其特征在于,在所述确定单元用于根据所述功耗信息从所述备选存储节点中确定第x个存储节点时,其中,x为大于1的正整数,
所述确定单元用于从满足所述第一条件的备选存储节点中选择传输功耗最小的存储节点作为第x个存储节点;或者,
从满足所述第一条件的备选存储节点中时延最大的至少两个存储节点中,选择传输功耗最小的存储节点作为第x个存储节点。
32.根据权利要求28-31任一项所述的装置,其特征在于,所述获取单元还用于获取所述N个存储节点中的所述每个存储节点的带宽信息,所述N个存储节点中的所述每个存储节点的带宽信息为所述N个存储节点中的所述每个存储节点到所述源节点的数据传输路径的传输带宽;
所述分配单元用于根据所述待存储的数据,给所述N个存储节点中的每个存储节点分配对应的待存储的数据,包括:所述分配单元用于根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据。
33.根据权利要求32所述的装置,其特征在于,所述分配单元用于根据所述待存储的数据以及所述N个存储节点中的所述每个存储节点的带宽信息,为所述N个存储节点中的所述每个存储节点分配对应的待存储的数据,包括:
所述分配单元用于为所述N个存储节点中的J个存储节点分配对应的待存储的数据,其中,所述J个存储节点中的第j个存储节点分配到的待存储的数据的大小与所述第j个存储节点的传输带宽呈正相关关系,所述J为大于1小于等于N的正整数,所述j为从1逐一递增到J的正整数。
34.一种数据存储系统,其特征在于,包含如权利要求28-33任一项所述的数据存储装置和多个存储节点,用于将所述数据存储装置的数据分布存储于所述多个存储节点中的N个存储节点,其中N为大于1的正整数。
CN201580001239.3A 2015-06-27 2015-06-27 一种数据存储方法、装置和系统 Active CN107113323B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/082581 WO2017000094A1 (zh) 2015-06-27 2015-06-27 一种数据存储方法、装置和系统

Publications (2)

Publication Number Publication Date
CN107113323A CN107113323A (zh) 2017-08-29
CN107113323B true CN107113323B (zh) 2020-02-21

Family

ID=57607489

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580001239.3A Active CN107113323B (zh) 2015-06-27 2015-06-27 一种数据存储方法、装置和系统

Country Status (2)

Country Link
CN (1) CN107113323B (zh)
WO (1) WO2017000094A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110569213A (zh) * 2018-05-18 2019-12-13 北京果仁宝软件技术有限责任公司 文件存取方法、装置和设备
CN109831391B (zh) * 2018-12-29 2022-05-13 华为云计算技术有限公司 分布式存储系统中流控的方法、存储设备和系统
CN111399748B (zh) * 2019-01-02 2023-09-05 中国移动通信有限公司研究院 一种数据放置方法、装置和计算机可读存储介质
CN109768926B (zh) * 2019-01-10 2021-07-20 维沃移动通信有限公司 一种数据处理方法、终端设备及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645038A (zh) * 2009-05-20 2010-02-10 中国科学院声学研究所 基于彼特森的网络存储结构的数据存储方法
CN101674233A (zh) * 2008-09-12 2010-03-17 中国科学院声学研究所 基于彼得森图的存储网络结构及数据读写方法
CN102387179A (zh) * 2010-09-02 2012-03-21 联想(北京)有限公司 分布式文件系统及其结点、存储方法和存储控制方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8903906B2 (en) * 2010-03-16 2014-12-02 Brother Kogyo Kabushiki Kaisha Information communications system, node device, method of communicating contents, computer readable recording medium storing a program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101674233A (zh) * 2008-09-12 2010-03-17 中国科学院声学研究所 基于彼得森图的存储网络结构及数据读写方法
CN101645038A (zh) * 2009-05-20 2010-02-10 中国科学院声学研究所 基于彼特森的网络存储结构的数据存储方法
CN102387179A (zh) * 2010-09-02 2012-03-21 联想(北京)有限公司 分布式文件系统及其结点、存储方法和存储控制方法

Also Published As

Publication number Publication date
WO2017000094A1 (zh) 2017-01-05
CN107113323A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
US9705783B2 (en) Techniques for end-to-end network bandwidth optimization using software defined networking
CN112738820B (zh) 一种服务功能链的动态部署方法、装置及计算机设备
US9225668B2 (en) Priority driven channel allocation for packet transferring
JP5335892B2 (ja) パケット交換オンチップ相互接続ネットワークの高速仮想チャネル
CN113098773B (zh) 数据处理方法、装置及系统
EP3554009A1 (en) Method and device for service deployment
CN107113323B (zh) 一种数据存储方法、装置和系统
US8989037B2 (en) System for performing data cut-through
US9042252B2 (en) Inter-packet interval prediction learning algorithm
WO2019072162A1 (zh) 虚拟网络映射方法、设备和存储介质
KR20200017589A (ko) 무선 통신 시스템에서 모바일 노드의 태스크를 오프로딩하기 위한 클라우드 서버 및 그의 동작 방법
CN105721354B (zh) 片上网络互联方法及装置
US11782869B2 (en) Data transmission method and related device
US20140036680A1 (en) Method to Allocate Packet Buffers in a Packet Transferring System
CN111181873B (zh) 数据发送方法、装置、存储介质和电子设备
JPWO2018220708A1 (ja) 資源割当システム、管理装置、方法およびプログラム
US20170048145A1 (en) Switching device and control method of switching device
CN113032096A (zh) 一种基于节点重要性与用户需求双感知的sfc映射方法
Hsu et al. Virtual network mapping through path splitting and migration
US20200127936A1 (en) Dynamic scheduling method, apparatus, and system
CN109150760B (zh) 一种网络资源预留方法及装置
US9344384B2 (en) Inter-packet interval prediction operating algorithm
US9954771B1 (en) Packet distribution with prefetch in a parallel processing network device
US10594631B1 (en) Methods and apparatus for memory resource management in a network device
CN113328953A (zh) 网络拥塞调整的方法、装置和存储介质

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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Dong Xiaowen

Inventor after: Zhao Junfeng

Inventor after: Dan Dongfang

Inventor before: Dong Xiaowen

Inventor before: Zhao Junfeng

GR01 Patent grant
GR01 Patent grant