利用实时计算用于逐分块数据组织和放置的方法和系统技术方案

技术编号:21951716 阅读:19 留言:0更新日期:2019-08-24 17:27
一个实施例提供一种促进数据组织的系统。系统接收指示要从非易失性存储器读取的文件的请求,所述非易失性存储器被划分成多个逻辑分块,其中,分块被划分成多个大块。所述系统确定分块索引、在所述文件的开头与对应于所述分块索引的分块的开头之间的第一偏移以及所述文件的请求长度。所述系统基于所述分块索引和所述第一偏移计算所请求的文件的大块索引。所述系统基于所述大块索引识别所述非易失性存储器中的位置。所述系统基于所述请求长度从所述非易失性存储器中的所识别的位置读取所请求的文件。

The Method and System of Using Real-time Computing to Organize and Place Block-by-Block Data

【技术实现步骤摘要】
利用实时计算用于逐分块数据组织和放置的方法和系统本申请要求于2018年2月14日提交美国专利商标局、申请号为15896747、专利技术名称为“METHODANDSYSTEMFORCHUNK-WISEDATAORGANIZATIONANDPLACEMENTWITHREAL-TIMECALCULATION”的美国专利申请的优先权,其全部内容通过引用结合在本申请中。
本公开一般地涉及数据存储的领域。更具体地,本公开涉及利用实时计算用于逐分块数据组织和放置的方法和系统。
技术介绍
因特网和电子商务的激增继续产生大量的数字内容。已经创建了分布式存储系统来访问并存储这种数字内容。分布式存储系统可包括多个存储服务器,其中存储服务器可包括多个驱动器,诸如固态驱动器(SSD)和硬盘驱动器(HDD)。存储在驱动器上的数据通常是基于文件系统和闪存转换层(FTL)来组织的,所述FTL将数据的逻辑块地址(LBA)映射到驱动器的物理块地址(PBA)。然而,在逻辑块的大小与物理块的大小之间可能存在显著不一致。例如,SSD/传统文件系统可使用512B单元或4096B(~4KB)单元作为逻辑块大小,但是可使用16KB单元作为物理块大小(例如,作为物理页面的一部分)。作为将LBA映射到PBA的一部分,FTL维护查找表,其中每一4KBLBA被指派了一个条目,所述条目它本身具有4B的近似大小。在具有16TB容量的SSD中,此FTL查找表可具有40亿个条目(即,16TB/4KB=4e+9)。假如每个条目是4B,则FTL查找表可以和16GB(即,4e+9x4=16e+9)一样大。这个大16GBFTL查找表可以导致若干问题。该表可以被存储在非易失性存储器(例如,NAND闪存)中以确保内容的完整性,但是在给驱动器加电的同时加载这种大表可以花费大量时间。该表可以被存储在SSD的片外DRAM中,但是SSD必须安装16GB表以支持16TB容量SSD。随着SSD的容量增加,DRAM也必须增加。因为DRAM的成本可以很高,所以随之而来的SSD成本也可以很高。此外,逻辑块大小(例如,4KB)与物理块大小(例如,16KB)之间的不一致可导致低效率和过度设计。基于逻辑大小(4KB)的小粒度生成并存储对应且必要的元数据可导致对驱动器的容量的次优利用。例如,处理元数据可以导致非平凡的开销并且存储元数据可以使用大量的存储器容量。因此,虽然分布式存储系统可有效地存储大量数据,但是传统SSD和文件系统的缺点可降低系统的效率和总体性能。
技术实现思路
一个实施例促进数据组织。在操作期间,系统接收指示要从非易失性存储器读取的文件的请求,其中,所述非易失性存储器被划分成多个逻辑分块,并且其中,分块被划分成多个大块。所述系统基于所述请求确定分块索引、在所述文件的开头与对应于所述分块索引的分块的开头之间的第一偏移以及所述文件的请求长度。所述系统基于所述分块索引和所述第一偏移计算所请求的文件的大块索引。所述系统基于所述大块索引识别所述非易失性存储器中的位置。所述系统基于所述请求长度从所述非易失性存储器中的所识别的位置读取所请求的文件。在一些实施例中,所述系统基于所述请求确定在所述文件的开头与在所述文件内从中开始读取所述文件的起始位置之间的第二偏移,其中,计算所述大块索引并且识别所述位置进一步基于所述第二偏移。在一些实施例中,确定所述分块索引进一步基于基于所请求的文件在数据结构中执行查找。所述数据结构包括在所述文件与一组对应的位置信息之间的映射。所述位置信息包括所述非易失性存储器中的所述存储的分块索引和大块索引。在一些实施例中,响应于从所述非易失性存储器中的所识别的位置成功地读取所请求的文件,所述系统将所请求的文件发送到请求主机。在一些实施例中,所述请求被第一服务器接收并发送到第二服务器。所述系统确定指示从中读取所请求的文件的一个或更多个存储服务器的路径信息。响应于确定所述路径信息未被缓存在所述第二服务器处:所述系统通过所述第二服务器从主节点中检索所述路径信息;并且所述系统通过所述第二服务器缓存所述路径信息。响应于确定所述路径信息被缓存在所述第二服务器处,所述系统通过所述第二服务器确定从中读取所请求的文件的一个或更多个存储服务器。在一些实施例中,响应于从所述非易失性存储器中的所识别的位置未成功地读取所请求的文件,所述系统从与所述路径信息中指示的另一存储服务器相关联的非易失性存储器读取所请求的文件。在一些实施例中,响应于从与所述路径信息中指示的所述存储服务器相关联的多个非易失性存储器未成功地读取所请求的文件:所述系统向所述第一服务器报告读取失败;并且所述系统从备份读取所请求的文件。另一实施例促进数据组织。在操作期间,所述系统接收指示要写入到非易失性存储器的文件的请求,其中,所述非易失性存储器被划分成多个逻辑分块,并且其中,分块被划分成多个大块。所述系统确定与所述文件相关联的第一大块被成功地缓存在缓冲器中。所述系统将所述第一大块写入到所述非易失性存储器中的位置,其中,多个大块被顺序地写入在所述非易失性存储器中。所述系统在数据结构中存储所述文件与一组对应的位置信息之间的映射,其中,所述位置信息包括所述非易失性存储器的分块索引和大块索引,而不用在闪存转换层中访问逻辑块地址至物理块地址映射。在一些实施例中,所述系统将所述文件划分成第一多个分块以获得对应的元数据,所述元数据指示用于每个分块的索引和所述文件的长度。在一些实施例中,所述系统基于所述路径信息确定与所述第一大块被写入到的所述非易失性存储器相关联的存储服务器。在一些实施例中,在确定所述第一大块被成功地缓存在所述缓冲器中之前,所述系统通过所述存储服务器缓存所述缓冲器中的所述第一大块。所述系统将所述数据的剩余部分以大块为单位缓存在所述缓冲器中。当所述缓冲器中的相应的大块单元满时所述系统将所述数据的剩余部分写入到所述非易失性存储器。在一些实施例中,响应于确定当前分块未被密封,所述系统从写入指针的当前位置开始将所述文件附加到所述当前分块的末尾。响应于确定所述当前分块被密封,所述系统:打开新分块;将所述新分块设置为所述当前分块;并且将所述文件写入到所述当前分块。所述系统将与所述文件相关联的元数据写入到所述当前分块中。在一些实施例中,所述系统响应于以下各项中的一个或更多个而密封所述当前分块:确定没有剩余文件要写入;以及确定所述当前分块已打开持续长于预定时间段。所述系统响应于确定所述当前分块具有剩余空间并且进一步响应于以下各项中的一个或更多个而填充所述当前分块:确定没有剩余文件要写入;以及确定所述当前分块已打开持续长于预定时间量。在一些实施例中,所述请求、所述文件和所述对应的元数据由所述第一服务器发送到第二服务器,并且进一步由所述第二服务器发送到与所述第一大块被写入到的所述非易失性存储器相关联的存储服务器。附图说明图1图示依照本申请的实施例的促进逐分块数据组织的示例性环境。图2图示依照本申请的实施例的驱动器中的示例性逐分块数据组织。图3图示依照本申请的实施例的驱动器的物理空间中的示例性逐分块数据组织。图4A呈现图示依照本申请的实施例的用于在促进逐分块数据组织的系统中写入数据的方法的流程图。图4B呈现图示依照本申请的实施例的用于在促进逐分块数据组织的系本文档来自技高网
...

【技术保护点】
1.一种用于促进数据组织的计算机实现的方法,所述方法包括以下步骤:接收指示要从非易失性存储器读取的文件的请求,其中,所述非易失性存储器被划分成多个逻辑分块,并且其中,分块被划分成多个大块;基于所述请求确定分块索引、在所述文件的开头与对应于所述分块索引的分块的开头之间的第一偏移以及所述文件的请求长度;基于所述分块索引和所述第一偏移计算所请求的文件的大块索引;基于所述大块索引识别所述非易失性存储器中的位置;以及基于所述请求长度从所述非易失性存储器中的所识别的位置读取所请求的文件。

【技术特征摘要】
2018.02.14 US 15/896,7471.一种用于促进数据组织的计算机实现的方法,所述方法包括以下步骤:接收指示要从非易失性存储器读取的文件的请求,其中,所述非易失性存储器被划分成多个逻辑分块,并且其中,分块被划分成多个大块;基于所述请求确定分块索引、在所述文件的开头与对应于所述分块索引的分块的开头之间的第一偏移以及所述文件的请求长度;基于所述分块索引和所述第一偏移计算所请求的文件的大块索引;基于所述大块索引识别所述非易失性存储器中的位置;以及基于所述请求长度从所述非易失性存储器中的所识别的位置读取所请求的文件。2.根据权利要求1所述的方法,所述方法进一步包括以下步骤:基于所述请求确定在所述文件的开头与在所述文件内从中开始读取所述文件的起始位置之间的第二偏移,其中,计算所述大块索引并且识别所述位置的步骤进一步基于所述第二偏移。3.根据权利要求1所述的方法,其中,确定所述分块索引的步骤进一步基于基于所请求的文件在数据结构中执行查找,其中,所述数据结构包括在所述文件与一组对应的位置信息之间的映射,并且其中,所述位置信息包括所述非易失性存储器中的所述存储器的分块索引和大块索引。4.根据权利要求1所述的方法,所述方法进一步包括以下步骤:响应于从所述非易失性存储器中的所识别的位置成功地读取所请求的文件,将所请求的文件发送到请求主机。5.根据权利要求1所述的方法,其中,所述请求被第一服务器接收并发送到第二服务器,并且其中,所述方法进一步包括:确定指示从中读取所请求的文件的一个或更多个存储服务器的路径信息;响应于确定所述路径信息未被缓存在所述第二服务器处:通过所述第二服务器从主节点中检索所述路径信息;并且通过所述第二服务器缓存所述路径信息;以及响应于确定所述路径信息被缓存在所述第二服务器处,通过所述第二服务器确定从中读取所请求的文件的一个或更多个存储服务器。6.根据权利要求5所述的方法,所述方法进一步包括以下步骤:响应于从所述非易失性存储器中的所识别的位置未成功地读取所请求的文件,从与所述路径信息中指示的另一存储服务器相关联的非易失性存储器读取所请求的文件。7.根据权利要求5所述的方法,所述方法进一步包括以下步骤:响应于从与所述路径信息中指示的所述存储服务器相关联的多个非易失性存储器未成功地读取所请求的文件:向所述第一服务器报告读取失败;以及从备份读取所请求的文件。8.一种用于促进数据组织的计算机实现的方法,所述方法包括以下步骤:接收指示要写入到非易失性存储器的文件的请求,其中,所述非易失性存储器被划分成多个逻辑分块,并且其中,分块被划分成多个大块;确定与所述文件关联的第一大块被成功地缓存在缓冲器中;将所述第一大块写入到所述非易失性存储器中的位置,其中,多个大块被顺序地写入在所述非易失性存储器中;以及在数据结构中存储在所述文件与一组对应的位置信息之间的映射,其中,所述位置信息包括所述非易失性存储器的分块索引和大块索引。9.根据权利要求8所述的方法,该方法进一步包括以下步骤:将所述文件划分成第一多个分块以获得对应的元数据,所述元数据指示针对每个分块的索引和所述文件的长度。10.根据权利要求8所述的方法,其中,所述请求被第一服务器接收并发送到第二服务器,并且其中,所述方法进一步包括以下步骤:确定对要将所述文件写入到的一个或更多个存储服务器进行指示的路径信息;响应于确定所述路径信息未被缓存在所述第二服务器处:通过所述第二服务器从主节点中检索所述路径信息;并且通过所述第二服务器缓存所述路径信息;以及响应于确定所述路径信息被缓存在所述第...

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

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

1