文件存储方法及装置制造方法及图纸

技术编号:9618290 阅读:97 留言:0更新日期:2014-01-30 06:06
本发明专利技术公开一种文件存储方法及装置,其方法包括:记录父文件夹的元信息,保存在主key中;当父文件夹下包括至少一子文件夹列表和/或文件列表时,将父文件夹下的至少一子文件夹列表和/或文件列表的内容保存至基于主key的副key中。本发明专利技术实现了数据的无限扩展,且在数据累积变大的情况下,可避免来自底层数据存储的瓶颈,达到无限制文件夹系统目录树存储的目的。相比现有技术,本发明专利技术将大数据分拆成多个key来保存,使得数据均匀,提高了系统数据库的数据存储稳定性,更利于数据的扩容以及系统业务运营。

File storage method and device

The invention discloses a file storage method and device, the method includes: meta information records the parent folder, stored in the main key; when the parent folder includes at least one sub folder list and / or file list, the list will at least a sub folder and / or file list under the parent folder to save the contents to based on the main key side key. The invention realizes the unlimited expansion of data, and avoids the bottleneck of data storage from the lower layer under the condition of large accumulation of data, and achieves the purpose of storing the directory tree of the unlimited folder system. Compared with the prior art, the invention partitions large data into a plurality of key to save data, improves the data storage stability of the system database, and is more favorable for data expansion and system service operation.

【技术实现步骤摘要】
文件存储方法及装置
本专利技术涉及计算机数据存储
,尤其涉及一种文件存储方法及装置。
技术介绍
传统的PC系统通常采用目录树文件夹+文件的存储模式来对文件进行存储,其数据存储结构如图1所示。其中,最顶层的文件夹称为根目录,根目录下的文件夹列表称为子目录。每个文件夹都可以保存子文件夹和文件列表,各文件夹、子文件夹和文件列表构成一种递归的数据结构。在上述树形结构存储模式中,采用key-value数据库来保存数据,即,每个文件夹作为一个key保存,value则作为当前文件夹的子目录列表和文件名。其存储记录关系如图2所示。在图2中,椭圆圈内表示以其左边的folderkey保存一条记录的value。现有的这种树形结构中,在每次读取目录树时,需要逐层拉取数据。即首先必须拉取根目录,然后再拉取下一层的目录,不能越级拉取目录信息。而且,对于一般的key-value数据库来说,每层文件夹和文件列表的数据不能太大,数据过大则会影响系统性能。因此,当某个用户的文件夹或者文件增多时,则可能遇到来自底层的数据访问性能瓶颈,尤其是在现有的网络文件系统中,比如QQ相册、网盘,云存储等应用,采用现有的数据存储结构,则会遭遇存储与访问上的性能瓶颈,因为大数据将导致存储和访问上的困难,当数据大到系统支撑的阀值时,则需要采用更为复杂的系统来解决大数据问题;此外,现有的数据存储结构中,数据的分布无法控制,对于key-value数据库,则是依据key来路由,因此,不同的Fo I derkey需要写到不同的网络存储块,而网络存储块采用固定的规则分配,无法考虑到数据存储的扩容以及特定的需求等问题。
技术实现思路
本专利技术的主要目的在于提供一种文件存储方法及装置,旨在提高数据存储稳定性及可扩展性,达到无限制文件夹系统目录树的存储目的。为了达到上述目的,本专利技术提出一种文件存储方法,包括以下步骤:记录父文件夹的元信息,保存在主key中;当所述父文件夹下包括至少一子文件夹列表和/或文件列表时,将所述父文件夹下的所述至少一子文件夹列表和/或文件列表的内容保存至基于所述主key的副key中。优选地,所述副key为多个,每个所述副key分别独立保存相应的子文件夹列表和/或文件列表的内容。[0011 ] 优选地,该方法还包括:在相应的副key中添加、删除或重命名所述父文件夹下的子文件夹列表和/或文件列表。优选地,所述在相应的副key中添加、删除或重命名所述父文件夹下的子文件夹列表和/或文件列表的步骤之后还包括:更新所述主key中的元信息。优选地,所述记录父目录下文件夹的元信息,保存在主key中的步骤之前还包括:基于所述主key生成所述副key。优选地,所述主key保存的元信息至少包括:当前最大文件标识、当前数据所在set、文件删除信息和/或文件夹及文件的写入时间。本专利技术还提出一种文件存储装置,包括:主存储模块,用于记录父文件夹的元信息,保存在主key中;副存储模块,用于当所述父文件夹下包括至少一子文件夹列表和/或文件列表时,将所述父文件夹下的所述至少一子文件夹列表和/或文件列表的内容保存至基于所述主key的副key中。优选地,所述副key为多个,每个所述副key分别独立保存相应的子文件夹列表和/或文件列表的内容。优选地,该装置还包括:处理模块,用于在相应的副key中添加、删除或重命名所述父文件夹下的子文件夹列表和/或文件列表;更新模块,用于更新所述主key中的元信息。优选地,该装置还包括:生成模块,用于基于所述主key生成所述副key。本专利技术提出的一种文件存储方法及装置,改变现有的目录树数据的存储模式,采用父文件夹以主key写一条元信息,其文件夹列表和文件列表以多个副key的方式写入数据,从而实现了数据的无限扩展,且在数据累积变大的情况下,可避免来自底层数据存储的瓶颈,达到无限制文件夹系统目录树存储的目的。相比现有技术,本专利技术将大数据分拆成多个key来保存,使得数据均匀,提高了系统数据库的数据存储稳定性,更利于数据的扩容以及系统业务运营。【附图说明】图1是现有技术中目录树式的数据存储结构示意图;图2是图1所示的数据存储结构中的存储记录关系示意图;图3是本专利技术文件存储方法第一实施例的流程示意图;图4是本专利技术中父文件夹的主key保存的元信息结构示意图;图5是本专利技术中以主key以及其副key构成的数据存储结构示意图;图6是本专利技术文件存储方法第二实施例的流程示意图;图7是本专利技术文件存储方法第三实施例的流程示意图;图8是本专利技术文件存储装置第一实施例的结构示意图;图9是本专利技术文件存储装置第二实施例的结构示意图;图10是本专利技术文件存储装置第三实施例的结构示意图。为了使本专利技术的技术方案更加清楚、明了,下面将结合附图作进一步详述。【具体实施方式】本专利技术实施例解决方案主要是:不使用唯一的一个key保存某个文件夹的文件夹列表和文件列表,而是采用以主key保存父文件夹的元信息,以多个副key的形式保存父文件夹下的多个子文件夹列表和文件列表,以实现数据的无限扩展,避免数据累积变大时遭遇来自底层存储的瓶颈。如图3所示,本专利技术第一实施例提出一种文件存储方法,包括:步骤S101,记录父文件夹的元信息,保存在主key中;步骤S102,当所述父文件夹下包括至少一子文件夹列表和/或文件列表时,将所述父文件夹下的所述至少一子文件夹列表和/或文件列表的内容保存至基于所述主key的副key中。本实施例针对现有的目录树数据存储结构,将原来的某个父目录的数据(包括文件夹列表和文件列表)采用一个parentkey保存一条数据的方式,改变为以父目录的parentkey作为主key写入一条元信息,该父目录的文件夹列表和文件夹列表则采用多个副key的方式,写入多条数据,达到无限制文件夹系统目录树存储的目的。上述父目录可以为目录树结构中的根目录。本实施例设定父目录所在文件夹为父文件夹,父目录下的各文件夹列表和文件列表为子文件夹列表和文件列表,其中,每个父文件夹作为一条主数据,具有独立性,每个父文件夹有一个主key对应,其子文件夹和文件列表保存在基于上述主key的副key中。所述父文件夹下可以有数据,也可以没有数据,即父文件夹下可以包括至少一子文件夹列表和/或文件列表;也可以为空文件夹,没有文件夹列表和文件列表。当父文件夹为空文件夹时,则仅将父文件夹的元信息写入主key中。如图4所示,图4为本实施例中父文件夹的主key保存的元信息结构示意图,该兀信息包括:Key> Parentkey> FolderNum、MaxFieID> SeticU Delinfo、TimeStampl 以及TimeStamp2,其中:Key即为父文件夹的主key,该主key为整个文件系统的核心数据结构,用于标识父文件夹的关键字;在整个系统中,主key是唯一的,其所有的副key均与主key关联,而各副key之间又相互独立,因此,整个系统的主key和副key不会重复。Parentkey为当前父文件夹的上一级的父文件夹的主key ;FolderNum表示目前总的子文件夹的数量,用于记录每个父文件夹的子文件夹的个数,这样当子文件夹数量增多时,用于处理子文件夹列表存储的逻辑,如果子文件夹列表多到无法在一档数据中存本文档来自技高网
...

【技术保护点】
一种文件存储方法,其特征在于,包括以下步骤:记录父文件夹的元信息,保存在主key中;?当所述父文件夹下包括至少一子文件夹列表和/或文件列表时,将所述父文件夹下的所述至少一子文件夹列表和/或文件列表的内容保存至基于所述主key的副key中。

【技术特征摘要】
1.一种文件存储方法,其特征在于,包括以下步骤: 记录父文件夹的元信息,保存在主key中; 当所述父文件夹下包括至少一子文件夹列表和/或文件列表时,将所述父文件夹下的所述至少一子文件夹列表和/或文件列表的内容保存至基于所述主key的副key中。2.根据权利要求1所述的方法,其特征在于,所述副key为多个,每个所述副key分别独立保存相应的子文件夹列表和/或文件列表的内容。3.根据权利要求1所述的方法,其特征在于,还包括: 在相应的副key中添加、删除或重命名所述父文件夹下的子文件夹列表和/或文件列表。4.根据权利要求3所述的方法,其特征在于,所述在相应的副key中添加、删除或重命名所述父文件夹下的子文件夹列表和/或文件列表的步骤之后还包括: 更新所述主key中的元信息。5.根据权利要求1-4中任一项所述的方法,其特征在于,所述记录父目录下文件夹的元信息,保存在主key中的步骤之前还包括: 基于所述主key生成所述副key。6.根据权...

【专利技术属性】
技术研发人员:唐孟松
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1