[发明专利]一种分布式系统中的文件写入方法及装置有效
申请号: | 201610412690.0 | 申请日: | 2016-06-13 |
公开(公告)号: | CN107493309B | 公开(公告)日: | 2020-07-31 |
发明(设计)人: | 刘善阳;朱家稷 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;G06F16/182 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 李红爽;栗若木 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 系统 中的 文件 写入 方法 装置 | ||
一种分布式系统中的文件写入方法及装置;所述文件写入方法包括:客户端收到对于第一文件的写请求后,将对于所述第一文件的数据写入请求分别发送到所述第一文件所对应的每个存储节点;其中所述数据写入请求中至少包括:与所述第一文件数据写入请求对应的写请求标识、存储节点地址;所述存储节点地址包括所述第一文件所对应的每个存储节点中主存储节点的地址和/或副存储节点的地址;所述存储节点地址供所述主存储节点和所述副存储节点之间交互时使用;所述客户端分别从所述第一文件所对应的每个存储节点接收对于所述数据写入请求的执行结果。本申请能够在保证数据的多个副本字节序一致的前提下,减少数据发送跳数从而降低写入延时。
技术领域
本发明涉及分布式存储领域,尤其涉及一种分布式系统中的文件写入方法及装置。
背景技术
底层分布式存储系统是云计算技术的基础,例如谷歌文件系统(Google FileSystem,GFS),Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)等,在这些基础之上建立起了许多提供不同功能的分布存储产品,其中很大一部分产品是通过建立多个分区(Partition)的方式实现了数据的分布存储,每个Partition的数据由一个单独的进程服务,来保证一致性。但这种设计使存储产品需要解决Partition的热点问题,因为单个进程的服务能力总是受限于它所在机器的物理资源,比如中央处理器(CentralProcessing Unit,CPU),网络带宽等。
为了解决这个问题,一些系统提出了元数据流和数据流分离的方法:元数据流还是由每个Partition的服务进程来处理,保证数据的一致性;数据流直接跟底层分布式存储系统的数据管理模块交互。由于元数据流的量很小,Partition变成热点的概率大大降低,同时数据传输过程也减少了Partition服务进程这一跳,减少了网络延时和网络带宽。
为了满足这个方案,底层分布式存储系统需要支持一个文件同时被多个进程读写。读文件不会改变数据,一般都支持多进程并发。写文件则不能通过互斥的方式来保证数据的一致性,而是要提供了一种可以允许多个进程同时向一个文件写入数据的方法,数据的一致性交给其中一个数据管理节点来负责。一种现有的底层分布式存储系统是微软Azure云计算平台中采用的底层分布式存储系统(Stream Layer),结构如图1所示:数据存储节点是扩展节点(Extent Node,EN),存放数据副本的多个EN不是对等的,比如图1所示的3个EN中,有一个被选为主(Primary)EN,所有的客户端(Client)都先将待写入的数据发送到主扩展节点,由主扩展节点确定偏移量(offset)后,再将待写入的数据和偏移量一起依次传递给另外两个Secondary(副)扩展节点(即:先传递给一个副扩展节点,再从该副扩展节点传递给另一个副扩展节点),这样就可以保证数据的多个副本在字节序上是一致的。
StreamLayer的每个文件(Stream)都只有1个块(Chunk)是可以写数据的,当某个客户端进程对某个文件写数据的时候遇到(故障切换failover),这个客户端进程会将当前的块设置为不可写,同时申请1个新的可写块,将数据写到新的块上,其它对该文件写数据的客户端进程也要将数据写到这个新的块上。
现有的方案有如下问题:
数据存储层完成写操作的时候采用链式数据流,待写入的数据要经过多跳才能到达所有的数据节点,比如图1所示的系统,当包含两个副扩展节点时,待写入的数据先从客户端发到主扩展节点(第一跳)、然后从主扩展节点发到第一个副扩展节点(第二跳),最后从第一个副扩展节点发到第二个副扩展节点(第三跳),共经过了3跳;相应地,第二个副扩展节点的执行结果也需要依次历经第一个副扩展节点和主扩展节点返回给客户端;对于客户端而言,总的延时是3跳延时之和;在每次写入的数据量较大的时候,过多的跳数会导致延时很长。
发明内容
本申请提供一种分布式系统中的文件写入方法及装置,能够在保证数据的多个副本字节序一致的前提下,减少数据发送跳数从而降低写入延时。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610412690.0/2.html,转载请声明来源钻瓜专利网。