[发明专利]文件存储方法及装置有效
申请号: | 201210238427.6 | 申请日: | 2012-07-10 |
公开(公告)号: | CN103544156B | 公开(公告)日: | 2019-04-09 |
发明(设计)人: | 唐孟松 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F16/13 | 分类号: | G06F16/13;G06F16/172 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 赵囡囡 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 文件 存储 方法 装置 | ||
本发明公开一种文件存储方法及装置,其方法包括:记录父文件夹的元信息,保存在主key中;当父文件夹下包括至少一子文件夹列表和/或文件列表时,将父文件夹下的至少一子文件夹列表和/或文件列表的内容保存至基于主key的副key中。本发明实现了数据的无限扩展,且在数据累积变大的情况下,可避免来自底层数据存储的瓶颈,达到无限制文件夹系统目录树存储的目的。相比现有技术,本发明将大数据分拆成多个key来保存,使得数据均匀,提高了系统数据库的数据存储稳定性,更利于数据的扩容以及系统业务运营。
技术领域
本发明涉及计算机数据存储技术领域,尤其涉及一种文件存储方法及装置。
背景技术
传统的PC系统通常采用目录树文件夹+文件的存储模式来对文件进行存储,其数据存储结构如图1所示。其中,最顶层的文件夹称为根目录,根目录下的文件夹列表称为子目录。每个文件夹都可以保存子文件夹和文件列表,各文件夹、子文件夹和文件列表构成一种递归的数据结构。
在上述树形结构存储模式中,采用key-value数据库来保存数据,即,每个文件夹作为一个key保存,value则作为当前文件夹的子目录列表和文件名。其存储记录关系如图2所示。在图2中,椭圆圈内表示以其左边的folderkey保存一条记录的value。
现有的这种树形结构中,在每次读取目录树时,需要逐层拉取数据。即首先必须拉取根目录,然后再拉取下一层的目录,不能越级拉取目录信息。而且,对于一般的key-value数据库来说,每层文件夹和文件列表的数据不能太大,数据过大则会影响系统性能。
因此,当某个用户的文件夹或者文件增多时,则可能遇到来自底层的数据访问性能瓶颈,尤其是在现有的网络文件系统中,比如QQ相册、网盘,云存储等应用,采用现有的数据存储结构,则会遭遇存储与访问上的性能瓶颈,因为大数据将导致存储和访问上的困难,当数据大到系统支撑的阀值时,则需要采用更为复杂的系统来解决大数据问题;此外,现有的数据存储结构中,数据的分布无法控制,对于key-value数据库,则是依据key来路由,因此,不同的Folderkey需要写到不同的网络存储块,而网络存储块采用固定的规则分配,无法考虑到数据存储的扩容以及特定的需求等问题。
发明内容
本发明的主要目的在于提供一种文件存储方法及装置,旨在提高数据存储稳定性及可扩展性,达到无限制文件夹系统目录树的存储目的。
为了达到上述目的,本发明提出一种文件存储方法,包括以下步骤:
记录父文件夹的元信息,保存在主key中;
当所述父文件夹下包括至少一子文件夹列表和/或文件列表时,将所述父文件夹下的所述至少一子文件夹列表和/或文件列表的内容保存至基于所述主key的副key中。
优选地,所述副key为多个,每个所述副key分别独立保存相应的子文件夹列表和/或文件列表的内容。
优选地,该方法还包括:
在相应的副key中添加、删除或重命名所述父文件夹下的子文件夹列表和/或文件列表。
优选地,所述在相应的副key中添加、删除或重命名所述父文件夹下的子文件夹列表和/或文件列表的步骤之后还包括:
更新所述主key中的元信息。
优选地,所述记录父目录下文件夹的元信息,保存在主key中的步骤之前还包括:
基于所述主key生成所述副key。
优选地,所述主key保存的元信息至少包括:当前最大文件标识、当前数据所在set、文件删除信息和/或文件夹及文件的写入时间。
本发明还提出一种文件存储装置,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210238427.6/2.html,转载请声明来源钻瓜专利网。