存储器读取方法技术

技术编号:12531140 阅读:64 留言:0更新日期:2015-12-18 02:40
本发明专利技术提供了一种存储器读取方法,该方法包括:将用户信息表对应的所有外键索引数据存储在永久存储模块;利用基于主存的索引高频数据缓存模块,将索引高频数据缓存在主存中,根据数据访问的累加频率进行缓存替换,利用基于一致性散列的缓存结构对主存的缓存区进行管理。本发明专利技术提出了一种存储器读取方法,根据存储区块访问频率更准确地捕获数据访问的特征,大幅提高数据查询访问的效率。

【技术实现步骤摘要】

本专利技术涉及数据存取,特别涉及一种。
技术介绍
为了有效应对海量数据的存储与查询管理,人们越来越多地用分布式数据存储系统替代关系数据库管理系统。在迫切的企业大数据应用需求推动下,目前出现了非关系数据存储系统。然而,由于现有非关系数据存储系统缺少外键索引能力,需要对全表进行扫描,导致查询效率低下,难以满足需要快速响应的数据查询和统计分析场景。
技术实现思路
为解决上述现有技术所存在的问题,本专利技术提出了一种,包括:将用户信息表对应的所有外键索引数据存储在永久存储模块;利用基于主存的索引高频数据缓存模块,将索引高频数据缓存在主存中,根据数据访问的累加频率进行缓存替换,利用基于一致性散列的缓存结构对主存的缓存区进行管理。优选地,所述将用户信息表对应的所有外键索引数据存储在永久存储模块,进一步包括:为保存在用户信息表中的外键属性建立索引表,并将索引表保存在非关系数据存储系统中,每个索引表用来存储管理用户信息表中的待查询外键属性的索引,为用户信息表中待建立索引的外键属性定义如下格式的索引表主键:<用户信息表索引列名,用户信息表索引列值,用户信息表主键>其中,索引列名是用户信息表中被索引属性的别名;提供用户信息表中被索引记录的地址,通过用户信息表主键获得用户信息表中被索引的记录;以查询属性为索引表主键,索引表包含用户信息表的部分字段,只将查询中需要辅助性访问的字段存放在索引表的外键属性中;对于多个外键属性列的组合查询,基于多个查询属性列建立索引,使用逗号做分隔符,在多个属性列上建立了索引后,将组合查询转换成基于索引表主键的查询;所述利用基于主存的索引高频数据缓存模块,将索引高频数据缓存在主存中,进一步包括:主存高频索引数据缓存采用以下主键格式:<用户信息表索引列名,用户信息表索引列值>其中,用户信息表索引列名和用户信息表索引列值的含义与永久索引存储层中相同,主存索引缓存层中的每个索引主键对应着一个具有相同索引列值的索引记录集合,该集合包含了与该索引值对应的所有索引表数据记录,集合中也包含了需要访问的其他外键属性,完整的主存索引数据格式如下:索引主键:〈用户信息表索引列名,用户信息表索引列值>索引集合:{〈用户信息表主键,{〈频繁访问列名,频繁访问列值>}>}用户数据记录由该集合对应的用户信息表主键到用户信息表中获得,索引主存缓存层数据存储在主存数据库中,并由主存数据库自动完成上述散列和查询过程,该查询过程包括:首先到索引主存缓存层查询高频索引数据,若缓存中没有命中,则将查询转发到索引永久存储层进行检索。优选地,所述根据数据访问的累加频率进行缓存替换,进一步包括:周期性地累加缓存索引集合被访问的次数,并将访问算法周期性地累加得到频率值保存在缓存元数据中,对所有记录的累加频率排序,选择累加频率最高的预定个数的索引记录缓存到主存中;将用户信息表、索引表和数值表全部存储在基于非关系数据存储系统的索引永久存储层中,索引缓存存储结构基于主存数据库的集合,主存数据库也是以键值对格式来组织数据,以高频数据的索引主键做主存数据库的键,索引集合作为主存数据库的值保存在主存缓存中,以使具有相同索引列值的记录被绑定在同一个集合中,基于索引列值的查询命中是以集合为单位的,每个集合都会累加它在一个计算周期内的访问次数;在执行查询请求时,主存缓存的服务进程对访问到的每条索引数据记录本周期内的访问次数,而不对主存缓存的数据进行替换,直到查询请求次数达到预设频率计算周期时,服务进程触发缓存的更新替换,在对所有的记录计算频率之后,根据频率排序,将频率排序最高K个集合记录缓存到主存中,其中数值K的选择根据缓存空间能够容纳的记录条数限制计算出频率阈值,高于阈值的集合被缓存到主存中。优选地,所述数据存储系统使用ZooKe^er来检测主存节点上服务进程的活跃状态,索引主存缓存层每个主存节点服务进程分别建立与Z00K^per的会话,并创建临时节点来表示自身的活跃状态,每个主存节点服务进程从ZooK^per系统镜像中观察到其他节点进程的活跃状态;根据根据数据输入方式的不同,将索引创建分为面向流式数据和面向批处理数据的索引创建;索引创建过程都是读取用户信息表的一条记录,在外键属性上生成一条索引记录,如果满足缓存条件,同时生成主存缓存层的索引数据,最后将索引数据分别更新到永久存储层与主存缓存层,并更新数值表;所述数据存储系统利用MapReduce来并行化执行静态数据索引创建,MapReduce任务首先得到输入〈Row,Result〉,其中Row为用户信息表的行键,Result是通过Row获得的非关系数据存储系统记录,然后根据索引信息生成其对应的索引数据,并将索引数据插入到层次索引中,以利用MapReduce提供的并行化处理能力来加速索引创建过程。本专利技术相比现有技术,具有以下优点:本专利技术提出了一种,根据存储区块访问频率更准确地捕获数据访问的特征,大幅提高数据查询访问的效率。【附图说明】图1是根据本专利技术实施例的的流程图。【具体实施方式】下文与图示本专利技术原理的附图一起提供对本专利技术一个或者多个实施例的详细描述。结合这样的实施例描述本专利技术,但是本专利技术不限于任何实施例。本专利技术的范围仅由权利要求书限定,并且本专利技术涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本专利技术的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本专利技术。本专利技术的一方面提供了一种基于数据存储系统的。图1是根据本专利技术实施例的流程图。本专利技术的数据存储系统基于非关系数据存储系统的层次索引和查询。数据存储系统分为两层:1)永久存储层,用来存储用户信息表对应的所有外键索引数据;2)基于主存的缓存层,利用基于索引高频数据缓存替换策略,将部分索引高频数据缓存在主存中。并考虑数据访问的累加频率,从而更准确地捕获数据访问的特征。同时在缓存空间未满的时候,改进缓存插入策略,保证缓存空间得到充分利用,缓存命中率在数据加载阶段可以得到快速提升并趋于稳定,同时,基于一致性散列的主存缓存结构为本专利技术的数据存储系统缓存层提供了良好的可扩展性和容错性。为了避免对外键查询时的全表扫描,本专利技术的数据存储系统为保存在用户信息表中的外键属性建立索引表,并将索引表保存在非关系数据存储系统中。每个索引表用来存储管理用户信息表中的某个待查询外键属性的索引。本专利技术为用户信息表中待建立索引的外键属性定义如下格式的索引表主键:<用户信息表索引列名,用户信息表索引列值,用户信息表主键>其中,索引列名是用户信息表中被索引属性的别名。通过将列名映射到一个简短的别名,可减少索引表主键存储空间的开销。保证了索引表主键的唯一性;提供用户信息表中被索引记录的地址,通过用户信息表主键,可快速获得用户信息表中被索引的记录。以查询属性为索引表主键,索引表包含用户信息表的部分字段,只将查询中需要辅助性访问的字段存放在索引表的外键属性中,避免再次访问用户信息表而导致的二次磁盘访问。在实际应用中存在多个外键属性组合查询的需求,为此,类似于数据库中的多字段索引,需要创建多个外键属性列的组合索引。对于多个外键属性列的组合查询情况,本专利技术基于多个查询本文档来自技高网...

【技术保护点】
一种存储器读取方法,用于对非关系数据存储系统进行数据读取,其特征在于,包括:将用户信息表对应的所有外键索引数据存储在永久存储模块;利用基于主存的索引高频数据缓存模块,将索引高频数据缓存在主存中,根据数据访问的累加频率进行缓存替换,利用基于一致性散列的缓存结构对主存的缓存区进行管理。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈虹宇罗阳苗宁
申请(专利权)人:四川神琥科技有限公司
类型:发明
国别省市:四川;51

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

1