CN111367864A - 一种文件的无缝替换方法、读取方法及相关*** - Google Patents
一种文件的无缝替换方法、读取方法及相关*** Download PDFInfo
- Publication number
- CN111367864A CN111367864A CN201811593092.3A CN201811593092A CN111367864A CN 111367864 A CN111367864 A CN 111367864A CN 201811593092 A CN201811593092 A CN 201811593092A CN 111367864 A CN111367864 A CN 111367864A
- Authority
- CN
- China
- Prior art keywords
- target
- file
- target file
- stripe
- content
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000010586 diagram Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 101150047375 DID2 gene Proteins 0.000 description 1
- 101100366082 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SNF7 gene Proteins 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种文件的无缝替换方法,包括:当接收到对目标文件的替换请求时,判断所述目标文件是否存在于目标文件***中;若是,将目标文件的目标文件内容写入到目标条带中;当接收到写入成功指令时,获取所述目标文件的目标文件ID;依据所述目标文件ID,确定与所述目标文件内容对应的原始文件内容,将所述原始文件内容的原始条带ID、原始位置ID和原始文件内容大小替换为所述目标文件内容的目标条带ID、目标位置ID和所述目标文件内容大小。上述的替换过程中,只替换了条带ID、位置ID和文件大小,并没有删除目标文件的原始文件内容,不存在用户访问该文件内容时出现文件访问失败的问题。
Description
技术领域
本发明涉及文件处理技术领域,尤其涉及一种文件的无缝替换方法、读取方法及相关***。
背景技术
在分布式文件***中,当需要对***中的目标文件进行替换时,将该目标文件存储路径下的文件删除或重命名,让后将创建该目标文件删除或重命名之前的相同文件来替换处理。
发明人对现有的文件替换方法进行研究发现,在该目标文件删除或重命名后写入与该目标文件对应的新的内容之间存在一个时间差,若删除或重命名该目标文件的同时,存在用户访问该目标文件的内容,就会出现访问失败的现象。
发明内容
有鉴于此,本发明提供了一种坐标旋转数字计算方法的优化方法及***,用以解决在文件替换过程中,存在用户访问该文件时访问失败的问题。具体方案如下:
一种文件的无缝替换方法,其特征在于,包括:
当接收到对目标文件的替换请求时,判断所述目标文件是否存在于目标文件***中;
若是,将目标文件的目标文件内容写入到目标条带中;
当接收到写入成功指令时,获取所述目标文件的目标文件ID;
依据所述目标文件ID,确定与所述目标文件内容对应的原始文件内容,将所述原始文件内容的原始条带ID、原始位置ID和原始文件内容大小替换为所述目标文件内容的目标条带ID、目标位置ID和所述目标文件内容大小。
上述的方法,可选的,将目标文件的目标文件内容写入到目标条带中,包括:
选取可以用于存储所述目标文件内容的目标条带;
获取所述目标条带ID和所述目标条带中各个数据块在对应磁盘的逻辑块号和所述目标位置ID;
依据所述目标条带ID,确定磁盘的连接地址;
依据所述连接地址将所述目标文件内容写入到对应磁盘中数据块号为所述逻辑块号且起始位置为所述目标位置ID内部数据块中。
上述的方法,可选的,选取可以用于存储所述目标文件内容的目标条带,包括:
计算所述目标文件内容需要的连续存储空间的;
将所述目标文件***的各个条带中选取剩余存储空间大于等于所述连续存储空间的条带作为所述目标条带。
上述的方法,可选的,还包括:
更新所述目标条带中文件的数量和剩余存储空间。
一种文件的读取方法,包括:
当接收到对目标文件的读取请求时,获取所述目标文件的目标文件ID、磁盘连接地址、逻辑块号、目标条带ID和目标位置ID;
在与所述目标条带ID对应的磁盘中查找数据块号为所述逻辑块号的目标数据块;
在所述目标数据块中以所述目标位置ID作为起始点读取所述目标文件。
一种文件的无缝替换***,包括:
判断模块,用于当接收到对目标文件的替换请求时,判断所述目标文件是否存在于目标文件***中;
写入模块,用于若是,将目标文件的目标文件内容写入到目标条带中;
第一获取模块,用于接收到写入成功指令时,获取所述目标文件的目标文件ID;
替换模块,用于依据所述目标文件ID,确定与所述目标文件内容对应的原始文件内容,将所述原始文件内容的原始条带ID、原始位置ID和原始文件内容大小替换为所述目标文件内容的目标条带ID、目标位置ID和所述目标文件内容大小。
上述的***,可选的,所述写入模块包括:
选取单元,用于选取可以用于存储所述目标文件内容的目标条带;
获取单元,用于获取所述目标条带ID和所述目标条带中各个数据块在对应磁盘的逻辑块号和所述目标位置ID;
确定单元,用于依据所述目标条带ID,确定磁盘的连接地址;
写入单元,用于依据所述连接地址将所述目标文件内容写入到对应磁盘中数据块号为所述逻辑块号且起始位置为所述目标位置ID内部数据块中。
上述的***,可选的,所述选取单元包括:
计算子单元,用于计算所述目标文件内容需要的连续存储空间的;
选取子单元,用于将所述目标文件***的各个条带中选取剩余存储空间大于等于所述连续存储空间的条带作为所述目标条带。
上述的***,可选的,还包括:
更新模块,用于更新所述目标条带中文件的数量和剩余存储空间。
一种文件的读取***,包括:
第二获取模块,用于当接收到对目标文件的读取请求时,获取所述目标文件的目标文件ID、磁盘连接地址、逻辑块号、目标条带ID和目标位置ID;
查找模块,用于在与所述目标条带ID对应的磁盘中查找数据块号为所述逻辑块号的目标数据块;
读取模块,用于在所述目标数据块中以所述目标位置ID作为起始点读取所述目标文件。
与现有技术相比,本发明包括以下优点:
本发明公开了一种文件的无缝替换方法,包括:当接收到对目标文件的替换请求时,判断所述目标文件是否存在于目标文件***中;若是,将目标文件的目标文件内容写入到目标条带中;当接收到写入成功指令时,获取所述目标文件的目标文件ID;依据所述目标文件ID,确定与所述目标文件内容对应的原始文件内容,将所述原始文件内容的原始条带ID、原始位置ID和原始文件内容大小替换为所述目标文件内容的目标条带ID、目标位置ID和所述目标文件内容大小。上述的替换过程中,只替换了条带ID、位置ID和文件大小,并没有删除目标文件的原始文件内容,不存在用户访问该文件内容时出现文件访问失败的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种文件的无缝替换方法流程图;
图2为本发明实施例公开的一种文件的无缝替换方法又一流程图;
图3为本发明实施例公开的一种文件的读取方法流程图;
图4为本发明实施例公开的一种文件的无缝替换***结构框图;
图5为本发明实施例公开的一种文件的读取***结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明公开了一种文件的无缝替换方法,所述替换方法应用在文件***的文件替换过程中,所述替换方法的执行主体可以为文件***中的处理器或者控制器,其中,本发明实施例中以分布式文件***的文件替换过程为例进行说明,所述分布式文件***可以包括:信息管理模块、数据接入模块、磁盘管理模块和用户模块,其中,
所述信息管理模块用来管理文件、磁盘(所有的磁盘都在这里进行统一管理)、以及磁盘的条带信息。
所述数据接入模块用来管理用户的输入和输出,以及和信息管理服务器的交互控制。
所述磁盘管理模块是管理所有磁盘的服务器,所述磁盘是实际的物理设备。
所述信息管理模块中存储文件的路径、文件ID、条带ID和位置ID。优选的,本发明是基于小文件的,所述信息管理模块中管理的文件只存在一个磁盘条带以及一个条带位置ID。
本发明提出基于分布式文件***的实现的替换方法。其中,所述信息管理模块包括:管理磁盘列表、磁盘条带集合和文件。其中:
所述管理磁盘列表,包括磁盘的连接地址,每一个磁盘在信息管理模块中的唯一ID。磁盘列表是分布式存储***中所有服务器上所有的磁盘的集合。
所述磁盘条带集合:将多个磁盘中每一个磁盘中获取一个数据块,将每一个磁盘上的这个数据块唯一的组合成一个数据块组,就是一个条带。在信息管理模块中,每一个条带都有一个唯一的ID,就是条带ID。可以通过条带的ID可以确定有哪些磁盘的哪些逻辑数据块进行的组合,也可以确定有该条带中的连接地址等信息。
所述文件:包括文件的路径,如:/home/liyin/filename;这个文件路径对应文件ID,所述文件ID是信息管理模块中唯一的一个文件标识,在文件删除之前,这个路径以及对应文件ID是不变的。该文件以及文件内容写入成功后,包括一个条带的ID,这个条带的ID对应的磁盘数据块上存储了该文件的内容信息,包括该条带ID对应的位置ID,该位置ID是该条带中具体的哪一个偏移位置开始的ID,用来定位磁盘中数据的起始位置。以及该文件的文件大小。
由于本发明是基于小文件的应用场景来发明的,我们的小文件在***中定义为64M以及64M以下的文件,但不限于该大小。在信息管理模块中,一个文件最多对应一个条带的ID。那么在文件无缝替换中,提供了有利的条件。
文件信息表包括:文件路径文件ID、条带ID、位置ID和文件大小
所述条带信息表包括:条带ID、磁盘ID集合[DID0,DID1,DID2]、逻辑块号、文件个数、文件删除个数和剩余空间。
磁盘信息表包括:磁盘ID和磁盘的连接地址。
数据块包括:数据块头和数据块体。
其中,数据块头包含了2048个信息字段,所述信息字段包括:占用标志、内部块编号和文件大小。
同时将数据块体也划分成2048个段。该数据块是64M,那么将这64M的内容等分成了2048个内部数据块,每一个内部数据块是32K。但不限于这样的方案。
在文件存储方法中,一个大的数据块可以最多存储2048个小文件,每一个小文件最大32K。最少可以存储1个小文件,文件的大小是64M。在存储数据的时候,在数据块头中首先找到一个空的头的索引(按照0开始,到2047),标记为已经使用,内部块好指向内部数据块存储文件的起始内部数据块号,且文件占用从起始块号开始的连续的内部数据块。设置文件大小,用来确定从起始块号开始的连续的数据块的个数。计算方法:(size+32K-1byte)整除32K就是占用的内部数据块的个数。这里的数据块头中的这个索引ID(从0开始到2047)就是前面描述的文件所在条带中的位置ID。
假设一个33K的文件,使用数据块头中的索引i(i大于等于0,小于2048).计算占用2个内部数据块,内部数据块可以从x开始(x大于等于0,小于2048),占用两个数据块,即x和x+1,该文件的位置ID为i。
文件无缝替换是建立在文件存在的基础上的。因此,所述替换方法的执行流程如图1所示,包括步骤:
S101、当接收到对目标文件的替换请求时,判断所述目标文件是否存在于目标文件***中;
本发明实施例中,所述目标文件存储于所述目标文件***中,优选的,所述目标文件***为所述分布式文件***,当接收到对目标文件的替换请求时,获取所述目标文件的带路径的文件名,判断所述目标文件是否存在于目标文件***中,并传递给所述目标文件***中的数据接入模块,所述数据接入模块将所述带路径的文件名传递给所述目标文件***中的信息管理模块,所述信息管理模块在文件信息表中查询带路径的文件名是否存在。
S102、若是,将目标文件的目标文件内容写入到目标条带中;
本发明实施例中,若所述目标文件存在于所述目标文件***中,将该带路径的文件名查询到的目标文件ID、返回给所述目标文件***中的数据接入模块,所述数据接入模块接收到文件的ID,所述目标文件存在。将目标文件的目标文件内容写入到目标条带中。
S103、若否,所述目标文件无缝替换失败。
本发明实施例中,若所述目标文件没有存在于所述目标文件***中,返回给数据接入模块查询失败,数据接入模块返回用户模块所述目标文件无缝替换失败。
S104、当接收到写入成功指令时,获取所述目标文件的目标文件ID;
本发明实施例中,将接收到写入成功指令时,获取所述目标文件ID,获取所述目标文件的内容的目标条带ID、目标位置ID和所述目标文件内容大小,并将其反馈给所述目标文件***中的信息管理模块;若写入失败,返回所述用户模块所述目标文件无缝替换失败。
S105、依据所述目标文件ID,确定与所述目标文件内容对应的原始文件内容,将所述原始文件内容的原始条带ID、原始位置ID和原始文件内容大小替换为所述目标文件内容的目标条带ID、目标位置ID和所述目标文件内容大小。
本发明实施例中,依据所述目标文件ID在所述目标文件***中查询与所述目标文件内容对应的原始文件内容,获取所述原始文件内容的原始条带ID、原始位置ID和所述原始文件内容大小,将所述原始文件内容的原始条带ID、原始位置ID和原始文件内容大小替换为所述目标文件内容的目标条带ID、目标位置ID和所述目标文件内容大小。其中,上述的替换过程执行的是原子操作。
本发明实施例中,还包括:更新所述目标条带中文件的数量和剩余存储空间,当所述目标条带ID、所述目标位置ID、所述目标文件内容大小写入到对应的文件成功后,更新所述目标条带的文件个数+1.剩余存储空间减去所述目标文件内容所占用的连续空间大小。
本发明实施例中,当所述原始条带ID、所述原始位置ID、所述原始文件内容大小替换出来后,也需要对存储所述原始文件内容的原始条带进行处理,将所述原始条带的删除文件数+1,文件个数-1,将已经删除的条带中的对应的文件数据延迟回收。
本发明公开了一种文件的无缝替换方法,包括:当接收到对目标文件的替换请求时,判断所述目标文件是否存在于目标文件***中;若是,将目标文件的目标文件内容写入到目标条带中;当接收到写入成功指令时,获取所述目标文件的目标文件ID;依据所述目标文件ID,确定与所述目标文件内容对应的原始文件内容,将所述原始文件内容的原始条带ID、原始位置ID和原始文件内容大小替换为所述目标文件内容的目标条带ID、目标位置ID和所述目标文件内容大小。上述的替换过程中,只替换了条带ID、位置ID和文件大小,并没有删除目标文件的原始文件内容,不存在用户访问该文件内容时出现文件访问失败的问题。
本发明实施例中,将目标文件的目标文件内容写入到目标条带中的方法流程如图2所示,包括步骤:
S201、选取可以用于存储所述目标文件内容的目标条带;
本发明实施例中,依据所述目标文件内容大小,其中,所述目标文件内容大小指所述目标文件内容需要的连续存储空间,向信息管理模块请求一个可以存储该文件内容大小的一个条带,并将所述目标文件内容大小传递给信息管理模块。其中,所述目标文件内容大小的计算方法如下:
连续块个数=(内容大小+内部数据块大小-1)÷内部数据块大小(取整数部分)
连续空间大小=连续块个数×内部数据块大小
将所述目标文件***的各个条带中选取剩余存储空间大于等于所述连续存储空间的条带作为所述目标条带,其中,当所述目标条带的存在对个时,可以依据顺序选取也可以随机选取,对所述目标调点的选取方式不作限制。
S202、获取所述目标条带ID和所述目标条带中各个数据块在对应磁盘的逻辑块号和所述目标位置ID;
本发明实施例中,在所述信息管理模块中获取所述目标条带的目标条带ID和所述目标条带中各个数据块在对应磁盘的逻辑块号和所述目标位置ID,其中,所述目标位置ID为数据块头中找到一个空的索引位置。
S203、依据所述目标条带ID,确定磁盘的连接地址;
本发明实施例中,通过所述目标条带ID获取包含所述目标条带的磁盘列表。通过磁盘列表获取对应磁盘的连接地址。并将所述目标条带ID、逻辑块号和该条带中的所有的磁盘地址集合返回给数据接入模块。
S204、依据所述连接地址将所述目标文件内容写入到对应磁盘中数据块号为所述逻辑块号且起始位置为所述目标位置ID内部数据块中。
本发明实施例中,数据接入模块接收到所述目标条带ID和磁盘地址集合。连接对应的磁盘,通过所述逻辑块号传递给磁盘,获取每一个磁盘中的索引信息。
优选的,还包括:每一个磁盘接收到指令,将对应逻辑块号对应的数据块头返回给数据接入模块,数据接入模块首先确认这些数据块头的信息是否一致,若不一致,标识该条带存在问题,需要进入条带整理的流程,然后向信息管理模块重新申请一个新的目标条带,然后进入到该流程获取磁盘中的所有数据块头进行比较,最后确认所有的数据块头信息完全一致。
将所述逻辑块号、所述目标位置ID和所述目标文件内容传递给对应的磁盘,每一个磁盘中将所述目标文件内容写入到这个数据块对应的空白的连续的内部数据块中,并将连续的内部数据块中的起始数据块写入到所述目标位置ID(即数据块头中对应的索引编号)的内部数据块编号上。将文件数据的大小写入到该索引位置的文件大小上。若所有操作完成,返回成功指令给所述数据接入模块。
本发明还提供了一种文件的读取方法,所述读取方法的执行流程如图3所示,包括步骤:
S301、当接收到对目标文件的读取请求时,获取所述目标文件的目标文件ID、磁盘连接地址、逻辑块号、目标条带ID和目标位置ID;
本发明实施例中,当接收到对目标文件的读取请求时,传给数据接入模块所述目标文件的带路径的文件名,所述数据接入模块将所述带路径的文件名传递给信息管理模块。所述信息管理模块接查询文件信息表,条带信息表、磁盘信息表。将所述目标文件ID、文件对应的条带对应的磁盘连接集合、逻辑块号、目标条带ID对应的目标位置ID查询出来。并将查询的结果返回给数据接入模块。
S302、在与所述目标条带ID对应的磁盘中查找数据块号为所述逻辑块号的目标数据块;
本发明实施例中,确定与所述目标条带ID对应的磁盘,数据接入模块连接对应的磁盘,查找数据块号为所述逻辑块号的目标数据块,并将逻辑块号和位置ID传递给信息管理模块。
S303、在所述目标数据块中以所述目标位置ID作为起始点读取所述目标文件。
本发明实施例中,获取对应的链接地址,依据所述连接地址在所述目标数据块中以所述目标位置ID作为起始点读取所述目标文件,找到所述目标位置ID对应的数据块头的对应的索引,通过该索引对应的内部块编号开始,可以读取对应文件大小的内容。磁盘模块将读取到的文件内容返回给数据接入模块,数据接入模块将文件内容返回给用户模块。
本发明公开了一种文件的读取方法,包括:当接收到对目标文件的读取请求时,获取所述目标文件的目标文件ID、磁盘连接地址、逻辑块号、目标条带ID和目标位置ID;在与所述目标条带ID对应的磁盘中查找数据块号为所述逻辑块号的目标数据块;在所述目标数据块中以所述目标位置ID作为起始点读取所述目标文件。上述的读取方法,只要获取到与所述目标文件对应的文件ID、条带ID、位置ID和文件大小信息就可以读取到所述目标文件的内容。
在文件读取过程中,当所述目标文件的内容被替换了,那么其对应的条带ID、位置ID、文件大小在原子的操作的情况下才发生更改。在更改的同时,没有其它任何操作。若A***在所述目标文件对应的原始条带ID、原始位置ID、原始文件内容大小被替换之前,B***先获取到了所述目标文件的原始条带ID、原始位置ID、原始文件内容大小,即读取了所述目标文件的原始文件内容;若A***是在B***获取上述信息之前旧替换了原始条带ID、原始位置ID和原始文件内容大小,那么B***就会读取到目标文件内容。由于替换过程是瞬间发生的,不会导致A、B之间的等待问题。也不会导致B***不停的尝试而导致***性能的问题。其中,原始条带ID、原始位置ID在信息管理模块中,需要保证原始文件内容不会被删除,在替换过程中只是将原始条带的ID和原始位置ID和所述目标文件的目标文件ID的关系断开了,并没有删除原始条带ID、原始位置ID上的文件内容。因此,可以在替换之前,读取的是原始文件内容,替换之后读取的是目标文件内容。
基于上述的无缝替换方法,本发明还提供了一种文件的无缝替换***所述替换***的结构框图如图4所示,包括:
判断模块401、写入模块402、第一获取模块403和替换模块404。
其中,
所述判断模块401,用于当接收到对目标文件的替换请求时,判断所述目标文件是否存在于目标文件***中;
所述写入模块402,用于若是,将目标文件的目标文件内容写入到目标条带中;
所述第一获取模块403,用于接收到写入成功指令时,获取所述目标文件的目标文件ID;
所述替换模块404,用于依据所述目标文件ID,确定与所述目标文件内容对应的原始文件内容,将所述原始文件内容的原始条带ID、原始位置ID和原始文件内容大小替换为所述目标文件内容的目标条带ID、目标位置ID和所述目标文件内容大小。
本发明公开了一种文件的无缝替换***,包括:当接收到对目标文件的替换请求时,判断所述目标文件是否存在于目标文件***中;若是,将目标文件的目标文件内容写入到目标条带中;当接收到写入成功指令时,获取所述目标文件的目标文件ID;依据所述目标文件ID,确定与所述目标文件内容对应的原始文件内容,将所述原始文件内容的原始条带ID、原始位置ID和原始文件内容大小替换为所述目标文件内容的目标条带ID、目标位置ID和所述目标文件内容大小。上述的替换过程中,只替换了条带ID、位置ID和文件大小,并没有删除目标文件的原始文件内容,不存在用户访问该文件内容时出现文件访问失败的问题。
本发明实施例中,所述写入模块402包括:
选取单元405、获取单元406、确定单元407和写入单元408。
其中,
所述选取单元405,用于选取可以用于存储所述目标文件内容的目标条带;
所述获取单元406,用于获取所述目标条带ID和所述目标条带中各个数据块在对应磁盘的逻辑块号和所述目标位置ID;
所述确定单元407,用于依据所述目标条带ID,确定磁盘的连接地址;
所述写入单元408,用于依据所述连接地址将所述目标文件内容写入到对应磁盘中数据块号为所述逻辑块号且起始位置为所述目标位置ID内部数据块中。
本发明实施例中,所述选取单元405包括:
计算子单元409和选取子单元410。
其中,
所述计算子单元409,用于计算所述目标文件内容需要的连续存储空间的;
所述选取子单元410,用于将所述目标文件***的各个条带中选取剩余存储空间大于等于所述连续存储空间的条带作为所述目标条带。
本发明实施例中,所述替换***还包括:更新模块411。
其中,
所述更新模块411,用于更新所述目标条带中文件的数量和剩余存储空间。
基于上述的文件读取方法,本发明还提供了一种文件的读取***,所述读取***的结构框图如图5所示,包括:
第二获取模块501、查找模块502和读取模块503。
其中,
所述第二获取模块501,用于当接收到对目标文件的读取请求时,获取所述目标文件的目标文件ID、磁盘连接地址、逻辑块号、目标条带ID和目标位置ID;
所述查找模块502,用于在与所述目标条带ID对应的磁盘中查找数据块号为所述逻辑块号的目标数据块;
所述读取模块503,用于在所述目标数据块中以所述目标位置ID作为起始点读取所述目标文件。
本发明公开了一种文件的读取方法,包括:当接收到对目标文件的读取请求时,获取所述目标文件的目标文件ID、磁盘连接地址、逻辑块号、目标条带ID和目标位置ID;在与所述目标条带ID对应的磁盘中查找数据块号为所述逻辑块号的目标数据块;在所述目标数据块中以所述目标位置ID作为起始点读取所述目标文件。上述的读取方法,只要获取到与所述目标文件对应的文件ID、条带ID、位置ID和文件大小信息就可以读取到所述目标文件的内容。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种文件的无缝替换方法、读取方法及相关***进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种文件的无缝替换方法,其特征在于,包括:
当接收到对目标文件的替换请求时,判断所述目标文件是否存在于目标文件***中;
若是,将目标文件的目标文件内容写入到目标条带中;
当接收到写入成功指令时,获取所述目标文件的目标文件ID;
依据所述目标文件ID,确定与所述目标文件内容对应的原始文件内容,将所述原始文件内容的原始条带ID、原始位置ID和原始文件内容大小替换为所述目标文件内容的目标条带ID、目标位置ID和所述目标文件内容大小。
2.根据权利要求1所述的方法,其特征在于,将目标文件的目标文件内容写入到目标条带中,包括:
选取可以用于存储所述目标文件内容的目标条带;
获取所述目标条带ID和所述目标条带中各个数据块在对应磁盘的逻辑块号和所述目标位置ID;
依据所述目标条带ID,确定磁盘的连接地址;
依据所述连接地址将所述目标文件内容写入到对应磁盘中数据块号为所述逻辑块号且起始位置为所述目标位置ID内部数据块中。
3.根据权利要求2所述的方法,其特征在于,选取可以用于存储所述目标文件内容的目标条带,包括:
计算所述目标文件内容需要的连续存储空间的;
将所述目标文件***的各个条带中选取剩余存储空间大于等于所述连续存储空间的条带作为所述目标条带。
4.根据权利要求1所述的方法,其特征在于,还包括:
更新所述目标条带中文件的数量和剩余存储空间。
5.一种文件的读取方法,其特征在于,包括:
当接收到对目标文件的读取请求时,获取所述目标文件的目标文件ID、磁盘连接地址、逻辑块号、目标条带ID和目标位置ID;
在与所述目标条带ID对应的磁盘中查找数据块号为所述逻辑块号的目标数据块;
在所述目标数据块中以所述目标位置ID作为起始点读取所述目标文件。
6.一种文件的无缝替换***,其特征在于,包括:
判断模块,用于当接收到对目标文件的替换请求时,判断所述目标文件是否存在于目标文件***中;
写入模块,用于若是,将目标文件的目标文件内容写入到目标条带中;
第一获取模块,用于接收到写入成功指令时,获取所述目标文件的目标文件ID;
替换模块,用于依据所述目标文件ID,确定与所述目标文件内容对应的原始文件内容,将所述原始文件内容的原始条带ID、原始位置ID和原始文件内容大小替换为所述目标文件内容的目标条带ID、目标位置ID和所述目标文件内容大小。
7.根据权利要求6所述的***,其特征在于,所述写入模块包括:
选取单元,用于选取可以用于存储所述目标文件内容的目标条带;
获取单元,用于获取所述目标条带ID和所述目标条带中各个数据块在对应磁盘的逻辑块号和所述目标位置ID;
确定单元,用于依据所述目标条带ID,确定磁盘的连接地址;
写入单元,用于依据所述连接地址将所述目标文件内容写入到对应磁盘中数据块号为所述逻辑块号且起始位置为所述目标位置ID内部数据块中。
8.根据权利要求7所述的***,其特征在于,所述选取单元包括:
计算子单元,用于计算所述目标文件内容需要的连续存储空间的;
选取子单元,用于将所述目标文件***的各个条带中选取剩余存储空间大于等于所述连续存储空间的条带作为所述目标条带。
9.根据权利要求6所述的***,其特征在于,还包括:
更新模块,用于更新所述目标条带中文件的数量和剩余存储空间。
10.一种文件的读取***,其特征在于,包括:
第二获取模块,用于当接收到对目标文件的读取请求时,获取所述目标文件的目标文件ID、磁盘连接地址、逻辑块号、目标条带ID和目标位置ID;
查找模块,用于在与所述目标条带ID对应的磁盘中查找数据块号为所述逻辑块号的目标数据块;
读取模块,用于在所述目标数据块中以所述目标位置ID作为起始点读取所述目标文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811593092.3A CN111367864B (zh) | 2018-12-25 | 2018-12-25 | 一种文件的无缝替换方法、读取方法及相关*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811593092.3A CN111367864B (zh) | 2018-12-25 | 2018-12-25 | 一种文件的无缝替换方法、读取方法及相关*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111367864A true CN111367864A (zh) | 2020-07-03 |
CN111367864B CN111367864B (zh) | 2024-07-23 |
Family
ID=71206111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811593092.3A Active CN111367864B (zh) | 2018-12-25 | 2018-12-25 | 一种文件的无缝替换方法、读取方法及相关*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111367864B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103558998A (zh) * | 2013-11-07 | 2014-02-05 | 华为技术有限公司 | 一种数据操作的方法和设备 |
CN104965768A (zh) * | 2014-01-23 | 2015-10-07 | Dssd股份有限公司 | 用于存储***中的服务感知数据放置的方法和*** |
CN105242879A (zh) * | 2015-09-30 | 2016-01-13 | 华为技术有限公司 | 一种数据存储方法以及协议服务器 |
JP2016032249A (ja) * | 2014-07-30 | 2016-03-07 | 京セラドキュメントソリューションズ株式会社 | 画像処理装置及び画像処理方法 |
CN108491216A (zh) * | 2018-03-05 | 2018-09-04 | 北京指掌易科技有限公司 | 一种Android***无感知应用安装升级的方法 |
CN108628541A (zh) * | 2017-03-22 | 2018-10-09 | 华为技术有限公司 | 一种文件存储的方法、装置及存储*** |
-
2018
- 2018-12-25 CN CN201811593092.3A patent/CN111367864B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103558998A (zh) * | 2013-11-07 | 2014-02-05 | 华为技术有限公司 | 一种数据操作的方法和设备 |
CN104965768A (zh) * | 2014-01-23 | 2015-10-07 | Dssd股份有限公司 | 用于存储***中的服务感知数据放置的方法和*** |
JP2016032249A (ja) * | 2014-07-30 | 2016-03-07 | 京セラドキュメントソリューションズ株式会社 | 画像処理装置及び画像処理方法 |
CN105242879A (zh) * | 2015-09-30 | 2016-01-13 | 华为技术有限公司 | 一种数据存储方法以及协议服务器 |
CN108628541A (zh) * | 2017-03-22 | 2018-10-09 | 华为技术有限公司 | 一种文件存储的方法、装置及存储*** |
CN108491216A (zh) * | 2018-03-05 | 2018-09-04 | 北京指掌易科技有限公司 | 一种Android***无感知应用安装升级的方法 |
Non-Patent Citations (2)
Title |
---|
SCOTT BRANDT 等: "Fusing data management services with file systems", 《PDSW \'09: PROCEEDINGS OF THE 4TH ANNUAL WORKSHOP ON PETASCALE DATA STORAGE》, 14 November 2009 (2009-11-14), pages 42, XP058220843, DOI: 10.1145/1713072.1713085 * |
宋振龙 等: "闪存阵列的可重构策略", 《国防科技大学学报》, vol. 37, no. 01, 28 February 2015 (2015-02-28), pages 8 - 13 * |
Also Published As
Publication number | Publication date |
---|---|
CN111367864B (zh) | 2024-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11032368B2 (en) | Data processing method, apparatus, and system | |
US7620698B2 (en) | File distribution system in which partial files are arranged according to various allocation rules associated with a plurality of file types | |
US7840536B1 (en) | Methods and apparatus for dynamic journal expansion | |
US7765189B2 (en) | Data migration apparatus, method, and program for data stored in a distributed manner | |
CN102541983B (zh) | 一种分布式文件***中多客户端缓存同步的方法 | |
US8943110B2 (en) | Method and system for managing data storage and access on a client device | |
US20140122542A1 (en) | Method And System For Managing Data Storage And Access On A Client Device | |
CN103647797A (zh) | 一种分布式文件***及其数据访问方法 | |
CN102779180A (zh) | 数据存储***的操作处理方法,数据存储*** | |
US9690796B2 (en) | Non-transitory computer-readable media storing file management program, file management apparatus, and file management method | |
US10803006B1 (en) | Persistent memory key-value store in a distributed memory architecture | |
EP1806668A2 (en) | System and method for managing log information for transaction | |
CN102739622A (zh) | 一种可扩展的数据存储*** | |
CN112334891A (zh) | 用于搜索服务器的集中式存储 | |
CN104917788A (zh) | 一种数据存储方法及装置 | |
CN102203737B (zh) | 多线程访问多副本的方法和装置 | |
CN111737052B (zh) | 分布式对象存储***及方法 | |
CN107133334B (zh) | 基于高带宽存储***的数据同步方法 | |
CN111367864A (zh) | 一种文件的无缝替换方法、读取方法及相关*** | |
EP2725477B1 (en) | Method and system for managing data storage and access on a client device | |
WO2021189312A1 (en) | Meta server crash recovery in object storage system using enhanced meta structure | |
WO2021189314A1 (en) | Data server crash recovery in object storage system using enhanced meta structure | |
CN104572754A (zh) | 一种数据库***、数据库***访问方法及装置 | |
WO2021189315A1 (en) | Proxy server crash recovery in object storage system using enhanced meta structure | |
WO2020024590A1 (en) | Persistent memory key-value store in a distributed memory architecture |
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 | ||
GR01 | Patent grant |