CN110247973B - 数据读取、写入的方法及文件网关 - Google Patents
数据读取、写入的方法及文件网关 Download PDFInfo
- Publication number
- CN110247973B CN110247973B CN201910522168.1A CN201910522168A CN110247973B CN 110247973 B CN110247973 B CN 110247973B CN 201910522168 A CN201910522168 A CN 201910522168A CN 110247973 B CN110247973 B CN 110247973B
- Authority
- CN
- China
- Prior art keywords
- file
- data
- written
- logic block
- read
- 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
Images
Classifications
-
- 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/11—File system administration, e.g. details of archiving or snapshots
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据读取的方法,包括:确定待读取文件所属的逻辑块;其中,每个所述逻辑块对应所述待读取文件的数据的唯一预定范围;分别判断每个所述逻辑块对应范围内的数据,是否存储在本地存储器中;若判断出所述逻辑块对应范围内的数据未存储在所述本地存储器中,则从对象存储中获取所述逻辑块对应范围内的数据,并将所述逻辑块对应范围内的数据写入所述本地存储器中的所述逻辑块对应范围内;在所述本地存储器存储有所述待读取文件的完整数据后,对存储在所述本地存储器中的所述待读写文件进行读操作或写操作。本发明还相应地提供了一种数据写入的方法,以及与两种方法相对应的文件网关。
Description
技术领域
本发明涉及数据读写技术领域,特别涉及一种数据读取、写入的方法及文件网关。
背景技术
对象存储也叫做基于对象的存储,是一种通过超文本传输协议(HyperTextTransfer Protocol,HTTP)访问的可以存储海量对象的分布式存储***。但是,通过HTTP是无法修改已经上传的对象,只能通过下载整个对象然后进行修改后,并再次上传到对象存储中,替换原先的对象。显然,这样的读写方式非常的不方便。
为了便于对数据的读写,在现有技术中,通过文件网关先将文件分割成多块,即分成多个小文件,然后再将每个小文件单独作为一个对象,存储到对象存储中。从而就可以通过文件网关以块为单位对数据进行读写,避免了需要全量对象下载后才能读写的问题。但是,将文件分割为多块后,只能通过文件***网关对文件进行访问,而通过HTTP接口则无法识别出文件。并且,还会在本地存储中产生大量的小文件,影响设备的性能,而且还需要维护一个高性能的数据库来记录这种块到文件的对应关系。
发明内容
基于上述现有技术的不足,本发明提出一种数据读写的方法及文件网关以在不将文件进行物理分割的情况下,使得对于对象存储中的数据的读写更加的便捷。
为了实现上述目的,本发明提供了以下技术方案:
本发明第一方面提供了一种数据读取的方法,包括:
确定待读取文件所属的逻辑块;其中,每个所述逻辑块对应所述待读取文件的数据的唯一预定范围;
分别判断每个所述逻辑块对应范围内的数据,是否存储在本地存储器中;
若判断出所述逻辑块对应范围内的数据未存储在所述本地存储器中,则从对象存储中获取所述逻辑块对应范围内的数据,并将所述逻辑块对应范围内的数据写入所述本地存储器中的所述逻辑块对应范围内;
在所述本地存储器存储有所述待读取文件的完整数据后,从所述本地存储器中读取所述待读取文件。
可选地,在上述的数据读取的方法中,所述确定待读取文件所属的逻辑块,包括:
确定所述待读取文件的存储信息;
根据所述待读取文件的存储信息,计算所述待读取文件所属的逻辑块。
可选地,在上述的数据读取的方法中,所述存储信息包括所述待读取文件的起始偏移量及文件大小,所述根据所述待读取文件的存储信息,计算所述待读取文件所属的逻辑块,包括:
将所述待读取文件的起始偏移量和单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待读取文件所属的首个逻辑块;将所述待读取文件的起始偏移量和所述文件大小的和,与所述单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待读取文件所属的最后一个逻辑块;
由所述待读取文件所属的首个逻辑块及最后一个逻辑块,确定出所述待读取文件所属的所有逻辑块。
可选地,在上述的数据读取的方法中,所述分别判断每个所述逻辑块对应范围内的数据,是否存储在本地存储器中,包括:
根据每个所述逻辑块的偏移量及大小,确定每个所述逻辑块对应的范围;
调用***调用接口分别从所述本地存储器中获取每个所述逻辑块对应范围内的数据;
其中,若无法从所述本地存储器中获取所述逻辑块对应范围内的数据,则判断出所述逻辑块对应范围内的数据,未存储在所述本地存储器中。
可选地,在上述的数据读取的方法中,所述从所述本地存储器中读取所述待读取文件,包括:
根据所述待读取文件的存储信息,确定所述待读取文件的数据在所述本地存储器中的存储范围;
从所述本地存储器中的存储范围内读取数据,并将所读取的数据返回应用服务器。
本发明第二方面提供了一种数据写入的方法,包括:
确定待写文件所属的逻辑块;其中,每个所述逻辑块对应所述待写文件的数据的唯一预定范围;
分别判断每个所述逻辑块对应范围内的数据,是否存储在本地存储器中;
若判断出所述逻辑块对应范围内的数据未存储在所述本地存储器中,则从对象存储中获取所述逻辑块对应范围内的数据,并将所述逻辑块对应范围内的数据写入所述本地存储器中的所述逻辑块对应范围内;
在所述本地存储器存储有所述待写文件的完整数据后,将待写入所述待写文件的数据写入存储在所述本地存储器的所述待写文件中。
可选地,在上述的数据写入的方法中,所述确定待写文件所属的逻辑块,包括:
确定所述待写文件的存储信息;
根据所述待写文件的存储信息,计算所述待写文件所属的逻辑块。
可选地,在上述的数据写入的方法中,所述存储信息包括所述待写文件的起始偏移量及文件大小,所述根据所述待写文件的存储信息,计算所述待写文件所属的逻辑块,包括:
将所述待写文件的起始偏移量和单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待写文件所属的首个逻辑块;将所述待写文件的起始偏移量和所述文件大小的和,与所述单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待写文件所属的最后一个逻辑块;
由所述待写文件所属的首个逻辑块及最后一个逻辑块,确定出所述待写文件所属的所有逻辑块。
可选地,在上述的数据写入的方法中,所述分别判断每个所述逻辑块对应范围内的数据,是否存储在本地存储器中,包括:
根据每个所述逻辑块的偏移量及大小,确定每个所述逻辑块对应的范围;
调用***调用接口分别从所述本地存储器中获取每个所述逻辑块对应范围内的数据;
其中,若无法从所述本地存储器中获取所述逻辑块对应范围内的数据,则判断出所述逻辑块对应范围内的数据,未存储在所述本地存储器中。
可选地,在上述的数据写入的方法中,所述将待写入所述待写文件的数据写入存储在所述本地存储器的所述待写文件中,包括:
根据所述待写文件的存储信息,确定所述待写文件的数据在所述本地存储器中的存储范围;
将待写入所述待写文件中的数据,写入所述本地存储器中的存储范围内,并将所述写入数据后的所述待写文件的数据同步回所述对象存储。
本发明第三方面提供了一种文件网关,包括:
第一确定单元,用于确定待读取文件所属的逻辑块;其中,每个所述逻辑块对应所述待读取文件的数据的唯一预定范围;
第一判断单元,用于分别判断每个所述逻辑块对应范围内的数据,是否存储在本地存储器中;
第一获取单元,用于所述第一判断单元判断出所述逻辑块对应范围内的数据未存储在所述本地存储器中,从对象存储中获取所述逻辑块对应范围内的数据,并将所述逻辑块对应范围内的数据写入所述本地存储器中的所述逻辑块对应范围内;
读取单元,用于在所述本地存储器存储有所述待读取文件的完整数据后,从所述本地存储器中读取所述待读取文件。
可选地,在上述的文件网关中,所述第一确定单元,包括:
第一确定子单元,用于确定所述待读取文件的存储信息;
第一计算单元,用于根据所述待读取文件的存储信息,计算所述待读取文件所属的逻辑块。
可选地,在上述的文件网关中,其特征在于,所述存储信息包括所述待读取文件的起始偏移量及文件大小,所述第一计算单元,包括:
第一计算子单元,用于将所述待读取文件的起始偏移量和单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待读取文件所属的首个逻辑块;将所述待读取文件的起始偏移量和所述文件大小的和,与所述单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待读取文件所属的最后一个逻辑块;
第二确定单元,用于由所述待读取文件所属的首个逻辑块及最后一个逻辑块,确定出所述待读取文件所属的所有逻辑块。
可选地,在上述的文件网关中,所述第一判断单元,包括:
第三确定单元,用于根据每个所述逻辑块的偏移量及大小,确定每个所述逻辑块对应的范围;
第一判断子单元,用于调用***调用接口分别从所述本地存储器中获取每个所述逻辑块对应范围内的数据;其中,若无法从所述本地存储器中获取所述逻辑块对应范围内的数据,则判断出所述逻辑块对应范围内的数据,未存储在所述本地存储器中。
可选地,在上述的文件网关中,所述读取单元,包括:
第四确定单元,用于根据所述待读取文件的存储信息,确定所述待读取文件的数据在所述本地存储器中的存储范围;
读取子单元,用于从所述本地存储器中的存储范围内读取数据,并将所读取的数据返回应用服务器。
本发明第四方面提供了另一种文件网关,包括:
第五确定单元,用于确定待写文件所属的逻辑块;其中,每个所述逻辑块对应所述待写文件的数据的唯一预定范围;
第二判断单元,用于分别判断每个所述逻辑块对应范围内的数据,是否存储在本地存储器中;
第二获取单元,用于在所述第二判断单元判断出所述逻辑块对应范围内的数据未存储在所述本地存储器中,从对象存储中获取所述逻辑块对应范围内的数据,并将所述逻辑块对应范围内的数据写入所述本地存储器中的所述逻辑块对应范围内;
写入单元,用于在所述本地存储器存储有所述待写文件的完整数据后,将待写入所述待写文件的数据写入存储在所述本地存储器的所述待写文件中。
可选地,在上述的文件网关中,所述第五确定单元,包括:
第五确定子单元,用于确定所述待写文件的存储信息;
第二计算单元,用于根据所述待写文件的存储信息,计算所述待写文件所属的逻辑块。
可选地,在上述的文件网关中,所述存储信息包括所述待写文件的起始偏移量及文件大小,所述第二计算单元,包括:
第二计算子单元,用于将所述待写文件的起始偏移量和单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待写文件所属的首个逻辑块;将所述待写文件的起始偏移量和所述文件大小的和,与所述单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待写文件所属的最后一个逻辑块;
第六确定单元,用于由所述待写文件所属的首个逻辑块及最后一个逻辑块,确定出所述待写文件所属的所有逻辑块。
可选地,在上述的文件网关中,所述第二判断单元,包括:
第七确定单元,用于根据每个所述逻辑块的偏移量及大小,确定每个所述逻辑块对应的范围;
第二判断子单元,用于调用***调用接口分别从所述本地存储器中获取每个所述逻辑块对应范围内的数据;其中,若无法从所述本地存储器中获取所述逻辑块对应范围内的数据,则判断出所述逻辑块对应范围内的数据,未存储在所述本地存储器中。
可选地,在上述的文件网关中,所述写入单元,包括:
第八确定单元,用于根据所述待写文件的存储信息,确定所述待写文件的数据在所述本地存储器中的存储范围;
写入子单元,用于将待写入所述待写文件中的数据,写入所述本地存储器中的存储范围内,并将所述写入数据后的所述待写文件的数据同步回所述对象存储。
本发明第五方面还提供了一种文件网关,包括存储器和处理器;其中:
所述存储器同于存储计算机指令;
所述处理器用于执行所述存储器存储的计算机指令,具体执行上述的数据读取的方法,或者,执行上述的数据写入的方法。
本发明提供的数据读取的方法中,针对每一个待读取文件,确定待读取文件所属的逻辑块,且每一个逻辑块对应待读取文件的数据的唯一预定范围,其相当于将待读取文件视为是由多个逻辑块所对应的数据组成的文件,而不需要在物理上将文件分割为多个小块。然后,针对每个逻辑块,分别判断其对应范围内的数据是否存储在本地存储器中。若逻辑块对应范围内的数据未存储在缓存器中,则从对象存储中获取逻辑块对应范围内的数据,也不需要获取整个文件,从而提高了数据读取的效率。然后将获取的数据写入本地存储器中,并在本地存储器存储有所述待读取文件的完整数据后,直接从存储器中随机读取待读取文件,不用再受对象存储的读取特性的限制。从而在不将文件在物理上进行分块的前提下,以块为单位来实现对文件的读取,既方便了数据的读取,又避免了将文件进行物理分块所存在的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的文件网关的应用场景示意图;
图2为本发明另一实施例提供的一种数据读取的方法的流程图;
图3为本发明另一实施例提供的一种数据读取的方法的流程图;
图4为本发明另一实施例提供的一种数据读取的方法的流程图;
图5为本发明另一实施例提供的一种数据读取的方法的流程图;
图6为本发明另一实施例提供的一种数据写入的方法的流程图;
图7为本发明另一实施例提供的一种数据写入的方法的流程图;
图8为本发明另一实施例提供的一种数据写入的方法的流程图;
图9为本发明另一实施例提供的一种数据写入的方法的流程图;
图10为本发明实施例提供的一种文件网关的结构示意图;
图11为本发明另一实施例提供的一种文件网关的结构示意图;
图12为本发明另一实施例提供的一种文件网关的结构示意图;
图13为本发明另一实施例提供的一种文件网关的结构示意图;
图14为本发明另一实施例提供的一种文件网关的结构示意图;
图15为本发明另一实施例提供的一种文件网关的结构示意图;
图16为本发明另一实施例提供的一种文件网关的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种数据读写的方法及文件网关,以在不将文件进行物理分割的情况下,使得对于对象存储中的数据的读写更加的便捷。
首先需要说明的是,所述文件网关的在实际应用场景中,如图1所示,文件网关102相当于对象存储103和应用服务器101的中间件,通过文件网关102可以实现对象存储与应用服务器之间的数据交互。应用服务器101通过文件网关102将数据上传到对象存储103中,或通过文件网关102从对象存储103中访问数据。其中,应用服务器101通过文件网关102所提供共享文件接口与文件网关102进行连接。
文件网关102并不对文件进行物理上的分割,所以文件网关102本身所存储的文件是完整的文件。文件网关102是将一定大小的数据所对应的范围定义为一个逻辑块,然后确定文件所属的逻辑块。并且,每一个文件都有着相应的所属的多个逻辑块。其中,文件网关102可以利用本地磁盘作为本地存储器104,即利用本地磁盘作为自身缓存器。本地存储器104,主要用于缓存应用服务器通过文件网关上传到对象存储中的数据,以及文件网关从对象存储中所获取的数据等。
基于上述应用场景,本发明实施例提供了一种数据读取的方法,所述方法由所述文件网关执行,如图2所示,所述数据读取的方法包括:
S201、确定待读取文件所属的逻辑块。
其中,每个所述逻辑块对应所述待读取文件的数据的唯一预定范围。
需要说明的是,所述待读取文件指的是应用服务器所要去读取的文件,但还未进行读取的文件。
所述逻辑块则指的在逻辑上将文件的数据按照单个逻辑块的块大小划分为多个分块后的每一个分块。其中,每个逻辑块的块大小为数据划分范围的大小。且逻辑块的块大小等同于数据的预定范围。并且,所述逻辑块的块大小可以根据实际的情况,进行相应的设置。因此,每一个分块即每一个逻辑块都对应着被划分文件的一部分数据。其中,对数据在逻辑上进行分块,也可以简单的理解为象征性的进行分块,仅将一定数据范围内的数据定义一个逻辑块,从而使得每个文件都对应着多个分块,而并不是将文件在物理上进行分块,即将大文件分割为多个小的文件。
可选地,在本步骤中,将待读取文件划分为同样大小的逻辑块,单个逻辑块的预设块大小是统一的,并且是预先设置好的,通常为10MB。每个逻辑块的大小相同,是为了更好的进行划分以及后续更快的处理每个逻辑块对应的数据。
例如,文件网关的本地存储器中存储有一文件大小为100MB的A文件。若将每20MB的数据定义为一个逻辑块,则该A文件就对应着5个逻辑块,即这5个逻辑块为A文件所属的逻辑块。但并未将文件进行物理上的分割,文件依旧还是完整的。所以,逻辑块与文件仅是一个对应的关系,而并没有对文件进行物理上的分割操作。
具体的,本步骤中,文件网关可以先获取所述待读取文件的存储位置信息。然后,根据每个逻辑块的块大小确定每个逻辑块所对应的存储位置,最后根据每个逻辑块所对应的存储位置以及所述待读取文件所在的存储位置信息,就可以确定所述待读取文件所属的逻辑块。
相对比于现有技术中,通过文件网关将文件进行物理分块后,再分别上传到对象存储中不同。本步骤中,是通过在逻辑上定义分块,然后由文件网关确定待读取文件所属的逻辑块,即确定待读取文件属于哪些逻辑块的范围内。也就是说,不需要在物理上将文件进行分割,整个文件依旧是完整的文件。由于未将文件在物理上进行分割,所以用户依旧可以直接通过HTTP协议将整个文件上传到对象存储中,也可以通过文件网关将整个文件上传到对象存储中。同理,用户依旧可以通过HTTP直接访问,已经上传到对象存储中的整个文件,而不会出现通过HTTP无法识别文件的问题,即不用同现有技术一样,仅限于使用文件网关才能访问对象存储中的数据。因此,本发明实施例,既能实现以块为单位对数据进行读取,又避免了物理分块所带来的问题。
可选地,本发明另一实施例中,所述步骤S201的一种实施方式,如图3所示,包括:
S301、确定待读取文件的存储信息。
其中,待读取文件的存储信息,即为待读取文件中的数据在文件网关的存储位置的信息。具体的,确定的待读取文件的存储信息可以是待读取文件的起始偏移量和结束偏移量,也可以是待读取文件的起始偏移量和文件大小。当然,也可以是其他可以准确定位待读取文件中的数据的存储位置的信息。
需要说明的是,偏移量指的是存储单元的实际地址与其所在段的段地址之间的距离。也就是说,内存中存储数据的方式是:一个存储数据的实际地址=段首地址+偏移量。所以,一个文件的起始偏移量可以简单的理解为一个文件的起始数据的相对存储位置,文件的结束偏移量则为一个文件的结束数据的相对存储位置。因此通过待读取文件的起始偏移量和结束偏移量,可以确定整个待读取文件的存储位置。而文件起始偏移量加上文件的大小,就等于文件结束偏移量,所以根据待读取文件的起始偏移量及文件大小,也可以确定整个待读取文件的存储位置。
S302、根据所述待读取文件的存储信息,计算所述待读取文件所属的逻辑块。
由于,根据待读取文件存储信息,可以确定整个待读取文件的存储位置,再加上根据单个逻辑块的大小可以确定每个逻辑块的存储位置,所以根据待读取文件的存储信息及单个逻辑块的大小,可以计算得到待读取文件所属的每一个逻辑块。
可选地,本发明另一实施例中,所述存储信息为所述待读取文件的起始偏移量及文件大小。其中,步骤S302的一种实施方式,如图4所示,具体包括:
S401、将所述待读取文件的起始偏移量和单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待读取文件所属的首个逻辑块;将所述待读取文件的起始偏移量和文件大小的和,与所述单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待读取文件所属的最后一个逻辑块。
其中,所述待读取文件的起始偏移量和单个逻辑块的预设块大小做除法计算,所得计算结果取整,以及所述待读取文件的起始偏移量和文件大小的和,与所述单个逻辑块的预设块大小做除法计算,所得计算结果取整可以是在所得计算结果存在小数时,只取所得计算结果的整数部分,此时若所得计算结果小于1则,取整后的结果为0;也可以是在所得结果不是整数时,将所得计算结果向前进一,进行取整。
具体的,当将所有逻辑块的第一个逻辑块定义为第0个逻辑块时,在所得结果存在小数时,只取结果的整数;当将所有逻辑块的第一个逻辑块定义为第1个逻辑块时,在所得结果不是整数时,将所得结果向前进一进行取整。目的是为了保证能得到所述待读取文件所属的所有的逻辑块,即保证计算得到的所有逻辑块中的每个逻辑块中都包含有待读取文件的数据,且计算所得的所有逻辑块相结合,包含有整个待读取文件的数据。
在本发明实施例中,根据待读取文件的起始偏移以及文件大小来确定待读取文件所属的逻辑块的。而所述待读取文件所属的首个逻辑块指的是待读取文件所属的逻辑块中位置排列第一的逻辑块,即待读取文件所属逻辑块中的开始逻辑块。而最后一个逻辑块,则指的是待读取文件所属的逻辑块中位置排列在最后的逻辑块,即待读取文件所述逻辑块中的结束逻辑块。
例如,待读取文件的起始偏移量为95MB,文件大小为50MB,则就可以确定待读取文件存储在偏移量为95MB至偏移量为145MB的区间内,若单个逻辑块的大小为10MB。则将起始偏移量除于单个逻辑块大小,并取整数得到10。所以,所述待读取文件所属的第一个逻辑块为第10个逻辑块。同样,将起始偏移量加上文件大小的和,除于预设的单个逻辑块的大小,并取整数得到15,即所述待读取文件所属的最后一个逻辑块为第15个逻辑块。所以,待读取文件所属的逻辑块为第10个逻辑块到第15个逻辑块。
S402、由所述待读取文件所属的首个逻辑块及最后一个逻辑块,确定出所述待读取文件所属的所有逻辑块。
确定了所述待读取文件所属的首个逻辑块及最后一个逻辑块,显然处于第一个逻辑块到最后一个逻辑块之间的逻辑块也同样是所述待读取文件所属的逻辑块。也就能直接确定出待读取文件所属的所有逻辑块。
例如,在上述例子中确定了待读取文件的第一个逻辑为第10个逻辑块,最后一个逻辑块为第15个逻辑块,则第10、11、12、13、14、15个逻辑块就是待读取文件所属的所有逻辑块。
当然,这只是其中一种可选的计算待读取文件的所属逻辑块的方式,其他能计算出待读取文件所述逻辑块的方式,同样属于本发明的保护范畴。例如,根据待读取文件的起始偏移量和结束偏移量,直接只对待读取文件进行划分,即从待读取文件的起始偏移量处开始进行逻辑块的划分。同样这样的方式,也同样能确定待读取文件所属的逻辑块。
S202、分别判断每个所述逻辑块对应范围内的数据,是否存储在本地存储器中。
其中,所述本地存储器,可以利用本地磁盘来充当。
由上述可知:对于每个逻辑块都是对应着所述待读取文件的预定范围的数据。但是,还需要说明的是:对于每个逻辑块所对应范围内的数据,可能已经存储在本地存储器中,也可能未存储在本地存储器中。若逻辑块对应范围内的数据,先前是经过文件网关上传到对象存储中,或是之前通过文件网关读取过该逻辑块对应范围内的数据,则该逻辑块对应范围内的数据都会被缓存在本地存储器中。但是,本地存储器只是缓存数据,所以若是数据存储在本地存储器中时间过长或本地存储器缓存数据过多等情况时,先前缓存的数据也有可能被删除。若该逻辑块对应的数据是通过HPPT直接整个文件上传到对象存储服务中的,并且从未通过文件网关读取过该逻辑块对应范围内的数据,则本地存储器中肯定没有存储有该逻辑块对应范围内的数据。
因此,需要分别判断每个所述逻辑块对应范围内的数据,是否存储在本地存储器中。若所述逻辑块对应范围内的数据存储在本地存储器中,则就不用从对象存储中获取数据,若所述逻辑块对应范围内的数据未存储在本地存储器中,则只需要从对象存储中获取该逻辑块对应范围内的数据,不需要获取整个待读取文件,从而提高读取的效率。
可选地,本发明的另一实施例中,所述步骤S202的一种具体实施方式,包括:
S501、根据每个所述逻辑块的偏移量及大小,确定每个所述逻辑块对应的范围。
具体的,根据待读取文件的起始偏移量,以单个逻辑块的大小,就可以得到每个逻辑块对应的起始偏移量,再根据每个逻辑块的大小就可以确定逻辑块所对应的范围,从而确定逻辑块对应范围内的数据,从而可以准确对每个逻辑块对应范围内的数据进行判断。
S502、调用***调用接口分别从所述本地存储器中获取每个所述逻辑块对应范围内的数据。
其中,若无法从所述本地存储器中获取所述逻辑块对应范围内的数据,则判断出所述逻辑块对应范围内的数据,未存储在所述本地存储器中。
需要说明的是,***调用接口指的是操作***所支持的可用于获取数据的接口。并且该接口是一种操作***本身自带的接口,无需进行接口的配置,可直接进行调用。
本步骤是通过利用***调用接口来获取数据的方法去分别判断每个所述逻辑块对应范围内的数据是否存储在本地中。当然,只是其中的一种可选的判断方式,其他的同样能判断出所述逻辑块对应范围内的数据是否存储在本地存储器中的方式,也属于本发明的范畴。例如,文件网关通过调用可进行数据查找的接口在本地存储器中查找所述逻辑块对应范围内的数据,若能查找到所述逻辑块对应范围内的数据,则判断出所述逻辑块对应范围内的数据存储在本地存储器中,否则,则判断出所述逻辑块对应范围内的数据未存储在本地存储器中。
还需要说明的是,若步骤S502中,调用***调用接口,无法从本地存储器中获取到逻辑块对应范围内的数据,则说明该逻辑块对应范围内的数据未存储于本地存储器中。并且,在步骤S202中,若判断出所述逻辑块对应范围内的数据未存储在所述本地存储器中,则需要执行步骤S203。因此,在本具体实施方式中,步骤S502中的执行结果是:调用***调用接口,无法从本地存储器中获取到逻辑块对应范围内的数据,则执行的步骤S503等同于步骤S203。
S203、从对象存储中获取所述逻辑块对应范围内的数据,并将所述逻辑块对应范围内的数据写入所述本地存储器中的所述逻辑块对应范围内。
需要说明的是,对象存储是虽然不支持修改已上传的对象,但是支持数据的部分读取。所以,通过逻辑块对应范围内的数据的偏移量及大小,文件网关能准确的从对象存储中获取逻辑块对应范围内的数据。并将所述逻辑块对应范围内的数据写入所述本地存储器中的所述逻辑块对应范围内,最终在本地存储器中构成一个完整的待读取文件。
还需要说明的是,在所述本地存储器存储有所述待读取文件的完整数据后,即在待读取文件所述的每个逻辑块对应范围内的数据都已确定存储在本地存储器中后,执行步骤S204。
S204、从所述本地存储器中读取所述待读取文件。
需要说明的是,因为文件网关支持随机读取,所以在本地存储器存储有所述待读取文件的完整数据后,就可以通过文件网关从本地存储器中随机读取待读取文件的任意部分的数据。
可选地,本申请的另一实施例中,步骤S204中的一种实施方式,包括:
根据所述待读取文件的存储信息,确定所述待读取文件的数据在所述本地存储器中的存储范围;然后从所述本地存储器中的存储范围内读取数据,并将所读取的数据返回应用服务器。
具体的,根据所述待读取文件的存储信息,如待读取文件的起始偏移量及文件大小,来确定所述待读取文件的数据在所述本地存储器中的存储范围,然后从确定的存储范围读取数据,即可读取到所述待读取文件的数据。由于,是应用服务器通过文件网关来访问所述待读取文件,所以文件网关从所述本地存储器中的存储范围内读取数据后,需将所读取的数据返回应用服务器。
本发明提供的数据读取的方法,在逻辑上将待读取文件,视为是由多个逻辑块所对应的数据组成的文件,而不需要在物理上将文件分割为多个小块。针对每一个待读取文件,先确定待读取文件所属的逻辑块。然后,针对每个逻辑块,分别判断其对应范围内的数据是否存储在本地存储器中。若逻辑块对应范围内的数据存储在缓存器中,则说明不用再去获取该逻辑块对应的数据,若逻辑块对应范围内的数据未存储在缓存器中,则只需要从对象存储中获取该逻辑块对应范围内的数据,而不需要获取整个文件,然后将获取的数据写入本地存储器中,实现了以块为单位进行操作,从而提高了数据读取的效率。并在本地存储器存储有所述待读取文件的完整数据后,就可以不用受限于对象存储的读取限制,而从存储器中随机读取待读取文件。从而在不将文件在物理上进行分块的前提下,以块为单位来实现对文件的读取,既方便了数据的读取,又避免了将文件进行物理分块所存在的问题。
同样基于上述实施例的应用场景,本发明另一实施例提供了一种数据写入的方法,如图6所示,所述方法包括:
S601、确定待写文件所属的逻辑块。
其中,每个所述逻辑块对应所述待写文件的数据的唯一预定范围。
需要说明的是,待写文件指的是应用服务器通过文件网关所要写入数据的文件。其中,将数据写入待写文件可以是单纯地增加新的数据到待写文件中,也可以对待文件的数据进行修改,将待写文件的部分数据删除,然后写入需要修改的数据。
具体的,步骤S601的具体实现过程可以参照上述数据读取的方法实施例中的步骤S201,此处不再赘述。
可选地,本发明的另一实施例中,所述步骤S602的一种实施方式,如图7所示,包括:
S701、确定所述待写文件的存储信息。
具体的,步骤S701的具体实现过程参见上述数据读取的方法实施例中的步骤S301,此处不再赘述。
S702、根据所述待写文件的存储信息,计算所述待写文件所属的逻辑块。
具体的,步骤S702的具体实现过程参见上述数据读取的方法实施例中的步骤S302,此处不再赘述。
可选地,本发明的另一实施例中,所述待写文件的存储信息包括:所述待写文件的起始偏移量及文件大小。其中,步骤S702的一种具体实施方式,如图8所示,包括:
S801、将所述待写文件的起始偏移量和单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待写文件所属的首个逻辑块;将所述待写文件的起始偏移量和所述文件大小的和,与所述单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待写文件所属的最后一个逻辑块。
具体的,步骤S801的具体实现过程参见上述数据读取的方法实施例中的步骤S401,此处不再赘述。
S802、由所述待写文件所属的首个逻辑块及最后一个逻辑块,确定出所述待写文件所属的所有逻辑块。
具体的,步骤S802的具体实现过程参见上述数据读取的方法实施例中的步骤S402,此处不再赘述。
S602、分别判断每个所述逻辑块对应范围内的数据,是否存储在本地存储器中。
具体的,步骤S602的具体实现过程参见上述数据读取的方法实施例中的步骤S202,此处不再赘述。
可选地,本发明的另一实施例中,步骤S602的一种实施方式,如图9所示,包括:
S901、根据每个所述逻辑块的偏移量及大小,确定每个所述逻辑块对应的范围。
具体的,步骤S901的具体实现过程参见上述数据读取的方法实施例中的步骤S501,此处不再赘述。
S902、调用***调用接口分别从所述本地存储器中获取每个所述逻辑块对应范围内的数据。
其中,若无法从所述本地存储器中获取所述逻辑块对应范围内的数据,则判断出所述逻辑块对应范围内的数据,未存储在所述本地存储器中。
具体的,步骤S902的具体实现过程参见上述数据读取的方法实施例中的步骤S502,此处不再赘述。
还需要说明的是,若步骤S902中,调用***调用接口,无法从本地存储器中获取到逻辑块对应范围内的数据,则说明该逻辑块对应范围内的数据未存储于本地存储器中。并且,在步骤S602中,若判断出所述逻辑块对应范围内的数据未存储在所述本地存储器中,则需要执行步骤S603。因此,在本具体实施方式中,步骤S902中的执行结果是:调用***调用接口,无法从本地存储器中获取到逻辑块对应范围内的数据,则执行的步骤S903等同于步骤S603。
S603、从对象存储中获取所述逻辑块对应范围内的数据,并将所述逻辑块对应范围内的数据写入所述本地存储器中的所述逻辑块对应范围内。
具体的,步骤S603的具体实现过程参见上述数据读取的方法实施例中的步骤S203,此处不再赘述。
还需要说明的是,在所述本地存储器存储有所述待写文件的完整数据后,即在待写文件所述的每个逻辑块对应范围内的数据都已确定存储在本地存储器中后,执行步骤S604。
S604、将待写入所述待写文件的数据写入存储在所述本地存储器的所述待写文件中。
其中,文件网关从应用服务器获取待写入所述待写文件的数据。
需要说明的是,因为文件网关支持随机写入,所以在本地存储器存储有所述待写文件的完整数据后,就可以通过文件网关将待写入所述待写文件的数据写入存储在所述本地存储器的所述待写文件中。从而实现对待写入文件的修改。
可选地,本发明的另一实施例中,步骤S605的一种实施方式,具体为:根据所述待写文件的存储信息,确定所述待写文件的数据在所述本地存储器中的存储范围,然后将待写入所述待写文件中的数据,写入所述本地存储器中的存储范围内,并将所述写入数据后的所述待写文件的数据同步回所述对象存储。
具体的,根据所述待写文件的存储信息,如待写文件的起始偏移量及文件大小,来确定所述待写文件的数据在所述本地存储器中的存储范围,然后从确定的存储范围读取数据,即可将数据写入到所述待写文件中。由于,对象存储不支持对已上传的文件进行修改,所以可以通过文件网关来实现对文件的修改,所以文件网关在将待写入所述待写文件的数据写入存储在所述本地存储器的所述待写文件中后,需将所述写入数据后的所述待写文件的数据同步回所述对象存储,即需将所述写入数据后的所述待写文件再次上传到对象存储中,替换原先的待写文件。
本发明提供的数据写入的方法中,针对每一个待写文件,确定待写文件所属的逻辑块,且每一个逻辑块对应待写文件的数据的唯一预定范围,其相当于将待写文件视为是由多个逻辑块所对应的数据组成的文件,而不需要在物理上将文件分割为多个小块。然后,针对每个逻辑块,分别判断其对应范围内的数据是否存储在本地存储器中。若逻辑块对应范围内的数据未存储在缓存器中,则从对象存储中获取逻辑块对应范围内的数据,也不需要获取整个文件,从而提高了数据读写的效率。然后将获取的数据写入本地存储器中,并在本地存储器存储有所述待写文件的完整数据后,直接从存储器中随机读写待写文件,不用再受对象存储的读写特性的限制。从而在不将文件在物理上进行分块的前提下,以块为单位来实现将数据写入文件中,既方便了数据的写入,又避免了将文件进行物理分块所存在的问题。
本发明的另一实施例提供了一种文件网关,用于执行上述数据读取的方法,如图10所示,所述文件网关包括:
第一确定单元1001,用于确定待读取文件所属的逻辑块;其中,每个所述逻辑块对应所述待读取文件的数据的唯一预定范围。
具体的,第一确定单元1001的具体工作过程可参见上述数据读取的方法实施例中的步骤S201,此处不再赘述。
第一判断单元1002,用于分别判断每个所述逻辑块对应范围内的数据,是否存储在本地存储器中。
具体的,第一判断单元1002的具体工作过程可参见上述数据读取的方法实施例中的步骤S202,此处不再赘述。
第一获取单元1003,用于第一判断单元1002判断出所述逻辑块对应范围内的数据未存储在所述本地存储器中,从对象存储中获取所述逻辑块对应范围内的数据,并将所述逻辑块对应范围内的数据写入所述本地存储器中的所述逻辑块对应范围内。
具体的,第一获取单元1003的具体工作过程可参见上述数据读取的方法实施例中的步骤S203,此处不再赘述。
读取单元1004,用于在所述本地存储器存储有所述待读取文件的完整数据后,从所述本地存储器中读取所述待读取文件。
具体的,读取单元1004的具体工作过程可参见上述数据读取的方法实施例中的步骤S204,此处不再赘述。
可选地,本发明的另一实施例中,第一确定单元,如图11所示,包括:
第一确定子单元1101,用于确定所述待读取文件的存储信息。
具体的,第一确定子单元1101的具体工作过程可参见上述数据读取的方法实施例中的步骤S301,此处不再赘述。
第一计算单元1102,用于根据所述待读取文件的存储信息,计算所述待读取文件所属的逻辑块。
具体的,第一计算单元1102的具体工作过程可参见上述数据读取的方法实施例中的步骤S302,此处不再赘述。
可选地,本发明另一实施例中,所述存储信息包括所述待读取文件的起始偏移量及文件大小,第一计算单元,如图12所示,包括:
第一计算子单元1201,用于将所述待读取文件的起始偏移量和单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待读取文件所属的首个逻辑块;将所述待读取文件的起始偏移量和所述文件大小的和,与所述单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待读取文件所属的最后一个逻辑块。
具体的,第一计算子单元1201的具体工作过程可参见上述数据读取的方法实施例中的步骤S401,此处不再赘述。
第二确定单元1202,用于由所述待读取文件所属的首个逻辑块及最后一个逻辑块,确定出所述待读取文件所属的所有逻辑块。
具体的,第二确定单元1202的具体工作过程可参见上述数据读取的方法实施例中的步骤S402,此处不再赘述。
可选地,本发明另一实施例中,第一判断单元,如图13所示,包括:
第三确定单元1301,用于根据每个所述逻辑块的偏移量及大小,确定每个所述逻辑块对应的范围。
具体的,第三确定单元1301的具体工作过程可参见上述数据读取的方法实施例中的步骤S501,此处不再赘述。
第一判断子单元1302,用于调用***调用接口分别从所述本地存储器中获取每个所述逻辑块对应范围内的数据;其中,若无法从所述本地存储器中获取所述逻辑块对应范围内的数据,则判断出所述逻辑块对应范围内的数据,未存储在所述本地存储器中。
具体的,第一判断子单元1302的具体工作过程可参见上述数据读取的方法实施例中的步骤S502,此处不再赘述。
可选地,本发明另一实施例中,读取单元,如图14所示,包括:
第四确定单元1401,用于根据所述待读取文件的存储信息,确定所述待读取文件的数据在所述本地存储器中的存储范围。
读取子单元1402,用于从所述本地存储器中的存储范围内读取数据,并将所读取的数据返回应用服务器。
具体的,第四确定单元1401及读取子单元1402的具体工作过程可参见上述数据读取的方法实施例中的步骤S204,此处不再赘述。
本发明实施例提供的文件网关,针对待读取文件,通过第一确定单元,确定待读取文件所属的逻辑块,然后由第一判断单元分别判断每个所述逻辑块对应范围的数据,是否存储在本地存储器中。当在第一判断单元判断出所述逻辑块对应范围内的数据未存储在缓存器中,通过第一获取单元从对象存储中获取所述逻辑块对应范围内的数据,并将所述逻辑块对应范围内的数据写入所述本地存储器中的所述逻辑块对应范围内。最后,通过读取单元在所述本地存储器存储有所述待读取文件的完整数据后,读取存储在所述本地存储器中的所述待读取文件。从而在不将文件进行物理上分块的前提下,对文件以块作为单位,来实现对文件的随机读取,既方便了数据的读取,又避免了将文件进行物理分块所存在的问题。
本发明另一实施例还提供了另一种文件网关,用于执行上述数据写入的方法,如图15所示,包括:
第五确定单元1501,用于确定待写文件所属的逻辑块;其中,每个所述逻辑块对应所述待写文件的数据的唯一预定范围。
具体的,第五确定单元1501的具体工作过程可参见上述数据写入的方法实施例中的步骤S601,此处不再赘述。
第二判断单元1502,用于分别判断每个所述逻辑块对应范围内的数据,是否存储在本地存储器中。
具体的,第二判断单元1502的具体工作过程可参见上述数据写入的方法实施例中的步骤S602,此处不再赘述。
第二获取单元1503,用于在第二判断单元1502判断出所述逻辑块对应范围内的数据未存储在所述本地存储器中,从对象存储中获取所述逻辑块对应范围内的数据,并将所述逻辑块对应范围内的数据写入所述本地存储器中的所述逻辑块对应范围内。
具体的,第二获取单元1503的具体工作过程可参见上述数据写入的方法实施例中的步骤S603,此处不再赘述。
写入单元1504,用于在所述本地存储器存储有所述待写文件的完整数据后,将待写入所述待写文件的数据写入存储在所述本地存储器的所述待写文件中。
具体的,写入单元1504的具体工作过程可参见上述数据写入的方法实施例中的步骤S604,此处不再赘述。
可选地,本发明另一实施例中,第五确定单元,包括:
第五确定子单元,用于确定所述待写文件的存储信息;
第二计算单元,用于根据所述待写文件的存储信息,计算所述待写文件所属的逻辑块。
具体的,第五确定子单元及第二计算单元的具体工作过程可分别参见上述数据写入的方法实施例中的步骤S701和步骤S702,此处不再赘述。
可选地,本发明另一实施例中,所述存储信息包括所述待写文件的起始偏移量及文件大小,第二计算单元,包括:
第二计算子单元,用于将所述待写文件的起始偏移量和单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待写文件所属的首个逻辑块;将所述待写文件的起始偏移量和所述文件大小的和,与所述单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待写文件所属的最后一个逻辑块。
第六确定单元,用于由所述待写文件所属的首个逻辑块及最后一个逻辑块,确定出所述待写文件所属的所有逻辑块。
具体的,第二计算子单元及第六确定单元的具体工作过程可分别参见上述数据写入的方法实施例中的步骤S801和步骤S802,此处不再赘述。
可选地,本发明另一实施例中,第二判断单元,包括:
第七确定单元,用于根据每个所述逻辑块的偏移量及大小,确定每个所述逻辑块对应的范围。
第二判断子单元,用于调用***调用接口分别从所述本地存储器中获取每个所述逻辑块对应范围内的数据;其中,若无法从所述本地存储器中获取所述逻辑块对应范围内的数据,则判断出所述逻辑块对应范围内的数据,未存储在所述本地存储器中。
具体的,第七确定单元及第二判断子单元的具体工作过程可分别参见上述数据写入的方法实施例中的步骤S901和步骤S902,此处不再赘述。
可选地,本发明另一实施例中,写入单元,包括:
第八确定单元,用于根据所述待写文件的存储信息,确定所述待写文件的数据在所述本地存储器中的存储范围;
写入子单元,用于将待写入所述待写文件中的数据,写入所述本地存储器中的存储范围内,并将所述写入数据后的所述待写文件的数据同步回所述对象存储。
具体的,第八确定单元及写入子单元的具体工作过程可分别参见上述数据写入的方法实施例中的步骤S901和步骤S902,此处不再赘述。
本发明提供的数据读取的方法中,针对每一个待写文件,通过第五确定单元确定待写文件所属的逻辑块,且每一个逻辑块对应待写文件的数据的唯一预定范围,其相当于将待写文件视为是由多个逻辑块所对应的数据组成的文件,而不需要在物理上将文件分割为多个小块。然后,针对每个逻辑块,由第二判断单元分别判断其对应范围内的数据是否存储在本地存储器中。若逻辑块对应范围内的数据未存储在缓存器中,则通过第二获取单元从对象存储中获取逻辑块对应范围内的数据,也不需要获取整个文件,从而提高了数据写入的效率。然后将获取的数据写入本地存储器中,并在本地存储器存储有所述待写文件的完整数据后,直接从存储器中对待写文件进行写入,不用再受对象存储的读取特性的限制。从而在不将文件在物理上进行分块的前提下,以块为单位来实现对文件的写操作,既方便了数据的写入,又避免了将文件进行物理分块所存在的问题。
本发明的另一实施例还提供了一种文件网关,如图16所示,包括存储器1601和处理器1602;其中:
存储器1601同于存储计算机指令;
1602处理器用于执行存储器1601存储的计算机指令,具体执行上述方法实施例中的数据读取的方法,或者,执行上述方法实施例中的数据写入的方法。
在本申请上述实施例中,可以全部或者部分地通过软件、硬件或者其组合来实现。当使用软件实现时,可以全部或者部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或者多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或者部分地产生按照本申请实施例所述的流程或功能,所述计算机可以是通过计算机、专用计算机、计算机网络或者其他可编辑装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如:所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、双绞线、光纤)或者无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或者多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如:软盘、硬盘、磁带)、光介质(例如:光盘)、或者半导体介质(例如固态硬盘(SSD))等。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (21)
1.一种数据读取的方法,其特征在于,包括:
确定待读取文件所属的逻辑块;其中,每个所述逻辑块对应所述待读取文件的数据的唯一预定范围;
分别判断每个所述逻辑块对应范围内的数据,是否存储在本地存储器中;
若判断出所述逻辑块对应范围内的数据未存储在所述本地存储器中,则从对象存储中获取所述逻辑块对应范围内的数据,并将所述逻辑块对应范围内的数据写入所述本地存储器中的所述逻辑块对应范围内;
在所述本地存储器存储有所述待读取文件的完整数据后,从所述本地存储器中读取所述待读取文件。
2.根据权利要求1所述的数据读取的方法,其特征在于,所述确定待读取文件所属的逻辑块,包括:
确定所述待读取文件的存储信息;
根据所述待读取文件的存储信息,计算所述待读取文件所属的逻辑块。
3.根据权利要求2所述的数据读取的方法,其特征在于,所述存储信息包括所述待读取文件的起始偏移量及文件大小,所述根据所述待读取文件的存储信息,计算所述待读取文件所属的逻辑块,包括:
将所述待读取文件的起始偏移量和单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待读取文件所属的首个逻辑块;将所述待读取文件的起始偏移量和所述文件大小的和,与所述单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待读取文件所属的最后一个逻辑块;
由所述待读取文件所属的首个逻辑块及最后一个逻辑块,确定出所述待读取文件所属的所有逻辑块。
4.根据权利要求1所述的数据读取的方法,其特征在于,所述分别判断每个所述逻辑块对应范围内的数据,是否存储在本地存储器中,包括:
根据每个所述逻辑块的偏移量及大小,确定每个所述逻辑块对应的范围;
调用***调用接口分别从所述本地存储器中获取每个所述逻辑块对应范围内的数据;
其中,若无法从所述本地存储器中获取所述逻辑块对应范围内的数据,则判断出所述逻辑块对应范围内的数据,未存储在所述本地存储器中。
5.根据权利要求1所述的数据读取的方法,其特征在于,所述从所述本地存储器中读取所述待读取文件,包括:
根据所述待读取文件的存储信息,确定所述待读取文件的数据在所述本地存储器中的存储范围;
从所述本地存储器中的存储范围内读取数据,并将所读取的数据返回应用服务器。
6.一种数据写入的方法,其特征在于,包括:
确定待写文件所属的逻辑块;其中,每个所述逻辑块对应所述待写文件的数据的唯一预定范围;
分别判断每个所述逻辑块对应范围内的数据,是否存储在本地存储器中;
若判断出所述逻辑块对应范围内的数据未存储在所述本地存储器中,则从对象存储中获取所述逻辑块对应范围内的数据,并将所述逻辑块对应范围内的数据写入所述本地存储器中的所述逻辑块对应范围内;
在所述本地存储器存储有所述待写文件的完整数据后,将待写入所述待写文件的数据写入存储在所述本地存储器的所述待写文件中。
7.根据权利要求6所述的数据写入的方法,其特征在于,所述确定待写文件所属的逻辑块,包括:
确定所述待写文件的存储信息;
根据所述待写文件的存储信息,计算所述待写文件所属的逻辑块。
8.根据权利要求7所述的数据写入的方法,其特征在于,所述存储信息包括所述待写文件的起始偏移量及文件大小,所述根据所述待写文件的存储信息,计算所述待写文件所属的逻辑块,包括:
将所述待写文件的起始偏移量和单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待写文件所属的首个逻辑块;将所述待写文件的起始偏移量和所述文件大小的和,与所述单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待写文件所属的最后一个逻辑块;
由所述待写文件所属的首个逻辑块及最后一个逻辑块,确定出所述待写文件所属的所有逻辑块。
9.根据权利要求6所述的数据写入的方法,其特征在于,所述分别判断每个所述逻辑块对应范围内的数据,是否存储在本地存储器中,包括:
根据每个所述逻辑块的偏移量及大小,确定每个所述逻辑块对应的范围;
调用***调用接口分别从所述本地存储器中获取每个所述逻辑块对应范围内的数据;
其中,若无法从所述本地存储器中获取所述逻辑块对应范围内的数据,则判断出所述逻辑块对应范围内的数据,未存储在所述本地存储器中。
10.根据权利要求6所述的数据写入的方法,其特征在于,所述将待写入所述待写文件的数据写入存储在所述本地存储器的所述待写文件中,包括:
根据所述待写文件的存储信息,确定所述待写文件的数据在所述本地存储器中的存储范围;
将待写入所述待写文件中的数据,写入所述本地存储器中的存储范围内,并将所述写入数据后的所述待写文件的数据同步回所述对象存储。
11.一种文件网关,其特征在于,包括:
第一确定单元,用于确定待读取文件所属的逻辑块;其中,每个所述逻辑块对应所述待读取文件的数据的唯一预定范围;
第一判断单元,用于分别判断每个所述逻辑块对应范围内的数据,是否存储在本地存储器中;
第一获取单元,用于所述第一判断单元判断出所述逻辑块对应范围内的数据未存储在所述本地存储器中,从对象存储中获取所述逻辑块对应范围内的数据,并将所述逻辑块对应范围内的数据写入所述本地存储器中的所述逻辑块对应范围内;
读取单元,用于在所述本地存储器存储有所述待读取文件的完整数据后,从所述本地存储器中读取所述待读取文件。
12.根据权利要求11所述的文件网关,其特征在于,所述第一确定单元,包括:
第一确定子单元,用于确定所述待读取文件的存储信息;
第一计算单元,用于根据所述待读取文件的存储信息,计算所述待读取文件所属的逻辑块。
13.根据权利要求12所述的文件网关,其特征在于,所述存储信息包括所述待读取文件的起始偏移量及文件大小,所述第一计算单元,包括:
第一计算子单元,用于将所述待读取文件的起始偏移量和单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待读取文件所属的首个逻辑块;将所述待读取文件的起始偏移量和所述文件大小的和,与所述单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待读取文件所属的最后一个逻辑块;
第二确定单元,用于由所述待读取文件所属的首个逻辑块及最后一个逻辑块,确定出所述待读取文件所属的所有逻辑块。
14.根据权利要求11所述的文件网关,其特征在于,所述第一判断单元,包括:
第三确定单元,用于根据每个所述逻辑块的偏移量及大小,确定每个所述逻辑块对应的范围;
第一判断子单元,用于调用***调用接口分别从所述本地存储器中获取每个所述逻辑块对应范围内的数据;其中,若无法从所述本地存储器中获取所述逻辑块对应范围内的数据,则判断出所述逻辑块对应范围内的数据,未存储在所述本地存储器中。
15.根据权利要求11所述的文件网关,其特征在于,所述读取单元,包括:
第四确定单元,用于根据所述待读取文件的存储信息,确定所述待读取文件的数据在所述本地存储器中的存储范围;
读取子单元,用于从所述本地存储器中的存储范围内读取数据,并将所读取的数据返回应用服务器。
16.一种文件网关,其特征在于,包括:
第五确定单元,用于确定待写文件所属的逻辑块;其中,每个所述逻辑块对应所述待写文件的数据的唯一预定范围;
第二判断单元,用于分别判断每个所述逻辑块对应范围内的数据,是否存储在本地存储器中;
第二获取单元,用于在所述第二判断单元判断出所述逻辑块对应范围内的数据未存储在所述本地存储器中,从对象存储中获取所述逻辑块对应范围内的数据,并将所述逻辑块对应范围内的数据写入所述本地存储器中的所述逻辑块对应范围内;
写入单元,用于在所述本地存储器存储有所述待写文件的完整数据后,将待写入所述待写文件的数据写入存储在所述本地存储器的所述待写文件中。
17.根据权利要求16所述的文件网关,其特征在于,所述第五确定单元,包括:
第五确定子单元,用于确定所述待写文件的存储信息;
第二计算单元,用于根据所述待写文件的存储信息,计算所述待写文件所属的逻辑块。
18.根据权利要求17所述的文件网关,其特征在于,所述存储信息包括所述待写文件的起始偏移量及文件大小,所述第二计算单元,包括:
第二计算子单元,用于将所述待写文件的起始偏移量和单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待写文件所属的首个逻辑块;将所述待写文件的起始偏移量和所述文件大小的和,与所述单个逻辑块的预设块大小做除法计算,所得计算结果取整后得到所述待写文件所属的最后一个逻辑块;
第六确定单元,用于由所述待写文件所属的首个逻辑块及最后一个逻辑块,确定出所述待写文件所属的所有逻辑块。
19.根据权利要求16所述的文件网关,其特征在于,所述第二判断单元,包括:
第七确定单元,用于根据每个所述逻辑块的偏移量及大小,确定每个所述逻辑块对应的范围;
第二判断子单元,用于调用***调用接口分别从所述本地存储器中获取每个所述逻辑块对应范围内的数据;其中,若无法从所述本地存储器中获取所述逻辑块对应范围内的数据,则判断出所述逻辑块对应范围内的数据,未存储在所述本地存储器中。
20.根据权利要求16所述的文件网关,其特征在于,所述写入单元,包括:
第八确定单元,用于根据所述待写文件的存储信息,确定所述待写文件的数据在所述本地存储器中的存储范围;
写入子单元,用于将待写入所述待写文件中的数据,写入所述本地存储器中的存储范围内,并将所述写入数据后的所述待写文件的数据同步回所述对象存储。
21.一种文件网关,其特征在于,包括存储器和处理器;其中:
所述存储器同于存储计算机指令;
所述处理器用于执行所述存储器存储的计算机指令,具体执行如权利要求1至5中任意一项所述的数据读取的方法,或者,执行如权利要求6至10中任意一项所述的数据写入的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910522168.1A CN110247973B (zh) | 2019-06-17 | 2019-06-17 | 数据读取、写入的方法及文件网关 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910522168.1A CN110247973B (zh) | 2019-06-17 | 2019-06-17 | 数据读取、写入的方法及文件网关 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110247973A CN110247973A (zh) | 2019-09-17 |
CN110247973B true CN110247973B (zh) | 2021-09-24 |
Family
ID=67887540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910522168.1A Active CN110247973B (zh) | 2019-06-17 | 2019-06-17 | 数据读取、写入的方法及文件网关 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110247973B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101299221A (zh) * | 2008-07-08 | 2008-11-05 | 杭州华三通信技术有限公司 | 存储***中文件信息的管理方法和存储*** |
CN101593084A (zh) * | 2008-05-21 | 2009-12-02 | 三星电子株式会社 | 存储器***和操作存储器***的方法 |
CN102508727A (zh) * | 2011-12-01 | 2012-06-20 | 浪潮电子信息产业股份有限公司 | 一种通过软件实现磁盘阵列中的缓存掉电保护方法 |
EP2793131A1 (en) * | 2011-09-21 | 2014-10-22 | Nexenta Systems, Inc. | Methods and systems for heterogeneous data volume |
CN105933376A (zh) * | 2016-03-31 | 2016-09-07 | 华为技术有限公司 | 一种数据操作方法,服务器及存储*** |
CN106156289A (zh) * | 2016-06-28 | 2016-11-23 | 北京百迈客云科技有限公司 | 一种读写对象存储***中的数据的方法以及装置 |
CN107086047A (zh) * | 2016-02-15 | 2017-08-22 | 维布络有限公司 | 用于集成电路的存储器初始化的***和方法 |
CN107678981A (zh) * | 2017-08-24 | 2018-02-09 | 北京盛和大地数据科技有限公司 | 数据处理方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10387267B2 (en) * | 2011-06-08 | 2019-08-20 | International Business Machines Corporation | Fast copy using file system block mappings |
JP6021680B2 (ja) * | 2013-02-19 | 2016-11-09 | 株式会社日立製作所 | 自律分散重複排除ファイルシステム、記憶装置ユニット及びデータアクセス方法 |
-
2019
- 2019-06-17 CN CN201910522168.1A patent/CN110247973B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593084A (zh) * | 2008-05-21 | 2009-12-02 | 三星电子株式会社 | 存储器***和操作存储器***的方法 |
CN101299221A (zh) * | 2008-07-08 | 2008-11-05 | 杭州华三通信技术有限公司 | 存储***中文件信息的管理方法和存储*** |
EP2793131A1 (en) * | 2011-09-21 | 2014-10-22 | Nexenta Systems, Inc. | Methods and systems for heterogeneous data volume |
CN102508727A (zh) * | 2011-12-01 | 2012-06-20 | 浪潮电子信息产业股份有限公司 | 一种通过软件实现磁盘阵列中的缓存掉电保护方法 |
CN107086047A (zh) * | 2016-02-15 | 2017-08-22 | 维布络有限公司 | 用于集成电路的存储器初始化的***和方法 |
CN105933376A (zh) * | 2016-03-31 | 2016-09-07 | 华为技术有限公司 | 一种数据操作方法,服务器及存储*** |
CN106156289A (zh) * | 2016-06-28 | 2016-11-23 | 北京百迈客云科技有限公司 | 一种读写对象存储***中的数据的方法以及装置 |
CN107678981A (zh) * | 2017-08-24 | 2018-02-09 | 北京盛和大地数据科技有限公司 | 数据处理方法及装置 |
Non-Patent Citations (2)
Title |
---|
"Data Dependent Sparing to manage Better-than-bad blocks";Rakan Maddah等;《IEEE ComputerArchitecture letters》;20130601;全文 * |
"MFTL:一种基于固态盘***非对齐更新数据的合并策略";黄耀钦等;《小型微型计算机***》;20180615;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110247973A (zh) | 2019-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108459826B (zh) | 一种处理io请求的方法及装置 | |
CN108810041A (zh) | 一种分布式缓存***的数据写入及扩容方法、装置 | |
US8311964B1 (en) | Progressive sampling for deduplication indexing | |
US8738857B1 (en) | System and method for improving cache performance | |
CN110401724B (zh) | 文件管理方法、文件传输协议服务器及存储介质 | |
CN104239575A (zh) | 一种虚拟机镜像文件存储、分发方法及装置 | |
EP2711841A1 (en) | Data processing method, device and system based on block storage | |
CN107197359B (zh) | 视频文件缓存方法及装置 | |
CN110751275A (zh) | 图训练***、数据访问方法及装置、电子设备、存储介质 | |
CN102014158A (zh) | 一种云存储服务客户端高效细粒度数据缓存***与方法 | |
CN111400334B (zh) | 数据处理方法、装置、存储介质及电子装置 | |
CN103501319A (zh) | 一种低延迟的面向小文件的分布式存储*** | |
CN112714359A (zh) | 视频推荐方法、装置、计算机设备及存储介质 | |
CN110851474A (zh) | 数据查询方法、数据库中间件、数据查询设备及存储介质 | |
US8738858B1 (en) | System and method for improving cache performance | |
US20140059019A1 (en) | Methods and systems for data cleanup using physical image of files on storage devices | |
US10171582B2 (en) | Method and apparatus for client to content appliance (CA) synchronization | |
CN102346783B (zh) | 数据检索方法及装置 | |
CN110502187B (zh) | 一种快照回滚方法及装置 | |
CN111803917A (zh) | 资源的处理方法和装置 | |
WO2016206070A1 (zh) | 一种文件更新方法及存储设备 | |
CN109783462A (zh) | 一种基于分布式文件***的数据访问方法和装置 | |
CN111796772B (zh) | 缓存的管理方法、缓存节点及分布式存储*** | |
CN113688139A (zh) | 对象存储方法、网关、设备及介质 | |
CN113853778B (zh) | 一种文件***的克隆方法及装置 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 214100 No. 6, science and education software park, Binhu District, Wuxi City, Jiangsu Province Applicant after: Huayun data holding group Co., Ltd Address before: 214000 No. 6, zone B, science and education software park, Huize West Road, Binhu District, Wuxi City, Jiangsu Province Applicant before: WUXI CHINAC DATA TECHNICAL SERVICE Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |