CN105760556B - 低延时高吞吐量的多副本文件读写优化方法 - Google Patents
低延时高吞吐量的多副本文件读写优化方法 Download PDFInfo
- Publication number
- CN105760556B CN105760556B CN201610244181.1A CN201610244181A CN105760556B CN 105760556 B CN105760556 B CN 105760556B CN 201610244181 A CN201610244181 A CN 201610244181A CN 105760556 B CN105760556 B CN 105760556B
- Authority
- CN
- China
- Prior art keywords
- back end
- node
- read
- client
- write
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种低延时高吞吐量的多副本文件读写优化方法,其包括允许若干客户端进行访问的分布式存储集群,所述分布式存储集群包括若干用于多个文件副本的数据节点,客户端能对分布式存储集群内数据节点存储进行多副本文件的读写操作;客户端内存储记录每个数据节点的访问耗时,在读取分布式存储集群内的副本文件时,确定分布式存储集群内存储待读取副本文件的数据节点,客户端访问待读取副本文件所在数据节点中访问耗时最优的数据节点,以读取所访问数据节点内的副本文件。本发明在读写流程优化后,能对在线业务支持低延时响应,且对离线业务保证高吞吐量,灵活性高,安全可靠。
Description
技术领域
本发明涉及一种文件读写方法,尤其是一种低延时高吞吐量的多副本文件读写优化方法,属于分布式文件读写的技术领域。
背景技术
随着分布式存储系统的发展,越来越多的企业在面对涉及到大量数据的业务时,都毫不犹豫的选择分布式存储系统作为底层的数据支撑。
但是随着软硬件环境的发展,例如万兆网络、异构硬件、业务混合部署等特点;传统的分布式文件读写模式已经无法有效地支撑高吞吐要求的离线业务和低延时要求的在线业务。
发明内容
本发明的目的是克服现有技术中存在的不足,提供一种低延时高吞吐量的多副本文件读写优化方法,其在读写流程优化后,能对在线业务支持低延时响应,且对离线业务保证高吞吐量,灵活性高,安全可靠。
按照本发明提供的技术方案,所述低延时高吞吐量的多副本文件读写优化方法,包括允许若干客户端进行访问的分布式存储集群,所述分布式存储集群包括若干用于多个文件副本的数据节点,客户端能对分布式存储集群内数据节点存储进行多副本文件的读写操作;
客户端内存储记录每个数据节点的访问耗时,在读取分布式存储集群内的副本文件时,确定分布式存储集群内存储待读取副本文件的数据节点,客户端访问待读取副本文件所在数据节点中访问耗时最优的数据节点,以读取所访问数据节点内的副本文件。
在利用流水线方式向分布式存储集群内数据节点写入所需数量的副本文件时,客户端在发起流水线写入请求后开始计时,当写请求在流水线上的响应时间超过预设时间阈值后,客户端根据当前流水线中每个数据节点的访问耗时,删除当前流水线中访问耗时最慢的数据节点,并利用剩余的数据节点组成流水线完成副本文件的写入,缺少的副本文件在流水线写入结束后采用异步写入相应的数据节点内。
在利用分发写入方式向分布式存储集群内的数据节点写入所需数量的副本文件时,在客户端内设置安全副本写入量,当向分布式存储集群内的数据节点写入的副本文件数量达到安全副本写入量时,则分布式存储集群向客户端返回写入成功,缺少的副本文件采用异步方式继续写入对应的数据节点内。
客户端访问待读取副本文件所在数据节点中访问耗时最优的数据节点时,同时对所访问数据节点进行响应计时,当经过预设响应时间后未收到数据节点的响应,则客户端会即刻向其他待读取副本文件所在的数据节点发起访问请求,在收到任意一数据节点的请求响应后,客户端取消对数据节点的访问请求,并对响应请求的数据节点进行访问,以读取所访问数据节点内的副本文件。
所述分布式存储集群还包括控制节点、命名空间节点以及元数据节点;元数据节点负责维护数据节点内文件的元数据信息,命名空间节点负责维护文件系统的目录树;控制节点能收集数据节点定时发送的保活心跳信息,并在统计数据节点的相关信息后,控制节点将统计的相关信息推送给元数据信息。
所述控制节点、命名空间节点以及元数据节点均具有对应的热备节点,若命名空间节点或元数据节点与对应的热备节点进行主从切换时,能通过控制节点找到命名空间节点对应的热备节点的地址以及元数据节点对应的热备节点的地址。
本发明的优点:能够在运行过程中及时检测出慢节点,并迅速规避,保证集群中所有工作机器都是状态良好的,数据写入模式是客户端可控的,用户可以根据当前集群特点以及业务特点动态调整写入方式,灵活性较高,从而读写流程能够对在线业务支持低延时响应,对离线业务保证高吞吐量,安全可靠。
附图说明
图1为本发明的结构图。
图2为现有流水线写入方式的示意图。
图3为本发明流水线写入方式的示意图。
图4为本发明分发写入方式的示意图。
具体实施方式
下面结合具体附图和实施例对本发明作进一步说明。
如图1所示:为了在读写流程优化后,能对在线业务支持低延时响应,且对离线业务保证高吞吐量,本发明包括允许若干客户端进行访问的分布式存储集群,所述分布式存储集群包括若干用于多个文件副本的数据节点,客户端能对分布式存储集群内数据节点存储进行多副本文件的读写操作;
客户端内存储记录每个数据节点的访问耗时,在读取分布式存储集群内的副本文件时,确定分布式存储集群内存储待读取副本文件的数据节点,客户端访问待读取副本文件所在数据节点中访问耗时最优的数据节点,以读取所访问数据节点内的副本文件。
具体地,在实际情况中,不同的数据节点所处的状态不完全相同,可能会造成它们在处理相同的请求时所花费的时间不同,甚至有可能差异较大,所以客户端在访问时会记录其访问各个数据节点的耗时,访问耗时主要包括读文件耗时以及写文件耗时,所述访问耗时可以衡量数据节点当前的健康状态(工作负载、网络连通性等)。由于副本文件在分布式存储集群中是冗余存储,不同的副本文件放置在不同的数据节点上,所以客户端在读取副本文件时,会根据记录的存储了副本文件的数据节点的健康状态来挑选最优的数据节点来访问,以缩短副本文件读取时间。
具体实施时,客户端记录的数据节点健康状态有可能是过期信息,即此时客户端记录的健康状态良好的数据节点实际有可能已经变成了慢节点,为了避免数据请求误落入慢节点上,客户端访问待读取副本文件所在数据节点中访问耗时最优的数据节点时,同时对所访问数据节点进行响应计时,当经过预设响应时间后未收到数据节点的响应,则客户端会即刻向其他待读取副本文件所在的数据节点发起访问请求,在收到任意一数据节点的请求响应后,客户端取消对数据节点的访问请求,并对响应请求的数据节点进行访问,以读取所访问数据节点内的副本文件。
进一步地,所述分布式存储集群还包括控制节点、命名空间节点以及元数据节点;元数据节点负责维护数据节点内文件的元数据信息,命名空间节点负责维护文件系统的目录树;控制节点能收集数据节点定时发送的保活心跳信息,并在统计数据节点的相关信息(相关信息包括数据节点汇报的自己存储的数据块信息,控制节点根据收集到的数据节点上的数据块信息进行负载平衡;相关信息还包括控制节点到数据节点的网络延迟,数据节点当前正在处理的请求负载情况等)后,控制节点将统计的相关信息推送给元数据信息。
进一步地,所述控制节点、命名空间节点以及元数据节点均具有对应的热备节点,若命名空间节点或元数据节点与对应的热备节点进行主从切换时,能通过控制节点找到命名空间节点对应的热备节点的地址以及元数据节点对应的热备节点的地址。命名空间节点与对应的热备节点的主从切换,具体是指当前的命名空间节点与作为备用的热备节点相互切换,备用的热备节点作为当前的命名空间节点,进而,命名空间节点作为热备节点,具体过程为本技术领域人员所熟知,此处不再赘述。每个命名空间节点负责维护目录树中的一部分,元数据节点保持着与客户端之间的文件操作约束,另外,元数据节点在收到控制节点发送过来的数据节点的接入、离开通知书,需要做出相应的处理(所述处理包括元数据节点在收到控制节点发送过来的数据节点接入通知后,需要根据一定的负载平衡策略,将其他数据节点上的数据块转存到新加入的数据节点上;元数据节点在收到数据节点离开的通知时,需要将原先存储在该数据节点上的数据块通过其他数据节点上的副本进行重新转存)。副本文件在数据节点内是分块存储的,块的大小可以配置,当副本文件不满足配置块的大小时,按实际大小进行存储。
在利用流水线方式向分布式存储集群内数据节点写入所需数量的副本文件时,客户端在发起流水线写入请求后开始计时,当写请求在流水线上的响应时间超过预设时间阈值后,客户端根据当前流水线中每个数据节点的访问耗时,删除当前流水线中访问耗时最慢的数据节点,并利用剩余的数据节点组成流水线完成副本文件的写入,缺少的副本文件在流水线写入结束后采用异步写入相应的数据节点内。
本发明实施例中,副本文件写入包括管道写入以及分发写入两种,客户端可以根据分布式存储集群的状态选择所需的写入方式。
管道写入是以流水线的方式将副本文件依次写入不同的数据中,例如要写入三个副本文件,客户端在得到写入的目标数据节点位置后,会先向第一个节点写入第一个副本;第一个节点在收到第一个数据包后,便直接向第二个节点写入第二副本的第一个数据包,依次类推,流水线模式如图2所示。
采用流水线方式写入数据的最大好处是能够充分利用客户端的网卡资源。但是如果流水线上任何一点处理速度慢,将会影响到流水线的整体效率。本发明实施例中,由于客户端会记录读、写请求在每个数据节点上的访问耗时,客户端在发起流水线写入请求后会开始计时,当写请求在流水线上的响应时间超过预设时间阈值后,客户端会根据最近一次写请求获得的三个数据节点的响应时间来删除当前流水线中最慢的数据节点,删除最慢的数据节点后,虽然减少了当下写入的副本文件数量,但是可以显著的提高流水线的速度,缺少的副本文件数量在流水线结束后重新异步写入,如图3所示。具体实施时,目标数据节点的数量与副本文件的数量相一致,预设时间阈值的具体大小可以根据实际需要进行设置,具体为本技术领域人员所熟知,此处不再赘述。
在利用分发写入方式向分布式存储集群内的数据节点写入所需数量的副本文件时,在客户端内设置安全副本写入量,当向分布式存储集群内的数据节点写入的副本文件数量达到安全副本写入量时,则分布式存储集群向客户端返回写入成功,缺少的副本文件采用异步方式继续写入对应的数据节点内。
具体实施时,分发写入方式指的是在选定多台数据节点后同时向几台数据节点写入副本文件,与管道写入方式相反,分发写入的优点是慢节点不会影响到整体的写入效率,但是会平分客户端的网卡资源。本发明实施例中,为了解决网卡资源被平分带来的写入时间增加问题,在客户端以及分布式存储集群内设置安全副本写入量,即只要写入的副本文件数达到了安全副本写入量就给客户端返回写入成功,剩余的副本文件采用异步的方式继续写入,这样就避免了客户端的同步调用的长时间等待。在实际中如果客户端网卡资源没有瓶颈,在写入三副本时,可以向不低于四个数据节点发起写入请求,系统会先进行尝试性的数据写入,然后自动地将慢的以及多余的数据节点删除,这样可以以最快的速度写入三副本,分发写入方式如图4所示,图4中示出了写入三副本文件的示意。
本发明能够在运行过程中及时检测出慢节点,并迅速规避,保证集群中所有工作机器都是状态良好的,数据写入模式是客户端可控的,用户可以根据当前集群特点以及业务特点动态调整写入方式,灵活性较高,从而读写流程能够对在线业务支持低延时响应,对离线业务保证高吞吐量,安全可靠。
Claims (3)
1.一种低延时高吞吐量的多副本文件读写优化方法,其特征是:包括允许若干客户端进行访问的分布式存储集群,所述分布式存储集群包括若干用于多个文件副本的数据节点,客户端能对分布式存储集群内数据节点存储进行多副本文件的读写操作;
客户端内存储记录每个数据节点的访问耗时,在读取分布式存储集群内的副本文件时,确定分布式存储集群内存储待读取副本文件的数据节点,客户端访问待读取副本文件所在数据节点中访问耗时最优的数据节点,以读取所访问数据节点内的副本文件;
在利用流水线方式向分布式存储集群内数据节点写入所需数量的副本文件时,客户端在发起流水线写入请求后开始计时,当写请求在流水线上的响应时间超过预设时间阈值后,客户端根据当前流水线中每个数据节点的访问耗时,删除当前流水线中访问耗时最慢的数据节点,并利用剩余的数据节点组成流水线完成副本文件的写入,缺少的副本文件在流水线写入结束后采用异步写入相应的数据节点内;
在利用分发写入方式向分布式存储集群内的数据节点写入所需数量的副本文件时,在客户端内设置安全副本写入量,当向分布式存储集群内的数据节点写入的副本文件数量达到安全副本写入量时,则分布式存储集群向客户端返回写入成功,缺少的副本文件采用异步方式继续写入对应的数据节点内;
客户端访问待读取副本文件所在数据节点中访问耗时最优的数据节点时,同时对所访问数据节点进行响应计时,当经过预设响应时间后未收到数据节点的响应,则客户端会即刻向其他待读取副本文件所在的数据节点发起访问请求,在收到任意一数据节点的请求响应后,客户端取消对数据节点的访问请求,并对响应请求的数据节点进行访问,以读取所访问数据节点内的副本文件。
2.根据权利要求1所述的低延时高吞吐量的多副本文件读写优化方法,其特征是:所述分布式存储集群还包括控制节点、命名空间节点以及元数据节点;元数据节点负责维护数据节点内文件的元数据信息,命名空间节点负责维护文件系统的目录树;控制节点能收集数据节点定时发送的保活心跳信息,并在统计数据节点的相关信息后,控制节点将统计的相关信息推送给元数据信息。
3.根据权利要求2所述的低延时高吞吐量的多副本文件读写优化方法,其特征是:所述控制节点、命名空间节点以及元数据节点均具有对应的热备节点,若命名空间节点或元数据节点与对应的热备节点进行主从切换时,能通过控制节点找到命名空间节点对应的热备节点的地址以及元数据节点对应的热备节点的地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610244181.1A CN105760556B (zh) | 2016-04-19 | 2016-04-19 | 低延时高吞吐量的多副本文件读写优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610244181.1A CN105760556B (zh) | 2016-04-19 | 2016-04-19 | 低延时高吞吐量的多副本文件读写优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105760556A CN105760556A (zh) | 2016-07-13 |
CN105760556B true CN105760556B (zh) | 2019-05-24 |
Family
ID=56324602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610244181.1A Active CN105760556B (zh) | 2016-04-19 | 2016-04-19 | 低延时高吞吐量的多副本文件读写优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105760556B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107888634B (zh) * | 2016-09-29 | 2021-05-28 | 北京金山云网络技术有限公司 | 一种分布式存储系统的数据请求方法及装置 |
CN108206839B (zh) * | 2016-12-16 | 2020-02-07 | 贵州白山云科技股份有限公司 | 一种基于多数派数据存储方法、装置及系统 |
CN106878388B (zh) * | 2017-01-04 | 2019-12-03 | 北京百度网讯科技有限公司 | 对分布式存储系统中慢节点的检测 |
CN108040089A (zh) * | 2017-11-27 | 2018-05-15 | 国云科技股份有限公司 | 一种适用于大型分布式系统提高响应速度的方法 |
CN108255928A (zh) * | 2017-11-30 | 2018-07-06 | 北京元心科技有限公司 | 分布式系统数据读取方法及装置 |
CN109407981A (zh) * | 2018-09-28 | 2019-03-01 | 深圳市茁壮网络股份有限公司 | 一种数据处理方法及装置 |
CN110166542A (zh) * | 2019-05-16 | 2019-08-23 | 广东电网有限责任公司信息中心 | 基于tcp/ip协议的分布式存储系统及数据读写方法 |
CN112463754B (zh) * | 2020-11-25 | 2022-08-02 | 上海哔哩哔哩科技有限公司 | Hdfs中数据节点切换方法、装置及计算机设备 |
CN112947860B (zh) * | 2021-03-03 | 2022-11-04 | 成都信息工程大学 | 一种分布式数据副本的分级存储与调度方法 |
CN113297324B (zh) * | 2021-04-13 | 2023-05-23 | 福建天泉教育科技有限公司 | 一种数据写入的优化方法及终端 |
CN113268472B (zh) * | 2021-07-15 | 2021-10-12 | 北京华品博睿网络技术有限公司 | 一种分布式数据存储系统及方法 |
CN114415977B (zh) * | 2022-03-29 | 2022-10-04 | 阿里云计算有限公司 | 访问存储池的方法以及分布式存储系统 |
CN116048429B (zh) * | 2023-04-03 | 2023-07-04 | 创云融达信息技术(天津)股份有限公司 | 一种多副本读写方法及装置 |
CN116541365B (zh) * | 2023-07-06 | 2023-09-15 | 成都泛联智存科技有限公司 | 文件存储方法、装置、存储介质及客户端 |
CN117149097B (zh) * | 2023-10-31 | 2024-02-06 | 苏州元脑智能科技有限公司 | 一种分布式存储系统数据访问控制方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645925A (zh) * | 2009-05-15 | 2010-02-10 | 中国科学院声学研究所 | 一种p2p系统中物理拓扑相关的邻居节点选取方法 |
CN102025756A (zh) * | 2009-09-09 | 2011-04-20 | 中兴通讯股份有限公司 | 分布式系统及其数据同步方法 |
CN102724314A (zh) * | 2012-06-20 | 2012-10-10 | 深圳市远行科技有限公司 | 一种基于元数据管理的分布式缓存客户端 |
CN104113597A (zh) * | 2014-07-18 | 2014-10-22 | 西安交通大学 | 一种多数据中心的hdfs数据读写系统及方法 |
-
2016
- 2016-04-19 CN CN201610244181.1A patent/CN105760556B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645925A (zh) * | 2009-05-15 | 2010-02-10 | 中国科学院声学研究所 | 一种p2p系统中物理拓扑相关的邻居节点选取方法 |
CN102025756A (zh) * | 2009-09-09 | 2011-04-20 | 中兴通讯股份有限公司 | 分布式系统及其数据同步方法 |
CN102724314A (zh) * | 2012-06-20 | 2012-10-10 | 深圳市远行科技有限公司 | 一种基于元数据管理的分布式缓存客户端 |
CN104113597A (zh) * | 2014-07-18 | 2014-10-22 | 西安交通大学 | 一种多数据中心的hdfs数据读写系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105760556A (zh) | 2016-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105760556B (zh) | 低延时高吞吐量的多副本文件读写优化方法 | |
JP6044539B2 (ja) | 分散ストレージシステムおよび方法 | |
CN105549905B (zh) | 一种多虚拟机访问分布式对象存储系统的方法 | |
CN104965850B (zh) | 一种基于开源技术的数据库高可用实现方法 | |
CN100565512C (zh) | 消除文件存储系统中冗余文件的系统及方法 | |
JP4824753B2 (ja) | 時間制限メッセージの効率的な処理 | |
CN109800185B (zh) | 一种数据存储系统中的数据缓存方法 | |
CN108228102B (zh) | 节点间数据迁移方法、装置、计算设备及计算机存储介质 | |
CN104503703B (zh) | 缓存的处理方法和装置 | |
CN103186554A (zh) | 分布式数据镜像方法及存储数据节点 | |
CN109582686B (zh) | 分布式元数据管理一致性保证方法、装置、系统及应用 | |
CN104735110A (zh) | 元数据管理方法和系统 | |
CN109739435B (zh) | 文件存储和更新方法及装置 | |
CN111061431B (zh) | 一种分布式存储方法、服务器及客户端 | |
CN113377868A (zh) | 一种基于分布式kv数据库的离线存储系统 | |
CN108932271A (zh) | 一种文件管理方法及装置 | |
CN101470733A (zh) | 数据块副本数量调整方法及分布式文件系统 | |
CN104281673A (zh) | 一种数据库的缓存构建系统及对应的构建方法 | |
CN107181773A (zh) | 分布式存储系统的数据存储及数据管理方法、设备 | |
CN106547477A (zh) | 用于在线地减少缓存设备的方法和装置 | |
CN107943615B (zh) | 基于分布式集群的数据处理方法与系统 | |
CN105808150A (zh) | 用于混合式储存设备的固态硬盘快取系统 | |
JP2012018607A (ja) | 分散キャッシュシステム | |
CN116048878A (zh) | 业务服务恢复方法、装置、计算机设备 | |
CN103491124B (zh) | 一种对彩信数据进行处理的方法及分布式缓存系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |