一种存储及查找数据的方法及装置制造方法

文档序号:6489207阅读:242来源:国知局
一种存储及查找数据的方法及装置制造方法
【专利摘要】本发明公开了一种存储及查找数据的方法及装置,涉及互联网领域,用于解决当用户的活跃度较大时,无法完整的存储该用户的个人数据的问题。本发明提供的方法包括:建立一级索引区,所述一级索引区记录有数据存储区中各用户的起始数据块以及各用户的数据块总数;当用户的数据量发生变化时,根据变化后的数据量大小为该用户重新分配数据块,在所述数据存储区中进行数据块整理,并修改所述一级索引区。本发明适用于互联网领域,用于存储及查找数据。
【专利说明】一种存储及查找数据的方法及装置
【技术领域】
[0001]本发明涉及互联网领域,尤其涉及一种存储及查找数据的方法及装置。
【背景技术】
[0002]随着互联网的快速发展,社交网络的出现极大的丰富了人们的日常生活,已经逐渐成为人们获取网络信息、展现自我、营销推广、互动交友的重要途径。一般的,社交网络均提供UGC(User Generated Content,用户原创内容)应用,用户可以通过该应用丰富个人信息、更好的享受社交服务。UGC应用会产生“时间膨胀数据”,这是社交网络中的一种典型数据形式,其特点在于,随着用户使用时间的增加,该用户的时间膨胀数据的数据量会逐步变大。社交网络的运营商为用户分配存储空间以存储各用户的个人数据,所述个人数据中绝大部分为时间膨胀数据。
[0003]目前,运营商会为用户分配固定大小的存储空间,用户的个人数据的数据量不能超过运营商分配的存储空间。社交网络中用户的活跃程度差异很大,为了解决活跃用户数据较大的问题,通常运营商分配的存储空间的大小会远超过所有用户的个人数据的平均值。但即使这样设计,也会有部分活跃度较大的活跃用户的个人数据会被淘汰,常见的淘汰策略如较旧数据优先淘汰,即当用户的个人数据超过运营商分配的存储空间时,会淘汰最旧的时间膨胀数据。
[0004]在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:
[0005]当用户的活跃度较大时,无法完整的存储该用户的个人数据;另一方面,对于活跃度较低的用户,为其分配的存储空间大部分都处于空闲状态,存储资源的利用率较低。

【发明内容】

[0006]本发明的实施例提供一种存储及查找数据的方法及装置,能够解决当用户的活跃度较大时,无法完整的存储该用户的个人数据的问题,同时还能够提高存储资源的利用率。
[0007]为达到上述目的,本发明的实施例采用如下技术方案:
[0008]一方面,本发明实施例提供了一种存储数据的方法,所述方法包括:
[0009]建立一级索引区,所述一级索引区记录有数据存储区中各用户的起始数据块以及各用户的数据块总数;
[0010]当用户的数据量发生变化时,根据变化后的数据量大小为该用户重新分配数据块,在所述数据存储区中进行数据块整理,并修改所述一级索引区。
[0011]基于上述存储数据的方法,本发明实施例还提供了一种查找数据的方法,所述方法包括:
[0012]在所述一级索引区查找目标用户在所述数据存储区中的起始数据块和数据块总数;
[0013]根据所述起始数据块和数据块总数,在所述数据存储区中确定所述目标用户的数据。[0014]另一方面,本发明实施例还提供了一种存储数据的装置,所述装置包括:
[0015]一级索引单元,用于建立一级索引区,所述一级索引区记录有数据存储区中各用户的起始数据块以及各用户的数据块总数;
[0016]数据存储单元,用于当用户的数据量发生变化时,根据变化后的数据量大小为该用户重新分配数据块,在所述数据存储区中进行数据块整理;
[0017]所述一级索引单元还用于在所述数据存储单元完成数据块整理后,修改所述一级索引区。
[0018]基于上述存储数据的装置,本发明实施例还提供了一种查找数据的装置,所述装置包括:
[0019]第一查找单元,用于在所述一级索引单元建立的一级索引区查找目标用户在所述数据存储区中的起始数据块和数据块总数;
[0020]第一确定单元,用于根据所述第一查找单元查找的起始数据块和数据块总数,在所述数据存储区中确定所述目标用户的数据。
[0021]本发明实施例提供的存储及查找数据的方法及装置,能够根据用户数据量的大小为用户动态分配数据块,从而完整的存储用户的个人数据,便于查找用户数据且确保用户的个人数据不丢失;而且能够避免存储资源的浪费,提高存储资源的利用率。
【专利附图】

【附图说明】
[0022]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0023]图1a为本发明实施例一提供的存储数据的方法的流程示意图;
[0024]图1b为本发明实施例一提供的查找数据的方法的流程示意图;
[0025]图2为本发明实施例二提供的存储及查找数据的方法的流程示意图;
[0026]图3a、图3b为本发明实施例二提供的方法中存储空间的示意图;
[0027]图4、图5为本发明实施例二提供的方法中的二级索引示意图;
[0028]图6、图7为本发明实施例三提供的存储数据的装置的结构框图;
[0029]图8、图9为本发明实施例三提供的查找数据的装置的结构框图。
【具体实施方式】
[0030]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0031]实施例一
[0032]本发明的实施例提供一种存储数据的方法,如图1a所示,所述方法包括:
[0033]101、建立一级索引区,所述一级索引区记录有数据存储区中各用户的起始数据块以及各用户的数据块总数。[0034]本实施例中,用户数据的存储空间由一级索引区和数据存储区两部分共同构成,所述一级索引区用于对用户数据的读写进行引导,所述数据存储区用于存储用户数据。
[0035]103、当用户的数据量发生变化时,根据变化后的数据量大小为该用户重新分配数据块,在所述数据存储区中进行数据块整理,并修改所述一级索引区。
[0036]值得说明的是,本实施例提供的存储数据的方法,能够根据用户数据量的变化,动态的调整为该用户分配的数据块数量,具体的:当用户的数据量变大时,增加为该用户分配的数据块;当用户的数据量变小时,减少为该用户分配的数据块,以使得为该用户分配的数据块数目是适量的,从而既能保证用户的数据不丢失,又能减少数据块的浪费。
[0037]基于上述存储数据的方法,本发明实施例还提供了一种查找数据的方法,如图1b所示,所述方法包括:
[0038]102、在所述一级索引区查找目标用户在所述数据存储区中的起始数据块和数据块总数。
[0039]104、根据所述起始数据块和数据块总数,在所述数据存储区中确定所述目标用户的数据。
[0040]本发明实施例提供的存储及查找数据的方法,能够根据用户数据量的变化动态的为用户分配数据块,从而完整的存储用户的个人数据,便于查找用户数据且确保用户的个人数据不丢失;而且能够避免存储资源的浪费,提高存储资源的利用率。
[0041]实施例二
[0042]本发明实施例提供了一种存储及查找数据的方法,如图2所示,所述方法包括:
[0043]201、在存储空间中建立一级索引区,所述一级索引区记录有数据存储区中各用户的起始数据块以及各用户的数据块总数。
[0044]本实施例中,存储空间由一级索引区和数据存储区两部分共同构成,所述一级索引区用于对用户数据的读写进行引导,所述数据存储区用于存储用户数据。其中,一级索引区包括多个以及索引块,每个一级索引块记录一个用户的基本信息,包括但不限于:该用户的在所述数据存储区中的起始数据块和数据块总数;数据存储区用于存储用户数据,包括文字、视频、图片等其他类型的数据。
[0045]本实施例提供的方法可以由存储控制器实现,所述存储控制器用于对所述存储空间中的数据块进行分配、以及进行数据的读写等操作。
[0046]为了便于理解,本发明提供了一种存储空间的示意图以供参考,如图3a所示,存储空间有一级索引区31和数据存储区32构成,其中,一级索引区31包括多个数据块,每个数据块记录一个用户的基本信息,如图3a所示,一级索引区31中的数据块I记录用户A的基本信息,一级索引区中的数据块2记录用户B的基本信息。数据存储区32用户存储各用户的数据,如图3a所示,数据存储区32中的数据块I和数据块2存储用户A的数据,数据存储区32中的数据块3至数据块9存储用户B的数据。则在一级索引区31中的数据块I中,会记录用户A的在数据存储区32中的起始数据块是数据块1,数据块总数是2,;在一级索引区32中的数据块2中,会记录用户B的在数据存储区32中的起始数据块是3,数据块总数是7。
[0047]值得说明的是,如图3所示,所述一级索引区可以由多个独立的数据块构成,每个数据块记录一个用户的基本信息;可选的,所述一级索引区也可以由索引目录构成,该目录上记录有各用户的基本信息。
[0048]202、当用户的数据量发生变化时,根据变化后的数据量大小在数据存储区进行数据块整理,包括为该用户重新分配数据块,并相应的调整为其他用户分配的数据块。
[0049]例如,根据上述图3a中所举示例,当用户A的数据量变大,需要在数据存储区32中占用3个数据块时,可以通过如下方法进行数据块整理:
[0050]如图3所示:
[0051]S1、将数据存储区32中的数据块3分配给用户A,同时在一级索引区中的数据块I中修改用户A的基本信息:用户A在数据存储区32中的起始数据块是数据块1,数据块总数是3 ;
[0052]S2、将数据存储区32中的数据块4分配给用户B作为用户B的起始数据块,并将分配给用户B的数据块依次顺移,即将数据存储区32中的数据块4至数据块10分配给用户B,同时在一级索引区中的数据块2中修改用户B的基本信息:用户B在数据存储区32中的起始数据块是数据块4,数据块总数是7。
[0053]值得说明的是,以上举例仅是本实施例提供的一种可能的实现方法,本领域技术人员可以想到通过其他方法根据用户数据量的变化为用户重新分配数据块,本实施例不做限定。
[0054]203、在完成数据块整理后,根据数据存储区当前的使用情况,修改所述一级索引区,具体包括:修改所述一级索引块中各用户的起始数据块、数据块总数。
[0055]值得说明的是,本实施例提供的存储数据的方法尤其适用于社交网络中的用户数据存储业务。在社交网络中,需要存储的用户数据绝大部分为UGC数据,这种数据也可以称为时间膨胀数据,其特点在于,随着用户使用时间的增加,数据量会逐步增大。社交网络中用户的活跃程度不同,活跃用户的UGC数据量增长较快;与活跃用户相比,普通用户的UGC数据量增长较慢。
[0056]优选的,将本实施例提供的存储数据的方法应用于社交网络的实际应用中时,一级索引区中记录的用户的基本信息还包括用户的类别标识,用于表征该用户是否为活跃用户。则当用户的活跃程度发生变化时,本步骤中的“修改所述一级索引区”还可以包括修改用户的类别标识。
[0057]在社交网络的实际应用中,用户的UGC数据主要包括文字、图片、视频等不同类型的数据。存储控制器经常需要根据用户需求对用户数据进行筛选查找,例如,用户想查看自己在某一时间段发表的UGC数据,或者用户向查看自己发表的所有图片(即某一类型的数据)时,均需要对用户数据进行筛选查找,以向用户提供用户想要的数据信息。一般的,用户的UGC数据是不断增长的,随着UGC数据量的增大,UGC数据的读写效率会逐渐降低,而且在UGC数据中进行筛选查找的复杂度较高,查找效率较低。
[0058]对于社交网络中的活跃用户,其UGC数据的增长速度很快,数据量较大,在数据存储区中占用的数据块较多(也可以将活跃用户的数据称之为“长用户数据”)。为了提高社交网络中对活跃用户UGC数据的读写效率和查找效率,本实施例提供的存储数据的方法还包括如下步骤:
[0059]204、在所述数据存储区中,将活跃用户的起始数据块作为二级索引块(如图3a所示,用户B为活跃用户,数据存储区32中的数据块2是用户B的二级索引块),所述二级索引块记录有按照预设规则对所述活跃用户的数据进行分类后的索引信息,所述索引信息用于确定与所述预设规则相匹配的所述活跃用户的数据块,所述预设规则包括指定时间段、和/或指定数据类型。
[0060]205、当需要对活跃用户的数据进行查找筛选或读写操作时,可以根据所述二级索引块快速确定与预设规则相匹配的所述活跃用户的数据块,以便于进行相关操作。
[0061]为了便于理解根据二级索引块的作用,本实施例提供了如下示例以供参考,例如:所述二级索引块可以按照时间区间对所述活跃用户的数据块进行分类,例如,如图4所示,存储控制器可以按照时间区间将用户A的数据块进行分类,划分为3个逻辑块,其中,逻辑块1、逻辑块2、逻辑块3分别记录有用户A在2010年、2011年、2012年的UGC数据。例如,当需要查找用户A在2011年的数据时,存储控制器可以根据用户A的二级索引块进行索弓丨,根据逻辑块2确定数据存储区中记载有用户A的2011年数据的所有数据块,从而确定用户A的2011年数据,从而进行筛选或读写操作。
[0062]在另一种可能的实现方式中,所述二级索引块可以按照数据类型对所述活跃用户的数据进行分类,例如,如图5所示,存储控制器可以按照数据类型将用户B的数据进行分类,划分为3个逻辑块,其中,逻辑块I记录有用户B的文字数据,逻辑块2记录有用户B的图片数据,逻辑块3记录有用户B的视频数据。例如,当需要查找用户B的图片数据时,存储控制器可以根据用户B的二级索引块进行索引,根据逻辑块2确定数据存储区中记载有用户B图片数据的所有数据块,从而确定用户B的图片数据,从而进行筛选或读写操作。
[0063]可选的,本实施例中是以活跃用户的起始数据块作为二级索引块进行说明的,但也可以将活跃用户的任一数据块作为二级索引块,只需要在一级索引块记录的用户的基本信息增加该用户的二级索引块的数据块标识即可。
[0064]值得说明的是,当社交网络中的用户的活跃度发生变化时,只需要通过在数据存储区中增加或删除二级缓存块、同时在一级索引区中增加或删除用户的类别标识,即可便捷快速的实现对用户的数据管理,无需额外操作,维护成本较低。
[0065]本发明实施例提供了一种存储数据的方法,能够根据用户数据量的变化动态的为用户分配数据块,从而完整的存储用户的个人数据,确保用户的个人数据不丢失,便于查找用户数据且能够避免存储资源的浪费,提高存储资源的利用率;另一方面,对于数据量增长较快的活跃用户,通过增加二级索引块,能够提高活跃用户数据的读写效率和查找效率。
[0066]实施例三
[0067]本发明实施例提供了 一种存储数据的装置,能够实现上述方法实施例中存储数据的方法,如图6所示,所述装置包括:
[0068]一级索引单元61,用于建立一级索引区,所述一级索引区记录有数据存储区中各用户的起始数据块以及各用户的数据块总数;
[0069]数据存储单元62,用于当用户的数据量发生变化时,根据变化后的数据量大小为该用户重新分配数据块,在所述数据存储区中进行数据块整理;
[0070]所述一级索引单元61还用于在所述数据存储单元62完成数据块整理后,修改所述一级索引区。
[0071]具体的,所述一级索引单元61建立的一级索引区中包括多个一级索引块,每个一级索引块记录一个用户的基本信息,所述基本信息包括当前用户在所述数据存储区中的起始数据块和数据块总数。
[0072]可选的,所述数据存储单元62还用于当用户的数据量发生变化时,根据变化后的数据量大小为该用户重新分配数据块,并相应的调整为其他用户分配的数据块;则所述一级索引单元61具体用于修改所述一级索引块中各用户的起始数据块和数据块总数。
[0073]可选的,所述一级索引块记录的用户的基本信息还包括用户的类别标识,用于表征该用户是否为活跃用户;则如图7所示,所述装置还包括:二级索引单元63,用于在所述数据存储区中,将活跃用户的起始数据块作为二级索引块,所述二级索引块记录有按照预设规则对所述活跃用户的数据进行分类后的索引信息,所述索引信息用于确定与所述预设规则相匹配的所述活跃用户的数据块,所述预设规则包括指定时间段、和/或指定数据类型。
[0074]可选的,所述二级索引单元63还用于将所述数据存储区中活跃用户的任一数据块作为二级索引块;则所述一级索引单元61还用于在用户的基本信息中记录该用户的二级索引块的数据块标识。
[0075]可选的,所述二级索引单元63可以按照时间区间对所述活跃用户的数据块进行分类;或者
[0076]所述二级索引单元63也可以按照数据类型对所述活跃用户的数据进行分类。
[0077]基于上述图6、图7所述的存储数据的装置,本实施例还提供了一种查找数据的装置,如图8所示,所述装置包括:
[0078]第一查找单元81,用于在一级索引单元建立的一级索引区查找所述目标用户在所述数据存储区中的起始数据块和数据块总数;
[0079]第一确定单元82,用于根据所述第一查找单元81查找的起始数据块和数据块总数,在所述数据存储区中确定所述目标用户的数据。
[0080]进一步的,如图9所示,所述装置还包括:
[0081]第二确定单元83,用于根据所述目标用户的二级索引块,确定与预设规则相匹配的所述活跃用户的数据块,所述预设规则包括指定时间段、和/或指定数据类型。
[0082]本发明实施例提供了 一种存储及查找数据的装置,数据存储单元62能够根据用户数据量的变化动态的为用户分配数据块,从而完整的存储用户的个人数据,确保用户的个人数据不丢失,便于查找用户数据且且能够避免存储资源的浪费,提高存储资源的利用率;另一方面,对于数据量增长较快的活跃用户,通过二级索引单元63增加二级索引块,能够提高活跃用户数据的读写效率和查找效率。
[0083]通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0084]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【权利要求】
1.一种存储数据的方法,其特征在于,包括: 建立一级索引区,所述一级索引区记录有数据存储区中各用户的起始数据块以及各用户的数据块总数; 当用户的数据量发生变化时,根据变化后的数据量大小为该用户重新分配数据块,在所述数据存储区中进行数据块整理,并修改所述一级索引区。
2.根据权利要求1所述的方法,其特征在于,所述一级索引区中包括多个一级索引块,每个一级索引块记录一个用户的基本信息,所述基本信息包括当前用户在所述数据存储区中的起始数据块和数据块总数。
3.根据权利要求2所述的方法,其特征在于,所述当用户的数据量发生变化时,根据变化后的数据量大小为该用户重新分配数据块,在所述数据存储区中进行数据块整理,包括: 当用户的数据量发生变化时,根据变化后的数据量大小为该用户重新分配数据块,并相应的调整为其他用户分配的数据块; 所述修改所述一级索引区,包括: 修改所述一级索引块中各用户的起始数据块和数据块总数。
4.根据权利要求2 或3所述的方法,其特征在于,所述一级索引块记录的用户的基本信息还包括用户的类别标识,用于表征该用户是否为活跃用户; 所述方法还包括: 在所述数据存储区中,将活跃用户的起始数据块作为二级索引块,所述二级索引块记录有按照预设规则对所述活跃用户的数据进行分类后的索引信息,所述索引信息用于确定与所述预设规则相匹配的所述活跃用户的数据块,所述预设规则包括指定时间段、和/或指定数据类型。
5.根据权利要求4所述的方法,其特征在于,还包括: 在所述数据存储区中,将活跃用户的任一数据块作为二级索引块; 则所述一级索引块记录的用户的基本信息还包括该用户的二级索引块的数据块标识。
6.一种查找数据的方法,其特征在于,所述查找数据的方法基于权利要求1-5中任一项所述的存储数据的方法,该查找数据的方法包括: 在所述一级索引区查找目标用户在所述数据存储区中的起始数据块和数据块总数; 根据所述起始数据块和数据块总数,在所述数据存储区中确定所述目标用户的数据。
7.根据权利要求6所述的查找数据的方法,其特征在于,所述目标用户为活跃用户,所述数据存储区中包括所述目标用户的二级索引块; 所述根据所述起始数据块和数据块总数,在所述数据存储区中确定所述目标用户的数据之后,还包括: 根据所述目标用户的二级索引块,确定与预设规则相匹配的所述活跃用户的数据块,所述预设规则包括指定时间段、和/或指定数据类型。
8.一种存储数据的装置,其特征在于,包括: 一级索引单元,用于建立一级索引区,所述一级索引区记录有数据存储区中各用户的起始数据块以及各用户的数据块总数; 数据存储单元,用于当用户的数据量发生变化时,根据变化后的数据量大小为该用户重新分配数据块,在所述数据存储区中进行数据块整理; 所述一级索引单元还用于在所述数据存储单元完成数据块整理后,修改所述一级索引区。
9.根据权利要求8所述的装置,其特征在于,所述一级索引单元建立的一级索引区中包括多个一级索引块,每个一级索引块记录一个用户的基本信息,所述基本信息包括当前用户在所述数据存储区中的起始数据块和数据块总数。
10.根据权利要求9所述的装置,其特征在于,所述数据存储单元具体用于当用户的数据量发生变化时,根据变化后的数据量大小为该用户重新分配数据块,并相应的调整为其他用户分配的数据块; 所述一级索引单元具体用于修改所述一级索引块中各用户的起始数据块和数据块总数。
11.根据权利要求9或10所述的装置,其特征在于,所述一级索引块记录的用户的基本信息还包括用户的类别标识,用于表征该用户是否为活跃用户; 所述装置还包括: 二级索引单元,用于在所述数据存储区中,将活跃用户的起始数据块作为二级索引块,所述二级索引块记录有按照预设规则对所述活跃用户的数据进行分类后的索引信息,所述索引信息用于确定与所述预设规则相匹配的所述活跃用户的数据块,所述预设规则包括指定时间段、和/或指定数据类型。
12.根据权利要求11所述的装置,其特征在于,所述二级索引单元还用于将所述数据存储区中活跃用户的任一数据块作为二级索引块; 所述一级索引单元还用于在用户的基本信息中记录该用户的二级索引块的数据块标识。
13.—种查找数据的装置,其特征在于,所述查找数据的装置基于权利要求8-12中任一项所述的存储数据的装置,该查找数据的装置包括: 第一查找单元,在所述一级索引单元建立的一级索引区查找目标用户在所述数据存储区中的起始数据块和数据块总数; 第一确定单元,用于根据所述第一查找单元查找的起始数据块和数据块总数,在所述数据存储区中确定所述目标用户的数据。
14.根据权利要求13所述的查找数据的装置,其特征在于,还包括: 第二确定单元,用于根据所述目标用户的二级索引块,确定与预设规则相匹配的所述活跃用户的数据块,所述预设规则包括指定时间段、和/或指定数据类型。
【文档编号】G06F17/30GK103678414SQ201210361170
【公开日】2014年3月26日 申请日期:2012年9月25日 优先权日:2012年9月25日
【发明者】刘里, 田明, 王瑶, 周智昊 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1