一种分布式系统中的数据写入方法及装置制造方法及图纸

技术编号:16836954 阅读:24 留言:0更新日期:2017-12-19 19:38
一种分布式系统中的数据写入方法及装置;所述数据写入方法,包括:当收到用户对于第一文件的写请求后,按照第一时间间隔,对所述第一文件的多个可写块依次发起写数据请求;所述第一时间间隔根据写操作的性能指标动态确定,一次写操作包括针对一个写请求所发起的多次写数据请求;检测到依次发起的写数据请求中任一次写数据请求成功后停止发起写数据请求。本申请能降低写入延时毛刺率,并且能自适应调整冗余写数据请求的发送间隔。

A method and device for data writing in a distributed system

A distributed system of data writing method and device; the data writing method, including: when users write requests for the first document, according to the first time interval, a plurality of the first file write blocks sequentially generates write data request; the first time interval is determined according to the dynamic performance index the write operation, a write operation on a write request initiated by a plurality of write data request; detected sequentially initiated write data request any request to write data to stop writing data request after the success of launching. This application can reduce the write delay burr rate and adaptively adjust the transmission interval of the redundant write data request.

【技术实现步骤摘要】
一种分布式系统中的数据写入方法及装置
本专利技术涉及分布式存储领域,尤其涉及一种分布式系统中的数据写入方法及装置。
技术介绍
云计算技术现在正逐渐普及,分布式存储是云计算要解决的最基本的问题之一。分布式存储系统将数据存储在物理上分散的多个存储节点上,对这些节点的资源进行统一管理与分配,并向用户提供文件访问接口,解决了本地存储系统在文件大小、文件数量、打开文件数等的限制问题。现在典型的分布式存储系统都采用了三端模式来部署,通常包括主控服务器、存储节点及客户端。主控服务器也称为元数据服务器、名字服务器、命名空间管理模块及管理服务器等,实际部署时可以采用冗余的工作方式。存储节点也称为数据存储服务器、数据服务器、存储服务器、块服务器、数据管理模块等。客户端也称为客户机,可以是各种应用服务器,也可以是终端用户。常用的分布式存储系统包括谷歌文件系统(GoogleFileSystem,GFS)、淘宝文件系统(TaobaoFileSystem,TFS)、MooseFS文件系统等。以谷歌文件系统为例,如图1所示,客户端(Client)用于为分布式存储系统的用户提供各种接口;块服务器(Chunkserver)用于具体管理用户文件,用户文件的数据以多副本的方式保存在不同的块服务器中;主控服务器(Master)用于管理元数据(metadata)。客户端发送文件名称和块索引到主控服务器,主控服务器返回块句柄和块位置;客户端发送块句柄和字节范围到块服务器,块服务器返回块数据。块服务器还向主控服务器上报块服务器状态,主控服务器下发对于块服务器的指令给块服务器。谷歌文件系统中,用户文件的所有元数据存储在主控服务器中,包括文件的名字空间和Chunk(块)名字空间、从文件到块的映射以及块对应的数据服务器等等。为了提高访问元数据的吞吐量,所有的元数据都缓存在主控服务器的内存中。主控服务器占用内存的大小与文件数量成正比,主控服务器所在机器的物理内存大小决定了集群所能存储的文件数量。文件被分成固定大小的块。每个文件在主控服务器只有一个可写块。块服务器将块当作Linux文件存储在本地磁盘。出于可靠性考虑,每一个块被复制到多个块服务器上,用于存储某一文件的可写块的副本的块服务器可称为该文件对应的块服务器。默认情况下,在块服务器上保存3个副本,每个副本存储在一个块服务器上。客户端需要向文件写数据时,可以询问主控服务器该文件对应的块服务器。客户端在一段时间内将这些信息缓存,在后续的操作中直接和块服务器交互。下面以谷歌文件系统为例,对现有分布式存储系统典型的写流程进行描述。客户端接收到用户对某一文件(以下称为第一文件)写数据的请求后,执行以下处理:步骤一,客户端向主控服务器请求第一文件的可写块的信息;步骤二,主控服务器将第一文件的一个可写块的信息及其对应的多个块服务器的信息返回给客户端;可写块的信息可以是该可写块的标识信息,如块句柄(Chunk-handle)等,块服务器的信息可以是块服务器的地址,也可是其他可用于获取地址的信息如名称、标识等。客户端对第一文件进行的一次写操作的过程如下:步骤三,客户端向所述多个块服务器发起对所述第一文件的写数据请求,并等待所述多个块服务器返回写数据的结果;步骤四,如果所述多个数据服务器都向客户端返回写数据成功,客户端即判定对第一文件的此次写操作成功,向用户返回写数据成功。本专利技术的专利技术人经研究发现,现有方案存在以下缺陷:一次分布式写操作的延时取决于最慢的一个副本的写延时。对于关注延时的在线系统来说,3个副本总的延时分布比单副本要差很多。例如:单副本写延时小于20毫秒的比例是0.9;那么3个副本写延时小于20毫秒的比例是0.93=0.729。由于需要3个副本中任何一个都要小于20毫秒,3个副本写延时才会小于20毫秒,因此从写延时的毛刺率来说,3个副本中只要有一个写操作出现毛刺,这次分布式写操作的延时就是一个毛刺。因此,现有分布式存储系统中存在写操作的延时毛刺率高的问题。
技术实现思路
本申请提供一种分布式系统中的数据写入方法及装置,能降低写入延时毛刺率,并且能自适应调整冗余写数据请求的发送间隔。本申请采用如下技术方案。一种分布式系统中的数据写入方法,包括:当收到用户对于第一文件的写请求后,按照第一时间间隔,对所述第一文件的多个可写块依次发起写数据请求;所述第一时间间隔根据写操作的性能指标动态确定,一次写操作包括针对一个写请求所发起的多次写数据请求;检测到依次发起的写数据请求中任一次写数据请求成功后停止发起写数据请求。可选地,所述写操作的性能指标包括:写操作的延时,和/或,发起冗余写数据请求的次数;所述冗余写数据请求是指:针对用户对于第一文件的一次写请求,依次发起的写数据请求中,除第一次发起的写数据请求以外的写数据请求。可选地,所述写操作的延时是之前一次或之前多次写操作的延时,或者是待确定所述第一时间间隔的时刻之前预定长度的时间内,写操作的延时;所述发起冗余写数据请求的次数是之前一次或之前多次写操作中发起冗余写数据请求的次数,或者是待确定所述第一时间间隔的时刻之前预定长度的时间内,写操作中发起冗余写数据请求的次数。可选地,所述的数据写入方法还包括:在每次写操作后,记录本次写操作的延时和发起冗余写数据请求的次数。可选地,所述第一时间间隔根据写操作的性能指标动态确定包括:所述第一时间间隔根据Lavg以及Qps计算得到;其中,所述Lavg是待确定所述第一时间间隔的时刻之前预定长度的时间内,写操作的延时的平均值;所述Qps是待确定所述第一时间间隔的时刻之前预定长度的时间内,发起冗余写数据请求的频率Qps。可选地,所述第一时间间隔根据Lavg以及Qps计算得到包括:所述第一时间间隔等于预定函数的函数值;所述预定函数的自变量为Lavg、Qps,所述预定函数的函数值随Lavg单调递增,随Qps单调递增。可选地,所述第一时间间隔根据写操作的性能指标动态确定包括:周期性根据写操作的性能指标动态确定所述第一时间间隔;或者,当满足预定的触发条件时根据写操作的性能指标动态确定所述第一时间间隔。一种分布式系统中的数据写入装置,包括:发起模块,用于当收到用户对于第一文件的写请求后,按照第一时间间隔,对所述第一文件的多个可写块依次发起写数据请求;所述第一时间间隔根据写操作的性能指标动态确定,一次写操作包括针对一个写请求所发起的多次写数据请求;检测模块,用于检测到依次发起的写操作中任一次写数据请求成功后指示所述发起模块停止发起写数据请求。可选地,所述写操作的性能指标包括:写操作的延时,和/或,发起冗余写数据请求的次数;所述冗余写数据请求是指:针对用户对于第一文件的一次写请求,所述发起模块依次发起的写数据请求中,除第一次发起的写数据请求以外的写数据请求。可选地,所述写操作的延时是之前一次或之前多次写操作的延时,或者是待确定所述第一时间间隔的时刻之前预定长度的时间内,写操作的延时;所述发起冗余写数据请求的次数是之前一次或之前多次写操作中发起冗余写数据请求的次数,或者是待确定所述第一时间间隔的时刻之前预定长度的时间内,写操作中发起冗余写数据请求的次数。可选地,所述的数据写入装置还包括:记录模块,用于在每次写操作后,记录本次写操作的延时和发起冗余写数据请求的本文档来自技高网
...
一种分布式系统中的数据写入方法及装置

【技术保护点】
一种分布式系统中的数据写入方法,包括:当收到用户对于第一文件的写请求后,按照第一时间间隔,对所述第一文件的多个可写块依次发起写数据请求;所述第一时间间隔根据写操作的性能指标动态确定,一次写操作包括针对一个写请求所发起的多次写数据请求;检测到依次发起的写数据请求中任一次写数据请求成功后停止发起写数据请求。

【技术特征摘要】
1.一种分布式系统中的数据写入方法,包括:当收到用户对于第一文件的写请求后,按照第一时间间隔,对所述第一文件的多个可写块依次发起写数据请求;所述第一时间间隔根据写操作的性能指标动态确定,一次写操作包括针对一个写请求所发起的多次写数据请求;检测到依次发起的写数据请求中任一次写数据请求成功后停止发起写数据请求。2.如权利要求1所述的数据写入方法,其特征在于,所述写操作的性能指标包括:写操作的延时,和/或,发起冗余写数据请求的次数;所述冗余写数据请求是指:针对用户对于第一文件的一次写请求,依次发起的写数据请求中,除第一次发起的写数据请求以外的写数据请求。3.如权利要求2所述的数据写入方法,其特征在于:所述写操作的延时是之前一次或之前多次写操作的延时,或者是待确定所述第一时间间隔的时刻之前预定长度的时间内,写操作的延时;所述发起冗余写数据请求的次数是之前一次或之前多次写操作中发起冗余写数据请求的次数,或者是待确定所述第一时间间隔的时刻之前预定长度的时间内,写操作中发起冗余写数据请求的次数。4.如权利要求2所述的数据写入方法,其特征在于,还包括:在每次写操作后,记录本次写操作的延时和发起冗余写数据请求的次数。5.如权利要求1所述的数据写入方法,其特征在于,所述第一时间间隔根据写操作的性能指标动态确定包括:所述第一时间间隔根据Lavg以及Qps计算得到;其中,所述Lavg是待确定所述第一时间间隔的时刻之前预定长度的时间内,写操作的延时的平均值;所述Qps是待确定所述第一时间间隔的时刻之前预定长度的时间内,发起冗余写数据请求的频率Qps。6.如权利要求5所述的数据写入方法,其特征在于,所述第一时间间隔根据Lavg以及Qps计算得到包括:所述第一时间间隔等于预定函数的函数值;所述预定函数的自变量为Lavg、Qps,所述预定函数的函数值随Lavg单调递增,随Qps单调递增。7.如权利要求1~6中任一项所述的数据写入方法,其特征在于,所述第一时间间隔根据写操作的性能指标动态确定包括:周期性根据写操作的性能指标动态确定所述第一时间间隔;或者,当满足预定的触发条件时根据写操作的性能指标动态确定所述第一时间间隔。8.一种分布式系统中的数据写入装置,其特...

【专利技术属性】
技术研发人员:刘善阳张海勇石超
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1