一种多索引的数据处理方法及装置制造方法及图纸

技术编号:13044480 阅读:50 留言:0更新日期:2016-03-23 13:28
本发明专利技术公开了一种多索引的数据处理方法及装置,该方法包括:提取待存储数据的各索引值;依据各索引值在指针数组中的各关联位置,建立关联的各索引链表节点;确定待存储数据的关联存储桶区域,并在关联存储桶区域的表头中创建所述待存储数据与所述关联存储桶区域包含的各关联存储块间的映射关系;依据创建的待存储数据与各关联存储块间的映射关系,存储所述待存储数据,并将所述待存储数据的唯一标识分配给各索引链表节点。采用上述方案,可以对存储数据快速建立多索引,能实现对多索引及存储数据的快速管理,并通过可控制的空间损失,提升空间分配、回收和整理的速度,达到以空间换时间的效果。

【技术实现步骤摘要】

本专利技术涉及缓存
,尤其涉及一种多索引的数据处理方法及装置
技术介绍
内存缓存技术常用于提升客户端查询数据的性能、降低查询响应时间,在访问量较大的网站系统、数据量较大的数据库系统中常有应用。数据系统等常带有自己内部的缓存机制,同时也有一些专门的内存缓存软件,它们各自有适合的应用场景,但是这些软件本身是面向通用的内存缓存需求,一般无法支持将内存、固态硬盘等作为统一内存地址空间进行管理。同时由于现有的缓存机制满足通用需求,系统相对比较复杂,在自定义的多索引随机访问场景下,不容易简单的实现缓存的空间申请、删除统一管理的需求,当反复申请和删除空间后会产生很多内存碎片,碎片整理一般耗时较多,并常伴有对系统访问的暂停动作,这对于高性能的实时在线系统的性能有重大影响。
技术实现思路
有鉴于此,本专利技术实施例提供一种多索引的数据处理方法及装置,以解决现有技术中的多索引的数据管理不当的技术问题。第一方面,本专利技术实施例提供了一种多索引的数据处理方法,包括:提取待存储数据的各索引值;依据各索引值在指针数组中的各关联位置,建立关联的各索引链表节点;确定待存储数据的关联存储桶区域,并在关联存储桶区域的表头中创建所述待存储数据与所述关联存储桶区域包含的各关联存储块间的映射关系;依据创建的待存储数据与各关联存储块间的映射关系,存储所述待存储数据,并将所述待存储数据的唯一标识分配给各索引链表节点。r>第二方面,本专利技术实施例还提供了一种多索引的数据处理装置,包括:索引值提取模块,用于提取待存储数据的各索引值;节点建立模块,用于依据各索引值在指针数组中的各关联位置,建立关联的各索引链表节点;桶区域确定模块,用于确定待存储数据的关联存储桶区域,并在关联存储桶区域的表头中创建所述待存储数据与所述关联存储桶区域包含的各关联存储块间的映射关系;数据存储模块,用于依据创建的待存储数据与各关联存储块间的映射关系,存储所述待存储数据,并将所述待存储数据的唯一标识分配给各索引链表节点。本专利技术实施例提供的一种多索引的数据处理方法及装置。通过存储数据计算各索引值,在指针数组中找到各索引值的关联位置并建立关联的各索引链表节点,确定待存储数据的关联存储桶区域并在所述桶区域的表头中创建待存储数据与存储块的映射关系,根据映射关系存储待存储数据,并将待存储数据的唯一标识分配给各索引链表节点。采用上述方案,可以快速建立索引,并通过可控制的空间损失,提升空间分配、回收和整理的速度,达到以空间换时间的效果。根据待存储数据的容量大小合理分配存储区域,并计算数据的最佳分块数量,保证了存储区域的损失的可控。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1为本专利技术实施例一提供的一种多索引的数据处理方法的流程图;图2位本专利技术实施例一提供的多索引建立区域图;图3为本专利技术实施例二提供的一种多索引的数据处理方法的流程图;图4为本专利技术实施例三提供的一种多索引的数据处理方法的流程图;图5为本专利技术实施例四提供的一种多索引的数据处理方法的流程图;图6为本专利技术实施例四提供的存储块移动示意图;图7为本专利技术实施例五提供的一种多索引的数据处理方法的流程图;图8为本专利技术实施例五提供的待存储数据存储示意图;图9为本专利技术实施例六提供的一种多索引的数据处理装置的示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部内容。实施例一图1为本专利技术实施例一提供的一种多索引的数据处理方法的流程图。本实施例的方法具体用于终端快速建立待存储数据的多索引的情况。本实施例的方法可由多索引的数据处理装置执行,该装置可由软件和/或硬件来实现,集成在可建立多索引的终端中。如图1所示,该方法包括:S110、提取待存储数据的各索引值。示例性的,根据预先配置的索引构建规则,提取待存储数据构建各个索引值。其中索引构建规则可以根据实际情况设定,这里不作具体限定。S120、依据各索引值在指针数组中的各关联位置,建立关联的各索引链表节点。示例性的,对各索引值进行哈希计算,可以是采用高性能的哈希函数对各索引值进行哈希计算,高性能哈希函数可以是BKDRHash函数。将计算后得到的整数与指针数组的长度进行取模计算,其中指针数组用于存储单链表表头指针,指针数组的长度大于等于终端可存储的索引值的个数。根据取模计算得到的值找到对应的指针数组,判断该指针数组指示的对应位置是否为空。若为空,则在指针数组中建立新的单链表表头指针。根据索引值创建单链表表头指针之后,建立新的索引链表节点,其中指针数组中各单链表表头指针指向的各索引链表节点构成单链表,指针数组与单链表构成索引区。索引链表节点分为三部分,第一部分用于存储索引值,即第一部分为指针数组指向的区域。第二部分暂时为空,用于在确定存储数据的存储桶区域后,存储存储桶区域中表头的信息。第三部分设置为空,若发生哈希冲突后,处理哈希冲突。若指针数组指示的对应位置不为空,说明其他的索引值占用此指针数组,即发生了哈希冲突,此时,采用开地址法处理冲突,即从被占用的指针数组开始遍历到单链表的末端,在末索引链表节点后创建一个新的索引链表节点,将末索引链表节点的第三部分指向新的索引链表节点的第一部分,即处理冲突。S130、确定待存储数据的关联存储桶区域,并在关联存储桶区域的表头中创建所述待存储数据与所述关联存储桶区域包含的各关联存储块间的映射关系。示例性的,实际存储数据的数据区基本单位是存储块,相同内存容量的存储块逻辑上形成了存储桶区域,例如4K容量的存储块组成了4K桶区域,8K容量的存储块组成了8K桶区域。每个存储桶区域中包含至少一个存储桶,存储桶为实际的桶。每个存储桶的存储大小为存储块大小的整数倍,同一存储桶区域中的存储桶逻辑上连续,也可以物理上连续。每个存储桶区域中包含唯一一个表头,所述表头分为两部分,一部分用来存储桶区域和存储桶之间的映射关系,存储桶和存储块之间的映射关系,以及存储桶的地址、存储块的地址和存储块的状态标识,另一部分用来存储待存储数据与存储块间的映射关系,映射关系优选包括待存储数据的唯一标识及对应的存储块地址。当有存储数据存入...

【技术保护点】
一种多索引的数据处理方法,其特征在于,包括:提取待存储数据的各索引值;依据各索引值在指针数组中的各关联位置,建立关联的各索引链表节点;确定待存储数据的关联存储桶区域,并在关联存储桶区域的表头中创建所述待存储数据与所述关联存储桶区域包含的各关联存储块间的映射关系;依据创建的待存储数据与各关联存储块间的映射关系,存储所述待存储数据,并将所述待存储数据的唯一标识分配给各索引链表节点。

【技术特征摘要】
1.一种多索引的数据处理方法,其特征在于,包括:
提取待存储数据的各索引值;
依据各索引值在指针数组中的各关联位置,建立关联的各索引链表节点;
确定待存储数据的关联存储桶区域,并在关联存储桶区域的表头中创建所
述待存储数据与所述关联存储桶区域包含的各关联存储块间的映射关系;
依据创建的待存储数据与各关联存储块间的映射关系,存储所述待存储数
据,并将所述待存储数据的唯一标识分配给各索引链表节点。
2.根据权利要求1所述的方法,其特征在于,确定待存储数据的关联存储
桶区域,并在关联存储桶区域的表头中创建所述待存储数据与所述关联存储桶
区域包含的各关联存储块间的映射关系,包括:
确定所述待存储数据的关联存储桶区域;
将所述待存储数据按照关联存储桶区域中存储块的大小拆分成各子待存储
数据数据;
将各子待存储数据顺序放置入关联存储桶区域中包含的空存储块。
3.根据权利要求2所述的方法,其特征在于,将各子待存储数据顺序放置
入关联存储桶区域中包含的空存储块,包括:
确定所述关联存储桶区域中包含的空存储块的数量是否大于所述子待存储
数据的数量;
若是,顺序将各子待存储数据放置入关联存储桶区域中的空存储块中;若
否,则在所述关联存储桶区域的空存储空间大于待存储数据所需存储空间时,
在所述关联存储桶区域中创建新的存储桶,并顺序将各子待存储数据放置入关
联存储桶区域中的空存储块中。
4.根据权利要求1所述的方法,其特征在于,还包括:
在监测到数据查询事件时,获取客户端发送的待查询索引值;
确定所述待查询索引值在指针数组中的关联位置所指向的索引链表节点;
确定指向的索引链表节点对应的存储桶区域的表头;
依据对应的存储桶区域的表头,查询待查询索引值对应的存储块,将对应
的存储块中的数据合并,作为待查询索引值对应的访问数据。
5.根据权利要求1所述的方法,其特征在于,还包括:
在监测到数据删除事件时,获取客户端发送的待删除数据;
按照预设的索引规则,提取待删除数据的各待删除索引值;
确定所述各待删除索引值在指针数组中的关联位置所指向的各索引链表节
点;
确定指向的各索引链表节点对应的存储桶区域的表头;
删除表头中待删除数据与关联存储块间的映射关系,并删除所述各索引链
表节点。
6.根...

【专利技术属性】
技术研发人员:肖冰
申请(专利权)人:北京锐安科技有限公司
类型:发明
国别省市:北京;11

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

1