Professional Documents
Culture Documents
(12)发明专利申请
(10)申请公布号 CN 113835613 A
(43)申请公布日 2021.12.24
(21)申请号 202010592657 .7
(71)申请人 浙江宇视科技有限公司
地址 310051 浙江省杭州市滨江区西兴街
道江陵路88号10幢南座1-11层、2幢A
区1-3楼、 2幢B区2楼
(72)发明人 张波波
(74)专利代理机构 北京品源专利代理有限公司
11332
代理人 孟金喆
(51)Int .Cl .
G06F 3/06 (2006 .01)
(54)发明名称
一种文件读取方法、装置、电子设备和存储
介质
(57)摘要
本发明实施例公开了一种文件读取方法、 装
置、 电子设备和存储介质, 其中方法包括:
获取目
标文件的读取请求; 通过预先创建的多线程请求
队列, 并行下发读取请求到各存储节点;在接收
到目标存储节点返回的成功读取目标文件的消
息时, 将目标文件反馈给目标文件请求方, 并将
其它存储节点返回的读取结果消息设置为无效。
本发明实施例中, 通过预先建立的多线程请求队
列,将获取的读取请求并行下发到各存储节点
后,若某一目标存储节点返回所请求的目标文
件, 则立即将目标文件立即返回请求方, 其余存
储节点返回的读取结果自动失效处理, 由此避免
CN 113835613 A
了因等待所有存储节点完成读取操作后返回最
终结果, 所导致的读取文件耗时大的问题, 提升
了文件的读取效率。
CN 113835613 A 权 利 要 求 书 1/2 页
2
CN 113835613 A 权 利 要 求 书 2/2 页
块ID作为所述过滤器的截止文件块ID。
7 .一种文件读取装置,其特征在于,配置于云存储系统中的数据产生设备, 所述装置包
括:
请求获取模块, 用于获取目标文件的读取请求;
请求下发模块,用于通过预先创建的多线程请求队列, 并行下发所述读取请求到各存
储节点;
消息处理模块,用于在接收到目标存储节点返回的成功读取所述目标文件的消息时,
将所述目标文件反馈给目标文件请求方, 并将其它存储节点返回的读取结果消息设置为无
效。
8 .一种文件读取装置,其特征在于,配置于云存储系统中的存储节点, 所述装置包括:
响应模块,用于响应于对已经存储的目标文件的读取请求, 在预先加载的目录树中确
定所述目标文件对应的目标目录;
判断模块,用于根据所述目标目录下预先创建的过滤器, 判断预先创建的过滤器中是
否存在所述目标文件信息, 其中,所述过滤器中用于存储所述目标目录下的部分文件块中
的文件信息;
目标文件获取模块, 用于在判断结果为是时, 则根据所述目标文件信息,获取对应的目
标文件;
文件信息查找模块,用于在判断结果为否时, 则从存储节点的磁盘中依次读取所述目
标目录下的其它文件块, 并将读取过的文件块的文件信息添加到过滤器中, 直到查找到所
述目标文件对应的目标文件信息为止, 其中,所述其它文件块为所述目标目录下除了已存
储在过滤器中的文件块以外的文件块。
9 .一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置, 用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行, 使得所述一个或多个处理器实
现如权利要求1-4或者权利要求5-6中任一所述的文件读取方法。
10 .一种计算机可读存储介质,其上存储有计算机程序, 其特征在于,该程序被处理器
执行时实现如权利要求1-4或者权利要求5-6中任一所述的文件读取方法。
3
CN 113835613 A 说 明 书 1/16 页
一种文件读取方法、装置、
电子设备和存储介质
技术领域
[0001] 本发明实施例涉及云存储技术领域,
尤其涉及一种文件读取方法、
装置、
电子设备
和存储介质。
背景技术
[0002] 随着大数据、人工智能、云存储等技术的进步和不断革新, 视频监控、数字警务、智
能助理、智慧城市等信息化业务在生活中的出现也越来越频繁, 这给我们的社会活动和生
产带来了极大的方便。大规模的信息化应用产生了海量的数据, 这些数据可以是键值对数
据、 图片、 短视频、文档、表格等,
这就对云存储系统的高效性提出了更高的要求。一般海量
数据的存储采用云存储系统进行, 其包含元数据管理服务器CDM和若干个虚拟存储节点,在
单个存储节点中数据以文件的方式进行组织和存储。而在业务量不断增长的情况下性能问
题成为了一个极其关键的问题, 同等的存储硬件, 性能的提升有助于直接提高产品竞争力
和性价比。
[0003] 通常,业务使用云存储客户端实现基本的文件操作功能, 文件读取时携带文件名
称获取到所有在线的存储节点, 再向每个存储节点发送读取文件请求, 等到所有节点上读
取操作完成后, 业务层才能获取到最终结果, 也即存在已经读取成功但还是要等所有结果
返回的情况, 使得文件的读取效率较低。
发明内容
[0004] 本发明实施例提供一种文件读取方法、 装置、
电子设备和存储介质,以达到提升文
件读取效率的效果。
[0005] 第一方面,本发明实施例提供了一种文件读取方法, 应用于云存储系统中的数据
产生设备, 所述方法包括:
[0006] 获取目标文件的读取请求;
[0007] 通过预先创建的多线程请求队列,并行下发所述读取请求到各存储节点;
[0008] 在接收到目标存储节点返回的成功读取所述目标文件的消息时, 将所述目标文件
反馈给目标文件请求方, 并将其它存储节点返回的读取结果消息设置为无效。
[0009] 第二方面,本发明实施例提供了一种文件读取方法, 应用于云存储系统中的存储
节点, 所述方法包括:
[0010] 响应于对已经存储的目标文件的读取请求, 在预先加载的目录树中确定所述目标
文件对应的目标目录;
[0011] 根据所述目标目录下预先创建的过滤器, 判断预先创建的过滤器中是否存在所述
目标文件信息, 其中,所述过滤器中用于存储所述目标目录下的部分文件块中的文件信息;
[0012] 若存在,则根据所述目标文件信息,获取对应的目标文件;
[0013] 若不存在,则从存储节点的磁盘中依次读取所述目标目录下的其它文件块, 并将
读取过的文件块的文件信息添加到过滤器中, 直到查找到所述目标文件对应的目标文件信
4
CN 113835613 A 说 明 书 2/16 页
息为止, 其中,所述其它文件块为所述目标目录下除了已存储在过滤器中的文件块以外的
文件块。
[0014] 第三方面,本发明实施例提供了一种文件读取装置, 配置于云存储系统中的数据
产生设备, 所述装置包括:
[0015] 请求获取模块,用于获取目标文件的读取请求;
[0016] 请求下发模块,用于通过预先创建的多线程请求队列, 并行下发所述读取请求到
各存储节点;
[0017] 消息处理模块,用于在接收到目标存储节点返回的成功读取所述目标文件的消息
时, 将所述目标文件反馈给目标文件请求方, 并将其它存储节点返回的读取结果消息设置
为无效。
[0018] 第四方面,本发明实施例提供了一种文件读取装置, 配置于云存储系统中的存储
节点, 所述装置包括:
[0019] 响应模块,用于响应于对已经存储的目标文件的读取请求, 在预先加载的目录树
中确定所述目标文件对应的目标目录;
[0020] 判断模块,用于根据所述目标目录下预先创建的过滤器, 判断预先创建的过滤器
中是否存在所述目标文件信息, 其中,所述过滤器中用于存储所述目标目录下的部分文件
块中的文件信息;
[0021] 目标文件获取模块, 用于在判断结果为是时,则根据所述目标文件信息,获取对应
的目标文件;
[0022] 文件信息查找模块, 用于在判断结果为否时,则从存储节点的磁盘中依次读取所
述目标目录下的其它文件块, 并将读取过的文件块的文件信息添加到过滤器中, 直到查找
到所述目标文件对应的目标文件信息为止, 其中,所述其它文件块为所述目标目录下除了
已存储在过滤器中的文件块以外的文件块。
[0023] 第五方面,本发明实施例还提供了一种电子设备, 包括:
[0024] 一个或多个处理器;
[0025] 存储装置,用于存储一个或多个程序,
[0026] 当所述一个或多个程序被所述一个或多个处理器执行, 使得所述一个或多个处理
器实现如本发明任一实施例所述的文件读取方法。
[0027] 第六方面,本发明实施例还提供了一种计算机可读存储介质, 其上存储有计算机
程序, 该程序被处理器执行时实现如本发明任一实施例所述的文件读取方法。
[0028] 本发明实施例中, 通过预先建立的多线程请求队列, 将获取的读取请求并行下发
到各个存储节点后, 若某一目标存储节点返回所请求的目标文件, 则立即将目标文件立即
返回请求方, 其余存储节点返回的读取结果自动失效处理, 由此避免了因等待所有存储节
点完成读取操作后返回最终结果所导致的读取文件耗时大的问题, 提升了文件的读取效
率。
附图说明
[0029] 图1a为本发明实施例一中的文件读取方法的流程图;
[0030] 图1b为本发明实施例一中的云存储系统组网图以及数据存储流程;
5
CN 113835613 A 说 明 书 3/16 页
[0031] 图2a为本发明实施例二中的文件读取方法的流程图;
[0032] 图2b为本发明实施例二中的读取目标文件的逻辑模块组成图;
[0033] 图2c为本发明实施例二中的文件读取方法的逻辑流程图;
[0034] 图3a是本发明实施例三中的文件读取方法的流程示意图;
[0035] 图3b是本发明实施例三中的单个存储资源上文件系统的组成格式图;
[0036] 图3c是本发明实施例三中的基本的布隆过滤原理图;
[0037] 图4a是本发明实施例四中的文件读取方法的流程示意图;
[0038] 图4b是本发明实施例四中的读取文件块的过程图;
[0039] 图4c是本发明实施例四中的文件读取的逻辑流程图;
[0040] 图5a是本发明实施例五中的文件读取方法的流程示意图;
[0041] 图5b是本发明实施例五中三种情况下创建的过滤器的示意图;
[0042] 图6是本发明实施例六中的文件读取方法的流程示意图;
[0043] 图7是本发明实施例七中的文件读取装置的结构示意图;
[0044] 图8是本发明实施例八中的文件读取装置的结构示意图;
[0045] 图9是本发明实施例四中的电子设备的结构示意图。
具体实施方式
[0046] 下面结合附图和实施例对本发明作进一步的详细说明。 可以理解的是, 此处所描
述的具体实施例仅仅用于解释本发明, 而非对本发明的限定。另外还需要说明的是, 为了便
于描述, 附图中仅示出了与本发明相关的部分而非全部结构。
[0047] 实施例一
[0048] 图1a为本发明实施例一提供的文件读取方法的流程图, 本实施例可适用于在云存
储系统中快速读取文件的情况, 该方法可以由文件读取装置来执行, 该装置可以采用软件
和/或硬件的方式实现, 并可集成在电子设备上, 例如集成在云存储系统中的数据产生设备
上, 其中数据生产设备可以为智能分析服务器、 交通抓拍设备或计算机设备等。
[0049] 参见图1b, 其示出了云存储系统一般组网图以及数据存储流程, 云存储系统由元
数据管理服务器CDM以及多台存储节点管理服务器CDV组成, 若干个CDV可以构成一个CLU分
组, 例如, CDV1-CDV3属于CLU分组1,
CDV4-CDV5属于CLU分组2。元数据管理服务器CDM主要是
管理集群中的存储节点管理服务器CDV, 主要提供系统的元数据存储, 包括用户信息, 分组
信息, 空间管理等。当业务层数据(即数据生产者产生的数据)写入存储节点时, 使用云存储
客户端提供的写接口, CLU分组根据负载均衡策略选择负载最小的CDV节点进行文件存储,
即宏观上每个文件随机写到每个CDV上, 需要说明的是, 数据以文件的方式在存储节点CDV
上进行组织和存储。当需要读取数据时, 应用层传入文件路径以及文件名, 遍历CLU分组下
所有存储节点查找数据。这个是云存储系统的基本组成以及存取流程, 对于整个系统的效
率而言, 多个存储节点的读取策略是非常关键的。
[0050] 本实施例提供了一种提升在多个存储节点上读取文件效率的方法, 该方法可以由
云存储客户端执行, 其中, 云存储客户端安装在存储系统中的数据产生设备上, 如图1a所
示, 该文件读取方法具体包括如下流程:
[0051] S101、 获取目标文件的读取请求。
6
CN 113835613 A 说 明 书 4/16 页
7
CN 113835613 A 说 明 书 5/16 页
8
CN 113835613 A 说 明 书 6/16 页
9
CN 113835613 A 说 明 书 7/16 页
10
CN 113835613 A 说 明 书 8/16 页
文件信息)的情况, 因此从所述预先创建的过滤器中查找目标文件对应的目标文件信息后,
需要对查询结果进行判断的操作, 进而根据查询结果执行S303或S304。
[0090] S303、
若存在, 则根据所述目标文件信息, 获取对应的目标文件。
[0091] 若过滤器中存在目标文件信息, 由于目标文件信息至少包括目标文件的名称、文
件校验信息、文件长度以及文件在数据区的存储位置, 因此可根据目标文件信息直接从数
据区获取对应的目标文件, 并将其返回,以完成整个读取操作。需要说明的是, 因为是直接
在过滤器中查找目标文件信息, 不需要对磁盘进行读取操作, 提升文件元数据信息的读取
效率。
[0092] S304、若不存在, 则从存储节点的磁盘中依次读取所述目标目录下的其它文件块,
并将读取过的文件块的文件信息添加到过滤器中, 直到查找到所述目标文件对应的目标文
件信息为止。
[0093] 由于过滤器中不存在目标文件信息时, 则需要从磁盘中再次读取目标文件信息。
因为已经确定过滤器内存储的文件块中不包括目标文件信息, 所以从存储节点的磁盘中读
取目标文件的元数据(即目标文件信息)时, 跳过这些文件块, 即必然不存在目标文件的元
数据的文件块, 则不需要再去进行磁盘读取。也即是可从存储节点的磁盘中依次读取所述
目标目录下的其它文件块, 其中,其它文件块是指目标目录下除了已存储在过滤器中的文
件块以外的文件块。而且, 在查找过程中将读取过的文件块的文件信息添加到过滤器中, 直
到查找到所述目标文件对应的目标文件信息为止。
[0094] 在一种可选的实施方式中, 过滤器中设置有截止文件块ID(即LastID) ,其中,
截止
文件块ID为目标目录下的任一文件块的ID,用于表征在存储节点的磁盘中读取文件块时,
以截止文件块ID对应的文件块开始依次读取所述目标目录下的文件块。
[0095] 相应的, 从存储节点的磁盘中依次读取所述目标目录下的其它文件块, 包括:
以截
止文件块ID对应的文件块开始, 依次读取在所述目标目录下的其它文件块。 需要说明的是,
从磁盘读取过程中, 将遍历过的文件块添加到过滤器中, 使得过滤器中存储的文件信息更
多, 进而提升下次执行读取文件请求时在过滤器内命中的概率。
[0096] 进一步的, 在查找到目标文件信息后, 需要及时更新截止文件块ID, 以便后续可根
据新的截止文件快ID在磁盘中开始进行查找, 避免对不存在目标文件元数据的文件块进行
查询, 也即减少无效查询。可选的, 更新截止文件快ID时,可按如下操作进行: 确定所述目标
文件信息所在的目标文件块, 并将所述目标文件块中记录的下一个文件块ID作为所述过滤
器的截止文件块ID。
[0097] 本发明实施例中, 通过预先将目录加载到存储节点的内存中, 可提升查询目标文
件所在目标目录的效率, 而且由于目标目录下存在预先构建的过滤器时, 且过滤器用于存
储部分目标目录下文件块中的文件信息, 所以直接在过滤器中进行查找, 不但可以提升目
标文件对应的目标文件信息的效率, 还可有效减少读取元效数据带来的存储节点上的I/O
消耗; 如果在过滤器中查不到的目标文件信息, 需要在磁盘中查询时, 跳过已缓存在过滤器
中部分文件块, 从LastID对应的文件块开始查询, 也即文件块组中必然不存在目标文件时,
则不需要对这些文件块进行磁盘读取, 减少了读取文件块的数量, 提高了I/O有效率, 进而
提升文件读取的效率。
[0098] 实施例四
11
CN 113835613 A 说 明 书 9/16 页
12
CN 113835613 A 说 明 书 10/16 页
13
CN 113835613 A 说 明 书 11/16 页
14
CN 113835613 A 说 明 书 12/16 页
[0136] S604判断所述目标目录下是否存在预先创建的过滤器。
[0137] 其中, 所述过滤器中用于存储所述目标目录下的部分文件块中的文件信息。
[0138] S605若存在预先创建的过滤器, 则从所述预先创建的过滤器中查找所述目标文件
对应的目标文件信息。
[0139] 根据所述目标目录下预先创建的过滤器, 判断预先创建的过滤器中是否存在所述
目标文件信息, 其中,所述过滤器中用于存储所述目标目录下的部分文件块中的文件信息;
若存在, 则根据所述目标文件信息, 获取对应的目标文件; 若不存在,则从存储节点的磁盘
中依次读取所述目标目录下的其它文件块, 并将读取过的文件块的文件信息添加到过滤器
中, 直到查找到所述目标文件对应的目标文件信息为止, 其中,所述其它文件块为所述目标
目录下除了已存储在过滤器中的文件块以外的文件块。
[0140] S606若不存在预先创建的过滤器, 根据所述目标目录下的文件块数量, 为所述目
标目录构建一个过滤器。
[0141] S607、从存储节点的磁盘中依次读取所述目标目录下的文件块, 并将读取过的文
件块的文件信息添加到所述过滤器中, 直到查找到所述目标文件对应的目标文件信息为
止。
[0142] 具体的查询过程参见上述实施例, 在此不再赘述。
[0143] S608、在接收到目标存储节点返回的成功读取所述目标文件的消息时, 将所述目
标文件反馈给目标文件请求方, 并将其它存储节点返回的读取结果消息设置为无效。
[0144] 云存储客户端接到存储节点返回的目标文件后, 直接将其返回给业务层。
[0145] 本发明实施例中, 通过预先建立的多线程请求队列, 将获取的读取请求并行下发
到各个存储节点后, 若某一目标存储节点返回所请求的目标文件, 则立即将目标文件立即
返回请求方, 其余存储节点返回的读取结果自动失效处理, 由此避免了因等待所有存储节
点完成读取操作后返回最终结果所导致的读取文件耗时大的问题, 提升了文件的读取效
率。而且, 在存储节点中读取目标文件时, 通过对叶子目录建立文件过滤器, 过滤器存储有
文件块的信息, 使得读取目标文件时, 先从过滤器中读取目标文件对应的元数据, 有效减少
读取元效数据带来的存储结点节点上的I/O消耗, 提高了存储节点的I/O有效性,进一步提
高了大规模批量小文件的读取效率。
[0146] 实施例七
[0147] 图7是本发明实施例七中的文件读取装置的结构示意图 , 本实施例可适用在云存
储系统中快速读取文件的情况, 参见图7,所述装置配置于云存储系统中的数据产生设备,
包括:
[0148] 请求获取模块701, 用于获取目标文件的读取请求;
[0149] 请求下发模块702, 用于通过预先创建的多线程请求队列, 并行下发所述读取请求
到各存储节点;
[0150] 消息处理模块703,用于在接收到目标存储节点返回的成功读取所述目标文件的
消息时, 将所述目标文件反馈给目标文件请求方, 并将其它存储节点返回的读取结果消息
设置为无效。
[0151] 可选的, 所述装置还包括:
[0152] 标志判断模块, 用于判断预先建立的结果收集器中是否已有成功读取到目标文件
15
CN 113835613 A 说 明 书 13/16 页
的标志; 其中,所述结果收集器用于存储读取到的目标文件;
[0153] 无效处理模块, 用于若判断结果为是, 则将成功读取所述目标文件的消息设置为
无效;
[0154] 文件复制模块, 用于若判断结果为否, 则将所述目标文件复制到所述结果收集器
中。
[0155] 可选的,所述装置还包括:
[0156] 结果收集器清理模块, 用于在确定最后一个存储节点返回目标文件读取结果消息
后, 清空所述结果收集器中存储的目标文件。
[0157] 可选的,请求获取模块具体用于:
[0158] 根据待读取的目标文件的名称信息、 云存储系统中当前在线的存储节点数量以及
各存储节点的编码, 构建与当前在线存储节点数量相同的消息体, 其中,
每个消息体唯一对
应一个在线的存储节点;
[0159] 相应的,请求下发模块具体用于: 通过预先创建的多线程请求队列, 将各消息体并
行下发到各自对应的存储节点。
[0160] 本发明实施例所提供的文件读取装置可执行本发明任意实施例所提供的文件读
取方法, 具备执行方法相应的功能模块和有益效果。
[0161] 实施例八
[0162] 图8是本发明实施例八中的文件读取装置的结构示意图 , 本实施例可适用在云存
储系统中快速读取文件的情况, 参见图8,所述装置配置于云存储系统中的存储节点, 包括:
[0163] 响应模块801,
用于响应于对已经存储的目标文件的读取请求, 在预先加载的目录
树中确定所述目标文件对应的目标目录;
[0164] 判断模块802,
用于根据所述目标目录下预先创建的过滤器, 判断预先创建的过滤
器中是否存在所述目标文件信息, 其中,所述过滤器中用于存储所述目标目录下的部分文
件块中的文件信息;
[0165] 目标文件获取模块803, 用于在判断结果为是时, 则根据所述目标文件信息, 获取
对应的目标文件;
[0166] 文件信息查找模块804, 用于在判断结果为否时, 则从存储节点的磁盘中依次读取
所述目标目录下的其它文件块, 并将读取过的文件块的文件信息添加到过滤器中, 直到查
找到所述目标文件对应的目标文件信息为止, 其中,
所述其它文件块为所述目标目录下除
了已存储在过滤器中的文件块以外的文件块。
[0167] 可选的,所述过滤器中设置有截止文件块ID, 其中,所述截止文件块ID为所述目标
目录下的任一文件块的ID,用于表征在存储节点的磁盘中读取文件块时, 以截止文件块ID
对应的文件块开始依次读取所述目标目录下的文件块;
[0168] 相应的,二次读取模块具体用于:
[0169] 以截止文件块ID对应的文件块开始, 依次读取在所述目标目录下的其它文件块。
[0170] 可选的,所述装置还包括:
[0171] 截止文件块ID更新模块, 用于确定所述目标文件信息所在的目标文件块, 并将所
述目标文件块中记录的下一个文件块ID作为所述过滤器的截止文件块ID。
[0172] 本发明实施例所提供的文件读取装置可执行本发明任意实施例所提供的文件读
16
CN 113835613 A 说 明 书 14/16 页
取方法, 具备执行方法相应的功能模块和有益效果。
[0173] 实施例九
[0174] 图9为本发明实施例九提供的一种电子设备的结构示意图。 图9示出了适于用来实
现本发明实施方式的示例性电子设备12的框图。 图9显示的电子设备12仅仅是一个示例, 不
应对本发明实施例的功能和使用范围带来任何限制。
[0175] 如图9所示, 电子设备12以通用计算设备的形式表现。 电子设备12的组件可以包括
但不限于: 一个或者多个处理器或者处理单元16, 系统存储器28, 连接不同系统组件(包括
系统存储器28和处理单元16)的总线18。
[0176] 总线18表示几类总线结构中的一种或多种, 包括存储器总线或者存储器控制器,
外围总线, 图形加速端口, 处理器或者使用多种总线结构中的任意总线结构的局域总线。举
例来说, 这些体系结构包括但不限于工业标准体系结构(ISA)总线, 微通道体系结构(MAC)
总线, 增强型ISA总线、 视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0177] 电子设备12典型地包括多种计算机系统可读介质。 这些介质可以是任何能够被电
子设备12访问的可用介质, 包括易失性和非易失性介质, 可移动的和不可移动的介质。
[0178] 系统存储器28可以包括易失性存储器形式的计算机系统可读介质, 例如随机存取
存储器(RAM)30和/或高速缓存存储器32。 电子设备12可以进一步包括其它可移动/不可移
动的、易失性/非易失性计算机系统存储介质。仅作为举例, 存储系统34可以用于读写不可
移动的、 非易失性磁介质(图9未显示, 通常称为“硬盘驱动器”)。尽管图9中未示出, 可以提
供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器, 以及对可移动非易失性光
盘(例如CD-ROM ,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下, 每个驱动器
可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产
品, 该程序产品具有一组(例如至少一个)程序模块, 这些程序模块被配置以执行本发明各
实施例的功能。
[0179] 具有一组(至少一个)程序模块42的程序/实用工具40, 可以存储在例如存储器28
中, 这样的程序模块42包括但不限于操作系统、 一个或者多个应用程序、 其它程序模块以及
程序数据, 这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常
执行本发明所描述的实施例中的功能和/或方法。
[0180] 电子设备12也可以与一个或多个外部设备14(例如键盘、 指向设备、显示器24等)
通信, 还可与一个或者多个使得用户能与该电子设备12交互的设备通信, 和/或与使得该电
子设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡, 调制解调器等等)
通信。这种通信可以通过输入/输出(I/O)接口22进行。 并且,电子设备12还可以通过网络适
配器20与一个或者多个网络(例如局域网(LAN) , 广域网(WAN)和/或公共网络, 例如因特网)
通信。如图所示, 网络适配器20通过总线18与电子设备12的其它模块通信。应当明白, 尽管
图中未示出, 可以结合电子设备12使用其它硬件和/或软件模块, 包括但不限于: 微代码、设
备驱动器、冗余处理单元、外部磁盘驱动阵列、 RAID系统、磁带驱动器以及数据备份存储系
统等。
[0181] 处理单元16通过运行存储在系统存储器28中的程序, 从而执行各种功能应用以及
数据处理, 例如实现本发明实施例所提供的文件读取方法, 所述方法包括:
[0182] 获取目标文件的读取请求;
17
CN 113835613 A 说 明 书 15/16 页
18
CN 113835613 A 说 明 书 16/16 页
[0198] 可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机
程序代码, 所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,
还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以
完全地在用户计算机上执行、 部分地在用户计算机上执行、作为一个独立的软件包执行、 部
分在用户计算机上部分在远程计算机上执行、 或者完全在远程计算机或服务器上执行。在
涉及远程计算机的情形中, 远程计算机可以通过任意种类的网络——包括局域网(LAN)或
广域网(WAN)—连接到用户计算机, 或者,
可以连接到外部计算机(例如利用因特网服务提
供商来通过因特网连接)。
[0199] 进一步的,本发明实施例中还提供了另一种存储介质, 其上存储有计算机程序, 该
程序被处理器执行时实现如本发明实施例所提供的文件读取方法, 所述方法包括:
[0200] 响应于对已经存储的目标文件的读取请求, 在预先加载的目录树中确定所述目标
文件对应的目标目录;
[0201] 根据所述目标目录下预先创建的过滤器, 判断预先创建的过滤器中是否存在所述
目标文件信息, 其中,所述过滤器中用于存储所述目标目录下的部分文件块中的文件信息;
[0202] 若存在,则根据所述目标文件信息, 获取对应的目标文件;
[0203] 若不存在,则从存储节点的磁盘中依次读取所述目标目录下的其它文件块, 并将
读取过的文件块的文件信息添加到过滤器中, 直到查找到所述目标文件对应的目标文件信
息为止, 其中,所述其它文件块为所述目标目录下除了已存储在过滤器中的文件块以外的
文件块。
[0204] 注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,
本发明不限于这里所述的特定实施例, 对本领域技术人员来说能够进行各种明显的变化、
重新调整和替代而不会脱离本发明的保护范围。因此, 虽然通过以上实施例对本发明进行
了较为详细的说明, 但是本发明不仅仅限于以上实施例, 在不脱离本发明构思的情况下, 还
可以包括更多其他等效实施例, 而本发明的范围由所附的权利要求范围决定。
19
CN 113835613 A 说 明 书 附 图 1/10 页
图1a
图1b
20
CN 113835613 A 说 明 书 附 图 2/10 页
图2a
图2b
21
CN 113835613 A 说 明 书 附 图 3/10 页
图2c
22
CN 113835613 A 说 明 书 附 图 4/10 页
图3a
图3b
23
CN 113835613 A 说 明 书 附 图 5/10 页
图3c
24
CN 113835613 A 说 明 书 附 图 6/10 页
图4a
25
CN 113835613 A 说 明 书 附 图 7/10 页
图4b
图4c
26
CN 113835613 A 说 明 书 附 图 8/10 页
图5a
图5b
27
CN 113835613 A 说 明 书 附 图 9/10 页
图6
图7
28
CN 113835613 A 说 明 书 附 图 10/10 页
图8
图9
29