CN110109866B - 一种文件系统目录的管理方法及设备 - Google Patents
一种文件系统目录的管理方法及设备 Download PDFInfo
- Publication number
- CN110109866B CN110109866B CN201711458947.7A CN201711458947A CN110109866B CN 110109866 B CN110109866 B CN 110109866B CN 201711458947 A CN201711458947 A CN 201711458947A CN 110109866 B CN110109866 B CN 110109866B
- Authority
- CN
- China
- Prior art keywords
- file
- directory
- file directory
- attribute object
- data
- 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/13—File access structures, e.g. distributed indices
-
- 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/18—File system types
- G06F16/182—Distributed file systems
-
- 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/18—File system types
- G06F16/185—Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
Landscapes
- Engineering & Computer Science (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)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种文件系统目录的管理方法及设备,用于提高存储系统的文件并发量,从而提高存储系统的访问效率。其中文件目录管理方法,应用在分布式存储系统中,所述分布式存储系统存储数据,所述文件目录用于对所述数据进行处理,所述处理方法包括:接收客户端发送的用于对数据进行处理的数据处理命令;确定Redis内存数据库中与所述数据处理命令对应的文件目录,其中,所述Redis内存数据库存储了至少一个文件目录,所述文件目录包括至少一个文件属性对象;在确定的文件目录中,确定与所述数据处理命令对应的文件属性对象;根据所述数据处理命令,处理确定的文件属性对象,以完成对文件目录的管理。
Description
技术领域
本发明涉及分布式存储技术领域,特别涉及一种文件系统目录的管理方法及设备。
背景技术
分布式文件系统都涉及到元数据管理的问题,通常是通过文件系统目录实现元数据的管理。
目前的分布式文件系统目录管理可以采用数据库表的方式实现。数据库表的方式即数据库表可以存储文件目录信息,数据表之间建立目录层级关系。而数据库连接需要占用输入输出(Input/Output,IO)资源,在使用时尽量晚申请连接、早释放连接,从而尽量节省资源。
但是在元数据大规模并发访问的情况下,以数据库表的方式实现分布式文件系统目录的管理,会占用大量的IO资源,这就可能对分布式文件系统的访问造成输入输出IO的瓶颈,甚至导致失败。从而降低了存储系统的文件并发量,也降低了存储系统进行访问的效率。
发明内容
本发明实施例提供一种文件系统目录的管理方法及设备,用于提高存储系统的文件并发量,从而提高存储系统的访问效率。
第一方面,提供了一种文件目录管理方法,应用在分布式存储系统中,所述分布式存储系统存储数据,所述文件目录用于对所述数据进行处理,所述处理方法包括:
接收客户端发送的用于对数据进行处理的数据处理命令;
确定Redis内存数据库中与所述数据处理命令对应的文件目录,其中,所述Redis内存数据库存储了至少一个文件目录,所述文件目录包括至少一个文件属性对象;
在确定的文件目录中,确定与所述数据处理命令对应的文件属性对象;
根据所述数据处理命令,处理确定的文件属性对象,以完成对文件目录的管理。
可选的,所述文件目录所包括的至少一个文件属性对象是基于Redis内存数据库的哈希Hash数据结构存储的。
可选的,所述文件属性对象包括文件名称,所述文件目录以所述文件名称作为Redis内存数据库的有序集合的key值,以键值对的形式存储各文件目录中的各文件属性对象,一个键值对应一个文件属性对象。
可选的,所述文件目录以文件名称作为根目录,确定Redis内存数据库中与所述数据处理命令对应的文件目录,包括:
获取所述数据处理命令中携带的key值,所述key值用于指示文件目录;
根据获取的key值,在Redis内存数据库中确定与所述key值对应的文件名称;
将所述文件名称对应的文件目录确定为与所述数据处理命令对应的文件目录。
可选的,所述数据处理命令携带访问标识,在确定的文件目录中,确定与所述数据处理命令对应的文件属性对象,包括:
在所述确定的文件目录中,确定与所述key值对应的各有序数组,其中,每个有序数组包括的每个数值对应每个文件属性对象;
对所述各有序数组进行遍历,在所述各有序数组中确定与所述数据处理命令中的访问标识对应的文件属性对象,所述访问标识与所述有序数据中的数值对应。
第二方面,提供了一种文件目录管理设备,应用在分布式存储系统中,所述分布式存储系统存储数据,所述文件目录管理设备通过文件目录对所述数据进行处理,所述管理设备包括:
接收单元,用于接收客户端发送的用于对数据进行处理的数据处理命令;
第一确定单元,用于确定Redis内存数据库中与所述数据处理命令对应的文件目录,其中,所述Redis内存数据库存储了至少一个文件目录,所述文件目录包括至少一个文件属性对象;
第二确定单元,用于在确定的文件目录中,确定与所述数据处理命令对应的文件属性对象;
处理单元,用于根据所述数据处理命令,处理确定的文件属性对象,以完成对文件目录的管理。
可选的,所述文件目录所包括的至少一个文件属性对象是基于Redis内存数据库的哈希Hash数据结构存储的。
可选的,所述文件属性对象包括文件名称,所述文件目录以所述文件名称作为Redis内存数据库的有序集合的key值,以键值对的形式存储各文件目录中的各文件属性对象,一个键值对应一个文件属性对象。
第三方面,提供一种文件目录管理设备,该管理设备包括:
至少一个处理器,以及
与所述至少一个处理器连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如第一方面任一所述的方法。
第四方面,提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一所述的方法。
本发明实施例提供了一种新的文件目录管理方法,该文件目录管理方法通过Redis内存数据库存储文件目录,从而可以根据Redis内存数据库中数据结构特点,实现文件目录的分层存储实现。由于用户可以直接操作Redis内存数据库中的存储数据,相较于通过IO资源访问,处理速度较快,即使在数据大规模并发访问的情况下,访问速度受IO资源的影响较小,克服了访问数据造成IO资源的瓶颈。同时提高了存储系统的文件并发量,也提高了存储系统访问的效率。
附图说明
图1是本发明实施例提供的文件目录管理方法的流程图;
图2为本发明实施例提供的文件目录管理设备的一种结构示意图;
图3为本发明实施例提供的文件目录管理设备的一种结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
目前的分布式文件系统目录管理采用数据库表的方式实现。但是数据库连接需要占用输入输出IO资源,所以要求在使用时尽量晚申请连接、早释放连接,从而尽量节省资源。而在数据大规模并发访问的情况下,以数据库表的方式实现分布式文件系统目录的管理,会占用大量的IO资源,这就可能对分布式文件系统的访问造成输入输出IO的瓶颈,甚至导致失败。从而降低了存储系统的文件并发量,也降低了存储系统进行访问的效率。同时,数据库的访问通过IO资源实现,访问速度较慢,从这个角度来说,也降低了存储系统进行访问的效率。
当然目前的分布式文件系统目录管理也可以依赖重量级文件服务系统的方式,其中,重量级文件服务系统可以理解为系统集成功能较多的服务系统,例如openstack swift的文件存储系统。但是重量级文件服务系统存在技术实现复杂度高、系统本身提供的系统目录管理不完善,一般需要采用额外或折中的方式实现。另外,与系统自身提供的账号系统捆绑度高难以满足业务需要。例如openstack swift的文件存储系统,所涉及的容器/对象Container/Object,其中,容器即文件目录,对象即文件的文件目录管理方式,无法实现多层级的文件系统目录。openstack swift的容器、对象存储,高度依赖自身的账户Account模块,增加系统复杂度。而分布式文件服务系统一般有独立的账号认证系统,例如单一登录系统,这样的系统一般希望采用统一的认证系统,这就导致暴露的应用程序API存在局限,例如,需要访问一个系统目录下的子文件及目录,需要多次操作API,存在效率低下、实现复杂等技术问题。
鉴于此,本发明实施例提供了一种新的文件目录管理方法,该文件目录管理方法通过Redis内存数据库存储文件目录,从而可以根据Redis内存数据库中数据结构特点,实现文件目录的分层存储实现。由于用户可以直接操作Redis内存数据库中的存储数据,相较于通过IO资源访问,处理速度较快,即使在数据大规模并发访问的情况下,访问速度受IO资源的影响较小,克服了访问数据造成IO资源的瓶颈。同时提高了存储系统的文件并发量,也提高了存储系统访问的效率。
下面结合说明书附图介绍本发明实施例提供的技术方案。
请参见图2,本发明实施例提供了一种文件目录管理方法,该文件目录管理方法可以应用在分布式存储系统中,分布式存储系统存储数据,文件目录用于对数据进行处理。该文件目录管理方法的流程描述如下:
S101:接收客户端发送的用于对数据进行处理的数据处理命令;
S102:确定Redis内存数据库中与数据处理命令对应的文件目录,其中,Redis内存数据库存储了至少一个文件目录,文件目录包括至少一个文件属性对象;
S103:在确定的文件目录中,确定与数据处理命令对应的文件属性对象;
S104:根据数据处理命令,处理确定的文件属性对象,以完成对文件目录的管理。
本发明实施例中的文件目录管理方法可以应用于具有数据处理能力较强的Redis服务器。Redis服务器可以与客户端连接,接收客户端发送的用于对数据进行处理的数据处理命令。Redis服务器可以根据接收的数据处理命令访问Redis内存数据库,基于Redis内存数据库实现数据的处理。Redis内存数据库是一种开源的键值对Key-Value数据库,可以支持多种数据结构。Redis内存数据库也支持多种存储数据类型,例如:字符串、列表、集或者哈希值等。
本发明实施例中的Redis内存数据库可以存储文件目录,Redis数据缓存在内存中,通过管理文件目录,例如更新文件目录,删除文件目录等实现数据的处理。其中,文件目录可以理解为是指向数据的,也就是根据文件目录可以查找到数据。本发明实施例中,文件目录可以包括至少一个文件属性对象。属性对象可以理解为是标识文件属性的数据。为了便于理解,请参见表1,表1是文件属性对象的示意表。
名称 | 含义 | 说明 |
filename | 文件名 | 标识文件的名称 |
type | 文件类型 | 标识是文件目录或文件 |
length | 文件大小 | 标识文件的大小 |
ext | 扩展名 | 标识文件的存储方式 |
contenttype | mime-type | 标识文件的格式 |
parent | 父目录 | 标识文件的顶层目录 |
create | 创建时间 | 标识文件的创建时间 |
lastmodified | 上一次修改时间 | 标识文件上一次修改的时间 |
表1
如表1中的名称所示,filename、length、type等可以理解为是属性对象。一个文件目录可以包括至少一个文件属性对象,即文件目录实际上是文件属性对象集。本发明实施例中的文件目录所包括的至少一个文件属性对象可以是基于Redis内存数据库的哈希Hash数据结构存储的。在本发明实施例中,文件目录以文件属性对象,例如文件名称作为Redis内存数据库的有序集合的key值,以键值对的形式存储各文件目录中的各文件属性对象,一个键值对应一个文件属性对象。
为了便于理解,以创建一个文件目录为例说明文件目录与文件属性对象的关系。例如,创建一个文件目录,例如,该文件目录可以是HMSET ROOTfilename"根目录"type0length 0,其中,以文件名“filename”为根名录ROOT,作为Redis内存数据库的有序集合的key值。“type”对应的值是0,可以表示ROOT下还包括文件子目录,若是“type”对应的值是1,则可以表示ROOT下只有文件,而不包括文件子目录。“length”对应的值是0,则可以表示文件的大小,例如100K。而文件目录包括的文件属性对象,例如“type”、“length”等都对应有键值。
当然,可能的实施方式中,若文件存在子文件,例如,一个文档存在一个文件夹下,而该文件夹又存在另一个文件夹下。本发明实施例还可以通过文件名及指示子文件的标识来创建文件目录。例如,本发明实施例可以基于文件名“filename”+子文件“children”的命名规则。结合上述的实施例,针对上述的ROOT根目录,其子文件目录可以命名为ROOT_children。
采用文件名称,作为Redis内存数据库的有序集合的key值,文件目录包括的文件属性对象可以对应一个键值,例如可以是整数作为有序集合的score。例如ROOT目录中存在file1、file2两个文件目录,则ROOT目录的Children,即子文件目录,可以通过如下方式实现:
file1文件目录:ZADD ROOT_children 0 file1;
file2文件目录:ZADD ROOT_children 0 file2;
上述中的file1和file2的score都为0,即没有先后顺序。当然file1和file2的score可以不同,例如可以是file1和file2创建的先后时间。本发明实施例可以对文件目录进行管理,通过对score排序,实现对文件的排序。为了便于理解,下面列举两个最常使用的排序应用场景进行说明如何实现对文件的排序。
第一例:score可以是文件的修改时间,可将文件的上一次修改时间转换为整数型的时间戳,设置为score,再利用score实现对文件的排序,即按修改时间对文件进行排序。
第一例:score可以是部分文件的文件目录置顶显示,可以将普通文件score设置为0,置顶文件的score设置为1,再利用score实现对文件的排序,通过对score的排序,实现置顶文件展示在普通文件之前。
本发明实施例中的文件目录基于Redis内存数据库的哈希Hash数据结构存储,在存储数据时,首先可以创建文件,即将一个文件包括的文件属性对象保存在已创建的文件目录中,同时将已创建的文件目录保存到对应的父目录的文件子目录中。例如,创建一个文件的文件目录,将该文件包括的文件属性对象写入已创建的文件目录,并判断已创建的文件目录是否存在父目录,如果存在父目录,则读取父目录下的子文件目录,将已创建的文件目录名称保存至读取的子文件目录,从而建立文件与文件目录相对应的关系,只要操作文件目录就可以实现对文件的操作。
文件目录建好了之后,就意味着数据也存储好了,通过管理文件目录就可以实现对数据的处理。此时,如果Redis服务器接收到客户端发送的用于对数据进行处理的数据处理命令,可以确定Redis内存数据库中与数据处理命令对应的文件目录,从而管理确定的文件目录,实现对数据的处理。
可能的实施方式中,Redis服务器可以获取数据处理命令中携带的key值,由于key值标识文件目录,从而可以根据获取的key值,在Redis内存数据库中确定与key值对应的文件名称,本发明实施例中,以文件名称为文件的根目录,因此,可以将文件名称对应的文件目录确定为与数据处理命令对应的文件目录。
Redis服务器确定了文件目录之后,可以在确定的文件目录中,确定与数据处理命令对应的文件属性对象,从而根据数据处理命令,处理确定的文件属性对象,以完成对文件目录的管理。
可能的实施方式中,Redis服务器可以在确定的文件目录中,确定与key值对应的各有序数组,其中,每个有序数组包括的每个数值对应每个文件属性对象。对各有序数组进行遍历,在各有序数组中确定与数据处理命令中的访问标识对应的文件属性对象,访问标识与有序数据中的数值对应。现有技术中,由于数据库是以链表的形式存储,而访问链表是不能进行数据的随机访问,只能通过链表的表头的指针顺序访问,这就导致链表中的数据的更新或查询过程都需要对链表中的数据从头到尾遍历一遍,从而导致数据的处理过程效率较低。而本发明实施例中,Redis内存数据库中的文件属性对象是以键值对的形式存储,以这种存储方式存储的文件属性对象能够在Redis内存数据库被快速读取,从而提高了对文件属性对象对应的数据处理的效率。
本发明实施例中的Redis服务器确定了文件属性对象后,可以对文件属性对象进行处理,从而实现对数据的处理。
例如,如果数据处理命令是更新文件命令,更新文件就可以更新文件目录,修改过程与创建文件目录相同,这里不再赘述。可能的实施方式中,可以通过Redis的HMSET命令实现文件目录的更新,进而实现文件的更新。
如果数据处理命令是读取文件命令,读取文件可以直接读取文件目录。通过RRedis的HGETALL命令实现读取文件目录,可以读取文件目录包括的所有文件属性对象,将读取的文件属性对象转换到对应的文件实际的对象,从而实现对文件的读取。
如果数据处理命令是删除文件命令,删除文件可以同时删除该文件的文件目录及该文件的父目录的文件子目录中对应数据。例如删除ROOT根目录中的file1文件,可以通过以下两步实现。首先可以删除文件目录,可以通过RRedis的DEL file1命令实现。再删除父目录下的文件子目录中对应数据,例如,ZREM ROOT_children file1。
如果数据处理命令是查询文件列表命令,查询文件列表可以同时读取文件目录及文件子目录。例如,读取ROOT根目录,读取文件目录,可以通过Redis的HGETALL ROOT命令实现。再读取文件子目录。例如查询文件列表命令为ZRANGE key 0 10,即第一个数字0是起始查询元素,表示第一个元素,第二个数字10表示截止到11查询个元素。ZRANGE key 0 -1,则可以表示查询全部的元素,则返回所有文件属性对象。
综上所述,本发明实施例提供的本发明实施例提供了一种新的文件目录管理方法,该文件目录管理方法通过Redis内存数据库存储文件目录,从而可以根据Redis内存数据库中数据结构特点,实现文件目录的分层存储实现。由于用户可以直接操作Redis内存数据库中的存储数据,相较于通过IO资源访问,处理速度较快,即使在数据大规模并发访问的情况下,访问速度受IO资源的影响较小,克服了访问数据造成IO资源的瓶颈。同时提高了存储系统的文件并发量,也提高了存储系统访问的效率。
本发明实施例基于Redis管理分布式文件系统目录,将分布式文件系统目录管理剥离,作为系统应用中的独立模块,降低系统耦合度,增加系统灵活性。Redis内存数据库存储文件目录,可以实现多层级的文件系统目录,提供完整的分布式文件系统目录管理。Redis内存数据库的读写速度极快,受IO影响较小,且Redis内存数据库较易横向扩展,可以实现成本低,容易快速部署,维护成本低的技术效果。
下面结合说明书附图介绍本发明实施例提供的设备。
请参加图2,基于同一发明构思,本发明一实施例提供一种文件目录管理设备,该文件目录管理设备可以是客户端,应用在分布式存储系统中,其中,分布式存储系统存储数据,该文件目录管理设备通过文件目录对数据进行处理。该文件目录管理设备可以包括接收单元201、第一确定单元202、第二确定单元203和处理单元204。其中。接收单元201可以用于接收客户端发送的用于对数据进行处理的数据处理命令。第一确定单元202可以用于确定Redis内存数据库中与数据处理命令对应的文件目录,其中,Redis内存数据库存储了至少一个文件目录,文件目录包括至少一个文件属性对象。第二确定单元203可以用于在确定的文件目录中,确定与数据处理命令对应的文件属性对象。处理单元204可以用于根据数据处理命令,处理确定的文件属性对象,以完成对文件目录的管理。
可选的,文件目录说包括的至少一个文件属性对象是基于Redis内存数据库的哈希Hash数据结构存储的。
可选的,文件元数据包括文件名称,文件目录以文件名称作为Redis内存数据库的有序集合的key值,以键值对的形式存储各文件目录中的各文件属性对象,一个键值对应一个文件属性对象。
可选的,文件目录以文件名称作为根目录,第一确定单元202具体用于:
获取数据处理命令中携带的key值,key值用于指示文件目录;
根据获取的key值,在Redis内存数据库中确定与key值对应的文件名称;
将文件名称对应的文件目录确定为与数据处理命令对应的文件目录。
可选的,数据处理命令携带访问标识,在确定的文件目录中,第二确定单元203具体用于:
在确定的文件目录中,确定与key值对应的各有序数组,其中,每个有序数组包括的每个数值对应每个文件属性对象;
对各有序数组进行遍历,在各有序数组中确定与数据处理命令中的访问标识对应的文件属性对象,访问标识与有序数据中的数值对应。
请参见图3,基于同一发明构思,本发明一实施例提供一种文件目录管理设备,该文件目录管理设备可以是客户端,应用在分布式存储系统中,其中,分布式存储系统存储数据,该文件目录管理设备通过文件目录对数据进行处理。该文件目录管理设备可以包括:至少一个处理器301,处理器301用于执行存储器中存储的计算机程序时实现本发明实施例提供的如图1所示的文件目录管理方法的步骤。
可选的,处理器301具体可以是中央处理器、特定应用集成电路(ApplicationSpecific Integrated Circuit,ASIC),可以是一个或多个用于控制程序执行的集成电路。
可选的,该文件目录管理设备还包括与至少一个处理器连接的存储器302,存储器302可以包括只读存储器(Read Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)和磁盘存储器。存储器302用于存储处理器301运行时所需的数据,即存储有可被至少一个处理器301执行的指令,至少一个处理器301通过执行存储器302存储的指令,执行如图1所示的方法。其中,存储器302的数量为一个或多个。其中,存储器302在图3中一并示出,但需要知道的是存储器302不是必选的功能模块,因此在图3中以虚线示出。
其中,接收单元201、第一确定单元202、第二确定单元203和处理单元204所对应的实体设备均可以是前述的处理器301。该文件目录管理设备可以用于执行图1所示的实施例所提供的方法。因此关于该设备中各功能模块所能够实现的功能,可参考图1所示的实施例中的相应描述,不多赘述。
本发明实施例还提供一种计算机存储介质,其中,计算机存储介质存储有计算机指令,当计算机指令在计算机上运行时,使得计算机执行如图1所述的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:通用串行总线闪存盘(Universal Serial Bus flash disk)、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (6)
1.一种文件目录管理方法,应用在分布式存储系统中,所述分布式存储系统存储数据,所述文件目录用于对所述数据进行处理,其特征在于,所述处理方法包括:
接收客户端发送的用于对数据进行处理的数据处理命令;
确定Redis内存数据库中与所述数据处理命令对应的文件目录,其中,所述Redis内存数据库存储了至少一个文件目录,所述文件目录包括至少一个文件属性对象,所述至少一个文件属性对象是基于Redis内存数据库的哈希Hash数据结构存储的,所述文件属性对象用于表征标识文件属性的数据,所述文件属性对象包括文件名称,所述文件目录以所述文件名称作为Redis内存数据库的有序集合的key值,以键值对的形式存储各文件目录中的各文件属性对象,一个键值对应一个文件属性对象;其中,任一文件属性对象的键值作为有序集合的score,所述任一文件属性对象的键值为所述文件目录的修改时间或所述文件目录的置顶显示,通过对所述任一文件属性对象的键值进行排序,以实现对文件的排序;
在确定的文件目录中,确定与所述数据处理命令对应的文件属性对象;
根据所述数据处理命令,处理确定的文件属性对象,以完成对文件目录的管理。
2.如权利要求1所述的方法,其特征在于,所述文件目录以文件名称作为根目录,确定Redis内存数据库中与所述数据处理命令对应的文件目录,包括:
获取所述数据处理命令中携带的key值,所述key值用于指示文件目录;
根据获取的key值,在Redis内存数据库中确定与所述key值对应的文件名称;
将所述文件名称对应的文件目录确定为与所述数据处理命令对应的文件目录。
3.如权利要求2所述的方法,其特征在于,所述数据处理命令携带访问标识,在确定的文件目录中,确定与所述数据处理命令对应的文件属性对象,包括:
在所述确定的文件目录中,确定与所述key值对应的各有序数组,其中,每个有序数组包括的每个数值对应每个文件属性对象;
对所述各有序数组进行遍历,在所述各有序数组中确定与所述数据处理命令中的访问标识对应的文件属性对象,所述访问标识与所述有序数组中的数值对应。
4.一种文件目录管理设备,应用在分布式存储系统中,所述分布式存储系统存储数据,所述文件目录管理设备通过文件目录对所述数据进行处理,其特征在于,所述管理设备包括:
接收单元,用于接收客户端发送的用于对数据进行处理的数据处理命令;
第一确定单元,用于确定Redis内存数据库中与所述数据处理命令对应的文件目录,其中,所述Redis内存数据库存储了至少一个文件目录,所述文件目录包括至少一个文件属性对象,所述至少一个文件属性对象是基于Redis内存数据库的哈希Hash数据结构存储的,所述文件属性对象用于表征标识文件属性的数据,所述文件属性对象包括文件名称,所述文件目录以所述文件名称作为Redis内存数据库的有序集合的key值,以键值对的形式存储各文件目录中的各文件属性对象,一个键值对应一个文件属性对象;其中,任一文件属性对象的键值作为有序集合的score,所述任一文件属性对象的键值为所述文件目录的修改时间或所述文件目录的置顶显示,通过对所述任一文件属性对象的键值进行排序,以实现对文件的排序;
第二确定单元,用于在确定的文件目录中,确定与所述数据处理命令对应的文件属性对象;
处理单元,用于根据所述数据处理命令,处理确定的文件属性对象,以完成对文件目录的管理。
5.一种文件目录管理设备,其特征在于,包括:
至少一个处理器,以及
与所述至少一个处理器连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如权利要求1-3任一项所述的方法。
6.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711458947.7A CN110109866B (zh) | 2017-12-28 | 2017-12-28 | 一种文件系统目录的管理方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711458947.7A CN110109866B (zh) | 2017-12-28 | 2017-12-28 | 一种文件系统目录的管理方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110109866A CN110109866A (zh) | 2019-08-09 |
CN110109866B true CN110109866B (zh) | 2021-11-09 |
Family
ID=67483452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711458947.7A Active CN110109866B (zh) | 2017-12-28 | 2017-12-28 | 一种文件系统目录的管理方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110109866B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782636A (zh) * | 2020-06-30 | 2020-10-16 | 浙江中控技术股份有限公司 | 一种数据处理方法及装置 |
CN113010479A (zh) * | 2021-03-18 | 2021-06-22 | 山东英信计算机技术有限公司 | 一种文件管理方法、装置与介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102725755A (zh) * | 2011-12-31 | 2012-10-10 | 华为技术有限公司 | 文件访问方法及系统 |
CN103473239A (zh) * | 2012-06-08 | 2013-12-25 | 腾讯科技(深圳)有限公司 | 一种非关系型数据库数据更新方法和装置 |
CN106709048A (zh) * | 2017-01-05 | 2017-05-24 | 无锡江南计算技术研究所 | 一种面向高性能计算的分布式数据组织方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090036319A1 (en) * | 2007-07-30 | 2009-02-05 | Sampas Nicholas M | Methods and systems for pairwise filtering candidate probe nucleic acid sequences |
US9922046B2 (en) * | 2011-04-26 | 2018-03-20 | Zettaset, Inc. | Scalable distributed metadata file-system using key-value stores |
CN103902632B (zh) * | 2012-12-31 | 2018-01-02 | 华为技术有限公司 | 键值存储系统中构建文件系统的方法、装置及电子设备 |
CN103577123B (zh) * | 2013-11-12 | 2016-06-22 | 河海大学 | 一种基于hdfs的小文件优化存储方法 |
US9894119B2 (en) * | 2014-08-29 | 2018-02-13 | Box, Inc. | Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms |
CN105162891A (zh) * | 2015-10-14 | 2015-12-16 | 四川中科腾信科技有限公司 | 一种基于ip网络的数据存储方法 |
CN105843956A (zh) * | 2016-04-14 | 2016-08-10 | 北京搜狐新媒体信息技术有限公司 | 一种分页查询方法及系统 |
-
2017
- 2017-12-28 CN CN201711458947.7A patent/CN110109866B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102725755A (zh) * | 2011-12-31 | 2012-10-10 | 华为技术有限公司 | 文件访问方法及系统 |
CN103473239A (zh) * | 2012-06-08 | 2013-12-25 | 腾讯科技(深圳)有限公司 | 一种非关系型数据库数据更新方法和装置 |
CN106709048A (zh) * | 2017-01-05 | 2017-05-24 | 无锡江南计算技术研究所 | 一种面向高性能计算的分布式数据组织方法 |
Non-Patent Citations (1)
Title |
---|
如何在redis中实现文件夹分层树?;molicule;《http://cn.voidcc.com/question/p-ndswigek-bdv.html》;20130108;第1页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110109866A (zh) | 2019-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104714755B (zh) | 一种快照管理方法及装置 | |
US9336227B2 (en) | Selective synchronization in a hierarchical folder structure | |
CN111046034B (zh) | 管理内存数据及在内存中维护数据的方法和系统 | |
CN106484820B (zh) | 一种重命名方法、访问方法及装置 | |
US20150269203A1 (en) | Accelerated access to objects in an object store implemented utilizing a file storage system | |
US20170031948A1 (en) | File synchronization method, server, and terminal | |
GB2439578A (en) | Virtual file system with links between data streams | |
Tang et al. | Deferred lightweight indexing for log-structured key-value stores | |
CN104081391A (zh) | 使用文件克隆的单实例化方法和利用该方法的文件存储系统 | |
CN109669925B (zh) | 非结构化数据的管理方法及装置 | |
CN110347651A (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
CN109284273B (zh) | 一种采用后缀数组索引的海量小文件查询方法及系统 | |
US11151081B1 (en) | Data tiering service with cold tier indexing | |
CN103617199A (zh) | 一种操作数据的方法和系统 | |
WO2014110940A1 (en) | A method, apparatus and system for storing, reading the directory index | |
CN103501319A (zh) | 一种低延迟的面向小文件的分布式存储系统 | |
GB2439577A (en) | Storing data in streams of varying size | |
CN111651424B (zh) | 一种数据处理方法、装置、数据节点及存储介质 | |
CN110109866B (zh) | 一种文件系统目录的管理方法及设备 | |
CN111522791A (zh) | 一种分布式文件重复数据删除系统及方法 | |
CN112334891B (zh) | 用于搜索服务器的集中式存储 | |
CN114610680A (zh) | 分布式文件系统元数据管理方法、装置、设备及存储介质 | |
CN102867029A (zh) | 一种管理分布式文件系统目录的方法及分布式文件系统 | |
CN114297196B (zh) | 元数据存储方法、装置、电子设备及存储介质 | |
US20220365905A1 (en) | Metadata processing method and apparatus, and a computer-readable storage medium |
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 | ||
GR01 | Patent grant |